Browse Source

Register a quick auth timeout if EAPOL fails to avoid long waits

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).
Jouni Malinen 16 years ago
parent
commit
0930209dc2
1 changed files with 9 additions and 0 deletions
  1. 9 0
      wpa_supplicant/wpas_glue.c

+ 9 - 0
wpa_supplicant/wpas_glue.c

@@ -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;