From: Stefan Metzmacher Date: Wed, 29 May 2024 12:14:11 +0000 (+0200) Subject: python:tests/dns_base: let dns_transaction_udp() take allow_{remaining,truncated... X-Git-Tag: samba-4.19.8~87 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=2741574e32f839eec1f3fdb582817492050ae055;p=thirdparty%2Fsamba.git python:tests/dns_base: let dns_transaction_udp() take allow_{remaining,truncated}=True BUG: https://bugzilla.samba.org/show_bug.cgi?id=13019 Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett (cherry picked from commit 1b1e7e06cf6ebd283de73c351267d53b42663d2f) --- diff --git a/python/samba/tests/dns_base.py b/python/samba/tests/dns_base.py index 01f98022684..767d3f4170f 100644 --- a/python/samba/tests/dns_base.py +++ b/python/samba/tests/dns_base.py @@ -130,6 +130,8 @@ class DNSTest(TestCaseInTempDir): return self.creds.get_realm().lower() def dns_transaction_udp(self, packet, host, + allow_remaining=False, + allow_truncated=False, dump=False, timeout=None): "send a DNS query and read the reply" s = None @@ -146,7 +148,17 @@ class DNSTest(TestCaseInTempDir): recv_packet = s.recv(2048, 0) if dump: print(self.hexdump(recv_packet)) - response = ndr.ndr_unpack(dns.name_packet, recv_packet) + if allow_truncated: + # with allow_remaining + # we add some zero bytes + # in order to also parse truncated + # responses + recv_packet_p = recv_packet + 32*b"\x00" + allow_remaining = True + else: + recv_packet_p = recv_packet + response = ndr.ndr_unpack(dns.name_packet, recv_packet_p, + allow_remaining=allow_remaining) return (response, recv_packet) finally: if s is not None: