summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2014-07-28 14:50:28 +0200
committerAttila Molnar <attilamolnar@hush.com>2014-07-28 14:50:28 +0200
commit662364f8551b3db2a3cbc0000f2d3eec091d8e07 (patch)
treedf695d96c895b245b867d0c75676394b7a428b20 /src/modules/m_spanningtree
parentd572f1a67dbe8979f616cd2451b11a422cce0ade (diff)
Allow fast sid reuse by erasing fake users from UserManager::uuidlist when the netsplit is handled, not in cull()
Diffstat (limited to 'src/modules/m_spanningtree')
-rw-r--r--src/modules/m_spanningtree/treeserver.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/treeserver.cpp b/src/modules/m_spanningtree/treeserver.cpp
index 9b92ba988..009478635 100644
--- a/src/modules/m_spanningtree/treeserver.cpp
+++ b/src/modules/m_spanningtree/treeserver.cpp
@@ -358,6 +358,10 @@ TreeServer::~TreeServer()
void TreeServer::RemoveHash()
{
+ // XXX: Erase server from UserManager::uuidlist now, to allow sid reuse in the current main loop
+ // iteration, before the cull list is applied
+ ServerInstance->Users->uuidlist.erase(sid);
+
Utils->sidlist.erase(sid);
Utils->serverlist.erase(GetName());
}