From 22f1178a7b2c90dc9c38505124745e68e2a6ec69 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Fri, 25 Jan 2013 11:44:20 +0200 Subject: [PATCH] core: Connect ATT IO before pairing Due to kernel-side issues we might miss ATT commands which arrive during the SMP procedure. Therefore, connect ATT first and only then attempt to pair. --- src/device.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/device.c b/src/device.c index ea316b717..f11ce2bd3 100644 --- a/src/device.c +++ b/src/device.c @@ -1411,8 +1411,12 @@ static DBusMessage *pair_device(DBusConnection *conn, DBusMessage *msg, device->bonding = bonding; bonding->device = device; - err = adapter_create_bonding(adapter, &device->bdaddr, - device->bdaddr_type, io_cap); + if (device_is_le(device) && !device_is_connected(device)) + err = device_connect_le(device); + else + err = adapter_create_bonding(adapter, &device->bdaddr, + device->bdaddr_type, io_cap); + if (err < 0) return btd_error_failed(msg, strerror(-err)); -- 2.47.3