diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh index d5268282..0c375c3f 100755 --- a/modules.d/40network/net-lib.sh +++ b/modules.d/40network/net-lib.sh @@ -664,16 +664,14 @@ wait_for_ipv6_dad() { wait_for_ipv6_auto() { local cnt=0 - local li local timeout="$(getargs rd.net.timeout.ipv6auto=)" timeout=${timeout:-40} timeout=$(($timeout*10)) while [ $cnt -lt $timeout ]; do - li=$(ip -6 addr show dev $1) - if ! strstr "$li" "tentative"; then - strstr "$li" "dynamic" && return 0 - fi + [ -z "$(ip -6 addr show dev "$1" scope global tentative)" ] \ + && [ -n "$(ip -6 route list proto ra dev "$1")" ] \ + && return 0 sleep 0.1 cnt=$(($cnt+1)) done