From d88af5aa0312ea18aac791d66661da79b7bcd032 Mon Sep 17 00:00:00 2001
From: "Maxin B. John" <maxin.john@intel.com>
Date: Wed, 21 Dec 2016 15:32:07 +0200
Subject: [PATCH] inet[6].defn: fix inverted checks for loopback

Compared to the hurd link.defn for loopback, we see these
are inverted, meaning that you would only be able to configure
a loopback device that was _not_ named "lo" (unlikely to exist).

The result was that we'd update /run/network/ifstate for "lo"
but never actually do anything for up/down, as shown below:

root@localhost:~# ifconfig -s
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR  TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0   7736329      0   2016 0 5289422      0      0      0 BMRU
lo        65536 0        18      0      0 0      18      0      0      0 LRU
root@localhost:~# ifdown lo
root@localhost:~# echo $?
0
root@localhost:~# ifconfig -s
Iface   MTU Met   RX-OK RX-ERR RX-DRP  RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0   7736406      0  2016 0   5289455      0      0      0 BMRU
lo        65536 0        18      0   0 0            18    0    0    0     LRU
root@localhost:~# ifconfig lo down
root@localhost:~# ifconfig -s
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0   7736474 0   2016 0       5289481      0     0      0 BMRU
root@localhost:~#

Also reverted the commit:
commit 80b878497663dae08f70b4d3cffe127b57a3cfc
which uses absolute paths to binaries called by ifup/ifdown.

Upstream-Status: Inappropriate [OE specific]

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
 inet.defn | 148 +++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 74 insertions(+), 74 deletions(-)

diff --git a/inet.defn b/inet.defn
index 75e6744..b5f5da2 100644
--- a/inet.defn
+++ b/inet.defn
@@ -6,10 +6,10 @@ method loopback
     This method may be used to define the IPv4 loopback interface.
 
   up
-    /bin/ip link set dev %iface% up if (!iface_is_lo())
+    ip link set dev %iface% up if (iface_is_lo())
 
   down
-    /bin/ip link set dev %iface% down if (!iface_is_lo())
+    ip link set dev %iface% down if (iface_is_lo())
 
 method static
   description
@@ -36,17 +36,17 @@ method static
     broadcast compute_v4_broadcast
 
   up
-    /bin/ip addr add %address%[[/%netmask%]] [[broadcast %broadcast%]] \
+    ip addr add %address%[[/%netmask%]] [[broadcast %broadcast%]] \
 	[[peer %pointopoint%]] [[scope %scope%]] dev %iface% label %iface%
-    /bin/ip link set dev %iface% [[mtu %mtu%]] [[address %hwaddress%]] up
+    ip link set dev %iface% [[mtu %mtu%]] [[address %hwaddress%]] up
 
-    [[ /bin/ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
+    [[ ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
 
   down
-    [[ /bin/ip route del default via %gateway% [[metric %metric%]] dev %iface% 2>&1 1>/dev/null || true ]]
-    /bin/ip addr del %address%[[/%netmask%]] [[broadcast %broadcast%]] \
+    [[ ip route del default via %gateway% [[metric %metric%]] dev %iface% 2>&1 1>/dev/null || true ]]
+    ip addr del %address%[[/%netmask%]] [[broadcast %broadcast%]] \
 	[[peer %pointopoint%]] [[scope %scope%]] dev %iface% label %iface%
-    /bin/ip link set dev %iface% down \
+    ip link set dev %iface% down \
 		if (iface_is_link())
 
 method manual
@@ -63,12 +63,12 @@ method manual
     hwaddress cleanup_hwaddress
 
   up
-    [[/bin/ip link set dev %iface% mtu %mtu%]]
-    [[/bin/ip link set dev %iface% address %hwaddress%]]
-    /bin/ip link set dev %iface% up 2>/dev/null || true
+    [[ip link set dev %iface% mtu %mtu%]]
+    [[ip link set dev %iface% address %hwaddress%]]
+    ip link set dev %iface% up 2>/dev/null || true
 
   down
-    /bin/ip link set dev %iface% down 2>/dev/null || true \
+    ip link set dev %iface% down 2>/dev/null || true \
         if (iface_is_link() && !do_all)
 
 method dhcp
@@ -93,33 +93,33 @@ method dhcp
     hwaddress cleanup_hwaddress
 
   up
-    [[/bin/ip link set dev %iface% address %hwaddress%]]
-    /sbin/dhclient -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
+    [[ip link set dev %iface% address %hwaddress%]]
+    dhclient -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
 	[[-e IF_METRIC=%metric%]] \
         if (execable("/sbin/dhclient"))
-    /sbin/pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]] \
+    pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]] \
         elsif (execable("/sbin/pump"))
-    /sbin/udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-x hostname:%hostname%]] \
+    udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-x hostname:%hostname%]] \
         elsif (execable("/sbin/udhcpc"))
-    /sbin/dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
+    dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
            [[-l %leasetime%]] [[-m %metric%]] %iface% \
         elsif (execable("/sbin/dhcpcd"))
     echo 'No DHCP client software found!' >/dev/stderr; false \
         elsif (1)
 
   down
-    /sbin/dhclient -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
+    dhclient -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
         if (execable("/sbin/dhclient"))
-    /sbin/pump -i %iface% -r \
+    pump -i %iface% -r \
         elsif (execable("/sbin/pump"))
-    if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi \
+    if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(cat /run/udhcpc.%iface%.pid); kill -TERM $(cat /run/udhcpc.%iface%.pid); fi \
         elsif (execable("/sbin/udhcpc"))
-    /sbin/dhcpcd -k %iface% \
+    dhcpcd -k %iface% \
         elsif (execable("/sbin/dhcpcd"))
     echo 'No DHCP client software found!' >/dev/stderr; false \
         elsif (1)
 
-    /bin/ip link set dev %iface% down \
+    ip link set dev %iface% down \
 		if (iface_is_link())
 
 method bootp
@@ -134,11 +134,11 @@ method bootp
                       whatever it really is.
 
   up
-    /sbin/bootpc [[--bootfile %bootfile%]] --dev %iface% [[--server %server%]] \
+    bootpc [[--bootfile %bootfile%]] --dev %iface% [[--server %server%]] \
            [[--hwaddr %hwaddr%]] --returniffail --serverbcast
 
   down
-    /bin/ip link set dev %iface% down \
+    ip link set dev %iface% down \
         if (iface_is_link())
 
 method tunnel
@@ -158,13 +158,13 @@ method tunnel
     ttl time              -- TTL setting
     mtu size              -- MTU size
   up
-    /bin/ip tunnel add %iface% mode %mode% remote %endpoint% [[local %local%]] \
+    ip tunnel add %iface% mode %mode% remote %endpoint% [[local %local%]] \
        [[ttl %ttl%]]
-    /bin/ip link set %iface% up [[mtu %mtu%]]
-    /bin/ip addr add %address%/%netmask% dev %iface% [[peer %dstaddr%]]
-    [[ /bin/ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
+    ip link set %iface% up [[mtu %mtu%]]
+    ip addr add %address%/%netmask% dev %iface% [[peer %dstaddr%]]
+    [[ ip route add default via %gateway% [[metric %metric%]] dev %iface% onlink ]]
   down
-    /bin/ip tunnel del %iface%
+    ip tunnel del %iface%
 
 method ppp
   description
@@ -175,9 +175,9 @@ method ppp
     unit number    -- Use /number/ as the ppp unit number.
     options string -- Pass /string/ as additional options to pon.
   up
-    /usr/bin/pon [[%provider%]] [[unit %unit%]] [[%options%]]
+    pon [[%provider%]] [[unit %unit%]] [[%options%]]
   down
-    /usr/bin/poff [[%provider%]]
+    poff [[%provider%]]
 
 method wvdial
   description
@@ -186,10 +186,10 @@ method wvdial
   options
     provider name  -- Use /name/ as the provider (from /etc/wvdial.conf).
   up
-    /sbin/start-stop-daemon --start -x /usr/bin/wvdial \
+    start-stop-daemon --start -x /usr/bin/wvdial \
                       -p /run/wvdial.%iface%.pid -b -m -- [[ %provider% ]]
   down
-    /sbin/start-stop-daemon --stop -x /usr/bin/wvdial \
+    start-stop-daemon --stop -x /usr/bin/wvdial \
                       -p /run/wvdial.%iface%.pid -s 2
 
 
@@ -200,9 +200,9 @@ method ipv4ll
     known as APIPA or IPAC, and often colloquially referred to
     as "Zeroconf address".
   up
-    /usr/sbin/avahi-autoipd -D %iface%
+    avahi-autoipd -D %iface%
   down
-    /usr/sbin/avahi-autoipd --kill %iface%
+    avahi-autoipd --kill %iface%
 
 architecture kfreebsd
 
@@ -211,12 +211,12 @@ method loopback
     This method may be used to define the IPv4 loopback interface.
 
   up
-    /sbin/ifconfig %iface% 127.0.0.1 up \
-	if (!iface_is_lo())
+    ifconfig %iface% 127.0.0.1 up \
+	if (iface_is_lo())
 
   down
-    /sbin/ifconfig %iface% down \
-	if (!iface_is_lo())
+    ifconfig %iface% down \
+	if (iface_is_lo())
 
 method static
   description
@@ -238,15 +238,15 @@ method static
     hwaddress cleanup_hwaddress
 
   up
-    [[ /sbin/ifconfig %iface% link %hwaddress%]]
-    /sbin/ifconfig %iface% %address% [[netmask %netmask%]] [[broadcast %broadcast%]] \
+    [[ ifconfig %iface% link %hwaddress%]]
+    ifconfig %iface% %address% [[netmask %netmask%]] [[broadcast %broadcast%]] \
 	[[pointopoint %pointopoint%]] [[media %media%]] [[mtu %mtu%]] \
 	up
-    [[ /sbin/route add default %gateway% ]]
+    [[ route add default %gateway% ]]
 
   down
-    [[ /sbin/route del default %gateway% 2>&1 1>/dev/null || true ]]
-    /sbin/ifconfig %iface% down
+    [[ route del default %gateway% 2>&1 1>/dev/null || true ]]
+    ifconfig %iface% down
 
 method manual
   description
@@ -279,30 +279,30 @@ method dhcp
     hwaddress cleanup_hwaddress
 
   up
-    [[/sbin/ifconfig %iface% link %hwaddress%]]
-    /sbin/dhclient -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
+    [[ifconfig %iface% link %hwaddress%]]
+    dhclient -v -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
 	[[-e IF_METRIC=%metric%]] \
         if (execable("/sbin/dhclient"))
-    /sbin/udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-H %hostname%]] \
+    udhcpc -n -p /run/udhcpc.%iface%.pid -i %iface% [[-H %hostname%]] \
            [[-c %client%]] \
         elsif (execable("/sbin/udhcpc"))
-    /sbin/dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
+    dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
            [[-l %leasetime%]] %iface% \
         elsif (execable("/sbin/dhcpcd"))
     echo 'No DHCP client software found!' >/dev/stderr; false \
         elsif (1)
 
   down
-    /sbin/dhclient -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
+    dhclient -v -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
         if (execable("/sbin/dhclient"))
-    if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi \
+    if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(cat /run/udhcpc.%iface%.pid); kill -TERM $(cat /run/udhcpc.%iface%.pid); fi \
         elsif (execable("/sbin/udhcpc"))
-    /sbin/dhcpcd -k %iface% \
+    dhcpcd -k %iface% \
         elsif (execable("/sbin/dhcpcd"))
     echo 'No DHCP client software found!' >/dev/stderr; false \
         elsif (1)
 
-    /sbin/ifconfig %iface% down
+    ifconfig %iface% down
 
 method bootp
   description
@@ -316,11 +316,11 @@ method bootp
                       whatever it really is.
 
   up
-    /sbin/bootpc [[--bootfile %bootfile%]] --dev %iface% [[--server %server%]] \
+    bootpc [[--bootfile %bootfile%]] --dev %iface% [[--server %server%]] \
            [[--hwaddr %hwaddr%]] --returniffail --serverbcast
 
   down
-    /sbin/ifconfig %iface% down
+    ifconfig %iface% down
 
 method ppp
   description
@@ -331,9 +331,9 @@ method ppp
     unit number    -- Use /number/ as the ppp unit number.
     options string -- Pass /string/ as additional options to pon.
   up
-    /usr/bin/pon [[%provider%]] [[unit %unit%]] [[%options%]]
+    pon [[%provider%]] [[unit %unit%]] [[%options%]]
   down
-    /usr/bin/poff [[%provider%]]
+    poff [[%provider%]]
 
 method wvdial
   description
@@ -342,10 +342,10 @@ method wvdial
   options
     provider name  -- Use /name/ as the provider (from /etc/wvdial.conf).
   up
-    /sbin/start-stop-daemon --start -x /usr/bin/wvdial \
+    start-stop-daemon --start -x /usr/bin/wvdial \
                       -p /run/wvdial.%iface%.pid -b -m -- [[ %provider% ]]
   down
-    /sbin/start-stop-daemon --stop -x /usr/bin/wvdial \
+    start-stop-daemon --stop -x /usr/bin/wvdial \
                       -p /run/wvdial.%iface%.pid -s 2
 
 
@@ -356,9 +356,9 @@ method ipv4ll
     known as APIPA or IPAC, and often colloquially referred to
     as "Zeroconf address".
   up
-    /usr/sbin/avahi-autoipd -D %iface%
+    avahi-autoipd -D %iface%
   down
-    /usr/sbin/avahi-autoipd --kill %iface%
+    avahi-autoipd --kill %iface%
 architecture hurd
 
 method loopback
@@ -367,11 +367,11 @@ method loopback
 
   up
     inetutils-ifconfig --interface %iface% --address 127.0.0.1 --up \
-	if (!iface_is_lo())
+	if (iface_is_lo())
 
   down
     inetutils-ifconfig --interface %iface% --down \
-	if (!iface_is_lo())
+	if (iface_is_lo())
 
 method static
   description
@@ -432,23 +432,23 @@ method dhcp
 
   up
     [[Warning: Option hwaddress: %hwaddress% not yet supported]]
-    /sbin/dhclient -v -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \
+    dhclient -v -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \
         if (execable("/sbin/dhclient"))
-    /sbin/udhcpc -n -p /run/udhcpc.%iface///.%.pid -i %iface% [[-H %hostname%]] \
+    udhcpc -n -p /run/udhcpc.%iface///.%.pid -i %iface% [[-H %hostname%]] \
            [[-c %client%]] \
         elsif (execable("/sbin/udhcpc"))
-    /sbin/dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
+    dhcpcd [[-h %hostname%]] [[-i %vendor%]] [[-I %client%]] \
            [[-l %leasetime%]] %iface% \
         elsif (execable("/sbin/dhcpcd"))
     echo 'No DHCP client software found!' >/dev/stderr; false \
         elsif (1)
 
   down
-    /sbin/dhclient -v -r -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \
+    dhclient -v -r -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \
         if (execable("/sbin/dhclient"))
-    if test -f /run/udhcpc.%iface///.%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface///.%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface///.%.pid); fi \
+    if test -f /run/udhcpc.%iface///.%.pid; then kill -USR2 $(cat /run/udhcpc.%iface///.%.pid); kill -TERM $(cat /run/udhcpc.%iface///.%.pid); fi \
         elsif (execable("/sbin/udhcpc"))
-    /sbin/dhcpcd -k %iface% \
+    dhcpcd -k %iface% \
         elsif (execable("/sbin/dhcpcd"))
     echo 'No DHCP client software found!' >/dev/stderr; false \
         elsif (1)
@@ -482,9 +482,9 @@ method ppp
     unit number    -- Use /number/ as the ppp unit number.
     options string -- Pass /string/ as additional options to pon.
   up
-    /usr/bin/pon [[%provider%]] [[unit %unit%]] [[%options%]]
+    pon [[%provider%]] [[unit %unit%]] [[%options%]]
   down
-    /usr/bin/poff [[%provider%]]
+    poff [[%provider%]]
 
 method wvdial
   description
@@ -493,10 +493,10 @@ method wvdial
   options
     provider name  -- Use /name/ as the provider (from /etc/wvdial.conf).
   up
-    /sbin/start-stop-daemon --start -x /usr/bin/wvdial \
+    start-stop-daemon --start -x /usr/bin/wvdial \
                       -p /run/wvdial.%iface///.%.pid -b -m -- [[ %provider% ]]
   down
-    /sbin/start-stop-daemon --stop -x /usr/bin/wvdial \
+    start-stop-daemon --stop -x /usr/bin/wvdial \
                       -p /run/wvdial.%iface///.%.pid -s 2
 
 
@@ -507,6 +507,6 @@ method ipv4ll
     known as APIPA or IPAC, and often colloquially referred to
     as "Zeroconf address".
   up
-    /usr/sbin/avahi-autoipd -D %iface%
+    avahi-autoipd -D %iface%
   down
-    /usr/sbin/avahi-autoipd --kill %iface%
+    avahi-autoipd --kill %iface%
-- 
2.4.0

