|
@@ -1263,6 +1263,14 @@ static void wpa_supplicant_event_assoc(struct wpa_supplicant *wpa_s,
|
|
wpa_supplicant_set_state(wpa_s, WPA_COMPLETED);
|
|
wpa_supplicant_set_state(wpa_s, WPA_COMPLETED);
|
|
eapol_sm_notify_portValid(wpa_s->eapol, TRUE);
|
|
eapol_sm_notify_portValid(wpa_s->eapol, TRUE);
|
|
eapol_sm_notify_eap_success(wpa_s->eapol, TRUE);
|
|
eapol_sm_notify_eap_success(wpa_s->eapol, TRUE);
|
|
|
|
+ } else if ((wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE) &&
|
|
|
|
+ wpa_key_mgmt_wpa_ieee8021x(wpa_s->key_mgmt)) {
|
|
|
|
+ /*
|
|
|
|
+ * The driver will take care of RSN 4-way handshake, so we need
|
|
|
|
+ * to allow EAPOL supplicant to complete its work without
|
|
|
|
+ * waiting for WPA supplicant.
|
|
|
|
+ */
|
|
|
|
+ eapol_sm_notify_portValid(wpa_s->eapol, TRUE);
|
|
}
|
|
}
|
|
|
|
|
|
if (wpa_s->pending_eapol_rx) {
|
|
if (wpa_s->pending_eapol_rx) {
|