]>
git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests.recursor-dnssec/test_EDNS.py
8 from unittest
import SkipTest
10 from recursortests
import RecursorTest
11 from twisted
.internet
.protocol
import DatagramProtocol
12 from twisted
.internet
import reactor
14 ednsBufferReactorRunning
= False
16 class EDNSTest(RecursorTest
):
18 These tests are designed to check if we respond correctly to EDNS queries
19 from clients. Note that buffer-size tests go into test_EDNSBufferSize
23 def testEDNSUnknownOpt(self
):
25 Ensure the recursor does not reply with an unknown option when one is
28 unknownOpt
= dns
.edns
.GenericOption(65005, b
'1234567890')
29 query
= dns
.message
.make_query('version.bind.', 'TXT', 'CH', use_edns
=0,
30 payload
=4096, options
=[unknownOpt
])
31 response
= self
.sendUDPQuery(query
)
32 self
.assertRcodeEqual(response
, dns
.rcode
.NOERROR
)
33 self
.assertEqual(response
.options
, ())
35 def testEDNSBadVers(self
):
37 Ensure the rcode is BADVERS when we send an unsupported EDNS version and
38 the query is not processed any further.
40 if sys
.version_info
>= (3, 11) and sys
.version_info
<= (3, 11, 3):
41 raise SkipTest("Test skipped, see https://github.com/PowerDNS/pdns/pull/12912")
42 query
= dns
.message
.make_query('version.bind.', 'TXT', 'CH', use_edns
=5,
44 response
= self
.sendUDPQuery(query
)
45 self
.assertRcodeEqual(response
, dns
.rcode
.BADVERS
)
46 self
.assertEqual(response
.answer
, [])