From b5a58e516c0d0ee48547dd7bb9f3d1a3b9ebf15e Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 17 Aug 2015 03:24:10 +0200 Subject: fix /refresh/link response handling --- src/mint-lib/mint_api_refresh_link.c | 135 ++++++++++++++++++++++++----------- 1 file changed, 92 insertions(+), 43 deletions(-) (limited to 'src/mint-lib/mint_api_refresh_link.c') diff --git a/src/mint-lib/mint_api_refresh_link.c b/src/mint-lib/mint_api_refresh_link.c index f17949af..b4bed98e 100644 --- a/src/mint-lib/mint_api_refresh_link.c +++ b/src/mint-lib/mint_api_refresh_link.c @@ -173,74 +173,123 @@ static int parse_refresh_link_ok (struct TALER_MINT_RefreshLinkHandle *rlh, json_t *json) { - json_t *jsona; - struct TALER_TransferPublicKeyP trans_pub; - struct TALER_EncryptedLinkSecretP secret_enc; - struct MAJ_Specification spec[] = { - MAJ_spec_json ("new_coins", &jsona), - MAJ_spec_fixed_auto ("trans_pub", &trans_pub), - MAJ_spec_fixed_auto ("secret_enc", &secret_enc), - MAJ_spec_end - }; + unsigned int session; unsigned int num_coins; int ret; - if (GNUNET_OK != - MAJ_parse_json (json, - spec)) + if (! json_is_array (json)) { GNUNET_break_op (0); return GNUNET_SYSERR; } - if (! json_is_array (jsona)) + num_coins = 0; + for (session=0;sessionlink_cb (rlh->link_cb_cls, - MHD_HTTP_OK, - num_coins, - coin_privs, - sigs, - pubs, - json); + MHD_HTTP_OK, + num_coins, + coin_privs, + sigs, + pubs, + json); rlh->link_cb = NULL; ret = GNUNET_OK; } + else + { + GNUNET_break_op (0); + ret = GNUNET_SYSERR; + } /* clean up */ for (i=0;i