From: KIM JungYong Date: Mon, 12 Dec 2016 12:51:46 +0000 (+0900) Subject: [IOT-1665] Fix bug for invalid input of constructResourceObject() in RE layer. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e9ca9826f396ab49eca4ddb27d3b154604121e18;p=contrib%2Fiotivity.git [IOT-1665] Fix bug for invalid input of constructResourceObject() in RE layer. When RCSRemoteResourceObject::toOCResource() method called, inside RE layer, constructResourceObject() was called with invalid parameter on OCConnectityType. So, it is due to mismatch with response type and request type. the above result, ocstack layer couldn't parse payload. In this patch, fixed parameter for OCConnectityType is modified valid type. Change-Id: Ic924d9a892227377406e2b3ecfe666c41f1f0b04 Signed-off-by: KIM JungYong Reviewed-on: https://gerrit.iotivity.org/gerrit/15507 Reviewed-by: jihwan seo Tested-by: jenkins-iotivity Reviewed-by: Uze Choi (cherry picked from commit 51c33d5fc29083cfe17667f5cc33e4e82cd0a0f5) Reviewed-on: https://gerrit.iotivity.org/gerrit/15535 --- diff --git a/service/resource-encapsulation/src/common/primitiveResource/include/PrimitiveResource.h b/service/resource-encapsulation/src/common/primitiveResource/include/PrimitiveResource.h index 8ba772b..59409ea 100644 --- a/service/resource-encapsulation/src/common/primitiveResource/include/PrimitiveResource.h +++ b/service/resource-encapsulation/src/common/primitiveResource/include/PrimitiveResource.h @@ -91,6 +91,7 @@ namespace OIC virtual std::string getHost() const = 0; virtual std::vector< std::string > getTypes() const = 0; virtual std::vector< std::string > getInterfaces() const = 0; + virtual OCConnectivityType getConnectivityType() const = 0; virtual bool isObservable() const = 0; diff --git a/service/resource-encapsulation/src/common/primitiveResource/include/PrimitiveResourceImpl.h b/service/resource-encapsulation/src/common/primitiveResource/include/PrimitiveResourceImpl.h index b531b34..778a62a 100644 --- a/service/resource-encapsulation/src/common/primitiveResource/include/PrimitiveResourceImpl.h +++ b/service/resource-encapsulation/src/common/primitiveResource/include/PrimitiveResourceImpl.h @@ -211,6 +211,11 @@ namespace OIC return invokeOC(m_baseResource, &BaseResource::getResourceInterfaces); } + OCConnectivityType getConnectivityType() const + { + return invokeOC(m_baseResource, &BaseResource::connectivityType); + } + bool isObservable() const { return invokeOC(m_baseResource, &BaseResource::isObservable); diff --git a/service/resource-encapsulation/src/common/primitiveResource/unittests/PrimitiveResourceTest.cpp b/service/resource-encapsulation/src/common/primitiveResource/unittests/PrimitiveResourceTest.cpp index b1aa1a0..dcf5c3c 100644 --- a/service/resource-encapsulation/src/common/primitiveResource/unittests/PrimitiveResourceTest.cpp +++ b/service/resource-encapsulation/src/common/primitiveResource/unittests/PrimitiveResourceTest.cpp @@ -54,6 +54,7 @@ public: virtual std::string host() const = 0; virtual std::vector getResourceTypes() const = 0; virtual std::vector getResourceInterfaces() const = 0; + virtual OCConnectivityType connectivityType() const = 0; virtual bool isObservable() const = 0; }; diff --git a/service/resource-encapsulation/src/resourceClient/RCSRemoteResourceObject.cpp b/service/resource-encapsulation/src/resourceClient/RCSRemoteResourceObject.cpp index e909261..2f73a00 100644 --- a/service/resource-encapsulation/src/resourceClient/RCSRemoteResourceObject.cpp +++ b/service/resource-encapsulation/src/resourceClient/RCSRemoteResourceObject.cpp @@ -211,7 +211,7 @@ namespace OIC OC::OCResource::Ptr ocResource = OC::OCPlatform::constructResourceObject(rcsResource->getAddress(), rcsResource->getUri(), - CT_DEFAULT, + rcsResource->m_primitiveResource->getConnectivityType(), rcsResource->isObservable(), rcsResource->getTypes(), rcsResource->getInterfaces());