diff options
Diffstat (limited to 'src/exchange/taler-exchange-httpd_management_extensions.c')
-rw-r--r-- | src/exchange/taler-exchange-httpd_management_extensions.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/exchange/taler-exchange-httpd_management_extensions.c b/src/exchange/taler-exchange-httpd_management_extensions.c index 8476e669d..17db8e8c4 100644 --- a/src/exchange/taler-exchange-httpd_management_extensions.c +++ b/src/exchange/taler-exchange-httpd_management_extensions.c @@ -49,6 +49,7 @@ struct SetExtensionsContext { uint32_t num_extensions; struct Extension *extensions; + struct TALER_MasterSignatureP extensions_sig; }; /** @@ -132,6 +133,9 @@ set_extensions (void *cls, } + /* All extensions configured, update the signature */ + TEH_extensions_sig = sec->extensions_sig; + return GNUNET_DB_STATUS_SUCCESS_ONE_RESULT; /* only 'success', so >=0, matters here */ } @@ -143,15 +147,14 @@ TEH_handler_management_post_extensions ( { MHD_RESULT ret; json_t *extensions; - struct TALER_MasterSignatureP sig = {0}; + struct SetExtensionsContext sec = {0}; struct GNUNET_JSON_Specification top_spec[] = { GNUNET_JSON_spec_json ("extensions", &extensions), GNUNET_JSON_spec_fixed_auto ("extensions_sig", - &sig), + &sec.extensions_sig), GNUNET_JSON_spec_end () }; - struct SetExtensionsContext sec = {0}; /* Parse the top level json structure */ { @@ -193,7 +196,7 @@ TEH_handler_management_post_extensions ( if (GNUNET_OK != TALER_exchange_offline_extension_config_hash_verify ( &h_config, &TEH_master_public_key, - &sig)) + &sec.extensions_sig)) { GNUNET_JSON_parse_free (top_spec); return TALER_MHD_reply_with_error ( @@ -248,7 +251,6 @@ TEH_handler_management_post_extensions ( TALER_EC_GENERIC_PARAMETER_MALFORMED, "invalid configuration for extension"); goto CLEANUP; - } /* We have a validly signed JSON object for the extension. Increment its |