summaryrefslogtreecommitdiffstats
path: root/ipapython/ipautil.py
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2016-09-05 14:33:58 +0200
committerMartin Basti <mbasti@redhat.com>2016-09-06 16:39:34 +0200
commitdb55bde15dd83a0ed29205a127cefabe691e81b1 (patch)
tree3b6874979016e833aad4e3335e8c6ea93bebd93a /ipapython/ipautil.py
parentec2401917456d6f643532c0d0218c9e75172c2d8 (diff)
downloadfreeipa-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.py7
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 (