static void test_apparam_nval2_short(void) { GObexApparam *apparam; apparam = g_obex_apparam_decode(tag_nval2_short, sizeof(tag_nval2_short)); g_assert(apparam == NULL); }
static void test_apparam_nval_data(void) { GObexApparam *apparam; apparam = g_obex_apparam_decode(tag_nval_data, sizeof(tag_nval_data)); g_assert(apparam == NULL); }
GObexApparam *g_obex_header_get_apparam(GObexHeader *header) { gboolean ret; const guint8 *val; gsize len; ret = g_obex_header_get_bytes(header, &val, &len); if (!ret) return NULL; return g_obex_apparam_decode(val, len); }
static GObexApparam *parse_and_decode(const void *data, gsize size) { GObexApparam *apparam; guint8 encoded[1024]; gsize len; apparam = g_obex_apparam_decode(data, size); g_assert(apparam != NULL); len = g_obex_apparam_encode(apparam, encoded, sizeof(encoded)); assert_memequal(data, size, encoded, len); return apparam; }
static int get_params(struct obex_session *os, struct mns_session *mns) { const uint8_t *buffer; ssize_t size; size = obex_get_apparam(os, &buffer); if (size < 0) size = 0; mns->inparams = g_obex_apparam_decode(buffer, size); if (mns->inparams == NULL) { DBG("Error when parsing parameters!"); return -EBADR; } return 0; }
static void test_apparam_get_multi(void) { GObexApparam *apparam; char *string; uint8_t data8; uint16_t data16; uint32_t data32; uint64_t data64; gboolean ret; apparam = g_obex_apparam_decode(tag_multi, sizeof(tag_multi)); g_assert(apparam != NULL); ret = g_obex_apparam_get_uint8(apparam, TAG_U8, &data8); g_assert(ret == TRUE); g_assert(data8 == 0x01); ret = g_obex_apparam_get_uint16(apparam, TAG_U16, &data16); g_assert(ret == TRUE); g_assert(data16 == 0x0102); ret = g_obex_apparam_get_uint32(apparam, TAG_U32, &data32); g_assert(ret == TRUE); g_assert(data32 == 0x01020304); ret = g_obex_apparam_get_uint64(apparam, TAG_U64, &data64); g_assert(ret == TRUE); g_assert(data64 == 0x0102030405060708); string = g_obex_apparam_get_string(apparam, TAG_STRING); g_assert(string != NULL); g_assert_cmpstr(string, ==, "ABC"); g_free(string); g_obex_apparam_free(apparam); }
static struct apparam_field *parse_aparam(const uint8_t *buffer, uint32_t hlen) { GObexApparam *apparam; struct apparam_field *param; apparam = g_obex_apparam_decode(buffer, hlen); if (apparam == NULL) return NULL; param = g_new0(struct apparam_field, 1); /* * As per spec when client doesn't include MAXLISTCOUNT_TAG then it * should be assume as Maximum value in vcardlisting 65535 */ param->maxlistcount = UINT16_MAX; g_obex_apparam_get_uint8(apparam, ORDER_TAG, ¶m->order); g_obex_apparam_get_uint8(apparam, SEARCHATTRIB_TAG, ¶m->searchattrib); g_obex_apparam_get_uint8(apparam, FORMAT_TAG, ¶m->format); g_obex_apparam_get_uint16(apparam, MAXLISTCOUNT_TAG, ¶m->maxlistcount); g_obex_apparam_get_uint16(apparam, LISTSTARTOFFSET_TAG, ¶m->liststartoffset); g_obex_apparam_get_uint64(apparam, FILTER_TAG, ¶m->filter); param->searchval = g_obex_apparam_get_string(apparam, SEARCHVALUE_TAG); DBG("o %x sa %x sv %s fil %" G_GINT64_MODIFIER "x for %x max %x off %x", param->order, param->searchattrib, param->searchval, param->filter, param->format, param->maxlistcount, param->liststartoffset); g_obex_apparam_free(apparam); return param; }