diff options
| author | Moritz Warning <moritzwarning@web.de> | 2015-05-30 13:40:06 +0200 |
|---|---|---|
| committer | Moritz Warning <moritzwarning@web.de> | 2015-05-31 02:52:25 +0200 |
| commit | 62275acf212cfb060e85366af2fac1432787ff4f (patch) | |
| tree | b0b0b9a5c6515baf253802e7481c808ca71398dc /alfred | |
| parent | ef881054724b7336fc36c0d945d640b947984427 (diff) | |
alfred: wait for batmanif and interface, ignore batmanif if it is set to 'none'
Diffstat (limited to 'alfred')
| -rwxr-xr-x | alfred/files/alfred.init | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/alfred/files/alfred.init b/alfred/files/alfred.init index b777b53..b3b068a 100755 --- a/alfred/files/alfred.init +++ b/alfred/files/alfred.init @@ -16,10 +16,27 @@ 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 +wait_for_dir() +{ + local ifce="$1" dir="$2" + + if ! [ -d "$dir" ] ; then + timeout=30 + echo "${initscript}: waiting $timeout secs for $ifce interface..." + for i in $(seq $timeout); do + sleep 1 + [ -d "$dir" ] && break + if [ $i == $timeout ] ; then + echo "${initscript}: $ifce not detected, alfred not starting." + exit 1 + fi + done + fi +} + alfred_start() { local args="" @@ -41,6 +58,12 @@ alfred_start() config_get batmanif "$section" batmanif append args "-b $batmanif" + if [ "$batmanif" != "none" ]; then + wait_for_dir "$batmanif" "/sys/class/net/$batmanif/mesh" + fi + + wait_for_dir "$interface" "/sys/class/net/$interface/" + append alfred_args "$args" enable=1 @@ -64,20 +87,6 @@ start() 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} |
