exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit a644355c44ec08c6e0691c8e308bba69619fdccd
parent f17d886753fae3148afbfd3e267da30548f71ad4
Author: Christian Grothoff <christian@grothoff.org>
Date:   Tue, 22 Dec 2020 18:13:46 +0100

address FIXME: pass session when iterating over denominations

Diffstat:
Msrc/auditor/report-lib.c | 10+++++-----
Msrc/exchangedb/plugin_exchangedb_postgres.c | 6++++--
Msrc/include/taler_exchangedb_plugin.h | 2++
3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/auditor/report-lib.c b/src/auditor/report-lib.c @@ -164,10 +164,10 @@ TALER_ARL_report (json_t *array, * @param validity issuing information with value, fees and other info about the denomination. */ static void -add_denomination (void *cls, - const struct TALER_DenominationPublicKey *denom_pub, - const struct - TALER_EXCHANGEDB_DenominationKeyInformationP *validity) +add_denomination ( + void *cls, + const struct TALER_DenominationPublicKey *denom_pub, + const struct TALER_EXCHANGEDB_DenominationKeyInformationP *validity) { const struct TALER_DenominationKeyValidityPS *issue = &validity->properties; @@ -292,7 +292,7 @@ TALER_ARL_get_denomination_info_by_hash ( denominations = GNUNET_CONTAINER_multihashmap_create (256, GNUNET_NO); qs = TALER_ARL_edb->iterate_denomination_info (TALER_ARL_edb->cls, - // FIXME: change API to pass session!? + TALER_ARL_esession, &add_denomination, NULL); if (0 > qs) diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c @@ -2004,12 +2004,14 @@ domination_cb_helper (void *cls, * Fetch information about all known denomination keys. * * @param cls the @e cls of this struct with the plugin-specific state + * @param session connection to use * @param cb function to call on each denomination key * @param cb_cls closure for @a cb * @return transaction status code */ static enum GNUNET_DB_QueryStatus postgres_iterate_denomination_info (void *cls, + struct TALER_EXCHANGEDB_Session *session, TALER_EXCHANGEDB_DenominationCallback cb, void *cb_cls) { @@ -2022,9 +2024,9 @@ postgres_iterate_denomination_info (void *cls, .cb_cls = cb_cls, .pg = pc }; - struct TALER_EXCHANGEDB_Session *session; - session = postgres_get_session (pc); + if (NULL == session) + session = postgres_get_session (pc); if (NULL == session) return GNUNET_DB_STATUS_HARD_ERROR; return GNUNET_PQ_eval_prepared_multi_select (session->conn, diff --git a/src/include/taler_exchangedb_plugin.h b/src/include/taler_exchangedb_plugin.h @@ -1904,12 +1904,14 @@ struct TALER_EXCHANGEDB_Plugin * own read-only transaction (hence no session provided). * * @param cls the @e cls of this struct with the plugin-specific state + * @param session session to use * @param cb function to call on each denomination key * @param cb_cls closure for @a cb * @return transaction status code */ enum GNUNET_DB_QueryStatus (*iterate_denomination_info)(void *cls, + struct TALER_EXCHANGEDB_Session *session, TALER_EXCHANGEDB_DenominationCallback cb, void *cb_cls);