]> granicus.if.org Git - pdns/commitdiff
Use two auths to avoid serialization problems, as suggested by Habbie
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 23 Oct 2019 08:32:51 +0000 (08:32 +0000)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 23 Oct 2019 08:32:51 +0000 (08:32 +0000)
regression-tests.recursor-dnssec/recursortests.py
regression-tests.recursor-dnssec/test_OOOTCP.py

index eceecdee4dca7762ee783d55d5e84e2862fab16b..4db54049e6fb725a76f8e3c10bf8dd6e2f1474dd 100644 (file)
@@ -115,8 +115,10 @@ sort.example.                      3600 IN A     192.168.0.1
 sort.example.                      3600 IN A     17.238.240.5
 sort.example.                      3600 IN MX    25 mx
 
-delay.example.                     3600 IN NS   ns1.delay.example.
-ns1.delay.example.                 3600 IN A    {prefix}.16
+delay1.example.                     3600 IN NS   ns1.delay1.example.
+ns1.delay1.example.                 3600 IN A    {prefix}.16
+delay2.example.                     3600 IN NS   ns1.delay2.example.
+ns1.delay2.example.                 3600 IN A    {prefix}.17
         """,
         'secure.example': """
 secure.example.          3600 IN SOA  {soa}
@@ -236,11 +238,18 @@ undelegated.insecure.example.        3600 IN NS   ns1.undelegated.insecure.examp
 node1.undelegated.insecure.example.  3600 IN A    192.0.2.22
         """,
 
-        'delay.example': """
-delay.example.                       3600 IN SOA  {soa}
-delay.example.                       3600 IN NS n1.delay.example.
-ns1.delay.example.                   3600 IN A    {prefix}.16
-*.delay.example.                     0    LUA TXT ";" "local socket=require('socket')" "socket.sleep(tonumber(qname:getRawLabels()[1])/10)" "return 'a'"
+        'delay1.example': """
+delay1.example.                       3600 IN SOA  {soa}
+delay1.example.                       3600 IN NS n1.delay1.example.
+ns1.delay1.example.                   3600 IN A    {prefix}.16
+*.delay1.example.                     0    LUA TXT ";" "local socket=require('socket')" "socket.sleep(tonumber(qname:getRawLabels()[1])/10)" "return 'a'"
+        """,
+        
+        'delay2.example': """
+delay2.example.                       3600 IN SOA  {soa}
+delay2.example.                       3600 IN NS n1.delay2.example.
+ns1.delay2.example.                   3600 IN A    {prefix}.17
+*.delay2.example.                     0    LUA TXT ";" "local socket=require('socket')" "socket.sleep(tonumber(qname:getRawLabels()[1])/10)" "return 'a'"
         """
     }
 
@@ -322,9 +331,10 @@ PrivateKey: Ep9uo6+wwjb4MaOmqq7LHav2FLrjotVOeZg8JT1Qk04=
                'zones': ['optout.example']},
         '15': {'threads': 1,
                'zones': ['insecure.optout.example', 'secure.optout.example', 'cname-secure.example']},
-        # This zone need more threads so that the lua delay code does not cause serialization
-        '16': {'threads': 4,
-               'zones': ['delay.example']}
+        '16': {'threads': 2,
+               'zones': ['delay1.example']},
+        '17': {'threads': 2,
+               'zones': ['delay2.example']}
     }
 
     _auth_cmd = ['authbind',
index 675f471a4087674dfa277183dc39a46991b40031..dade409d215673f0913198ce3551fbf7f7dd776c 100644 (file)
@@ -13,15 +13,10 @@ class testOOOTCP(RecursorTest):
     def generateRecursorConfig(cls, confdir):
         super(testOOOTCP, cls).generateRecursorConfig(confdir)
 
-    def primeNS(self):
-        query = dns.message.make_query('delay.example.', 'NS', want_dnssec=False)
-        self.sendUDPQuery(query)
-        
     def testOOOVeryBasic(self):
-        self.primeNS()
         expected = {}
         queries = []
-        for zone in ['5.delay.example.', '0.delay.example.']:
+        for zone in ['5.delay1.example.', '0.delay2.example.']:
             expected[zone] = dns.rrset.from_text(zone, 0, dns.rdataclass.IN, 'TXT', 'a')
             query = dns.message.make_query(zone, 'TXT', want_dnssec=False)
             query.flags |= dns.flags.AD
@@ -32,7 +27,7 @@ class testOOOTCP(RecursorTest):
         self.assertEqual(len(ress), len(expected))
 
         i = 0
-        for exp in [expected['0.delay.example.'], expected['5.delay.example.']]:
+        for exp in [expected['0.delay2.example.'], expected['5.delay1.example.']]:
             print('ress0')
             print(ress[i].answer[0].to_text())
             print('exp')
@@ -43,18 +38,17 @@ class testOOOTCP(RecursorTest):
             i = i + 1
 
     def testOOOTimeout(self):
-        self.primeNS()
         expected = {}
         queries = []
-        for zone in ['25.delay.example.', '1.delay.example.']:
+        for zone in ['25.delay1.example.', '1.delay2.example.']:
             query = dns.message.make_query(zone, 'TXT', want_dnssec=False)
             query.flags |= dns.flags.AD
             queries.append(query)
 
         ress = self.sendTCPQueries(queries)
-        
+
         self.assertEqual(len(ress), 2)
-        exp = dns.rrset.from_text(zone, 0, dns.rdataclass.IN, 'TXT', 'a')
+        exp = dns.rrset.from_text('1.delay2.example.', 0, dns.rdataclass.IN, 'TXT', 'a')
         self.assertRRsetInAnswer(ress[0], exp)
         self.assertRcodeEqual(ress[1], dns.rcode.SERVFAIL)