When receiving a CONTINUE while nfc_data_length is set to 0, it must
be a CONTINUE for a fragmented GET. The headers are thus read in order
to modify snep_data->request and then process the right request.
This fixes the GET fragmented unit test.
return TRUE;
}
+ /*
+ * This is a fragmentation SNEP operation since we have pending
+ * frames. But the ndef length and the current data length are
+ * identical. So this is a CONTINUE for a fragmented GET, and
+ * we should just process a CONTINUE frame and send the fragments
+ * back to the client. This will be done from snep_core_process_request().
+ */
+ if (snep_data != NULL) {
+ snep_data->request = frame.request;
+ goto process_request;
+ }
+
/* This is a new request from the client */
snep_data = g_try_malloc0(sizeof(struct p2p_snep_data));
if (snep_data == NULL)