From 1193dc8fd7a9d67d84492141457a7a5ffc541728 Mon Sep 17 00:00:00 2001 From: Eyal Shapira Date: Sun, 29 Jan 2012 17:44:31 +0200 Subject: [PATCH] SME: Fix processing of Authentication timeout and failure current_bss and pending_bssid weren't cleaned up so BSS kept appearing in the scan results even when it was actually gone. Use wpa_supplicant_mark_disassoc() to cleanup the wpa_s context instead of just dropping wpa_state back to DISCONNECTED. Reported-by: Vishal Mahaveer Signed-hostap: Eyal Shapira --- wpa_supplicant/sme.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wpa_supplicant/sme.c b/wpa_supplicant/sme.c index c5e47d180..fc283477b 100644 --- a/wpa_supplicant/sme.c +++ b/wpa_supplicant/sme.c @@ -265,8 +265,8 @@ void sme_authenticate(struct wpa_supplicant *wpa_s, if (wpa_drv_authenticate(wpa_s, ¶ms) < 0) { wpa_msg(wpa_s, MSG_INFO, "SME: Authentication request to the " "driver failed"); - wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED); wpas_connection_failed(wpa_s, bss->bssid); + wpa_supplicant_mark_disassoc(wpa_s); return; } @@ -503,8 +503,8 @@ void sme_event_auth_timed_out(struct wpa_supplicant *wpa_s, union wpa_event_data *data) { wpa_dbg(wpa_s, MSG_DEBUG, "SME: Authentication timed out"); - wpa_supplicant_set_state(wpa_s, WPA_DISCONNECTED); wpas_connection_failed(wpa_s, wpa_s->pending_bssid); + wpa_supplicant_mark_disassoc(wpa_s); }