Check for duplicate login in TOSERVER_INIT handler (#11017)

i.e. checks for duplicate logins before sending all media data to the client.
This commit is contained in:
Elias Fleckenstein 2021-03-19 21:45:29 +01:00 committed by GitHub
parent 59a1b53d67
commit 492110a640
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -174,6 +174,16 @@ void Server::handleCommand_Init(NetworkPacket* pkt)
return;
}
RemotePlayer *player = m_env->getPlayer(playername);
// If player is already connected, cancel
if (player && player->getPeerId() != PEER_ID_INEXISTENT) {
actionstream << "Server: Player with name \"" << playername <<
"\" tried to connect, but player with same name is already connected" << std::endl;
DenyAccess(peer_id, SERVER_ACCESSDENIED_ALREADY_CONNECTED);
return;
}
m_clients.setPlayerName(peer_id, playername);
//TODO (later) case insensitivity