(Bug IOT-126) Calling OCCancel should result in deleting all
associated structures including callbacks. This also should
happen when we deregister observation.
Change-Id: I34dd67288873ce27919a12a1d5fe244ef80751b7
Signed-off-by: Yamin Al-Mousa <yamin.s.al-mousa@intel.com>
(cherry picked from commit
bd3dd4b91f1bca31402240052199f2557ad1d055)
Reviewed-on: https://gerrit.iotivity.org/gerrit/202
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Sudarshan Prasad <sudarshan.prasad@intel.com>
if(eCode == SUCCESS_RESPONSE)
{
std::cout << "OBSERVE RESULT:"<<std::endl;
- if(sequenceNumber == 0)
+ if(sequenceNumber == (int) ObserveAction::ObserveRegister)
{
std::cout << "\tObserve Registration Confirmed: "<< endl;
}
- else if (sequenceNumber == 1)
+ else if (sequenceNumber == (int) ObserveAction::ObserveUnregister)
{
std::cout << "\tObserve Cancel Confirmed: "<< endl;
sleep(10);
OCRepresentation attrs;
HeaderOptions serverHeaderOptions;
uint32_t sequenceNumber = clientResponse->sequenceNumber;
-
if(clientResponse->result == OC_STACK_OK)
{
parseServerHeaderOptions(clientResponse, serverHeaderOptions);
std::thread exec(context->callback, serverHeaderOptions, attrs,
clientResponse->result, sequenceNumber);
exec.detach();
+ if(sequenceNumber == OC_OBSERVE_DEREGISTER)
+ {
+ return OC_STACK_DELETE_TRANSACTION;
+ }
return OC_STACK_KEEP_TRANSACTION;
}