diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-05-05 22:57:55 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-05-05 22:57:55 +0200 |
commit | 0c959e75d109fc914ab8891518f7963ade74cff8 (patch) | |
tree | 2f0bc9375e019a57d9787dddb5eed8fd6aadfc67 /src/exchange/taler-exchange-httpd_refund.c | |
parent | 07d9978fb94b50345dfe0d52f48b1fe962417cfd (diff) |
working on #3641: more on /refund implementation
Diffstat (limited to 'src/exchange/taler-exchange-httpd_refund.c')
-rw-r--r-- | src/exchange/taler-exchange-httpd_refund.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/exchange/taler-exchange-httpd_refund.c b/src/exchange/taler-exchange-httpd_refund.c index c5f24000..b6dc203c 100644 --- a/src/exchange/taler-exchange-httpd_refund.c +++ b/src/exchange/taler-exchange-httpd_refund.c @@ -63,6 +63,21 @@ verify_and_execute_refund (struct MHD_Connection *connection, &refund->refund_fee); dr.merchant = refund->merchant_pub; dr.coin_pub = refund->coin.coin_pub; + if (GNUNET_YES != + TALER_amount_cmp_currency (&refund->refund_amount, + &refund->refund_fee) ) + { + GNUNET_break_op (0); + return TMH_RESPONSE_reply_arg_invalid (connection, + "refund_fee"); + } + if (-1 == TALER_amount_cmp (&refund->refund_amount, + &refund->refund_fee) ) + { + GNUNET_break_op (0); + return TMH_RESPONSE_reply_signature_invalid (connection, + "refund_amount"); + } if (GNUNET_OK != GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MERCHANT_REFUND, &dr.purpose, @@ -73,13 +88,8 @@ verify_and_execute_refund (struct MHD_Connection *connection, return TMH_RESPONSE_reply_signature_invalid (connection, "merchant_sig"); } -#if 1 - GNUNET_break (0); // FIXME: not implemented - return MHD_NO; -#else return TMH_DB_execute_refund (connection, refund); -#endif } |