diff options
author | pmoody@google.com <pmoody@google.com@09200d28-7f98-11dd-ad27-0f66e57d2035> | 2010-02-04 04:18:13 +0000 |
---|---|---|
committer | pmoody@google.com <pmoody@google.com@09200d28-7f98-11dd-ad27-0f66e57d2035> | 2010-02-04 04:18:13 +0000 |
commit | ebc3e47236ee7370656d7978542f4e90ad971fd4 (patch) | |
tree | c3f07c9649067cc5a9527e19d311174f5b461957 /trunk | |
parent | eb46979ed7940d296fc4374bd21add5d77c8623f (diff) | |
download | ipaddr-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.py | 2 | ||||
-rwxr-xr-x | trunk/ipaddr_test.py | 2 |
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:')) |