static void eap_vendor_test_process(struct eap_sm *sm, void *priv, struct wpabuf *respData) { struct eap_vendor_test_data *data = priv; const u8 *pos; size_t len; pos = eap_hdr_validate(EAP_VENDOR_ID, EAP_VENDOR_TYPE, respData, &len); if (pos == NULL || len < 1) return; if (data->state == INIT) { if (*pos == 2) eap_vendor_test_state(data, CONFIRM); else eap_vendor_test_state(data, FAILURE); } else if (data->state == CONFIRM) { if (*pos == 4) eap_vendor_test_state(data, SUCCESS); else eap_vendor_test_state(data, FAILURE); } else eap_vendor_test_state(data, FAILURE); }
static void eap_vendor_test_process(struct eap_sm *sm, void *priv, u8 *respData, size_t respDataLen) { struct eap_vendor_test_data *data = priv; struct eap_hdr *resp; u8 *pos; resp = (struct eap_hdr *) respData; pos = (u8 *) (resp + 1); pos += 8; /* Skip expanded header */ if (data->state == INIT) { if (*pos == 2) eap_vendor_test_state(data, CONFIRM); else eap_vendor_test_state(data, FAILURE); } else if (data->state == CONFIRM) { if (*pos == 4) eap_vendor_test_state(data, SUCCESS); else eap_vendor_test_state(data, FAILURE); } else eap_vendor_test_state(data, FAILURE); }