From 512d5a42ffb1328d30ef99620b5fdcc33c4e5532 Mon Sep 17 00:00:00 2001 From: Jongmin Choi Date: Thu, 1 Dec 2016 16:23:05 +0900 Subject: [PATCH] Handle Error during Ownership Transfer If an error is returned during ownership transfer, on-boarding tool needs to remove the server's information from PDM DB and close secure connection with the server. Patch #1: Initial patch Patch #2: Change Log Level Change-Id: I641529552de0e25438bd94da9b2ec45320428a61 Signed-off-by: Jongmin Choi Reviewed-on: https://gerrit.iotivity.org/gerrit/14999 Reviewed-by: Chul Lee Tested-by: jenkins-iotivity Reviewed-by: Jongsung Lee Reviewed-by: Randeep Singh (cherry picked from commit ca6799753d9ce26f42b69af30f39548cf99b990f) Reviewed-on: https://gerrit.iotivity.org/gerrit/15021 --- .../csdk/security/provisioning/src/ownershiptransfermanager.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/resource/csdk/security/provisioning/src/ownershiptransfermanager.c b/resource/csdk/security/provisioning/src/ownershiptransfermanager.c index 8a80358..36f88f5 100644 --- a/resource/csdk/security/provisioning/src/ownershiptransfermanager.c +++ b/resource/csdk/security/provisioning/src/ownershiptransfermanager.c @@ -372,6 +372,16 @@ static void SetResult(OTMContext_t* otmCtx, const OCStackResult res) if(OC_STACK_OK != res && OC_STACK_CONTINUE != res && OC_STACK_DUPLICATE_REQUEST != res) { otmCtx->ctxHasError = true; + if (OC_STACK_OK != PDMDeleteDevice(&otmCtx->ctxResultArray[i].deviceId)) + { + OIC_LOG(WARNING, TAG, "Internal error in PDMDeleteDevice"); + } + CAEndpoint_t* endpoint = (CAEndpoint_t *)&otmCtx->selectedDeviceInfo->endpoint; + endpoint->port = otmCtx->selectedDeviceInfo->securePort; + if (CA_STATUS_OK != CAcloseSslConnection(endpoint)) + { + OIC_LOG(WARNING, TAG, "Failed to close Secure session"); + } } } } -- 2.7.4