diff --git a/alfred/Makefile b/alfred/Makefile index b9c2c33..c8e73c2 100644 --- a/alfred/Makefile +++ b/alfred/Makefile @@ -12,7 +12,7 @@ include $(TOPDIR)/rules.mk # PKG_NAME:=alfred PKG_VERSION:=2013.4.0 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_MD5SUM:=3891697e127b1037cfc9349fd96e9993 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz diff --git a/alfred/files/alfred.init b/alfred/files/alfred.init index b678d4c..b777b53 100755 --- a/alfred/files/alfred.init +++ b/alfred/files/alfred.init @@ -16,6 +16,7 @@ pid_file_alfred="/var/run/alfred.pid" pid_file_vis="/var/run/batadv-vis.pid" enable=0 vis_enable=0 +batmanif="" SERVICE_DAEMONIZE=1 SERVICE_WRITE_PID=1 @@ -23,7 +24,7 @@ alfred_start() { local args="" local section="$1" - local disabled interface mode batmanif + local disabled interface mode # check if section is disabled config_get_bool disabled "$section" disabled 0 @@ -62,6 +63,21 @@ start() if [ "$enable" = "0" ]; then exit 0 fi + + mesh_dir="/sys/class/net/$batmanif/mesh/" + if ! [ -d "$mesh_dir" ] ; then + timeout=30 + echo "${initscript}: waiting $timeout secs for $batmanif interface..." + for i in $(seq $timeout); do + sleep 1 + [ -d "$mesh_dir" ] && break + if [ $i == $timeout ] ; then + echo "${initscript}: $batmanif not detected, alfred not starting." + exit 1 + fi + done + fi + echo "${initscript}: starting alfred" SERVICE_PID_FILE="$pid_file_alfred" service_start /usr/sbin/alfred ${alfred_args}