- if (message->dataLen - CA_HEADER_LENGTH - dataLen <= newSender->totalDataLen)
- {
- memcpy(newSender->defragData, message->data + dataLen + CA_HEADER_LENGTH,
- message->dataLen - dataLen - CA_HEADER_LENGTH);
- newSender->recvDataLen += message->dataLen - dataLen - CA_HEADER_LENGTH;
- u_arraylist_add(g_senderInfo,(void *)newSender);
- dataLen = message->dataLen;
- }
- else
- {
- memcpy(newSender->defragData, message->data + dataLen + CA_HEADER_LENGTH,
- newSender->totalDataLen);
- newSender->recvDataLen = newSender->totalDataLen;
- u_arraylist_add(g_senderInfo,(void *)newSender);
- dataLen += newSender->totalDataLen + CA_HEADER_LENGTH;
- }
- //Getting newSender index position in g_senderInfo array list
- if (CA_STATUS_OK !=
- CAEDRGetSenderInfo(newSender->remoteEndpoint->addr, NULL, &senderIndex))
- {
- OIC_LOG(ERROR, EDR_ADAPTER_TAG, "Existing sender index not found!!");
- OICFree(newSender->defragData);
- CAFreeEndpoint(newSender->remoteEndpoint);
- OICFree(newSender);
- return;
- }
- senderInfo = newSender;
- }
- else
- {
- if (senderInfo->recvDataLen + message->dataLen - dataLen <= senderInfo->totalDataLen)
- {
- OIC_LOG_V(DEBUG, EDR_ADAPTER_TAG, "Copying the data of length [%d]",
- message->dataLen - dataLen);
- memcpy(senderInfo->defragData + senderInfo->recvDataLen, message->data + dataLen,
- message->dataLen - dataLen);
- senderInfo->recvDataLen += message->dataLen - dataLen;
- OIC_LOG_V(DEBUG, EDR_ADAPTER_TAG, "totalDatalength [%d] recveived Datalen [%d]",
- senderInfo->totalDataLen, senderInfo->recvDataLen);
- dataLen = message->dataLen;
- }
- else
- {
- OIC_LOG_V(DEBUG, EDR_ADAPTER_TAG, "Copying the data of length [%d]",
- senderInfo->totalDataLen - senderInfo->recvDataLen);
- memcpy(senderInfo->defragData + senderInfo->recvDataLen, message->data + dataLen,
- senderInfo->totalDataLen - senderInfo->recvDataLen);
- dataLen += senderInfo->totalDataLen - senderInfo->recvDataLen;
- senderInfo->recvDataLen = senderInfo->totalDataLen;
- OIC_LOG_V(DEBUG, EDR_ADAPTER_TAG, "totalDatalength [%d] recveived Datalen [%d]",
- senderInfo->totalDataLen, senderInfo->recvDataLen);
- }
- }