From: Suyeon Hwang Date: Mon, 22 Jan 2018 11:35:42 +0000 (+0900) Subject: Move adding match rule code X-Git-Tag: accepted/tizen/unified/20180228.071746~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3d18b21c01b9a1158645f76895e4259e98a4d977;p=platform%2Fcore%2Fuifw%2Fvoice-control.git Move adding match rule code Change-Id: I56713583b07392fbdcb5926f0a805c21a4fd736e Signed-off-by: Suyeon Hwang (cherry picked from commit 4890129b35545db17e2ebf5e84490d8248a21e09) --- diff --git a/client/vc.c b/client/vc.c index da52879..9cfc04b 100644 --- a/client/vc.c +++ b/client/vc.c @@ -1631,8 +1631,11 @@ int __vc_cb_error(int reason, int daemon_pid, char* msg) /* check state */ if (state != VC_STATE_READY) { - SLOG(LOG_ERROR, TAG_VCC, "[ERROR] not connected client yet"); - return -1; + if (VC_ERROR_SERVICE_RESET != reason) { + SLOG(LOG_ERROR, TAG_VCC, "[ERROR] not connected client yet"); + return -1; + } + return 0; } if (VC_ERROR_SERVICE_RESET == reason) { diff --git a/client/vc_dbus.c b/client/vc_dbus.c index c8d3937..7bc8cef 100644 --- a/client/vc_dbus.c +++ b/client/vc_dbus.c @@ -272,8 +272,8 @@ int vc_dbus_open_connection() return 0; } - char rule[128] = {0, }; - snprintf(rule, 128, "type='signal',interface='%s'", VC_CLIENT_SERVICE_INTERFACE); + char rule[256] = {0, }; + snprintf(rule, 256, "type='signal',interface='%s'", VC_CLIENT_SERVICE_INTERFACE); /* add a rule for which messages we want to see */ dbus_bus_add_match(g_conn_listener, rule, &err); @@ -286,6 +286,18 @@ int vc_dbus_open_connection() return VC_ERROR_OPERATION_FAILED; } + /* add a rule for daemon error */ + snprintf(rule, 256, "sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',type='signal',arg0='%s'", VC_SERVER_SERVICE_INTERFACE); + dbus_bus_add_match(g_conn_listener, rule, &err); + dbus_connection_flush(g_conn_listener); + + if (dbus_error_is_set(&err)) { + SLOG(LOG_ERROR, TAG_VCC, "Match Error (%s)", err.message); + dbus_error_free(&err); + __vc_dbus_connection_free(); + return VC_ERROR_OPERATION_FAILED; + } + int fd = 0; if (1 != dbus_connection_get_unix_fd(g_conn_listener, &fd)) { SLOG(LOG_ERROR, TAG_VCC, "fail to get fd from dbus "); @@ -485,18 +497,6 @@ int vc_dbus_request_initialize(int pid, int* mgr_pid, int* service_state, int* d *service_state = tmp_service_state; *daemon_pid = tmp_daemon_pid; - /* add a rule for daemon error */ - char rule_err[256] = {0, }; - snprintf(rule_err, 256, "sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',type='signal',arg0='%s'", VC_SERVER_SERVICE_INTERFACE); - dbus_bus_add_match(g_conn_listener, rule_err, &err); - dbus_connection_flush(g_conn_listener); - - if (dbus_error_is_set(&err)) { - SLOG(LOG_ERROR, TAG_VCC, "Match Error (%s)", err.message); - dbus_error_free(&err); - return VC_ERROR_OPERATION_FAILED; - } - SLOG(LOG_DEBUG, TAG_VCC, "@@ vc initialize : result = %d mgr = %d service = %d daemon_pid = %d", result, *mgr_pid, *service_state, *daemon_pid); } else { SLOG(LOG_ERROR, TAG_VCC, "@@ vc initialize : result = %d", result);