diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-04-03 13:59:01 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-04-03 13:59:01 +0200 |
commit | c9995bd758985f6e970e53a62804a423b889994e (patch) | |
tree | 7a02c59fa0ada77c94b5ead3968cebc1e1cdfdbb /src/exchange | |
parent | e8f7674ca44d705df13ff1d562a92280e215d52e (diff) | |
download | exchange-c9995bd758985f6e970e53a62804a423b889994e.tar.xz |
handle TALER_EXCHANGEDB_RO_PAYBACK_COIN in DB balance calulations
Diffstat (limited to 'src/exchange')
-rw-r--r-- | src/exchange/taler-exchange-httpd_db.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/exchange/taler-exchange-httpd_db.c b/src/exchange/taler-exchange-httpd_db.c index 23a592963..f2cd2b3ce 100644 --- a/src/exchange/taler-exchange-httpd_db.c +++ b/src/exchange/taler-exchange-httpd_db.c @@ -764,6 +764,23 @@ execute_reserve_withdraw_transaction (struct MHD_Connection *connection, } res |= 2; break; + + case TALER_EXCHANGEDB_RO_PAYBACK_COIN: + if (0 == (res & 1)) + deposit_total = pos->details.payback->value; + else + if (GNUNET_OK != + TALER_amount_add (&deposit_total, + &deposit_total, + &pos->details.payback->value)) + { + TEH_plugin->rollback (TEH_plugin->cls, + session); + return TEH_RESPONSE_reply_internal_db_error (connection, + TALER_EC_WITHDRAW_AMOUNT_DEPOSITS_OVERFLOW); + } + res |= 1; + break; } } if (0 == (res & 1)) |