public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: Eisenkolb Thomas <Eisenkolb.Thomas@fronius.com>
To: "linux-bluetooth@vger.kernel.org" <linux-bluetooth@vger.kernel.org>
Cc: Luiz Augusto von Dentz <luiz.dentz@gmail.com>,
	David Lechner <david@lechnology.com>
Subject: AW: [PATCH BlueZ v2 1/2] device: clear eir_uuids list on disconnect
Date: Thu, 26 Aug 2021 04:24:32 +0000	[thread overview]
Message-ID: <c74ad033ff8240f8a77b00c6f8f678a0@fronius.com> (raw)
In-Reply-To: <CABBYNZJzTmpvcaw5eDa9awvVZYQdJuKW7EQSYfpMOCzhorP8cg@mail.gmail.com>

Hello,

I have just found the same problem even if [GATT] Cache = no is set in main.conf.
It is simply the same because the device is held as temporary device.

Additionally the method "dev_property_get_uuids" in device.c only returns UUIDs of 
the cached (temporary hold) device because dev->le_state.svc_resolved is not turned 
to false on disconnect. So if a disconnected device advertised an new UUID, you never
get notified about it through dbus.

Through DBus device node I would expect to get both UUID lists. The cached ones and 
also the advertised ones.
Actually I just merge the two lists and provide the result to DBus device->UUIDs request.

Hope you can change this.

Thanks.

Thomas

-----Ursprüngliche Nachricht-----
Von: Luiz Augusto von Dentz [mailto:luiz.dentz@gmail.com] 
Gesendet: Donnerstag, 26. August 2021 00:13
An: David Lechner <david@lechnology.com>
Cc: linux-bluetooth@vger.kernel.org
Betreff: Re: [PATCH BlueZ v2 1/2] device: clear eir_uuids list on disconnect

Hi David,

On Wed, Aug 25, 2021 at 9:54 AM David Lechner <david@lechnology.com> wrote:
>
> 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
> Signed-off-by: David Lechner <david@lechnology.com>
> ---
>  src/device.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/src/device.c b/src/device.c index 807106812..53ef3e9a1 
> 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.25.1

Applied, thanks.


--
Luiz Augusto von Dentz

  reply	other threads:[~2021-08-26  4:31 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-25 16:51 [PATCH BlueZ v2 0/2] device: fix advertising data UUIDs ignored when Cache = yes David Lechner
2021-08-25 16:51 ` [PATCH BlueZ v2 1/2] device: clear eir_uuids list on disconnect David Lechner
2021-08-25 17:16   ` device: fix advertising data UUIDs ignored when Cache = yes bluez.test.bot
2021-08-25 22:12   ` [PATCH BlueZ v2 1/2] device: clear eir_uuids list on disconnect Luiz Augusto von Dentz
2021-08-26  4:24     ` Eisenkolb Thomas [this message]
2021-08-26 16:47       ` AW: " David Lechner
2021-08-25 16:51 ` [PATCH BlueZ v2 2/2] device: set le_state.svc_resolved = false in gatt_cache_cleanup() David Lechner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c74ad033ff8240f8a77b00c6f8f678a0@fronius.com \
    --to=eisenkolb.thomas@fronius.com \
    --cc=david@lechnology.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=luiz.dentz@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox