SM_STATE(EAP, FAILURE2) { SM_ENTRY(EAP, FAILURE2); eap_copy_buf(&sm->eap_if.eapReqData, sm->eap_if.aaaEapReqData); sm->eap_if.eapFail = TRUE; }
SM_STATE(EAP, METHOD_REQUEST) { SM_ENTRY(EAP, METHOD_REQUEST); if (sm->m == NULL) { asd_printf(ASD_DEFAULT,MSG_DEBUG, "EAP: method not initialized"); return; } sm->currentId = eap_sm_nextId(sm, sm->currentId); asd_printf(ASD_DEFAULT,MSG_DEBUG, "EAP: building EAP-Request: Identifier %d", sm->currentId); sm->lastId = sm->currentId; wpabuf_free(sm->eap_if.eapReqData); sm->eap_if.eapReqData = sm->m->buildReq(sm, sm->eap_method_priv, sm->currentId); if(!sm->alive_flag){ if(sm->eap_if.eapReqData == NULL) { sm->alive_flag = FALSE; } else{ if(eap_copy_buf(&sm->eap_if.aliveData,sm->eap_if.eapReqData) == 0) sm->alive_flag = TRUE; else sm->alive_flag = FALSE; } } if (sm->m->getTimeout) sm->methodTimeout = sm->m->getTimeout(sm, sm->eap_method_priv); else sm->methodTimeout = 0; }
SM_STATE(EAP, AAA_RESPONSE) { SM_ENTRY(EAP, AAA_RESPONSE); eap_copy_buf(&sm->eap_if.eapReqData, sm->eap_if.aaaEapReqData); sm->currentId = eap_sm_getId(sm->eap_if.eapReqData); sm->methodTimeout = sm->eap_if.aaaMethodTimeout; }
SM_STATE(EAP, RETRANSMIT2) { SM_ENTRY(EAP, RETRANSMIT2); sm->retransCount++; if (sm->retransCount <= sm->MaxRetrans && sm->lastReqData) { if (eap_copy_buf(&sm->eap_if.eapReqData, sm->lastReqData) == 0) sm->eap_if.eapReq = TRUE; } }
SM_STATE(EAP, AAA_REQUEST) { SM_ENTRY(EAP, AAA_REQUEST); if (sm->eap_if.eapRespData == NULL) { wpa_printf(MSG_INFO, "EAP: AAA_REQUEST - no eapRespData"); return; } /* * if (respMethod == IDENTITY) * aaaIdentity = eapRespData * This is already taken care of by the EAP-Identity method which * stores the identity into sm->identity. */ eap_copy_buf(&sm->eap_if.aaaEapRespData, sm->eap_if.eapRespData); }
SM_STATE(EAP, SUCCESS2) { SM_ENTRY(EAP, SUCCESS2); eap_copy_buf(&sm->eap_if.eapReqData, sm->eap_if.aaaEapReqData); sm->eap_if.eapKeyAvailable = sm->eap_if.aaaEapKeyAvailable; if (sm->eap_if.aaaEapKeyAvailable) { EAP_COPY(&sm->eap_if.eapKeyData, sm->eap_if.aaaEapKeyData); } else { os_free(sm->eap_if.eapKeyData); sm->eap_if.eapKeyData = NULL; sm->eap_if.eapKeyDataLen = 0; } sm->eap_if.eapSuccess = TRUE; }
SM_STATE(EAP, SEND_REQUEST2) { SM_ENTRY(EAP, SEND_REQUEST2); sm->retransCount = 0; if (sm->eap_if.eapReqData) { if (eap_copy_buf(&sm->lastReqData, sm->eap_if.eapReqData) == 0) { sm->eap_if.eapResp = FALSE; sm->eap_if.eapReq = TRUE; } else { sm->eap_if.eapResp = FALSE; sm->eap_if.eapReq = FALSE; } } else { wpa_printf(MSG_INFO, "EAP: SEND_REQUEST2 - no eapReqData"); sm->eap_if.eapResp = FALSE; sm->eap_if.eapReq = FALSE; sm->eap_if.eapNoReq = TRUE; } }
SM_STATE(EAP, SEND_REQUEST) { SM_ENTRY(EAP, SEND_REQUEST); sm->retransCount = 0; if (sm->eap_if.eapReqData) { if (eap_copy_buf(&sm->lastReqData, sm->eap_if.eapReqData) == 0) { sm->eap_if.eapResp = FALSE; sm->eap_if.eapReq = TRUE; } else { sm->eap_if.eapResp = FALSE; sm->eap_if.eapReq = FALSE; } } else { asd_printf(ASD_DEFAULT,MSG_DEBUG, "EAP: SEND_REQUEST - no eapReqData"); sm->eap_if.eapResp = FALSE; sm->eap_if.eapReq = FALSE; sm->eap_if.eapNoReq = TRUE; } }
SM_STATE(EAP, SUCCESS2) { SM_ENTRY(EAP, SUCCESS2); eap_copy_buf(&sm->eap_if.eapReqData, sm->eap_if.aaaEapReqData); sm->eap_if.eapKeyAvailable = sm->eap_if.aaaEapKeyAvailable; if (sm->eap_if.aaaEapKeyAvailable) { EAP_COPY(&sm->eap_if.eapKeyData, sm->eap_if.aaaEapKeyData); } else { os_free(sm->eap_if.eapKeyData); sm->eap_if.eapKeyData = NULL; sm->eap_if.eapKeyDataLen = 0; } sm->eap_if.eapSuccess = TRUE; /* * Start reauthentication with identity request even though we know the * previously used identity. This is needed to get reauthentication * started properly. */ sm->start_reauth = TRUE; }