From 5b24b2cd7572d6b7dffa9836e888086de1e7234d Mon Sep 17 00:00:00 2001 From: Jaehong Jo Date: Thu, 7 Jul 2016 21:47:53 +0900 Subject: [PATCH] [IOT-1185] Add OCResultToSuccess to ensure success. If just check only OC_STACK_OK, it can cause problems. Below value is success like OC_STACK_OK. OC_STACK_RESOURCE_CREATED, OC_STACK_RESOURCE_DELETED, OC_STACK_CONTINUE. BUG : https://jira.iotivity.org/browse/IOT-1185 Change-Id: I60b369138df00b98c4dbeb952ffba140aa902b27 Signed-off-by: Jaehong Jo Reviewed-on: https://gerrit.iotivity.org/gerrit/9217 Reviewed-by: Hyuna Jo Tested-by: jenkins-iotivity Reviewed-by: Randeep Singh --- resource/csdk/stack/include/internal/ocstackinternal.h | 8 ++++++++ resource/csdk/stack/src/ocstack.c | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/resource/csdk/stack/include/internal/ocstackinternal.h b/resource/csdk/stack/include/internal/ocstackinternal.h index 678618c..241f588 100644 --- a/resource/csdk/stack/include/internal/ocstackinternal.h +++ b/resource/csdk/stack/include/internal/ocstackinternal.h @@ -266,6 +266,14 @@ OCStackResult BindResourceTypeToResource(OCResource* resource, OCStackResult CAResultToOCResult(CAResult_t caResult); /** + * Converts a OCStackResult type to a bool type. + * + * @param ocResult OCStackResult value to convert. + * @return true on success, false upon failure. + */ +bool OCResultToSuccess(OCStackResult ocResult); + +/** * Map OCQualityOfService to CAMessageType. * * @param qos Input qos. diff --git a/resource/csdk/stack/src/ocstack.c b/resource/csdk/stack/src/ocstack.c index 046a5fe..1b06e18 100644 --- a/resource/csdk/stack/src/ocstack.c +++ b/resource/csdk/stack/src/ocstack.c @@ -1843,7 +1843,7 @@ void OCHandleRequests(const CAEndpoint_t* endPoint, const CARequestInfo_t* reque CA_MSG_ACKNOWLEDGE,0, NULL, NULL, 0, NULL); } } - else if(requestResult != OC_STACK_OK) + else if(!OCResultToSuccess(requestResult)) { OIC_LOG_V(ERROR, TAG, "HandleStackRequests failed. error: %d", requestResult); @@ -4619,3 +4619,17 @@ OCStackResult CAResultToOCResult(CAResult_t caResult) return OC_STACK_ERROR; } } + +bool OCResultToSuccess(OCStackResult ocResult) +{ + switch (ocResult) + { + case OC_STACK_OK: + case OC_STACK_RESOURCE_CREATED: + case OC_STACK_RESOURCE_DELETED: + case OC_STACK_CONTINUE: + return true; + default: + return false; + } +} -- 2.7.4