Merge pull request #126 from NeoRaider/master
alfred: not only wait for the interface, but also a link-local address
This commit is contained in:
commit
4f8207064a
1 changed files with 26 additions and 1 deletions
|
@ -37,6 +37,31 @@ wait_for_dir()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wait_for_ll_address()
|
||||||
|
{
|
||||||
|
local iface="$1"
|
||||||
|
local timeout=30
|
||||||
|
|
||||||
|
echo "${initscript}: waiting $timeout secs for $iface address..."
|
||||||
|
for i in $(seq $timeout); do
|
||||||
|
# We look for
|
||||||
|
# - the link-local address (starts with fe80)
|
||||||
|
# - without tentative flag (bit 0x40 in the flags field; the first char of the flags field begins 38 columns after the fe80 prefix
|
||||||
|
# - on interface $iface
|
||||||
|
if awk '
|
||||||
|
BEGIN { RET=1 }
|
||||||
|
/^fe80.{37} [012389ab]/ { if ($6 == "'"$iface"'") RET=0 }
|
||||||
|
END { exit RET }
|
||||||
|
' /proc/net/if_inet6; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "${initscript}: $iface address not detected, alfred not starting."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
alfred_start()
|
alfred_start()
|
||||||
{
|
{
|
||||||
local args=""
|
local args=""
|
||||||
|
@ -62,7 +87,7 @@ alfred_start()
|
||||||
wait_for_dir "$batmanif" "/sys/class/net/$batmanif/mesh"
|
wait_for_dir "$batmanif" "/sys/class/net/$batmanif/mesh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
wait_for_dir "$interface" "/sys/class/net/$interface/"
|
wait_for_ll_address "$interface"
|
||||||
|
|
||||||
append alfred_args "$args"
|
append alfred_args "$args"
|
||||||
enable=1
|
enable=1
|
||||||
|
|
Loading…
Reference in a new issue