Fixed WPS with open and shared WEP networks
Do not initialize EAPOL state machine for the STA when hostapd is configured to use WPS with open or shared WEP networks. This allows the STA to use EAPOL-Start to indicate it wants to start WPS in such a case and hostapd does not end up running through EAPOL authentication timeout and disconnecting the STA if WPS is not used. There was already code for starting EAPOL state machines based on received EAPOL packets, but that was not working properly since portEnabled was not set to TRUE on that code path. This is now fixed, too.
This commit is contained in:
parent
aabe26a136
commit
a60e7213e1
1 changed files with 3 additions and 1 deletions
|
@ -747,6 +747,8 @@ void ieee802_1x_receive(struct hostapd_data *hapd, const u8 *sa, const u8 *buf,
|
||||||
sta->eapol_sm->flags |= EAPOL_SM_WAIT_START;
|
sta->eapol_sm->flags |= EAPOL_SM_WAIT_START;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_WPS */
|
#endif /* CONFIG_WPS */
|
||||||
|
|
||||||
|
sta->eapol_sm->eap_if->portEnabled = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* since we support version 1, we can ignore version field and proceed
|
/* since we support version 1, we can ignore version field and proceed
|
||||||
|
@ -829,7 +831,7 @@ void ieee802_1x_new_station(struct hostapd_data *hapd, struct sta_info *sta)
|
||||||
int force_1x = 0;
|
int force_1x = 0;
|
||||||
|
|
||||||
#ifdef CONFIG_WPS
|
#ifdef CONFIG_WPS
|
||||||
if (hapd->conf->wps_state &&
|
if (hapd->conf->wps_state && hapd->conf->wpa &&
|
||||||
(sta->flags & (WLAN_STA_WPS | WLAN_STA_MAYBE_WPS))) {
|
(sta->flags & (WLAN_STA_WPS | WLAN_STA_MAYBE_WPS))) {
|
||||||
/*
|
/*
|
||||||
* Need to enable IEEE 802.1X/EAPOL state machines for possible
|
* Need to enable IEEE 802.1X/EAPOL state machines for possible
|
||||||
|
|
Loading…
Reference in a new issue