From 5ddd07cb37811718e21f9ab2611d3dcdc554f4b9 Mon Sep 17 00:00:00 2001 From: Arend van Spriel Date: Wed, 15 Jan 2014 10:11:32 +0100 Subject: [PATCH] Reset normal_scans counter upon entering INTERFACE_DISABLED state Depending on the implementation, the scheduled scan may not give results quickly when in DISCONNECTED state. This patch resets wpa_s::normal_scans upon entering to the INTERFACE_DISABLED state so a normal scan is assured upon going to DISCONNECTED state after the interface has been re-enabled. This mainly solves a long reconnect time observed upon repeated kernel driver reloads, i.e., third reload resulted in a scheduled scan. Reviewed-by: Hante Meuleman Signed-hostap: Arend van Spriel --- wpa_supplicant/wpa_supplicant.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 78e274979..b7c16caaf 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -652,6 +652,11 @@ void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s, wpa_supplicant_state_txt(wpa_s->wpa_state), wpa_supplicant_state_txt(state)); + if (state == WPA_INTERFACE_DISABLED) { + /* Assure normal scan when interface is restored */ + wpa_s->normal_scans = 0; + } + if (state == WPA_COMPLETED) wpas_connect_work_done(wpa_s);