aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files/files
diff options
context:
space:
mode:
Diffstat (limited to 'package/base-files/files')
-rwxr-xr-xpackage/base-files/files/sbin/wifi19
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;;