diff options
Diffstat (limited to 'package/base-files/files')
-rwxr-xr-x | package/base-files/files/sbin/wifi | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/package/base-files/files/sbin/wifi b/package/base-files/files/sbin/wifi index 29585389df..a3d3206ee7 100755 --- a/package/base-files/files/sbin/wifi +++ b/package/base-files/files/sbin/wifi @@ -6,7 +6,7 @@ usage() { cat <<EOF -Usage: $0 [config|up|down|reconf|reload|status] +Usage: $0 [config|up|down|reconf|reload|status|isup] enables (default), disables or configures devices not yet configured. EOF exit 1 @@ -21,6 +21,22 @@ ubus_wifi_cmd() { ubus call network.wireless "$cmd" "$(json_dump)" } +wifi_isup() { + local dev="$1" + + json_load "$(ubus_wifi_cmd "status" "$dev")" + json_get_keys devices + + for device in $devices; do + json_select "$device" + json_get_var up up + [ $up -eq 0 ] && return 1 + json_select .. + done + + return 0 +} + find_net_config() {( local vif="$1" local cfg @@ -245,6 +261,7 @@ case "$1" in detect) wifi_detect_notice ;; config) wifi_config ;; status) ubus_wifi_cmd "status" "$2";; + isup) wifi_isup "$2"; exit $?;; reload) wifi_reload "$2";; reload_legacy) wifi_reload_legacy "$2";; --help|help) usage;; |