This patch decreases the timeouts for assoc/auth to more realistic values. Improves roaming speed
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
-@@ -846,7 +846,7 @@ static void wpa_supplicant_event_assoc(s
+@@ -849,7 +849,7 @@ static void wpa_supplicant_event_assoc(s
wpa_supplicant_set_state(wpa_s, WPA_COMPLETED);
} else if (!ft_completed) {
/* Timeout for receiving the first EAPOL packet */
wpa_printf(MSG_WARNING, "Failed to initiate AP scan.");
- wpa_supplicant_req_scan(wpa_s, 10, 0);
+ wpa_supplicant_req_scan(wpa_s, 3, 0);
- }
+ } else
+ wpa_s->scan_runs++;
}
-
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -1160,10 +1160,10 @@ void wpa_supplicant_associate(struct wpa
{ INT(fast_reauth) },
#ifdef EAP_TLS_OPENSSL
{ STR(opensc_engine_path) },
-@@ -834,6 +842,8 @@ static void wpa_config_write_global(FILE
+@@ -835,6 +843,8 @@ static void wpa_config_write_global(FILE
fprintf(f, "eapol_version=%d\n", config->eapol_version);
if (config->ap_scan != DEFAULT_AP_SCAN)
fprintf(f, "ap_scan=%d\n", config->ap_scan);
#ifdef EAP_TLS_OPENSSL
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
-@@ -633,6 +633,9 @@ static void wpa_supplicant_event_scan_re
+@@ -536,7 +536,7 @@ wpa_supplicant_select_bss_non_wpa(struct
+ "BSSID mismatch");
+ continue;
+ }
+-
++
+ if (!(ssid->key_mgmt & WPA_KEY_MGMT_NONE) &&
+ !(ssid->key_mgmt & WPA_KEY_MGMT_WPS) &&
+ !(ssid->key_mgmt & WPA_KEY_MGMT_IEEE8021X_NO_WPA))
+@@ -546,7 +546,7 @@ wpa_supplicant_select_bss_non_wpa(struct
+ continue;
+ }
+
+- if ((ssid->key_mgmt &
++ if ((ssid->key_mgmt &
+ (WPA_KEY_MGMT_IEEE8021X | WPA_KEY_MGMT_PSK |
+ WPA_KEY_MGMT_FT_IEEE8021X | WPA_KEY_MGMT_FT_PSK |
+ WPA_KEY_MGMT_IEEE8021X_SHA256 |
+@@ -635,6 +635,9 @@ static void wpa_supplicant_event_scan_re
wpa_s->disconnected)
return;
while (selected == NULL) {
for (prio = 0; prio < wpa_s->conf->num_prio; prio++) {
selected = wpa_supplicant_select_bss(
-@@ -645,6 +648,7 @@ static void wpa_supplicant_event_scan_re
+@@ -647,6 +650,7 @@ static void wpa_supplicant_event_scan_re
wpa_printf(MSG_DEBUG, "No APs found - clear blacklist "
"and try again");
wpa_blacklist_clear(wpa_s);
-+ memset(&wpa_s->last_scan_results, 0, sizeof(wpa_s->last_scan_results));
++ memset(&wpa_s->last_scan_results, 0, sizeof(wpa_s->last_scan_results));
+ wpa_s->blacklist_cleared++;
} else if (selected == NULL) {
break;
- }
-@@ -679,10 +683,12 @@ static void wpa_supplicant_event_scan_re
+@@ -682,10 +686,12 @@ static void wpa_supplicant_event_scan_re
rsn_preauth_scan_results(wpa_s->wpa, wpa_s->scan_res);
} else {
wpa_printf(MSG_DEBUG, "No suitable AP found.");
return;
req_scan:
-@@ -886,6 +892,9 @@ static void wpa_supplicant_event_disasso
+@@ -889,6 +895,9 @@ static void wpa_supplicant_event_disasso
}
if (wpa_s->wpa_state >= WPA_ASSOCIATED)
wpa_supplicant_req_scan(wpa_s, 0, 100000);
bssid = wpa_s->pending_bssid;
--- a/wpa_supplicant/wpa_supplicant_i.h
+++ b/wpa_supplicant/wpa_supplicant_i.h
-@@ -349,6 +349,7 @@ struct wpa_supplicant {
+@@ -350,6 +350,7 @@ struct wpa_supplicant {
struct wpa_client_mlme mlme;
int use_client_mlme;
int driver_4way_handshake;
int pending_mic_error_report;
int pending_mic_error_pairwise;
-@@ -402,6 +403,7 @@ int wpa_supplicant_scard_init(struct wpa
+@@ -405,6 +406,7 @@ int wpa_supplicant_scard_init(struct wpa
/* scan.c */
void wpa_supplicant_req_scan(struct wpa_supplicant *wpa_s, int sec, int usec);