aboutsummaryrefslogtreecommitdiff
path: root/package/network/utils/comgt/files/3g.usb
blob: 9c7d07a0e64984f6840326a2e84ed831213ca439 (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
#!/bin/sh
. /lib/functions.sh
. /lib/netifd/netifd-proto.sh

find_3g_iface() {
	local cfg="$1"
	local tty="$2"

	local proto
	config_get proto "$cfg" proto
	[ "$proto" = 3g ] || [ "$proto" = ncm ] || return 0

	# bypass state vars here because 00-netstate could clobber .device
	local dev=$(uci_get network "$cfg" device)

	if [ "${dev##*/}" = "${tty##*/}" ]; then
		if [ "$ACTION" = add ]; then
			proto_set_available "$cfg" 1
		fi
		if [ "$ACTION" = remove ]; then
			proto_set_available "$cfg" 0
		fi
	fi
}

[ "$ACTION" = add ] || [ "$ACTION" = remove ] || exit 0

case "$DEVICENAME" in
	tty*)
		[ -e "/dev/$DEVICENAME" ] || [ "$ACTION" = remove ] || exit 0
		config_load network
		config_foreach find_3g_iface interface "/dev/$DEVICENAME"
	;;
esac