summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-23 20:03:59 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-23 20:03:59 +0000
commitab5750dbebe913f2a75117fd01a7f0d7fcc34dd3 (patch)
tree8722ac670f9f0915ae23fd35185805ee6141a568
parentb6a916c78b573e612a8306d1ec4aa262c6a08631 (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.cpp1
-rw-r--r--src/modules/m_spanningtree/utils.cpp6
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;