Diff between 69b477e378f049355437b0078e75ee6328e667f3 and 40ab317e0be5ec77d71d3296f7ad1a4f560a2427

Changed Files

File Additions Deletions Status
src/device.c +6 -1 modified

Full Patch

diff --git a/src/device.c b/src/device.c
index b004f43..83a794e 100644
--- a/src/device.c
+++ b/src/device.c
@@ -1233,6 +1233,9 @@ int device_block(struct btd_device *device, gboolean update_only)
 	if (device->blocked)
 		return 0;
 
+	if (device->disconn_timer > 0)
+		g_source_remove(device->disconn_timer);
+
 	disconnect_all(device);
 
 	while (device->services != NULL) {
@@ -3934,8 +3937,10 @@ void device_remove(struct btd_device *device, gboolean remove_stored)
 	g_slist_free(device->pending);
 	device->pending = NULL;
 
-	if (btd_device_is_connected(device))
+	if (btd_device_is_connected(device)) {
+		g_source_remove(device->disconn_timer);
 		disconnect_all(device);
+	}
 
 	if (device->store_id > 0) {
 		g_source_remove(device->store_id);