From 987dee3fdea29dcfa0035747c43ee22886a707fb Mon Sep 17 00:00:00 2001 From: Adam Date: Sun, 19 Apr 2015 21:57:38 -0400 Subject: core_dns Move packet source address checking before packet processing --- src/coremods/core_dns.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src') 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) { -- cgit v1.3.1-10-gc9f91