import dns
import os
import extendederrors
+import pytest
from recursortests import RecursorTest
class ExtendedErrorsRecursorTest(RecursorTest):
_confdir = 'ExtendedErrors'
- _config_template_default = """
+ _config_template = """
dnssec=validate
-daemon=no
-trace=yes
-packetcache-ttl=0
-packetcache-servfail-ttl=0
-max-cache-ttl=15
-threads=1
-loglevel=9
-disable-syslog=yes
-log-common-errors=yes
+extended-resolution-errors=yes
"""
- _config_template = """
- extended-resolution-errors=yes
- """
_lua_config_file = """
rpzFile('configs/%s/zone.rpz', { policyName="zone.rpz.", extendedErrorCode=15, extendedErrorExtra='Blocked by RPZ!'})
""" % (_confdir)
super(ExtendedErrorsRecursorTest, cls).generateRecursorConfig(confdir)
+ @pytest.mark.skip(reason="sidnlabs no longer serves thiss until further notice")
def testNotIncepted(self):
qname = 'signotincepted.bad-dnssec.wb.sidnlabs.nl.'
query = dns.message.make_query(qname, 'A', want_dnssec=True)
self.assertEqual(res.options[0].otype, 15)
self.assertEqual(res.options[0], extendederrors.ExtendedErrorOption(8, b''))
+ @pytest.mark.skip(reason="sidnlabs no longer serves thiss until further notice")
def testExpired(self):
qname = 'sigexpired.bad-dnssec.wb.sidnlabs.nl.'
query = dns.message.make_query(qname, 'A', want_dnssec=True)
self.assertEqual(res.options[0].otype, 15)
self.assertEqual(res.options[0], extendederrors.ExtendedErrorOption(7, b''))
+ def testAllExpired(self):
+ qname = 'servfail.nl.'
+ query = dns.message.make_query(qname, 'AAAA', want_dnssec=True)
+
+ for method in ("sendUDPQuery", "sendTCPQuery"):
+ sender = getattr(self, method)
+ res = sender(query, timeout=5.0)
+ self.assertRcodeEqual(res, dns.rcode.SERVFAIL)
+ self.assertEqual(res.edns, 0)
+ self.assertEqual(len(res.options), 1)
+ self.assertEqual(res.options[0].otype, 15)
+ self.assertEqual(res.options[0], extendederrors.ExtendedErrorOption(6, b''))
+
+ @pytest.mark.skip(reason="sidnlabs no longer serves thiss until further notice")
def testBogus(self):
qname = 'bogussig.ok.bad-dnssec.wb.sidnlabs.nl.'
query = dns.message.make_query(qname, 'A', want_dnssec=True)
class NoExtendedErrorsRecursorTest(RecursorTest):
_confdir = 'ExtendedErrorsDisabled'
- _config_template_default = """
-dnssec=validate
-daemon=no
-trace=yes
-packetcache-ttl=0
-packetcache-servfail-ttl=0
-max-cache-ttl=15
-threads=1
-loglevel=9
-disable-syslog=yes
-log-common-errors=yes
-"""
_config_template = """
- extended-resolution-errors=no
+dnssec=validate
+extended-resolution-errors=no
"""
_roothints = None
def generateRecursorConfig(cls, confdir):
super(NoExtendedErrorsRecursorTest, cls).generateRecursorConfig(confdir)
+ @pytest.mark.skip(reason="sidnlabs no longer serves thiss until further notice")
def testNotIncepted(self):
qname = 'signotincepted.bad-dnssec.wb.sidnlabs.nl.'
query = dns.message.make_query(qname, 'A', want_dnssec=True)