diff options
author | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2014-03-30 09:16:27 +0000 |
---|---|---|
committer | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2014-03-30 09:16:27 +0000 |
commit | 59cf39eb3d3cae94c61165b38f200640ec7a6c38 (patch) | |
tree | e69cf1de112dd4a151cf7d26ece4195109389d31 /package/network/config | |
parent | f1b064b6cd140631950891554ccd5a303486d20a (diff) |
ltq-vdsl: add led status reporting
Signed-off-by: John Crispin <blogic@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40322 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/network/config')
-rw-r--r-- | package/network/config/ltq-vdsl-app/files/dsl_notify.sh | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/package/network/config/ltq-vdsl-app/files/dsl_notify.sh b/package/network/config/ltq-vdsl-app/files/dsl_notify.sh index 5e9f3964e8..0f1f535f2d 100644 --- a/package/network/config/ltq-vdsl-app/files/dsl_notify.sh +++ b/package/network/config/ltq-vdsl-app/files/dsl_notify.sh @@ -9,36 +9,55 @@ [ "$DSL_NOTIFICATION_TYPE" = "DSL_INTERFACE_STATUS" ] || exit 0 +. /usr/share/libubox/jshn.sh . /lib/functions.sh +. /lib/functions/leds.sh include /lib/network scan_interfaces -local found=0 +logger "Found no matching interface for DSL notification ($DSL_INTERFACE_STATUS)" + +local default +config_load system +config_get default led_adsl default +if [ "$default" != 1 ]; then + case "$DSL_INTERFACE_STATUS" in + "HANDSHAKE") led_timer adsl 500 500;; + "TRAINING") led_timer adsl 200 200;; + "UP") led_on adsl;; + *) led_off adsl + esac +fi + +local interfaces=`ubus list network.interface.\* | cut -d"." -f3` local ifc for ifc in $interfaces; do + local up - config_get_bool up "$ifc" up 0 + json_load "$(ifstatus $ifc)" + json_get_var up up local auto config_get_bool auto "$ifc" auto 1 local proto - config_get proto "$ifc" proto + json_get_var proto proto if [ "$DSL_INTERFACE_STATUS" = "UP" ]; then if [ "$proto" = "pppoa" ] && [ "$up" != 1 ] && [ "$auto" = 1 ]; then - found=1 ( sleep 1; ifup "$ifc" ) & fi else if [ "$proto" = "pppoa" ] && [ "$up" = 1 ] && [ "$auto" = 1 ]; then - found=1 ( sleep 1; ifdown "$ifc" ) & + else + json_get_var autostart autostart + if [ "$proto" = "pppoa" ] && [ "$up" != 1 ] && [ "$autostart" = 1 ]; then + ( sleep 1; ifdown "$ifc" ) & + fi fi fi done -if [ "$found" != 1 ]; then - logger "Found no matching interface for DSL notification ($DSL_INTERFACE_STATUS)" -fi + |