Fix 64bit build error for tizen dlog print format
[platform/upstream/iotivity.git] / resource / csdk / security / src / credresource.c
index d4a7c61..0bdaa5f 100644 (file)
@@ -59,6 +59,7 @@
 #include <fcntl.h>
 #include <unistd.h>
 #endif
+#define UNUSED(x) (void)(x)
 
 #define TAG  "OIC_SRM_CREDL"
 
@@ -100,7 +101,9 @@ typedef enum CredCompareResult{
  */
 static bool CheckSubjectOfCertificate(OicSecCred_t* cred, OicUuid_t deviceID)
 {
+    UNUSED(deviceID);
     OicUuid_t emptyUuid = {.id={0}};
+    UNUSED(emptyUuid);
     OIC_LOG(DEBUG, TAG, "IN CheckSubjectOfCertificate");
     VERIFY_NON_NULL(TAG, cred, ERROR);
 
@@ -1166,7 +1169,7 @@ OicSecCred_t * GenerateCredential(const OicUuid_t * subject, OicSecCredType_t cr
     OIC_LOG_BUFFER(DEBUG, TAG, cred->subject.id, sizeof(cred->subject.id));
     if (cred->privateData.data)
     {
-        OIC_LOG_V(DEBUG, TAG, "GenerateCredential : privateData len: %d", cred->privateData.len);
+        OIC_LOG_V(DEBUG, TAG, "GenerateCredential : privateData len: %zd", cred->privateData.len);
         OIC_LOG_BUFFER(DEBUG, TAG, cred->privateData.data, cred->privateData.len);
     }
 #if defined(__WITH_DTLS__) || defined(__WITH_TLS__)
@@ -1176,13 +1179,13 @@ OicSecCred_t * GenerateCredential(const OicUuid_t * subject, OicSecCredType_t cr
     }
     if (cred->publicData.data)
     {
-        OIC_LOG_V(DEBUG, TAG, "GenerateCredential : publicData len: %d", cred->publicData.len);
+        OIC_LOG_V(DEBUG, TAG, "GenerateCredential : publicData len: %zd", cred->publicData.len);
         OIC_LOG_BUFFER(DEBUG, TAG, cred->publicData.data, cred->publicData.len);
 
     }
     if (cred->optionalData.data)
     {
-        OIC_LOG_V(DEBUG, TAG, "GenerateCredential : optionalData len: %d", cred->optionalData.len);
+        OIC_LOG_V(DEBUG, TAG, "GenerateCredential : optionalData len: %zd", cred->optionalData.len);
         OIC_LOG_BUFFER(DEBUG, TAG, cred->optionalData.data, cred->optionalData.len);
         OIC_LOG_V(DEBUG, TAG, "GenerateCredential : optionalData revstat: %d", cred->optionalData.revstat);
     }
@@ -1459,6 +1462,7 @@ OCStackResult AddCredential(OicSecCred_t * newCred)
     }
     else
     {
+        OicSecCred_t *prev = NULL;
         LL_FOREACH(gCred, temp)
         {
             CredCompareResult_t cmpRes = CompareCredential(temp, newCred);
@@ -1467,6 +1471,18 @@ OCStackResult AddCredential(OicSecCred_t * newCred)
                 OIC_LOG_V(WARNING, TAG, "Detected same credential ID(%d)" \
                           "new credential's ID will be replaced.", temp->credId);
                 newCred->credId = temp->credId;
+                newCred->next = temp->next;
+
+                if(NULL == prev)
+                {
+                    gCred = newCred;
+                }
+                else
+                {
+                    prev->next = newCred;
+                }
+
+                FreeCred(temp);
                 ret = OC_STACK_OK;
                 validFlag = false;
                 break;
@@ -1479,6 +1495,8 @@ OCStackResult AddCredential(OicSecCred_t * newCred)
                 validFlag = false;
                 break;
             }
+
+            prev = temp;
         }
     }
 
@@ -1939,7 +1957,20 @@ static OCEntityHandlerResult HandlePostRequest(OCEntityHandlerRequest * ehReques
                             }
 #endif // __WITH_DTLS__ or __WITH_TLS__
                         }
-
+                        else
+                        {
+                            if(OIC_MANUFACTURER_CERTIFICATE == doxm->oxmSel)
+                            {
+#if defined(__WITH_DTLS__) || defined(__WITH_TLS__)
+                                if(CA_STATUS_OK != CAregisterPskCredentialsHandler(GetDtlsPskCredentials))
+                                {
+                                    OIC_LOG(ERROR, TAG, "Failed to revert TLS credential handler.");
+                                    ret = OC_EH_ERROR;
+                                    break;
+                                }
+#endif // __WITH_DTLS__ or __WITH_TLS__
+                             }
+                         }
                         //Select cipher suite to use owner PSK
                         if(CA_STATUS_OK != CAEnableAnonECDHCipherSuite(false))
                         {
@@ -2346,8 +2377,11 @@ exit:
 OCStackResult DeInitCredResource()
 {
     OCStackResult result = OCDeleteResource(gCredHandle);
-    DeleteCredList(gCred);
-    gCred = NULL;
+    gCredHandle = NULL;
+    if(gCred){
+        DeleteCredList(gCred);
+        gCred = NULL;
+    }
     return result;
 }