Don't optimize scan frequencies if selected network has changed
authorAvraham Stern <avraham.stern@intel.com>
Mon, 16 Mar 2015 05:20:01 +0000 (01:20 -0400)
committerJouni Malinen <j@w1.fi>
Sun, 22 Mar 2015 18:36:01 +0000 (20:36 +0200)
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@intel.com>
wpa_supplicant/wpa_supplicant.c

index 19fb890..6e3b907 100644 (file)
@@ -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;
        }