diff options
author | Christian Grothoff <christian@grothoff.org> | 2022-06-29 08:31:00 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2022-06-29 08:31:00 +0200 |
commit | 3b091cd5dee9338850d5d1052f55d019624221c2 (patch) | |
tree | 23ad6c90a4fbc5b19bff8288c6f62f574ea1370a /src/exchange/taler-exchange-httpd_management_post_keys.c | |
parent | 09479c55957530db6be17ed0f3a8a556b4a50cd0 (diff) | |
download | exchange-3b091cd5dee9338850d5d1052f55d019624221c2.tar.gz exchange-3b091cd5dee9338850d5d1052f55d019624221c2.tar.bz2 exchange-3b091cd5dee9338850d5d1052f55d019624221c2.zip |
-fix /keys initialization DB logic
Diffstat (limited to 'src/exchange/taler-exchange-httpd_management_post_keys.c')
-rw-r--r-- | src/exchange/taler-exchange-httpd_management_post_keys.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/exchange/taler-exchange-httpd_management_post_keys.c b/src/exchange/taler-exchange-httpd_management_post_keys.c index 1fa09f7eb..7d9853e9b 100644 --- a/src/exchange/taler-exchange-httpd_management_post_keys.c +++ b/src/exchange/taler-exchange-httpd_management_post_keys.c @@ -85,6 +85,11 @@ struct AddKeysContext struct SigningSig *s_sigs; /** + * Our key state. + */ + struct TEH_KeyStateHandle *ksh; + + /** * Length of the d_sigs array. */ unsigned int nd_sigs; @@ -150,7 +155,8 @@ add_keys (void *cls, { enum GNUNET_GenericReturnValue rv; - rv = TEH_keys_load_fees (&d->h_denom_pub, + rv = TEH_keys_load_fees (akc->ksh, + &d->h_denom_pub, &denom_pub, &meta); switch (rv) @@ -370,6 +376,18 @@ TEH_handler_management_post_keys ( } GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Received /management/keys\n"); + akc.ksh = TEH_keys_get_state2 (true); /* may start its own transaction, thus + must be done here, before we run ours! */ + if (NULL == akc.ksh) + { + GNUNET_break_op (0); + GNUNET_JSON_parse_free (spec); + return TALER_MHD_reply_with_error ( + connection, + MHD_HTTP_INTERNAL_SERVER_ERROR, + TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING, + "no key state (not even for management)"); + } akc.nd_sigs = json_array_size (denom_sigs); akc.d_sigs = GNUNET_new_array (akc.nd_sigs, struct DenomSig); |