Register a quick auth timeout if EAPOL fails to avoid long waits
authorJouni Malinen <jouni.malinen@atheros.com>
Thu, 2 Oct 2008 14:27:24 +0000 (17:27 +0300)
committerJouni Malinen <j@w1.fi>
Thu, 2 Oct 2008 14:27:24 +0000 (17:27 +0300)
This may be needed if the AP does not disconnect in case of EAP-FAST
unauthenticated provisioning (EAP-Failure). Adding the local short timeout
will speed up the process in such a case by reducing the wait (which can
often be up to 60 seconds).

wpa_supplicant/wpas_glue.c

index 7a74189..f0c1cda 100644 (file)
@@ -228,6 +228,15 @@ static void wpa_supplicant_eapol_cb(struct eapol_sm *eapol, int success,
        wpa_printf(MSG_DEBUG, "EAPOL authentication completed %ssuccessfully",
                   success ? "" : "un");
 
+       if (!success) {
+               /*
+                * Make sure we do not get stuck here waiting for long EAPOL
+                * timeout if the AP does not disconnect in case of
+                * authentication failure.
+                */
+               wpa_supplicant_req_auth_timeout(wpa_s, 2, 0);
+       }
+
        if (!success || !wpa_s->driver_4way_handshake)
                return;