}
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;
int size;
__bt_service_get_parameters(in_param1, &uid, sizeof(uid_t));
__bt_service_get_parameters(in_param2, &pid, sizeof(pid_t));
- __bt_service_get_parameters(in_param3, &size, sizeof(int));
+ __bt_service_get_parameters(in_param3, &size, sizeof(unsigned int));
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, RX_DATA);
break;
int size;
__bt_service_get_parameters(in_param1, &uid, sizeof(uid_t));
__bt_service_get_parameters(in_param2, &pid, sizeof(pid_t));
- __bt_service_get_parameters(in_param3, &size, sizeof(int));
+ __bt_service_get_parameters(in_param3, &size, sizeof(unsigned int));
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_UPDATE_CONNECTION_INFO: {
+ gboolean connected = FALSE;
+ int socket_fd = -1;
+ int role = RFCOMM_ROLE_SERVER;
+
+ sender = (char *)g_dbus_method_invocation_get_sender(context);
+
+ __bt_service_get_parameters(in_param1, &role, sizeof(int));
+ __bt_service_get_parameters(in_param2, &connected, sizeof(gboolean));
+ __bt_service_get_parameters(in_param3, &socket_fd, sizeof(int));
+
+ if (connected == TRUE)
+ result = _bt_rfcomm_conn_added(sender, role, socket_fd);
+ else
+ result = _bt_rfcomm_conn_removed(sender, role, socket_fd);
+
+ break;
+ }
case BT_AUDIO_SELECT_ROLE: {
bluetooth_audio_role_t role;
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_UPDATE_CONNECTION_INFO:
case BT_OPP_PUSH_FILES:
case BT_OPP_CANCEL_PUSH:
/* Check if le_scanning app is terminated */
_bt_check_le_scanner_app_termination(name);
+
+ /* Check if RFCOMM app is terminated */
+ _bt_rfcomm_check_termination(name);
}
static void __bt_service_bus_acquired_handler(GDBusConnection *connection,