br2684ctl: rework init script - use common defaults for unit and atmdev - add a more reliable stop routine - localize variables

SVN-Revision: 23552
lede-17.01
Jo-Philipp Wich 2010-10-20 20:10:17 +00:00
parent a50421a302
commit db6aaa7bcf
2 changed files with 44 additions and 19 deletions

View File

@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=br2684ctl PKG_NAME:=br2684ctl
PKG_VERSION:=20040226 PKG_VERSION:=20040226
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/b/br2684ctl PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/b/br2684ctl

View File

@ -1,31 +1,46 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
START=50 START=50
stop() {
killall br2684ctl 2>/dev/null >/dev/null
sleep 1
rmmod br2684
}
start_daemon() { start_daemon() {
local cfg="$1" local cfg="$1"
config_get atmdev "$cfg" atmdev
config_get unit "$cfg" unit local atmdev
config_get vpi "$cfg" vpi config_get atmdev "$cfg" atmdev 0
config_get vci "$cfg" vci
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 encaps "$cfg" encaps
config_get payload "$cfg" payload
config_get qos "$cfg" qos
case "$encaps" in case "$encaps" in
1|vc) encaps=1;; 1|vc) encaps=1;;
*) encaps=0;; *) encaps=0;;
esac esac
local payload
config_get payload "$cfg" payload
case "$payload" in case "$payload" in
0|routed) payload=0;; 0|routed) payload=0;;
*) payload=1;; *) payload=1;;
esac esac
[ "$qos" ] && qos="-q $qos"
br2684ctl -b -c "$unit" -e "$encaps" -p "$payload" $qos -a "${atmdev:+$atmdev.}${vpi:-8}.${vci:-35}" 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() { start() {
@ -33,3 +48,13 @@ start() {
config_load network config_load network
config_foreach start_daemon atm-bridge 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
}