diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-05-25 21:34:18 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-05-25 21:34:18 +0200 |
commit | 068068f40fc97f09525aaccf560a1be352abd159 (patch) | |
tree | b4331505e2c538d591a755352aaeee912d6cac6f /src/exchange/taler-exchange-httpd_recoup.c | |
parent | 0d1ab614c06f60f79de75a0f2ec30c33a69820dd (diff) | |
download | exchange-068068f40fc97f09525aaccf560a1be352abd159.tar.gz exchange-068068f40fc97f09525aaccf560a1be352abd159.tar.bz2 exchange-068068f40fc97f09525aaccf560a1be352abd159.zip |
return signed error message with HTTP_GONE status if denomination is not currently valid for specified operation (#6889)
Diffstat (limited to 'src/exchange/taler-exchange-httpd_recoup.c')
-rw-r--r-- | src/exchange/taler-exchange-httpd_recoup.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/exchange/taler-exchange-httpd_recoup.c b/src/exchange/taler-exchange-httpd_recoup.c index c1aadb83e..cd12be0d9 100644 --- a/src/exchange/taler-exchange-httpd_recoup.c +++ b/src/exchange/taler-exchange-httpd_recoup.c @@ -373,32 +373,36 @@ verify_and_execute_recoup (struct MHD_Connection *connection, if (NULL == dk) return mret; now = GNUNET_TIME_absolute_get (); + (void) GNUNET_TIME_round_abs (&now); if (now.abs_value_us >= dk->meta.expire_deposit.abs_value_us) { /* This denomination is past the expiration time for recoup */ - return TALER_MHD_reply_with_error ( + return TEH_RESPONSE_reply_expired_denom_pub_hash ( connection, - MHD_HTTP_GONE, + &coin->denom_pub_hash, + now, TALER_EC_EXCHANGE_GENERIC_DENOMINATION_EXPIRED, - NULL); + "RECOUP"); } if (now.abs_value_us < dk->meta.start.abs_value_us) { /* This denomination is not yet valid */ - return TALER_MHD_reply_with_error ( + return TEH_RESPONSE_reply_expired_denom_pub_hash ( connection, - MHD_HTTP_PRECONDITION_FAILED, + &coin->denom_pub_hash, + now, TALER_EC_EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE, - NULL); + "RECOUP"); } if (! dk->recoup_possible) { /* This denomination is not eligible for recoup */ - return TALER_MHD_reply_with_error ( + return TEH_RESPONSE_reply_expired_denom_pub_hash ( connection, - MHD_HTTP_NOT_FOUND, + &coin->denom_pub_hash, + now, TALER_EC_EXCHANGE_RECOUP_NOT_ELIGIBLE, - NULL); + "RECOUP"); } pc.value = dk->meta.value; |