aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/taler_wire_plugin.h2
-rw-r--r--src/wire/plugin_wire_template.c12
-rw-r--r--src/wire/plugin_wire_test.c24
3 files changed, 30 insertions, 8 deletions
diff --git a/src/include/taler_wire_plugin.h b/src/include/taler_wire_plugin.h
index 00bcc42e9..62930450c 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 8abcca8c9..baf0ee7d5 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 72c87ef55..1ea856fd1 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)
{