From: Lukasz Bardeli Date: Thu, 10 May 2018 06:43:35 +0000 (+0200) Subject: [Iotcon] Prevent iotcon from call timeout after found resource X-Git-Tag: submit/tizen_3.0/20180518.115137~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bb922e7477cb08f24622e3ae2edc86f774c0ab64;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Iotcon] Prevent iotcon from call timeout after found resource In ResourceFoundCallback after some resource was found, timeout will never be called. [Verification] Code compiles without error. TCT tests passrate 100% Change-Id: I96ca592eb94e14c374b6eab99ca1956108f37154 Signed-off-by: Lukasz Bardeli --- diff --git a/src/iotcon/iotcon_instance.cc b/src/iotcon/iotcon_instance.cc index 705fb1f5..6bc88a8f 100644 --- a/src/iotcon/iotcon_instance.cc +++ b/src/iotcon/iotcon_instance.cc @@ -40,8 +40,10 @@ const std::string kPrivilegeIotcon = "http://tizen.org/privilege/internet"; struct CallbackData { common::PostCallback fun; + bool was_called; CallbackData(common::PostCallback f) { fun = f; + was_called = false; } }; @@ -1305,10 +1307,16 @@ bool IotconInstance::ResourceFoundCallback(iotcon_remote_resource_h resource, io common::TizenResult ret = common::TizenSuccess(); switch (result) { case IOTCON_ERROR_NONE: + // Mark that this callback was called at leas once (some resource was found) + data->was_called = true; ret = IotconUtils::RemoteResourceToJson(resource, &v.get()); break; case IOTCON_ERROR_TIMEOUT: LoggerD("IOTCON_TIMEOUT"); + // if TIMEOUT was called after some resource was found then do not call errorCallback + if (data->was_called) { + return IOTCON_FUNC_STOP; + } default: ret = IotconUtils::ConvertIotconError(result); }