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:
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,