aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2024-09-13 20:35:28 +0200
committerChristian Grothoff <christian@grothoff.org>2024-09-13 20:35:42 +0200
commit6191cf20fe3b1c0154c1b972a5465361ee744d3a (patch)
treedc2e1fa8a226dfcf81fb8b142cc7a2b10e126645
parent373c5628ab995d084c8df690a7659e5f17ffb906 (diff)
fix #9184: never long-poll on first request
-rw-r--r--src/backend/taler-merchant-kyccheck.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/backend/taler-merchant-kyccheck.c b/src/backend/taler-merchant-kyccheck.c
index 7d6b7558..e97e2702 100644
--- a/src/backend/taler-merchant-kyccheck.c
+++ b/src/backend/taler-merchant-kyccheck.c
@@ -35,16 +35,16 @@
* long-polling and do not want to wake up too often.
*/
#define EXCHANGE_TIMEOUT GNUNET_TIME_relative_multiply ( \
- GNUNET_TIME_UNIT_MINUTES, \
- 30)
+ GNUNET_TIME_UNIT_MINUTES, \
+ 30)
/**
* How long do we wait between requests if all we wait
* for is a change in the AML investigation status?
*/
#define AML_FREQ GNUNET_TIME_relative_multiply ( \
- GNUNET_TIME_UNIT_HOURS, \
- 6)
+ GNUNET_TIME_UNIT_HOURS, \
+ 6)
/**
* How many inquiries do we process concurrently at most.
@@ -213,6 +213,11 @@ struct Inquiry
enum TALER_ErrorCode last_ec;
/**
+ * True if this is not our first time we make this request.
+ */
+ bool not_first_time;
+
+ /**
* Did we not run this inquiry due to limits?
*/
bool limited;
@@ -586,6 +591,7 @@ exchange_check_cb (
GNUNET_SCHEDULER_shutdown ();
return;
}
+ i->not_first_time = true;
}
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Will repeat inquiry in %s\n",
@@ -639,13 +645,17 @@ inquiry_work (void *cls)
lpt = TALER_EXCHANGE_KLPT_KYC_OK;
else if (i->aml_review)
lpt = TALER_EXCHANGE_KLPT_INVESTIGATION_DONE;
+ if (! i->not_first_time)
+ lpt = TALER_EXCHANGE_KLPT_NONE;
i->kyc = TALER_EXCHANGE_kyc_check (
ctx,
i->e->keys->exchange_url,
&i->a->h_payto,
&i->a->ap,
lpt,
- EXCHANGE_TIMEOUT,
+ i->not_first_time
+ ? EXCHANGE_TIMEOUT
+ : GNUNET_TIME_UNIT_ZERO,
&exchange_check_cb,
i);
if (NULL == i->kyc)
@@ -743,6 +753,8 @@ start_inquiry (struct Exchange *e,
GNUNET_SCHEDULER_shutdown ();
return;
}
+ if (qs > 0)
+ i->not_first_time = true;
switch (i->last_http_status)
{
case MHD_HTTP_OK: