// Add message to data queue
CAEDRData *edrData = CACreateEDRData(remoteEndpoint, data, dataLength);
- CAQueueingThreadAddData(g_recvQueueHandle, edrData, sizeof(CAEDRData));
+ CAResult_t result = CAQueueingThreadAddData(g_recvQueueHandle, edrData, sizeof(CAEDRData), true);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CAFreeEDRData(edrData);
+ CAFreeEndpoint(remoteEndpoint);
+ return result;
+ }
+
*sentLength = dataLength;
// Free remote endpoint
// Add message to data queue
CAEDRData *edrData = CACreateEDRData(remoteEndpoint, data, dataLength);
- CAQueueingThreadAddData(g_sendQueueHandle, edrData, sizeof (CAEDRData));
+ CAResult_t result = CAQueueingThreadAddData(g_sendQueueHandle, edrData, sizeof (CAEDRData), true);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CAFreeEDRData(edrData);
+ CAFreeEndpoint(remoteEndpoint);
+ return result;
+ }
+
*sentLength = dataLength;
// Free remote endpoint
// Add message to send queue
CAResult_t res = CAQueueingThreadAddData(g_bleClientSendQueueHandle, bleData,
- sizeof(CALEData_t));
+ sizeof(CALEData_t), true);
if (CA_STATUS_OK != res)
{
CALEDataDestroyer(bleData, sizeof(CALEData_t));
CAResult_t res = CAQueueingThreadAddData(g_bleServerSendQueueHandle,
bleData,
- sizeof(CALEData_t));
+ sizeof(CALEData_t), true);
if (CA_STATUS_OK != res)
{
CALEDataDestroyer(bleData, sizeof(CALEData_t));
CAFreeEndpoint(remoteEndpoint);
// Add message to receiver queue
- CAQueueingThreadAddData(g_bleServerReceiverQueue, bleData, sizeof(CALEData_t));
+ CAResult_t result = CAQueueingThreadAddData(g_bleServerReceiverQueue, bleData, sizeof(CALEData_t), true);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, CALEADAPTER_TAG, "Failed to add message to data queue!");
+ CAFreeLEData(bleData);
+ return result;
+ }
*sentLength = dataLength;
#endif
CAFreeEndpoint(remoteEndpoint);
// Add message to receiver queue
- CAQueueingThreadAddData(g_bleClientReceiverQueue, bleData, sizeof(CALEData_t));
+ CAResult_t result = CAQueueingThreadAddData(g_bleClientReceiverQueue, bleData, sizeof(CALEData_t), true);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, CALEADAPTER_TAG, "Failed to add message to data queue!");
+ CAFreeLEData(bleData);
+ return result;
+ }
*sentLength = dataLength;
#endif
VERIFY_NON_NULL_VOID(data, TAG, "data");
// add thread
- CAQueueingThreadAddData(&g_sendThread, data, sizeof(CAData_t));
+ CAResult_t result = CAQueueingThreadAddData(&g_sendThread, data, sizeof(CAData_t), true);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CADestroyData(data, sizeof(CAData_t));
+ }
}
void CAAddDataToReceiveThread(CAData_t *data)
VERIFY_NON_NULL_VOID(data, TAG, "data");
// add thread
- CAQueueingThreadAddData(&g_receiveThread, data, sizeof(CAData_t));
+ CAResult_t result = CAQueueingThreadAddData(&g_receiveThread, data, sizeof(CAData_t), false);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CADestroyData(data, sizeof(CAData_t));
+ return;
+ }
#ifdef WITH_PROCESS_EVENT
if (g_processEvent)
#ifdef SINGLE_THREAD
CAProcessReceivedData(cadata);
#else
- CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t));
+ CAResult_t result = CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t), false);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CADestroyData(cadata, sizeof(CAData_t));
+ return;
+ }
#ifdef WITH_PROCESS_EVENT
if (g_processEvent)
else
#endif
{
- CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t));
+ CAResult_t result = CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t), false);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CADestroyData(cadata, sizeof(CAData_t));
+ coap_delete_pdu(pdu);
+ goto exit;
+ }
#ifdef WITH_PROCESS_EVENT
if (g_processEvent)
cadata->eventInfo = event;
cadata->dataType = dataType;
- CAQueueingThreadAddData(&g_sendThread, cadata, sizeof(CAData_t));
+ CAResult_t result = CAQueueingThreadAddData(&g_sendThread, cadata, sizeof(CAData_t), true);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CADestroyData(cadata, sizeof(CAData_t));
+ return result;
+ }
#endif
return CA_STATUS_OK;
if (CA_NOT_SUPPORTED == res)
{
OIC_LOG(DEBUG, TAG, "normal msg will be sent");
- CAQueueingThreadAddData(&g_sendThread, data, sizeof(CAData_t));
+ CAResult_t result = CAQueueingThreadAddData(&g_sendThread, data, sizeof(CAData_t), true);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CADestroyData(data, sizeof(CAData_t));
+ return result;
+ }
return CA_STATUS_OK;
}
else
else
#endif // WITH_BWT
{
- CAQueueingThreadAddData(&g_sendThread, data, sizeof(CAData_t));
+ CAResult_t result = CAQueueingThreadAddData(&g_sendThread, data, sizeof(CAData_t), true);
+ if (result != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CADestroyData(data, sizeof(CAData_t));
+ return result;
+ }
}
#endif // SINGLE_THREAD
cadata->errorInfo->result = result;
- CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t));
+ CAResult_t res = CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t), false);
+ if (res != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CADestroyData(cadata, sizeof(CAData_t));
+ coap_delete_pdu(pdu);
+ return;
+ }
#ifdef WITH_PROCESS_EVENT
if (g_processEvent)
cadata->errorInfo = errorInfo;
cadata->dataType = CA_ERROR_DATA;
- CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t));
+ res = CAQueueingThreadAddData(&g_receiveThread, cadata, sizeof(CAData_t), false);
+ if (res != CA_STATUS_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Failed to add message to data queue!");
+ CADestroyData(cadata, sizeof(CAData_t));
+ return;
+ }
#ifdef WITH_PROCESS_EVENT
if (g_processEvent)