diff options
| author | Christian Grothoff <christian@grothoff.org> | 2015-06-11 13:38:47 +0200 | 
|---|---|---|
| committer | Christian Grothoff <christian@grothoff.org> | 2015-06-11 13:38:47 +0200 | 
| commit | dc23f290eed04f22545e3146ab6a2fd56b02738f (patch) | |
| tree | d6af1e021d72a304353ad9e622c854ffba36a251 /src/mint-tools | |
| parent | edc6d380824a2076f7f095a71b8cb5d53f32f6ce (diff) | |
fixing #3817
Diffstat (limited to 'src/mint-tools')
| -rw-r--r-- | src/mint-tools/Makefile.am | 2 | ||||
| -rw-r--r-- | src/mint-tools/taler-mint-reservemod.c | 18 | 
2 files changed, 18 insertions, 2 deletions
diff --git a/src/mint-tools/Makefile.am b/src/mint-tools/Makefile.am index e22df1ed..9849bbc5 100644 --- a/src/mint-tools/Makefile.am +++ b/src/mint-tools/Makefile.am @@ -41,7 +41,7 @@ taler_mint_reservemod_LDADD = \    $(top_builddir)/src/util/libtalerutil.la \    $(top_builddir)/src/pq/libtalerpq.la \    $(top_builddir)/src/mintdb/libtalermintdb.la \ -  -lgnunetutil  $(XLIB) +  -lgnunetutil -ljansson $(XLIB)  taler_mint_reservemod_LDFLAGS = \    $(POSTGRESQL_LDFLAGS)  taler_mint_reservemod_CPPFLAGS = \ diff --git a/src/mint-tools/taler-mint-reservemod.c b/src/mint-tools/taler-mint-reservemod.c index 75093fc7..888b34ba 100644 --- a/src/mint-tools/taler-mint-reservemod.c +++ b/src/mint-tools/taler-mint-reservemod.c @@ -22,6 +22,7 @@  #include "platform.h"  #include <gnunet/gnunet_util_lib.h>  #include <libpq-fe.h> +#include <jansson.h>  #include "taler_mintdb_plugin.h"  /** @@ -54,6 +55,8 @@ main (int argc, char *const *argv)    char *add_str = NULL;    struct TALER_Amount add_value;    char *details = NULL; +  json_t *jdetails; +  json_error_t error;    struct TALER_ReservePublicKeyP reserve_pub;    struct TALER_MINTDB_Session *session;    const struct GNUNET_GETOPT_CommandLineOption options[] = { @@ -157,11 +160,24 @@ main (int argc, char *const *argv)               "Failed to initialize DB session\n");      goto cleanup;    } +  jdetails = json_loads (details, +                         JSON_REJECT_DUPLICATES, +                         &error); +  if (NULL == jdetails) +  { +    fprintf (stderr, +             "Failed to parse JSON transaction details `%s': %s (%s)\n", +             details, +             error.text, +             error.source); +    goto cleanup; +  }    ret = plugin->reserves_in_insert (plugin->cls,  				    session,  				    &reserve_pub,  				    &add_value, -				    details); +				    jdetails); +  json_decref (jdetails);    if (GNUNET_SYSERR == ret)    {      fprintf (stderr,  | 
