commit e1aa389c7c78250c00f81eadcf7848aeb3e8f0b7
parent 87abe3f81a053cbe37619c4622abc63baabb0381
Author: Christian Grothoff <christian@grothoff.org>
Date: Tue, 3 Mar 2026 22:31:36 +0100
adapt to latest libtalerexchange updates
Diffstat:
1 file changed, 24 insertions(+), 11 deletions(-)
diff --git a/src/backend/taler-merchant-exchangekeyupdate.c b/src/backend/taler-merchant-exchangekeyupdate.c
@@ -24,10 +24,15 @@
#include <jansson.h>
#include <pthread.h>
#include <taler/taler_dbevents.h>
+struct Exchange;
+#define TALER_EXCHANGE_GET_KEYS_RESULT_CLOSURE struct Exchange
+#include <taler/taler-exchange/get-keys.h>
+
+#include "taler_merchantdb_plugin.h"
+
#include "taler_merchant_util.h"
#include "taler_merchant_bank_lib.h"
#include "taler_merchantdb_lib.h"
-#include "taler_merchantdb_plugin.h"
/**
* Maximum frequency for the exchange interaction.
@@ -547,11 +552,10 @@ store_keys (struct TALER_EXCHANGE_Keys *keys,
*/
static void
cert_cb (
- void *cls,
+ struct Exchange *e,
const struct TALER_EXCHANGE_KeysResponse *kr,
struct TALER_EXCHANGE_Keys *keys)
{
- struct Exchange *e = cls;
struct GNUNET_TIME_Absolute n;
struct GNUNET_TIME_Absolute first_retry;
@@ -664,15 +668,19 @@ download_keys (void *cls)
"Downloading keys from %s (%s)\n",
e->exchange_url,
e->force_retry ? "forced" : "regular");
- e->conn = TALER_EXCHANGE_get_keys (ctx,
- e->exchange_url,
- e->force_retry
- ? NULL
- : e->keys,
- &cert_cb,
- e);
+ e->conn = TALER_EXCHANGE_get_keys_create (ctx,
+ e->exchange_url);
+ if ( (NULL != e->conn) &&
+ (! e->force_retry) )
+ TALER_EXCHANGE_get_keys_set_options (
+ e->conn,
+ TALER_EXCHANGE_get_keys_option_last_keys (e->keys));
e->force_retry = false;
- if (NULL != e->conn)
+ if ( (NULL != e->conn) &&
+ (TALER_EC_NONE ==
+ TALER_EXCHANGE_get_keys_start (e->conn,
+ &cert_cb,
+ e)) )
{
active_inquiries++;
}
@@ -680,6 +688,11 @@ download_keys (void *cls)
{
struct GNUNET_TIME_Relative n;
+ if (NULL != e->conn)
+ {
+ TALER_EXCHANGE_get_keys_cancel (e->conn);
+ e->conn = NULL;
+ }
n = GNUNET_TIME_relative_max (e->retry_delay,
EXCHANGE_MAXFREQ);
e->retry_task