summaryrefslogtreecommitdiff
path: root/gobex/gobex-transfer.c
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2011-07-10 12:47:50 +0300
committerMarcel Holtmann <marcel@holtmann.org>2012-12-04 22:22:01 +0100
commit25faf4fc79f09133ab82325774e9e5eaf509e4f4 (patch)
tree21f26774a76753e82329055ff0e67d5a26d41ff6 /gobex/gobex-transfer.c
parent7f5cb418d3a9d0389a14f3f07f5e8240dff7b476 (diff)
downloadbluez-25faf4fc79f09133ab82325774e9e5eaf509e4f4.tar.gz
gobex: Allow calling g_obex_get_rsp later with custom headers
Diffstat (limited to 'gobex/gobex-transfer.c')
-rw-r--r--gobex/gobex-transfer.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/gobex/gobex-transfer.c b/gobex/gobex-transfer.c
index 189282dfe..500a6c9fc 100644
--- a/gobex/gobex-transfer.c
+++ b/gobex/gobex-transfer.c
@@ -32,6 +32,8 @@ struct transfer {
GObex *obex;
+ GSList *hdrs;
+
guint req_id;
gint put_id;
@@ -369,7 +371,8 @@ static void transfer_get_req(GObex *obex, GObexPacket *req, gpointer user_data)
GError *err = NULL;
GObexPacket *rsp;
- rsp = g_obex_packet_new(G_OBEX_RSP_CONTINUE, TRUE, NULL);
+ rsp = g_obex_packet_new(G_OBEX_RSP_CONTINUE, TRUE, transfer->hdrs);
+ transfer->hdrs = NULL;
g_obex_packet_add_body(rsp, get_get_data, transfer);
if (!g_obex_send(obex, rsp, &err)) {
@@ -378,17 +381,18 @@ static void transfer_get_req(GObex *obex, GObexPacket *req, gpointer user_data)
}
}
-guint g_obex_get_rsp(GObex *obex, GObexPacket *req,
- GObexDataProducer data_func, GObexFunc complete_func,
- gpointer user_data, GError **err)
+guint g_obex_get_rsp(GObex *obex, GSList *hdrs, GObexDataProducer data_func,
+ GObexFunc complete_func, gpointer user_data,
+ GError **err)
{
struct transfer *transfer;
gint id;
transfer = transfer_new(obex, G_OBEX_OP_GET, complete_func, user_data);
transfer->data_producer = data_func;
+ transfer->hdrs = hdrs;
- transfer_get_req(obex, req, transfer);
+ transfer_get_req(obex, NULL, transfer);
if (!g_slist_find(transfers, transfer))
return 0;