diff options
author | Attila Molnar <attilamolnar@hush.com> | 2014-07-27 19:01:13 +0200 |
---|---|---|
committer | Attila Molnar <attilamolnar@hush.com> | 2014-07-27 19:01:13 +0200 |
commit | ba86605dd081407c00a45559f288ba6a4046c3cd (patch) | |
tree | e46ad388d501455bf687ae4d3c7588236c019e05 /src | |
parent | c1fa07d2eb6146a9e3f6c26f478a22b119032d27 (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.cpp | 9 |
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(); } |