-#include "transport.h"
-
-#include "m_spanningtree/timesynctimer.h"
-#include "m_spanningtree/resolvers.h"
-#include "m_spanningtree/main.h"
-#include "m_spanningtree/utils.h"
-#include "m_spanningtree/treeserver.h"
-#include "m_spanningtree/link.h"
-#include "m_spanningtree/treesocket.h"
-#include "m_spanningtree/rconnect.h"
-#include "m_spanningtree/rsquit.h"
-#include "m_spanningtree/protocolinterface.h"
-
-/* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h m_spanningtree/protocolinterface.h */
-
-ModuleSpanningTree::ModuleSpanningTree(InspIRCd* Me)
- : Module(Me), max_local(0), max_global(0)
-{
- ServerInstance->Modules->UseInterface("BufferedSocketHook");
- Utils = new SpanningTreeUtilities(ServerInstance, this);
- command_rconnect = new cmd_rconnect(ServerInstance, this, Utils);
- ServerInstance->AddCommand(command_rconnect);
- command_rsquit = new cmd_rsquit(ServerInstance, this, Utils);
- ServerInstance->AddCommand(command_rsquit);
- RefreshTimer = new CacheRefreshTimer(ServerInstance, Utils);
- ServerInstance->Timers->AddTimer(RefreshTimer);
-
- Implementation eventlist[] =
- {
- I_OnPreCommand, I_OnGetServerDescription, I_OnUserInvite, I_OnPostLocalTopicChange,
- I_OnWallops, I_OnUserNotice, I_OnUserMessage, I_OnBackgroundTimer,
- I_OnUserJoin, I_OnChangeHost, I_OnChangeName, I_OnUserPart,
- I_OnUserQuit, I_OnUserPostNick, I_OnUserKick, I_OnRemoteKill, I_OnRehash,
- I_OnOper, I_OnAddLine, I_OnDelLine, I_ProtoSendMode, I_OnMode,
- I_OnStats, I_ProtoSendMetaData, I_OnEvent, I_OnSetAway, I_OnPostCommand
- };
- ServerInstance->Modules->Attach(eventlist, this, 27);
+#include "iohook.h"
+
+#include "resolvers.h"
+#include "main.h"
+#include "utils.h"
+#include "treeserver.h"
+#include "link.h"
+#include "treesocket.h"
+#include "commands.h"
+#include "protocolinterface.h"
+
+ModuleSpanningTree::ModuleSpanningTree()
+ : rconnect(this), rsquit(this), map(this)
+ , commands(NULL), DNS(this, "DNS")
+{
+}
+
+SpanningTreeCommands::SpanningTreeCommands(ModuleSpanningTree* module)
+ : svsjoin(module), svspart(module), svsnick(module), metadata(module),
+ uid(module), opertype(module), fjoin(module), ijoin(module), resync(module),
+ fmode(module), ftopic(module), fhost(module), fident(module), fname(module),
+ away(module), addline(module), delline(module), encap(module), idle(module),
+ nick(module), ping(module), pong(module), push(module), save(module),
+ server(module), squit(module), snonotice(module), version(module),
+ burst(module), endburst(module)
+{
+}
+
+void ModuleSpanningTree::init()
+{
+ ServerInstance->SNO->EnableSnomask('l', "LINK");
+
+ Utils = new SpanningTreeUtilities(this);
+ Utils->TreeRoot = new TreeServer;
+ commands = new SpanningTreeCommands(this);