diff options
author | John Crispin <john@openwrt.org> | 2014-03-30 09:16:27 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2014-03-30 09:16:27 +0000 |
commit | 1335853ae5427f129650783e7469bd9449ecccbf (patch) | |
tree | 9daf9034d1a88368e770d1b6aa54ed93dd25d3e2 /package/network/config | |
parent | 112059073e46bd158541e4a30b13d738342181d2 (diff) | |
download | upstream-1335853ae5427f129650783e7469bd9449ecccbf.tar.gz upstream-1335853ae5427f129650783e7469bd9449ecccbf.tar.bz2 upstream-1335853ae5427f129650783e7469bd9449ecccbf.zip |
ltq-vdsl: add led status reporting
Signed-off-by: John Crispin <blogic@openwrt.org>
SVN-Revision: 40322
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 + |