]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Clear previous BSSID on explicit disconnection request
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 23 Mar 2012 23:12:07 +0000 (16:12 -0700)
committerJouni Malinen <j@w1.fi>
Fri, 30 Mar 2012 08:13:00 +0000 (11:13 +0300)
There is no need to use reassociation instead of association in a case
the previous connection was explicitly disconnected.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

wpa_supplicant/ctrl_iface.c

index 20ce8c1dfae3834c3d18d224b8b4626882aee6a0..270bf8c9ea4727e32b8adefb80e73796817af2da 100644 (file)
@@ -1757,6 +1757,9 @@ static int wpa_supplicant_ctrl_iface_remove_network(
                }
                eapol_sm_invalidate_cached_session(wpa_s->eapol);
                if (wpa_s->current_ssid) {
+#ifdef CONFIG_SME
+                       wpa_s->sme.prev_bssid_set = 0;
+#endif /* CONFIG_SME */
                        wpa_sm_set_config(wpa_s->wpa, NULL);
                        eapol_sm_notify_config(wpa_s->eapol, NULL, NULL);
                        wpa_supplicant_disassociate(wpa_s,
@@ -1779,6 +1782,9 @@ static int wpa_supplicant_ctrl_iface_remove_network(
        }
 
        if (ssid == wpa_s->current_ssid || wpa_s->current_ssid == NULL) {
+#ifdef CONFIG_SME
+               wpa_s->sme.prev_bssid_set = 0;
+#endif /* CONFIG_SME */
                /*
                 * Invalidate the EAP session cache if the current or
                 * previously used network is removed.
@@ -3938,6 +3944,9 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
                reply_len = wpa_supplicant_ctrl_iface_list_networks(
                        wpa_s, reply, reply_size);
        } else if (os_strcmp(buf, "DISCONNECT") == 0) {
+#ifdef CONFIG_SME
+               wpa_s->sme.prev_bssid_set = 0;
+#endif /* CONFIG_SME */
                wpa_s->reassociate = 0;
                wpa_s->disconnected = 1;
                wpa_supplicant_cancel_sched_scan(wpa_s);