From 015420396dcad3d015668e055725f22e7f968f54 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 3 Sep 2020 15:23:35 +0200 Subject: fix #6516 --- src/backend/taler-merchant-httpd.c | 17 +++++++++++++---- src/backend/taler-merchant-httpd_exchanges.c | 4 ++-- src/backend/taler-merchant-httpd_exchanges.h | 4 ++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/backend/taler-merchant-httpd.c b/src/backend/taler-merchant-httpd.c index 4a726ecc..7104b954 100644 --- a/src/backend/taler-merchant-httpd.c +++ b/src/backend/taler-merchant-httpd.c @@ -1535,6 +1535,8 @@ run (void *cls, { int fh; enum TALER_MHD_GlobalOptions go; + int elen; + int alen; (void) cls; (void) args; @@ -1581,18 +1583,25 @@ run (void *cls, TMH_force_audit = GNUNET_YES; TMH_templating_init (); TMH_statics_init (); - if (GNUNET_SYSERR == - TMH_EXCHANGES_init (config)) + elen = TMH_EXCHANGES_init (config); + if (GNUNET_SYSERR == elen) { GNUNET_SCHEDULER_shutdown (); return; } - if (GNUNET_SYSERR == - TMH_AUDITORS_init (config)) + alen = TMH_AUDITORS_init (config); + if (GNUNET_SYSERR == alen) { GNUNET_SCHEDULER_shutdown (); return; } + if (0 == elen + alen) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Fatal: no trusted exchanges and no trusted auditors configured. Exiting.\n"); + GNUNET_SCHEDULER_shutdown (); + return; + } if (NULL == (TMH_by_id_map = GNUNET_CONTAINER_multihashmap_create (1, GNUNET_NO))) diff --git a/src/backend/taler-merchant-httpd_exchanges.c b/src/backend/taler-merchant-httpd_exchanges.c index 721c10e3..3ad7f053 100644 --- a/src/backend/taler-merchant-httpd_exchanges.c +++ b/src/backend/taler-merchant-httpd_exchanges.c @@ -1205,7 +1205,7 @@ accept_exchanges (void *cls, * Parses "trusted" exchanges listed in the configuration. * * @param cfg the configuration - * @return #GNUNET_OK on success; #GNUNET_SYSERR upon error in + * @return number of trusted exchanges on success; #GNUNET_SYSERR upon error in * parsing. */ int @@ -1244,7 +1244,7 @@ TMH_EXCHANGES_init (const struct GNUNET_CONFIGURATION_Handle *cfg) json_array_append_new (TMH_trusted_exchanges, j_exchange)); } - return GNUNET_OK; + return json_array_size (TMH_trusted_exchanges); } diff --git a/src/backend/taler-merchant-httpd_exchanges.h b/src/backend/taler-merchant-httpd_exchanges.h index 4fcb8125..e833410b 100644 --- a/src/backend/taler-merchant-httpd_exchanges.h +++ b/src/backend/taler-merchant-httpd_exchanges.h @@ -40,8 +40,8 @@ extern json_t *TMH_trusted_exchanges; * Parses "trusted" exchanges listed in the configuration. * * @param cfg the configuration - * @return #GNUNET_OK on success; #GNUNET_SYSERR upon error in - * parsing or initialization. + * @return number of trusted exchanges on success; #GNUNET_SYSERR upon error in + * parsing. */ int TMH_EXCHANGES_init (const struct GNUNET_CONFIGURATION_Handle *cfg); -- cgit v1.2.3