comgt: add tty hotplug remove handling, only iterate each tty once (#9211)

SVN-Revision: 26816
This commit is contained in:
Jo-Philipp Wich 2011-05-04 08:19:07 +00:00
parent bba138c671
commit 9736cfef66
2 changed files with 20 additions and 21 deletions

View file

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=comgt
PKG_VERSION:=0.32
PKG_RELEASE:=8
PKG_RELEASE:=9
PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
PKG_SOURCE_URL:=@SF/comgt

View file

@ -12,32 +12,31 @@ find_3g_iface() {
local proto
config_get proto "$cfg" proto
[ "$proto" = 3g ] || return 0
[ "$proto" = 3g ] && {
local auto
config_get_bool auto "$cfg" auto 1
[ "$auto" = 1 ] || return 0
[ "$auto" = 1 ] || [ "$ACTION" = remove ] || return 0
local dev
config_get dev "$cfg" device
if [ "${dev##*/}" = "${tty##*/}" ] && [ -z "$(ls /var/lock | grep ${dev##*/})" ]; then
if [ "${dev##*/}" = "${tty##*/}" ]; then
if [ "$ACTION" = add ]; then
log "Starting interface $cfg for device ${dev##*/}"
( sleep 1; /sbin/ifup "$cfg" ) &
else
log "Stopping interface $cfg for device ${dev##*/}"
/sbin/ifdown "$cfg" &
fi
fi
}
}
case "$DEVICENAME" in
tty*)
[ -e "/dev/$DEVICENAME" ] || [ "$ACTION" = remove ] || exit 0
config_load network
config_foreach find_3g_iface interface "/dev/$DEVICENAME"
;;
esac
if [ "$ACTION" = add ]; then
case "$DEVICENAME" in
tty*) config_load network;;
*) exit 0;;
esac
local tty
for tty in /dev/ttyUSB* /dev/ttyACM* /dev/ttyHS*; do
[ -e "$tty" ] || continue
config_foreach find_3g_iface interface "$tty"
done
fi