]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree.cpp
Remember to delete the tree root when unloading the module
[user/henk/code/inspircd.git] / src / modules / m_spanningtree.cpp
index 95e252cc48a654726e59d4e2251151e7667c4e03..3bf13d59afceb054232533909a1db3bf20acc583 100644 (file)
@@ -80,6 +80,28 @@ class ModuleSpanningTree;
  */
 typedef nspace::hash_map<std::string, TreeServer*, nspace::hash<string>, irc::StrHashComp> server_hash;
 
+
+/** The Link class might as well be a struct,
+ * but this is C++ and we don't believe in structs (!).
+ * It holds the entire information of one <link>
+ * tag from the main config file. We maintain a list
+ * of them, and populate the list on rehash/load.
+ */
+class Link : public classbase
+{
+ public:
+       irc::string Name;
+       std::string IPAddr;
+       int Port;
+       std::string SendPass;
+       std::string RecvPass;
+       unsigned long AutoConnect;
+       time_t NextConnectTime;
+       std::string EncryptionKey;
+       bool HiddenFromStats;
+       std::string FailOver;
+};
+
 /** Contains helper functions and variables for this module,
  * and keeps them out of the global namespace
  */
@@ -491,27 +513,6 @@ class TreeServer : public classbase
        }
 };
 
-/** The Link class might as well be a struct,
- * but this is C++ and we don't believe in structs (!).
- * It holds the entire information of one <link>
- * tag from the main config file. We maintain a list
- * of them, and populate the list on rehash/load.
- */
-class Link : public classbase
-{
- public:
-       irc::string Name;
-       std::string IPAddr;
-       int Port;
-       std::string SendPass;
-       std::string RecvPass;
-       unsigned long AutoConnect;
-       time_t NextConnectTime;
-       std::string EncryptionKey;
-       bool HiddenFromStats;
-       irc::string FailOver;
-};
-
 /** Yay for fast searches!
  * This is hundreds of times faster than recursion
  * or even scanning a linked list, especially when
@@ -3563,6 +3564,7 @@ SpanningTreeUtilities::~SpanningTreeUtilities()
                        DELETE(sock);
                }
        }
+       delete TreeRoot;
 }
 
 void SpanningTreeUtilities::AddThisServer(TreeServer* server, std::deque<TreeServer*> &list)