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:
| M | src/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);