[Server] Forcibly kick players after too many handshake attempts

pull/409/head
David Cernat 7 years ago
parent 17678ee60f
commit 2bb7a4253e

@ -121,8 +121,11 @@ void Networking::processPlayerPacket(RakNet::Packet *packet)
LOG_MESSAGE_SIMPLE(Log::LOG_WARN, "Attempts so far: %i", player->getHandshakeAttempts());
if (player->getHandshakeAttempts() > 5)
kickPlayer(player->guid);
if (player->getHandshakeAttempts() > 20)
kickPlayer(player->guid, false);
else if (player->getHandshakeAttempts() > 5)
kickPlayer(player->guid, true);
return;
}
@ -499,9 +502,9 @@ int Networking::mainLoop()
return exitCode;
}
void Networking::kickPlayer(RakNet::RakNetGUID guid)
void Networking::kickPlayer(RakNet::RakNetGUID guid, bool sendNotification)
{
peer->CloseConnection(guid, true);
peer->CloseConnection(guid, sendNotification);
}
void Networking::banAddress(const char *ipAddress)

@ -22,7 +22,7 @@ namespace mwmp
void newPlayer(RakNet::RakNetGUID guid);
void disconnectPlayer(RakNet::RakNetGUID guid);
void kickPlayer(RakNet::RakNetGUID guid);
void kickPlayer(RakNet::RakNetGUID guid, bool sendNotification = true);
void banAddress(const char *ipAddress);
void unbanAddress(const char *ipAddress);

Loading…
Cancel
Save