use libtalerwire instead of duplicating logic
This commit is contained in:
parent
b018d4d5b0
commit
af91cd87d6
@ -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 \
|
||||
|
@ -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",
|
||||
plugin = TALER_WIRE_plugin_load (cfg,
|
||||
method);
|
||||
plugin = GNUNET_PLUGIN_load (lib_name,
|
||||
NULL);
|
||||
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 */
|
||||
|
@ -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 \
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user