]> git.pld-linux.org Git - projects/rc-scripts.git/commitdiff
- wait for duplicated IPv6 address detection while interface configuration
authorAdam Osuchowski <adwol@pld-linux.org>
Fri, 28 Jan 2022 00:20:30 +0000 (01:20 +0100)
committerAdam Osuchowski <adwol@pld-linux.org>
Fri, 28 Jan 2022 00:20:30 +0000 (01:20 +0100)
lib/ifup

index 38780bf4770cc111f72eb73e160205823c432b17..71652f7a75106a2b0c12f0a5aecf62e662217ed5 100755 (executable)
--- a/lib/ifup
+++ b/lib/ifup
@@ -219,6 +219,19 @@ else
        # IPv6 in use ?
        if is_yes "$IPV6_NETWORKING" && [ -n "${IP6ADDR}" ]; then
                ip addr add ${IP6ADDR} dev ${DEVICE} ${IP6ADDROPT}
+               timeout=0
+               while [ $timeout -le 20 ] && \
+                     if_state="`ip -o addr list dev ${DEVICE} to ${IP6ADDR}`" && \
+                     echo "$if_state" | grep -q tentative && \
+                     ! echo "$if_state" | grep -q dadfailed ; do
+                       usleep 500000
+                       timeout=$((timeout+1))
+               done
+               if ip -o addr list dev ${DEVICE} to ${IP6ADDR} | grep -q dadfailed ; then
+                       ip addr del ${IP6ADDR} dev ${DEVICE}
+                       nls '%s: Duplicated address detected: %s' "$DEVICE" "$IP6ADDR"
+                       exit 1
+               fi
                if [ -n "${IP6ADDRLABEL}" ]; then
                        ip addrlabel add prefix ${IP6ADDR} dev ${DEVICE} label ${IP6ADDRLABEL}
                fi
This page took 0.33351 seconds and 4 git commands to generate.