summaryrefslogtreecommitdiff
path: root/trunk
diff options
context:
space:
mode:
authorpmoody@google.com <pmoody@google.com@09200d28-7f98-11dd-ad27-0f66e57d2035>2010-02-04 04:18:13 +0000
committerpmoody@google.com <pmoody@google.com@09200d28-7f98-11dd-ad27-0f66e57d2035>2010-02-04 04:18:13 +0000
commitebc3e47236ee7370656d7978542f4e90ad971fd4 (patch)
treec3f07c9649067cc5a9527e19d311174f5b461957 /trunk
parenteb46979ed7940d296fc4374bd21add5d77c8623f (diff)
downloadipaddr-py-ebc3e47236ee7370656d7978542f4e90ad971fd4.tar.gz
+ fix for issue48; some problems with decoding mapped addresses.
(thanks to rlaager for reporting) git-svn-id: https://ipaddr-py.googlecode.com/svn@134 09200d28-7f98-11dd-ad27-0f66e57d2035
Diffstat (limited to 'trunk')
-rw-r--r--trunk/ipaddr.py2
-rwxr-xr-xtrunk/ipaddr_test.py2
2 files changed, 3 insertions, 1 deletions
diff --git a/trunk/ipaddr.py b/trunk/ipaddr.py
index 9f02808..fdf2e4c 100644
--- a/trunk/ipaddr.py
+++ b/trunk/ipaddr.py
@@ -1337,7 +1337,7 @@ class _BaseV6(object):
for field in fields:
try:
- ip_int = (ip_int << 16) + int(field, 16)
+ ip_int = (ip_int << 16) + int(field or '0', 16)
except ValueError:
raise AddressValueError(ip_str)
diff --git a/trunk/ipaddr_test.py b/trunk/ipaddr_test.py
index 9f310fb..b019014 100755
--- a/trunk/ipaddr_test.py
+++ b/trunk/ipaddr_test.py
@@ -895,6 +895,8 @@ class IpaddrUnitTest(unittest.TestCase):
def testIsValidIp(self):
ip = ipaddr.IPv6Address('::')
self.assertTrue(ip._is_valid_ip('2001:658:22a:cafe:200::1'))
+ self.assertTrue(ip._is_valid_ip('::ffff:10.10.0.0'))
+ self.assertTrue(ip._is_valid_ip('::ffff:192.168.0.0'))
self.assertFalse(ip._is_valid_ip('2001:658:22a::::1'))
self.assertFalse(ip._is_valid_ip(':658:22a:cafe:200::1'))
self.assertFalse(ip._is_valid_ip('2001:658:22a:cafe:200:'))