From f848f7ac5c4fbfca456d3f374bdfc642da08951c Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 15 Nov 2023 15:42:12 +0100 Subject: -fix wallet-balance integration test: do return immediately even if force-reload is set if we'd otherwise just delay re-fetching /keys and do nothing --- src/backend/taler-merchant-httpd_exchanges.c | 28 ++++++++++++---------- .../taler-merchant-httpd_private-post-orders.c | 3 ++- 2 files changed, 18 insertions(+), 13 deletions(-) (limited to 'src/backend') diff --git a/src/backend/taler-merchant-httpd_exchanges.c b/src/backend/taler-merchant-httpd_exchanges.c index c9b6cc70..8a89235a 100644 --- a/src/backend/taler-merchant-httpd_exchanges.c +++ b/src/backend/taler-merchant-httpd_exchanges.c @@ -859,18 +859,6 @@ TMH_EXCHANGES_keys4exchange ( fo); return fo; } - if ( (NULL == exchange->retry_task) && - (NULL == exchange->conn) ) - { - GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "No valid keys, fetching /keys at %s\n", - GNUNET_TIME_absolute2s (exchange->first_retry)); - exchange->retry_task - = GNUNET_SCHEDULER_add_at (exchange->first_retry, - &retry_exchange, - exchange); - return fo; - } if ( (NULL == exchange->conn) && ( (ESTATE_FAILED == exchange->state) || (ESTATE_REDOWNLOADING_FAILURE == exchange->state) ) ) @@ -883,6 +871,22 @@ TMH_EXCHANGES_keys4exchange ( fo); return fo; } + if ( (force_download) && + (GNUNET_TIME_absolute_is_future (exchange->first_retry)) && + (ESTATE_DOWNLOADED == exchange->state) ) + { + /* Return results immediately. */ + fo->at = GNUNET_SCHEDULER_add_now (&return_keys, + fo); + /* *no* return here, we MAY schedule a 'retry_task' in the + next block if there isn't one yet */ + } + if ( (NULL == exchange->retry_task) && + (NULL == exchange->conn) ) + exchange->retry_task + = GNUNET_SCHEDULER_add_at (exchange->first_retry, + &retry_exchange, + exchange); GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Next %skeys (%d) request scheduled for %s\n", exchange->url, diff --git a/src/backend/taler-merchant-httpd_private-post-orders.c b/src/backend/taler-merchant-httpd_private-post-orders.c index d46bfa85..5f06eee2 100644 --- a/src/backend/taler-merchant-httpd_private-post-orders.c +++ b/src/backend/taler-merchant-httpd_private-post-orders.c @@ -1141,7 +1141,8 @@ set_exchanges (struct OrderContext *oc) if (NULL != oc->pending_reload_head) { GNUNET_log (GNUNET_ERROR_TYPE_INFO, - "Still trying to re-load /keys\n"); + "Still trying to (re)load %skeys\n", + oc->pending_reload_head->url); MHD_suspend_connection (oc->connection); oc->suspended = GNUNET_YES; GNUNET_CONTAINER_DLL_insert (oc_head, -- cgit v1.2.3