From: sooyeon.kim Date: Wed, 18 Jan 2017 11:11:12 +0000 (+0900) Subject: Fix restore logic X-Git-Tag: accepted/tizen/unified/20170428.004007~7^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fstt.git;a=commitdiff_plain;h=85692c071ad98f05bf8b4d4ec5c9683ba2af4f3e Fix restore logic Change-Id: Ib690ffbb7082ad0a66694de3b37faaff1a9d604f Signed-off-by: sooyeon.kim (cherry picked from commit ce77dafc7d0e9dad23d3009186b27b941d52f2fb) --- diff --git a/client/stt_dbus.c b/client/stt_dbus.c index 4406ac6..f6ddbf0 100644 --- a/client/stt_dbus.c +++ b/client/stt_dbus.c @@ -617,6 +617,19 @@ static Eina_Bool listener_event_callback(void* data, Ecore_Fd_Handler *fd_handle else if (dbus_message_is_signal(msg, "org.freedesktop.DBus", "NameOwnerChanged")) { SLOG(LOG_DEBUG, TAG_STTC, "===== Owner Changed"); + DBusError err; + dbus_error_init(&err); + + /* remove 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'", g_server_service_interface); + dbus_bus_remove_match(g_conn_listener, rule_err, &err); + dbus_connection_flush(g_conn_listener); + if (dbus_error_is_set(&err)) { + SLOG(LOG_ERROR, TAG_STTC, "Match Error (%s)", err.message); + dbus_error_free(&err); + } + __stt_cb_error(-1, STT_ERROR_SERVICE_RESET, "Daemon Reset"); SLOG(LOG_DEBUG, TAG_STTC, "====="); SLOG(LOG_DEBUG, TAG_STTC, " "); @@ -976,7 +989,7 @@ int stt_dbus_request_initialize(int uid, bool* silence_supported, bool* credenti /* 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'", STT_SERVER_SERVICE_INTERFACE); + snprintf(rule_err, 256, "sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',type='signal',arg0='%s'", g_server_service_interface); dbus_bus_add_match(g_conn_listener, rule_err, &err); dbus_connection_flush(g_conn_listener); @@ -1012,7 +1025,7 @@ int stt_dbus_request_finalize(int uid) /* remove 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'", STT_SERVER_SERVICE_INTERFACE); + snprintf(rule_err, 256, "sender='org.freedesktop.DBus',path='/org/freedesktop/DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',type='signal',arg0='%s'", g_server_service_interface); dbus_bus_remove_match(g_conn_listener, rule_err, &err); dbus_connection_flush(g_conn_listener); if (dbus_error_is_set(&err)) {