| 1 | button_action() {( |
| 2 | # use led for keeping track of the state |
| 3 | case "$(cat /proc/diag/led/3g_green)" in |
| 4 | 1) |
| 5 | ifdown "$1" |
| 6 | ifup wan |
| 7 | ;; |
| 8 | 0) |
| 9 | ifdown wan |
| 10 | ifup "$1" |
| 11 | ;; |
| 12 | esac |
| 13 | )} |
| 14 | |
| 15 | [ "$ACTION" = "released" -a "$BUTTON" = "3g" ] && { |
| 16 | HOTPLUG="$(cat /proc/sys/kernel/hotplug)" |
| 17 | (echo /bin/true > /proc/sys/kernel/hotplug) |
| 18 | |
| 19 | include /lib/network |
| 20 | scan_interfaces |
| 21 | config_cb() { |
| 22 | config_get TYPE "$CONFIG_SECTION" TYPE |
| 23 | case "$TYPE" in |
| 24 | interface) |
| 25 | config_get proto "$CONFIG_SECTION" proto |
| 26 | config_get button "$CONFIG_SECTION" button |
| 27 | case "$button" in |
| 28 | 1|on|enabled) [ "$proto" = "3g" ] && button_action "$CONFIG_SECTION";; |
| 29 | esac |
| 30 | ;; |
| 31 | esac |
| 32 | } |
| 33 | config_load network |
| 34 | |
| 35 | (echo $HOTPLUG > /proc/sys/kernel/hotplug) |
| 36 | } & |
| 37 | |