OSDN Git Service

gobex: Add g_obex_packet_find_header and g_obex_packet_prepend_header
authorJohan Hedberg <johan.hedberg@intel.com>
Mon, 4 Jul 2011 20:02:12 +0000 (23:02 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 4 Dec 2012 21:21:59 +0000 (22:21 +0100)
gobex/gobex-packet.c
gobex/gobex-packet.h

index e55b205..29a6aa2 100644 (file)
@@ -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);
index 16dcf0f..0d38c1d 100644 (file)
@@ -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);