/lib/ifupdown/settle-dad.sh is in ifupdown 0.8.19.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #!/bin/sh
# 6 seconds maximum wait time
attempts=${IF_DAD_ATTEMPTS:-60}
delay=${IF_DAD_INTERVAL:-0.1}
[ $attempts -eq 0 ] && exit 0
echo -n "Waiting for DAD... "
for attempt in $(seq 1 $attempts); do
tentative=$(ip -o -6 address list dev "$IFACE" to "${IF_ADDRESS}/${IF_NETMASK}" tentative | wc -l)
if [ $tentative -eq 0 ]; then
attempt=0 # This might have been our last attempt, but succesful
break
fi
sleep $delay
done
if [ $attempt -eq $attempts ]; then
echo "Timed out"
exit 1
fi
dadfailed=$(ip -o -6 address list dev "$IFACE" to "${IF_ADDRESS}/${IF_NETMASK}" dadfailed | wc -l)
if [ $dadfailed -ge 1 ]; then
echo "Failed"
exit 1
fi
echo Done
|