From 473f3d3b2f973a1d746aa456dd874e4094ac9388 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Sun, 2 Mar 2014 17:00:12 +0100 Subject: m_spanningtree Don't send snotices to servers about remote servers splitting The snotice is sent to opers when the SQUIT is processed by their server --- src/modules/m_spanningtree/treesocket1.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/modules/m_spanningtree/treesocket1.cpp') diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index cb2c93548..7b233169d 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -201,7 +201,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; -- cgit v1.3.1-10-gc9f91 From ed08638c1afa2742f0ebc3006dd0f1054020f7d4 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Sun, 2 Mar 2014 17:04:51 +0100 Subject: m_spanningtree Do pointer comparison before deleting one of the pointers in TreeSocket::Squit() While the previous code worked fine in practice, it was incorrect in theory --- src/modules/m_spanningtree/treesocket1.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/modules/m_spanningtree/treesocket1.cpp') diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index 7b233169d..c9729cc0f 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -212,8 +212,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(); -- cgit v1.3.1-10-gc9f91