From: Matt Schatz Date: Tue, 31 Mar 2020 07:54:54 +0000 (-0600) Subject: Don't override a different Displayed Host with the rDNS. X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=d6133886f5a84000fcb2df6e993d252ecb55b72d;hp=fe23e07f024c2cbcb05007f3ed70c9acf632a2f0;p=user%2Fhenk%2Fcode%2Finspircd.git Don't override a different Displayed Host with the rDNS. If the dnsbl module is set to mark with a vHost, it can finish before the hostname resolution finishes. This is especially the case when the result is already cached. Resolves #1770. --- diff --git a/src/coremods/core_hostname_lookup.cpp b/src/coremods/core_hostname_lookup.cpp index 60f858ecd..0dd077a8e 100644 --- a/src/coremods/core_hostname_lookup.cpp +++ b/src/coremods/core_hostname_lookup.cpp @@ -136,7 +136,8 @@ class UserResolver : public DNS::Request if (rev_match) { bound_user->WriteNotice("*** Found your hostname (" + this->question.name + (r->cached ? ") -- cached" : ")")); - bound_user->ChangeRealHost(this->question.name, true); + bool display_is_real = bound_user->GetDisplayedHost() == bound_user->GetRealHost(); + bound_user->ChangeRealHost(this->question.name, display_is_real); dl->unset(bound_user); } else