Check property duplicate login names

* Check for duplicate login in TOSERVER_INIT handler
  backported 492110a640
  i.e. checks for duplicate logins before sending all media data to the client
stable-5.2-namespace
mckaygerhard 2023-09-17 20:20:22 -04:00
parent aa8cfe19db
commit 083087ae78
1 changed files with 10 additions and 0 deletions

View File

@ -173,6 +173,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(pkt->getPeerId(), SERVER_ACCESSDENIED_ALREADY_CONNECTED);
return;
}
m_clients.setPlayerName(pkt->getPeerId(), playername);
//TODO (later) case insensitivity