[PATCH 1/2] core: Fix cleaning pending services when ACL connection failed

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

 



In case ACL connection failed to establish, all pending services shall
be always removed. At the moment it's only done in case there's pending
Connect message which does not take into account reconnect scenario,
i.e. service connection was triggered by reconnection timeout and there
is no pending message.

In such case, when reconnection failed there will be some services on
pending list and subsequent reconnect attempts will fail with EBUSY
immediately.
---
 src/device.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/device.c b/src/device.c
index 8222610..a9b644b 100644
--- a/src/device.c
+++ b/src/device.c
@@ -1220,6 +1220,9 @@ static void device_profile_connected(struct btd_device *dev,
 		return;
 
 done:
+	g_slist_free(dev->pending);
+	dev->pending = NULL;
+
 	if (!dev->connect)
 		return;
 
@@ -1241,9 +1244,6 @@ done:
 		g_dbus_send_reply(dbus_conn, dev->connect, DBUS_TYPE_INVALID);
 	}
 
-	g_slist_free(dev->pending);
-	dev->pending = NULL;
-
 	dbus_message_unref(dev->connect);
 	dev->connect = NULL;
 }
-- 
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux