[PATCH 1/3] wpa_supplicant: Don't optimize scan frequencies if selected network has changed

Ilan Peer ilan.peer
Sun Mar 15 22:20:01 PDT 2015


From: Avraham Stern <avraham.stern at intel.com>

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 <avraham.stern at intel.com>
---
 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 19fb890..6e3b907 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;
 	}
-- 
1.8.3.2




More information about the Hostap mailing list