summaryrefslogtreecommitdiff
path: root/src/extensions/extensions.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/extensions/extensions.c')
-rw-r--r--src/extensions/extensions.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/extensions/extensions.c b/src/extensions/extensions.c
index 55d970c57..516c56a43 100644
--- a/src/extensions/extensions.c
+++ b/src/extensions/extensions.c
@@ -247,27 +247,31 @@ TALER_extensions_load_taler_config (
}
-static enum GNUNET_GenericReturnValue
-is_json_extension_config (
+enum GNUNET_GenericReturnValue
+TALER_extensions_is_json_config (
json_t *obj,
int *critical,
const char **version,
json_t **config)
{
enum GNUNET_GenericReturnValue ret;
+ json_t *cfg;
struct GNUNET_JSON_Specification spec[] = {
GNUNET_JSON_spec_boolean ("critical",
critical),
GNUNET_JSON_spec_string ("version",
version),
GNUNET_JSON_spec_json ("config",
- config),
+ &cfg),
GNUNET_JSON_spec_end ()
};
ret = GNUNET_JSON_parse (obj, spec, NULL, NULL);
if (GNUNET_OK == ret)
+ {
+ *config = json_copy (cfg);
GNUNET_JSON_parse_free (spec);
+ }
return ret;
}
@@ -300,7 +304,7 @@ TALER_extensions_load_json_config (
/* load and verify criticality, version, etc. */
if (GNUNET_OK !=
- is_json_extension_config (
+ TALER_extensions_is_json_config (
blob, &critical, &version, &config))
return GNUNET_SYSERR;
@@ -330,4 +334,16 @@ TALER_extensions_load_json_config (
}
+bool
+TALER_extensions_age_restriction_is_enabled ()
+{
+ const struct TALER_Extension *age =
+ TALER_extensions_get_by_type (TALER_Extension_AgeRestriction);
+
+ return (NULL != age &&
+ NULL != age->config_json &&
+ TALER_extensions_age_restriction_is_configured ());
+}
+
+
/* end of extensions.c */