--- /dev/null
+button_action() {(
+ # use led for keeping track of the state
+ case "$(cat /proc/diag/led/3g_green)" in
+ 1)
+ ifdown "$1"
+ ifup wan
+ ;;
+ 0)
+ ifdown wan
+ ifup "$1"
+ ;;
+ esac
+)}
+
+[ "$ACTION" = "released" -a "$BUTTON" = "3g" ] && {
+ HOTPLUG="$(cat /proc/sys/kernel/hotplug)"
+ (echo /bin/true > /proc/sys/kernel/hotplug)
+
+ include /lib/network
+ scan_interfaces
+ config_cb() {
+ config_get TYPE "$CONFIG_SECTION" TYPE
+ case "$TYPE" in
+ interface)
+ config_get proto "$CONFIG_SECTION" proto
+ config_get button "$CONFIG_SECTION" button
+ case "$button" in
+ 1|on|enabled) [ "$proto" = "3g" ] && button_action "$CONFIG_SECTION";;
+ esac
+ ;;
+ esac
+ }
+ config_load network
+
+ (echo $HOTPLUG > /proc/sys/kernel/hotplug)
+} &