diff options
| author | 2012-05-31 22:47:24 +0200 | |
|---|---|---|
| committer | 2012-06-12 22:49:29 -0700 | |
| commit | 451fe7bc41d3260a6d4dac49c32c4575b4b5e28f (patch) | |
| tree | fa79c004af2fdf099788fa1494c1cdb6bf14fc38 /src/modules/m_spanningtree/treesocket1.cpp | |
| parent | Be 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.cpp | 12 |
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); |
