}
dbus_data.num_app = n;
g_array_append_vals(*out_param1, &dbus_data, sizeof(bt_battery_dbus_data_t));
- g_slist_free(data->atm_list);
+ g_slist_free_full(data->atm_list, g_free);
g_free(data);
data = NULL;
break;
BT_DBG("Sending details to bluetooth battery monitor: %ld, %ld, %d", (long int)uid, (long int)pid, size);
_bt_bm_add_transaction_details(uid, pid, size, TX_DATA);
break;
- }
+ }
+ case BT_RFCOMM_SERVER_UPDATE_CONNECTION_INFO: {
+ gboolean connected = FALSE;
+ int client_fd = -1;
+
+ sender = (char *)g_dbus_method_invocation_get_sender(context);
+
+ __bt_service_get_parameters(in_param1, &connected, sizeof(gboolean));
+ __bt_service_get_parameters(in_param2, &client_fd, sizeof(int));
+
+ if (connected == TRUE)
+ result = _bt_rfcomm_server_conn_added(sender, client_fd);
+ else
+ result = _bt_rfcomm_server_conn_removed(sender, client_fd);
+
+ break;
+ }
case BT_AUDIO_SELECT_ROLE: {
bluetooth_audio_role_t role;
}
break;
}
+ /* Sync */
+ case BT_GET_GATT_DATA_BATCHING_AVAILABLE_PACKETS: {
+ guint available_packets = 0;
+
+ result = _bt_gatt_get_data_batching_available_packets(&available_packets);
+ BT_DBG("LE batching available packets %u", available_packets);
+ if (result == BLUETOOTH_ERROR_NONE) {
+ g_array_append_vals(*out_param1, &available_packets,
+ sizeof(guint));
+ }
+
+ break;
+ }
+ /* Sync */
+ case BT_ENABLE_GATT_DATA_BATCHING: {
+ bluetooth_device_address_t address = { {0} };
+ int packet_threshold;
+ int timeout;
+
+ __bt_service_get_parameters(in_param1,
+ &address, sizeof(bluetooth_device_address_t));
+ __bt_service_get_parameters(in_param2,
+ &packet_threshold, sizeof(int));
+ __bt_service_get_parameters(in_param3,
+ &timeout, sizeof(int));
+ result = _bt_gatt_enable_data_batching(&address, packet_threshold, timeout);
+
+ break;
+ }
+ /* Sync */
+ case BT_DISABLE_GATT_DATA_BATCHING: {
+ bluetooth_device_address_t address = { {0} };
+
+ __bt_service_get_parameters(in_param1,
+ &address, sizeof(bluetooth_device_address_t));
+ result = _bt_gatt_disable_data_batching(&address);
+
+ break;
+ }
+
case BT_GATT_GET_PRIMARY_SERVICES: {
char *addr;
char *uuid;
char *path;
int fd;
+ char *sender;
+ sender = (char *)g_dbus_method_invocation_get_sender(context);
__bt_service_get_parameters(in_param1, &type, sizeof(int));
uuid = (char *)g_variant_get_data(in_param2);
path = (char *)g_variant_get_data(in_param3);
__bt_service_get_parameters(in_param4, &fd, sizeof(int));
- result = _bt_register_osp_server_in_agent(type, uuid, path, fd);
+ result = _bt_register_osp_server_in_agent(sender, type, uuid, path, fd);
break;
}
case BT_UNSET_AUTHORIZATION: {
case BT_RFCOMM_REMOVE_SOCKET:
case BT_RFCOMM_SEND_RX_DETAILS:
case BT_RFCOMM_SEND_TX_DETAILS:
+ case BT_RFCOMM_SERVER_UPDATE_CONNECTION_INFO:
case BT_OPP_PUSH_FILES:
case BT_OPP_CANCEL_PUSH:
case BT_LE_OOB_READ_LOCAL_DATA:
case BT_LE_OOB_ADD_REMOTE_DATA:
+ case BT_GET_GATT_DATA_BATCHING_AVAILABLE_PACKETS:
+ case BT_ENABLE_GATT_DATA_BATCHING:
+ case BT_DISABLE_GATT_DATA_BATCHING:
+
case BT_LE_IPSP_INIT:
case BT_LE_IPSP_DEINIT:
case BT_LE_IPSP_CONNECT:
/* Check if le_scanning app is terminated */
_bt_check_le_scanner_app_termination(name);
+
+ /* Check if RFCOMM server is terminated */
+ _bt_rfcomm_server_check_termination(name);
}
static void __bt_service_bus_acquired_handler(GDBusConnection *connection,