diff options
author | Marcello Stanisci <marcello.stanisci@inria.fr> | 2016-09-15 20:45:45 +0200 |
---|---|---|
committer | Marcello Stanisci <marcello.stanisci@inria.fr> | 2016-09-15 20:45:45 +0200 |
commit | 9d119f89e42b1953e0ed8a6f03dccf47b0a7c68d (patch) | |
tree | 11e6456d12c3fcc482ad0b8d493de9139e58f95c /src/backend/taler-merchant-httpd_track-transaction.c | |
parent | b95af8714afdce4989d27fe9183107c849eb2871 (diff) | |
download | merchant-9d119f89e42b1953e0ed8a6f03dccf47b0a7c68d.tar.gz merchant-9d119f89e42b1953e0ed8a6f03dccf47b0a7c68d.tar.bz2 merchant-9d119f89e42b1953e0ed8a6f03dccf47b0a7c68d.zip |
placing FIXMEs in track-transaction
Diffstat (limited to 'src/backend/taler-merchant-httpd_track-transaction.c')
-rw-r--r-- | src/backend/taler-merchant-httpd_track-transaction.c | 13 |
1 files 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 index 0f1711fc..a2b558d1 100644 --- 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))); |