aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/m_spanningtree
diff options
context:
space:
mode:
authorGravatar Attila Molnar2014-04-07 13:40:51 +0200
committerGravatar Attila Molnar2014-04-07 13:40:51 +0200
commitf71e6bf9cb41811f18864f5d4eecb26e29d03f25 (patch)
tree88586e73f7ff864081b8831a88637680267b7201 /src/modules/m_spanningtree
parentm_override Deduplicate code (diff)
parentRelease 2.0.16 (diff)
Merge insp20
Diffstat (limited to 'src/modules/m_spanningtree')
-rw-r--r--src/modules/m_spanningtree/idle.cpp2
-rw-r--r--src/modules/m_spanningtree/treesocket1.cpp5
2 files changed, 4 insertions, 3 deletions
diff --git a/src/modules/m_spanningtree/idle.cpp b/src/modules/m_spanningtree/idle.cpp
index d7c0cdf1b..1b020701b 100644
--- a/src/modules/m_spanningtree/idle.cpp
+++ b/src/modules/m_spanningtree/idle.cpp
@@ -35,7 +35,7 @@ CmdResult CommandIdle::HandleRemote(RemoteUser* issuer, std::vector<std::string>
*/
User* target = ServerInstance->FindUUID(params[0]);
- if ((!target) || (IS_SERVER(target)))
+ if ((!target) || (IS_SERVER(target) || (target->registered != REG_ALL)))
return CMD_FAILURE;
LocalUser* localtarget = IS_LOCAL(target);
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp
index 9c262f1ea..9da06e829 100644
--- a/src/modules/m_spanningtree/treesocket1.cpp
+++ b/src/modules/m_spanningtree/treesocket1.cpp
@@ -188,7 +188,7 @@ void TreeSocket::Squit(TreeServer* Current, const std::string &reason)
}
else
{
- ServerInstance->SNO->WriteGlobalSno('L', "Server \002"+Current->GetName()+"\002 split from server \002"+Current->GetParent()->GetName()+"\002 with reason: "+reason);
+ ServerInstance->SNO->WriteToSnoMask('L', "Server \002"+Current->GetName()+"\002 split from server \002"+Current->GetParent()->GetName()+"\002 with reason: "+reason);
}
int num_lost_servers = 0;
int num_lost_users = 0;
@@ -204,8 +204,9 @@ void TreeSocket::Squit(TreeServer* Current, const std::string &reason)
Current->Tidy();
Current->GetParent()->DelChild(Current);
Current->cull();
+ const bool ismyroot = (Current == MyRoot);
delete Current;
- if (Current == MyRoot)
+ if (ismyroot)
{
MyRoot = NULL;
Close();