summaryrefslogtreecommitdiff
path: root/src/exchange-tools
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2019-04-03 13:47:00 +0200
committerMarcello Stanisci <stanisci.m@gmail.com>2019-04-03 13:47:00 +0200
commit9d37f8e02615e276be23c4d005e1fdece045a8fa (patch)
treed08110b385911aede2a8fe84e58692fdaaa7bab3 /src/exchange-tools
parent8d979a92c939db4ed2c14a1a3a4ce1de577cee7d (diff)
downloadexchange-9d37f8e02615e276be23c4d005e1fdece045a8fa.tar.gz
exchange-9d37f8e02615e276be23c4d005e1fdece045a8fa.tar.bz2
exchange-9d37f8e02615e276be23c4d005e1fdece045a8fa.zip
keyup:_use_ the timestamp given by the user.
Diffstat (limited to 'src/exchange-tools')
-rw-r--r--src/exchange-tools/taler-exchange-keyup.c30
1 files changed, 26 insertions, 4 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",