]> granicus.if.org Git - pdns/commitdiff
dnsdist: Check the EDNS payload size more strictly in our tests
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 19 Apr 2019 11:58:00 +0000 (13:58 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 19 Apr 2019 11:58:00 +0000 (13:58 +0200)
regression-tests.dnsdist/dnsdisttests.py
regression-tests.dnsdist/test_EDNSOptions.py
regression-tests.dnsdist/test_EDNSSelfGenerated.py
regression-tests.dnsdist/test_EdnsClientSubnet.py

index 70527759b3e4fcf1207f3f288e3e19a5c86cae22..0d87c2798e9da5b526b6dbf512f7fb09f73955fe 100644 (file)
@@ -520,10 +520,12 @@ class DNSDistTest(unittest.TestCase):
     def checkMessageEDNSWithoutOptions(self, expected, received):
         self.assertEquals(expected, received)
         self.assertEquals(received.edns, 0)
+        self.assertEquals(expected.payload, received.payload)
 
     def checkMessageEDNSWithoutECS(self, expected, received, withCookies=0):
         self.assertEquals(expected, received)
         self.assertEquals(received.edns, 0)
+        self.assertEquals(expected.payload, received.payload)
         self.assertEquals(len(received.options), withCookies)
         if withCookies:
             for option in received.options:
@@ -532,6 +534,7 @@ class DNSDistTest(unittest.TestCase):
     def checkMessageEDNSWithECS(self, expected, received, additionalOptions=0):
         self.assertEquals(expected, received)
         self.assertEquals(received.edns, 0)
+        self.assertEquals(expected.payload, received.payload)
         self.assertEquals(len(received.options), 1 + additionalOptions)
         hasECS = False
         for option in received.options:
index a655fd5ba7f227c2d5271d96764c98a9ee875c2f..0315ed589dbc4ac32e60ea32ec2ae8bf1e28e8a0 100644 (file)
@@ -260,7 +260,7 @@ class TestEDNSOptionsAddingECS(EDNSOptionsBase):
         """
         name = 'cookie.ednsoptions-ecs.tests.powerdns.com.'
         eco = cookiesoption.CookiesOption(b'deadbeef', b'deadbeef')
-        query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, options=[eco])
+        query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=512, options=[eco])
         ecso = clientsubnetoption.ClientSubnetOption('127.0.0.1', 24)
         expectedQuery = dns.message.make_query(name, 'A', 'IN', use_edns=True, options=[eco,ecso], payload=512)
         response = dns.message.make_response(query)
index c5cb99bd7bd8a115d3d3a99dc3b25927483fe031..fdaeec32a0d368db5718b387d9bff6752bf2d559 100644 (file)
@@ -65,7 +65,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
         query = dns.message.make_query(name, 'A', 'IN')
         # dnsdist set RA = RD for spoofed responses
         query.flags &= ~dns.flags.RD
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.answer.append(dns.rrset.from_text(name,
                                                            60,
                                                            dns.rdataclass.IN,
@@ -83,7 +83,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
         """
         name = 'edns-no-do.rcode.edns-self.tests.powerdns.com.'
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=False)
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.set_rcode(dns.rcode.REFUSED)
 
         for method in ("sendUDPQuery", "sendTCPQuery"):
@@ -95,7 +95,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
 
         name = 'edns-no-do.tc.edns-self.tests.powerdns.com.'
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=False)
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.flags |= dns.flags.TC
 
         for method in ("sendUDPQuery", "sendTCPQuery"):
@@ -107,7 +107,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
 
         name = 'edns-no-do.lua.edns-self.tests.powerdns.com.'
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=False)
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.set_rcode(dns.rcode.NXDOMAIN)
 
         for method in ("sendUDPQuery", "sendTCPQuery"):
@@ -121,7 +121,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=False)
         # dnsdist set RA = RD for spoofed responses
         query.flags &= ~dns.flags.RD
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.answer.append(dns.rrset.from_text(name,
                                                            60,
                                                            dns.rdataclass.IN,
@@ -141,7 +141,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
         """
         name = 'edns-do.rcode.edns-self.tests.powerdns.com.'
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=True)
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.set_rcode(dns.rcode.REFUSED)
 
         for method in ("sendUDPQuery", "sendTCPQuery"):
@@ -153,7 +153,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
 
         name = 'edns-do.tc.edns-self.tests.powerdns.com.'
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=True)
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.flags |= dns.flags.TC
 
         for method in ("sendUDPQuery", "sendTCPQuery"):
@@ -165,7 +165,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
 
         name = 'edns-do.lua.edns-self.tests.powerdns.com.'
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=True)
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.set_rcode(dns.rcode.NXDOMAIN)
 
         for method in ("sendUDPQuery", "sendTCPQuery"):
@@ -179,7 +179,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=True)
         # dnsdist set RA = RD for spoofed responses
         query.flags &= ~dns.flags.RD
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.answer.append(dns.rrset.from_text(name,
                                                            60,
                                                            dns.rdataclass.IN,
@@ -200,7 +200,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
         name = 'edns-options.rcode.edns-self.tests.powerdns.com.'
         ecso = clientsubnetoption.ClientSubnetOption('127.0.0.1', 24)
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, options=[ecso], payload=512, want_dnssec=True)
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.set_rcode(dns.rcode.REFUSED)
 
         for method in ("sendUDPQuery", "sendTCPQuery"):
@@ -212,7 +212,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
 
         name = 'edns-options.tc.edns-self.tests.powerdns.com.'
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, options=[ecso], payload=512, want_dnssec=True)
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.flags |= dns.flags.TC
 
         for method in ("sendUDPQuery", "sendTCPQuery"):
@@ -224,7 +224,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
 
         name = 'edns-options.lua.edns-self.tests.powerdns.com.'
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, options=[ecso], payload=512, want_dnssec=True)
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.set_rcode(dns.rcode.NXDOMAIN)
 
         for method in ("sendUDPQuery", "sendTCPQuery"):
@@ -238,7 +238,7 @@ class TestEDNSSelfGenerated(DNSDistTest):
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, options=[ecso], payload=512, want_dnssec=True)
         # dnsdist set RA = RD for spoofed responses
         query.flags &= ~dns.flags.RD
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=1042)
         expectedResponse.answer.append(dns.rrset.from_text(name,
                                                            60,
                                                            dns.rdataclass.IN,
index 87acf47da254373bff73743a83ef0bba60036d46..241783fba29efbed8ebf1f6e0645a026bd261765 100644 (file)
@@ -166,7 +166,7 @@ class TestEdnsClientSubnetNoOverride(DNSDistTest):
         response = dns.message.make_response(expectedQuery)
         ecsoResponse = clientsubnetoption.ClientSubnetOption('127.0.0.1', 24, scope=24)
         response.use_edns(edns=True, payload=4096, options=[ecsoResponse])
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=4096)
         rrset = dns.rrset.from_text(name,
                                     3600,
                                     dns.rdataclass.IN,
@@ -241,7 +241,7 @@ class TestEdnsClientSubnetNoOverride(DNSDistTest):
         ecoResponse = cookiesoption.CookiesOption(b'deadbeef', b'deadbeef')
         ecsoResponse = clientsubnetoption.ClientSubnetOption('127.0.0.1', 24, scope=24)
         response.use_edns(edns=True, payload=4096, options=[ecsoResponse, ecoResponse])
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=4096)
         rrset = dns.rrset.from_text(name,
                                     3600,
                                     dns.rdataclass.IN,
@@ -279,7 +279,7 @@ class TestEdnsClientSubnetNoOverride(DNSDistTest):
         ecoResponse = cookiesoption.CookiesOption(b'deadbeef', b'deadbeef')
         ecsoResponse = clientsubnetoption.ClientSubnetOption('127.0.0.1', 24, scope=24)
         response.use_edns(edns=True, payload=4096, options=[ecoResponse, ecsoResponse, ecoResponse])
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=4096)
         rrset = dns.rrset.from_text(name,
                                     3600,
                                     dns.rdataclass.IN,
@@ -365,7 +365,7 @@ class TestEdnsClientSubnetOverride(DNSDistTest):
                                     dns.rdatatype.A,
                                     '127.0.0.1')
         response.answer.append(rrset)
-        expectedResponse = dns.message.make_response(query)
+        expectedResponse = dns.message.make_response(query, our_payload=4096)
         expectedResponse.answer.append(rrset)
 
         for method in ("sendUDPQuery", "sendTCPQuery"):