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

Skip to content
Commit 545bc4e4 authored by William Escande's avatar William Escande
Browse files

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
parent 9891512f
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