From ba86605dd081407c00a45559f288ba6a4046c3cd Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Sun, 27 Jul 2014 19:01:13 +0200 Subject: m_spanningtree Only mark one server as finished bursting on ENDBURST (or PONG), not all behind it --- src/modules/m_spanningtree/treeserver.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/modules') diff --git a/src/modules/m_spanningtree/treeserver.cpp b/src/modules/m_spanningtree/treeserver.cpp index 3a7d8c4a9..3adbcb530 100644 --- a/src/modules/m_spanningtree/treeserver.cpp +++ b/src/modules/m_spanningtree/treeserver.cpp @@ -129,9 +129,11 @@ const std::string& TreeServer::GetID() void TreeServer::FinishBurstInternal() { - StartBurst = 0; - SetNextPingTime(ServerInstance->Time() + Utils->PingFreq); - SetPingFlag(); + if (!IsBursting()) + { + SetNextPingTime(ServerInstance->Time() + Utils->PingFreq); + SetPingFlag(); + } for (ChildServers::const_iterator i = Children.begin(); i != Children.end(); ++i) { TreeServer* child = *i; @@ -148,6 +150,7 @@ void TreeServer::FinishBurst() GetName().c_str(), (bursttime > 10000 ? bursttime / 1000 : bursttime), (bursttime > 10000 ? "secs" : "msecs")); AddServerEvent(Utils->Creator, GetName()); + StartBurst = 0; FinishBurstInternal(); } -- cgit v1.2.3