static gboolean __bt_connect_le_timer_cb(gpointer user_data)
{
+ int ret;
+
BT_INFO("Try to initiate pending LE connection");
pending_le_conn_timer_id = 0;
- __bt_connect_le_device_internal(pending_le_conn_info->req_id,
- &pending_le_conn_info->bd_addr,
- pending_le_conn_info->auto_connect);
+ ret = __bt_connect_le_device_internal(pending_le_conn_info->req_id,
+ &pending_le_conn_info->bd_addr,
+ pending_le_conn_info->auto_connect);
+ if (ret != BLUETOOTH_ERROR_NONE) {
+ request_info_t *req_info = NULL;
+ GVariant *out_param1;
+
+ req_info = _bt_get_request_info(pending_le_conn_info->req_id);
+ if (req_info == NULL) {
+ BT_ERR("req_info is NULL");
+ goto done;
+ }
+
+ if (req_info->context == NULL) {
+ BT_ERR("req_info->context is NULL");
+ _bt_delete_request_list(req_info->req_id);
+ goto done;
+ }
+
+ out_param1 = g_variant_new_from_data((const GVariantType *)"ay",
+ &pending_le_conn_info->bd_addr,
+ sizeof(bluetooth_device_address_t), TRUE,
+ NULL, NULL);
+ g_dbus_method_invocation_return_value(req_info->context,
+ g_variant_new("(iv)", ret, out_param1));
+ }
+
+done:
g_free(pending_le_conn_info);
pending_le_conn_info = NULL;