keep track of the wifi interface state in /var/state/wireless
SVN-Revision: 8108
This commit is contained in:
parent
f2a32fff7d
commit
b13426e21b
@ -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() {
|
||||||
|
@ -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\""
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user