[IOT-3022] Add cloud reset api 15/25315/4
authorAleksey Volkov <a.volkov@samsung.com>
Fri, 11 May 2018 10:01:07 +0000 (13:01 +0300)
committerNathan Heldt-Sheller <nathan.heldt-sheller@intel.com>
Wed, 30 May 2018 15:45:24 +0000 (15:45 +0000)
Change-Id: I40a9b3c3f89894e92c75c798e918f1713e9e6740
Signed-off-by: Aleksey Volkov <a.volkov@samsung.com>
resource/csdk/security/provisioning/include/cloud/cloudresource.h
resource/csdk/security/provisioning/src/cloud/cloudresource.c
resource/csdk/security/provisioning/unittest/cloudresource.cpp

index ede0455..7c750a8 100644 (file)
@@ -56,9 +56,15 @@ OCStackResult CreateCloudResource();
 bool UpdateCloudPersistentStorage();
 
 /**
-* SignOut clouds
+* SignOut & release clouds
 */
 void StopClouds();
+
+/**
+* Release cloud entries
+*/
+void ResetClouds();
+
 /**
 * Delete clouds acount
 */
index 91b9125..cfbb375 100644 (file)
@@ -66,7 +66,7 @@ static OicCloud_t gDefaultCloud =
     NULL
 };
 
-static void DeleteCloudList(OicCloud_t *clouds)
+static void DeleteCloudList(OicCloud_t *clouds, bool signout)
 {
     OIC_LOG_V(DEBUG, TAG, "%s: IN", __func__);
 
@@ -80,7 +80,11 @@ static void DeleteCloudList(OicCloud_t *clouds)
     oc_mutex_lock(gCloudMutex);
     LL_FOREACH_SAFE(clouds, p1, p2)
     {
-        OCCloudSignOut(p1);
+        if (signout)
+        {
+            OCCloudSignOut(p1);
+        }
+        FreeCloud(p1);
         LL_DELETE(clouds, p1);
         p1 = NULL;
     }
@@ -91,7 +95,12 @@ static void DeleteCloudList(OicCloud_t *clouds)
 
 void StopClouds()
 {
-    DeleteCloudList(gCloud);
+    DeleteCloudList(gCloud, true);
+}
+
+void ResetClouds()
+{
+    DeleteCloudList(gCloud, false);
 }
 
 void DeleteCloudAccount()
@@ -577,7 +586,7 @@ OCStackResult DeInitCloudResource()
     OCStackResult ret = OCDeleteResource(gCloudHandle);
     if (gCloud  != &gDefaultCloud)
     {
-        DeleteCloudList(gCloud);
+        DeleteCloudList(gCloud, true);
     }
 
     oc_mutex_free(gCloudMutex);
index 94e66b0..6f6cb8c 100644 (file)
@@ -296,11 +296,11 @@ TEST(CloudResourceTest, ValidCloudFULL)
 
 TEST(CloudResourceTest, DeleteCloudListFULL)
 {
-    DeleteCloudList(NULL);
+    DeleteCloudList(NULL, true);
     OicCloud_t *cloud =  getCloud();
     cloud->next =  getCloud();
     cloud->next->next =  getCloud();
-    DeleteCloudList(cloud);
+    DeleteCloudList(cloud, true);
 }
 
 TEST(CloudResourceTest, CreateCloudGetPayloadFULL)
@@ -950,12 +950,12 @@ TEST(CloudResourceTest, handleCloudSignOutResponseFULL)
 
 TEST(CloudResourceTest, UpdateCloudPersistentStorageFULL)
 {
-    DeleteCloudList(gCloud);
+    DeleteCloudList(gCloud, true);
     ASSERT_TRUE(false == UpdateCloudPersistentStorage());
     OicCloud_t *cloud = getCloud();
     LL_APPEND(gCloud, cloud);
     ASSERT_TRUE(true == UpdateCloudPersistentStorage());
-    DeleteCloudList(gCloud);
+    DeleteCloudList(gCloud, true);
     gCloud = NULL;
 }