Need to clear the state back to MSG after having processed all incoming fragments. Without this, the server got stuck in sending the fragment ACK even after having received the full message.
@@ -416,6 +416,9 @@ static void eap_ikev2_process(struct eap_sm *sm, void *priv,
else
eap_ikev2_state(data, FRAG_ACK);
return;
+ } else if (data->state == FRAG_ACK) {
+ wpa_printf(MSG_DEBUG, "EAP-TNC: All fragments received");
+ data->state = MSG;
}
if (data->in_buf == NULL) {