From 577d21f282478d36c8665e0a7a2d2ee07bddd56d Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Sat, 18 Jun 2016 20:04:18 +0000 Subject: [PATCH] -fix --- src/include/gnunet_jsonapi_lib.h | 12 ----------- src/jsonapi/jsonapi_document.c | 1 - src/namestore/plugin_rest_namestore.c | 29 ++++++++++++++++++--------- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/include/gnunet_jsonapi_lib.h b/src/include/gnunet_jsonapi_lib.h index ce41c33f1..f95bff836 100644 --- a/src/include/gnunet_jsonapi_lib.h +++ b/src/include/gnunet_jsonapi_lib.h @@ -276,18 +276,6 @@ struct GNUNET_JSONAPI_Document* GNUNET_JSONAPI_document_new (); -/** - * Create a JSON API primary data from a string - * - * @param data the string of the JSON API data - * @param Pointer where to store new jsonapi Object. - * @return GNUNET_OK on success - */ -int -GNUNET_JSONAPI_document_parse (const char* data, - struct GNUNET_JSONAPI_Document** obj); - - /** * Delete a JSON API primary data * diff --git a/src/jsonapi/jsonapi_document.c b/src/jsonapi/jsonapi_document.c index faf0bd831..600b7ee6a 100644 --- a/src/jsonapi/jsonapi_document.c +++ b/src/jsonapi/jsonapi_document.c @@ -408,4 +408,3 @@ GNUNET_JSON_spec_jsonapi_document (struct GNUNET_JSONAPI_Document **jsonapi_obje return ret; } - diff --git a/src/namestore/plugin_rest_namestore.c b/src/namestore/plugin_rest_namestore.c index 42959bed8..78b6398c6 100644 --- a/src/namestore/plugin_rest_namestore.c +++ b/src/namestore/plugin_rest_namestore.c @@ -723,8 +723,14 @@ namestore_create_cont (struct GNUNET_REST_RequestHandle *con, struct GNUNET_JSONAPI_Document *json_obj; struct GNUNET_JSONAPI_Resource *json_res; json_t *records_json; + json_t *data_js; + json_error_t err; char term_data[handle->rest_handle->data_size+1]; - + struct GNUNET_JSON_Specification docspec[] = { + GNUNET_JSON_spec_jsonapi_document (&json_obj), + GNUNET_JSON_spec_end() + }; + if (strlen (GNUNET_REST_API_NS_NAMESTORE) != strlen (handle->url)) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, @@ -741,8 +747,13 @@ namestore_create_cont (struct GNUNET_REST_RequestHandle *con, memcpy (term_data, handle->rest_handle->data, handle->rest_handle->data_size); - GNUNET_assert (GNUNET_OK == GNUNET_JSONAPI_document_parse (term_data, - &json_obj)); + data_js = json_loads (term_data, + JSON_DECODE_ANY, + &err); + GNUNET_assert (GNUNET_OK == + GNUNET_JSON_parse (data_js, docspec, + NULL, NULL)); + json_decref (data_js); if (NULL == json_obj) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, @@ -762,7 +773,7 @@ namestore_create_cont (struct GNUNET_REST_RequestHandle *con, } json_res = GNUNET_JSONAPI_document_get_resource (json_obj, 0); if (GNUNET_NO == GNUNET_JSONAPI_resource_check_type (json_res, - GNUNET_REST_JSONAPI_NAMESTORE_RECORD)) + GNUNET_REST_JSONAPI_NAMESTORE_RECORD)) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Unsupported JSON data type\n"); @@ -774,7 +785,7 @@ namestore_create_cont (struct GNUNET_REST_RequestHandle *con, } handle->name = GNUNET_strdup (GNUNET_JSONAPI_resource_get_id (json_res)); records_json = GNUNET_JSONAPI_resource_read_attr (json_res, - GNUNET_REST_JSONAPI_NAMESTORE_RECORD); + GNUNET_REST_JSONAPI_NAMESTORE_RECORD); if (NULL == records_json) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, @@ -817,10 +828,10 @@ namestore_zkey_response (void *cls, { name_json = json_string (label); json_res = GNUNET_JSONAPI_resource_new (GNUNET_REST_JSONAPI_NAMESTORE_REVINFO, - handle->zkey_str); + handle->zkey_str); GNUNET_JSONAPI_resource_add_attr (json_res, - GNUNET_REST_JSONAPI_NAMESTORE_NAME, - name_json); + GNUNET_REST_JSONAPI_NAMESTORE_NAME, + name_json); GNUNET_JSONAPI_document_resource_add (json_obj, json_res); json_decref (name_json); } @@ -862,7 +873,7 @@ namestore_zkey_cont (struct GNUNET_REST_RequestHandle *con, return; } handle->zkey_str = GNUNET_CONTAINER_multihashmap_get (handle->rest_handle->url_param_map, - &key); + &key); if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_public_key_from_string (handle->zkey_str, strlen (handle->zkey_str), -- 2.25.1