diff options
author | Martin Basti <mbasti@redhat.com> | 2016-09-05 14:33:58 +0200 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2016-09-06 16:39:34 +0200 |
commit | db55bde15dd83a0ed29205a127cefabe691e81b1 (patch) | |
tree | 3b6874979016e833aad4e3335e8c6ea93bebd93a /ipapython/ipautil.py | |
parent | ec2401917456d6f643532c0d0218c9e75172c2d8 (diff) | |
download | freeipa-db55bde15dd83a0ed29205a127cefabe691e81b1.tar.gz freeipa-db55bde15dd83a0ed29205a127cefabe691e81b1.tar.xz freeipa-db55bde15dd83a0ed29205a127cefabe691e81b1.zip |
Fix parse errors with link-local addresses
Link-local addresses received from netifaces contains '%suffix' that
causes parse error in IPNetwork class. We must remove %suffix before
it us used in IPNetwork objects.
https://fedorahosted.org/freeipa/ticket/6296
Reviewed-By: Tomas Krizek <tkrizek@redhat.com>
Diffstat (limited to 'ipapython/ipautil.py')
-rw-r--r-- | ipapython/ipautil.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ipapython/ipautil.py b/ipapython/ipautil.py index 953654355..8de9acfb0 100644 --- a/ipapython/ipautil.py +++ b/ipapython/ipautil.py @@ -173,8 +173,13 @@ class CheckedIPAddress(UnsafeIPAddress): iface = None for interface in netifaces.interfaces(): for ifdata in netifaces.ifaddresses(interface).get(family, []): + + # link-local addresses contain '%suffix' that causes parse + # errors in IPNetwork + ifaddr = ifdata['addr'].split(u'%', 1)[0] + ifnet = netaddr.IPNetwork('{addr}/{netmask}'.format( - addr=ifdata['addr'], + addr=ifaddr, netmask=ifdata['netmask'] )) if ifnet == self._net or ( |