Changed the /oic/ping resource registration condition
authorhyuna0213.jo <hyuna0213.jo@samsung.com>
Mon, 7 Mar 2016 06:35:36 +0000 (15:35 +0900)
committerJee Hyeok Kim <jihyeok13.kim@samsung.com>
Fri, 11 Mar 2016 02:19:53 +0000 (02:19 +0000)
In order to register /oic/ping resource in case host is not client,
I modified the keepalive init/terminate logic.

Change-Id: I29c42249b5af9363517bde971b74e8f80e8fbaa4
Signed-off-by: hyuna0213.jo <hyuna0213.jo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/5571
Reviewed-by: Phil Coval <philippe.coval@osg.samsung.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: jihwan seo <jihwan.seo@samsung.com>
Reviewed-by: Jee Hyeok Kim <jihyeok13.kim@samsung.com>
resource/csdk/stack/include/internal/oickeepalive.h
resource/csdk/stack/src/ocstack.c
resource/csdk/stack/src/oickeepalive.c

index 24fe755..c6a4d02 100644 (file)
@@ -54,15 +54,17 @@ extern "C"
 
 /**
  * Initialize the KeepAlive.
+ * @param[in]   mode        Host mode of operation.
  * @return  ::OC_STACK_OK or Appropriate error code.
  */
-OCStackResult InitializeKeepAlive();
+OCStackResult InitializeKeepAlive(OCMode mode);
 
 /**
  * Terminates the KeepAlive.
+ * @param[in]   mode        Host mode of operation.
  * @return  ::OC_STACK_OK or Appropriate error code.
  */
-OCStackResult TerminateKeepAlive();
+OCStackResult TerminateKeepAlive(OCMode mode);
 
 /**
  * Process the KeepAlive timer to send ping message to OIC Server.
index 4d74cb2..d55baf6 100644 (file)
@@ -2063,7 +2063,7 @@ OCStackResult OCInit1(OCMode mode, OCTransportFlags serverFlags, OCTransportFlag
 #ifdef TCP_ADAPTER
     if(result == OC_STACK_OK)
     {
-        result = InitializeKeepAlive();
+        result = InitializeKeepAlive(myStackMode);
     }
 #endif
 
@@ -2109,7 +2109,7 @@ OCStackResult OCStop()
 #endif
 
 #ifdef TCP_ADAPTER
-    TerminateKeepAlive();
+    TerminateKeepAlive(myStackMode);
 #endif
 
     // Free memory dynamically allocated for resources
index 6866342..14b8f0b 100644 (file)
@@ -207,7 +207,7 @@ KeepAliveEntry_t *AddKeepAliveEntry(const CAEndpoint_t *endpoint, OCMode mode,
  */
 static OCStackResult RemoveKeepAliveEntry(const CAEndpoint_t *endpoint);
 
-OCStackResult InitializeKeepAlive()
+OCStackResult InitializeKeepAlive(OCMode mode)
 {
     OIC_LOG(DEBUG, TAG, "InitializeKeepAlive IN");
     if (g_isKeepAliveInitialized)
@@ -216,12 +216,15 @@ OCStackResult InitializeKeepAlive()
         return OC_STACK_OK;
     }
 
-    // Create the KeepAlive Resource[/oic/ping].
-    OCStackResult result = CreateKeepAliveResource();
-    if (OC_STACK_OK != result)
+    if (OC_CLIENT != mode)
     {
-        OIC_LOG_V(ERROR, TAG, "CreateKeepAliveResource failed[%d]", result);
-        return result;
+        // Create the KeepAlive Resource[/oic/ping].
+        OCStackResult result = CreateKeepAliveResource();
+        if (OC_STACK_OK != result)
+        {
+            OIC_LOG_V(ERROR, TAG, "CreateKeepAliveResource failed[%d]", result);
+            return result;
+        }
     }
 
     if (!g_keepAliveConnectionTable)
@@ -230,7 +233,7 @@ OCStackResult InitializeKeepAlive()
         if (NULL == g_keepAliveConnectionTable)
         {
             OIC_LOG(ERROR, TAG, "Creating KeepAlive Table failed");
-            TerminateKeepAlive();
+            TerminateKeepAlive(mode);
             return OC_STACK_ERROR;
         }
     }
@@ -241,7 +244,7 @@ OCStackResult InitializeKeepAlive()
     return OC_STACK_OK;
 }
 
-OCStackResult TerminateKeepAlive()
+OCStackResult TerminateKeepAlive(OCMode mode)
 {
     OIC_LOG(DEBUG, TAG, "TerminateKeepAlive IN");
     if (!g_isKeepAliveInitialized)
@@ -250,12 +253,15 @@ OCStackResult TerminateKeepAlive()
         return OC_STACK_ERROR;
     }
 
-    // Delete the KeepAlive Resource[/oic/ping].
-    OCStackResult result = DeleteKeepAliveResource();
-    if (OC_STACK_OK != result)
+    if (OC_CLIENT != mode)
     {
-        OIC_LOG_V(ERROR, TAG, "DeleteKeepAliveResource failed[%d]", result);
-        return result;
+        // Delete the KeepAlive Resource[/oic/ping].
+        OCStackResult result = DeleteKeepAliveResource();
+        if (OC_STACK_OK != result)
+        {
+            OIC_LOG_V(ERROR, TAG, "DeleteKeepAliveResource failed[%d]", result);
+            return result;
+        }
     }
 
     if (NULL != g_keepAliveConnectionTable)