summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/commands.cpp3
-rw-r--r--src/servers.cpp8
2 files changed, 9 insertions, 2 deletions
diff --git a/src/commands.cpp b/src/commands.cpp
index 612444cb0..929a84f38 100644
--- a/src/commands.cpp
+++ b/src/commands.cpp
@@ -1662,7 +1662,8 @@ void handle_map(char **parameters, int pcnt, userrec *user)
{
for (int k = 0; k < me[j]->connectors.size(); k++)
{
- snprintf(line,MAXBUF,"006 %s :%c%c%s",user->nick,islast(me[j]->connectors[k].GetServerName().c_str()),me[j]->connectors[k].GetState() == STATE_CONNECTED ? '-' : '*',me[j]->connectors[k].GetServerName().c_str());
+ int state = me[j]->connectors[k].GetState();
+ snprintf(line,MAXBUF,"006 %s :%c%s%s",user->nick,islast(me[j]->connectors[k].GetServerName().c_str()),state == STATE_NOAUTH_INBOUND || state == STATE_NOAUTH_OUTBOUND ? "-*" : "--", me[j]->connectors[k].GetServerName().c_str());
while (strlen(line) < 50)
strcat(line," ");
WriteServ(user->fd,"%s%d (%.2f%%)",line,map_count(me[j]->connectors[k].GetServerName().c_str()),(float)(((float)map_count(me[j]->connectors[k].GetServerName().c_str())/(float)registered_usercount())*100));
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())