aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/m_spanningtree/treesocket1.cpp
diff options
context:
space:
mode:
authorGravatar attilamolnar2012-05-31 22:47:24 +0200
committerGravatar Sir Poggles2012-06-12 22:49:29 -0700
commit451fe7bc41d3260a6d4dac49c32c4575b4b5e28f (patch)
treefa79c004af2fdf099788fa1494c1cdb6bf14fc38 /src/modules/m_spanningtree/treesocket1.cpp
parentBe consistent with Robby's qQ snomask changes (diff)
m_spanningtree Burst to a new server before introducing it to the rest of the network
Fixes issue #103 reported by @nenolod
Diffstat (limited to 'src/modules/m_spanningtree/treesocket1.cpp')
-rw-r--r--src/modules/m_spanningtree/treesocket1.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp
index 673b05c55..dcb35af31 100644
--- a/src/modules/m_spanningtree/treesocket1.cpp
+++ b/src/modules/m_spanningtree/treesocket1.cpp
@@ -183,10 +183,14 @@ void TreeSocket::Squit(TreeServer* Current, const std::string &reason)
{
DelServerEvent(Utils->Creator, Current->GetName());
- parameterlist params;
- params.push_back(Current->GetName());
- params.push_back(":"+reason);
- Utils->DoOneToAllButSender(Current->GetParent()->GetName(),"SQUIT",params,Current->GetName());
+ if (!Current->GetSocket() || Current->GetSocket()->GetLinkState() == CONNECTED)
+ {
+ parameterlist params;
+ params.push_back(Current->GetName());
+ params.push_back(":"+reason);
+ Utils->DoOneToAllButSender(Current->GetParent()->GetName(),"SQUIT",params,Current->GetName());
+ }
+
if (Current->GetParent() == Utils->TreeRoot)
{
ServerInstance->SNO->WriteGlobalSno('l', "Server \002"+Current->GetName()+"\002 split: "+reason);