From baa84b72324050101142941d120a44d4596ef2bf Mon Sep 17 00:00:00 2001 From: Mikel Astiz Date: Mon, 27 Feb 2012 10:54:36 +0100 Subject: [PATCH] obexd: fix canceling queued transfers The Cancel() method in the D-Bus api should also abort queued transfers, which should just be removed from the queue. --- obexd/client/transfer.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/obexd/client/transfer.c b/obexd/client/transfer.c index dded02fbe..d1edef243 100644 --- a/obexd/client/transfer.c +++ b/obexd/client/transfer.c @@ -143,11 +143,15 @@ static void obc_transfer_abort(struct obc_transfer *transfer) { struct transfer_callback *callback = transfer->callback; - if (transfer->xfer == 0) - return; + if (transfer->xfer > 0) { + g_obex_cancel_transfer(transfer->xfer); + transfer->xfer = 0; + } - g_obex_cancel_transfer(transfer->xfer); - transfer->xfer = 0; + if (transfer->obex != NULL) { + g_obex_unref(transfer->obex); + transfer->obex = NULL; + } if (callback) { GError *err; -- 2.47.3