alfred: Fix procd process handling for disable state
[feed/routing.git] / alfred / files / alfred.init
index 0c35e65ca5205aea52f9e01d68a020676a3ffa4f..e439be10f71647adb17c52743cec3f819ae31439 100755 (executable)
@@ -24,10 +24,12 @@ wait_for_dir() {
                        [ -d "$dir" ] && break
                        if [ $i = $timeout ] ; then
                                echo "$ifce not detected, alfred not starting."
-                               exit 1
+                               return 1
                        fi
                done
        fi
+
+       return 0
 }
 
 wait_for_ll_address() {
@@ -45,13 +47,13 @@ wait_for_ll_address() {
                        $1 ~ /^fe80/ && $5 ~ /^[012389ab]/ && $6 == "'"$iface"'" { RET=0 }
                        END { exit RET }
                ' /proc/net/if_inet6; then
-                       return
+                       return 0
                fi
                sleep 1
        done
 
        echo "$iface address not detected, alfred not starting."
-       exit 1
+       return 1
 }
 
 append_interface()
@@ -86,7 +88,7 @@ alfred_start() {
        append args "-b $batmanif"
 
        if [ "$batmanif" != "none" ]; then
-               wait_for_dir "$batmanif" "/sys/devices/virtual/net/$batmanif"
+               wait_for_dir "$batmanif" "/sys/devices/virtual/net/$batmanif" || return 1
        fi
 
        append alfred_args "$args"
@@ -107,7 +109,7 @@ start_service() {
        config_load "alfred"
        config_foreach alfred_start alfred
 
-       [ "$enable" = "0" ] && exit 0
+       [ "$enable" = "0" ] && return 0
 
        procd_open_instance "alfred"
        procd_set_param command /usr/sbin/alfred