506710559dd981c7e0343e01339262ffedc2fefa |
|
05-Sep-2015 |
Pavlin Radoslavov <pavlin@google.com> |
Eliminate recursive calling when handling GATT related errors If there are errors when processing GATT related events (e.g., configuring the MTU), don't use recursive calls into bta_gattc_sm_execute(), because it breaks the free-ing of some of the memory. Bug: 23756301 Change-Id: I3c685170e868ffbf4e488d2bb5a31904e3f7b39d
/system/bt/bta/gatt/bta_gattc_act.c
|
50333a25ba3dac54033738d1e2a2688e2977ff2e |
|
16-Jul-2015 |
Arman Uguray <armansito@google.com> |
Properly disconnect GATT connection during noisy scans This patch fixes an issue that is reproducible in highly noisy environments (massive deployment of BLE beacons), through repeated connect/disconnect attempts on a remote peripheral while scanning for beacons in the background. The state machine in bta/gatt has a special control flow for handling disconnect requests during discovery, which in this case failed to resolve the original request by issuing an HCI_Disconnect command. This is now fixed by always explicitly triggering the connection close sequence once the discovery state has been cleaned up. This patch also includes a fix for a crash that occurred as a side-effect of the scenario described above. Bug: 22350508 Change-Id: Ie9cbd3c8f54239b142bfb8dde80d9581ae70ed43
/system/bt/bta/gatt/bta_gattc_act.c
|
dd2021c65b8a1a14e67e4f23628b3e15faf9fdcc |
|
19-Jun-2015 |
Tucker Sylvestro <tuckeris@google.com> |
Always ACK indications in the event of an error This works around a race condition in which the just-connected remote device sends the local device an indication before the appropriate handle/device/etc. has been added to the cache. Previously we were dropping that indication, which led to the remote device timing out and disconnecting some time after the connection had been successfully established. Bug: 21026847 Change-Id: Iea43e7c93e48b5e7a7e78a1c3fb591d6fe972fc3
/system/bt/bta/gatt/bta_gattc_act.c
|
6e872cb5f5329d7f747091ba759f832bab4b45ec |
|
31-Jul-2014 |
Nitin Arora <niarora@codeaurora.org> |
Use correct structure to read LE connection handle This patch corrects the retrieval of the connection handle after the gatt write operation has succeeded successfully. Change-Id: Iac79a64d6c626c2349b6f1a3744ea49a521a45f4
/system/bt/bta/gatt/bta_gattc_act.c
|
89f5e411d9ef31436741288a2267e46dd744e273 |
|
05-Dec-2014 |
Andre Eisenbach <eisenbach@google.com> |
Bluetooth native dumpsys logging support (2/5) Includes support for BTSnoop logging in memory. Bug: 18508263 Change-Id: I175da528cbcdc00d40622647d518a74210cfe6fd
/system/bt/bta/gatt/bta_gattc_act.c
|
b8b3e8070ad027e7a45ca5048ae807c4ec099b15 |
|
18-Apr-2015 |
Priti Aghera <paghera@broadcom.com> |
Initialize white list size after stack reset The white list size is not currently set correctly, preventing devices from being added to the LE whitelist, thus completely breaking re-connects. This fixes the white list management and propagates the correct reason code for HID close events to make sure a device is re-added to the white list if necessary. Bug: 20290744 Change-Id: I46d7254ff3568c9964688cb192b9deb6b7d3062d
/system/bt/bta/gatt/bta_gattc_act.c
|
f8027005333c88a2f097cfd70d15c3d54c7764ae |
|
12-Mar-2015 |
Chris Manton <cmanton@google.com> |
Demote, cleanup and extend observed logging
/system/bt/bta/gatt/bta_gattc_act.c
|
44802768c447ab480d4227b3a852a97d923b816d |
|
24-Dec-2014 |
Sharvil Nanavati <sharvil@google.com> |
Add platform-independent logging macros to OSI. These macros should replace ALOG* and the various trace macros used throughout bluedroid. This change eliminates all uses of the ALOG* macros in favor of the new ones.
/system/bt/bta/gatt/bta_gattc_act.c
|
794f3b5f126fffc3dd1129a710187591348bbf23 |
|
01-Oct-2014 |
Chris Manton <cmanton@google.com> |
Removal of bd.[c|h] Consolidate legacy types into bt_types.h
/system/bt/bta/gatt/bta_gattc_act.c
|
fe7216ca12f91baae733e7c93063db73121af308 |
|
06-May-2014 |
Chris Manton <cmanton@google.com> |
Enforce GKI API buffer usage Also add another API GKI_queue_length(BUFFER_Q *)
/system/bt/bta/gatt/bta_gattc_act.c
|
f37767a17b2d80828f7ac4fa170859cb9e2f0bc6 |
|
05-Nov-2014 |
Andre Eisenbach <eisenbach@google.com> |
HOGP: Do not remove device from whitelist on encryption failure If the encryption times out during the re-connect process for a HOGP device, the device is removed from the whitelist and thus will not reconnect until it is added back to the list. On platforms that do not have a way to reconnect to a device manually, this means the device will never reconnect again until the stack is restarted. This patch checks the reason for the encryption failure and does not remove the device from the whitelist if the encryption failed to a non authentication/key related error. Bug: 18233442 Change-Id: Ifaec4a9224ff9281956715b38d34c2d7c3fecb01
/system/bt/bta/gatt/bta_gattc_act.c
|
433fe016392c7ae003033530f1b3994f2ddad313 |
|
17-Oct-2014 |
Chaojing Sun <cjsun@broadcom.com> |
Cache HOGP HID report map HID reports from a bonded device can be missed when Bluetooth is restarted HOGP report discovery is still active. Caching the report information and loading it back when the stack resets will ensure incoming HID reports can be processed immediately. Bug: 17999991 Change-Id: I4608935f8749537d6b05625b894445a21f844ee0
/system/bt/bta/gatt/bta_gattc_act.c
|
1f58d6ba111106df7db0c2c1b12d5895c6fd0bc3 |
|
16-Oct-2014 |
Andre Eisenbach <eisenbach@google.com> |
Implement GATT service cache When trying to reconnect a previously paired device, notifications may be sent by the remote device before the characteristic handles have been discovered. Thus notifications will be lost. This patch adds a non-volatile attribute cache that allows attribute handles to be restored before notifications are received. Bug: 17999991 Change-Id: I97faefbc6a2fed86cbce7f64d620ed03944d89b2
/system/bt/bta/gatt/bta_gattc_act.c
|
d2246b6ebdc1db60c2db8dd0e34a3121a71117e9 |
|
29-Aug-2014 |
Priti Aghera <paghera@broadcom.com> |
LE: Remove stored link key if encryption fails due to missing key (remote) Remove the link key if encryption fails due to missing key or authentication error. When a remote device loses the bond, all HOGP services cached should be discarded and all client configuration descriptors needs to be re-enabled. This will ensure successful re-connection. Bug: 15022622 Change-Id: Ie1730830c0cbbc294e2cd579d7dca69d16cf8218
/system/bt/bta/gatt/bta_gattc_act.c
|
32429188798b1f34fcf2cc609fd70ed85f20264b |
|
26-Jul-2014 |
Andre Eisenbach <eisenbach@google.com> |
LE: Fix problem where pending command is not sent after pairing If a read/write or other operation triggers SMP pairing with a remote device, the operation should complete once pairing has finished. This patch fixes a bug where the pending command was not sent after pairing. Bug: 16405565 Change-Id: Idb2e54931c71b0a9e009cac318712eb9f5c7e15a
/system/bt/bta/gatt/bta_gattc_act.c
|
90715aad34cdead03fc22bc18891c04838e90e87 |
|
01-Jul-2014 |
Mike J. Chen <mjchen@google.com> |
Fix GKI buffer leak in GATT event handling The GATT event handler was telling the BTA dispatcher that it would always free the GKI msg buffers itself, but in fact this wasn't true. There were some cases where the buffer is queued and freed later (queued in p_clcb->p_q_cmd for later access and freeing), but many times the event handlers (like bta_gattc_ci_save()) don't queue the buffer and don't free it, causing a GKI buffer leak. Also, prevent a double free case (not certain it happens, but in theory it could) if bta_gattc_sm_execute() queues a buffer in bta_gattc_disc_cmpl(). Lastly, remove held flag since it's redundant with whether p_q_cmd is null or not. Just go with one source of truth and not have one shadow the other. Change-Id: I1bd43919b8a2e125076e26cd6a3a08480b3e7e2d Signed-off-by: Mike J. Chen <mjchen@google.com>
/system/bt/bta/gatt/bta_gattc_act.c
|
afa6e1abbedaad8fe854b0f43999b8aeb801af91 |
|
28-Jun-2014 |
Matthew Xie <mattx@google.com> |
resolved conflicts for merge of e8c3d75b to master Change-Id: I78ef69c4d54a36243620ae14296d3507e3339567
|
17b04bd498405f2bb109a85562ebbdcb6bb06e95 |
|
28-Mar-2014 |
Andre Eisenbach <andre@broadcom.com> |
LE: Add notification sent and congestion callbacks (2/4) This change introduces two new callbacks for applications to better handle LE notification flow control and transport congestion. The notification callback is invoked when the remote platform confirms an indication or when a local notification has been passed to the controller. No new notifications should be sent until a callback is received. Congestion callbacks are triggered when a GATT operation cannot be sent to the local Bluetooth controller. Repeatedly calling writeCharacteristic() for example will eventually trigger a congestion callback. Applications cannot send additional data until a further callback is received, indicating that the congestion has cleared up. Also fixes a memory leak issue that can trigger GKI exception for certain GATT operations. Change-Id: Ib470c15ca1f577573a632e9afe4cb9e86680fd8c
/system/bt/bta/gatt/bta_gattc_act.c
|
e8c3d75b75493911ebf0f99c83676359657178f7 |
|
04-May-2014 |
Sharvil Nanavati <sharvil@google.com> |
Logging cleanup: BTIF and APPL. Change-Id: I5b1214642bbb4b9aecc0fd2c899a6ec2c9793286
/system/bt/bta/gatt/bta_gattc_act.c
|
7fa4fba6f59f97df00aff07dbe8fb21b114b3c2c |
|
17-Apr-2014 |
Ganesh Ganapathi Batta <ganeshg@broadcom.com> |
Merge BT 4.1 features The features include: - LE Peripheral Mode - Link Layer topology (LE Central & Peripheral Concurrency) - Dual Mode Topology (Ability to choose LE transport when connecting with other Dual Mode devices) - Fast advertising Interval - Limited Discovery Time Changes - GAP Authentication and Lost Bond - Dual Mode Addressing - Common Profile and Service Error Code - 32 bit UUIDs Change-Id: Ic6701da4cf6aaa390ff2c8816b43157f36b7fb42 Conflicts: stack/btu/btu_hcif.c
/system/bt/bta/gatt/bta_gattc_act.c
|
8fe58875ce67c6e1099e7ba2339dcd2b979491b0 |
|
17-Apr-2014 |
Ganesh Ganapathi Batta <ganeshg@broadcom.com> |
Merge BT 4.1 features The features include: - LE Peripheral Mode - Link Layer topology (LE Central & Peripheral Concurrency) - Dual Mode Topology (Ability to choose LE transport when connecting with other Dual Mode devices) - Fast advertising Interval - Limited Discovery Time Changes - GAP Authentication and Lost Bond - Dual Mode Addressing - Common Profile and Service Error Code - 32 bit UUIDs Change-Id: Ic6701da4cf6aaa390ff2c8816b43157f36b7fb42
/system/bt/bta/gatt/bta_gattc_act.c
|
9291a71c28b2eedff2c1ad760ebe3b3c1f5a6a29 |
|
25-Mar-2014 |
Zhihai Xu <zhihaixu@google.com> |
LE: Add API to configure MTU for a given connection (2/4) This patch from broadcom(andre) bug:13571470 Change-Id: I932905590ee9c40cb67e7d09715c0f8e59d2f662
/system/bt/bta/gatt/bta_gattc_act.c
|
e96ce0e945e210b22bbf6a3869809852c7e1d35e |
|
06-Mar-2014 |
Andre Eisenbach <andre@broadcom.com> |
DO NOT MERGE: LE: Add status callback function for LE broadcasts Cherry pick from master Change-Id: If4342050ce1141a9c2111286e7b3cccdc012a91e
/system/bt/bta/gatt/bta_gattc_act.c
|
5a607b4fe2109f9ba602e932fde16f527b7a2139 |
|
31-Mar-2014 |
Zhihai Xu <zhihaixu@google.com> |
am 20222380: am 2011d136: Merge "LE: Add API to configure MTU for a given connection (2/4)" into klp-modular-dev * commit '20222380588aa9a5e9b5e83b653e3c2a744da6aa': LE: Add API to configure MTU for a given connection (2/4)
|
9426d530e9bbc5d3ffae55515388d49185c61325 |
|
25-Mar-2014 |
Andre Eisenbach <andre@broadcom.com> |
LE: Add API to configure MTU for a given connection (2/4) bug:13571470 Change-Id: I932905590ee9c40cb67e7d09715c0f8e59d2f662
/system/bt/bta/gatt/bta_gattc_act.c
|
670209545cbf585165029d8866972ade111785c5 |
|
20-Mar-2014 |
Andre Eisenbach <andre@broadcom.com> |
am a4611ac0: DO NOT MERGE: cherrypick from master to fix b/13289050 * commit 'a4611ac05f07360785adcff8640da01a3894e4c5': DO NOT MERGE: cherrypick from master to fix b/13289050
|
a4611ac05f07360785adcff8640da01a3894e4c5 |
|
06-Mar-2014 |
Andre Eisenbach <andre@broadcom.com> |
DO NOT MERGE: cherrypick from master to fix b/13289050 LE: Add status callback function for LE broadcasts Change-Id: If4342050ce1141a9c2111286e7b3cccdc012a91e
/system/bt/bta/gatt/bta_gattc_act.c
|
487f9e43faeab586967f035e115af8bd63034ace |
|
06-Mar-2014 |
Andre Eisenbach <andre@broadcom.com> |
LE: Add status callback function for LE broadcasts Change-Id: If4342050ce1141a9c2111286e7b3cccdc012a91e
/system/bt/bta/gatt/bta_gattc_act.c
|
b9912730d082c7bca7d94bb9ddac4447cfad362f |
|
13-Nov-2013 |
Zhihai Xu <zhihaixu@google.com> |
DO NOT MERGE BLE HID device connection failure due to security error. When HID BLE device start encryption, if some other GATT application already start encryption(but not finished yet) by calling gatt_security_check_start. The HID BLE device will be failed to start encryption, which will cause it to disconnect the BLE HID connection. The solution is to check whether we already started the encryption , If the encryption is already started, wait until the encryption finished, then continue to start security check for BLE HID device. add encrytion complete event to notify all GATT client encryption done. filter the event just for BTA HH LE GATT client. bug:11636246 Change-Id: If58e57c623cc8cfa05208587b010bec68c71306c
/system/bt/bta/gatt/bta_gattc_act.c
|
85c1751ac78a4b9ae9f2250130000755081905fb |
|
11-Feb-2014 |
Mike J. Chen <mjchen@google.com> |
am 3d4f5c71: am b83a8234: Merge changes Ifc373f95,I95eb887a,I1e6be2ab,Ia6ea939a,I147d0138, ... into klp-modular-dev * commit '3d4f5c715204c3c5eeb21e351aff73072000f61e': (24 commits) Make all warnings fatal compilation errors Major warnings cleanup Add macro UNUSED() to bt_utils.h Fix unused parameter warning in static function Add "static" to a static function Fix a number of unused parameter warnings in static functions Fix bug with wrong parameter passed to logu Default send_ind_evt should be FALSE Fix warning "implicit declaration of function 'GAP_BleReadPeerPrefConnParams'" Fix unused parameter warnings in static functions by changing prototype Fix some unused parameter warnings in static functions Fix warnings about implicit declaration of bdcmp and bdcpy Fix warning "comparison is always true due to limited range of data type" Fix warning "suggest braces around empty body in an 'if' statement" Fix warning "comparison is always true due to limited range of data type" Add a function prototype for btm_ble_test_command_complete Change argument to return ptr rather than assign to unused local Fix warning "comparison is always true due to limited range of data type" Fix warnings about implicit declarations Fix warning "implicit declaration of function 'bdcmp'" ...
|
5cd8bff2dd0337cb52bf48f312e3d2d55a8882fb |
|
01-Feb-2014 |
Mike J. Chen <mjchen@google.com> |
Major warnings cleanup Mostly fixing unused parameter warnings. A few other warnings also fixed like possible use of unitialized variables (no real issue found, just compiler couldn't follow the path), signed vs unsigned warning. Also fixed some typos, indent issues, removal of dead code, etc. Change-Id: I95eb887aefc4d559d7921f71a0af5f3bfb01ac01 Signed-off-by: Mike J. Chen <mjchen@google.com>
/system/bt/bta/gatt/bta_gattc_act.c
|
27166c68490139f7df282861b10127f85a20f393 |
|
16-Jan-2014 |
Zhihai Xu <zhihaixu@google.com> |
the status in the BLE disconnected callback is always success instead of the reason. bug:12571469 Change-Id: I7b73aae672161cd50d5110daa51a8e04d6f6e841
/system/bt/bta/gatt/bta_gattc_act.c
|
7051db3a486aae771d9b5a81c3546790f86ede34 |
|
13-Nov-2013 |
Zhihai Xu <zhihaixu@google.com> |
BLE HID device connection failure due to security error. When HID BLE device start encryption, if some other GATT application already start encryption(but not finished yet) by calling gatt_security_check_start. The HID BLE device will be failed to start encryption, which will cause it to disconnect the BLE HID connection. The solution is to check whether we already started the encryption , If the encryption is already started, wait until the encryption finished, then continue to start security check for BLE HID device. add encrytion complete event to notify all GATT client encryption done. filter the event just for BTA HH LE GATT client. bug:11636246 Change-Id: If58e57c623cc8cfa05208587b010bec68c71306c
/system/bt/bta/gatt/bta_gattc_act.c
|
36b686527892172cb44091d160b7d2806d49fc76 |
|
23-Oct-2013 |
Zhihai Xu <zhihaixu@google.com> |
Do not deregister HH GATT IF in bta_gattc_disable for hid over GATT The root cause is bta_gattc_disable de-register the HH GATT IF which cause bta_hh_cleanup_disable called before we receive BTA_HH_INT_CLOSE_EVT. The fix is "don't deregister HH GATT IF in bta_gattc_disable and let HH module to de-register the HH GATT IF by bta_hh_le_deregister". because HH GATT IF is a special GATT IF which won't be exposed to uplayer and HH GATT IF belong to BTA HH module, it should be managed by BTA HH. bug:11284861 Change-Id: Ia14cd2be3f3548a4d1e2dcfbc89fa3a75d9651db
/system/bt/bta/gatt/bta_gattc_act.c
|
5c44e45473e5fc2fa89411ab1add7dbfc979f1f8 |
|
07-Aug-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE: Add peripheral role support (2/4) Initial stack support for the LE peripheral role. Change-Id: I261d751b43b7020760bff345b472b6f60caa60be
/system/bt/bta/gatt/bta_gattc_act.c
|
6975b4d711142b885af479721cada448952c6b41 |
|
06-Aug-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE: UPF 45 bug fixes This change fixes the following issues: - Second GATT-over-BR/EDR channel cannot be established when there already is an existing GATT-over-BR/EDR channel - If encryption fails for an LE connection due to a missing key, the security state is not being cleared and blocks all further security processing - When DM discovery of an LE Peripheral device fails with a connection timeout, no further discovery requests can be made - GATT service discovery can get into endless loop when duplicate descriptor definitions are found on the remote device - When GATT over BR/EDR fails, BTA does not give a connection callback to the application initiating the connection - BR/EDR connection to remote platform does not generate API callbacks - Stack crash discovered during UPF after remote disconnects - The host is sending HCI disconnect to invalid HCI handle when SMP fails because of a connection timeout - Possible race condition: If a disconnect is immediately followed by a connection complete, the connection complete cannot be processed in the BTA GATT state machine - Write Complete event is not triggered for Prepare Write requests Change-Id: I539cdedd68007818ff4f0d0213cee1c913f72d0f Conflicts: bta/gatt/bta_gatts_act.c
/system/bt/bta/gatt/bta_gattc_act.c
|
a16d6b07c1c3b08e8765f9d2b16ff1f22b0bdfc6 |
|
02-Jul-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE: Add NULL check for GATT client callback Change-Id: I1087102d8a740969fb0a98b409b58230a3236aeb
/system/bt/bta/gatt/bta_gattc_act.c
|
781b5adee20e222ef87b56b72bfcd3f64013e4a0 |
|
28-May-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE: Integrate power table for GATT No power table exists for GATT, causing the device to never enter sniff mode while using GATT over BR/EDR. Change-Id: I0db539c1814a61af620f3dba560da64481291beb
/system/bt/bta/gatt/bta_gattc_act.c
|
e1202caae4920139ea0cfed5c51f5f76b2dc8bc4 |
|
15-May-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE: Add GATT disable functions This patch adds required disable functions to the GATT sub-system to properly unregister with the stack. Without the disable functions in place, turning Bluetooth off with a GATT device connected may lead to unexpected behaviour and cause GATT to fail on sub-sequent stack restarts. Change-Id: I7cb80e96109e2c09882991298d0487b506f5ffdd
/system/bt/bta/gatt/bta_gattc_act.c
|
dda9a3e71119078181638cf3f5a51e38d173f6d4 |
|
24-May-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE: Only copy UUID for callback on success When a GATT client application registers with the stack, the UUID is always copied into the callback buffer, even if the registration failed. This patch adds a check to make sure an invalid UUID is not passed back to the application. Change-Id: I53ddc7939c096a33a64b00a8902bedba00b61e7d
/system/bt/bta/gatt/bta_gattc_act.c
|
5f63da7ae32d35c42281b999f63e544fec2b705e |
|
14-May-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE: Initialize return status when registering client Initialize status to BTA_GATT_NO_RESOURCES. If cl_rcb is full, the wrong status could be returned to the client. Change-Id: I45d147242c9f24c7636671ffca2f9429c175b8cf
/system/bt/bta/gatt/bta_gattc_act.c
|
48db2d254997a69f8709e94c55607732e7772436 |
|
13-Feb-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE fixes - Null pointer exception check added. An exception occurs at the memcpy in the bta_dm_gatt_disc_result. User removed the battery on Ble device(Smart Nudge) during bonding and connection. This exception occurs sometimes. I used Broadcom LE Explorer to reproduce it. - Fixed disconnect and encryption behaviour Disconnect will now disconnect the physical link immediately when no other application is interested in the device anymore. Also, the connection to a remote device is now dropped if encryption fails. - Deep copy buffers when transfering context Certain BTA server event types require a deep copy of the request data buffers when transfering context. Shallow copy of the pointers involved may cause a crash when overlapping read and write requests are received. - 2nd encryption has not started need to send encryption complete callback when the encryption fail due to link drop without a complete event. Otherwise BTA layer would not be able to clean up the status, and no further encryption can be started. Change-Id: If93e0a188e8779830c8991e4193b96dc95e23e5d
/system/bt/bta/gatt/bta_gattc_act.c
|
ead3cde4bac0c3e32cd31f149093f004eef8ceeb |
|
06-Feb-2013 |
Ganesh Ganapathi Batta <ganeshg@broadcom.com> |
Initial version of BLE support for Bluedroid Change-Id: I9825a5cef9be2559c34c2a529b211b7d471147cf
/system/bt/bta/gatt/bta_gattc_act.c
|
5738f83aeb59361a0a2eda2460113f6dc9194271 |
|
13-Dec-2012 |
The Android Open Source Project <initial-contribution@android.com> |
Snapshot cdeccf6fdd8c2d494ea2867cb37a025bf8879baf Change-Id: Ia2de32ccb97a9641462c72363b0a8c4288f4f36d
/system/bt/bta/gatt/bta_gattc_act.c
|