X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmodules%2Fm_spanningtree%2Fmain.cpp;h=b38929ad00b2b6a935aa5f80c36964cf7c0fdf0e;hb=828f256a9bd8278540bf4beede36c485e2c3e86f;hp=ad51f4019a41056a29df24689911c4fff72cb9cf;hpb=1f610e7c1fece538fc6757b076ac1a0b889a3fce;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp index ad51f4019..b38929ad0 100644 --- a/src/modules/m_spanningtree/main.cpp +++ b/src/modules/m_spanningtree/main.cpp @@ -58,6 +58,7 @@ ModuleSpanningTree::ModuleSpanningTree(InspIRCd* Me) delete ServerInstance->PI; ServerInstance->PI = new SpanningTreeProtocolInterface(this, Utils, ServerInstance); + loopCall = false; for (std::vector::const_iterator i = ServerInstance->Users->local_users.begin(); i != ServerInstance->Users->local_users.end(); i++) { @@ -195,7 +196,7 @@ void ModuleSpanningTree::DoPingChecks(time_t curtime) // Fix for bug #792, do not ping servers that are not connected yet! // Remote servers have Socket == NULL and local connected servers have // Socket->LinkState == CONNECTED - if (!s->GetSocket() || s->GetSocket()->GetLinkState() == CONNECTED) + if (s->GetSocket() && s->GetSocket()->GetLinkState() != CONNECTED) continue; // Now do PING checks on all servers @@ -676,6 +677,8 @@ void ModuleSpanningTree::OnUserPostNick(User* user, const std::string &oldnick) void ModuleSpanningTree::OnUserKick(User* source, User* user, Channel* chan, const std::string &reason, bool &silent) { + if (loopCall) + return; if ((source) && (IS_LOCAL(source))) { std::deque params; @@ -769,7 +772,7 @@ void ModuleSpanningTree::OnOper(User* user, const std::string &opertype) void ModuleSpanningTree::OnAddLine(User* user, XLine *x) { - if (!x->IsBurstable()) + if (!x->IsBurstable() || loopCall) return; char data[MAXBUF];