X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcoremods%2Fcore_hostname_lookup.cpp;h=91d817765a17cafb44629b7a11e46d6bdf490c57;hb=338ddb0e59a918dc8e7654bc360a526187e5490c;hp=7bc074a3d7ba52e9b9358b7142cf4c2b1849526c;hpb=bed84ae400fc3ea20ed8c078ca50faf4e006f8a6;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/coremods/core_hostname_lookup.cpp b/src/coremods/core_hostname_lookup.cpp index 7bc074a3d..91d817765 100644 --- a/src/coremods/core_hostname_lookup.cpp +++ b/src/coremods/core_hostname_lookup.cpp @@ -1,7 +1,10 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2013-2016 Adam + * Copyright (C) 2020 Matt Schatz + * Copyright (C) 2013-2015 Attila Molnar + * Copyright (C) 2013, 2017-2020 Sadie Powell + * Copyright (C) 2013, 2016 Adam * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -134,7 +137,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 @@ -173,7 +177,7 @@ class ModuleHostnameLookup : public Module { // If core_dns is not loaded or hostname resolution is disabled for the user's // connect class then the logic in this function does not apply. - if (!DNS || !user->MyClass->resolvehostnames) + if (!DNS || user->quitting || !user->MyClass->resolvehostnames) return; // Clients can't have a DNS hostname if they aren't connected via IPv4 or IPv6.