hostapd是认证客户端,而802.1x只是其中的很少一部分,我看的内容只是其中的
ieee802_1x.c
eapol_sm.c
l2_packet_linux.c



一些数据结构有问题,
就是eapol_state_machine及其他状态机
当对数据处理后,将结果记录在eapol_state_machine
当收到eapol_start报文时,           做 eapol_sm -> eapol_Start = TURE 处理
当收到RADIUS返回的认证成功报文时    做 sm->eap_if->aaaSuccess = TRUE; 处理
当收到RADUIS返回的认证失败报文时    做 sm->eap_if->aaaFail = TRUE;    处理
当收到RADUIS返回的挑战字时        做 sm->eap_if->aaaEapReq = TRUE;  处理

此时根据发生情况,将eapol_state_machine设置成功,
然后调用eapol_auth_step(sm);来监听eapol_state_machine的状态改变        

现在做到eapol_auth_step() 做不下去了
下面是我的理解
eapol_auth_step(sm)
call  eapol_sm_step_cb()
    call    eapol_sm_step_run(struct eapol_state_machine *sm)
    看到这个函数直接傻眼了,和我想象中的对eapol_sm状态机各状态监听并处理完全不一样,我想的是通过对布尔变量的判断方法监听,也就是通过while(状态)的方法监听,下面是处理方法。但是这里又出现了PAE状态机,并且是怎么调用的发包函数,也看不到了,
    
    希望高手能帮助一下。