summaryrefslogtreecommitdiffstats
path: root/package/comgt/files/3g.usb
blob: d5a38b8a4ccfdd38723bd89c3cb1c194f0414626 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/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 ] && {
		local auto
		config_get_bool auto "$cfg" auto 1
		[ "$auto" = 1 ] || return 0

		local dev
		config_get dev "$cfg" device

		if [ "${dev##*/}" = "${tty##*/}" ]; then
			log "Starting interface $cfg for device ${tty##*/}"
			( sleep 1; /sbin/ifup "$cfg" ) &
		fi
	}
}


if [ "$ACTION" = add ]; then
	case "$DEVICENAME" in
		*-*:*.*) config_load network;;
		*) exit 0;;
	esac

	local tty
	for tty in /sys/$DEVPATH/ttyUSB* /sys/$DEVPATH/tty/ttyACM* /sys/$DEVPATH/tty/ttyHS*; do
		[ -d "$tty" ] || continue
		config_foreach find_3g_iface interface "$tty"
	done
fi