diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/users.cpp | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/users.cpp b/src/users.cpp index 84bdbb9d6..84f762640 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -149,8 +149,12 @@ void UserResolver::OnLookupComplete(const std::string &result) this->bound_user->stored_host = result; try { - bound_user->res_forward = new UserResolver(this->ServerInstance, this->bound_user, result, true); - this->ServerInstance->AddResolver(bound_user->res_forward); + /* Check we didnt time out */ + if (this->bound_user->registered != REG_ALL) + { + bound_user->res_forward = new UserResolver(this->ServerInstance, this->bound_user, result, true); + this->ServerInstance->AddResolver(bound_user->res_forward); + } } catch (ModuleException& e) { @@ -165,14 +169,18 @@ void UserResolver::OnLookupComplete(const std::string &result) std::string hostname = this->bound_user->stored_host; if (hostname.length() < 65) { - /* Hostnames starting with : are not a good thing (tm) */ - if (*(hostname.c_str()) == ':') - hostname = "0" + hostname; - - this->bound_user->WriteServ("NOTICE Auth :*** Found your hostname (%s)", hostname.c_str()); - this->bound_user->dns_done = true; - strlcpy(this->bound_user->dhost, hostname.c_str(),64); - strlcpy(this->bound_user->host, hostname.c_str(),64); + /* Check we didnt time out */ + if (this->bound_user->registered != REG_ALL) + { + /* Hostnames starting with : are not a good thing (tm) */ + if (*(hostname.c_str()) == ':') + hostname = "0" + hostname; + + this->bound_user->WriteServ("NOTICE Auth :*** Found your hostname (%s)", hostname.c_str()); + this->bound_user->dns_done = true; + strlcpy(this->bound_user->dhost, hostname.c_str(),64); + strlcpy(this->bound_user->host, hostname.c_str(),64); + } } else { |