aboutsummaryrefslogtreecommitdiff
path: root/src/lib/exchange_api_management_post_extensions.c
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2022-01-08 14:40:20 +0100
committerÖzgür Kesim <oec-taler@kesim.org>2022-01-08 14:40:20 +0100
commitcc7d7707ab2bd43bc9e95c0eeec9ce95cdc0c523 (patch)
tree472e895b321e539f4675f016a285d6f6e6436b76 /src/lib/exchange_api_management_post_extensions.c
parentb49fac3d5892f75a2eb7fbfbca0056965c6967c7 (diff)
downloadexchange-cc7d7707ab2bd43bc9e95c0eeec9ce95cdc0c523.tar.xz
[age restriction] progress 10/n
More work towards support for extensions: - Prepared statements and DB-plugin-functions for setting and retrieving configurations from the database added. - primitive "registry" of extensions for age restrictions and peer2peer (stub) - TALER_Extensions now with FP for parsing, setting and converting a configuration. - /management/extensions handler now verifies signature of the (opaque) json object for all extensions. - /management/extensions handler calls the FP in the corrensponding TALER_Extension for parsing and setting the configuration of a particular extension More work towards age restriction: - TALER_Extensions interfaces for config-parser, -setter and converter implemented for age restriction - DB event handler now retrieves config from database, parses it and sets it (the age mask) in the global extension. - load_age_mask now loads age mask from the global extension (and not from the config file) - add age_restricted_denoms to /keys response
Diffstat (limited to 'src/lib/exchange_api_management_post_extensions.c')
-rw-r--r--src/lib/exchange_api_management_post_extensions.c23
1 files changed, 4 insertions, 19 deletions
diff --git a/src/lib/exchange_api_management_post_extensions.c b/src/lib/exchange_api_management_post_extensions.c
index a2de2454c..862ff7117 100644
--- a/src/lib/exchange_api_management_post_extensions.c
+++ b/src/lib/exchange_api_management_post_extensions.c
@@ -153,32 +153,17 @@ TALER_EXCHANGE_management_post_extensions (
GNUNET_assert (NULL != extensions);
for (unsigned int i = 0; i<pkd->num_extensions; i++)
{
- json_t *config;
- const struct TALER_AgeMask *mask;
+ const json_t *config;
const struct TALER_Extension *ext = &pkd->extensions[i];
- switch (ext->type)
- {
- // TODO: case TALER_Extension_Peer2Peer
- case TALER_Extension_AgeRestriction:
- mask = (const struct TALER_AgeMask *) (&ext->config);
- config = GNUNET_JSON_PACK (
- GNUNET_JSON_pack_string ("extension",
- ext->name),
- GNUNET_JSON_pack_data_auto ("mask",
- &mask->mask));
- GNUNET_assert (NULL != config);
- break;
- default:
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Extension not supported.\n");
- }
+ config = ext->config_to_json (ext);
+ GNUNET_assert (NULL != config);
GNUNET_assert (0 ==
json_array_append_new (
extensions,
GNUNET_JSON_PACK (
- GNUNET_JSON_pack_data_auto ("name",
+ GNUNET_JSON_pack_data_auto ("extension",
&ext->name),
GNUNET_JSON_pack_data_auto ("config",
config)