From de3871ce941ab3dc97cebb7a296c828428ab39a0 Mon Sep 17 00:00:00 2001 From: Daniel De Graaf Date: Sun, 10 Oct 2010 00:46:55 -0400 Subject: Rewrite TreeSocket timeout and lifecycle management --- src/modules/m_spanningtree/server.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/modules/m_spanningtree/server.cpp') 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 ¶ms) * 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); -- cgit v1.3.1-10-gc9f91