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