From 4965054665a3fa5f41c1b6b48dbaadf5ba84e947 Mon Sep 17 00:00:00 2001 From: "jihwan.seo" Date: Tue, 11 Apr 2017 14:34:41 +0900 Subject: [PATCH] connectivity: provide server unavailable error provide server unavailable error(503) value in ocstack Change-Id: Ica4956debfd8112f93beab4edd23a569ea5a3ad0 Signed-off-by: jihwan.seo Reviewed-on: https://gerrit.iotivity.org/gerrit/18679 Tested-by: jenkins-iotivity Reviewed-by: Jaehong Jo Reviewed-by: Dan Mihai (cherry picked from commit 1dcb85b9796760b7e18dfd62ca85614d4d784e40) Reviewed-on: https://gerrit.iotivity.org/gerrit/21139 --- resource/csdk/connectivity/api/cacommon.h | 1 + resource/csdk/connectivity/common/src/caremotehandler.c | 2 ++ resource/csdk/include/octypes.h | 1 + resource/csdk/stack/src/ocserverrequest.c | 3 +++ resource/csdk/stack/src/ocstack.c | 7 +++++++ 5 files changed, 14 insertions(+) diff --git a/resource/csdk/connectivity/api/cacommon.h b/resource/csdk/connectivity/api/cacommon.h index d62d2a8..a52326f 100644 --- a/resource/csdk/connectivity/api/cacommon.h +++ b/resource/csdk/connectivity/api/cacommon.h @@ -397,6 +397,7 @@ typedef enum CA_REQUEST_ENTITY_TOO_LARGE = 413, /**< Request Entity Too Large */ CA_INTERNAL_SERVER_ERROR = 500, /**< Internal Server Error */ CA_BAD_GATEWAY = 502, + CA_SERVICE_UNAVAILABLE = 503, /**< Server Unavailable */ CA_RETRANSMIT_TIMEOUT = 504, /**< Retransmit timeout */ CA_PROXY_NOT_SUPPORTED = 505 /**< Proxy not enabled to service a request */ /* Response status code - END HERE */ diff --git a/resource/csdk/connectivity/common/src/caremotehandler.c b/resource/csdk/connectivity/common/src/caremotehandler.c index 8ef9d52..5ff2b31 100644 --- a/resource/csdk/connectivity/common/src/caremotehandler.c +++ b/resource/csdk/connectivity/common/src/caremotehandler.c @@ -119,6 +119,8 @@ CAResponseInfo_t *CACloneResponseInfo(const CAResponseInfo_t *rep) case CA_REQUEST_ENTITY_INCOMPLETE: case CA_REQUEST_ENTITY_TOO_LARGE: case CA_INTERNAL_SERVER_ERROR: + case CA_BAD_GATEWAY: + case CA_SERVICE_UNAVAILABLE: case CA_RETRANSMIT_TIMEOUT: break; default: diff --git a/resource/csdk/include/octypes.h b/resource/csdk/include/octypes.h index a0733d4..36e4539 100644 --- a/resource/csdk/include/octypes.h +++ b/resource/csdk/include/octypes.h @@ -1133,6 +1133,7 @@ typedef enum OC_STACK_FORBIDDEN_REQ, /** 403*/ OC_STACK_INTERNAL_SERVER_ERROR, /** 500*/ OC_STACK_GATEWAY_TIMEOUT, /** 504*/ + OC_STACK_SERVICE_UNAVAILABLE, /** 503*/ /** ERROR in stack.*/ OC_STACK_ERROR = 255 diff --git a/resource/csdk/stack/src/ocserverrequest.c b/resource/csdk/stack/src/ocserverrequest.c index 38d65ae..cc28bdd 100644 --- a/resource/csdk/stack/src/ocserverrequest.c +++ b/resource/csdk/stack/src/ocserverrequest.c @@ -491,6 +491,9 @@ CAResponseResult_t ConvertEHResultToCAResult (OCEntityHandlerResult result, OCMe case OC_EH_INTERNAL_SERVER_ERROR: // 5.00 caResult = CA_INTERNAL_SERVER_ERROR; break; + case OC_EH_SERVICE_UNAVAILABLE: // 5.03 + caResult = CA_SERVICE_UNAVAILABLE; + break; case OC_EH_RETRANSMIT_TIMEOUT: // 5.04 caResult = CA_RETRANSMIT_TIMEOUT; break; diff --git a/resource/csdk/stack/src/ocstack.c b/resource/csdk/stack/src/ocstack.c index 4e081df..2fabe85 100644 --- a/resource/csdk/stack/src/ocstack.c +++ b/resource/csdk/stack/src/ocstack.c @@ -864,6 +864,9 @@ OCStackResult CAResponseToOCStackResult(CAResponseResult_t caCode) case CA_INTERNAL_SERVER_ERROR: ret = OC_STACK_INTERNAL_SERVER_ERROR; break; + case CA_SERVICE_UNAVAILABLE: + ret = OC_STACK_SERVICE_UNAVAILABLE; + break; default: break; } @@ -936,6 +939,10 @@ CAResponseResult_t OCToCAStackResult(OCStackResult ocCode, OCMethod method) break; case OC_STACK_BAD_ENDPOINT: ret = CA_BAD_REQ; + break; + case OC_STACK_SERVICE_UNAVAILABLE: + ret = CA_SERVICE_UNAVAILABLE; + break; default: break; } -- 2.7.4