From 6b3026329d731d869f779187b6ef076c94f2f37b Mon Sep 17 00:00:00 2001 From: "kibak.yoon" Date: Fri, 18 Dec 2015 19:29:33 +0900 Subject: [PATCH] sensord: add checking code whether socket is valid or not Change-Id: I666e46a69e23e1471b92764917612ef77baf4656 Signed-off-by: kibak.yoon --- src/client/csensor_event_listener.cpp | 5 ++++- src/server/csensor_event_dispatcher.cpp | 15 ++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/client/csensor_event_listener.cpp b/src/client/csensor_event_listener.cpp index aad9c89..8c298dc 100644 --- a/src/client/csensor_event_listener.cpp +++ b/src/client/csensor_event_listener.cpp @@ -464,7 +464,10 @@ bool csensor_event_listener::create_event_channel(void) return false; } - m_event_socket.set_connection_mode(); + if (!m_event_socket.set_connection_mode()) { + ERR("Failed to set connection mode for client %s", get_client_name()); + return false; + } client_id = m_client_info.get_client_id(); diff --git a/src/server/csensor_event_dispatcher.cpp b/src/server/csensor_event_dispatcher.cpp index 605b9e7..970d776 100755 --- a/src/server/csensor_event_dispatcher.cpp +++ b/src/server/csensor_event_dispatcher.cpp @@ -222,11 +222,13 @@ void csensor_event_dispatcher::send_sensor_events(void* events, int event_cnt, b while (it_client_id != id_vec.end()) { csocket client_socket; - - client_info_manager.get_event_socket(*it_client_id, client_socket); - bool ret; + if (!client_info_manager.get_event_socket(*it_client_id, client_socket)) { + ++it_client_id; + continue; + } + if (is_hub_event) ret = (client_socket.send(sensor_hub_events + i, sizeof(sensorhub_event_t)) > 0); else @@ -240,7 +242,6 @@ void csensor_event_dispatcher::send_sensor_events(void* events, int event_cnt, b ++it_client_id; } } - } cclient_info_manager& csensor_event_dispatcher::get_client_info_manager(void) @@ -311,7 +312,11 @@ void csensor_event_dispatcher::request_last_event(int client_id, sensor_id_t sen csocket client_socket; if (client_info_manager.get_registered_events(client_id, sensor_id, event_vec)) { - client_info_manager.get_event_socket(client_id, client_socket); + if (!client_info_manager.get_event_socket(client_id, client_socket)) { + ERR("Failed to get event socket from %s", + client_info_manager.get_client_info(client_id)); + return; + } auto it_event = event_vec.begin(); while (it_event != event_vec.end()) { -- 2.7.4