X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/e6477dde693f8ea0fc7b616bae18598d182b2de4..fadaa82e81840ea33cc8c228f743636fbee1b345:/package/base-files/files/sbin/wifi diff --git a/package/base-files/files/sbin/wifi b/package/base-files/files/sbin/wifi index 2ca5d22cb..8b65e4567 100755 --- a/package/base-files/files/sbin/wifi +++ b/package/base-files/files/sbin/wifi @@ -36,12 +36,13 @@ bridge_interface() {( wifi_updown() { + [ enable = "$1" ] && wifi_updown disable "$2" for device in ${2:-$DEVICES}; do ( - config_get disabled "$device" disabled - [ 1 == "$disabled" ] && { - echo "'$device' is disabled" - set disable - } + config_get disabled "$device" disabled + [ 1 == "$disabled" ] && { + echo "'$device' is disabled" + set disable + } config_get iftype "$device" type if eval "type ${1}_$iftype" 2>/dev/null >/dev/null; then eval "scan_$iftype '$device'" @@ -71,6 +72,27 @@ start_net() {( setup_interface "$1" "$2" )} +set_wifi_up() { + local cfg="$1" + local ifname="$2" + uci set "/var/state/wireless.${cfg}.up=1" + uci set "/var/state/wireless.${cfg}.ifname=$ifname" +} + +set_wifi_down() { + local cfg="$1" + local vifs vif vifstr + [ -f /var/state/wireless ] || return + + config_get vifs "$cfg" vifs + for vif in $vifs; do + append vifstr "$vif" "|" + done + FILE="/var/state/wireless.$$" + grep -vE "^config_set '($vifstr)' " /var/state/wireless > "$FILE" + mv "$FILE" /var/state/wireless +} + scan_wifi() { local cfgfile="$1" config_cb() {