diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/m_spanningtree.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index 54a85cb02..1424739ec 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -527,6 +527,7 @@ class TreeSocket : public InspSocket int num_lost_servers; time_t NextPing; bool LastPingWasGood; + bool Bursting; public: @@ -936,7 +937,10 @@ class TreeSocket : public InspSocket clientlist[tempnick]->chans[i].channel = NULL; clientlist[tempnick]->chans[i].uc_modes = 0; } - WriteOpers("*** Client connecting at %s: %s!%s@%s [%s]",clientlist[tempnick]->server,clientlist[tempnick]->nick,clientlist[tempnick]->ident,clientlist[tempnick]->host,clientlist[tempnick]->ip); + if (!this->bursting) + { + WriteOpers("*** Client connecting at %s: %s!%s@%s [%s]",clientlist[tempnick]->server,clientlist[tempnick]->nick,clientlist[tempnick]->ident,clientlist[tempnick]->host,clientlist[tempnick]->ip); + } params[7] = ":" + params[7]; DoOneToAllButSender(source,"NICK",params,source); return true; @@ -1428,6 +1432,7 @@ class TreeSocket : public InspSocket TreeRoot->AddChild(Node); params[3] = ":" + params[3]; DoOneToAllButSender(TreeRoot->GetName(),"SERVER",params,servername); + this->bursting = true; this->DoBurst(Node); return true; } @@ -1592,6 +1597,7 @@ class TreeSocket : public InspSocket params.push_back("1"); params.push_back(":"+InboundDescription); DoOneToAllButSender(TreeRoot->GetName(),"SERVER",params,InboundServerName); + this->bursting = true; this->DoBurst(Node); } else if (command == "ERROR") @@ -1723,6 +1729,11 @@ class TreeSocket : public InspSocket } return true; } + else if (command == "ENDBURST") + { + this->bursting = false; + return true; + } else { // not a special inter-server command. |