merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit be699a7703efee2ce651e2c6c43cf15852d4d16e
parent 76e52c42b97dbef12f3b96f10cf6af7bd5154fa2
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 22 Jan 2024 22:02:24 +0100

terminate exchange interactions if we get an error

Diffstat:
Msrc/backend/taler-merchant-httpd_post-orders-ID-pay.c | 17+++++++++++++++++
1 file changed, 17 insertions(+), 0 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_post-orders-ID-pay.c b/src/backend/taler-merchant-httpd_post-orders-ID-pay.c @@ -652,6 +652,23 @@ resume_pay_with_response (struct PayContext *pc, GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Resuming /pay handling. HTTP status for our reply is %u.\n", response_code); + for (unsigned int i = 0; i<pc->num_exchanges; i++) + { + struct ExchangeGroup *eg = pc->egs[i]; + + if (NULL != eg->fo) + { + TMH_EXCHANGES_keys4exchange_cancel (eg->fo); + eg->fo = NULL; + pc->pending_at_eg--; + } + if (NULL != eg->bdh) + { + TALER_EXCHANGE_batch_deposit_cancel (eg->bdh); + eg->bdh = NULL; + } + } + GNUNET_assert (0 == pc->pending_at_eg); if (NULL != pc->timeout_task) { GNUNET_SCHEDULER_cancel (pc->timeout_task);