]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
network:wait_for_ifup() handle "NO-CARRIER" output
authorHarald Hoyer <harald@redhat.com>
Fri, 25 Sep 2015 14:14:33 +0000 (10:14 -0400)
committerHarald Hoyer <harald@redhat.com>
Wed, 11 Nov 2015 15:47:09 +0000 (16:47 +0100)
if "NO-CARRIER" is one of the flags, we surely have no link yet.

(cherry picked from commit f059985b14f80a41f3b8103b67cb8fae0d3fc2fc)

modules.d/40network/net-lib.sh

index 706a9a5644dd6e99a98a5498e550ce16ff4c1f20..135c378700df5e8bce8d7abe4d7bbd50975f2786 100755 (executable)
@@ -537,20 +537,22 @@ wait_for_if_up() {
 
     while [ $cnt -lt $timeout ]; do
         li=$(ip -o link show up dev $1)
-        if [ -n "$li" ]; then
-            case "$li" in
-                *\<UP*)
-                    return 0;;
-                *\<*,UP\>*)
-                    return 0;;
-                *\<*,UP,*\>*)
-                    return 0;;
-            esac
-        fi
-        if strstr "$li" "LOWER_UP" \
-                && strstr "$li" "state UNKNOWN" \
-                && ! strstr "$li" "DORMANT"; then
-            return 0
+        if ! strstr "$li" "NO-CARRIER"; then
+            if [ -n "$li" ]; then
+                case "$li" in
+                    *\<UP*)
+                        return 0;;
+                    *\<*,UP\>*)
+                        return 0;;
+                    *\<*,UP,*\>*)
+                        return 0;;
+                esac
+            fi
+            if strstr "$li" "LOWER_UP" \
+                    && strstr "$li" "state UNKNOWN" \
+                    && ! strstr "$li" "DORMANT"; then
+                return 0
+            fi
         fi
         sleep 0.1
         cnt=$(($cnt+1))