From 701f3961e3781960ec2dff168a44e167e1dae292 Mon Sep 17 00:00:00 2001 From: Avraham Stern Date: Mon, 16 Mar 2015 01:20:01 -0400 Subject: [PATCH] Don't optimize scan frequencies if selected network has changed When disconnecting from a BSS, the next scan is optimized to scan only the channels used by the connected ESS. But when disconnecting because a new network was selected, this optimization is wrong because wpa_supplicant is now trying to connect to another ESS. Fix this by not optimizing the scan frequencies in case the selected network has changed. Signed-off-by: Avraham Stern --- wpa_supplicant/wpa_supplicant.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 19fb8900b..6e3b907d9 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -2625,6 +2625,13 @@ void wpa_supplicant_select_network(struct wpa_supplicant *wpa_s, eapol_sm_notify_config(wpa_s->eapol, NULL, NULL); wpa_s->connect_without_scan = (ssid->mode == WPAS_MODE_MESH) ? ssid : NULL; + + /* + * Don't optimize next scan freqs since a new ESS has been + * selected. + */ + os_free(wpa_s->next_scan_freqs); + wpa_s->next_scan_freqs = NULL; } else { wpa_s->connect_without_scan = NULL; }