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 @@ -854,7 +854,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_supplicant_req_auth_timeout(wpa_s, 10, 0); + wpa_supplicant_req_auth_timeout(wpa_s, 3, 0); } wpa_supplicant_cancel_scan(wpa_s); --- a/wpa_supplicant/scan.c +++ b/wpa_supplicant/scan.c @@ -189,6 +189,7 @@ static void wpa_supplicant_scan(void *el } #endif /* CONFIG_WPS */ + wpa_drv_flush_pmkid(wpa_s); if (wpa_s->use_client_mlme) { ieee80211_sta_set_probe_req_ie(wpa_s, extra_ie, extra_ie_len); ret = ieee80211_sta_req_scan(wpa_s, ssid ? ssid->ssid : NULL, @@ -203,7 +204,7 @@ static void wpa_supplicant_scan(void *el if (ret) { 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 if (assoc_failed) { /* give IBSS a bit more time */ - timeout = ssid->mode ? 10 : 5; + timeout = ssid->mode ? 5 : 2; } else if (wpa_s->conf->ap_scan == 1) { /* give IBSS a bit more time */ - timeout = ssid->mode ? 20 : 10; + timeout = ssid->mode ? 7 : 3; } wpa_supplicant_req_auth_timeout(wpa_s, timeout, 0); }