mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 02:59:01 -04:00
More cleanup of quit servers
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12394 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
60805faa36
commit
d1b146808e
@ -150,6 +150,13 @@ void ModuleSpanningTree::DoPingChecks(time_t curtime)
|
|||||||
for (server_hash::iterator i = Utils->serverlist.begin(); i != Utils->serverlist.end(); i++)
|
for (server_hash::iterator i = Utils->serverlist.begin(); i != Utils->serverlist.end(); i++)
|
||||||
{
|
{
|
||||||
TreeServer *s = i->second;
|
TreeServer *s = i->second;
|
||||||
|
|
||||||
|
if (s->GetSocket() && s->GetSocket()->GetLinkState() == DYING)
|
||||||
|
{
|
||||||
|
s->GetSocket()->SendError("Ping timeout");
|
||||||
|
s->GetSocket()->Squit(s,"Ping timeout");
|
||||||
|
s->GetSocket()->Close();
|
||||||
|
}
|
||||||
|
|
||||||
// Fix for bug #792, do not ping servers that are not connected yet!
|
// Fix for bug #792, do not ping servers that are not connected yet!
|
||||||
// Remote servers have Socket == NULL and local connected servers have
|
// Remote servers have Socket == NULL and local connected servers have
|
||||||
|
@ -462,19 +462,13 @@ std::string TreeSocket::GetName()
|
|||||||
|
|
||||||
void TreeSocket::OnTimeout()
|
void TreeSocket::OnTimeout()
|
||||||
{
|
{
|
||||||
if (this->LinkState == CONNECTING)
|
ServerInstance->SNO->WriteGlobalSno('l', "CONNECT: Connection to \002%s\002 timed out.", myhost.c_str());
|
||||||
{
|
|
||||||
ServerInstance->SNO->WriteGlobalSno('l', "CONNECT: Connection to \002%s\002 timed out.", myhost.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TreeSocket::Close()
|
void TreeSocket::Close()
|
||||||
{
|
{
|
||||||
this->BufferedSocket::Close();
|
this->BufferedSocket::Close();
|
||||||
|
SetError("Remote host closed connection");
|
||||||
// Test fix for big fuckup
|
|
||||||
if (this->LinkState != CONNECTED)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Connection closed.
|
// Connection closed.
|
||||||
// If the connection is fully up (state CONNECTED)
|
// If the connection is fully up (state CONNECTED)
|
||||||
@ -485,9 +479,9 @@ void TreeSocket::Close()
|
|||||||
quitserver = this->InboundServerName;
|
quitserver = this->InboundServerName;
|
||||||
}
|
}
|
||||||
TreeServer* s = Utils->FindServer(quitserver);
|
TreeServer* s = Utils->FindServer(quitserver);
|
||||||
if (s)
|
if (s && s->GetSocket() == this)
|
||||||
{
|
{
|
||||||
Squit(s,"Remote host closed the connection");
|
Squit(s,getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!quitserver.empty())
|
if (!quitserver.empty())
|
||||||
@ -496,6 +490,6 @@ void TreeSocket::Close()
|
|||||||
|
|
||||||
time_t server_uptime = ServerInstance->Time() - this->age;
|
time_t server_uptime = ServerInstance->Time() - this->age;
|
||||||
if (server_uptime)
|
if (server_uptime)
|
||||||
ServerInstance->SNO->WriteGlobalSno('l', "Connection to '\2%s\2' was established for %s", quitserver.c_str(), Utils->Creator->TimeToStr(server_uptime).c_str());
|
ServerInstance->SNO->WriteGlobalSno('l', "Connection to '\2%s\2' was established for %s", quitserver.c_str(), Utils->Creator->TimeToStr(server_uptime).c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user