summaryrefslogtreecommitdiff
path: root/gobex/gobex-transfer.c
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2011-07-12 11:52:05 +0300
committerMarcel Holtmann <marcel@holtmann.org>2012-12-04 22:22:02 +0100
commit0528bfc1a03f3eb6a5942ffba5c272ba0b083870 (patch)
tree3e9278b148e547d3595f93fe695a547f1ccf32b6 /gobex/gobex-transfer.c
parentf0598095d13acbd64358bdf6f7f517ff762846c2 (diff)
downloadbluez-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.c7
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;