]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
revert prior patch as things are more messed up than I thought!
authorBob Halley <halley@dnspython.org>
Mon, 30 May 2016 23:34:32 +0000 (16:34 -0700)
committerBob Halley <halley@dnspython.org>
Mon, 30 May 2016 23:34:32 +0000 (16:34 -0700)
dns/ipv6.py

index 4622ba7ad56eb358d0802101a55fd7cb7ff98064..ee991e85b1ee33edd14d7db2e161641919c57058 100644 (file)
@@ -91,9 +91,9 @@ def inet_ntoa(address):
         hex = b':'.join(chunks)
     return hex
 
-_v4_ending = re.compile('(.*):(\d+\.\d+\.\d+\.\d+)$')
-_colon_colon_start = re.compile('::.*')
-_colon_colon_end = re.compile('.*::$')
+_v4_ending = re.compile(b'(.*):(\d+\.\d+\.\d+\.\d+)$')
+_colon_colon_start = re.compile(b'::.*')
+_colon_colon_end = re.compile(b'.*::$')
 
 def inet_aton(text):
     """Convert a text format IPv6 address into network format.
@@ -104,8 +104,14 @@ def inet_aton(text):
     @raises dns.exception.SyntaxError: the text was not properly formatted
     """
 
-    if text == '::':
-        text = '0::'
+    #
+    # Our aim here is not something fast; we just want something that works.
+    #
+    if not isinstance(text, binary_type):
+        text = text.encode()
+
+    if text == b'::':
+        text = b'0::'
     #
     # Get rid of the icky dot-quad syntax if we have it.
     #
@@ -128,29 +134,29 @@ def inet_aton(text):
     #
     # Now canonicalize into 8 chunks of 4 hex digits each
     #
-    chunks = text.split(':')
+    chunks = text.split(b':')
     l = len(chunks)
     if l > 8:
         raise dns.exception.SyntaxError
     seen_empty = False
     canonical = []
     for c in chunks:
-        if c == '':
+        if c == b'':
             if seen_empty:
                 raise dns.exception.SyntaxError
             seen_empty = True
             for i in xrange(0, 8 - l + 1):
-                canonical.append('0000')
+                canonical.append(b'0000')
         else:
             lc = len(c)
             if lc > 4:
                 raise dns.exception.SyntaxError
             if lc != 4:
-                c = ('0' * (4 - lc)) + c
+                c = (b'0' * (4 - lc)) + c
             canonical.append(c)
     if l < 8 and not seen_empty:
         raise dns.exception.SyntaxError
-    text = ''.join(canonical)
+    text = b''.join(canonical)
 
     #
     # Finally we can go to binary.