merchant

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

commit dac3175e350122d74c6600a89d6045f449705ab1
parent 7de305af405fa04da82684c1921fb3c636434a3b
Author: Christian Grothoff <christian@grothoff.org>
Date:   Fri, 15 Jan 2021 12:39:10 +0100

force (re)download of /keys also for auditor check, see #6699

Diffstat:
Msrc/backend/taler-merchant-httpd_auditors.c | 1+
Msrc/backend/taler-merchant-httpd_post-orders-ID-pay.c | 13+++++++++++++
2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_auditors.c b/src/backend/taler-merchant-httpd_auditors.c @@ -61,6 +61,7 @@ static unsigned int nauditors; */ json_t *j_auditors; + int TMH_AUDITORS_check_dk (struct TALER_EXCHANGE_Handle *mh, const struct TALER_EXCHANGE_DenomPublicKey *dk, diff --git a/src/backend/taler-merchant-httpd_post-orders-ID-pay.c b/src/backend/taler-merchant-httpd_post-orders-ID-pay.c @@ -845,6 +845,19 @@ process_pay_with_exchange (void *cls, &http_status, &ec)) { + if (! pc->tried_force_keys) + { + /* let's try *forcing* a re-download of /keys from the exchange. + Maybe the wallet has seen auditors that we missed. */ + pc->tried_force_keys = true; + pc->fo = TMH_EXCHANGES_find_exchange (pc->current_exchange, + pc->wm->wire_method, + GNUNET_YES, + &process_pay_with_exchange, + pc); + if (NULL != pc->fo) + return; + } resume_pay_with_response ( pc, http_status,