X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=net%2Fp910nd%2Ffiles%2Fp910nd.init;h=1850c667ec391f543550bc2955e4bbbbdc806145;hp=cc14fcbcb427554edfccde85060ee52d4348efc9;hb=2e23638197fc8e829545a812fa78ea8401fdf38d;hpb=5b0450ad12356cebdceb12a6b4f49986f4e7612f diff --git a/net/p910nd/files/p910nd.init b/net/p910nd/files/p910nd.init index cc14fcbcb4..1850c667ec 100644 --- a/net/p910nd/files/p910nd.init +++ b/net/p910nd/files/p910nd.init @@ -1,34 +1,50 @@ #!/bin/sh /etc/rc.common -# Copyright (C) 2006 OpenWrt.org +# Copyright (C) 2007 OpenWrt.org START=50 -DEFAULT=/etc/default/p910nd -RUN_D=/var/run +append_bool() { + local section="$1" + local option="$2" + local value="$3" + local _val + config_get_bool _val "$section" "$option" '0' + [ "$_val" -gt 0 ] && append args "$3" +} + +append_string() { + local section="$1" + local option="$2" + local value="$3" + local _val + config_get _val "$section" "$option" + [ -n "$_val" ] && append args "$3$_val" +} + +start_service() { + local section="$1" + args="" + + append_bool "$section" bidirectional "-b" + append_string "$section" device "-f " + append_string "$section" port "" + config_get_bool "enabled" "$section" "enabled" '1' + [ "$enabled" -gt 0 ] && /usr/sbin/p910nd $args +} + +stop_service() { + local section="$1" + config_get port "$section" port + + PID_F=/var/run/p910${port}d.pid + [ -f $PID_F ] && kill $(cat $PID_F) +} start() { - mkdir -p $RUN_D - [ -f $DEFAULT ] && ( - while read port options; do - case "$port" in - ""|\#*) continue;; - esac - p910nd $options $port - if [ $? -ne 0 ]; then - exit 1 - fi - done - ) < $DEFAULT + config_load "p910nd" + config_foreach start_service p910nd } stop() { - [ -f $DEFAULT ] && ( - while read port options; do - case "$port" in - ""|\#*) continue;l - esac - PID_F=$RUN_D/p910${port}d.pid - [ -f $PID_F ] && kill $(cat $PID_F) - done - ) < $DEFAULT + config_load "p910nd" + config_foreach stop_service p910nd } -