]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
In dns.ipv6.inet_ntoa(), do not use :: to shorten just one 16-bit 0 field
authorBob Halley <halley@dnspython.org>
Fri, 26 Apr 2013 12:04:01 +0000 (13:04 +0100)
committerBob Halley <halley@dnspython.org>
Fri, 26 Apr 2013 12:04:01 +0000 (13:04 +0100)
ChangeLog
dns/ipv6.py
tests/ntoaaton.py

index bae1b34869b1db996c65d29d90bcc49c17dec7ab..c8b5d92010f7b18a31683de6c568a6c6027d648b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-04-26  Bob Halley  <halley@dnspython.org>
+
+       * dns/ipv6.py (inet_ntoa): We now comply with RFC 5952 section
+         5.2.2, by *not* using the :: syntax to shorten just one 16-bit
+         field.  Thanks to David Waitzman for reporting the bug and
+         suggesting the fix.
+
 2012-08-28  Bob Halley  <halley@dnspython.org>
 
        * dns/rdtypes/ANY/NSEC3.py (NSEC3.from_text): The NSEC3 from_text()
index 17d43a398010cde9343d60c473671c1c29191798..73f623201fcd13376d65fd5573fb4ad58019af0a 100644 (file)
@@ -67,7 +67,7 @@ def inet_ntoa(address):
         if current_len > best_len:
             best_start = start
             best_len = current_len
-    if best_len > 0:
+    if best_len > 1:
         if best_start == 0 and \
            (best_len == 6 or
             best_len == 5 and chunks[5] == 'ffff'):
index b103c21a851598659a66d5ce87d1c65d47e738b8..bef83f37fb222afae03b13b870314f59fea493b5 100644 (file)
@@ -193,5 +193,11 @@ class NtoAAtoNTestCase(unittest.TestCase):
         for addr in addrs:
             self.assertRaises(dns.exception.SyntaxError, make_bad(addr))
 
+    def test_rfc5952_section_4_2_2(self):
+        addr = '2001:db8:0:1:1:1:1:1'
+        b1 = aton6(addr)
+        t1 = ntoa6(b1)
+        self.assertTrue(t1 == addr)
+
 if __name__ == '__main__':
     unittest.main()