diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2014-08-27 19:00:24 +0300 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2014-08-29 10:32:27 +0300 |
commit | 31d69f8ecf50b5fbad3a718949553c59bf6ba3f4 (patch) | |
tree | ef62fa3e917ea3816bfdb289016ca9d559e542e8 /gobex | |
parent | 3ff1f6b5e8902c6e7c37db0e84cd284648b4d272 (diff) | |
download | bluez-31d69f8ecf50b5fbad3a718949553c59bf6ba3f4.tar.gz |
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.
Diffstat (limited to 'gobex')
-rw-r--r-- | gobex/gobex-transfer.c | 9 |
1 files 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) |