Fixed bug in handling rejection of screen with name that's already

in use.  The client was being correctly rejected but the already
connected client was being forcefully disconnected too because the
client to disconnect was found by looking up the client by name.
We now instead look up the client by IClient*.
This commit is contained in:
crs 2004-04-05 21:23:44 +00:00
parent 3db9facb6c
commit bede6352c1
1 changed files with 4 additions and 4 deletions

View File

@ -1507,8 +1507,8 @@ bool
CServer::removeClient(IClient* client) CServer::removeClient(IClient* client)
{ {
// return false if not in list // return false if not in list
CClientList::iterator i = m_clients.find(getName(client)); CClientSet::iterator i = m_clientSet.find(client);
if (i == m_clients.end()) { if (i == m_clientSet.end()) {
return false; return false;
} }
@ -1521,8 +1521,8 @@ CServer::removeClient(IClient* client)
client->getEventTarget()); client->getEventTarget());
// remove from list // remove from list
m_clients.erase(i); m_clients.erase(getName(client));
m_clientSet.erase(client); m_clientSet.erase(i);
return true; return true;
} }