From 814b06ed671f35fb8480bf632cc3cd47873742f7 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Mon, 4 Jul 2011 23:02:12 +0300 Subject: [PATCH] gobex: Add g_obex_packet_find_header and g_obex_packet_prepend_header --- gobex/gobex-packet.c | 22 ++++++++++++++++++++++ gobex/gobex-packet.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/gobex/gobex-packet.c b/gobex/gobex-packet.c index e55b20569..29a6aa2d9 100644 --- a/gobex/gobex-packet.c +++ b/gobex/gobex-packet.c @@ -64,6 +64,28 @@ guint8 g_obex_packet_get_operation(GObexPacket *pkt, gboolean *final) return pkt->opcode; } +GObexHeader *g_obex_packet_find_header(GObexPacket *pkt, guint8 id) +{ + GSList *l; + + for (l = pkt->headers; l != NULL; l = g_slist_next(l)) { + GObexHeader *hdr = l->data; + + if (g_obex_header_get_id(hdr) == id) + return hdr; + } + + return NULL; +} + +gboolean g_obex_packet_prepend_header(GObexPacket *pkt, GObexHeader *header) +{ + pkt->headers = g_slist_prepend(pkt->headers, header); + pkt->hlen += g_obex_header_get_length(header); + + return TRUE; +} + gboolean g_obex_packet_add_header(GObexPacket *pkt, GObexHeader *header) { pkt->headers = g_slist_append(pkt->headers, header); diff --git a/gobex/gobex-packet.h b/gobex/gobex-packet.h index 16dcf0fab..0d38c1da0 100644 --- a/gobex/gobex-packet.h +++ b/gobex/gobex-packet.h @@ -82,6 +82,8 @@ typedef struct _GObexPacket GObexPacket; GObexHeader *g_obex_packet_get_header(GObexPacket *pkt, guint8 id); guint8 g_obex_packet_get_operation(GObexPacket *pkt, gboolean *final); +GObexHeader *g_obex_packet_find_header(GObexPacket *pkt, guint8 id); +gboolean g_obex_packet_prepend_header(GObexPacket *pkt, GObexHeader *header); gboolean g_obex_packet_add_header(GObexPacket *pkt, GObexHeader *header); gboolean g_obex_packet_set_data(GObexPacket *pkt, const void *data, gsize len, GObexDataPolicy data_policy); -- 2.47.3