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 5ec8780..fd177f4 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.5.0 -- 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