merchant

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

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:
Msrc/backend/taler-merchant-exchangekeyupdate.c | 35++++++++++++++++++++++++-----------
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