aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2007-07-22 18:32:47 +0000
committerFelix Fietkau <nbd@openwrt.org>2007-07-22 18:32:47 +0000
commit2fd3ce45f4da285abee61b20cdd3ffac1f118a5c (patch)
treef2c5cc4479ef61dd96cf9ba238ab5e1df63cdcee /package
parentf6aff55a07c7a6fb6c6bf38089c2865123015dec (diff)
downloadmaster-187ad058-2fd3ce45f4da285abee61b20cdd3ffac1f118a5c.tar.gz
master-187ad058-2fd3ce45f4da285abee61b20cdd3ffac1f118a5c.tar.bz2
master-187ad058-2fd3ce45f4da285abee61b20cdd3ffac1f118a5c.zip
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-xpackage/base-files/files/sbin/wifi19
-rw-r--r--package/broadcom-wl/files/lib/wifi/broadcom.sh2
-rwxr-xr-xpackage/madwifi/files/lib/wifi/madwifi.sh2
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