X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fmain.cpp;h=ee4c4bdd8b656e3d90163ef5ca5f37b6058f90de;hb=f62654a6859998f9d63eb22702c572d5ebcff15c;hp=979048d65fd9f08e98d0efa4a8fc0200b1c3822d;hpb=cec9265bdbb63c06d73cb983b3fc293905ed79d2;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp index 979048d65..ee4c4bdd8 100644 --- a/src/modules/m_spanningtree/main.cpp +++ b/src/modules/m_spanningtree/main.cpp @@ -62,16 +62,16 @@ namespace // Does not change the server of quitting users because those are not in the list ServerInstance->FakeClient->server = newserver; - const LocalUserList& list = ServerInstance->Users->local_users; - for (LocalUserList::const_iterator i = list.begin(); i != list.end(); ++i) + const UserManager::LocalList& list = ServerInstance->Users.GetLocalUsers(); + for (UserManager::LocalList::const_iterator i = list.begin(); i != list.end(); ++i) (*i)->server = newserver; } void ResetMembershipIds() { // Set all membership ids to 0 - const LocalUserList& list = ServerInstance->Users->local_users; - for (LocalUserList::iterator i = list.begin(); i != list.end(); ++i) + const UserManager::LocalList& list = ServerInstance->Users.GetLocalUsers(); + for (UserManager::LocalList::iterator i = list.begin(); i != list.end(); ++i) { LocalUser* user = *i; for (User::ChanList::iterator j = user->chans.begin(); j != user->chans.end(); ++j) @@ -421,11 +421,6 @@ ModResult ModuleSpanningTree::HandleConnect(const std::vector& para return MOD_RES_DENY; } -void ModuleSpanningTree::On005Numeric(std::map& tokens) -{ - tokens["MAP"]; -} - void ModuleSpanningTree::OnUserInvite(User* source,User* dest,Channel* channel, time_t expiry) { if (IS_LOCAL(source)) @@ -699,6 +694,7 @@ void ModuleSpanningTree::OnUnloadModule(Module* mod) return; ServerInstance->PI->SendMetaData("modules", "-" + mod->ModuleSourceFile); +restart: // Close all connections which use an IO hook provided by this module const TreeServer::ChildServers& list = Utils->TreeRoot->GetChildren(); for (TreeServer::ChildServers::const_iterator i = list.begin(); i != list.end(); ++i) @@ -708,6 +704,8 @@ void ModuleSpanningTree::OnUnloadModule(Module* mod) { sock->SendError("SSL module unloaded"); sock->Close(); + // XXX: The list we're iterating is modified by TreeSocket::Squit() which is called by Close() + goto restart; } }