Parcourir la source

nl80211: Use driver event to indicate failure on authentication retry

When using authentication retry within driver_nl80211.c, a failure on the
second attempt has to be indicated with a driver event since the return
code from wpa_driver_nl80211_authenticate() is not actually delivered to
the core code in that case.

Signed-hostap: Jouni Malinen <j@w1.fi>
Jouni Malinen il y a 13 ans
Parent
commit
8c3ba0784e
1 fichiers modifiés avec 13 ajouts et 0 suppressions
  1. 13 0
      src/drivers/driver_nl80211.c

+ 13 - 0
src/drivers/driver_nl80211.c

@@ -4011,6 +4011,19 @@ retry:
 				nl80211_copy_auth_params(drv, params);
 				drv->scan_for_auth = 1;
 			}
+		} else if (is_retry) {
+			/*
+			 * Need to indicate this with an event since the return
+			 * value from the retry is not delivered to core code.
+			 */
+			union wpa_event_data event;
+			wpa_printf(MSG_DEBUG, "nl80211: Authentication retry "
+				   "failed");
+			os_memset(&event, 0, sizeof(event));
+			os_memcpy(event.timeout_event.addr, drv->auth_bssid_,
+				  ETH_ALEN);
+			wpa_supplicant_event(drv->ctx, EVENT_AUTH_TIMED_OUT,
+					     &event);
 		}
 
 		goto nla_put_failure;