diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-08-28 13:49:49 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-08-28 13:49:49 +0000 |
commit | 604293be421e01e2c0758b62edc4f7ef23f2d749 (patch) | |
tree | 01fc93720b1b1c632095467715b3aaef7e890d09 | |
parent | 0b6c95b262f43611e9d884d022cda8c49a012b67 (diff) |
Fix ping timeouts to properly close and free the socket, same with /SQUIT
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5044 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/modules/m_spanningtree.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index d93753792..a170d3e55 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -239,7 +239,7 @@ class TreeServer : public classbase { VersionString = ""; UserCount = OperCount = 0; - this->SetNextPingTime(time(NULL) + 120); + this->SetNextPingTime(time(NULL) + 60); this->SetPingFlag(); /* find the 'route' for this server (e.g. the one directly connected @@ -2708,7 +2708,7 @@ class TreeSocket : public InspSocket * When there is activity on the socket, reset the ping counter so * that we're not wasting bandwidth pinging an active server. */ - route_back_again->SetNextPingTime(time(NULL) + 120); + route_back_again->SetNextPingTime(time(NULL) + 60); route_back_again->SetPingFlag(); } @@ -3644,6 +3644,8 @@ class ModuleSpanningTree : public Module ServerInstance->WriteOpers("*** SQUIT: Server \002%s\002 removed from network by %s",parameters[0],user->nick); sock->Squit(s,"Server quit by "+std::string(user->nick)+"!"+std::string(user->ident)+"@"+std::string(user->host)); ServerInstance->SE->DelFd(sock); + sock->Close(); + delete sock; } else { @@ -3716,7 +3718,7 @@ class ModuleSpanningTree : public Module if (serv->AnsweredLastPing()) { sock->WriteLine(std::string(":")+ServerInstance->Config->ServerName+" PING "+serv->GetName()); - serv->SetNextPingTime(curtime + 120); + serv->SetNextPingTime(curtime + 60); } else { @@ -3724,6 +3726,8 @@ class ModuleSpanningTree : public Module ServerInstance->WriteOpers("*** Server \002%s\002 pinged out",serv->GetName().c_str()); sock->Squit(serv,"Ping timeout"); ServerInstance->SE->DelFd(sock); + sock->Close(); + delete sock; return; } } |