diff --git a/src/exchange-tools/Makefile.am b/src/exchange-tools/Makefile.am index d283979c8..631f3af20 100644 --- a/src/exchange-tools/Makefile.am +++ b/src/exchange-tools/Makefile.am @@ -45,6 +45,7 @@ taler_exchange_wire_SOURCES = \ taler-exchange-wire.c taler_exchange_wire_LDADD = \ $(LIBGCRYPT_LIBS) \ + $(top_builddir)/src/wire/libtalerwire.la \ $(top_builddir)/src/util/libtalerutil.la \ -lgnunetjson \ -lgnunetutil \ diff --git a/src/exchange-tools/taler-exchange-wire.c b/src/exchange-tools/taler-exchange-wire.c index 930086d39..a826657fb 100644 --- a/src/exchange-tools/taler-exchange-wire.c +++ b/src/exchange-tools/taler-exchange-wire.c @@ -23,6 +23,7 @@ #include #include "taler_crypto_lib.h" #include "taler_wire_plugin.h" +#include "taler_wire_lib.h" #include "taler_signatures.h" @@ -90,7 +91,6 @@ main (int argc, json_error_t err; char *json_out; struct GNUNET_HashCode salt; - char *lib_name; struct TALER_WIRE_Plugin *plugin; GNUNET_assert (GNUNET_OK == @@ -159,20 +159,15 @@ main (int argc, GNUNET_CRYPTO_random_block (GNUNET_CRYPTO_QUALITY_NONCE, &salt, sizeof (salt)); - (void) GNUNET_asprintf (&lib_name, - "libtaler_plugin_wire_%s", - method); - plugin = GNUNET_PLUGIN_load (lib_name, - NULL); + plugin = TALER_WIRE_plugin_load (cfg, + method); if (NULL == plugin) { - GNUNET_free (lib_name); GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Wire transfer method `%s' not supported\n", method); return 1; } - plugin->library_name = lib_name; if (GNUNET_OK != plugin->sign_wire_details (plugin->cls, j, @@ -182,14 +177,10 @@ main (int argc, { /* sign function should have logged applicable errors */ json_decref (j); - GNUNET_PLUGIN_unload (lib_name, - plugin); - GNUNET_free (lib_name); + TALER_WIRE_plugin_unload (plugin); return 1; } - GNUNET_PLUGIN_unload (lib_name, - plugin); - GNUNET_free (lib_name); + TALER_WIRE_plugin_unload (plugin); GNUNET_free (eddsa_priv); /* add signature and salt to JSON message */ diff --git a/src/exchange/Makefile.am b/src/exchange/Makefile.am index dc7225b0c..a283e78b8 100644 --- a/src/exchange/Makefile.am +++ b/src/exchange/Makefile.am @@ -42,9 +42,10 @@ taler_exchange_httpd_SOURCES = \ taler-exchange-httpd_validation.c taler-exchange-httpd_validation.h taler_exchange_httpd_LDADD = \ $(LIBGCRYPT_LIBS) \ + $(top_builddir)/src/wire/libtalerwire.la \ $(top_builddir)/src/json/libtalerjson.la \ - $(top_builddir)/src/util/libtalerutil.la \ $(top_builddir)/src/exchangedb/libtalerexchangedb.la \ + $(top_builddir)/src/util/libtalerutil.la \ -lmicrohttpd \ -lgnunetutil \ -lgnunetjson \ diff --git a/src/exchange/taler-exchange-httpd_validation.c b/src/exchange/taler-exchange-httpd_validation.c index 12244c518..bc18767ed 100644 --- a/src/exchange/taler-exchange-httpd_validation.c +++ b/src/exchange/taler-exchange-httpd_validation.c @@ -23,6 +23,7 @@ #include #include "taler-exchange-httpd.h" #include "taler-exchange-httpd_validation.h" +#include "taler_wire_lib.h" #include "taler_wire_plugin.h" @@ -76,7 +77,6 @@ TMH_VALIDATION_init (const struct GNUNET_CONFIGURATION_Handle *cfg) { struct Plugin *p; char *wireformats; - char *lib_name; const char *token; /* Find out list of supported wire formats */ @@ -97,24 +97,19 @@ TMH_VALIDATION_init (const struct GNUNET_CONFIGURATION_Handle *cfg) token = strtok (NULL, " ")) { - (void) GNUNET_asprintf (&lib_name, - "libtaler_plugin_wire_%s", - token); p = GNUNET_new (struct Plugin); p->type = GNUNET_strdup (token); - p->plugin = GNUNET_PLUGIN_load (lib_name, - (void *) cfg); + p->plugin = TALER_WIRE_plugin_load (cfg, + token); if (NULL == p->plugin) { GNUNET_free (p); GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to load plugin %s\n", - lib_name); - GNUNET_free (lib_name); + token); TMH_VALIDATION_done (); return GNUNET_SYSERR; } - p->plugin->library_name = lib_name; GNUNET_CONTAINER_DLL_insert (wire_head, wire_tail, p); @@ -131,17 +126,13 @@ void TMH_VALIDATION_done () { struct Plugin *p; - char *lib_name; while (NULL != (p = wire_head)) { GNUNET_CONTAINER_DLL_remove (wire_head, wire_tail, p); - lib_name = p->plugin->library_name; - GNUNET_assert (NULL == GNUNET_PLUGIN_unload (lib_name, - p->plugin)); - GNUNET_free (lib_name); + TALER_WIRE_plugin_unload (p->plugin); GNUNET_free (p->type); GNUNET_free (p); }