[IOT-3022] Plugfest hotfix 4 75/24775/3
authorAleksey Volkov <a.volkov@samsung.com>
Tue, 17 Apr 2018 13:28:52 +0000 (16:28 +0300)
committerAleksey Volkov <a.volkov@samsung.com>
Fri, 20 Apr 2018 07:11:48 +0000 (07:11 +0000)
-- return empty filled response from /oic/cloudconf in case if cloud data is not provisioned
-- add rt and if fields to the RETRIEVE response payload

Change-Id: I37adc9b039e1ab9377b8024552eee4fb1e3ed1ab
Signed-off-by: Aleksey Volkov <a.volkov@samsung.com>
resource/csdk/security/provisioning/src/cloud/cloudresource.c

index f283b3e..53be093 100644 (file)
@@ -246,12 +246,24 @@ OCRepPayload *CreateCloudGetPayload(const OicCloud_t *cloud)
     payload = OCRepPayloadCreate();
     VERIFY_NOT_NULL(TAG, payload, ERROR);
 
-    VERIFY_NOT_NULL_RETURN(TAG, cloud, WARNING, payload);
+    OCRepPayloadAddInterface(payload, OC_RSRVD_INTERFACE_DEFAULT);
+    OCRepPayloadAddResourceType(payload, OIC_RSRC_TYPE_SEC_CLOUDCONF);
 
-    OCRepPayloadSetPropString(payload, OIC_JSON_CLOUD_APN, cloud->apn);
-    OCRepPayloadSetPropString(payload, OIC_JSON_CLOUD_CIS, cloud->cis);
-    OCRepPayloadSetPropString(payload, OIC_JSON_CLOUD_SID, cloud->sid);
-    OCRepPayloadSetPropInt(payload, OIC_JSON_CLOUD_CLEC, (int64_t)cloud->stat);
+    if (NULL == cloud)
+    {
+        OIC_LOG_V(DEBUG, TAG, "%s: Create empty payload", __func__);
+        OCRepPayloadSetPropString(payload, OIC_JSON_CLOUD_APN, "");
+        OCRepPayloadSetPropString(payload, OIC_JSON_CLOUD_CIS, "");
+        OCRepPayloadSetPropString(payload, OIC_JSON_CLOUD_SID, "00000000-0000-0000-0000-000000000000");
+        OCRepPayloadSetPropInt(payload, OIC_JSON_CLOUD_CLEC, (int64_t)0);
+    }
+    else
+    {
+        OCRepPayloadSetPropString(payload, OIC_JSON_CLOUD_APN, cloud->apn);
+        OCRepPayloadSetPropString(payload, OIC_JSON_CLOUD_CIS, cloud->cis);
+        OCRepPayloadSetPropString(payload, OIC_JSON_CLOUD_SID, cloud->sid);
+        OCRepPayloadSetPropInt(payload, OIC_JSON_CLOUD_CLEC, (int64_t)cloud->stat);
+    }
 
 exit:
     OIC_LOG_V(DEBUG, TAG, "%s: OUT", __func__);
@@ -269,7 +281,6 @@ static OCEntityHandlerResult HandleCloudGetRequest(OCEntityHandlerRequest *ehReq
     OCEntityHandlerResponse response;
 
     VERIFY_NOT_NULL(TAG, ehRequest, ERROR);
-    VERIFY_NOT_NULL(TAG, gCloud, ERROR);
 
     OCGetDeviceOwnedState(&isDeviceOwned);
 
@@ -280,6 +291,12 @@ static OCEntityHandlerResult HandleCloudGetRequest(OCEntityHandlerRequest *ehReq
         goto exit;
     }
 
+    if (NULL == gCloud)
+    {
+        ehRet = OC_EH_OK;
+        goto exit;
+    }
+
     cloud = (OicCloud_t *) OICCalloc(1, sizeof(OicCloud_t));
     VERIFY_NOT_NULL(TAG, cloud, ERROR);
 
@@ -396,7 +413,10 @@ exit:
         ehRet = OC_EH_ERROR;
     }
 
-    FreeCloud(cloud);
+    if (cloud)
+    {
+        FreeCloud(cloud);
+    }
 
     OIC_LOG_V(DEBUG, TAG, "%s: OUT", __func__);