attempt to fix mass timeout kick

This commit is contained in:
Lion Kortlepel 2021-03-30 15:41:05 +02:00
parent 1875c8832d
commit e35d1b5457
2 changed files with 2 additions and 3 deletions

View File

@ -42,13 +42,13 @@ void TPPSMonitor::operator()() {
}
// kick on "no ping"
if (c->SecondsSinceLastPing() > 10 && c->IsSynced() && !c->IsSyncing()) {
debug("client " + std::string("(") + std::to_string(c->GetID()) + ")" + c->GetName() + " timing out: " + std::to_string(c->SecondsSinceLastPing()) + ", pps: " + Application::PPS());
TimedOutClients.push_back(c);
}
}
return true;
});
for (auto& ClientToKick : TimedOutClients) {
debug("client " + std::string("(") + std::to_string(ClientToKick->GetID()) + ")" + ClientToKick->GetName() + " kicked due to timeout!");
Network().ClientKick(*ClientToKick, "Timeout (no ping for >10 seconds)");
}
TimedOutClients.clear();

View File

@ -76,8 +76,6 @@ void TServer::GlobalParser(const std::weak_ptr<TClient>& Client, std::string Pac
return;
}
auto LockedClient = Client.lock();
// FIXME: this should not be needed here
LockedClient->UpdatePingTime();
std::any Res;
char Code = Packet.at(0);
@ -98,6 +96,7 @@ void TServer::GlobalParser(const std::weak_ptr<TClient>& Client, std::string Pac
case 'p':
Network.Respond(*LockedClient, ("p"), false);
Network.UpdatePlayer(*LockedClient);
LockedClient->UpdatePingTime();
return;
case 'O':
if (Packet.length() > 1000) {