From: Bob Halley Date: Mon, 30 May 2016 23:34:32 +0000 (-0700) Subject: revert prior patch as things are more messed up than I thought! X-Git-Tag: v1.15.0~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=995a46caade4c8bbaaa19bc42fcf75c8956fc885;p=thirdparty%2Fdnspython.git revert prior patch as things are more messed up than I thought! --- diff --git a/dns/ipv6.py b/dns/ipv6.py index 4622ba7a..ee991e85 100644 --- a/dns/ipv6.py +++ b/dns/ipv6.py @@ -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.