]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Add comments and safety enforcement to dnsdisttests.py 6967/head
authorRichard Gibson <richard.gibson@gmail.com>
Wed, 17 Oct 2018 13:43:51 +0000 (09:43 -0400)
committerRichard Gibson <richard.gibson@gmail.com>
Wed, 17 Oct 2018 13:43:51 +0000 (09:43 -0400)
regression-tests.dnsdist/dnsdisttests.py

index aa79d941e5d9b8084d6eb7b08c07c0be9ae9efa1..80d094895659ce7a5131b33bb9e457c1f587ca38 100644 (file)
@@ -173,7 +173,11 @@ class DNSDistTest(unittest.TestCase):
 
     @classmethod
     def UDPResponder(cls, port, fromQueue, toQueue, trailingDataResponse=False):
+        # trailingDataResponse=True means "ignore trailing data".
+        # Other values are either False (meaning "raise an exception")
+        # or are interpreted as a response RCODE for queries with trailing data.
         ignoreTrailing = trailingDataResponse is True
+
         sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
         sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
         sock.bind(("127.0.0.1", port))
@@ -183,7 +187,7 @@ class DNSDistTest(unittest.TestCase):
             try:
                 request = dns.message.from_wire(data, ignore_trailing=ignoreTrailing)
             except dns.message.TrailingJunk as e:
-                if trailingDataResponse is False:
+                if trailingDataResponse is False or forceRcode is True:
                     raise
                 print("UDP query with trailing data, synthesizing response")
                 request = dns.message.from_wire(data, ignore_trailing=True)
@@ -200,7 +204,11 @@ class DNSDistTest(unittest.TestCase):
 
     @classmethod
     def TCPResponder(cls, port, fromQueue, toQueue, trailingDataResponse=False, multipleResponses=False):
+        # trailingDataResponse=True means "ignore trailing data".
+        # Other values are either False (meaning "raise an exception")
+        # or are interpreted as a response RCODE for queries with trailing data.
         ignoreTrailing = trailingDataResponse is True
+
         sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
         try:
@@ -224,7 +232,7 @@ class DNSDistTest(unittest.TestCase):
             try:
                 request = dns.message.from_wire(data, ignore_trailing=ignoreTrailing)
             except dns.message.TrailingJunk as e:
-                if trailingDataResponse is False:
+                if trailingDataResponse is False or forceRcode is True:
                     raise
                 print("TCP query with trailing data, synthesizing response")
                 request = dns.message.from_wire(data, ignore_trailing=True)