summaryrefslogtreecommitdiffstats
path: root/package/comgt/files/3g.button
diff options
context:
space:
mode:
Diffstat (limited to 'package/comgt/files/3g.button')
-rw-r--r--package/comgt/files/3g.button35
1 files changed, 35 insertions, 0 deletions
diff --git a/package/comgt/files/3g.button b/package/comgt/files/3g.button
new file mode 100644
index 000000000..54997d870
--- /dev/null
+++ b/package/comgt/files/3g.button
@@ -0,0 +1,35 @@
+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" ] && {
+ (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 /sbin/hotplug > /proc/sys/kernel/hotplug)
+} &