From 31d69f8ecf50b5fbad3a718949553c59bf6ba3f4 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Wed, 27 Aug 2014 19:00:24 +0300 Subject: [PATCH] gobex: Abort if there is no request to cancel If there is no request to cancel send an abort since otherwise the remote may hang waiting. --- gobex/gobex-transfer.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gobex/gobex-transfer.c b/gobex/gobex-transfer.c index 4e1a6c042..6720129b6 100644 --- a/gobex/gobex-transfer.c +++ b/gobex/gobex-transfer.c @@ -653,8 +653,13 @@ gboolean g_obex_cancel_transfer(guint id, GObexFunc complete_func, transfer->complete_func = complete_func; transfer->user_data = user_data; - if (transfer->req_id == 0) - goto done; + if (!transfer->req_id) { + transfer->req_id = g_obex_abort(transfer->obex, + transfer_abort_response, + transfer, NULL); + if (transfer->req_id) + return TRUE; + } ret = g_obex_cancel_req(transfer->obex, transfer->req_id, FALSE); if (ret) -- 2.47.3