aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/m_spanningtree/server.cpp
diff options
context:
space:
mode:
authorGravatar Daniel De Graaf2010-10-10 00:46:55 -0400
committerGravatar Daniel De Graaf2010-10-10 00:54:28 -0400
commitde3871ce941ab3dc97cebb7a296c828428ab39a0 (patch)
treef7f5cd34b52657ea3f07f8dd328e5923086a281e /src/modules/m_spanningtree/server.cpp
parentFix compilation (diff)
Rewrite TreeSocket timeout and lifecycle management
Diffstat (limited to 'src/modules/m_spanningtree/server.cpp')
-rw-r--r--src/modules/m_spanningtree/server.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/modules/m_spanningtree/server.cpp b/src/modules/m_spanningtree/server.cpp
index 237db0136..ee1089ee8 100644
--- a/src/modules/m_spanningtree/server.cpp
+++ b/src/modules/m_spanningtree/server.cpp
@@ -147,18 +147,19 @@ bool TreeSocket::Outbound_Reply_Server(parameterlist &params)
* While we're at it, create a treeserver object so we know about them.
* -- w
*/
- this->LinkState = CONNECTED;
-
- Utils->timeoutlist.erase(this);
linkID = sname;
-
+ LinkState = CONNECTED;
MyRoot = new TreeServer(Utils, sname, description, sid, Utils->TreeRoot, this, x->Hidden);
-
Utils->TreeRoot->AddChild(MyRoot);
- params[4] = ":" + params[4];
- /* IMPORTANT: Take password/hmac hash OUT of here before we broadcast the introduction! */
+ // pretend this SERVER line was a PING so we don't time out during the burst
+ NextPing = ServerInstance->Time() + Utils->PingFreq;
+ LastPingWasGood = true;
+
+ /* Remove password from command prior to sending */
params[1] = "*";
+ params[4] = ":" + params[4];
+
Utils->DoOneToAllButSender(ServerInstance->Config->GetSID(),"SERVER",params,sname);
this->DoBurst(MyRoot);