[PATCH] bluetooth: fix missing 'connected' notifications (rh #1255284)



Because Bluez5 dropped DUN support, NM must do that manually which
includes emulating the "connected" property for Bluetooth devices when
DUN is used.  It does this by setting priv->connected = TRUE in
nm_bluez_device_connect_finish().

But for PAN, when NM does process the 'connected' property change
notification, priv->connected is already TRUE and
_take_variant_property_connected() does nothing.  Hence the
corresponding GObject property notification is not emitted,
nm-device-bt.c::check_connect_continue() will never return success, and
the activation times out.

To fix this, ensure that GObject notifications are emitted when the
device is connected, even if emulated internally.

---

diff --git a/src/devices/bluetooth/nm-bluez-device.c b/src/devices/bluetooth/nm-bluez-device.c
index cc44b9e..b703214 100644
--- a/src/devices/bluetooth/nm-bluez-device.c
+++ b/src/devices/bluetooth/nm-bluez-device.c
@@ -600,8 +600,10 @@ nm_bluez_device_connect_finish (NMBluezDevice *self,
                return NULL;
 
        device = (const char *) g_simple_async_result_get_op_res_gpointer (simple);
-       if (device && priv->bluez_version == 5)
+       if (device && priv->bluez_version == 5) {
                priv->connected = TRUE;
+               g_object_notify (G_OBJECT (self), NM_BLUEZ_DEVICE_CONNECTED);
+       }
 
        return device;
 }



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