X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=server%2Fsttd_dbus.c;h=c234977ccce0cf22194edc053e948d0c57713742;hb=e6e5e98c676315c8d51c52b643617d285b476f7d;hp=fcc04ff46a22995f28338f74d99df215177b4764;hpb=8776b414e863020bf8e84314bc7031cf9f56f797;p=platform%2Fcore%2Fuifw%2Fstt.git diff --git a/server/sttd_dbus.c b/server/sttd_dbus.c index fcc04ff..c234977 100644 --- a/server/sttd_dbus.c +++ b/server/sttd_dbus.c @@ -259,7 +259,7 @@ int sttdc_send_result(int uid, int event, const char** data, int data_count, con snprintf(target_if_name, sizeof(target_if_name), "%s%d", STT_CLIENT_SERVICE_INTERFACE, pid); DBusMessage* msg = NULL; - SLOG(LOG_DEBUG, TAG_STTD, "[Dbus] send result signal : uid(%d), event(%d), result count(%d) result id(%d)", + SLOG(LOG_DEBUG, TAG_STTD, "[Dbus] send result signal : uid(%d), event(%d), result count(%d) result id(%d)", uid, event, data_count, g_internal_result_id); msg = dbus_message_new_signal( @@ -315,7 +315,7 @@ int sttdc_send_result(int uid, int event, const char** data, int data_count, con SLOG(LOG_DEBUG, TAG_STTD, "[Dbus] result size (%d)", data_count); for (i = 0; i < data_count; i++) { if (NULL != data[i]) { - SLOG(LOG_DEBUG, TAG_STTD, "[Dbus] result (%d, %s)", i, data[i]); + SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[Dbus] result (%d, %s)", i, data[i]); if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &data[i])) { SLOG(LOG_ERROR, TAG_STTD, "[Dbus] response message : Fail to append result data"); @@ -579,7 +579,7 @@ int __sttd_get_buxtonkey() } SLOG(LOG_DEBUG, TAG_STTD, "[DBUS-BUXTON2] buxton_value_get_string: engine_default: %s", engine_default); - ret = aul_app_get_appid_bypid(pid, engine_appid, sizeof(engine_appid)); + ret = aul_app_get_appid_bypid(pid, engine_appid, sizeof(engine_appid) - 1); __sttd_dbus_service_free(); @@ -655,6 +655,13 @@ int __sttd_request_custom_dbus_name() return STTD_ERROR_OPERATION_FAILED; } + if (NULL == g_conn_custom) { + SLOG(LOG_ERROR, TAG_STTD, "[ERROR] fail to get dbus connection"); + return STTD_ERROR_OPERATION_FAILED; + } + + dbus_connection_set_exit_on_disconnect(g_conn_custom, false); + 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"); @@ -704,6 +711,8 @@ int sttd_dbus_open_connection() return STTD_ERROR_OPERATION_FAILED; } + dbus_connection_set_exit_on_disconnect(g_conn_sender, false); + /* connect to the bus and check for errors */ g_conn_listener = dbus_bus_get_private(DBUS_BUS_SESSION, &err); @@ -718,6 +727,8 @@ int sttd_dbus_open_connection() return STTD_ERROR_OPERATION_FAILED; } + dbus_connection_set_exit_on_disconnect(g_conn_listener, false); + /* Get buxton key */ ret = __sttd_get_buxtonkey(); if (0 != ret) { @@ -752,6 +763,11 @@ int sttd_dbus_open_connection() return STTD_ERROR_OPERATION_FAILED; } + /* Flush messages which are received before fd event handler registration */ + while (DBUS_DISPATCH_DATA_REMAINS == dbus_connection_get_dispatch_status(g_conn_listener)) { + listener_event_callback(NULL, NULL); + } + /* add a rule for getting signal */ char rule[128]; snprintf(rule, 128, "type='signal',interface='%s'", g_server_service_interface);