Fix restore logic 94/123394/1
authorsooyeon.kim <sooyeon.kim@samsung.com>
Wed, 18 Jan 2017 11:11:12 +0000 (20:11 +0900)
committerKwangyoun Kim <ky85.kim@samsung.com>
Wed, 5 Apr 2017 10:21:15 +0000 (03:21 -0700)
Change-Id: Ib690ffbb7082ad0a66694de3b37faaff1a9d604f
Signed-off-by: sooyeon.kim <sooyeon.kim@samsung.com>
(cherry picked from commit ce77dafc7d0e9dad23d3009186b27b941d52f2fb)

client/stt_dbus.c

index 4406ac6..f6ddbf0 100644 (file)
@@ -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)) {