keep track of the wifi interface state in /var/state/wireless

SVN-Revision: 8108
This commit is contained in:
Felix Fietkau 2007-07-22 18:32:47 +00:00
parent f2a32fff7d
commit b13426e21b
3 changed files with 23 additions and 0 deletions

View File

@ -72,6 +72,25 @@ start_net() {(
setup_interface "$1" "$2" 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() { scan_wifi() {
local cfgfile="$1" local cfgfile="$1"
config_cb() { config_cb() {

View File

@ -71,6 +71,7 @@ scan_broadcom() {
} }
disable_broadcom() { disable_broadcom() {
set_wifi_down "$1"
wlc down wlc down
( (
include /lib/network include /lib/network
@ -197,6 +198,7 @@ enable_broadcom() {
[ -z "$net_cfg" ] || { [ -z "$net_cfg" ] || {
bridge="$(bridge_interface "$net_cfg")" bridge="$(bridge_interface "$net_cfg")"
append if_up "start_net '$ifname' '$net_cfg'" ";$N" append if_up "start_net '$ifname' '$net_cfg'" ";$N"
append if_up "set_wifi_up '$vif' '$ifname'" ";$N"
} }
[ -z "$nasopts" ] || { [ -z "$nasopts" ] || {
eval "${vif}_ssid=\"\$ssid\"" eval "${vif}_ssid=\"\$ssid\""

View File

@ -50,6 +50,7 @@ scan_atheros() {
disable_atheros() ( disable_atheros() (
local device="$1" local device="$1"
set_wifi_down "$device"
# kill all running hostapd and wpa_supplicant processes that # kill all running hostapd and wpa_supplicant processes that
# are running on atheros vifs # are running on atheros vifs
for pid in `pidof hostapd wpa_supplicant`; do for pid in `pidof hostapd wpa_supplicant`; do
@ -204,6 +205,7 @@ enable_atheros() {
start_net "$ifname" "$net_cfg" start_net "$ifname" "$net_cfg"
} }
iwconfig "$ifname" essid "$ssid" iwconfig "$ifname" essid "$ssid"
set_wifi_up "$vif" "$ifname"
case "$mode" in case "$mode" in
ap) ap)
config_get_bool isolate "$vif" isolate 0 config_get_bool isolate "$vif" isolate 0