diff options
author | h.sandeep <h.sandeep@samsung.com> | 2017-08-08 12:01:06 +0530 |
---|---|---|
committer | h.sandeep <h.sandeep@samsung.com> | 2017-08-08 12:03:20 +0530 |
commit | 988d621f1cfb674698c3b3d54ff6e18bb8650e7c (patch) | |
tree | 62ff2613f9036909adcd200427b74422c6fe8cc2 /src/bluetooth-common.c | |
parent | 1964e11a96b7a85fdf291f86002aaaa4a289281c (diff) | |
download | bluetooth-988d621f1cfb674698c3b3d54ff6e18bb8650e7c.tar.gz bluetooth-988d621f1cfb674698c3b3d54ff6e18bb8650e7c.tar.bz2 bluetooth-988d621f1cfb674698c3b3d54ff6e18bb8650e7c.zip |
Apply Tizen3.0 Gatt client product patchsubmit/tizen/20170809.230017submit/tizen/20170808.231821accepted/tizen/unified/20170811.021135accepted/tizen/unified/20170809.135136
===============================================
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.c | 79 |
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; |