diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2011-07-12 11:52:05 +0300 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-12-04 22:22:02 +0100 |
commit | 0528bfc1a03f3eb6a5942ffba5c272ba0b083870 (patch) | |
tree | 3e9278b148e547d3595f93fe695a547f1ccf32b6 /gobex/gobex-transfer.c | |
parent | f0598095d13acbd64358bdf6f7f517ff762846c2 (diff) | |
download | bluez-0528bfc1a03f3eb6a5942ffba5c272ba0b083870.tar.gz |
gobex: Add support for returning -EAGAIN from producer callback
Diffstat (limited to 'gobex/gobex-transfer.c')
-rw-r--r-- | gobex/gobex-transfer.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gobex/gobex-transfer.c b/gobex/gobex-transfer.c index a23442e68..38a0b867f 100644 --- a/gobex/gobex-transfer.c +++ b/gobex/gobex-transfer.c @@ -20,6 +20,7 @@ */ #include <string.h> +#include <errno.h> #include "gobex.h" @@ -99,6 +100,9 @@ static gssize put_get_data(void *buf, gsize len, gpointer user_data) if (ret >= 0) return ret; + if (ret == -EAGAIN) + return ret; + req = g_obex_packet_new(G_OBEX_OP_ABORT, TRUE, G_OBEX_HDR_INVALID); transfer->req_id = g_obex_send_req(transfer->obex, req, -1, transfer_abort_response, @@ -376,6 +380,9 @@ static gssize get_get_data(void *buf, gsize len, gpointer user_data) if (ret > 0) return ret; + if (ret == -EAGAIN) + return ret; + if (ret == 0) { transfer_complete(transfer, NULL); return ret; |