From 893890ae2b0e04b68362e1b3976bc1c263d2115a Mon Sep 17 00:00:00 2001 From: Moritz Warning Date: Tue, 1 Nov 2016 02:13:49 +0100 Subject: [PATCH] nodogsplash: wait for interface to appear --- nodogsplash/Makefile | 2 +- nodogsplash/files/nodogsplash.init | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/nodogsplash/Makefile b/nodogsplash/Makefile index 2b8efd2..971fbac 100644 --- a/nodogsplash/Makefile +++ b/nodogsplash/Makefile @@ -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 diff --git a/nodogsplash/files/nodogsplash.init b/nodogsplash/files/nodogsplash.init index f3df6a1..85bcfcc 100755 --- a/nodogsplash/files/nodogsplash.init +++ b/nodogsplash/files/nodogsplash.init @@ -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 -- 2.30.2