summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/users.h2
-rw-r--r--src/user_resolver.cpp6
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++;
}
}
-
-