From: Bob Halley Date: Wed, 23 Mar 2022 13:10:35 +0000 (-0700) Subject: test padding in DoT X-Git-Tag: v2.3.0rc1~83 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6309bce615f40e803c7b307a234d5357f507cd41;p=thirdparty%2Fdnspython.git test padding in DoT --- diff --git a/tests/test_query.py b/tests/test_query.py index e8a53902..88d63753 100644 --- a/tests/test_query.py +++ b/tests/test_query.py @@ -142,6 +142,7 @@ class QueryTests(unittest.TestCase): self.assertTrue("8.8.8.8" in seen) self.assertTrue("8.8.4.4" in seen) + @unittest.skipUnless(have_ssl, "No SSL support") def testQueryTLS(self): for address in query_addresses: qname = dns.name.from_text("dns.google.") @@ -184,6 +185,27 @@ class QueryTests(unittest.TestCase): self.assertTrue("8.8.8.8" in seen) self.assertTrue("8.8.4.4" in seen) + @unittest.skipUnless(have_ssl, "No SSL support") + def testQueryTLSwithPadding(self): + for address in query_addresses: + qname = dns.name.from_text("dns.google.") + q = dns.message.make_query(qname, dns.rdatatype.A, use_edns=0, pad=128) + response = dns.query.tls(q, address, timeout=2) + rrs = response.get_rrset( + response.answer, qname, dns.rdataclass.IN, dns.rdatatype.A + ) + self.assertTrue(rrs is not None) + seen = set([rdata.address for rdata in rrs]) + self.assertTrue("8.8.8.8" in seen) + self.assertTrue("8.8.4.4" in seen) + # the response should have a padding option + self.assertIsNotNone(response.opt) + has_pad = False + for o in response.opt[0].options: + if o.otype == dns.edns.OptionType.PADDING: + has_pad = True + self.assertTrue(has_pad) + def testQueryUDPFallback(self): for address in query_addresses: qname = dns.name.from_text(".")