summaryrefslogtreecommitdiff
path: root/src/lib/exchange_api_management_post_extensions.c
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2021-12-27 23:24:48 +0100
committerÖzgür Kesim <oec-taler@kesim.org>2021-12-27 23:24:48 +0100
commitef4238874f6628a9ee4464ad3b70a7fde96d518b (patch)
tree27ba7f32c4d32bce4c821ba6c6a2ed8791d2c30b /src/lib/exchange_api_management_post_extensions.c
parent070f442a1182c7c2a09c42e94ce202509ade1b77 (diff)
downloadexchange-ef4238874f6628a9ee4464ad3b70a7fde96d518b.tar.gz
exchange-ef4238874f6628a9ee4464ad3b70a7fde96d518b.tar.bz2
exchange-ef4238874f6628a9ee4464ad3b70a7fde96d518b.zip
[age restriction] progress 9/n
More worke towards support for extensions and age restriction: - taler-exchange-httpd_management_extensions.c almost completed - handling of request implemented - stub "set_extensions" for database transaction added - utility functions added - TALER_exchange_offline_extension_agemask_{sign,verify} - TALER_agemask_parse_json
Diffstat (limited to 'src/lib/exchange_api_management_post_extensions.c')
-rw-r--r--src/lib/exchange_api_management_post_extensions.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/lib/exchange_api_management_post_extensions.c b/src/lib/exchange_api_management_post_extensions.c
index 7f6349113..a2de2454c 100644
--- a/src/lib/exchange_api_management_post_extensions.c
+++ b/src/lib/exchange_api_management_post_extensions.c
@@ -130,11 +130,10 @@ TALER_EXCHANGE_management_post_extensions (
void *cb_cls)
{
struct TALER_EXCHANGE_ManagementPostExtensionsHandle *ph;
- // FIXME-oec: TODO!
CURL *eh = NULL;
- json_t *body;
+ json_t *body = NULL;
json_t *extensions = NULL;
- json_t *extension_sigs = NULL;
+ json_t *extensions_sigs = NULL;
ph = GNUNET_new (struct TALER_EXCHANGE_ManagementPostExtensionsHandle);
ph->cb = cb;
@@ -156,16 +155,18 @@ TALER_EXCHANGE_management_post_extensions (
{
json_t *config;
const struct TALER_AgeMask *mask;
- const struct TALER_Extension *ext
- = &pkd->extensions[i];
+ const struct TALER_Extension *ext = &pkd->extensions[i];
switch (ext->type)
{
// TODO: case TALER_Extension_Peer2Peer
case TALER_Extension_AgeRestriction:
- mask = (struct TALER_AgeMask *) (&ext->config);
- config = GNUNET_JSON_PACK (GNUNET_JSON_pack_data_auto ("mask",
- &mask->mask));
+ 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:
@@ -177,22 +178,22 @@ TALER_EXCHANGE_management_post_extensions (
json_array_append_new (
extensions,
GNUNET_JSON_PACK (
- GNUNET_JSON_pack_data_auto ("extension",
+ GNUNET_JSON_pack_data_auto ("name",
&ext->name),
GNUNET_JSON_pack_data_auto ("config",
config)
)));
}
- extension_sigs = json_array ();
- GNUNET_assert (NULL != extension_sigs);
+ extensions_sigs = json_array ();
+ GNUNET_assert (NULL != extensions_sigs);
for (unsigned int i = 0; i<pkd->num_extensions; i++)
{
const struct TALER_MasterSignatureP *sks
- = &pkd->extension_sigs[i];
+ = &pkd->extensions_sigs[i];
GNUNET_assert (0 ==
json_array_append_new (
- extension_sigs,
+ extensions_sigs,
GNUNET_JSON_PACK (
GNUNET_JSON_pack_data_auto ("extension_sig",
&sks->eddsa_signature))));
@@ -200,8 +201,8 @@ TALER_EXCHANGE_management_post_extensions (
body = GNUNET_JSON_PACK (
GNUNET_JSON_pack_array_steal ("extensions",
extensions),
- GNUNET_JSON_pack_array_steal ("extension_sigs",
- extension_sigs));
+ GNUNET_JSON_pack_array_steal ("extensions_sigs",
+ extensions_sigs));
eh = curl_easy_init ();
GNUNET_assert (NULL != eh);
if (GNUNET_OK !=