]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
core_dns Move packet source address checking before packet processing
authorAdam <Adam@anope.org>
Mon, 20 Apr 2015 01:57:38 +0000 (21:57 -0400)
committerAttila Molnar <attilamolnar@hush.com>
Tue, 21 Apr 2015 12:56:27 +0000 (14:56 +0200)
src/coremods/core_dns.cpp

index de8dedd4ac41e260eb0f773d25ce261020275137..61d524adaaeb74939053560d9398143a38acbfbe 100644 (file)
@@ -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)
                {