]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - regression-tests.recursor-dnssec/test_Interop.py
auth: switch circleci mssql image
[thirdparty/pdns.git] / regression-tests.recursor-dnssec / test_Interop.py
index 8d1eec2f8789faceab0711a750fcb62e7e6f3aff..9b670eac6705084ea340b90612cc9c76317f328e 100644 (file)
@@ -40,7 +40,7 @@ forward-zones+=undelegated.insecure.example=%s.12
         res = self.sendUDPQuery(query)
 
         self.assertRcodeEqual(res, dns.rcode.NOERROR)
-        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], ['DO'])
+        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], [])
         self.assertRRsetInAnswer(res, expected)
 
     def testUndelegatedForwardedZoneExisting(self):
@@ -56,7 +56,7 @@ forward-zones+=undelegated.insecure.example=%s.12
         res = self.sendUDPQuery(query)
 
         self.assertRcodeEqual(res, dns.rcode.SERVFAIL)
-        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], ['DO'])
+        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], [])
 
     def testUndelegatedForwardedZoneNXDOMAIN(self):
         """
@@ -71,7 +71,7 @@ forward-zones+=undelegated.insecure.example=%s.12
         res = self.sendUDPQuery(query)
 
         self.assertRcodeEqual(res, dns.rcode.SERVFAIL)
-        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], ['DO'])
+        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], [])
 
     def testUndelegatedForwardedInsecureZoneExisting(self):
         """
@@ -87,7 +87,7 @@ forward-zones+=undelegated.insecure.example=%s.12
         res = self.sendUDPQuery(query)
 
         self.assertRcodeEqual(res, dns.rcode.NOERROR)
-        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], ['DO'])
+        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], [])
         self.assertRRsetInAnswer(res, expected)
 
     def testUndelegatedForwardedInsecureZoneNXDOMAIN(self):
@@ -103,7 +103,7 @@ forward-zones+=undelegated.insecure.example=%s.12
         res = self.sendUDPQuery(query)
 
         self.assertRcodeEqual(res, dns.rcode.NXDOMAIN)
-        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], ['DO'])
+        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], [])
 
     def testBothSecureCNAMEAtApex(self):
         """
@@ -119,7 +119,7 @@ forward-zones+=undelegated.insecure.example=%s.12
         self.assertRRsetInAnswer(res, expectedA)
         self.assertRRsetInAnswer(res, expectedCNAME)
         self.assertRcodeEqual(res, dns.rcode.NOERROR)
-        self.assertMessageHasFlags(res, ['QR', 'RD', 'RA', 'AD'], ['DO'])
+        self.assertMessageHasFlags(res, ['QR', 'RD', 'RA', 'AD'], [])
 
     @classmethod
     def startResponders(cls):
@@ -130,13 +130,10 @@ forward-zones+=undelegated.insecure.example=%s.12
 
         reactor.listenUDP(port, UDPResponder(), interface=address)
 
-        cls._UDPResponder = threading.Thread(name='UDP Responder', target=reactor.run, args=(False,))
-        cls._UDPResponder.setDaemon(True)
-        cls._UDPResponder.start()
-
-    @classmethod
-    def tearDownResponders(cls):
-        reactor.stop()
+        if not reactor.running:
+            cls._UDPResponder = threading.Thread(name='UDP Responder', target=reactor.run, args=(False,))
+            cls._UDPResponder.setDaemon(True)
+            cls._UDPResponder.start()
 
 class UDPResponder(DatagramProtocol):
     def datagramReceived(self, datagram, address):
@@ -150,7 +147,13 @@ class UDPResponder(DatagramProtocol):
             response.edns = -1
             response.additional = []
         else:
-            answer = dns.rrset.from_text('host1.insecure-formerr.example.', 15, dns.rdataclass.IN, 'A', '127.0.0.1')
-            response.answer.append(answer)
+            if request.question[0].name == dns.name.from_text('host1.insecure-formerr.example.') and request.question[0].rdtype == dns.rdatatype.A:
+                answer = dns.rrset.from_text('host1.insecure-formerr.example.', 15, dns.rdataclass.IN, 'A', '127.0.0.1')
+                response.answer.append(answer)
+            elif request.question[0].name == dns.name.from_text('insecure-formerr.example.') and request.question[0].rdtype == dns.rdatatype.NS:
+                answer = dns.rrset.from_text('insecure-formerr.example.', 15, dns.rdataclass.IN, 'NS', 'ns1.insecure-formerr.example.')
+                response.answer.append(answer)
+                additional = dns.rrset.from_text('ns1.insecure-formerr.example.', 15, dns.rdataclass.IN, 'A', '127.0.0.2')
+                response.additional.append(additional)
 
         self.transport.write(response.to_wire(), address)