From: Richard Gibson Date: Wed, 17 Oct 2018 13:43:51 +0000 (-0400) Subject: dnsdist: Add comments and safety enforcement to dnsdisttests.py X-Git-Tag: rec-4.2.0-alpha1~16^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3ef7ab0df16c21918d6b4329c2674929978fdbe8;p=thirdparty%2Fpdns.git dnsdist: Add comments and safety enforcement to dnsdisttests.py --- diff --git a/regression-tests.dnsdist/dnsdisttests.py b/regression-tests.dnsdist/dnsdisttests.py index aa79d941e5..80d0948956 100644 --- a/regression-tests.dnsdist/dnsdisttests.py +++ b/regression-tests.dnsdist/dnsdisttests.py @@ -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)