diff options
author | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-10-20 20:10:17 +0000 |
---|---|---|
committer | jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-10-20 20:10:17 +0000 |
commit | a730c7e73e1820149b65c540e03262aa709eeef8 (patch) | |
tree | 6cdf87a4726ae19dc68e0c0afd578704d2a5f399 /package/br2684ctl | |
parent | 314e5796a540f05f1903d1d163f22c6a2104faf0 (diff) |
[package] br2684ctl: rework init script
- use common defaults for unit and atmdev
- add a more reliable stop routine
- localize variables
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23552 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/br2684ctl')
-rw-r--r-- | package/br2684ctl/Makefile | 2 | ||||
-rwxr-xr-x | package/br2684ctl/files/br2684ctl | 61 |
2 files changed, 44 insertions, 19 deletions
diff --git a/package/br2684ctl/Makefile b/package/br2684ctl/Makefile index 4af040b4e1..f8bf4aea29 100644 --- a/package/br2684ctl/Makefile +++ b/package/br2684ctl/Makefile @@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=br2684ctl PKG_VERSION:=20040226 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/b/br2684ctl diff --git a/package/br2684ctl/files/br2684ctl b/package/br2684ctl/files/br2684ctl index cff667014a..929e2b887e 100755 --- a/package/br2684ctl/files/br2684ctl +++ b/package/br2684ctl/files/br2684ctl @@ -1,31 +1,46 @@ #!/bin/sh /etc/rc.common START=50 -stop() { - killall br2684ctl 2>/dev/null >/dev/null - sleep 1 - rmmod br2684 -} - start_daemon() { local cfg="$1" - config_get atmdev "$cfg" atmdev - config_get unit "$cfg" unit - config_get vpi "$cfg" vpi - config_get vci "$cfg" vci + + local atmdev + config_get atmdev "$cfg" atmdev 0 + + local unit + config_get unit "$cfg" unit 0 + + local vpi + config_get vpi "$cfg" vpi 8 + + local vci + config_get vci "$cfg" vci 35 + + local encaps config_get encaps "$cfg" encaps - config_get payload "$cfg" payload - config_get qos "$cfg" qos + case "$encaps" in 1|vc) encaps=1;; *) encaps=0;; esac - case "$payload" in - 0|routed) payload=0;; - *) payload=1;; - esac - [ "$qos" ] && qos="-q $qos" - br2684ctl -b -c "$unit" -e "$encaps" -p "$payload" $qos -a "${atmdev:+$atmdev.}${vpi:-8}.${vci:-35}" + + local payload + config_get payload "$cfg" payload + + case "$payload" in + 0|routed) payload=0;; + *) payload=1;; + esac + + local qos + config_get qos "$cfg" qos + + local circuit="$atmdev.$vpi.$vci" + local pid="/var/run/br2684ctl-$circuit.pid" + + start-stop-daemon -S -b -x /usr/sbin/br2684ctl -m -p "$pid" -- \ + -c "$unit" -e "$encaps" -p "$payload" \ + -a "$circuit" ${qos:+-q "$qos"} } start() { @@ -33,3 +48,13 @@ start() { config_load network config_foreach start_daemon atm-bridge } + +stop() { + local pid + for pid in /var/run/br2684ctl-*.pid; do + if [ -f "$pid" ]; then + service_kill br2684ctl "$pid" + rm -f "$pid" + fi + done +} |