From a14cf3eed86b9ce638a0465e0c4dbb817710fb79 Mon Sep 17 00:00:00 2001 From: danieldg Date: Sat, 30 Jan 2010 15:44:51 +0000 Subject: 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 --- src/usermanager.cpp | 2 ++ src/users.cpp | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) 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(); } -- cgit v1.2.3