X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bt-service-adaptation%2Fservices%2Fbt-request-handler.c;h=4e230df548baa8d358e539f1efb648427df57ef2;hb=e690a9b4e486e0c7b009250901c06f3853b32bf1;hp=e8f22ff2ed60f677c6bdb8d71d652724fe117925;hpb=9c3d5e549841cd92d8e58dcde6ece1593fddc80d;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-service-adaptation/services/bt-request-handler.c b/bt-service-adaptation/services/bt-request-handler.c index e8f22ff..4e230df 100644 --- a/bt-service-adaptation/services/bt-request-handler.c +++ b/bt-service-adaptation/services/bt-request-handler.c @@ -513,7 +513,7 @@ int __bt_bluez_request(int function_name, } 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; @@ -1557,7 +1557,23 @@ int __bt_bluez_request(int function_name, 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; @@ -2860,6 +2876,46 @@ int __bt_bluez_request(int function_name, } 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; @@ -3750,13 +3806,15 @@ int __bt_agent_request(int function_name, 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: { @@ -3952,6 +4010,7 @@ gboolean __bt_service_check_privilege(int function_name, 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: @@ -4174,6 +4233,10 @@ gboolean __bt_service_check_privilege(int function_name, 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: @@ -4353,6 +4416,9 @@ static void __name_owner_changed(GDBusConnection *connection, /* 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,