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
Loading
Please register or sign in to comment