aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/exchange-tools/taler-exchange-keyup.c30
-rw-r--r--src/lib/testing_api_cmd_check_keys.c2
2 files changed, 27 insertions, 5 deletions
diff --git a/src/exchange-tools/taler-exchange-keyup.c b/src/exchange-tools/taler-exchange-keyup.c
index dbbcb0c0c..397355ee7 100644
--- a/src/exchange-tools/taler-exchange-keyup.c
+++ b/src/exchange-tools/taler-exchange-keyup.c
@@ -195,12 +195,18 @@ static char *feedir;
static const struct GNUNET_CONFIGURATION_Handle *kcfg;
/**
- * Time when the key update is executed. Either the actual current time, or a
- * pretended time.
+ * Time when the key update is executed.
+ * Either the actual current time, or a pretended time.
*/
static struct GNUNET_TIME_Absolute now;
/**
+ * The time for the key update, as passed by the user
+ * on the command line.
+ */
+static struct GNUNET_TIME_Absolute now_tmp;
+
+/**
* Master private key of the exchange.
*/
static struct TALER_MasterPrivateKeyP master_priv;
@@ -726,6 +732,12 @@ get_cointype_params (const char *ct,
params->duration_withdraw,
params->duration_overlap,
&params->anchor);
+
+ /**
+ * The "anchor" is merely the latest denom key filename
+ * converted to a GNUnet absolute date.
+ */
+
return GNUNET_OK;
}
@@ -809,6 +821,7 @@ exchange_keys_update_cointype (void *cls,
*ret = GNUNET_SYSERR;
return;
}
+ /* p has the right anchor now = latest denom filename converted to time. */
if (GNUNET_OK !=
GNUNET_DISK_directory_create (get_cointype_dir (&p)))
{
@@ -1179,6 +1192,15 @@ run (void *cls,
struct GNUNET_CRYPTO_EddsaPrivateKey *eddsa_priv;
kcfg = cfg;
+
+ if (now.abs_value_us != now_tmp.abs_value_us)
+ {
+ /* The user gave "--now", use it */
+ now = now_tmp;
+ }
+ /* The user _might_ have given "--now" but it matched
+ * exactly the normal now, so no change required. */
+
if (NULL == feedir)
{
if (GNUNET_OK !=
@@ -1387,7 +1409,7 @@ main (int argc,
"time",
"TIMESTAMP",
"pretend it is a different time for the update",
- &now),
+ &now_tmp),
GNUNET_GETOPT_OPTION_END
};
@@ -1395,7 +1417,7 @@ main (int argc,
GNUNET_log_setup ("taler-exchange-keyup",
"WARNING",
NULL));
- now = GNUNET_TIME_absolute_get ();
+ now = now_tmp = GNUNET_TIME_absolute_get ();
if (GNUNET_OK !=
GNUNET_PROGRAM_run (argc, argv,
"taler-exchange-keyup",
diff --git a/src/lib/testing_api_cmd_check_keys.c b/src/lib/testing_api_cmd_check_keys.c
index 45aaeb55d..375a35c4f 100644
--- a/src/lib/testing_api_cmd_check_keys.c
+++ b/src/lib/testing_api_cmd_check_keys.c
@@ -58,7 +58,7 @@ struct CheckKeysState
/**
* If GNUNET_YES, then the user must specify the
* last_denom_issue_date manually. This way, it is possible
- * to force whatever X value here: /keys?last_denom_issue=X.
+ * to force whatever X value here (including 0): /keys?last_denom_issue=X.
*/
unsigned int set_last_denom;