From: sooyeon.kim Date: Fri, 7 Oct 2016 11:15:29 +0000 (+0900) Subject: Fix custom dbus release X-Git-Tag: accepted/tizen/common/20161007.173318 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Ftags%2Faccepted%2Ftizen%2Fcommon%2F20161007.173318;hp=8bafcb2e1f20284e27244ac6a339b076d47b5678;p=platform%2Fcore%2Fuifw%2Fstt.git Fix custom dbus release Change-Id: Ia7d13cb6e52d8e3beb10b10058d74acd19be2382 Signed-off-by: sooyeon.kim --- diff --git a/server/sttd_dbus.c b/server/sttd_dbus.c index 40d47e3..eb24920 100644 --- a/server/sttd_dbus.c +++ b/server/sttd_dbus.c @@ -569,6 +569,52 @@ int __sttd_get_buxtonkey() } +int __sttd_request_custom_dbus_name() +{ + static DBusConnection* g_conn_custom = NULL; + DBusError err; + dbus_error_init(&err); + + /* Create connection for sender */ + g_conn_custom = dbus_bus_get_private(DBUS_BUS_SESSION, &err); + if (dbus_error_is_set(&err)) { + SLOG(LOG_ERROR, TAG_STTD, "[Dbus ERROR] Fail dbus_bus_get : %s", err.message); + dbus_error_free(&err); + return STTD_ERROR_OPERATION_FAILED; + } + + int ret = dbus_bus_request_name(g_conn_custom, STT_SERVER_CUSTOM_SERVICE_NAME, DBUS_NAME_FLAG_REPLACE_EXISTING, &err); + if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) { + SLOG(LOG_ERROR, TAG_STTD, "[Dbus ERROR] Fail to be primary owner"); + return STTD_ERROR_OPERATION_FAILED; + } + + if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) { + SLOG(LOG_ERROR, TAG_STTD, "[Dbus ERROR] Fail to be primary owner"); + return STTD_ERROR_OPERATION_FAILED; + } + + if (dbus_error_is_set(&err)) { + SLOG(LOG_ERROR, TAG_STTD, "[Dbus ERROR] dbus_bus_request_name() : %s", err.message); + dbus_error_free(&err); + return STTD_ERROR_OPERATION_FAILED; + } + + dbus_bus_release_name(g_conn_custom, STT_SERVER_CUSTOM_SERVICE_NAME, &err); + if (dbus_error_is_set(&err)) { + SLOG(LOG_ERROR, TAG_STTD, "[Dbus ERROR] dbus_bus_release_name() : %s", err.message); + dbus_error_free(&err); + return STTD_ERROR_OPERATION_FAILED; + } + + dbus_connection_close(g_conn_custom); + dbus_connection_unref(g_conn_custom); + g_conn_custom = NULL; + + SLOG(LOG_DEBUG, TAG_STTD, "=="); + return 0; +} + int sttd_dbus_open_connection() { DBusError err; @@ -608,6 +654,12 @@ int sttd_dbus_open_connection() return ret; } + ret = __sttd_request_custom_dbus_name(); + if (0 != ret) { + SLOG(LOG_ERROR, TAG_STTD, "[Dbus ERROR] Fail to request custom dbus name"); + return ret; + } + ret = dbus_bus_request_name(g_conn_listener, g_server_service_name, DBUS_NAME_FLAG_REPLACE_EXISTING, &err); if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) {