From: Remi Gacogne Date: Fri, 18 Aug 2023 06:36:54 +0000 (+0200) Subject: dnsdist: Better handling of network events in the regression test responders X-Git-Tag: rec-5.0.0-alpha1~35^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fabe8e3a7a8b80ae16edce3d9ca2aac9dfcdf09c;p=thirdparty%2Fpdns.git dnsdist: Better handling of network events in the regression test responders --- diff --git a/regression-tests.dnsdist/dnsdisttests.py b/regression-tests.dnsdist/dnsdisttests.py index 579a63df61..156ba19219 100644 --- a/regression-tests.dnsdist/dnsdisttests.py +++ b/regression-tests.dnsdist/dnsdisttests.py @@ -320,7 +320,11 @@ class DNSDistTest(AssertEqualDNSMessageMixin, unittest.TestCase): @classmethod def handleTCPConnection(cls, conn, fromQueue, toQueue, trailingDataResponse=False, multipleResponses=False, callback=None, partialWrite=False): ignoreTrailing = trailingDataResponse is True - data = conn.recv(2) + try: + data = conn.recv(2) + except Exception as err: + data = None + print(f'Error while reading query size in TCP responder thread {err=}, {type(err)=}') if not data: conn.close() return @@ -440,6 +444,9 @@ class DNSDistTest(AssertEqualDNSMessageMixin, unittest.TestCase): except ssl.SSLEOFError as e: print("Unexpected EOF: %s" % (e)) return + except Exception as err: + print(f'Unexpected exception in DoH responder thread (connection init) {err=}, {type(err)=}') + return dnsData = {} @@ -470,7 +477,11 @@ class DNSDistTest(AssertEqualDNSMessageMixin, unittest.TestCase): # be careful, HTTP/2 headers and data might be in different recv() results requestHeaders = None while True: - data = conn.recv(65535) + try: + data = conn.recv(65535) + except Exception as err: + data = None + print(f'Unexpected exception in DoH responder thread {err=}, {type(err)=}') if not data: break