From 9c22915b88346745771ee0b0b37561d5285ae354 Mon Sep 17 00:00:00 2001 From: "hyuna0213.jo" Date: Fri, 11 Mar 2016 18:17:28 +0900 Subject: [PATCH] Changed the /oic/ping resource registration condition. In order to register /oic/ping resource in case host is not client, I modified the keepalive init/terminate logic. Signed-off-by: hyuna0213.jo Reviewed-on: https://gerrit.iotivity.org/gerrit/5571 Reviewed-by: Phil Coval Tested-by: jenkins-iotivity Reviewed-by: jihwan seo Reviewed-by: Jee Hyeok Kim (cherry picked from commit 47c277017baf1e4bed04f2b84132b2cc87bdfcfa) Change-Id: I4a47b4576408a09a1e97a3c8eeb04ba089a3c760 Signed-off-by: hyuna0213.jo Reviewed-on: https://gerrit.iotivity.org/gerrit/5739 Tested-by: jenkins-iotivity Reviewed-by: Jaehong Jo Reviewed-by: Jon A. Cruz --- .../csdk/stack/include/internal/oickeepalive.h | 6 ++-- resource/csdk/stack/src/ocstack.c | 6 ++-- resource/csdk/stack/src/oickeepalive.c | 32 +++++++++++++--------- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/resource/csdk/stack/include/internal/oickeepalive.h b/resource/csdk/stack/include/internal/oickeepalive.h index 24fe755..c6a4d02 100644 --- a/resource/csdk/stack/include/internal/oickeepalive.h +++ b/resource/csdk/stack/include/internal/oickeepalive.h @@ -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. diff --git a/resource/csdk/stack/src/ocstack.c b/resource/csdk/stack/src/ocstack.c index 217c82c..1302699 100644 --- a/resource/csdk/stack/src/ocstack.c +++ b/resource/csdk/stack/src/ocstack.c @@ -2061,9 +2061,9 @@ OCStackResult OCInit1(OCMode mode, OCTransportFlags serverFlags, OCTransportFlag #endif #ifdef TCP_ADAPTER - if(result == OC_STACK_OK) + 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 diff --git a/resource/csdk/stack/src/oickeepalive.c b/resource/csdk/stack/src/oickeepalive.c index 6866342..14b8f0b 100644 --- a/resource/csdk/stack/src/oickeepalive.c +++ b/resource/csdk/stack/src/oickeepalive.c @@ -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) -- 2.7.4