From 51b9d209f5d73abcfb2fc580ba7acd8e2bde1e62 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 15 Mar 2015 16:58:21 +0100 Subject: warn if no signing key was found, fix next_reload calculation --- src/mint/taler-mint-httpd_keystate.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/mint/taler-mint-httpd_keystate.c') diff --git a/src/mint/taler-mint-httpd_keystate.c b/src/mint/taler-mint-httpd_keystate.c index d5872d96d..159db9bed 100644 --- a/src/mint/taler-mint-httpd_keystate.c +++ b/src/mint/taler-mint-httpd_keystate.c @@ -288,16 +288,14 @@ reload_keys_sign_iter (void *cls, return GNUNET_OK; } - // the signkey is valid for now, check - // if it's more recent than the current one! + /* The signkey is valid at this time, check if it's more recent than + what we have so far! */ if (GNUNET_TIME_absolute_ntoh (ctx->current_sign_key_issue.issue.start).abs_value_us > GNUNET_TIME_absolute_ntoh (ski->issue.start).abs_value_us) + { + /* We keep the most recent one around */ ctx->current_sign_key_issue = *ski; - - - ctx->next_reload = GNUNET_TIME_absolute_min (ctx->next_reload, - GNUNET_TIME_absolute_ntoh (ski->issue.expire)); - + } json_array_append_new (ctx->sign_keys_array, sign_key_issue_to_json (&ski->issue)); @@ -376,7 +374,6 @@ TALER_MINT_key_state_acquire (void) if (NULL == internal_key_state) { key_state = GNUNET_new (struct MintKeyState); - key_state->next_reload = GNUNET_TIME_UNIT_FOREVER_ABS; key_state->denom_keys_array = json_array (); GNUNET_assert (NULL != key_state->denom_keys_array); key_state->sign_keys_array = json_array (); @@ -390,6 +387,11 @@ TALER_MINT_key_state_acquire (void) TALER_MINT_signkeys_iterate (mintdir, &reload_keys_sign_iter, key_state); + key_state->next_reload = GNUNET_TIME_absolute_ntoh (key_state->current_sign_key_issue.issue.expire); + if (0 == key_state->next_reload.abs_value_us) + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "No valid signing key found!\n"); + keys = json_pack ("{s:o, s:o, s:o, s:o}", "master_pub", TALER_JSON_from_data (&master_pub, -- cgit v1.2.3