From: kibak.yoon Date: Fri, 18 Dec 2015 10:29:33 +0000 (+0900) Subject: sensord: add checking code whether socket is valid or not X-Git-Tag: submit/tizen/20151218.121039^2~4^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6b3026329d731d869f779187b6ef076c94f2f37b;p=platform%2Fcore%2Fsystem%2Fsensord.git sensord: add checking code whether socket is valid or not Change-Id: I666e46a69e23e1471b92764917612ef77baf4656 Signed-off-by: kibak.yoon --- 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()) {