From 0ab3242f26d6c3dda80cf0b162d65f138613a2ed Mon Sep 17 00:00:00 2001 From: Jakub Pawlowski Date: Thu, 1 Oct 2015 22:18:58 -0700 Subject: [PATCH] core/device: Fix disconnect for connect attempt Right now calling Disconnect from DBus on device that's not advertising or out of sight will not stop the connect attempt in kernel. This patch fixes that by making sure that att_io is properly cleaned up on disconnect. --- src/device.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/device.c b/src/device.c index 5ec8780d8..fd177f48f 100644 --- a/src/device.c +++ b/src/device.c @@ -1355,6 +1355,12 @@ void device_request_disconnect(struct btd_device *device, DBusMessage *msg) if (device->browse) browse_request_cancel(device->browse); + if (device->att_io) { + g_io_channel_shutdown(device->att_io, FALSE, NULL); + g_io_channel_unref(device->att_io); + device->att_io = NULL; + } + if (device->connect) { DBusMessage *reply = btd_error_failed(device->connect, "Cancelled"); -- 2.47.3