globals().update(MessageSection.__members__)
+DEFAULT_EDNS_PAYLOAD = 1232
class Message:
"""A DNS 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
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
# 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
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)
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)