aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/utils/linux-atm/files/br2684ctl
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/utils/linux-atm/files/br2684ctl')
-rwxr-xr-xpackage/network/utils/linux-atm/files/br2684ctl65
1 files changed, 31 insertions, 34 deletions
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
-}