If the result is cached, dont bother waiting for the dns timeout, release them at the next timer tick if all modules are satisfied

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6255 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
brain 2007-01-07 22:11:18 +00:00
parent fe46f3c228
commit adee2d71f5

View File

@ -131,15 +131,22 @@ CmdResult cmd_nick::Handle (const char** parameters, int pcnt, userrec *user)
if (ServerInstance->Config->NoUserDns)
{
user->dns_done = true;
ServerInstance->next_call = ServerInstance->Time();
}
else
{
user->StartDNSLookup();
if (user->dns_done)
ServerInstance->Log(DEBUG,"Aborting dns lookup of %s because dns server experienced a failure.",user->nick);
{
/* Cached result or instant failure - fall right through if possible */
ServerInstance->next_call = ServerInstance->Time();
}
else
{
if (ServerInstance->next_call > ServerInstance->Time() + ServerInstance->Config->dns_timeout)
ServerInstance->next_call = ServerInstance->Time() + ServerInstance->Config->dns_timeout;
}
}
if (ServerInstance->next_call > ServerInstance->Time() + ServerInstance->Config->dns_timeout)
ServerInstance->next_call = ServerInstance->Time() + ServerInstance->Config->dns_timeout;
}
if (user->registered == REG_NICKUSER)
{