diff options
| -rw-r--r-- | src/include/taler_wire_plugin.h | 2 | ||||
| -rw-r--r-- | src/wire/plugin_wire_template.c | 12 | ||||
| -rw-r--r-- | src/wire/plugin_wire_test.c | 24 | 
3 files changed, 30 insertions, 8 deletions
| diff --git a/src/include/taler_wire_plugin.h b/src/include/taler_wire_plugin.h index 00bcc42e..62930450 100644 --- a/src/include/taler_wire_plugin.h +++ b/src/include/taler_wire_plugin.h @@ -123,7 +123,7 @@ struct TALER_WIRE_Plugin    (*prepare_wire_transfer) (void *cls,                              const json_t *wire,                              const struct TALER_Amount *amount, -                            const void *wtid, +                            const struct TALER_WireTransferIdentifierRawP *wtid,                              TALER_WIRE_PrepareTransactionCallback ptc,                              void *ptc_cls); diff --git a/src/wire/plugin_wire_template.c b/src/wire/plugin_wire_template.c index 8abcca8c..baf0ee7d 100644 --- a/src/wire/plugin_wire_template.c +++ b/src/wire/plugin_wire_template.c @@ -60,7 +60,15 @@ static int  template_amount_round (void *cls,                         struct TALER_Amount *amount)  { -  GNUNET_break (0); +  struct TemplateClosure *tc = cls; + +  if (0 != strcasecmp (amount->currency, +                       tc->currency)) +  { +    GNUNET_break (0); +    return GNUNET_SYSERR; +  } +  GNUNET_break (0); // not implemented    return GNUNET_SYSERR;  } @@ -94,7 +102,7 @@ static struct TALER_WIRE_PrepareHandle *  template_prepare_wire_transfer (void *cls,                                  const json_t *wire,                                  const struct TALER_Amount *amount, -                                const void *wtid, +                                const struct TALER_WireTransferIdentifierRawP *wtid,                                  TALER_WIRE_PrepareTransactionCallback ptc,                                  void *ptc_cls)  { diff --git a/src/wire/plugin_wire_test.c b/src/wire/plugin_wire_test.c index 72c87ef5..1ea856fd 100644 --- a/src/wire/plugin_wire_test.c +++ b/src/wire/plugin_wire_test.c @@ -60,8 +60,21 @@ static int  test_amount_round (void *cls,                     struct TALER_Amount *amount)  { -  GNUNET_break (0); -  return GNUNET_SYSERR; +  struct TestClosure *tc = cls; +  uint32_t delta; + +  if (0 != strcasecmp (amount->currency, +                       tc->currency)) +  { +    GNUNET_break (0); +    return GNUNET_SYSERR; +  } +  /* 'test' method supports 1/100 of the unit currency, i.e. 0.01 CUR */ +  delta = amount->fraction % (TALER_AMOUNT_FRAC_BASE / 100); +  if (0 == delta) +    return GNUNET_NO; +  amount->fraction -= delta; +  return GNUNET_OK;  } @@ -74,8 +87,9 @@ test_amount_round (void *cls,  static int  test_wire_validate (const json_t *wire)  { -  GNUNET_break (0); -  return GNUNET_SYSERR; +  GNUNET_break (0); /* FIXME: we still need to define the +                       proper wire format for 'test' */ +  return GNUNET_YES;  } @@ -94,7 +108,7 @@ static struct TALER_WIRE_PrepareHandle *  test_prepare_wire_transfer (void *cls,                              const json_t *wire,                              const struct TALER_Amount *amount, -                            const void *wtid, +                            const struct TALER_WireTransferIdentifierRawP *wtid,                              TALER_WIRE_PrepareTransactionCallback ptc,                              void *ptc_cls)  { | 
