]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
Set EDNS default payload to 1232.
authorBob Halley <halley@dnspython.org>
Tue, 21 Jul 2020 02:52:20 +0000 (19:52 -0700)
committerBob Halley <halley@dnspython.org>
Tue, 21 Jul 2020 02:52:20 +0000 (19:52 -0700)
dns/message.py
dns/resolver.py
tests/test_message.py
tests/test_resolver.py

index 2c7c735ba4b6d4f3cdcb36c9472acf06821e3073..7f665722069b2123ea66556fa5e0dc3ecb06751e 100644 (file)
@@ -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
index f9d54ea395ec661d61eff1d0636287a9db25912d..a5079d46e6a09ecb58d3fb2bc809a8249aa2fd6f 100644 (file)
@@ -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
index e64578b049d14bb039d089cec6b0161266099654..bfc137fdd14da06dd7882c1246a62a986657e905 100644 (file)
@@ -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)
index 85abeb260b9658b035c8a3b80a40ec65833b2780..171f319b49a12bdcf54ba6943fd438aee425e5b5 100644 (file)
@@ -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)