X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=server%2Fsttd_dbus.c;h=ac1ef0012572b1fe395e7a3c4c4a02180b13391e;hb=c59a105a909af530ad6bd7670da49e457a91160a;hp=b4d7d107bb2240abb66e8a99e92291cc50248390;hpb=add39505d51b50f8044aefb402aae8d5bf639e32;p=platform%2Fcore%2Fuifw%2Fstt.git diff --git a/server/sttd_dbus.c b/server/sttd_dbus.c index b4d7d10..ac1ef00 100644 --- a/server/sttd_dbus.c +++ b/server/sttd_dbus.c @@ -471,7 +471,7 @@ int __sttd_get_buxtonkey() SLOG(LOG_ERROR, TAG_STTD, "[DBUS-BUXTON2] Fail to open buxton client, ret(%d)", ret); return STTD_ERROR_OPERATION_FAILED; } - bux_layer = buxton_create_layer("user"); + bux_layer = buxton_create_layer("system"); if (NULL == bux_layer) { SLOG(LOG_ERROR, TAG_STTD, "[DBUS-BUXTON2] buxton_create_layer FAIL"); buxton_close(bux_cli); @@ -548,7 +548,7 @@ int __sttd_get_buxtonkey() } char* ret_char = strchr(g_server_service_interface, '-'); - while(NULL != ret_char) { + while (NULL != ret_char) { ret_char[0] = '_'; ret_char = strchr(g_server_service_interface, '-'); } @@ -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) {