From c731508e2c3b9eab2da2293f32931f02d880ad3f Mon Sep 17 00:00:00 2001 From: David Lechner Date: Wed, 25 Aug 2021 11:51:24 -0500 Subject: [PATCH] device: clear eir_uuids list on disconnect The eir_uuids list contains GATT service UUIDs from advertising data. The device may advertise different UUIDs each time it is scanned and connected, so the list needs to be cleared when the device disconnects. This partially fixes an issue where the UUIDs D-Bus property is empty after scanning, connecting, disconnecting and scanning again when [GATT] Cache = yes is set in main.conf. Issue: https://github.com/bluez/bluez/issues/192 --- src/device.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/device.c b/src/device.c index 40fd826ba..2aa0295e7 100644 --- a/src/device.c +++ b/src/device.c @@ -3129,6 +3129,9 @@ void device_remove_connection(struct btd_device *device, uint8_t bdaddr_type) device_update_last_seen(device, bdaddr_type); + g_slist_free_full(device->eir_uuids, g_free); + device->eir_uuids = NULL; + g_dbus_emit_property_changed(dbus_conn, device->path, DEVICE_INTERFACE, "Connected"); -- 2.47.3