diff --git a/net/p910nd/files/p910nd.conf b/net/p910nd/files/p910nd.conf index a9b61b299..8d6a04df3 100644 --- a/net/p910nd/files/p910nd.conf +++ b/net/p910nd/files/p910nd.conf @@ -1,4 +1,5 @@ config p910nd option device "/dev/usb/lp0" - option port 0 - option bidirectional 1 + option port 0 + option bidirectional 1 + option enabled 0 diff --git a/net/p910nd/files/p910nd.init b/net/p910nd/files/p910nd.init index bc21b20a9..1850c667e 100644 --- a/net/p910nd/files/p910nd.init +++ b/net/p910nd/files/p910nd.init @@ -2,21 +2,33 @@ # Copyright (C) 2007 OpenWrt.org START=50 -BIN=p910nd +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" - config_get port "$section" port - config_get device "$section" device - config_get_bool bidirectional "$section" bidirectional + args="" - options="" - [ $bidirectional -eq 1 ] && { - options="$options -b" - } - options="$options -f $device $port" - - $BIN $options + 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() {