mac80211: set noscan=1 if sta/adhoc/mesh interfaces are present

Fixes channel selection issues and suppresses an unnecessary extra scan

Signed-off-by: Felix Fietkau <nbd@nbd.name>
openwrt-19.07
Felix Fietkau 2019-03-30 10:09:32 +01:00
parent 1dd536f1fa
commit b3d8b3ab8e
1 changed files with 10 additions and 1 deletions

View File

@ -99,6 +99,8 @@ mac80211_hostapd_setup_base() {
json_get_vars noscan ht_coex json_get_vars noscan ht_coex
json_get_values ht_capab_list ht_capab json_get_values ht_capab_list ht_capab
[ -n "$noscan" -a "$noscan" -gt 0 ] && hostapd_noscan=1
ieee80211n=1 ieee80211n=1
ht_capab= ht_capab=
case "$htmode" in case "$htmode" in
@ -307,7 +309,7 @@ mac80211_hostapd_setup_base() {
cat >> "$hostapd_conf_file" <<EOF cat >> "$hostapd_conf_file" <<EOF
${channel:+channel=$channel} ${channel:+channel=$channel}
${channel_list:+chanlist=$channel_list} ${channel_list:+chanlist=$channel_list}
${noscan:+noscan=$noscan} ${hostapd_noscan:+noscan=1}
$base_cfg $base_cfg
EOF EOF
@ -735,6 +737,10 @@ mac80211_interface_cleanup() {
done done
} }
mac80211_set_noscan() {
hostapd_noscan=1
}
drv_mac80211_cleanup() { drv_mac80211_cleanup() {
hostapd_common_cleanup hostapd_common_cleanup
} }
@ -798,9 +804,12 @@ drv_mac80211_setup() {
has_ap= has_ap=
hostapd_ctrl= hostapd_ctrl=
hostapd_noscan=
for_each_interface "ap" mac80211_check_ap for_each_interface "ap" mac80211_check_ap
rm -f "$hostapd_conf_file" rm -f "$hostapd_conf_file"
for_each_interface "sta adhoc mesh" mac80211_set_noscan
[ -n "$has_ap" ] && mac80211_hostapd_setup_base "$phy" [ -n "$has_ap" ] && mac80211_hostapd_setup_base "$phy"
for_each_interface "sta adhoc mesh monitor" mac80211_prepare_vif for_each_interface "sta adhoc mesh monitor" mac80211_prepare_vif