2021-08-25 20:59:24

by David Lechner

[permalink] [raw]
Subject: [PATCH BlueZ v2 0/2] device: fix advertising data UUIDs ignored when Cache = yes

When [GATT] Cache = yes is set in configuration BlueZ does not use
cached UUIDs for the list of service UUIDs. However, it doesn't clear
the in-memory list of UUIDs received from advertising data, so when
a device is scanned, connected and disconnected, the internal state
still reflects that the UUIDs from the advertising data have already
been handled. device_add_eir_uuids() ignored the UUIDs from the
advertising data because both dev->le_state.svc_resolved == true and
dev->eir_uuids still contains the UUIDs from the previous scan session.

v2 changes:
* split into two patches
* always clear eir_uuids list on disconnect
* move le_state.svc_resolved = false to gatt_cache_cleanup()

Issue: https://github.com/bluez/bluez/issues/192

David Lechner (2):
device: clear eir_uuids list on disconnect
device: set le_state.svc_resolved = false in gatt_cache_cleanup()

src/device.c | 4 ++++
1 file changed, 4 insertions(+)

--
2.25.1