diff options
-rw-r--r-- | include/users.h | 2 | ||||
-rw-r--r-- | src/user_resolver.cpp | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/include/users.h b/include/users.h index 1eb48c2f0..5aff66e54 100644 --- a/include/users.h +++ b/include/users.h @@ -520,7 +520,7 @@ class CoreExport User : public EventHandler */ time_t nping; - /** Stored reverse lookup from res_forward + /** Stored reverse lookup from res_forward. Should not be used after resolution. */ std::string stored_host; diff --git a/src/user_resolver.cpp b/src/user_resolver.cpp index ec2f0cb87..9ca75cb5b 100644 --- a/src/user_resolver.cpp +++ b/src/user_resolver.cpp @@ -102,6 +102,9 @@ void UserResolver::OnLookupComplete(const std::string &result, unsigned int ttl, this->bound_user->dns_done = true; } } + + // Save some memory by freeing this up; it's never used again in the user's lifetime. + this->bound_user->stored_host.resize(0); } } @@ -111,8 +114,7 @@ void UserResolver::OnError(ResolverError e, const std::string &errormessage) { this->bound_user->WriteServ("NOTICE Auth :*** Could not resolve your hostname: %s; using your IP address (%s) instead.", errormessage.c_str(), this->bound_user->GetIPString()); this->bound_user->dns_done = true; + this->bound_user->stored_host.resize(0); ServerInstance->stats->statsDnsBad++; } } - - |