nodogsplash: wait for interface to appear

This commit is contained in:
Moritz Warning 2016-11-01 02:13:49 +01:00
parent eb80008326
commit 893890ae2b
2 changed files with 19 additions and 1 deletions

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=nodogsplash
PKG_FIXUP:=autoreconf
PKG_VERSION:=1.0.1
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz

View File

@ -119,6 +119,22 @@ setup_firewall() {
done
}
wait_for_interface()
{
local ifname="$1"
local timeout=10
for i in $(seq $timeout); do
if [ $(ip -4 addr show dev $ifname 2> /dev/null | grep -c inet) -ne 0 ]; then
break
fi
sleep 1
if [ $i == $timeout ] ; then
nolog error "$ifname not detected, NoDogSplash not starting."
exit 1
fi
done
}
generate_uci_config() {
local cfg="$1"
local val
@ -161,6 +177,8 @@ generate_uci_config() {
return 1
fi
wait_for_interface "$ifname"
echo "GatewayInterface $ifname" >> $CONFIGFILE
append_config_option "$CONFIGFILE" "$cfg" gatewayname