static void test_header_uint8(void) { GObexHeader *header; uint8_t buf[1024]; size_t len; header = g_obex_header_new_uint8(G_OBEX_HDR_ACTION, 0xab); g_assert(header != NULL); len = g_obex_header_encode(header, buf, sizeof(buf)); assert_memequal(hdr_actionid, sizeof(hdr_actionid), buf, len); g_obex_header_free(header); }
GSList *g_obex_header_create_list(guint8 first_hdr_id, va_list args, gsize *total_len) { unsigned int id = first_hdr_id; GSList *l = NULL; g_obex_debug(G_OBEX_DEBUG_HEADER, ""); *total_len = 0; while (id != G_OBEX_HDR_INVALID) { GObexHeader *hdr; const char *str; const void *bytes; unsigned int val; gsize len; switch (G_OBEX_HDR_ENC(id)) { case G_OBEX_HDR_ENC_UNICODE: str = va_arg(args, const char *); hdr = g_obex_header_new_unicode(id, str); break; case G_OBEX_HDR_ENC_BYTES: bytes = va_arg(args, void *); len = va_arg(args, gsize); hdr = g_obex_header_new_bytes(id, bytes, len); break; case G_OBEX_HDR_ENC_UINT8: val = va_arg(args, unsigned int); hdr = g_obex_header_new_uint8(id, val); break; case G_OBEX_HDR_ENC_UINT32: val = va_arg(args, unsigned int); hdr = g_obex_header_new_uint32(id, val); break; default: g_assert_not_reached(); } l = g_slist_append(l, hdr); *total_len += hdr->hlen; id = va_arg(args, int); } return l; }
static void prepare_srm_req(GObex *obex, GObexPacket *pkt) { GObexHeader *hdr; if (!obex->use_srm) return; if (obex->srm != NULL && obex->srm->enabled) return; hdr = g_obex_packet_get_header(pkt, G_OBEX_HDR_SRM); if (hdr != NULL) return; hdr = g_obex_header_new_uint8(G_OBEX_HDR_SRM, G_OBEX_SRM_ENABLE); g_obex_packet_prepend_header(pkt, hdr); }