From d64a3a3e6a421ae0746cd4108e11b79e6d1238d4 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Wed, 25 Jul 2012 17:39:15 +0100 Subject: hotplug: fix ip_of for systems using a peer-to-peer link This is from an old Debian bug at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=437127 I'm slightly inferring what the configuration which trigger this issue is, the bug report says: This code however fails if no slash is present in the address, which is the case in my configuration: $ ip addr show dev eth0 2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:16:17:90:b4:35 brd ff:ff:ff:ff:ff:ff inet 88.198.12.XXX peer 88.198.12.XXX/32 brd 88.255.255.255 scope global eth0 I hope either Marc or Stefan can correct me if I have surmised wrongly what this configuration represents. This function is used in the vif-route configuration. Signed-off-by: Ian Campbell Acked-by: Ian Jackson Committed-by: Ian Campbell --- tools/hotplug/Linux/vif-common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tools/hotplug') diff --git a/tools/hotplug/Linux/vif-common.sh b/tools/hotplug/Linux/vif-common.sh index a8bd19a6a3..73ee24150a 100644 --- a/tools/hotplug/Linux/vif-common.sh +++ b/tools/hotplug/Linux/vif-common.sh @@ -189,7 +189,7 @@ handle_iptable() # ip_of() { - ip addr show "$1" | awk "/^.*inet.*$1\$/{print \$2}" | sed -n '1 s,/.*,,p' + ip -4 -o addr show primary dev "$1" | awk '$3 == "inet" {split($4,i,"/"); print i[1]; exit}' } -- cgit v1.2.3