From 59b4e1cdd81524a2b6b20d34dcdac69b7f1a385e Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 22 Jun 2015 21:18:44 +0200 Subject: almost finished checking if reserve transaction history well-formedness for /withdraw/sign error checking --- src/mint-lib/mint_api_json.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'src/mint-lib/mint_api_json.c') diff --git a/src/mint-lib/mint_api_json.c b/src/mint-lib/mint_api_json.c index e2a73bdd..a28293cf 100644 --- a/src/mint-lib/mint_api_json.c +++ b/src/mint-lib/mint_api_json.c @@ -72,6 +72,20 @@ parse_json (json_t *root, } break; + case MAJ_CMD_STRING: + { + const char *str; + + str = json_string_value (pos); + if (NULL == str) + { + GNUNET_break_op (0); + return i; + } + *spec[i].details.strptr = str; + } + break; + case MAJ_CMD_BINARY_FIXED: { const char *str; @@ -274,6 +288,8 @@ parse_free (struct MAJ_Specification *spec, break; case MAJ_CMD_BINARY_FIXED: break; + case MAJ_CMD_STRING: + break; case MAJ_CMD_BINARY_VARIABLE: GNUNET_free (*spec[i].details.variable_data.dest_p); *spec[i].details.variable_data.dest_p = NULL; @@ -340,6 +356,26 @@ MAJ_parse_free (struct MAJ_Specification *spec) } +/** + * The expected field stores a string. + * + * @param name name of the JSON field + * @param strptr where to store a pointer to the field + */ +struct MAJ_Specification +MAJ_spec_string (const char *name, + const char **strptr) +{ + struct MAJ_Specification ret = + { + .cmd = MAJ_CMD_STRING, + .field = name, + .details.strptr = strptr + }; + return ret; +} + + /** * Specification for parsing an absolute time value. * -- cgit v1.2.3