From bb922e7477cb08f24622e3ae2edc86f774c0ab64 Mon Sep 17 00:00:00 2001 From: Lukasz Bardeli Date: Thu, 10 May 2018 08:43:35 +0200 Subject: [PATCH] [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 --- src/iotcon/iotcon_instance.cc | 8 ++++++++ 1 file changed, 8 insertions(+) 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); } -- 2.34.1