diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-05-08 12:50:25 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-05-08 12:50:25 +0200 |
commit | 02eb80e0b24f5ea3128cb9559429e1a364b5a214 (patch) | |
tree | d71fd83068dce1da377662f74ad1fcc9fa06dd7c /src/exchange/taler-exchange-httpd_reserves_purse.c | |
parent | d3a63881999aa1c6d763263346a0a5979ec6efac (diff) |
-address FIXMEs
Diffstat (limited to 'src/exchange/taler-exchange-httpd_reserves_purse.c')
-rw-r--r-- | src/exchange/taler-exchange-httpd_reserves_purse.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/exchange/taler-exchange-httpd_reserves_purse.c b/src/exchange/taler-exchange-httpd_reserves_purse.c index 5556f78d..ab105159 100644 --- a/src/exchange/taler-exchange-httpd_reserves_purse.c +++ b/src/exchange/taler-exchange-httpd_reserves_purse.c @@ -551,6 +551,7 @@ TEH_handler_reserves_purse ( { GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Cannot purse purse: global fees not configured!\n"); + GNUNET_JSON_parse_free (spec); return TALER_MHD_reply_with_error (connection, MHD_HTTP_INTERNAL_SERVER_ERROR, TALER_EC_EXCHANGE_GENERIC_GLOBAL_FEES_MISSING, @@ -565,7 +566,18 @@ TEH_handler_reserves_purse ( else { rpc.flags = TALER_WAMF_MODE_CREATE_WITH_PURSE_FEE; - // FIXME: check rpc.purse_fee is at or above gf.fees.purse! + if (-1 == + TALER_amount_cmp (&rpc.purse_fee, + &rpc.gf->fees.purse)) + { + /* rpc.purse_fee is below gf.fees.purse! */ + GNUNET_break_op (0); + GNUNET_JSON_parse_free (spec); + return TALER_MHD_reply_with_error (connection, + MHD_HTTP_BAD_REQUEST, + TALER_EC_EXCHANGE_RESERVES_PURSE_FEE_TOO_LOW, + TALER_amount2s (&rpc.gf->fees.purse)); + } } TEH_METRICS_num_verifications[TEH_MT_SIGNATURE_EDDSA]++; if (GNUNET_OK != |