From: Adam Date: Mon, 20 Apr 2015 01:57:38 +0000 (-0400) Subject: core_dns Move packet source address checking before packet processing X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=987dee3fdea29dcfa0035747c43ee22886a707fb;hp=dda1d696c1316b09d65763b4f12bc2b63cfbbe72;p=user%2Fhenk%2Fcode%2Finspircd.git core_dns Move packet source address checking before packet processing --- diff --git a/src/coremods/core_dns.cpp b/src/coremods/core_dns.cpp index de8dedd4a..61d524ada 100644 --- a/src/coremods/core_dns.cpp +++ b/src/coremods/core_dns.cpp @@ -571,6 +571,15 @@ class MyManager : public Manager, public Timer, public EventHandler if (length < Packet::HEADER_LENGTH) return; + if (myserver != from) + { + std::string server1 = from.str(); + std::string server2 = myserver.str(); + ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Got a result from the wrong server! Bad NAT or DNS forging attempt? '%s' != '%s'", + server1.c_str(), server2.c_str()); + return; + } + Packet recv_packet; try @@ -583,15 +592,6 @@ class MyManager : public Manager, public Timer, public EventHandler return; } - if (myserver != from) - { - std::string server1 = from.str(); - std::string server2 = myserver.str(); - ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Got a result from the wrong server! Bad NAT or DNS forging attempt? '%s' != '%s'", - server1.c_str(), server2.c_str()); - return; - } - DNS::Request* request = this->requests[recv_packet.id]; if (request == NULL) {