merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 9d119f89e42b1953e0ed8a6f03dccf47b0a7c68d
parent b95af8714afdce4989d27fe9183107c849eb2871
Author: Marcello Stanisci <marcello.stanisci@inria.fr>
Date:   Thu, 15 Sep 2016 20:45:45 +0200

placing FIXMEs in track-transaction

Diffstat:
Msrc/backend/taler-merchant-httpd_track-transaction.c | 13+++++++++++++
1 file changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_track-transaction.c b/src/backend/taler-merchant-httpd_track-transaction.c @@ -514,6 +514,9 @@ trace_coins (struct TrackTransactionContext *tctx) struct TrackCoinContext *tcc2; int found = GNUNET_NO; + /* FIXME 1: How can a tcc without wtid (the 'for' loop above + looks exactly for wtid-less entries) have the same wtid of + another tcc2 ?*/ for (tcc2 = tctx->tcc_head; tcc2 != tcc; tcc2 = tcc2->next) { if (0 == memcmp (&tcc->wtid, @@ -716,6 +719,16 @@ transfer_cb (void *cls, { struct TrackCoinContext *tcc = cls; + /* FIXME 2: the GNUNET_break statement below should (?) abort/return. + (According to gnunet_common.h, it just prints an ERROR-level message.) + Otherwise, consider the following scenario: let + tcc=coin1, + transaction_id=x, + transaction x be such that it is paid by coin1 and coin2 but + coin1 has been paid back by wtid=1 and coin2 by wtid=2. + Since transfer_cb gets called *for each* coin involved in transaction x + and tcc remains the same, tcc will get wtid=2, if coin2 is the last in + the iteration. */ GNUNET_break (0 == memcmp (coin_pub, &tcc->coin_pub, sizeof (struct TALER_CoinSpendPublicKeyP)));