summaryrefslogtreecommitdiff
path: root/src/bluetooth-common.c
diff options
context:
space:
mode:
authorh.sandeep <h.sandeep@samsung.com>2017-08-08 12:01:06 +0530
committerh.sandeep <h.sandeep@samsung.com>2017-08-08 12:03:20 +0530
commit988d621f1cfb674698c3b3d54ff6e18bb8650e7c (patch)
tree62ff2613f9036909adcd200427b74422c6fe8cc2 /src/bluetooth-common.c
parent1964e11a96b7a85fdf291f86002aaaa4a289281c (diff)
downloadbluetooth-988d621f1cfb674698c3b3d54ff6e18bb8650e7c.tar.gz
bluetooth-988d621f1cfb674698c3b3d54ff6e18bb8650e7c.tar.bz2
bluetooth-988d621f1cfb674698c3b3d54ff6e18bb8650e7c.zip
=============================================== commit 4a721c92d78ddb62650f596a4af26637db60a36e Author: Seungyoun Ju <sy39.ju@samsung.com> Date: Wed Apr 26 18:03:40 2017 +0900 Fix : Simultaneous GATT client requests are failed =============================================== Change-Id: Ifc3012d97c68c8bdcc14a7b1a1ab1cb4441253b6 Signed-off-by: h.sandeep <h.sandeep@samsung.com>
Diffstat (limited to 'src/bluetooth-common.c')
-rw-r--r--src/bluetooth-common.c79
1 files changed, 16 insertions, 63 deletions
diff --git a/src/bluetooth-common.c b/src/bluetooth-common.c
index 4742fa3..f3a06a2 100644
--- a/src/bluetooth-common.c
+++ b/src/bluetooth-common.c
@@ -1127,6 +1127,10 @@ static bool __bt_need_to_handle(int event)
case BLUETOOTH_EVENT_OTP_WRITE_CHAR_VAL:
case BLUETOOTH_EVENT_OTP_INDICATION:
case BLUETOOTH_EVENT_OTC_STATE_CHANGED:
+ case BLUETOOTH_EVENT_GATT_READ_CHAR:
+ case BLUETOOTH_EVENT_GATT_WRITE_CHAR:
+ case BLUETOOTH_EVENT_GATT_READ_DESC:
+ case BLUETOOTH_EVENT_GATT_WRITE_DESC:
return true;
default:
break;
@@ -2146,11 +2150,7 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
bt_event_slot_container[event_index].user_data);
break;
- case BLUETOOTH_EVENT_GATT_READ_CHAR: {
- int ret;
- bt_gatt_client_request_completed_cb cb = bt_event_slot_container[event_index].callback;
- bt_gatt_client_cb_data_s *cb_data = bt_event_slot_container[event_index].user_data;
-
+ case BLUETOOTH_EVENT_GATT_READ_CHAR:
BT_INFO("BLUETOOTH_EVENT_GATT_READ_CHAR");
if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT && _bt_gatt_is_legacy_client_mode()) {
@@ -2164,25 +2164,10 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
break;
}
}
- _bt_unset_cb(BT_EVENT_GATT_CLIENT_READ_CHARACTERISTIC);
- ret = param->result;
- if (ret == BT_ATT_ERROR_NONE) {
- char_val = (bt_gatt_char_value_t *)(param->param_data);
- bt_gatt_set_value(cb_data->gatt_handle,
- (char *)char_val->char_value, (int)char_val->val_len);
- }
- cb(ret, cb_data->gatt_handle, cb_data->user_data);
- g_free(cb_data);
-
+ _handle_gatt_client_read_completed_event(param->result,
+ param->param_data);
break;
- }
- case BLUETOOTH_EVENT_GATT_WRITE_CHAR: {
- int ret;
- bt_gatt_client_request_completed_cb cb = bt_event_slot_container[event_index].callback;
- bt_gatt_client_cb_data_s *cb_data = bt_event_slot_container[event_index].user_data;
-
- BT_INFO("BLUETOOTH_EVENT_GATT_WRITE_CHAR");
-
+ case BLUETOOTH_EVENT_GATT_WRITE_CHAR:
if (TIZEN_FEATURE_ENABLE_LEGACY_GATT_CLIENT && _bt_gatt_is_legacy_client_mode()) {
if (_bt_gatt_is_legacy_client_mode()) {
((bt_gatt_characteristic_write_cb)bt_event_slot_container[event_index].callback)
@@ -2192,52 +2177,20 @@ static void __bt_event_proxy(int event, bluetooth_event_param_t *param, void *us
break;
}
}
- _bt_unset_cb(BT_EVENT_GATT_CLIENT_WRITE_CHARACTERISTIC);
-
- ret = param->result;
-
- if (ret != BT_ATT_ERROR_NONE)
- BT_ERR("BLUETOOTH_EVENT_GATT_WRITE_CHAR - ret [%d]", ret);
-
- cb(ret, cb_data->gatt_handle, cb_data->user_data);
- g_free(cb_data);
+ _handle_gatt_client_write_completed_event(param->result,
+ param->param_data);
break;
- }
- case BLUETOOTH_EVENT_GATT_READ_DESC: {
- int ret;
- bt_gatt_client_request_completed_cb cb = bt_event_slot_container[event_index].callback;
- bt_gatt_client_cb_data_s *cb_data = bt_event_slot_container[event_index].user_data;
- bt_gatt_char_property_t *desc_val = NULL;
-
+ case BLUETOOTH_EVENT_GATT_READ_DESC:
BT_INFO("BLUETOOTH_EVENT_GATT_READ_DESC");
-
- _bt_unset_cb(BT_EVENT_GATT_CLIENT_READ_DESCRIPTOR);
- ret = param->result;
- if (ret == BT_ATT_ERROR_NONE) {
- desc_val = (bt_gatt_char_property_t *)(param->param_data);
- bt_gatt_set_value(cb_data->gatt_handle,
- desc_val->description, (int)desc_val->val_len);
- }
- cb(ret, cb_data->gatt_handle, cb_data->user_data);
- g_free(cb_data);
-
+ _handle_gatt_client_read_completed_event(param->result,
+ param->param_data);
break;
- }
- case BLUETOOTH_EVENT_GATT_WRITE_DESC: {
- int ret;
- bt_gatt_client_request_completed_cb cb = bt_event_slot_container[event_index].callback;
- bt_gatt_client_cb_data_s *cb_data = bt_event_slot_container[event_index].user_data;
-
+ case BLUETOOTH_EVENT_GATT_WRITE_DESC:
BT_INFO("BLUETOOTH_EVENT_GATT_WRITE_DESC");
-
- _bt_unset_cb(BT_EVENT_GATT_CLIENT_WRITE_DESCRIPTOR);
- ret = param->result;
- cb(ret, cb_data->gatt_handle, cb_data->user_data);
- g_free(cb_data);
-
+ _handle_gatt_client_write_completed_event(param->result,
+ param->param_data);
break;
- }
case BLUETOOTH_EVENT_GATT_SERVER_READ_REQUESTED: {
bt_gatt_read_req_t *read_req = param->param_data;
bt_gatt_server_read_value_requested_cb cb;