Harald Hoyer 460d2c
From 3f5bf54fbffdc3516a08c9329b4be80b06761c7a Mon Sep 17 00:00:00 2001
Harald Hoyer 460d2c
From: Thomas Blume <Thomas.Blume@suse.com>
Harald Hoyer 460d2c
Date: Wed, 22 Jul 2020 09:34:42 +0200
Harald Hoyer 460d2c
Subject: [PATCH] 35network-legacy: simplify fallback dhcp setup
Harald Hoyer 460d2c
Harald Hoyer 460d2c
suppress redundant calls to network setup
Harald Hoyer 460d2c
Harald Hoyer 460d2c
combine code for "no ip option directed at our interface" and
Harald Hoyer 460d2c
"No ip lines default to dhcp"
Harald Hoyer 460d2c
correct evaluation of return code for creating did-setup files
Harald Hoyer 460d2c
fix application of "load_ipv6" call to ipv6 setup only
Harald Hoyer 460d2c
Harald Hoyer 460d2c
Reference: bsc#1173402
Harald Hoyer 460d2c
---
Harald Hoyer 460d2c
 modules.d/35network-legacy/ifup.sh | 41 +++++++++++++++++++-------------------
Harald Hoyer 460d2c
 1 file changed, 21 insertions(+), 20 deletions(-)
Harald Hoyer 460d2c
Harald Hoyer 460d2c
diff --git a/modules.d/35network-legacy/ifup.sh b/modules.d/35network-legacy/ifup.sh
Harald Hoyer 460d2c
index c05ccc1b..b1ae52ea 100755
Harald Hoyer 460d2c
--- a/modules.d/35network-legacy/ifup.sh
Harald Hoyer 460d2c
+++ b/modules.d/35network-legacy/ifup.sh
Harald Hoyer 460d2c
@@ -376,23 +376,6 @@ else
Harald Hoyer 460d2c
 fi
Harald Hoyer 460d2c
 
Harald Hoyer 460d2c
 
Harald Hoyer 460d2c
-# No ip lines default to dhcp
Harald Hoyer 460d2c
-ip=$(getarg ip)
Harald Hoyer 460d2c
-
Harald Hoyer 460d2c
-if [ -z "$NO_AUTO_DHCP" ] && [ -z "$ip" ]; then
Harald Hoyer 460d2c
-    if [ "$netroot" = "dhcp6" ]; then
Harald Hoyer 460d2c
-        do_dhcp -6
Harald Hoyer 460d2c
-    else
Harald Hoyer 460d2c
-        do_dhcp -4
Harald Hoyer 460d2c
-    fi
Harald Hoyer 460d2c
-
Harald Hoyer 460d2c
-    for s in $(getargs nameserver); do
Harald Hoyer 460d2c
-        [ -n "$s" ] || continue
Harald Hoyer 460d2c
-        echo nameserver $s >> /tmp/net.$netif.resolv.conf
Harald Hoyer 460d2c
-    done
Harald Hoyer 460d2c
-fi
Harald Hoyer 460d2c
-
Harald Hoyer 460d2c
-
Harald Hoyer 460d2c
 # Specific configuration, spin through the kernel command line
Harald Hoyer 460d2c
 # looking for ip= lines
Harald Hoyer 460d2c
 for p in $(getargs ip=); do
Harald Hoyer 460d2c
@@ -473,21 +456,39 @@ done
Harald Hoyer 460d2c
 
Harald Hoyer 460d2c
 # no ip option directed at our interface?
Harald Hoyer 460d2c
 if [ -z "$NO_AUTO_DHCP" ] && [ ! -e /tmp/net.${netif}.up ]; then
Harald Hoyer 460d2c
+    ret=1
Harald Hoyer 460d2c
     if [ -e /tmp/net.bootdev ]; then
Harald Hoyer 460d2c
         BOOTDEV=$(cat /tmp/net.bootdev)
Harald Hoyer 460d2c
         if [ "$netif" = "$BOOTDEV" ] || [ "$BOOTDEV" = "$(cat /sys/class/net/${netif}/address)" ]; then
Harald Hoyer 460d2c
-            load_ipv6
Harald Hoyer 460d2c
             do_dhcp
Harald Hoyer 460d2c
+            ret=$?
Harald Hoyer 460d2c
         fi
Harald Hoyer 460d2c
     else
Harald Hoyer 460d2c
-        if getargs 'ip=dhcp6'; then
Harald Hoyer 460d2c
+        # No ip lines, no bootdev -> default to dhcp
Harald Hoyer 460d2c
+        ip=$(getarg ip)
Harald Hoyer 460d2c
+
Harald Hoyer 460d2c
+        if getargs 'ip=dhcp6' || [ -z "$ip" -a "$netroot" = "dhcp6" ]; then
Harald Hoyer 460d2c
             load_ipv6
Harald Hoyer 460d2c
             do_dhcp -6
Harald Hoyer 460d2c
+            ret=$?
Harald Hoyer 460d2c
         fi
Harald Hoyer 460d2c
-        if getargs 'ip=dhcp'; then
Harald Hoyer 460d2c
+        if getargs 'ip=dhcp' || [ -z "$ip" -a "$netroot" != "dhcp6" ]; then
Harald Hoyer 460d2c
             do_dhcp -4
Harald Hoyer 460d2c
+            ret=$?
Harald Hoyer 460d2c
         fi
Harald Hoyer 460d2c
     fi
Harald Hoyer 460d2c
+
Harald Hoyer 460d2c
+    for s in $(getargs nameserver); do
Harald Hoyer 460d2c
+        [ -n "$s" ] || continue
Harald Hoyer 460d2c
+        echo nameserver $s >> /tmp/net.$netif.resolv.conf
Harald Hoyer 460d2c
+    done
Harald Hoyer 460d2c
+
Harald Hoyer 460d2c
+    if [ "$ret" -eq 0 ] && [ -n "$(ls /tmp/leaseinfo.${netif}*)" ]; then
Harald Hoyer 460d2c
+         > /tmp/net.${netif}.did-setup
Harald Hoyer 460d2c
+         if [ -e /sys/class/net/${netif}/address ]; then
Harald Hoyer 460d2c
+             > /tmp/net.$(cat /sys/class/net/${netif}/address).did-setup
Harald Hoyer 460d2c
+         fi
Harald Hoyer 460d2c
+    fi
Harald Hoyer 460d2c
 fi
Harald Hoyer 460d2c
 
Harald Hoyer 460d2c
 exit 0
Harald Hoyer 460d2c