| #!/bin/sh /etc/rc.common |
| # Copyright (C) 2007 OpenWrt.org |
| START=99 |
| USE_PROCD=1 |
| |
| 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() { |
| config_load "p910nd" |
| config_foreach start_p910nd p910nd |
| } |
| |
| |
| start_p910nd() { |
| local section="$1" runas_root |
| config_get_bool "enabled" "$section" "enabled" '0' |
| if [ "$enabled" -gt 0 ]; then |
| args="-d " |
| config_get port "$section" port |
| name=p910${port}d |
| append_bool "$section" bidirectional "-b" |
| append_string "$section" device "-f " |
| append_string "$section" bind "-i " |
| append_string "$section" port "" |
| procd_open_instance $name |
| procd_set_param command /usr/sbin/p910nd $args |
| procd_set_param respawn |
| |
| config_get_bool runas_root "$section" runas_root 0 |
| [ "$runas_root" -ne 1 ] && procd_set_param user p910nd |
| |
| config_get_bool "mdns" "$section" "mdns" '0' |
| config_get mdns_note "$section" mdns_note |
| config_get mdns_ty "$section" mdns_ty |
| config_get mdns_product "$section" mdns_product |
| config_get mdns_mfg "$section" mdns_mfg |
| config_get mdns_mdl "$section" mdns_mdl |
| config_get mdns_cmd "$section" mdns_cmd |
| [ "$mdns" -gt 0 ] && procd_add_mdns "pdl-datastream" "tcp" "$((port+9100))" "note=$mdns_note" "ty=$mdns_ty" "product=$mdns_product" "usb_MFG=$mdns_mfg" "usb_MDL=$mdns_mdl" "usb_CMD=$mdns_cmd" |
| |
| procd_close_instance |
| fi |
| } |
| |
| service_triggers() |
| { |
| procd_open_trigger |
| procd_add_config_trigger "config.change" "p910nd" /etc/init.d/p910nd reload |
| procd_close_trigger |
| } |