diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-04-16 22:54:40 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-04-16 22:54:40 +0200 |
commit | 38c85d80d09564b58c51f2b4771efa17fe2cdcf6 (patch) | |
tree | 670cac4c943ce25d6f55fafc3476b0c680d47f7f /src | |
parent | c6bf45746d2d4e4843058f27fbe5733f1df52130 (diff) | |
download | merchant-38c85d80d09564b58c51f2b4771efa17fe2cdcf6.tar.gz merchant-38c85d80d09564b58c51f2b4771efa17fe2cdcf6.tar.bz2 merchant-38c85d80d09564b58c51f2b4771efa17fe2cdcf6.zip |
better error reporting on config trouble
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/taler-merchant-httpd.c | 152 | ||||
-rw-r--r-- | src/backend/taler-merchant-httpd_exchanges.c | 3 |
2 files changed, 110 insertions, 45 deletions
diff --git a/src/backend/taler-merchant-httpd.c b/src/backend/taler-merchant-httpd.c index b17913f7..23627ff1 100644 --- a/src/backend/taler-merchant-httpd.c +++ b/src/backend/taler-merchant-httpd.c @@ -465,50 +465,111 @@ run (void *cls, GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &do_shutdown, NULL); - EXITIF (GNUNET_SYSERR == - TMH_EXCHANGES_init (config)); - EXITIF (GNUNET_SYSERR == - TMH_AUDITORS_init (config)); - EXITIF (GNUNET_OK != - GNUNET_CONFIGURATION_get_value_string (config, - "merchant", - "WIREFORMAT", - &wireformat)); - EXITIF (GNUNET_OK != - validate_and_hash_wireformat (config, - wireformat)); + if (GNUNET_SYSERR == + TMH_EXCHANGES_init (config)) + { + GNUNET_SCHEDULER_shutdown (); + return; + } + if (GNUNET_SYSERR == + TMH_AUDITORS_init (config)) + { + GNUNET_SCHEDULER_shutdown (); + return; + } + if (GNUNET_SYSERR == + GNUNET_CONFIGURATION_get_value_number (config, + "merchant", + "PORT", + &port)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "merchant", + "PORT"); + GNUNET_SCHEDULER_shutdown (); + return; + } + if (GNUNET_SYSERR == + GNUNET_CONFIGURATION_get_value_string (config, + "merchant", + "CURRENCY", + &TMH_merchant_currency_string)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "merchant", + "CURRENCY"); + GNUNET_SCHEDULER_shutdown (); + return; + } + + if (GNUNET_SYSERR == + GNUNET_CONFIGURATION_get_value_time (config, + "merchant", + "EDATE", + &edate_delay)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "merchant", + "EDATE"); + GNUNET_SCHEDULER_shutdown (); + return; + } + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_string (config, + "merchant", + "WIREFORMAT", + &wireformat)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "merchant", + "WIREFORMAT"); + GNUNET_SCHEDULER_shutdown (); + return; + } + if (GNUNET_OK != + validate_and_hash_wireformat (config, + wireformat)) + { + GNUNET_SCHEDULER_shutdown (); + return; + } GNUNET_free (wireformat); - EXITIF (GNUNET_OK != - GNUNET_CONFIGURATION_get_value_filename (config, - "merchant", - "KEYFILE", - &keyfile)); - EXITIF (NULL == - (privkey = - GNUNET_CRYPTO_eddsa_key_create_from_file (keyfile))); + if (GNUNET_OK != + GNUNET_CONFIGURATION_get_value_filename (config, + "merchant", + "KEYFILE", + &keyfile)) + { + GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR, + "merchant", + "KEYFILE"); + GNUNET_SCHEDULER_shutdown (); + return; + } + if (NULL == + (privkey = + GNUNET_CRYPTO_eddsa_key_create_from_file (keyfile))) + { + GNUNET_break (0); + GNUNET_SCHEDULER_shutdown (); + return; + } GNUNET_CRYPTO_eddsa_key_get_public (privkey, &pubkey.eddsa_pub); - EXITIF (NULL == - (db = TALER_MERCHANTDB_plugin_load (config))); - EXITIF (GNUNET_OK != - db->initialize (db->cls, dry)); - EXITIF (GNUNET_SYSERR == - GNUNET_CONFIGURATION_get_value_number (config, - "merchant", - "PORT", - &port)); - EXITIF (GNUNET_SYSERR == - GNUNET_CONFIGURATION_get_value_string (config, - "merchant", - "CURRENCY", - &TMH_merchant_currency_string)); - - EXITIF (GNUNET_SYSERR == - GNUNET_CONFIGURATION_get_value_time (config, - "merchant", - "EDATE", - &edate_delay)); + if (NULL == + (db = TALER_MERCHANTDB_plugin_load (config))) + { + GNUNET_SCHEDULER_shutdown (); + return; + } + if (GNUNET_OK != + db->initialize (db->cls, dry)) + { + GNUNET_break (0); + GNUNET_SCHEDULER_shutdown (); + return; + } mhd = MHD_start_daemon (MHD_USE_SUSPEND_RESUME, port, @@ -519,13 +580,14 @@ run (void *cls, MHD_OPTION_CONNECTION_TIMEOUT, (unsigned int) 10 /* 10s */, MHD_OPTION_END); - EXITIF (NULL == mhd); + if (NULL == mhd) + { + GNUNET_break (0); + GNUNET_SCHEDULER_shutdown (); + return; + } result = GNUNET_OK; mhd_task = prepare_daemon (); - - EXITIF_exit: - if (GNUNET_OK != result) - GNUNET_SCHEDULER_shutdown (); } diff --git a/src/backend/taler-merchant-httpd_exchanges.c b/src/backend/taler-merchant-httpd_exchanges.c index 5ecc8217..4796771b 100644 --- a/src/backend/taler-merchant-httpd_exchanges.c +++ b/src/backend/taler-merchant-httpd_exchanges.c @@ -487,7 +487,10 @@ TMH_EXCHANGES_init (const struct GNUNET_CONFIGURATION_Handle *cfg) ctx = TALER_EXCHANGE_init (); if (NULL == ctx) + { + GNUNET_break (0); return GNUNET_SYSERR; + } GNUNET_CONFIGURATION_iterate_sections (cfg, &parse_exchanges, (void *) cfg); |