From: Bob Halley Date: Tue, 21 Jul 2020 02:52:20 +0000 (-0700) Subject: Set EDNS default payload to 1232. X-Git-Tag: v2.1.0rc1~167 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58a404ab191241fd9f1237b674e44aca554da202;p=thirdparty%2Fdnspython.git Set EDNS default payload to 1232. --- diff --git a/dns/message.py b/dns/message.py index 2c7c735b..7f665722 100644 --- a/dns/message.py +++ b/dns/message.py @@ -93,6 +93,7 @@ class MessageSection(dns.enum.IntEnum): globals().update(MessageSection.__members__) +DEFAULT_EDNS_PAYLOAD = 1232 class Message: """A DNS message.""" @@ -545,13 +546,13 @@ class Message: return bool(self.tsig) @staticmethod - def _make_opt(flags=0, payload=1280, options=None): + def _make_opt(flags=0, payload=DEFAULT_EDNS_PAYLOAD, options=None): opt = dns.rdtypes.ANY.OPT.OPT(payload, dns.rdatatype.OPT, options or ()) return dns.rrset.from_rdata(dns.name.root, int(flags), opt) - def use_edns(self, edns=0, ednsflags=0, payload=1280, request_payload=None, - options=None): + def use_edns(self, edns=0, ednsflags=0, payload=DEFAULT_EDNS_PAYLOAD, + request_payload=None, options=None): """Configure EDNS behavior. *edns*, an ``int``, is the EDNS level to use. Specifying diff --git a/dns/resolver.py b/dns/resolver.py index f9d54ea3..a5079d46 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -1208,7 +1208,8 @@ class Resolver: self.keyname = keyname self.keyalgorithm = algorithm - def use_edns(self, edns=0, ednsflags=0, payload=1280): + def use_edns(self, edns=0, ednsflags=0, + payload=dns.message.DEFAULT_EDNS_PAYLOAD): """Configure EDNS behavior. *edns*, an ``int``, is the EDNS level to use. Specifying diff --git a/tests/test_message.py b/tests/test_message.py index e64578b0..bfc137fd 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -16,7 +16,6 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT # OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -import os import unittest import binascii @@ -337,6 +336,11 @@ class MessageTestCase(unittest.TestCase): self.assertEqual(m.edns, 0) self.assertTrue(m.ednsflags & dns.flags.DO) + def test_EDNS_default_payload_is_1232(self): + m = dns.message.make_query('foo', 'A') + m.use_edns() + self.assertEqual(m.payload, dns.message.DEFAULT_EDNS_PAYLOAD) + def test_from_file(self): m = dns.message.from_file(here('query')) expected = dns.message.from_text(query_text) diff --git a/tests/test_resolver.py b/tests/test_resolver.py index 85abeb26..171f319b 100644 --- a/tests/test_resolver.py +++ b/tests/test_resolver.py @@ -166,7 +166,7 @@ class BaseResolverTests(unittest.TestCase): self.assertEqual(r.timeout, 1) self.assertEqual(r.ndots, 2) self.assertEqual(r.edns, 0) - self.assertEqual(r.payload, 1280) + self.assertEqual(r.payload, dns.message.DEFAULT_EDNS_PAYLOAD) def testReadOptionsBadTimeouts(self): f = StringIO(bad_timeout_1)