#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)
{
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) {
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));
+ else
+ _bt_core_terminate();
+
return;
} else {
ret = FALSE;
{
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) {
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();
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);