diff --git a/obexd/client/transfer.c b/obexd/client/transfer.c
index a7a85a0..879d67d 100644
--- a/obexd/client/transfer.c
+++ b/obexd/client/transfer.c
GObex *obex;
uint8_t status;
GObexApparam *apparam;
+ GSList *headers;
guint8 op;
struct transfer_callback *callback;
DBusConnection *conn;
{ }
};
+static void header_free(void *data, void *user_data)
+{
+ g_obex_header_free(data);
+}
+
static void obc_transfer_free(struct obc_transfer *transfer)
{
DBG("%p", transfer);
if (transfer->obex)
g_obex_unref(transfer->obex);
+ g_slist_foreach(transfer->headers, header_free, NULL);
+ g_slist_free(transfer->headers);
g_free(transfer->callback);
g_free(transfer->owner);
g_free(transfer->filename);
g_obex_packet_add_bytes(req, G_OBEX_HDR_TYPE, transfer->type,
strlen(transfer->type) + 1);
+ while (transfer->headers) {
+ hdr = transfer->headers->data;
+ g_obex_packet_add_header(req, hdr);
+ transfer->headers = g_slist_remove(transfer->headers, hdr);
+ }
+
if (transfer->apparam != NULL) {
hdr = g_obex_header_new_apparam(transfer->apparam);
g_obex_packet_add_header(req, hdr);
{
return transfer->size;
}
+
+void obc_transfer_add_header(struct obc_transfer *transfer, void *data)
+{
+ transfer->headers = g_slist_append(transfer->headers, data);
+}
diff --git a/obexd/client/transfer.h b/obexd/client/transfer.h
index 323332a..1ed1959 100644
--- a/obexd/client/transfer.h
+++ b/obexd/client/transfer.h
DBusMessage *obc_transfer_create_dbus_reply(struct obc_transfer *transfer,
DBusMessage *message);
+
+void obc_transfer_add_header(struct obc_transfer *transfer, void *data);