43 lines
791 B
Plaintext
43 lines
791 B
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
. /etc/functions.sh
|
||
|
|
||
|
log() {
|
||
|
logger -t 3g-hotplug "$@"
|
||
|
}
|
||
|
|
||
|
find_3g_iface() {
|
||
|
local cfg="$1"
|
||
|
local tty="$2"
|
||
|
|
||
|
local proto
|
||
|
config_get proto "$cfg" proto
|
||
|
[ "$proto" = 3g ] || return 0
|
||
|
|
||
|
local auto
|
||
|
config_get_bool auto "$cfg" auto 1
|
||
|
[ "$auto" = 1 ] || [ "$ACTION" = remove ] || return 0
|
||
|
|
||
|
local dev
|
||
|
config_get dev "$cfg" device
|
||
|
|
||
|
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
|
||
|
|