diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-09-13 14:08:11 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-09-13 14:08:11 +0200 |
commit | b46735fbafdea562a0d56e7ea1ce844faadcc192 (patch) | |
tree | 248233c6f0f1c208ec942a330c0d4de87670fbae /src/exchange-lib/exchange_api_handle.c | |
parent | e33d72683c9ea445fdca81f3d33c948b650f482f (diff) |
add argument to TALER_EXCHANGE_check_keys_current() to allow forcing the download
Diffstat (limited to 'src/exchange-lib/exchange_api_handle.c')
-rw-r--r-- | src/exchange-lib/exchange_api_handle.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/exchange-lib/exchange_api_handle.c b/src/exchange-lib/exchange_api_handle.c index 99255e449..91309cc5e 100644 --- a/src/exchange-lib/exchange_api_handle.c +++ b/src/exchange-lib/exchange_api_handle.c @@ -770,14 +770,17 @@ request_keys (struct TALER_EXCHANGE_Handle *exchange); * not trigger download. * * @param exchange exchange to check keys for + * @param force_download #GNUNET_YES to force download even if /keys is still valid * @return until when the response is current, 0 if we are re-downloading */ struct GNUNET_TIME_Absolute -TALER_EXCHANGE_check_keys_current (struct TALER_EXCHANGE_Handle *exchange) +TALER_EXCHANGE_check_keys_current (struct TALER_EXCHANGE_Handle *exchange, + int force_download) { if (NULL != exchange->kr) return GNUNET_TIME_UNIT_ZERO_ABS; - if (0 < GNUNET_TIME_absolute_get_remaining (exchange->key_data_expiration).rel_value_us) + if ( (GNUNET_NO == force_download) && + (0 < GNUNET_TIME_absolute_get_remaining (exchange->key_data_expiration).rel_value_us) ) return exchange->key_data_expiration; request_keys (exchange); return GNUNET_TIME_UNIT_ZERO_ABS; @@ -1280,7 +1283,8 @@ TALER_EXCHANGE_get_denomination_key_by_hash (const struct TALER_EXCHANGE_Keys *k const struct TALER_EXCHANGE_Keys * TALER_EXCHANGE_get_keys (struct TALER_EXCHANGE_Handle *exchange) { - (void) TALER_EXCHANGE_check_keys_current (exchange); + (void) TALER_EXCHANGE_check_keys_current (exchange, + GNUNET_NO); return &exchange->key_data; } @@ -1295,7 +1299,8 @@ TALER_EXCHANGE_get_keys (struct TALER_EXCHANGE_Handle *exchange) json_t * TALER_EXCHANGE_get_keys_raw (struct TALER_EXCHANGE_Handle *exchange) { - (void) TALER_EXCHANGE_check_keys_current (exchange); + (void) TALER_EXCHANGE_check_keys_current (exchange, + GNUNET_NO); return json_deep_copy (exchange->key_data_raw); } |