network:wait_for_ifup() handle "NO-CARRIER" output

if "NO-CARRIER" is one of the flags, we surely have no link yet.

(cherry picked from commit f059985b14)
master
Harald Hoyer 2015-09-25 10:14:33 -04:00
parent efba549a26
commit a49c1f049b
1 changed files with 16 additions and 14 deletions

View File

@ -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))