aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-04-11 13:01:20 +0200
committerChristian Grothoff <christian@grothoff.org>2016-04-11 13:01:20 +0200
commitaf91cd87d6fb7d2a142557038222121e4911a921 (patch)
treef9b83e88e24157abf646f2b71616c1783a6bed1c
parentb018d4d5b0798bdad6002cb7bbd246247b3ebd4f (diff)
use libtalerwire instead of duplicating logic
-rw-r--r--src/exchange-tools/Makefile.am1
-rw-r--r--src/exchange-tools/taler-exchange-wire.c19
-rw-r--r--src/exchange/Makefile.am3
-rw-r--r--src/exchange/taler-exchange-httpd_validation.c19
4 files changed, 13 insertions, 29 deletions
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 <gnunet/gnunet_json_lib.h>
#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 <gnunet/gnunet_util_lib.h>
#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);
}