#!/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

