summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2014-07-27 19:01:13 +0200
committerAttila Molnar <attilamolnar@hush.com>2014-07-27 19:01:13 +0200
commitba86605dd081407c00a45559f288ba6a4046c3cd (patch)
treee46ad388d501455bf687ae4d3c7588236c019e05 /src
parentc1fa07d2eb6146a9e3f6c26f478a22b119032d27 (diff)
m_spanningtree Only mark one server as finished bursting on ENDBURST (or PONG), not all behind it
Diffstat (limited to 'src')
-rw-r--r--src/modules/m_spanningtree/treeserver.cpp9
1 files changed, 6 insertions, 3 deletions
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();
}