mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2025-07-03 00:05:34 +00:00
attempt to fix mass timeout kick
This commit is contained in:
parent
1875c8832d
commit
e35d1b5457
@ -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();
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user