result, &data_r,
event_info->cb, event_info->user_data);
+ if (bluetooth_get_battery_monitor_state()) {
+ int ret = _bt_common_send_rfcomm_rx_details(&data_r);
+ if (ret != BLUETOOTH_ERROR_NONE)
+ BT_ERR("RFCOMM received data details not sent to battery monitor frwk");
+ }
+
g_free(buffer);
return TRUE;
GSList *conn;
char addr[20];
- BT_INFO("### Disconnect all RFCOMM server connections");
+ BT_INFO(" ### Disconnect all RFCOMM server connections");
for (server = rfcomm_nodes; server; ) {
rfcomm_info_t *info = server->data;
return FALSE;
}
-static int __rfcomm_listen(rfcomm_server_info_t *server_info)
+static int __rfcomm_listen(rfcomm_server_info_t *server_info, bool accept)
{
int result;
GUnixFDList *out_fd_list = NULL;
BT_INIT_PARAMS();
BT_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4, out_param);
- g_array_append_vals(in_param1, server_info->uuid, BLUETOOTH_UUID_STRING_MAX);
- result = _bt_send_request_with_unix_fd_list(BT_BLUEZ_SERVICE, BT_RFCOMM_LISTEN,
- in_param1, in_param2, in_param3, in_param4, NULL, &out_param, &out_fd_list);
+ if (accept == false) {
+ g_array_append_vals(in_param1, server_info->uuid, BLUETOOTH_UUID_STRING_MAX);
+ result = _bt_send_request_with_unix_fd_list(BT_BLUEZ_SERVICE, BT_RFCOMM_LISTEN,
+ in_param1, in_param2, in_param3, in_param4, NULL, &out_param, &out_fd_list);
+ } else {
+ g_array_append_vals(in_param1, server_info->uuid, BLUETOOTH_UUID_STRING_MAX);
+ result = _bt_send_request_with_unix_fd_list(BT_BLUEZ_SERVICE, BT_RFCOMM_LISTEN_AND_ACCEPT,
+ in_param1, in_param2, in_param3, in_param4, NULL, &out_param, &out_fd_list);
+ }
BT_DBG("result: %x", result);
if (result != BLUETOOTH_ERROR_NONE) {
BT_CHECK_PARAMETER(uuid, return);
BT_INFO("UUID Provided %s", uuid);
- if (_bt_check_privilege(BT_BLUEZ_SERVICE, BT_RFCOMM_CREATE_SOCKET)
+ if (_bt_check_privilege(BT_CHECK_PRIVILEGE, BT_RFCOMM_CREATE_SOCKET)
== BLUETOOTH_ERROR_PERMISSION_DEINED) {
BT_ERR("Don't have a privilege to use this API");
return BLUETOOTH_ERROR_PERMISSION_DEINED;
BT_CHECK_PARAMETER(path, return);
BT_INFO("PATH Provided %s", path);
- if (_bt_check_privilege(BT_BLUEZ_SERVICE, BT_RFCOMM_CREATE_SOCKET_EX)
+ if (_bt_check_privilege(BT_CHECK_PRIVILEGE, BT_RFCOMM_CREATE_SOCKET_EX)
== BLUETOOTH_ERROR_PERMISSION_DEINED) {
BT_ERR("Don't have a privilege to use this API");
return BLUETOOTH_ERROR_PERMISSION_DEINED;
BT_CHECK_ENABLED(return);
- if (_bt_check_privilege(BT_BLUEZ_SERVICE, BT_RFCOMM_REMOVE_SOCKET)
+ if (_bt_check_privilege(BT_CHECK_PRIVILEGE, BT_RFCOMM_REMOVE_SOCKET)
== BLUETOOTH_ERROR_PERMISSION_DEINED) {
BT_ERR("Don't have a privilege to use this API");
return BLUETOOTH_ERROR_PERMISSION_DEINED;
BT_CHECK_ENABLED(return);
- if (_bt_check_privilege(BT_BLUEZ_SERVICE, BT_RFCOMM_REMOVE_SOCKET)
+ if (_bt_check_privilege(BT_CHECK_PRIVILEGE, BT_RFCOMM_REMOVE_SOCKET)
== BLUETOOTH_ERROR_PERMISSION_DEINED) {
BT_ERR("Don't have a privilege to use this API");
return BLUETOOTH_ERROR_PERMISSION_DEINED;
char address[20];
- BT_INFO("### Disconnect RFCOMM server");
+ BT_INFO(" ### Disconnect RFCOMM server");
if (socket_fd < 0) {
BT_ERR("Invalid FD");
return BLUETOOTH_ERROR_INVALID_PARAM;
server_info->max_pending_conn = max_pending_connection;
server_info->auto_accept = TRUE;
- return __rfcomm_listen(server_info);
+ return __rfcomm_listen(server_info, true);
#endif
}
server_info->max_pending_conn = max_pending_connection;
server_info->auto_accept = FALSE;
- return __rfcomm_listen(server_info);
+ return __rfcomm_listen(server_info, false);
#endif
}