X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fcoremods%2Fcore_hostname_lookup.cpp;h=91d817765a17cafb44629b7a11e46d6bdf490c57;hb=a30a0074edac353cb60e134b43fa8ff0ffb67f8b;hp=60f858ecd986be36a1a686b8f8526047a6685221;hpb=aa692dc1039b63deef7886e914ec499abe7facaf;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/coremods/core_hostname_lookup.cpp b/src/coremods/core_hostname_lookup.cpp index 60f858ecd..91d817765 100644 --- a/src/coremods/core_hostname_lookup.cpp +++ b/src/coremods/core_hostname_lookup.cpp @@ -1,8 +1,9 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2020 Matt Schatz * Copyright (C) 2013-2015 Attila Molnar - * Copyright (C) 2013, 2017-2019 Sadie Powell + * Copyright (C) 2013, 2017-2020 Sadie Powell * Copyright (C) 2013, 2016 Adam * * This file is part of InspIRCd. InspIRCd is free software: you can @@ -136,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 @@ -175,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.