merchant

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

commit d919743e62a669be9edfe4eccda56f62020aa517
parent 4d98c64f27ac18a7fca646a687446e246faa1bd4
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu, 26 Feb 2026 18:01:42 +0100

acknowledge progress also when rule generation or HTTP status changed (#11152)

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

diff --git a/src/backend/taler-merchant-kyccheck.c b/src/backend/taler-merchant-kyccheck.c @@ -531,12 +531,14 @@ exchange_check_cb ( if (! i->not_first_time) progress = true; + if (i->last_http_status != ks->hr.http_status) + progress = true; i->kyc = NULL; i->last_http_status = ks->hr.http_status; i->last_ec = ks->hr.ec; i->rule_gen = 0; GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "Checking KYC status of `%s' at `%s' is %u\n", + "KYC status of `%s' at `%s' is %u\n", i->a->merchant_account_uri.full_payto, i->e->keys->exchange_url, ks->hr.http_status); @@ -545,6 +547,8 @@ exchange_check_cb ( case MHD_HTTP_OK: if (! i->kyc_ok) progress = true; + if (i->rule_gen != ks->details.ok.rule_gen) + progress = true; i->rule_gen = ks->details.ok.rule_gen; i->last_kyc_check = GNUNET_TIME_timestamp_get (); /* exchange says KYC is OK, gives status information */ @@ -561,14 +565,17 @@ exchange_check_cb ( else { /* KYC is OK, only check again if triggered */ - i->due = GNUNET_TIME_relative_to_absolute ( - GNUNET_TIME_randomize (GNUNET_TIME_relative_max (aml_low_freq, - i->backoff))); + if (! progress) + i->due = GNUNET_TIME_relative_to_absolute ( + GNUNET_TIME_randomize (GNUNET_TIME_relative_max (aml_low_freq, + i->backoff))); } break; case MHD_HTTP_ACCEPTED: progress = ! i->auth_ok; - i->rule_gen = ks->details.ok.rule_gen; + if (i->rule_gen != ks->details.accepted.rule_gen) + progress = true; + i->rule_gen = ks->details.accepted.rule_gen; i->last_kyc_check = GNUNET_TIME_timestamp_get (); /* exchange says KYC is required */ @@ -727,7 +734,7 @@ inquiry_work (void *cls) } at_limit = false; GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "Checking KYC status of `%s' at `%s'\n", + "Starting KYC status of `%s' at `%s'\n", i->a->merchant_account_uri.full_payto, i->e->keys->exchange_url); i->timeout