forked from 0ad/0ad
Use a banmask for multiplayer matches that have lobby-authentication enabled.
This prevents a lobby player banned by the host from rejoining after getting a new IP address and changing the rating part of the nickname, refs #5320, #3241 /32da740f14
, #3549 /0fd8aa2a77
/ D897. Differential Revision: https://code.wildfiregames.com/D1655 Reproduced By: Hannibal_Barca This was SVN commit r21918.
This commit is contained in:
parent
9459825159
commit
404f2c48b3
@ -804,7 +804,7 @@ void CNetServerWorker::KickPlayer(const CStrW& playerName, const bool ban)
|
||||
{
|
||||
// Remember name
|
||||
if (std::find(m_BannedPlayers.begin(), m_BannedPlayers.end(), playerName) == m_BannedPlayers.end())
|
||||
m_BannedPlayers.push_back(playerName);
|
||||
m_BannedPlayers.push_back(m_LobbyAuth ? CStrW(playerName.substr(0, playerName.find(L" ("))) : playerName);
|
||||
|
||||
// Remember IP address
|
||||
u32 ipAddress = (*it)->GetIPAddress();
|
||||
@ -988,7 +988,7 @@ bool CNetServerWorker::OnAuthenticate(void* context, CFsmEvent* event)
|
||||
}
|
||||
|
||||
// Disconnect banned usernames
|
||||
if (std::find(server.m_BannedPlayers.begin(), server.m_BannedPlayers.end(), username) != server.m_BannedPlayers.end())
|
||||
if (std::find(server.m_BannedPlayers.begin(), server.m_BannedPlayers.end(), server.m_LobbyAuth ? usernameWithoutRating : username) != server.m_BannedPlayers.end())
|
||||
{
|
||||
session->Disconnect(NDR_BANNED);
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user