From: Michał Kępień Date: Tue, 18 Mar 2025 15:28:18 +0000 (+0100) Subject: Gracefully handle TCP client disconnections X-Git-Tag: v9.21.7~45^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e4c3186a7ccce317a3319406dfe85c3722983a11;p=thirdparty%2Fbind9.git Gracefully handle TCP client disconnections Prevent premature client disconnections during reading from triggering unhandled exceptions in TCP connection handling code. --- diff --git a/bin/tests/system/isctest/asyncserver.py b/bin/tests/system/isctest/asyncserver.py index 211d1402218..952cb797563 100644 --- a/bin/tests/system/isctest/asyncserver.py +++ b/bin/tests/system/isctest/asyncserver.py @@ -542,10 +542,14 @@ class AsyncDnsServer(AsyncServer): peer = Peer(peer_info[0], peer_info[1]) wire_length_bytes = await reader.read(2) + if len(wire_length_bytes) < 2: + return (wire_length,) = struct.unpack("!H", wire_length_bytes) logging.debug("Receiving TCP message (%d octets)...", wire_length) wire = await reader.read(wire_length) + if len(wire) < wire_length: + return full_message = wire_length_bytes + wire logging.debug("Received complete TCP message: %s", full_message.hex())