mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-01-03 10:32:33 +01:00
eapol: provide feedback from eapol_start, refactor
This commit is contained in:
parent
569be488d0
commit
3f4b5a98f5
34
src/eapol.c
34
src/eapol.c
@ -1814,22 +1814,8 @@ void eapol_register(struct eapol_sm *sm)
|
||||
eapol_rx_packet, sm);
|
||||
}
|
||||
|
||||
void eapol_start(struct eapol_sm *sm)
|
||||
bool eapol_start(struct eapol_sm *sm)
|
||||
{
|
||||
if (sm->require_handshake)
|
||||
sm->timeout = l_timeout_create(2, eapol_timeout, sm, NULL);
|
||||
|
||||
sm->started = true;
|
||||
|
||||
if (sm->use_eapol_start) {
|
||||
/*
|
||||
* We start a short timeout, if EAP packets are not received
|
||||
* from AP, then we send the EAPoL-Start
|
||||
*/
|
||||
sm->eapol_start_timeout =
|
||||
l_timeout_create(1, send_eapol_start, sm, NULL);
|
||||
}
|
||||
|
||||
if (sm->handshake->settings_8021x) {
|
||||
sm->eap = eap_new(eapol_eap_msg_cb, eapol_eap_complete_cb, sm);
|
||||
|
||||
@ -1848,6 +1834,20 @@ void eapol_start(struct eapol_sm *sm)
|
||||
eap_set_event_func(sm->eap, eapol_eap_event_cb);
|
||||
}
|
||||
|
||||
sm->started = true;
|
||||
|
||||
if (sm->require_handshake)
|
||||
sm->timeout = l_timeout_create(2, eapol_timeout, sm, NULL);
|
||||
|
||||
if (sm->use_eapol_start) {
|
||||
/*
|
||||
* We start a short timeout, if EAP packets are not received
|
||||
* from AP, then we send the EAPoL-Start
|
||||
*/
|
||||
sm->eapol_start_timeout =
|
||||
l_timeout_create(1, send_eapol_start, sm, NULL);
|
||||
}
|
||||
|
||||
/* Process any frames received early due to scheduling */
|
||||
if (sm->early_frame) {
|
||||
eapol_rx_packet(ETH_P_PAE, sm->handshake->aa,
|
||||
@ -1856,11 +1856,13 @@ void eapol_start(struct eapol_sm *sm)
|
||||
sm->early_frame = NULL;
|
||||
}
|
||||
|
||||
return;
|
||||
return true;
|
||||
|
||||
eap_error:
|
||||
l_error("Error initializing EAP for ifindex %i",
|
||||
(int) sm->handshake->ifindex);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
struct eapol_frame_watch {
|
||||
|
@ -197,7 +197,7 @@ void eapol_sm_set_user_data(struct eapol_sm *sm, void *user_data);
|
||||
void eapol_sm_set_event_func(struct eapol_sm *sm, eapol_sm_event_func_t func);
|
||||
|
||||
void eapol_register(struct eapol_sm *sm);
|
||||
void eapol_start(struct eapol_sm *sm);
|
||||
bool eapol_start(struct eapol_sm *sm);
|
||||
|
||||
uint32_t eapol_frame_watch_add(uint32_t ifindex,
|
||||
eapol_frame_watch_func_t handler,
|
||||
|
Loading…
Reference in New Issue
Block a user