aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-09-26 14:58:44 +0200
committerChristian Grothoff <christian@grothoff.org>2016-09-26 14:58:44 +0200
commitdf8c011b95cfaaf3040350f7b416c12f3771eb60 (patch)
tree4791a158ca261614fc1f51fc4d1079f5a8205614
parent302a08b7018b18a18939d49e132ca8db78a2be9a (diff)
return execution time also from exchange C API (#4578)
-rw-r--r--src/exchange-lib/exchange_api_track_transfer.c8
-rw-r--r--src/exchange-lib/test_exchange_api.c5
-rw-r--r--src/exchangedb/test_exchangedb.c3
-rw-r--r--src/include/taler_exchange_service.h3
4 files changed, 15 insertions, 4 deletions
diff --git a/src/exchange-lib/exchange_api_track_transfer.c b/src/exchange-lib/exchange_api_track_transfer.c
index 41cef5141..c37fbf5a5 100644
--- a/src/exchange-lib/exchange_api_track_transfer.c
+++ b/src/exchange-lib/exchange_api_track_transfer.c
@@ -86,6 +86,7 @@ check_track_transfer_response_ok (struct TALER_EXCHANGE_TrackTransferHandle *wdh
{
json_t *details_j;
struct GNUNET_HashCode h_wire;
+ struct GNUNET_TIME_Absolute exec_time;
struct TALER_Amount total_amount;
struct TALER_MerchantPublicKeyP merchant_pub;
unsigned int num_details;
@@ -95,6 +96,7 @@ check_track_transfer_response_ok (struct TALER_EXCHANGE_TrackTransferHandle *wdh
TALER_JSON_spec_amount ("total", &total_amount),
GNUNET_JSON_spec_fixed_auto ("merchant_pub", &merchant_pub),
GNUNET_JSON_spec_fixed_auto ("H_wire", &h_wire),
+ GNUNET_JSON_spec_absolute_time ("execution_time", &exec_time),
GNUNET_JSON_spec_json ("deposits", &details_j),
GNUNET_JSON_spec_fixed_auto ("exchange_sig", &exchange_sig),
GNUNET_JSON_spec_fixed_auto ("exchange_pub", &exchange_pub),
@@ -183,6 +185,7 @@ check_track_transfer_response_ok (struct TALER_EXCHANGE_TrackTransferHandle *wdh
&exchange_pub,
json,
&h_wire,
+ exec_time,
&total_amount,
num_details,
details);
@@ -251,7 +254,10 @@ handle_track_transfer_finished (void *cls,
response_code,
NULL,
json,
- NULL, NULL, 0, NULL);
+ NULL,
+ GNUNET_TIME_UNIT_ZERO_ABS,
+ NULL,
+ 0, NULL);
TALER_EXCHANGE_track_transfer_cancel (wdh);
}
diff --git a/src/exchange-lib/test_exchange_api.c b/src/exchange-lib/test_exchange_api.c
index 71630dc77..c5efe4594 100644
--- a/src/exchange-lib/test_exchange_api.c
+++ b/src/exchange-lib/test_exchange_api.c
@@ -1394,8 +1394,8 @@ wire_cb (void *cls,
* @param exchange_pub public key the exchange used for signing
* @param json original json reply (may include signatures, those have then been
* validated already)
- * @param wtid extracted wire transfer identifier, or NULL if the exchange could
- * not provide any (set only if @a http_status is #MHD_HTTP_OK)
+ * @param h_wire hash of the wire transfer address the transfer went to, or NULL on error
+ * @param execution_time time when the exchange claims to have performed the wire transfer
* @param total_amount total amount of the wire transfer, or NULL if the exchange could
* not provide any @a wtid (set only if @a http_status is #MHD_HTTP_OK)
* @param details_length length of the @a details array
@@ -1407,6 +1407,7 @@ wire_deposits_cb (void *cls,
const struct TALER_ExchangePublicKeyP *exchange_pub,
const json_t *json,
const struct GNUNET_HashCode *h_wire,
+ struct GNUNET_TIME_Absolute execution_time,
const struct TALER_Amount *total_amount,
unsigned int details_length,
const struct TALER_TrackTransferDetails *details)
diff --git a/src/exchangedb/test_exchangedb.c b/src/exchangedb/test_exchangedb.c
index 9941494a9..00c7a9ef6 100644
--- a/src/exchangedb/test_exchangedb.c
+++ b/src/exchangedb/test_exchangedb.c
@@ -708,6 +708,7 @@ static void
cb_wt_never (void *cls,
const struct TALER_MerchantPublicKeyP *merchant_pub,
const struct GNUNET_HashCode *h_wire,
+ struct GNUNET_TIME_Absolute exec_time,
const struct GNUNET_HashCode *h_contract,
uint64_t transaction_id,
const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -751,6 +752,7 @@ static void
cb_wt_check (void *cls,
const struct TALER_MerchantPublicKeyP *merchant_pub,
const struct GNUNET_HashCode *h_wire,
+ struct GNUNET_TIME_Absolute exec_time,
const struct GNUNET_HashCode *h_contract,
uint64_t transaction_id,
const struct TALER_CoinSpendPublicKeyP *coin_pub,
@@ -764,6 +766,7 @@ cb_wt_check (void *cls,
GNUNET_assert (0 == memcmp (h_wire,
&h_wire_wt,
sizeof (struct GNUNET_HashCode)));
+ GNUNET_assert (exec_time.abs_value_us == execution_time_wt.abs_value_us);
GNUNET_assert (0 == memcmp (h_contract,
&h_contract_wt,
sizeof (struct GNUNET_HashCode)));
diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h
index 4625160e9..9e3c48c4c 100644
--- a/src/include/taler_exchange_service.h
+++ b/src/include/taler_exchange_service.h
@@ -908,7 +908,6 @@ TALER_EXCHANGE_refresh_melt_cancel (struct TALER_EXCHANGE_RefreshMeltHandle *rmh
typedef void
(*TALER_EXCHANGE_RefreshRevealCallback) (void *cls,
unsigned int http_status,
-
unsigned int num_coins,
const struct TALER_CoinSpendPrivateKeyP *coin_privs,
const struct TALER_DenominationSignature *sigs,
@@ -1113,6 +1112,7 @@ struct TALER_EXCHANGE_TrackTransferHandle;
* @param json original json reply (may include signatures, those have then been
* validated already)
* @param h_wire hash of the wire transfer address the transfer went to, or NULL on error
+ * @param execution_time time when the exchange claims to have performed the wire transfer
* @param total_amount total amount of the wire transfer, or NULL if the exchange could
* not provide any @a wtid (set only if @a http_status is #MHD_HTTP_OK)
* @param details_length length of the @a details array
@@ -1124,6 +1124,7 @@ typedef void
const struct TALER_ExchangePublicKeyP *sign_key,
const json_t *json,
const struct GNUNET_HashCode *h_wire,
+ struct GNUNET_TIME_Absolute execution_time,
const struct TALER_Amount *total_amount,
unsigned int details_length,
const struct TALER_TrackTransferDetails *details);