X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bt-api%2Fbt-rfcomm-server.c;h=2701d033ac31653f905260a2c7a62fbe978c23ea;hb=f4b76d1d2c3643a61c441750e46c8ce40a16f31c;hp=9e573990f16905a362867d54c5424fd4c8396abc;hpb=96e67a02816e81a31f8a37e188de0f3bbb13429b;p=platform%2Fcore%2Fconnectivity%2Fbluetooth-frwk.git diff --git a/bt-api/bt-rfcomm-server.c b/bt-api/bt-rfcomm-server.c index 9e57399..2701d03 100644 --- a/bt-api/bt-rfcomm-server.c +++ b/bt-api/bt-rfcomm-server.c @@ -341,6 +341,12 @@ static gboolean __data_received_cb(GIOChannel *chan, GIOCondition cond, 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; @@ -488,7 +494,7 @@ void _bt_rfcomm_server_disconnect_all(void) 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; @@ -1050,7 +1056,7 @@ err: 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; @@ -1061,9 +1067,15 @@ static int __rfcomm_listen(rfcomm_server_info_t *server_info) 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) { @@ -1114,7 +1126,7 @@ BT_EXPORT_API int bluetooth_rfcomm_create_socket(const char *uuid) 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; @@ -1162,7 +1174,7 @@ BT_EXPORT_API int bluetooth_rfcomm_create_socket_ex(const char *uuid, const char 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; @@ -1199,7 +1211,7 @@ BT_EXPORT_API int bluetooth_rfcomm_remove_socket(int id) 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; @@ -1246,7 +1258,7 @@ BT_EXPORT_API int bluetooth_rfcomm_remove_socket_ex(const char *uuid) 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; @@ -1278,7 +1290,7 @@ BT_EXPORT_API int bluetooth_rfcomm_server_disconnect(int socket_fd) 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; @@ -1473,7 +1485,7 @@ BT_EXPORT_API int bluetooth_rfcomm_listen_and_accept(int id, int max_pending_con 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 } @@ -1580,7 +1592,7 @@ BT_EXPORT_API int bluetooth_rfcomm_listen(int id, int max_pending_connection) 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 }