From 2b54bebb0e4dd9b44f2b74d5b42c184a64963785 Mon Sep 17 00:00:00 2001 From: Pieter Lexis Date: Thu, 19 Apr 2018 10:10:07 +0200 Subject: [PATCH] More EDNS tests --- regression-tests.recursor-dnssec/test_EDNS.py | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 regression-tests.recursor-dnssec/test_EDNS.py diff --git a/regression-tests.recursor-dnssec/test_EDNS.py b/regression-tests.recursor-dnssec/test_EDNS.py new file mode 100644 index 000000000..eebbc2f2c --- /dev/null +++ b/regression-tests.recursor-dnssec/test_EDNS.py @@ -0,0 +1,41 @@ +import dns +import os +import socket +import struct +import threading +import time + +from recursortests import RecursorTest +from twisted.internet.protocol import DatagramProtocol +from twisted.internet import reactor + +ednsBufferReactorRunning = False + +class EDNSTest(RecursorTest): + """ + These tests are designed to check if we respond correctly to EDNS queries + from clients. Note that buffer-size tests go into test_EDNSBufferSize + """ + _confdir = 'EDNS' + + def testEDNSUnknownOpt(self): + """ + Ensure the recursor does not reply with an unknown option when one is + sent in the query + """ + query = dns.message.make_query('version.bind.', 'TXT', 'CH', use_edns=0, + payload=4096) + unknownOpt = dns.edns.GenericOption(65005, b'1234567890') + query.options = [unknownOpt] + response = self.sendUDPQuery(query) + self.assertRcodeEqual(response, dns.rcode.NOERROR) + self.assertEqual(response.options, []) + + def testEDNSBadVers(self): + """ + Ensure the rcode is BADVERS when we send an unsupported EDNS version + """ + query = dns.message.make_query('version.bind.', 'TXT', 'CH', use_edns=5, + payload=4096) + response = self.sendUDPQuery(query) + self.assertRcodeEqual(response, dns.rcode.BADVERS) -- 2.49.0