Diff between 7f5cb418d3a9d0389a14f3f07f5e8240dff7b476 and 25faf4fc79f09133ab82325774e9e5eaf509e4f4

Changed Files

File Additions Deletions Status
gobex/gobex-transfer.c +9 -5 modified
gobex/gobex-transfer.h +3 -3 modified
unit/test-gobex-transfer.c +1 -1 modified

Full Patch

diff --git a/gobex/gobex-transfer.c b/gobex/gobex-transfer.c
index 189282d..500a6c9 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;
 
diff --git a/gobex/gobex-transfer.h b/gobex/gobex-transfer.h
index a8a0041..21e14c8 100644
--- a/gobex/gobex-transfer.h
+++ b/gobex/gobex-transfer.h
@@ -39,9 +39,9 @@ guint g_obex_put_rsp(GObex *obex, GObexPacket *req,
 			GObexDataConsumer data_func, GObexFunc complete_func,
 			gpointer user_data, GError **err);
 
-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);
 
 gboolean g_obex_cancel_transfer(guint id);
 
diff --git a/unit/test-gobex-transfer.c b/unit/test-gobex-transfer.c
index ec18ce5..68c6a51 100644
--- a/unit/test-gobex-transfer.c
+++ b/unit/test-gobex-transfer.c
@@ -273,7 +273,7 @@ static void handle_get(GObex *obex, GObexPacket *req, gpointer user_data)
 		return;
 	}
 
-	id = g_obex_get_rsp(obex, req, provide_data, transfer_complete,
+	id = g_obex_get_rsp(obex, NULL, provide_data, transfer_complete,
 								d, &d->err);
 	if (id == 0)
 		g_main_loop_quit(d->mainloop);