summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2010-01-30 15:44:51 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2010-01-30 15:44:51 +0000
commita14cf3eed86b9ce638a0465e0c4dbb817710fb79 (patch)
tree7aa602bb7d6c33f47b78f5cbf0150ee6322d4421
parent96e4434f9078bf3db0dad96d56f35cbee53252d5 (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.cpp2
-rw-r--r--src/users.cpp1
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();
}