diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-07-22 18:32:47 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2007-07-22 18:32:47 +0000 |
commit | 61060584fe3f8cb8f1301fd09806d62170088a8f (patch) | |
tree | f2c5cc4479ef61dd96cf9ba238ab5e1df63cdcee /package | |
parent | bf318f4532ed6eadac03c8554d6ce38fbcc3ee60 (diff) |
keep track of the wifi interface state in /var/state/wireless
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8108 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rwxr-xr-x | package/base-files/files/sbin/wifi | 19 | ||||
-rw-r--r-- | package/broadcom-wl/files/lib/wifi/broadcom.sh | 2 | ||||
-rwxr-xr-x | package/madwifi/files/lib/wifi/madwifi.sh | 2 |
3 files changed, 23 insertions, 0 deletions
diff --git a/package/base-files/files/sbin/wifi b/package/base-files/files/sbin/wifi index d653620ca2..0d26468ba2 100755 --- a/package/base-files/files/sbin/wifi +++ b/package/base-files/files/sbin/wifi @@ -72,6 +72,25 @@ 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 + 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() { diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh index 3a8bebd176..61672472de 100644 --- a/package/broadcom-wl/files/lib/wifi/broadcom.sh +++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh @@ -71,6 +71,7 @@ scan_broadcom() { } disable_broadcom() { + set_wifi_down "$1" wlc down ( include /lib/network @@ -197,6 +198,7 @@ enable_broadcom() { [ -z "$net_cfg" ] || { bridge="$(bridge_interface "$net_cfg")" append if_up "start_net '$ifname' '$net_cfg'" ";$N" + append if_up "set_wifi_up '$vif' '$ifname'" ";$N" } [ -z "$nasopts" ] || { eval "${vif}_ssid=\"\$ssid\"" diff --git a/package/madwifi/files/lib/wifi/madwifi.sh b/package/madwifi/files/lib/wifi/madwifi.sh index 222e2a9ddd..07a6cd78bf 100755 --- a/package/madwifi/files/lib/wifi/madwifi.sh +++ b/package/madwifi/files/lib/wifi/madwifi.sh @@ -50,6 +50,7 @@ scan_atheros() { disable_atheros() ( local device="$1" + set_wifi_down "$device" # kill all running hostapd and wpa_supplicant processes that # are running on atheros vifs for pid in `pidof hostapd wpa_supplicant`; do @@ -204,6 +205,7 @@ enable_atheros() { start_net "$ifname" "$net_cfg" } iwconfig "$ifname" essid "$ssid" + set_wifi_up "$vif" "$ifname" case "$mode" in ap) config_get_bool isolate "$vif" isolate 0 |