diff options
-rw-r--r-- | wpa_supplicant/ap.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/wpa_supplicant/ap.c b/wpa_supplicant/ap.c index cfefa48d..807e36d0 100644 --- a/wpa_supplicant/ap.c +++ b/wpa_supplicant/ap.c @@ -807,12 +807,17 @@ static void wpas_ap_configured_cb(void *ctx) return; } + if (wpa_s->current_ssid) { + int acs = 0; #ifdef CONFIG_ACS - if (wpa_s->current_ssid && wpa_s->current_ssid->acs) { - wpa_s->assoc_freq = wpa_s->ap_iface->freq; - wpa_s->current_ssid->frequency = wpa_s->ap_iface->freq; + acs = wpa_s->current_ssid->acs; +#endif + if (acs || (wpa_s->assoc_freq && wpa_s->ap_iface->freq && + wpa_s->assoc_freq != wpa_s->ap_iface->freq)) { + wpa_s->assoc_freq = wpa_s->ap_iface->freq; + wpa_s->current_ssid->frequency = wpa_s->ap_iface->freq; + } } -#endif /* CONFIG_ACS */ wpa_supplicant_set_state(wpa_s, WPA_COMPLETED); |