diff options
author | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-10-23 20:03:59 +0000 |
---|---|---|
committer | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-10-23 20:03:59 +0000 |
commit | ab5750dbebe913f2a75117fd01a7f0d7fcc34dd3 (patch) | |
tree | 8722ac670f9f0915ae23fd35185805ee6141a568 | |
parent | b6a916c78b573e612a8306d1ec4aa262c6a08631 (diff) |
Fix memory leaks on reloadmodule and spanningtree unload while connecting servers
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11960 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/commands/cmd_reloadmodule.cpp | 1 | ||||
-rw-r--r-- | src/modules/m_spanningtree/utils.cpp | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/commands/cmd_reloadmodule.cpp b/src/commands/cmd_reloadmodule.cpp index 76920b758..20d520efe 100644 --- a/src/commands/cmd_reloadmodule.cpp +++ b/src/commands/cmd_reloadmodule.cpp @@ -43,6 +43,7 @@ class ReloadModuleWorker : public HandlerBase1<void, bool> if (user) user->WriteNumeric(975, "%s %s :Module %ssuccessfully reloaded.", user->nick.c_str(), name.c_str(), result ? "" : "un"); + ServerInstance->GlobalCulls.AddItem(this); } }; diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index 0b9b8da3b..e5012dcba 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -165,6 +165,12 @@ CullResult SpanningTreeUtilities::cull() } } + for(std::map<TreeSocket*, std::pair<std::string, int> >::iterator i = timeoutlist.begin(); i != timeoutlist.end(); ++i) + { + TreeSocket* s = i->first; + ServerInstance->GlobalCulls.AddItem(s); + } + ServerUser->uuid = TreeRoot->GetID(); ServerUser->cull(); delete ServerUser; |