Remove get-first-scan-results-before-request optimization

This has already been disabled in most use cases and can result
in problems with some drivers, so better just remove it completely.
This commit is contained in:
Jouni Malinen 2010-07-06 20:31:10 -07:00 committed by Jouni Malinen
parent 4e22adb4d1
commit 24f7694062
3 changed files with 4 additions and 39 deletions

View file

@ -705,15 +705,7 @@ wpa_supplicant_pick_network(struct wpa_supplicant *wpa_s,
static void wpa_supplicant_req_new_scan(struct wpa_supplicant *wpa_s, static void wpa_supplicant_req_new_scan(struct wpa_supplicant *wpa_s,
int timeout_sec, int timeout_usec) int timeout_sec, int timeout_usec)
{ {
if (wpa_s->scan_res_tried == 1 && wpa_s->conf->ap_scan == 1) { if (!wpa_supplicant_enabled_networks(wpa_s->conf)) {
/*
* Quick recovery if the initial scan results were not
* complete when fetched before the first scan request.
*/
wpa_s->scan_res_tried++;
timeout_sec = 0;
timeout_usec = 0;
} else if (!wpa_supplicant_enabled_networks(wpa_s->conf)) {
/* /*
* No networks are enabled; short-circuit request so * No networks are enabled; short-circuit request so
* we don't wait timeout seconds before transitioning * we don't wait timeout seconds before transitioning
@ -923,19 +915,9 @@ static void wpa_supplicant_event_scan_results(struct wpa_supplicant *wpa_s,
return; return;
} }
/* wpa_printf(MSG_DEBUG, "New scan results available");
* Don't post the results if this was the initial cached wpa_msg_ctrl(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS);
* and there were no results. wpas_notify_scan_results(wpa_s);
*/
if (wpa_s->scan_res_tried == 1 && wpa_s->conf->ap_scan == 1 &&
scan_res->num == 0) {
wpa_msg(wpa_s, MSG_DEBUG, "Cached scan results are "
"empty - not posting");
} else {
wpa_printf(MSG_DEBUG, "New scan results available");
wpa_msg_ctrl(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS);
wpas_notify_scan_results(wpa_s);
}
wpas_notify_scan_done(wpa_s, 1); wpas_notify_scan_done(wpa_s, 1);

View file

@ -294,19 +294,6 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
wps = wpas_wps_in_use(wpa_s->conf, &req_type); wps = wpas_wps_in_use(wpa_s->conf, &req_type);
#endif /* CONFIG_WPS */ #endif /* CONFIG_WPS */
if (wpa_s->scan_res_tried == 0 && wpa_s->conf->ap_scan == 1 &&
!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_SME) &&
!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_USER_SPACE_MLME) &&
wps != 2 && !wpa_s->conf->filter_ssids &&
!wpa_s->connect_without_scan) {
wpa_s->scan_res_tried++;
wpa_printf(MSG_DEBUG, "Trying to get current scan results "
"first without requesting a new scan to speed up "
"initial association");
wpa_supplicant_event(wpa_s, EVENT_SCAN_RESULTS, NULL);
return;
}
scan_req = wpa_s->scan_req; scan_req = wpa_s->scan_req;
wpa_s->scan_req = 0; wpa_s->scan_req = 0;

View file

@ -382,10 +382,6 @@ struct wpa_supplicant {
int scan_req; /* manual scan request; this forces a scan even if there int scan_req; /* manual scan request; this forces a scan even if there
* are no enabled networks in the configuration */ * are no enabled networks in the configuration */
int scan_res_tried; /* whether ap_scan=1 mode has tried to fetch scan
* results without a new scan request; this is used
* to speed up the first association if the driver
* has already available scan results. */
int scan_runs; /* number of scan runs since WPS was started */ int scan_runs; /* number of scan runs since WPS was started */
struct wpa_client_mlme mlme; struct wpa_client_mlme mlme;