From: TaeminYeom Date: Mon, 28 Feb 2022 08:14:44 +0000 (+0900) Subject: Fix error in sensor cache X-Git-Tag: submit/tizen/20220310.052015~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=192f18f3930bff141444a68af32239f62c1b0bb7;p=platform%2Fcore%2Fsystem%2Fsensord.git Fix error in sensor cache -Add error handling when there is no data -Change to clear sensor data cache after getting cache data Change-Id: I5967fe57298e7f90b9493a0f9e56eaec8778efbf Signed-off-by: TaeminYeom --- diff --git a/src/client/sensor_listener.cpp b/src/client/sensor_listener.cpp index 12e2d995..ad5be482 100644 --- a/src/client/sensor_listener.cpp +++ b/src/client/sensor_listener.cpp @@ -649,14 +649,17 @@ int sensor_listener::get_sensor_data(sensor_data_t *data) m_cmd_channel->send_sync(msg); m_cmd_channel->read_sync(reply); + if (reply.header()->err < 0) { + return OP_ERROR; + } + reply.disclose((char *)&buf, sizeof(buf)); int size = sizeof(sensor_data_t); - if (buf.len > size || buf.len < 0) { + if (buf.len > size || buf.len <= 0) { data->accuracy = -1; data->value_count = 0; - /* TODO: it should return OP_ERROR */ - return OP_SUCCESS; + return OP_ERROR; } memcpy(data, &buf.data, buf.len); diff --git a/src/server/sensor_handler.cpp b/src/server/sensor_handler.cpp index 6c1de449..dee6b974 100644 --- a/src/server/sensor_handler.cpp +++ b/src/server/sensor_handler.cpp @@ -125,6 +125,7 @@ int sensor_handler::get_cache(sensor_data_t **data, int *len) *len = size; *data = (sensor_data_t *)temp; + m_sensor_data_cache.clear(); return 0; }