]> xenbits.xensource.com Git - xen.git/commitdiff
hotplug: fix ip_of for systems using a peer-to-peer link
authorIan Campbell <ijc@hellion.org.uk>
Wed, 25 Jul 2012 16:39:15 +0000 (17:39 +0100)
committerIan Campbell <ijc@hellion.org.uk>
Wed, 25 Jul 2012 16:39:15 +0000 (17:39 +0100)
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: <BROADCAST,MULTICAST,UP,10000> 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 <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
tools/hotplug/Linux/vif-common.sh

index a8bd19a6a334bebec67e842cd31b93f6332aba18..73ee24150a17cfaf711b9e3ba858d0b3d220788d 100644 (file)
@@ -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}'
 }