summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cmd_nick.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/cmd_nick.cpp b/src/cmd_nick.cpp
index 4b3317a9f..21723fafc 100644
--- a/src/cmd_nick.cpp
+++ b/src/cmd_nick.cpp
@@ -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)
{