From: Bob Halley Date: Wed, 22 Jul 2020 15:27:27 +0000 (-0700) Subject: Make resolver use_edns() conform to its docstring; slightly improve use_edns() logic. X-Git-Tag: v2.1.0rc1~159 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5be0b51417b6af26f643e24a63c27174afbd871d;p=thirdparty%2Fdnspython.git Make resolver use_edns() conform to its docstring; slightly improve use_edns() logic. --- diff --git a/dns/message.py b/dns/message.py index f4ff3fc8..ab3de5b1 100644 --- a/dns/message.py +++ b/dns/message.py @@ -592,7 +592,7 @@ class Message: if edns is None or edns is False: edns = -1 - if edns is True: + elif edns is True: edns = 0 if edns < 0: self.opt = None diff --git a/dns/resolver.py b/dns/resolver.py index 4e112471..b197891e 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -1188,8 +1188,10 @@ class Resolver: a response to this message can be. """ - if edns is None: + if edns is None or edns is False: edns = -1 + elif edns is True: + edns = 0 self.edns = edns self.ednsflags = ednsflags self.payload = payload diff --git a/tests/test_resolver.py b/tests/test_resolver.py index 82d62b4c..e77466d6 100644 --- a/tests/test_resolver.py +++ b/tests/test_resolver.py @@ -512,6 +512,16 @@ class BaseResolverTests(unittest.TestCase): qnames = res._get_qnames_to_try(qname, None) self.assertEqual(qnames, [qname]) + def testUseEDNS(self): + r = dns.resolver.Resolver(configure=False) + r.use_edns(None) + self.assertEqual(r.edns, -1) + r.use_edns(False) + self.assertEqual(r.edns, -1) + r.use_edns(True) + self.assertEqual(r.edns, 0) + + @unittest.skipIf(not _network_available, "Internet not reachable") class LiveResolverTests(unittest.TestCase): def testZoneForName1(self):