summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-04-03 13:59:01 +0200
committerChristian Grothoff <christian@grothoff.org>2017-04-03 13:59:01 +0200
commitc9995bd758985f6e970e53a62804a423b889994e (patch)
tree7a02c59fa0ada77c94b5ead3968cebc1e1cdfdbb
parente8f7674ca44d705df13ff1d562a92280e215d52e (diff)
downloadexchange-c9995bd758985f6e970e53a62804a423b889994e.tar.gz
exchange-c9995bd758985f6e970e53a62804a423b889994e.tar.bz2
exchange-c9995bd758985f6e970e53a62804a423b889994e.zip
handle TALER_EXCHANGEDB_RO_PAYBACK_COIN in DB balance calulations
-rw-r--r--src/exchange/taler-exchange-httpd_db.c17
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))