aboutsummaryrefslogtreecommitdiff
path: root/src/extensions/extensions.c
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2022-10-05 16:07:09 +0200
committerÖzgür Kesim <oec-taler@kesim.org>2022-10-05 16:07:09 +0200
commit2524dfc8d318a8f765e1600f1ecde54bc6c5a921 (patch)
treea0c485505b7d0e5538a39ff414f731b1082a0dae /src/extensions/extensions.c
parent477d009cb0aa529294b298d5ba629cdf904e210c (diff)
refactor extensions: config -> manifest
Diffstat (limited to 'src/extensions/extensions.c')
-rw-r--r--src/extensions/extensions.c43
1 files changed, 21 insertions, 22 deletions
diff --git a/src/extensions/extensions.c b/src/extensions/extensions.c
index 95fb8cf0..33e03613 100644
--- a/src/extensions/extensions.c
+++ b/src/extensions/extensions.c
@@ -46,9 +46,8 @@ add_extension (
(NULL == extension->name) ||
(NULL == extension->version) ||
(NULL == extension->disable) ||
- (NULL == extension->test_json_config) ||
- (NULL == extension->load_json_config) ||
- (NULL == extension->config_to_json))
+ (NULL == extension->load_config) ||
+ (NULL == extension->manifest))
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"invalid extension\n");
@@ -138,20 +137,20 @@ TALER_extensions_get_by_name (
enum GNUNET_GenericReturnValue
-TALER_extensions_verify_json_config_signature (
- json_t *extensions,
+TALER_extensions_verify_manifests_signature (
+ json_t *manifests,
struct TALER_MasterSignatureP *extensions_sig,
struct TALER_MasterPublicKeyP *master_pub)
{
- struct TALER_ExtensionConfigHashP h_config;
+ struct TALER_ExtensionManifestsHashP h_manifests;
if (GNUNET_OK !=
- TALER_JSON_extensions_config_hash (extensions,
- &h_config))
+ TALER_JSON_extensions_manifests_hash (manifests,
+ &h_manifests))
return GNUNET_SYSERR;
if (GNUNET_OK !=
- TALER_exchange_offline_extension_config_hash_verify (
- &h_config,
+ TALER_exchange_offline_extension_manifests_hash_verify (
+ &h_manifests,
master_pub,
extensions_sig))
return GNUNET_NO;
@@ -240,7 +239,7 @@ configure_extension (
static bool extensions_loaded = false;
enum GNUNET_GenericReturnValue
-TALER_extensions_load (
+TALER_extensions_init (
const struct GNUNET_CONFIGURATION_Handle *cfg)
{
struct LoadConfClosure col = {
@@ -263,7 +262,7 @@ TALER_extensions_load (
enum GNUNET_GenericReturnValue
-TALER_extensions_is_json_config (
+TALER_extensions_parse_manifest (
json_t *obj,
int *critical,
const char **version,
@@ -296,22 +295,21 @@ TALER_extensions_is_json_config (
enum GNUNET_GenericReturnValue
-TALER_extensions_load_json_config (
+TALER_extensions_load_manifests (
json_t *extensions)
{
const char*name;
- json_t *blob;
+ json_t *manifest;
GNUNET_assert (NULL != extensions);
GNUNET_assert (json_is_object (extensions));
- json_object_foreach (extensions, name, blob)
+ json_object_foreach (extensions, name, manifest)
{
int critical;
const char *version;
json_t *config;
- const struct TALER_Extension *extension =
- TALER_extensions_get_by_name (name);
+ struct TALER_Extension *extension = (struct TALER_Extension *)TALER_extensions_get_by_name (name);
if (NULL == extension)
{
@@ -322,21 +320,22 @@ TALER_extensions_load_json_config (
/* load and verify criticality, version, etc. */
if (GNUNET_OK !=
- TALER_extensions_is_json_config (
- blob, &critical, &version, &config))
+ TALER_extensions_parse_manifest (
+ manifest, &critical, &version, &config))
return GNUNET_SYSERR;
if (critical != extension->critical
|| 0 != strcmp (version, extension->version) // TODO: libtool compare?
|| NULL == config
- || GNUNET_OK != extension->test_json_config (config))
+ || GNUNET_OK != extension->load_config (NULL, config))
return GNUNET_SYSERR;
/* This _should_ work now */
if (GNUNET_OK !=
- extension->load_json_config ((struct TALER_Extension *) extension,
- config))
+ extension->load_config ( extension, config))
return GNUNET_SYSERR;
+
+ extension->enabled = true;
}
/* make sure to disable all extensions that weren't mentioned in the json */