3g.usb 728 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/sh
  2. . /etc/functions.sh
  3. log() {
  4. logger -t 3g-hotplug "$@"
  5. }
  6. find_3g_iface() {
  7. local cfg="$1"
  8. local tty="$2"
  9. local proto
  10. config_get proto "$cfg" proto
  11. [ "$proto" = 3g ] && {
  12. local auto
  13. config_get_bool auto "$cfg" auto 1
  14. [ "$auto" = 1 ] || return 0
  15. local dev
  16. config_get dev "$cfg" device
  17. if [ "${dev##*/}" = "${tty##*/}" ]; then
  18. log "Starting interface $cfg for device ${tty##*/}"
  19. ( sleep 1; /sbin/ifup "$cfg" ) &
  20. fi
  21. }
  22. }
  23. if [ "$ACTION" = add ]; then
  24. case "$DEVICENAME" in
  25. *-*:*.*) config_load network;;
  26. *) exit 0;;
  27. esac
  28. local tty
  29. for tty in /sys/$DEVPATH/ttyUSB* /sys/$DEVPATH/tty/ttyACM*;; do
  30. [ -d "$tty" ] || continue
  31. config_foreach find_3g_iface interface "$tty"
  32. done
  33. fi