merchant

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

commit 4c1d86845e6ab35f53110f53ae788f02941a2906
parent ec584ffdd49cde26b7ecf4d33af4f58f55219e46
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Wed, 12 Nov 2025 15:57:57 +0100

set backoff even more carefully

Diffstat:
Msrc/backend/taler-merchant-kyccheck.c | 25+++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/backend/taler-merchant-kyccheck.c b/src/backend/taler-merchant-kyccheck.c @@ -387,8 +387,7 @@ inquiry_work (void *cls); /** - * An inquiry finished, check if we should resume - * others. + * An inquiry finished, check if we should resume others. */ static void end_inquiry (void) @@ -538,19 +537,20 @@ exchange_check_cb ( /* exchange says KYC is OK, gives status information */ store_kyc_status (i, &ks->details.ok); - i->backoff = GNUNET_TIME_UNIT_ZERO; + i->backoff = GNUNET_TIME_UNIT_MINUTES; if (i->aml_review || i->zero_limited) { if (! progress) i->due = GNUNET_TIME_relative_to_absolute ( - GNUNET_TIME_randomize (aml_freq)); + GNUNET_TIME_randomize (GNUNET_TIME_relative_max (aml_freq, + i->backoff))); } else { /* KYC is OK, only check again if triggered */ i->due = GNUNET_TIME_relative_to_absolute ( - GNUNET_TIME_randomize ( - aml_low_freq)); + GNUNET_TIME_randomize (GNUNET_TIME_relative_max (aml_low_freq, + i->backoff))); } break; case MHD_HTTP_ACCEPTED: @@ -561,7 +561,7 @@ exchange_check_cb ( /* exchange says KYC is required */ store_kyc_status (i, &ks->details.accepted); - i->backoff = GNUNET_TIME_UNIT_ZERO; + i->backoff = GNUNET_TIME_UNIT_MINUTES; /* Start immediately with long-polling */ if (! progress) i->due = GNUNET_TIME_absolute_max (i->last_kyc_check.abs_time, @@ -569,7 +569,7 @@ exchange_check_cb ( break; case MHD_HTTP_NO_CONTENT: i->last_kyc_check = GNUNET_TIME_timestamp_get (); - i->backoff = GNUNET_TIME_UNIT_ZERO; + i->backoff = GNUNET_TIME_UNIT_MINUTES; /* exchange claims KYC is off! */ i->kyc_ok = true; i->aml_review = false; @@ -578,7 +578,8 @@ exchange_check_cb ( i->jlimits = NULL; /* KYC is OK, only check again if triggered */ i->due = GNUNET_TIME_relative_to_absolute ( - GNUNET_TIME_randomize (aml_low_freq)); + GNUNET_TIME_randomize (GNUNET_TIME_relative_max (aml_low_freq, + i->backoff))); break; case MHD_HTTP_FORBIDDEN: /* bad signature */ i->last_kyc_check = GNUNET_TIME_timestamp_get (); @@ -588,7 +589,7 @@ exchange_check_cb ( if (! progress) i->due = GNUNET_TIME_absolute_max (i->last_kyc_check.abs_time, i->timeout); - i->backoff = GNUNET_TIME_UNIT_ZERO; + i->backoff = GNUNET_TIME_UNIT_MINUTES; break; case MHD_HTTP_NOT_FOUND: /* account unknown */ i->last_kyc_check = GNUNET_TIME_timestamp_get (); @@ -604,7 +605,7 @@ exchange_check_cb ( if (! progress) i->due = GNUNET_TIME_absolute_max (i->last_kyc_check.abs_time, i->timeout); - i->backoff = GNUNET_TIME_UNIT_ZERO; + i->backoff = GNUNET_TIME_UNIT_MINUTES; break; case MHD_HTTP_CONFLICT: /* no account_pub known */ i->last_kyc_check = GNUNET_TIME_timestamp_get (); @@ -614,7 +615,7 @@ exchange_check_cb ( if (! progress) i->due = GNUNET_TIME_absolute_max (i->last_kyc_check.abs_time, i->timeout); - i->backoff = GNUNET_TIME_UNIT_ZERO; + i->backoff = GNUNET_TIME_UNIT_MINUTES; break; default: GNUNET_log (GNUNET_ERROR_TYPE_WARNING,