Update snapshot(2018-01-04)
[platform/upstream/iotivity.git] / resource / csdk / connectivity / src / camessagehandler.c
index dcc172e..ebd322b 100755 (executable)
@@ -51,6 +51,8 @@
 #define SINGLE_HANDLE
 #define MAX_THREAD_POOL_SIZE    20
 
+#define UNUSED(x) (void)(x)
+
 // thread pool handle
 static ca_thread_pool_t g_threadPoolHandle = NULL;
 
@@ -201,7 +203,8 @@ static CAData_t* CAGenerateHandlerData(const CAEndpoint_t *endpoint,
             goto exit;
         }
 
-        if (CADropSecondMessage(&caglobals.ca.requestHistory, endpoint, reqInfo->info.messageId,
+        if ((reqInfo->info.type != CA_MSG_CONFIRM) &&
+            CADropSecondMessage(&caglobals.ca.requestHistory, endpoint, reqInfo->info.messageId,
                                 reqInfo->info.token, reqInfo->info.tokenLength))
         {
             OIC_LOG(INFO, TAG, "Second Request with same Token, Drop it");
@@ -894,6 +897,7 @@ static void CAAdapterStateChangedCallback(CATransportAdapter_t transportType, bo
 
 static bool CAClearQueueEndpointDataContext(void *data, uint32_t size, void *ctx)
 {
+    UNUSED(size);
     if (NULL == data || NULL == ctx)
     {
         return false;
@@ -920,7 +924,7 @@ static void CAConnectionStateChangedCallback(const CAEndpoint_t *info, bool isCo
     {
         CAResult_t res = CAQueueingThreadClearContextData(&g_sendThread,
                                                           CAClearQueueEndpointDataContext,
-                                                          info);
+                                                          (void *)info);
         if (CA_STATUS_OK != res)
         {
             OIC_LOG(ERROR, TAG, "Could not clear the send queue");
@@ -1171,8 +1175,8 @@ void CASetNetworkMonitorCallback(CANetworkMonitorCallback nwMonitorHandler)
 
 CAResult_t CAInitializeMessageHandler(CATransportAdapter_t transportType)
 {
-    CASetPacketReceivedCallback(CAReceivedPacketCallback);
-    CASetErrorHandleCallback(CAErrorHandler);
+    CASetPacketReceivedCallback((CANetworkPacketReceivedCallback)CAReceivedPacketCallback);
+    CASetErrorHandleCallback((CAErrorHandleCallback)CAErrorHandler);
 
 #ifndef SINGLE_THREAD
     // create thread pool
@@ -1271,6 +1275,8 @@ CAResult_t CAInitializeMessageHandler(CATransportAdapter_t transportType)
 
 static bool CAClearQueueAdapterDataContext(void *data, uint32_t size, void *ctx)
 {
+    (void)size;
+
     if (NULL == data || NULL == ctx)
     {
         return false;
@@ -1300,10 +1306,13 @@ void CAClearMessageHandler(CATransportAdapter_t transportType)
         OIC_LOG_V(ERROR, TAG, "Clear send data failed[%d]", res);
     }
 
-    res = CARetransmissionClearAdapterData(&g_retransmissionContext, transportType);
-    if (res != CA_STATUS_OK)
+    if (transportType & DEFAULT_RETRANSMISSION_TYPE)
     {
-        OIC_LOG_V(ERROR, TAG, "Clear retransmission data failed[%d]", res);
+        res = CARetransmissionClearAdapterData(&g_retransmissionContext, transportType);
+        if (res != CA_STATUS_OK)
+        {
+            OIC_LOG_V(ERROR, TAG, "Clear retransmission data failed[%d]", res);
+        }
     }
 }
 
@@ -1600,7 +1609,7 @@ static void CALogPDUInfo(const CAData_t *data, const coap_pdu_t *pdu)
     if (NULL != data->remoteEndpoint)
     {
         CALogAdapterTypeInfo(data->remoteEndpoint->adapter);
-        OIC_LOG_V(INFO, ANALYZER_TAG, "Address = [%s]:[%d]", data->remoteEndpoint->addr,
+        OIC_LOG_V(DEBUG, ANALYZER_TAG, "Address = [%s]:[%d]", data->remoteEndpoint->addr,
                   data->remoteEndpoint->port);
     }
 
@@ -1678,15 +1687,15 @@ static void CALogPDUInfo(const CAData_t *data, const coap_pdu_t *pdu)
     }
 
     size_t payloadLen = (pdu->data) ? (unsigned char *) pdu->hdr + pdu->length - pdu->data : 0;
-    OIC_LOG_V(INFO, ANALYZER_TAG, "CoAP Message Full Size = [%lu]", pdu->length);
+    OIC_LOG_V(INFO, ANALYZER_TAG, "CoAP Message Full Size = [%u]", pdu->length);
     OIC_LOG(INFO, ANALYZER_TAG, "CoAP Header (+ 0xFF)");
     OIC_LOG_BUFFER(INFO, ANALYZER_TAG,  (const uint8_t *) pdu->transport_hdr,
                    pdu->length - payloadLen);
-    OIC_LOG_V(INFO, ANALYZER_TAG, "CoAP Header size = [%lu]", pdu->length - payloadLen);
+    OIC_LOG_V(INFO, ANALYZER_TAG, "CoAP Header size = [%" PRIuPTR "]", (size_t) pdu->length - payloadLen);
 
     OIC_LOG_V(INFO, ANALYZER_TAG, "CoAP Payload");
     OIC_LOG_BUFFER(INFO_PRIVATE, ANALYZER_TAG, pdu->data, payloadLen);
-    OIC_LOG_V(INFO, ANALYZER_TAG, "CoAP Payload Size = [%lu]", payloadLen);
+    OIC_LOG_V(INFO, ANALYZER_TAG, "CoAP Payload Size = [%" PRIuPTR "]", payloadLen);
     OIC_LOG(INFO, ANALYZER_TAG, "=================================================");
 
     // samsung log
@@ -1727,7 +1736,7 @@ static void CASamsungLogMessage(const CAData_t *data, const coap_pdu_t *pdu)
     if (NULL != data->remoteEndpoint)
     {
         int i = 0;
-        while (NULL != data->remoteEndpoint->addr[i])
+        while (data->remoteEndpoint->addr[i])
         {
             g_headerBuffer[g_headerIndex++] = data->remoteEndpoint->addr[i];
             i++;
@@ -1782,7 +1791,7 @@ static void CASamsungLogMessage(const CAData_t *data, const coap_pdu_t *pdu)
     if (info->resourceUri)
     {
         size_t i = 0;
-        while (NULL != info->resourceUri[i])
+        while (info->resourceUri[i])
         {
             g_headerBuffer[g_headerIndex++] = info->resourceUri[i];
             i++;