scan: Reset normal scan counter when a connection succeeds

The normal scan counter is used to trigger a few normal scans before a
scheduled scan is issued. The reason for doing this is that we get
results faster and some drivers support more SSIDs per normal scan
than during sched scan. After 2 normal scans, we start using
sched_scan. But the problem is that when a connection succeeds, we do
not reset this counter, so we will keep using sched scans.

To fix this, now we reset the counter when we switch to WPA_COMPLETED
state.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
This commit is contained in:
Luciano Coelho 2014-04-24 08:45:36 +03:00 committed by Jouni Malinen
parent dcdce14741
commit 0cf24fdaed

View file

@ -673,8 +673,11 @@ void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s,
wpa_s->normal_scans = 0;
}
if (state == WPA_COMPLETED)
if (state == WPA_COMPLETED) {
wpas_connect_work_done(wpa_s);
/* Reinitialize normal_scan counter */
wpa_s->normal_scans = 0;
}
if (state != WPA_SCANNING)
wpa_supplicant_notify_scanning(wpa_s, 0);