From 0577d1432e6ee30aad229c426401d3d35c2b724e Mon Sep 17 00:00:00 2001 From: Heewon Park Date: Wed, 3 Aug 2016 18:20:34 +0900 Subject: [PATCH] fixed bug. - when the security provisioning failed, devUUID which is using for callback is set nullptr. so ouccured some bug. Change-Id: I9ddd7617c349ebbca5750125e5c94f382881b193 Signed-off-by: Heewon Park Reviewed-on: https://gerrit.iotivity.org/gerrit/9941 Tested-by: jenkins-iotivity Reviewed-by: Madan Lanka --- service/easy-setup/inc/escommon.h | 3 ++- service/easy-setup/mediator/richsdk/inc/EnrolleeSecurity.h | 2 +- service/easy-setup/mediator/richsdk/src/EnrolleeSecurity.cpp | 5 +++++ service/easy-setup/mediator/richsdk/src/RemoteEnrollee.cpp | 8 +++++--- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/service/easy-setup/inc/escommon.h b/service/easy-setup/inc/escommon.h index 9eb03d9..1aa1a3a 100755 --- a/service/easy-setup/inc/escommon.h +++ b/service/easy-setup/inc/escommon.h @@ -139,7 +139,8 @@ typedef enum ES_RECVREQOFNETRES, ES_RECVUPDATEOFPROVRES, ES_RECVTRIGGEROFPROVRES, - ES_UNAUTHORIZED = 31 + ES_UNAUTHORIZED = 31, + ES_UNSUPPORTED_OPERATION = 41 } ESResult; /** diff --git a/service/easy-setup/mediator/richsdk/inc/EnrolleeSecurity.h b/service/easy-setup/mediator/richsdk/inc/EnrolleeSecurity.h index 1559fa3..4375810 100755 --- a/service/easy-setup/mediator/richsdk/inc/EnrolleeSecurity.h +++ b/service/easy-setup/mediator/richsdk/inc/EnrolleeSecurity.h @@ -52,6 +52,7 @@ namespace OIC SecurityPinCb securityPinCb, SecProvisioningDbPathCb secProvisioningDbPathCb); void performOwnershipTransfer(); ESResult performACLProvisioningForCloudServer(std::string cloudUuid); + std::string getUUID() const; private: std::shared_ptr< OC::OCResource > m_ocResource; @@ -65,7 +66,6 @@ namespace OIC bool aclResult; std::shared_ptr< OC::OCSecureResource > m_securedResource; - std::shared_ptr< OC::OCSecureResource > getEnrollee(OC::DeviceList_t &list); void ownershipTransferCb(OC::PMResultList_t *result, int hasError); void convertUUIDToString(OicUuid_t uuid, std::string& uuidString); diff --git a/service/easy-setup/mediator/richsdk/src/EnrolleeSecurity.cpp b/service/easy-setup/mediator/richsdk/src/EnrolleeSecurity.cpp index 97fd68c..f6a76a5 100755 --- a/service/easy-setup/mediator/richsdk/src/EnrolleeSecurity.cpp +++ b/service/easy-setup/mediator/richsdk/src/EnrolleeSecurity.cpp @@ -311,6 +311,11 @@ namespace OIC return res; } + std::string EnrolleeSecurity::getUUID() const + { + return m_ocResource->sid(); + }; + OicSecAcl_t* EnrolleeSecurity::createAcl(OicUuid_t cloudUuid) { // allocate memory for |acl| struct diff --git a/service/easy-setup/mediator/richsdk/src/RemoteEnrollee.cpp b/service/easy-setup/mediator/richsdk/src/RemoteEnrollee.cpp index 73cef4d..0bb5b93 100755 --- a/service/easy-setup/mediator/richsdk/src/RemoteEnrollee.cpp +++ b/service/easy-setup/mediator/richsdk/src/RemoteEnrollee.cpp @@ -244,8 +244,9 @@ namespace OIC "Exception for performOwnershipTransfer : %s", e.what()); OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Fail performOwnershipTransfer"); - std::shared_ptr< SecProvisioningStatus > securityProvisioningStatus = - std::make_shared< SecProvisioningStatus >(nullptr, ES_ERROR); + std::shared_ptr< SecProvisioningStatus > securityProvisioningStatus = + std::make_shared< SecProvisioningStatus > + (m_enrolleeSecurity->getUUID(), ES_ERROR); m_securityProvStatusCb(securityProvisioningStatus); return ; } @@ -253,7 +254,8 @@ namespace OIC OIC_LOG(DEBUG,ES_REMOTE_ENROLLEE_TAG,"Mediator is unsecured."); std::shared_ptr< SecProvisioningStatus > securityProvisioningStatus = - std::make_shared< SecProvisioningStatus >(nullptr, ES_ERROR); + std::make_shared< SecProvisioningStatus > + ("", ES_UNSUPPORTED_OPERATION); m_securityProvStatusCb(securityProvisioningStatus); #endif } -- 2.7.4