Re: [PATCH BlueZ v6 1/3] obexd: Unregister profiles when the user is inactive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 22, 2025 at 04:55:22PM +0200, Frédéric Danis wrote:
> Hi Andrew,
> 
> On 30/04/2025 15:14, Andrew Sayers wrote:
> 
> > Obexd is usually run as a user service, and can exhibit surprising
> > behaviour if two users are logged in at the same time.
> > 
> > Unregister profiles when the user is detected to be off-seat.
> > 
> > It may be impossible to detect whether a user is on-seat in some cases.
> > For example, a version of obexd compiled with systemd support might be
> > run outside of a systemd environment.  Warn and leave services
> > registered if that happens.
> > 
> > Obexd can be run as a system service, in which case this check makes no
> > sense.  Disable this check when called with `--system-bus`.
> > 
> > Obexd can also be run by a user that does not have an active session.
> > For example, someone could use `ssh` to access the system.  There might
> > be a use case where someone needs Bluetooth access but can't log in with
> > a keyboard, or there might be a security issue with doing so.  This isn't
> > handled explicitly by this patch, but a future patch could add support
> > by calling `logind_set(FALSE)` in the same way as is currently done
> > with `--system-bus`.
> > 
> > Unregister profiles by closing private connections instead of sending
> > UnregisterProfile on the shared connection.  Pipewire has apparently
> > found the latter to cause long shutdown delays, because bluetoothd
> > may be shutting down and unable to handle this message.
> > 
> > Based in large part on the wireplumber code mentioned by Pauli Virtanen:
> > https://gitlab.freedesktop.org/pipewire/wireplumber/-/blob/master/modules/module-logind.c#L52
> > 
> > Other services are likely to need similar functionality,
> > so I have created a gist to demonstrate the basic technique:
> > https://gist.github.com/andrew-sayers/1c4a24f86a9a4c1b1e38d109f1bd1d1e
> > 
> > Suggested-by: Pauli Virtanen <pav@xxxxxx>
> > Signed-off-by: Andrew Sayers <kernel.org@xxxxxxxxxxxxxxx>
> 
> I have a problem to connect PBAP profile using obexctl, using upstream
> bluetoothd and obexd built on Ubuntu 24.04, the org.bluez.obex.PhonebookAccess1
> interface doesn't appear.
> 
> After bisecting I found that this commit cause this issue.

Hmm, my guess is that seat detection isn't working properly.
Could you try this gist?  You should get "Active: 1" when it starts,
"Active: 0" when you switch away from your current screen, and "Active: 1"
when you switch back.

https://gist.github.com/andrew-sayers/1c4a24f86a9a4c1b1e38d109f1bd1d1e

> 
> -- 
> Frédéric Danis
> Senior Software Engineer
> 
> Collabora Ltd.
> Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, United Kingdom
> Registered in England & Wales, no. 5513718
> 
> 




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux