summaryrefslogtreecommitdiff
path: root/src/servers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/servers.cpp')
-rw-r--r--src/servers.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/servers.cpp b/src/servers.cpp
index 7ae90e41b..0e47ecfba 100644
--- a/src/servers.cpp
+++ b/src/servers.cpp
@@ -253,13 +253,19 @@ void serverrec::FlushWriteBuffers()
for (int i = 0; i < this->connectors.size(); i++)
{
// don't try and ping a NOAUTH_OUTBOUND state, its not authed yet!
- if (this->connectors[i].GetState() != STATE_NOAUTH_OUTBOUND)
+ if ((this->connectors[i].GetState() == STATE_NOAUTH_OUTBOUND) && (TIME > this->connectors[i].age+30))
{
// however if we reach this timer its connected timed out :)
WriteOpers("*** Connection to %s timed out",this->connectors[i].GetServerName().c_str());
DoSplit(this->connectors[i].GetServerName().c_str());
return;
}
+ else if ((this->connectors[i].GetState() == STATE_NOAUTH_INBOUND) && (TIME > this->connectors[i].age+30))
+ {
+ WriteOpers("*** Connection from %s timed out",this->connectors[i].GetServerName().c_str());
+ DoSplit(this->connectors[i].GetServerName().c_str());
+ return;
+ }
else if (this->connectors[i].GetState() != STATE_DISCONNECTED)
{
if (!this->connectors[i].CheckPing())