https://fedorahosted.org/freeipa/ticket/2138
Honza -- Jan Cholasta
>From bfb4d16171de95adb6d6dc1b144f8d6ae3259aee Mon Sep 17 00:00:00 2001 From: Jan Cholasta <jchol...@redhat.com> Date: Mon, 19 Mar 2012 08:52:11 -0400 Subject: [PATCH] Parse zone indices in IPv6 addresses in CheckedIPAddress. ticket 2138 --- ipapython/ipautil.py | 8 +++++++- tests/test_ipapython/test_ipautil.py | 4 ++++ 2 files changed, 11 insertions(+), 1 deletions(-) diff --git a/ipapython/ipautil.py b/ipapython/ipautil.py index 416ebf5..3855286 100644 --- a/ipapython/ipautil.py +++ b/ipapython/ipautil.py @@ -98,7 +98,13 @@ class CheckedIPAddress(netaddr.IPAddress): pass else: try: - addr = netaddr.IPAddress(addr, flags=self.netaddr_ip_flags) + try: + addr = netaddr.IPAddress(addr, flags=self.netaddr_ip_flags) + except netaddr.AddrFormatError: + addr = str(addr).partition('%')[0] + addr = netaddr.IPAddress(addr, flags=self.netaddr_ip_flags) + if addr.version != 6: + raise except ValueError: net = netaddr.IPNetwork(addr, flags=self.netaddr_ip_flags) if not parse_netmask: diff --git a/tests/test_ipapython/test_ipautil.py b/tests/test_ipapython/test_ipautil.py index 68391c2..650e1ce 100644 --- a/tests/test_ipapython/test_ipautil.py +++ b/tests/test_ipapython/test_ipautil.py @@ -39,6 +39,8 @@ def test_ip_address(): addrs = [ ('10.11.12.13', (10, 11, 12, 13), 8), ('10.11.12.13/14', (10, 11, 12, 13), 14), + ('10.11.12.13%zoneid',), + ('10.11.12.13%zoneid/14',), ('10.11.12.1337',), ('10.11.12.13/33',), ('127.0.0.1',), @@ -50,6 +52,8 @@ def test_ip_address(): ('2001::1', (0x2001, 0, 0, 0, 0, 0, 0, 1), 64), ('2001::1/72', (0x2001, 0, 0, 0, 0, 0, 0, 1), 72), + ('2001::1%zoneid', (0x2001, 0, 0, 0, 0, 0, 0, 1), 64), + ('2001::1%zoneid/72',), ('2001::1beef',), ('2001::1/129',), ('::1',), -- 1.7.7.6
_______________________________________________ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel