Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 4ffd870f authored by Łukasz Rymanowski's avatar Łukasz Rymanowski
Browse files

GattService: Fix server requests

When dual mode devices, which is using Identity address on both
transports, connects GATT on both directions then GATT response from the
GATT servers implemented in JAVA might not be multiplexed correctly
which  will lead to blocking ATT channel and eventually to ACL
disconnect due to GATT timeout.

Root cause for this is that mServerMap in GattService might contain two
entries for the same address but different connId, and when sendResponse
is received by the GattService, code does no guarante that correct
connId will be restored before sending response down to the native
stack.

This patch fixes it.

Bug: 356319811
Bug: 361331170
Test: atest GattServiceTest
Test: manual tests, connecting GATT over two transports and checking
GATT operations.
Flag: com.android.bluetooth.flags.gatt_server_requests_fix

Change-Id: I77a0b2a31413ee90c0c168567705ec4a38508d43
parent 63c95dd5
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment