#!/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##*/}" ] && [ -z "$(ls /var/lock | grep ${dev##*/})" ]; then log "Starting interface $cfg for device ${dev##*/}" ( sleep 1; /sbin/ifup "$cfg" ) & fi } } 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