X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bt-core%2Fbt-core-dbus-handler.c;h=04c12970b9abf7ca9c76456afe2242d2bdd9d925;hb=7d6b423d201b214167adadd4212b6237f3c95119;hp=5eb2894f8442146fefde074220e196a70a5ed898;hpb=5a7a8022285f9381eb8c7c7fba3a9977651c0e1b;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-core/bt-core-dbus-handler.c b/bt-core/bt-core-dbus-handler.c index 5eb2894..04c1297 100644 --- a/bt-core/bt-core-dbus-handler.c +++ b/bt-core/bt-core-dbus-handler.c @@ -40,6 +40,7 @@ static GDBusProxy *service_gproxy; #ifdef TIZEN_FEATURE_BT_HPS static GDBusProxy *hps_gproxy; #endif +static gboolean factory_test_mode; void _bt_core_fill_garray_from_variant(GVariant *var, GArray *param) { @@ -237,49 +238,35 @@ int _bt_core_service_request(int service_type, int service_function, GError *error = NULL; GArray *in_param5 = NULL; - int retry = 5; - proxy = _bt_core_gdbus_get_service_proxy(); if (!proxy) return BLUETOOTH_ERROR_INTERNAL; in_param5 = g_array_new(TRUE, TRUE, sizeof(gchar)); - while (--retry >= 0) { - param1 = g_variant_new_from_data((const GVariantType *)"ay", - in_param1->data, in_param1->len, - TRUE, NULL, NULL); - param2 = g_variant_new_from_data((const GVariantType *)"ay", - in_param2->data, in_param2->len, - TRUE, NULL, NULL); - param3 = g_variant_new_from_data((const GVariantType *)"ay", - in_param3->data, in_param3->len, - TRUE, NULL, NULL); - param4 = g_variant_new_from_data((const GVariantType *)"ay", - in_param4->data, in_param4->len, - TRUE, NULL, NULL); - param5 = g_variant_new_from_data((const GVariantType *)"ay", - in_param5->data, in_param5->len, - TRUE, NULL, NULL); - - ret = g_dbus_proxy_call_sync(proxy, "service_request", - g_variant_new("(iii@ay@ay@ay@ay@ay)", - service_type, service_function, - BT_SYNC_REQ, param1, - param2, param3, - param4, param5), - G_DBUS_CALL_FLAGS_NONE, 2000, - NULL, &error); - if (ret == NULL && error != NULL) { - if (error->code == G_IO_ERROR_TIMED_OUT) { - BT_ERR("D-Bus Timed out."); - g_clear_error(&error); - continue; - } - } - - break; - } - + param1 = g_variant_new_from_data((const GVariantType *)"ay", + in_param1->data, in_param1->len, + TRUE, NULL, NULL); + param2 = g_variant_new_from_data((const GVariantType *)"ay", + in_param2->data, in_param2->len, + TRUE, NULL, NULL); + param3 = g_variant_new_from_data((const GVariantType *)"ay", + in_param3->data, in_param3->len, + TRUE, NULL, NULL); + param4 = g_variant_new_from_data((const GVariantType *)"ay", + in_param4->data, in_param4->len, + TRUE, NULL, NULL); + param5 = g_variant_new_from_data((const GVariantType *)"ay", + in_param5->data, in_param5->len, + TRUE, NULL, NULL); + + ret = g_dbus_proxy_call_sync(proxy, "service_request", + g_variant_new("(iii@ay@ay@ay@ay@ay)", + service_type, service_function, + BT_SYNC_REQ, param1, + param2, param3, + param4, param5), + G_DBUS_CALL_FLAGS_NONE, 10000, + NULL, &error); g_array_free(in_param5, TRUE); if (ret == NULL) { @@ -385,9 +372,14 @@ static void __bt_core_dbus_method(GDBusConnection *connection, g_variant_get(parameters, "(&s&s)", &type, &arg); ret = _bt_core_factory_test_mode(type, arg); - g_dbus_method_invocation_return_value(invocation, + factory_test_mode = TRUE; + + if (ret == TRUE) + g_dbus_method_invocation_return_value(invocation, g_variant_new("(i)", ret)); - _bt_core_terminate(); + else + _bt_core_terminate(); + return; } else { ret = FALSE; @@ -448,8 +440,6 @@ static void __handle_name_owner_changed(const char *name) { gboolean flight_mode_status; - BT_DBG(""); - flight_mode_status = _bt_core_is_flight_mode_enabled(); if (flight_mode_status == FALSE && _bt_is_flightmode_request() == TRUE) { @@ -459,8 +449,8 @@ static void __handle_name_owner_changed(const char *name) if ((g_strcmp0(name, "org.bluez") == 0) || (g_strcmp0(name, "org.projectx.bt") == 0)) { - BT_DBG("%s is terminated", name); - if (_bt_check_terminating_condition() == TRUE) { + BT_INFO("%s is terminated", name); + if (_bt_check_terminating_condition() == TRUE && factory_test_mode == FALSE) { _bt_disable_adapter(); _bt_disable_adapter_le(); _bt_core_terminate(); @@ -561,7 +551,7 @@ gboolean _bt_core_register_dbus(void) NULL, "org.freedesktop.DBus.ObjectManager", "InterfacesAdded", NULL, NULL, 0, __bt_core_event_filter, NULL, NULL); - sig_id2 = g_dbus_connection_signal_subscribe(conn, + sig_id3 = g_dbus_connection_signal_subscribe(conn, NULL, "org.freedesktop.DBus.ObjectManager", "InterfacesRemoved", NULL, NULL, 0, __bt_core_event_filter, NULL, NULL);