Diff between 4a76f6a186588cea52910a9e97b7b2cb4c6c6984 and da732e4f1571f3810f71e908d121fb87c4bbf87b

Changed Files

File Additions Deletions Status
src/device.c +10 -4 modified

Full Patch

diff --git a/src/device.c b/src/device.c
index e8e74d3..def4e02 100644
--- a/src/device.c
+++ b/src/device.c
@@ -1667,11 +1667,17 @@ static DBusMessage *pair_device(DBusConnection *conn, DBusMessage *msg,
 	 * channel first and only then start pairing (there's code for
 	 * this in the ATT connect callback)
 	 */
-	if (device->le && !btd_device_is_connected(device))
-		err = device_connect_le(device);
-	else
+	if (device->le) {
+		if (!btd_device_is_connected(device))
+			err = device_connect_le(device);
+		else
+			err = adapter_create_bonding(adapter, &device->bdaddr,
+							device->bdaddr_type,
+							io_cap);
+	} else {
 		err = adapter_create_bonding(adapter, &device->bdaddr,
-						device->bdaddr_type, io_cap);
+							BDADDR_BREDR, io_cap);
+	}
 
 	if (err < 0)
 		return btd_error_failed(msg, strerror(-err));