fail if exchange-account configuration is definitively wrong (#5642)

This commit is contained in:
Christian Grothoff 2020-08-28 23:43:05 +02:00
parent 8a89eec7b4
commit f486df99c8
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
3 changed files with 26 additions and 9 deletions

View File

@ -169,9 +169,14 @@ run (void *cls,
}
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Signing /wire responses\n");
TALER_EXCHANGEDB_find_accounts (cfg,
&sign_account_data,
NULL);
if (GNUNET_OK !=
TALER_EXCHANGEDB_find_accounts (cfg,
&sign_account_data,
NULL))
{
global_ret = 1;
return;
}
}

View File

@ -52,6 +52,11 @@ struct FindAccountContext
* Closure for @e cb.
*/
void *cb_cls;
/**
* Set to #GNUNET_SYSERR if the configuration is invalid.
*/
int res;
};
@ -86,6 +91,7 @@ check_for_account (void *cls,
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_WARNING,
section,
"PAYTO_URI");
ctx->res = GNUNET_SYSERR;
return;
}
method = TALER_payto_get_method (payto_uri);
@ -94,6 +100,7 @@ check_for_account (void *cls,
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"payto URI in config ([%s]/PAYTO_URI) malformed\n",
section);
ctx->res = GNUNET_SYSERR;
GNUNET_free (payto_uri);
return;
}
@ -135,20 +142,24 @@ check_for_account (void *cls,
* @param cfg configuration to use
* @param cb callback to invoke
* @param cb_cls closure for @a cb
* @return #GNUNET_OK if the configuration seems valid, #GNUNET_SYSERR if not
*/
void
int
TALER_EXCHANGEDB_find_accounts (const struct GNUNET_CONFIGURATION_Handle *cfg,
TALER_EXCHANGEDB_AccountCallback cb,
void *cb_cls)
{
struct FindAccountContext ctx;
struct FindAccountContext ctx = {
.cfg = cfg,
.cb = cb,
.cb_cls = cb_cls,
.res = GNUNET_OK
};
ctx.cfg = cfg;
ctx.cb = cb;
ctx.cb_cls = cb_cls;
GNUNET_CONFIGURATION_iterate_sections (cfg,
&check_for_account,
&ctx);
return ctx.res;
}

View File

@ -438,8 +438,9 @@ typedef void
* @param cfg configuration to use
* @param cb callback to invoke
* @param cb_cls closure for @a cb
* @return #GNUNET_OK if the configuration seems valid, #GNUNET_SYSERR if not
*/
void
int
TALER_EXCHANGEDB_find_accounts (const struct GNUNET_CONFIGURATION_Handle *cfg,
TALER_EXCHANGEDB_AccountCallback cb,
void *cb_cls);