summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-01-15 12:39:10 +0100
committerChristian Grothoff <christian@grothoff.org>2021-01-15 12:39:10 +0100
commitdac3175e350122d74c6600a89d6045f449705ab1 (patch)
treea28616326cf2b56fc1331216acc6adf54672d171 /src
parent7de305af405fa04da82684c1921fb3c636434a3b (diff)
downloadmerchant-dac3175e350122d74c6600a89d6045f449705ab1.tar.gz
merchant-dac3175e350122d74c6600a89d6045f449705ab1.tar.bz2
merchant-dac3175e350122d74c6600a89d6045f449705ab1.zip
force (re)download of /keys also for auditor check, see #6699
Diffstat (limited to 'src')
-rw-r--r--src/backend/taler-merchant-httpd_auditors.c1
-rw-r--r--src/backend/taler-merchant-httpd_post-orders-ID-pay.c13
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
index 179fa320..ce2e17e8 100644
--- 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
index 7e7ac0b0..bc45902a 100644
--- 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,