]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
Make resolver use_edns() conform to its docstring; slightly improve use_edns() logic.
authorBob Halley <halley@dnspython.org>
Wed, 22 Jul 2020 15:27:27 +0000 (08:27 -0700)
committerBob Halley <halley@dnspython.org>
Wed, 22 Jul 2020 15:27:27 +0000 (08:27 -0700)
dns/message.py
dns/resolver.py
tests/test_resolver.py

index f4ff3fc8904f36b9dc6fa0cb6345c7edeb88a3c2..ab3de5b16113e28c79cc06d546af2bc2d9a332a8 100644 (file)
@@ -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
index 4e1124712c985a901c69e8212485bdfa62f4a0be..b197891e6902c40a603c40d8cab2a2bd8945c4f1 100644 (file)
@@ -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
index 82d62b4c8e62e6094479d1937ab92fd610a0b03c..e77466d6884424316704e78b8a956f923ed4f04d 100644 (file)
@@ -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):