Skip to content
Commit 56d0e933 authored by Dan Williams's avatar Dan Williams
Browse files

bluetooth: fix GNOME Bluetooth plugin when used from the control center

Since the control center added support for showing the "extra configuration
widgets" (gnome-bluetooth commit 3b5d7dee45cf8b9c8ce91e65aa9004f784a29b34)
the NM BT plugin has been broken for DUN.  During the DUN setup process,
the plugin calls bluez to connect to the phone to start the rfcomm port,
which changes the bluez device's properties.  That triggers a call to
cc_bluetooth_panel_update_properties(), which removes all the extra
configuration widgets and re-adds them.  Unfortunately, that caused all
the NM BT plugin's data to be freed, while the DUN inspect operation
was ongoing, eventually resulting in access of freed data when various
operations finally completed.

To fix that, break out the actual work code into a model, called
NmaBtDevice, that lives longer than the GtkWidget that's embedded in
the control panel, and that handles all the necessary PAN/DUN tasks.
The panel widget is then reworked to simply listen to device signals
so that it can die and a new instance be created, while the work goes
on in the background in NmaBtDevice.
parent d71a9ece
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment