X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bt-service-adaptation%2Fservices%2Fbt-request-handler.c;h=05f8c693bbe9bb45cdf7031764c3d49f1e8fd4aa;hb=3cbe2838e509addd55aaa420353f68dfe93d9634;hp=1428e4a235245db68c1d2f3c2e087baeaf4e35ed;hpb=a56302e7cb070c1fc92a041007af0893c61dfb94;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 1428e4a..05f8c69 100644 --- a/bt-service-adaptation/services/bt-request-handler.c +++ b/bt-service-adaptation/services/bt-request-handler.c @@ -203,6 +203,7 @@ static gboolean __bt_is_sync_function(int service_function) || service_function == BT_GET_IS_ALIAS_SET || service_function == BT_GET_CONNECTED_LINK_TYPE || service_function == BT_IS_SERVICE_USED + || service_function == BT_RFCOMM_LISTEN_AND_ACCEPT || service_function == BT_RFCOMM_LISTEN || service_function == BT_HDP_REGISTER_SINK_APP || service_function == BT_HDP_UNREGISTER_SINK_APP @@ -231,8 +232,7 @@ static gboolean __bt_is_sync_function(int service_function) || service_function == BT_GATT_WATCH_CHARACTERISTIC || service_function == BT_GATT_ACQUIRE_WRITE #endif - || service_function == BT_AUDIO_SELECT_ROLE - || service_function == BT_OBEX_SERVER_ACCEPT_CONNECTION) + || service_function == BT_AUDIO_SELECT_ROLE) return TRUE; else return FALSE; @@ -1312,6 +1312,25 @@ int __bt_bluez_request(int function_name, result = BLUETOOTH_ERROR_NONE; break; } + case BT_RFCOMM_LISTEN_AND_ACCEPT: { + char *uuid; + int socket_fd = -1; + + sender = (char *)g_dbus_method_invocation_get_sender(context); + uuid = (char *)g_variant_get_data(in_param1); + + result = _bt_rfcomm_socket_listen(sender, uuid, true); + if (result > 0) { + BT_ERR("BT_RFCOMM_LISTEN_AND_ACCEPT success, save context"); + + result = BLUETOOTH_ERROR_NONE; + _bt_save_invocation_context(context, + result, sender, function_name, NULL); + } else { + g_array_append_vals(*out_param1, &socket_fd, sizeof(int)); + } + break; + } case BT_RFCOMM_LISTEN: { char *uuid; int socket_fd = -1; @@ -1319,7 +1338,7 @@ int __bt_bluez_request(int function_name, sender = (char *)g_dbus_method_invocation_get_sender(context); uuid = (char *)g_variant_get_data(in_param1); - result = _bt_rfcomm_socket_listen(sender, uuid); + result = _bt_rfcomm_socket_listen(sender, uuid, false); if (result > 0) { BT_ERR("BT_RFCOMM_LISTEN success, save context"); @@ -2706,6 +2725,10 @@ int __bt_bluez_request(int function_name, __bt_service_get_parameters(in_param4, &is_indicate, sizeof(gboolean)); +#ifdef TIZEN_FEATURE_BT_GATT_CLIENT_FD_DISABLE + goto normal; +#endif + if (is_indicate == false) { result = _bt_gatt_acquire_notify(¶m , &fd, &mtu); if (BLUETOOTH_ERROR_NONE == result && fd > -1) { @@ -3709,6 +3732,7 @@ gboolean __bt_service_check_privilege(int function_name, case BT_GATT_SERVER_UPDATE_VALUE: case BT_GATT_SERVER_DEREGISTER: #endif + case BT_REQ_ATT_MTU: case BT_PBAP_CONNECT: case BT_PBAP_DISCONNECT: case BT_PBAP_GET_PHONEBOOK_SIZE: @@ -3717,6 +3741,8 @@ gboolean __bt_service_check_privilege(int function_name, case BT_PBAP_PULL_VCARD: case BT_PBAP_PHONEBOOK_SEARCH: + case BT_RFCOMM_LISTEN_AND_ACCEPT: + ret_val = cynara_check(p_cynara, client_creds, client_session, user_creds, BT_PRIVILEGE_PUBLIC); @@ -3771,15 +3797,12 @@ gboolean __bt_service_check_privilege(int function_name, case BT_SET_LE_STATIC_RANDOM_ADDRESS: case BT_LE_CONN_UPDATE: case BT_UPDATE_LE_CONNECTION_MODE: - case BT_REQ_ATT_MTU: case BT_GET_DEVICE_IDA: case BT_LE_READ_MAXIMUM_DATA_LENGTH: case BT_LE_WRITE_HOST_SUGGESTED_DATA_LENGTH: case BT_LE_READ_HOST_SUGGESTED_DATA_LENGTH: case BT_LE_SET_DATA_LENGTH: - case BT_GET_ATT_MTU: - case BT_LE_IPSP_INIT: case BT_LE_IPSP_DEINIT: case BT_LE_IPSP_CONNECT: @@ -3867,6 +3890,7 @@ gboolean __bt_service_check_privilege(int function_name, case BT_UNREGISTER_SCAN_FILTER: case BT_UNREGISTER_ALL_SCAN_FILTERS: case BT_IS_SCAN_FILTER_SUPPORTED: + case BT_GET_ATT_MTU: case BT_OBEX_SERVER_ALLOCATE: case BT_OBEX_SERVER_DEALLOCATE: