From 1d1265b40bbb15e8bb64d0424f2f1b9d2bfce8f2 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 4 Dec 2015 17:44:00 +0000 Subject: br2684ctl: convert init script to procd, add hotplug/reload support Signed-off-by: Felix Fietkau SVN-Revision: 47765 --- package/network/utils/linux-atm/files/br2684ctl | 65 ++++++++++++------------- 1 file changed, 31 insertions(+), 34 deletions(-) (limited to 'package/network/utils/linux-atm/files/br2684ctl') diff --git a/package/network/utils/linux-atm/files/br2684ctl b/package/network/utils/linux-atm/files/br2684ctl index 30b1a44e27..ad45a553d0 100755 --- a/package/network/utils/linux-atm/files/br2684ctl +++ b/package/network/utils/linux-atm/files/br2684ctl @@ -1,13 +1,9 @@ #!/bin/sh /etc/rc.common START=50 - -SERVICE_DAEMONIZE=1 -SERVICE_WRITE_PID=1 +USE_PROCD=1 start_daemon() { - . /lib/functions/network.sh - local cfg="$1" local atmdev @@ -44,46 +40,47 @@ start_daemon() { local sendsize config_get sendsize "$cfg" sendsize - local circuit="$atmdev.$vpi.$vci" + found= + for device in /sys/class/atm/*; do + [ -d "$device" ] || break + [ "$(cat $device/atmindex)" = "$atmdev" ] || continue + found=1 + break + done - network_defer_device "nas$unit" + [ -n "$found" ] || return - SERVICE_PID_FILE="/var/run/br2684ctl-$circuit.pid" \ - service_start /usr/sbin/br2684ctl \ + local circuit="$atmdev.$vpi.$vci" + + procd_open_instance + procd_set_param command \ + /usr/sbin/br2684ctl \ -c "$unit" -e "$encaps" -p "$payload" \ -a "$circuit" ${qos:+-q "$qos"} ${sendsize:+-s "$sendsize"} - sleep 1 - - network_ready_device "nas$unit" + procd_close_instance } -stop_daemon() { - local cfg="$1" - - local atmdev - config_get atmdev "$cfg" atmdev 0 - - local unit - config_get unit "$cfg" unit 0 +service_running() { + . /lib/functions/network.sh - local vpi - config_get vpi "$cfg" vpi 8 + sleep 1 + for path in /sys/class/net/nas*; do + dev="${path##*/}" + network_ready_device "$dev" + done +} - local vci - config_get vci "$cfg" vci 35 +service_triggers() { + local script=$(readlink "$initscript") + local name=$(basename ${script:-$initscript}) - local circuit="$atmdev.$vpi.$vci" - - SERVICE_PID_FILE="/var/run/br2684ctl-$circuit.pid" \ - service_stop /usr/sbin/br2684ctl + procd_open_trigger + procd_add_raw_trigger hotplug.atm 2000 /etc/init.d/$name reload + procd_add_config_trigger "config.change" "$file" /etc/init.d/$name reload + procd_close_trigger } -start() { +start_service() { config_load network config_foreach start_daemon atm-bridge } - -stop() { - config_load network - config_foreach stop_daemon atm-bridge -} -- cgit v1.2.3