struct calayer
{
CAHistory_t requestHistory; /**< filter IP family in requests */
- CAHistory_t responseHistory; /**< filter IP family in responses */
- CATransportFlags_t previousRequestFlags;/**< address family filtering */
- uint16_t previousRequestMessageId; /**< address family filtering */
} ca;
#ifdef TCP_ADAPTER
handler.terminate = CATerminateEDR;
registerCallback(handler, CA_ADAPTER_RFCOMM_BTEDR);
- // Initialize Send/Receive data message queues
- if (CA_STATUS_OK != CAEDRInitializeQueueHandlers())
- {
- OIC_LOG(ERROR, EDR_ADAPTER_TAG, "CAAdapterInitializeQueues API failed");
- CATerminateEDR();
- return CA_STATUS_FAILED;
- }
-
OIC_LOG(DEBUG, EDR_ADAPTER_TAG, "OUT");
return CA_STATUS_OK;
}
ret);
}
+ // Initialize Send/Receive data message queues
+ if (CA_STATUS_OK != (ret = CAEDRInitializeQueueHandlers()))
+ {
+ OIC_LOG_V(ERROR, EDR_ADAPTER_TAG,
+ "CAAdapterInitializeQueues failed!, error number [%d] ", ret);
+ CATerminateEDR();
+ return CA_STATUS_FAILED;
+ }
+
+ // Start Send/Receive data message queues
if (CA_STATUS_OK != (ret = CAAdapterStartQueue()))
{
OIC_LOG_V(ERROR, EDR_ADAPTER_TAG, "CAAdapterStartQueue failed!, error number [%d] ", ret);
// set terminate flag
caglobals.tcp.terminate = true;
- caglobals.tcp.started = false;
if (caglobals.tcp.shutdownFds[1] != -1)
{
// receive thread will stop immediately
}
- ca_cond_wait(g_condObjectList, g_mutexObjectList);
+ if (caglobals.tcp.started)
+ {
+ ca_cond_wait(g_condObjectList, g_mutexObjectList);
+ }
+ caglobals.tcp.started = false;
// mutex unlock
ca_mutex_unlock(g_mutexObjectList);