|
@@ -518,7 +518,11 @@ mac80211_prepare_vif() {
|
|
|
|
|
|
mac80211_setup_supplicant() {
|
|
|
wpa_supplicant_prepare_interface "$ifname" nl80211 || return 1
|
|
|
- wpa_supplicant_add_network "$ifname"
|
|
|
+ if [ "$mode" = "sta" ]; then
|
|
|
+ wpa_supplicant_add_network "$ifname"
|
|
|
+ else
|
|
|
+ wpa_supplicant_add_network "$ifname" "$freq" "$htmode" "$noscan"
|
|
|
+ fi
|
|
|
wpa_supplicant_run "$ifname" ${hostapd_ctrl:+-H $hostapd_ctrl}
|
|
|
}
|
|
|
|
|
@@ -630,10 +634,10 @@ mac80211_setup_vif() {
|
|
|
case "$mode" in
|
|
|
mesh)
|
|
|
json_get_vars key
|
|
|
- if [ -n "$key" ]; then
|
|
|
+ if [ "$wpa" -gt 0 -o "$auto_channel" -gt 0 ] || chan_is_dfs "$phy" "$channel"; then
|
|
|
wireless_vif_parse_encryption
|
|
|
freq="$(get_freq "$phy" "$channel")"
|
|
|
- mac80211_setup_supplicant_noctl || failed=1
|
|
|
+ mac80211_setup_supplicant || failed=1
|
|
|
else
|
|
|
json_get_vars mesh_id mcast_rate
|
|
|
|
|
@@ -710,6 +714,13 @@ get_freq() {
|
|
|
iw "$phy" info | grep -E -m1 "(\* ${chan:-....} MHz${chan:+|\\[$chan\\]})" | grep MHz | awk '{print $2}'
|
|
|
}
|
|
|
|
|
|
+chan_is_dfs() {
|
|
|
+ local phy="$1"
|
|
|
+ local chan="$2"
|
|
|
+ iw "$phy" info | grep -E -m1 "(\* ${chan:-....} MHz${chan:+|\\[$chan\\]})" | grep -q "MHz.*radar detection"
|
|
|
+ return $!
|
|
|
+}
|
|
|
+
|
|
|
mac80211_interface_cleanup() {
|
|
|
local phy="$1"
|
|
|
|