summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2019-04-03 18:02:16 +0200
committerMarcello Stanisci <stanisci.m@gmail.com>2019-04-03 18:02:16 +0200
commit6e6ce685ea0240abd1fcef9ac8f44d0252aef823 (patch)
tree8284cfb198d8c841904a6dd6afec19853aef25b9
parent35c064b93739795832598893b1885ff7cfd9faf8 (diff)
downloadexchange-6e6ce685ea0240abd1fcef9ac8f44d0252aef823.tar.gz
exchange-6e6ce685ea0240abd1fcef9ac8f44d0252aef823.tar.bz2
exchange-6e6ce685ea0240abd1fcef9ac8f44d0252aef823.zip
Provide API to fake now when requesting /keys.
-rw-r--r--src/include/taler_exchange_service.h20
-rw-r--r--src/lib/exchange_api_handle.c36
2 files changed, 56 insertions, 0 deletions
diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h
index 88fcf74a..880e6038 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 986bcc4c..5cc65de3 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.