2024-02-01 15:38:41

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ v1 3/5] device: Don't remove object if a service is connecting

From: Luiz Augusto von Dentz <[email protected]>

If a service is connecting just restart the timer to give it more time
to complete the connection or disconnect.
---
src/device.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/src/device.c b/src/device.c
index afd073c6c2a5..1db96d9a672c 100644
--- a/src/device.c
+++ b/src/device.c
@@ -3276,6 +3276,13 @@ static bool device_disappeared(gpointer user_data)
{
struct btd_device *dev = user_data;

+ /* If there are services connecting restart the timer to give more time
+ * for the service to either complete the connection or disconnect.
+ */
+ if (find_service_with_state(dev->services,
+ BTD_SERVICE_STATE_CONNECTING))
+ return TRUE;
+
dev->temporary_timer = 0;

btd_adapter_remove_device(dev->adapter, dev);
--
2.43.0