|
|
403b09 |
From fd11c06c34a45688c7609872b93413823f9ccb4d Mon Sep 17 00:00:00 2001
|
|
|
403b09 |
From: Martin Basti <mbasti@redhat.com>
|
|
|
403b09 |
Date: Mon, 5 Sep 2016 14:33:58 +0200
|
|
|
403b09 |
Subject: [PATCH] Fix parse errors with link-local addresses
|
|
|
403b09 |
|
|
|
403b09 |
Link-local addresses received from netifaces contains '%suffix' that
|
|
|
403b09 |
causes parse error in IPNetwork class. We must remove %suffix before
|
|
|
403b09 |
it us used in IPNetwork objects.
|
|
|
403b09 |
|
|
|
403b09 |
https://fedorahosted.org/freeipa/ticket/6296
|
|
|
403b09 |
|
|
|
403b09 |
Reviewed-By: Tomas Krizek <tkrizek@redhat.com>
|
|
|
403b09 |
---
|
|
|
403b09 |
ipapython/ipautil.py | 7 ++++++-
|
|
|
403b09 |
1 file changed, 6 insertions(+), 1 deletion(-)
|
|
|
403b09 |
|
|
|
403b09 |
diff --git a/ipapython/ipautil.py b/ipapython/ipautil.py
|
|
|
403b09 |
index fdfebb65ecb8b62108852f6517b5ffb22fd7eedc..a099ea45747100946aa97bb5010ae58c49a089ba 100644
|
|
|
403b09 |
--- a/ipapython/ipautil.py
|
|
|
403b09 |
+++ b/ipapython/ipautil.py
|
|
|
403b09 |
@@ -173,8 +173,13 @@ class CheckedIPAddress(UnsafeIPAddress):
|
|
|
403b09 |
iface = None
|
|
|
403b09 |
for interface in netifaces.interfaces():
|
|
|
403b09 |
for ifdata in netifaces.ifaddresses(interface).get(family, []):
|
|
|
403b09 |
+
|
|
|
403b09 |
+ # link-local addresses contain '%suffix' that causes parse
|
|
|
403b09 |
+ # errors in IPNetwork
|
|
|
403b09 |
+ ifaddr = ifdata['addr'].split(u'%', 1)[0]
|
|
|
403b09 |
+
|
|
|
403b09 |
ifnet = netaddr.IPNetwork('{addr}/{netmask}'.format(
|
|
|
403b09 |
- addr=ifdata['addr'],
|
|
|
403b09 |
+ addr=ifaddr,
|
|
|
403b09 |
netmask=ifdata['netmask']
|
|
|
403b09 |
))
|
|
|
403b09 |
if ifnet == self._net or (
|
|
|
403b09 |
--
|
|
|
403b09 |
2.7.4
|
|
|
403b09 |
|