diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-05-03 20:12:18 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-05-11 10:01:40 +0200 |
commit | 275ff5e8aab1a3630adf22d232eab209ada4f01f (patch) | |
tree | c036725bb88aed5910c3af4e7eee834eb6617af9 /src/lib | |
parent | 62e33107749b54c026abcf7b3494d8b2a8658d73 (diff) |
modify TALER_EXCHANGE_deposits_get() API to avoid NULL pointers and need for deep copies
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/exchange_api_deposits_get.c | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/src/lib/exchange_api_deposits_get.c b/src/lib/exchange_api_deposits_get.c index 6a2ad5c3d..004a24d42 100644 --- a/src/lib/exchange_api_deposits_get.c +++ b/src/lib/exchange_api_deposits_get.c @@ -146,16 +146,13 @@ handle_deposit_wtid_finished (void *cls, break; case MHD_HTTP_OK: { - struct GNUNET_TIME_Absolute execution_time; - struct TALER_Amount coin_contribution; - struct TALER_ExchangePublicKeyP exchange_pub; - struct TALER_ExchangeSignatureP exchange_sig; + struct TALER_EXCHANGE_DepositData dd; struct GNUNET_JSON_Specification spec[] = { GNUNET_JSON_spec_fixed_auto ("wtid", &dwh->depconf.wtid), - GNUNET_JSON_spec_absolute_time ("execution_time", &execution_time), - TALER_JSON_spec_amount ("coin_contribution", &coin_contribution), - GNUNET_JSON_spec_fixed_auto ("exchange_sig", &exchange_sig), - GNUNET_JSON_spec_fixed_auto ("exchange_pub", &exchange_pub), + GNUNET_JSON_spec_absolute_time ("execution_time", &dd.execution_time), + TALER_JSON_spec_amount ("coin_contribution", &dd.coin_contribution), + GNUNET_JSON_spec_fixed_auto ("exchange_sig", &dd.exchange_sig), + GNUNET_JSON_spec_fixed_auto ("exchange_pub", &dd.exchange_pub), GNUNET_JSON_spec_end () }; @@ -169,14 +166,15 @@ handle_deposit_wtid_finished (void *cls, hr.ec = TALER_EC_DEPOSITS_INVALID_BODY_BY_EXCHANGE; break; } - dwh->depconf.execution_time = GNUNET_TIME_absolute_hton (execution_time); + dwh->depconf.execution_time = GNUNET_TIME_absolute_hton ( + dd.execution_time); TALER_amount_hton (&dwh->depconf.coin_contribution, - &coin_contribution); + &dd.coin_contribution); if (GNUNET_OK != verify_deposit_wtid_signature_ok (dwh, j, - &exchange_pub, - &exchange_sig)) + &dd.exchange_pub, + &dd.exchange_sig)) { GNUNET_break_op (0); hr.http_status = 0; @@ -184,14 +182,7 @@ handle_deposit_wtid_finished (void *cls, } else { - struct TALER_EXCHANGE_DepositData dd = { - .exchange_pub = &exchange_pub, - .exchange_sig = &exchange_sig, - .wtid = &dwh->depconf.wtid, - .execution_time = execution_time, - .coin_contribution = &coin_contribution - }; - + dd.wtid = dwh->depconf.wtid; dwh->cb (dwh->cb_cls, &hr, &dd); |