diff options
author | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2010-01-30 15:44:51 +0000 |
---|---|---|
committer | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2010-01-30 15:44:51 +0000 |
commit | a14cf3eed86b9ce638a0465e0c4dbb817710fb79 (patch) | |
tree | 7aa602bb7d6c33f47b78f5cbf0150ee6322d4421 | |
parent | 96e4434f9078bf3db0dad96d56f35cbee53252d5 (diff) |
Remove users from uuidlist on QuitUser, not during cull (allows UID reuse on fast netsplits)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12326 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/usermanager.cpp | 2 | ||||
-rw-r--r-- | src/users.cpp | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/usermanager.cpp b/src/usermanager.cpp index 8bb043f90..9f5f8c937 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -242,6 +242,8 @@ void UserManager::QuitUser(User *user, const std::string &quitreason, const char this->clientlist->erase(iter); else ServerInstance->Logs->Log("USERS", DEBUG, "iter == clientlist->end, can't remove them from hash... problematic.."); + + ServerInstance->Users->uuidlist->erase(user->uuid); } diff --git a/src/users.cpp b/src/users.cpp index 73c441437..eea27f6f7 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -575,7 +575,6 @@ CullResult User::cull() if (client_sa.sa.sa_family != AF_UNSPEC) ServerInstance->Users->RemoveCloneCounts(this); - ServerInstance->Users->uuidlist->erase(uuid); return Extensible::cull(); } |