Prevent EATT teardown from affecting ACL lifetime
Normally, when the last dynamic channel closes and no ATT clients are active, we disconnect. However, if we are an ATT server only (so no ATT clients are open) and have unbonded with the peer only on our side, then the peer will attempt to open EATT and then immediately disconnect after encryption failure. This causes the LE connection to drop if we haven't opened a GATT client ourselves. The fix is to ignore the lifecycle of EATT L2CAP connections when looking at the lifecycle of the ACL link, since they are managed by the stack, not apps. Therefore, if an app opens/closes an L2CAP CoC in the same fashion, it will cause a disconnection - it's only EATT that is special-cased. Test: atest avatar GattTest#test_eatt_when_not_encrypted_no_timeout Test: Manual QA testing has been conducted Bug: 267635511 Change-Id: I83e3cd1436c9548c0f18b13f7350787a61cec068
Loading
Please register or sign in to comment