|
@@ -861,12 +861,22 @@ void ieee802_1x_new_station(struct hostapd_data *hapd, struct sta_info *sta)
|
|
|
if (!force_1x && !hapd->conf->ieee802_1x) {
|
|
|
wpa_printf(MSG_DEBUG, "IEEE 802.1X: Ignore STA - "
|
|
|
"802.1X not enabled or forced for WPS");
|
|
|
+ /*
|
|
|
+ * Clear any possible EAPOL authenticator state to support
|
|
|
+ * reassociation change from WPS to PSK.
|
|
|
+ */
|
|
|
+ ieee802_1x_free_station(sta);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
key_mgmt = wpa_auth_sta_key_mgmt(sta->wpa_sm);
|
|
|
if (key_mgmt != -1 && wpa_key_mgmt_wpa_psk(key_mgmt)) {
|
|
|
wpa_printf(MSG_DEBUG, "IEEE 802.1X: Ignore STA - using PSK");
|
|
|
+ /*
|
|
|
+ * Clear any possible EAPOL authenticator state to support
|
|
|
+ * reassociation change from WPA-EAP to PSK.
|
|
|
+ */
|
|
|
+ ieee802_1x_free_station(sta);
|
|
|
return;
|
|
|
}
|
|
|
|