All of lore.kernel.org
 help / color / mirror / Atom feed
* how to cleanly shutdown an application using HCI_CHANNEL_USER
@ 2021-08-17 22:07 Peter A. Bigot
  2021-08-19 15:01 ` Marcel Holtmann
  0 siblings, 1 reply; 4+ messages in thread
From: Peter A. Bigot @ 2021-08-17 22:07 UTC (permalink / raw)
  To: linux-bluetooth

I'm using an AF_BLUETOOTH socket bound with HCI_CHANNEL_USER from a
user-mode application with cap_net_admin=ep.  As expected this
requires the device be down, and brings the device up automatically.

When I close that socket and exit the application, the device appears
to remain up forever.  Which prevents me from re-starting the
application.

I tried to issue HCIDEVDOWN before closing, but that produces EBADFD
because ioctls cannot be performed with HCI_CHANNEL_RAW.

I can bring the interface down from within the application if, after
closing the socket, I wait a second or so, then create a new bound
HCI_CHANNEL_RAW socket and issue HCIDEVDOWN on it.

Is there some other way to cleanly shut down an application that used
HCI_CHANNEL_USER so that the device is returned to down state on exit?
Or is this supposed to happen automatically (I see code that suggests
it should)?

Kernel version is 5.11.0-7620-generic (System76), and I'm using go
1.16, if that's relevant.

Thanks!

Peter

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-08-23 20:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-17 22:07 how to cleanly shutdown an application using HCI_CHANNEL_USER Peter A. Bigot
2021-08-19 15:01 ` Marcel Holtmann
2021-08-19 17:51   ` Luiz Augusto von Dentz
2021-08-23 20:32   ` Tedd Ho-Jeong An

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.