aboutsummaryrefslogtreecommitdiff
path: root/src/exchange/taler-exchange-httpd_extensions.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/exchange/taler-exchange-httpd_extensions.c')
-rw-r--r--src/exchange/taler-exchange-httpd_extensions.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/exchange/taler-exchange-httpd_extensions.c b/src/exchange/taler-exchange-httpd_extensions.c
index 2a99d7a2..2aee1b5c 100644
--- a/src/exchange/taler-exchange-httpd_extensions.c
+++ b/src/exchange/taler-exchange-httpd_extensions.c
@@ -78,6 +78,7 @@ extension_update_event_cb (void *cls,
}
// Get the config from the database as string
+ if (extension->has_config)
{
char *config_str = NULL;
enum GNUNET_DB_QueryStatus qs;
@@ -117,26 +118,26 @@ extension_update_event_cb (void *cls,
err.text,
err.source);
GNUNET_break (0);
- free(config_str);
+ free (config_str);
return;
}
// Call the parser for the extension
ret = extension->load_json_config (
(struct TALER_Extension *) extension,
- json_object_get(config, "config"));
+ json_object_get (config, "config"));
if (GNUNET_OK != ret)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Couldn't parse configuration for extension %s from the database: %s\n",
extension->name,
- config_str);
+ config_str);
GNUNET_break (0);
}
- free(config_str);
- json_decref(config);
+ free (config_str);
+ json_decref (config);
}
/* Special case age restriction: Update global flag and mask */
@@ -190,12 +191,16 @@ TEH_extensions_init ()
it = it->next)
{
const struct TALER_Extension *ext = it->extension;
+ uint32_t typ = htonl (ext->type);
char *conf = json_dumps (ext->config_to_json (ext), JSON_COMPACT);
TEH_plugin->set_extension_config (TEH_plugin->cls,
ext->name,
conf);
- extension_update_event_cb (NULL, &ext->type, sizeof(ext->type));
+
+ extension_update_event_cb (NULL,
+ &typ,
+ sizeof(typ));
free (conf);
}