From 6e6ce685ea0240abd1fcef9ac8f44d0252aef823 Mon Sep 17 00:00:00 2001 From: Marcello Stanisci Date: Wed, 3 Apr 2019 18:02:16 +0200 Subject: Provide API to fake now when requesting /keys. --- src/include/taler_exchange_service.h | 20 ++++++++++++++++++++ src/lib/exchange_api_handle.c | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h index 88fcf74af..880e60389 100644 --- a/src/include/taler_exchange_service.h +++ b/src/include/taler_exchange_service.h @@ -422,6 +422,26 @@ TALER_EXCHANGE_disconnect (struct TALER_EXCHANGE_Handle *exchange); const struct TALER_EXCHANGE_Keys * TALER_EXCHANGE_get_keys (struct TALER_EXCHANGE_Handle *exchange); + +/** + * Set the fake now to be used when requesting "/keys". + * + * @param exchange exchange handle. + * @param now fake now to use. Note: this value will be + * used _until_ its use will be unset via @a TALER_EXCHANGE_unset_now() + */ +void +TALER_EXCHANGE_set_now (struct TALER_EXCHANGE_Handle *exchange, + struct GNUNET_TIME_Absolute now); + +/** + * Unset the fake now to be used when requesting "/keys". + * + * @param exchange exchange handle. + */ +void +TALER_EXCHANGE_unset_now (struct TALER_EXCHANGE_Handle *exchange); + /** * Let the user set the last valid denomination time manually. * diff --git a/src/lib/exchange_api_handle.c b/src/lib/exchange_api_handle.c index 986bcc4c1..5cc65de33 100644 --- a/src/lib/exchange_api_handle.c +++ b/src/lib/exchange_api_handle.c @@ -214,6 +214,17 @@ struct TALER_EXCHANGE_Handle */ enum ExchangeHandleState state; + /** + * If GNUNET_YES, use fake now given by the user, in + * request of "/keys". + */ + unsigned int with_now; + + /** + * Fake now given by the user. + */ + struct GNUNET_TIME_Absolute now; + }; @@ -1086,6 +1097,31 @@ void TEAH_handle_reset (struct TALER_EXCHANGE_Handle *h); +/** + * Set the fake now to be used when requesting "/keys". + * + * @param exchange exchange handle. + * @param now fake now to use. Note: this value will be + * used _until_ its use will be unset via @a TALER_EXCHANGE_unset_now() + */ +void +TALER_EXCHANGE_set_now (struct TALER_EXCHANGE_Handle *exchange, + struct GNUNET_TIME_Absolute now) +{ + exchange->with_now = GNUNET_YES; + exchange->now = now; +} + +/** + * Unset the fake now to be used when requesting "/keys". + * + * @param exchange exchange handle. + */ +void +TALER_EXCHANGE_unset_now (struct TALER_EXCHANGE_Handle *exchange) +{ + exchange->with_now = GNUNET_NO; +} /** * Let the user set the last valid denomination time manually. -- cgit v1.2.3