def testNotIncepted(self): qname = 'signotincepted.bad-dnssec.wb.sidnlabs.nl.' query = dns.message.make_query(qname, 'A', 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(8, b''))
def testRPZ(self): qname = 'sub.rpz.extended.' query = dns.message.make_query(qname, 'A', want_dnssec=True) for method in ("sendUDPQuery", "sendTCPQuery"): sender = getattr(self, method) res = sender(query, timeout=5.0) self.assertRcodeEqual(res, dns.rcode.NXDOMAIN) 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(15, b'Blocked by RPZ!'))
def testFromLuaFFI(self): qname = 'fromluaffi.extended.' query = dns.message.make_query(qname, 'A', want_dnssec=True) for method in ("sendUDPQuery", "sendTCPQuery"): sender = getattr(self, method) res = sender(query, timeout=5.0) self.assertRcodeEqual(res, dns.rcode.NOERROR) 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(10, b'Extra text from Lua FFI!'))
def testMissingRRSIG(self): qname = 'brokendnssec.net.' query = dns.message.make_query(qname, 'A', 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(10, 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''))
def testTooLarge(self): qname = 'toolarge.extended.' query = dns.message.make_query(qname, 'A', want_dnssec=True, payload=512) # should not have the Extended Option since the packet is too large already res = self.sendUDPQuery(query, timeout=5.0) self.assertRcodeEqual(res, dns.rcode.NOERROR) self.assertEquals(len(res.answer), 1) self.assertEqual(res.edns, 0) self.assertEqual(len(res.options), 0) res = self.sendTCPQuery(query, timeout=5.0) self.assertRcodeEqual(res, dns.rcode.NOERROR) self.assertEquals(len(res.answer), 1) 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(10, b'Extra text from Lua!'))