summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-09-13 14:08:11 +0200
committerChristian Grothoff <christian@grothoff.org>2017-09-13 14:08:11 +0200
commitb46735fbafdea562a0d56e7ea1ce844faadcc192 (patch)
tree248233c6f0f1c208ec942a330c0d4de87670fbae
parente33d72683c9ea445fdca81f3d33c948b650f482f (diff)
downloadexchange-b46735fbafdea562a0d56e7ea1ce844faadcc192.tar.gz
exchange-b46735fbafdea562a0d56e7ea1ce844faadcc192.tar.bz2
exchange-b46735fbafdea562a0d56e7ea1ce844faadcc192.zip
add argument to TALER_EXCHANGE_check_keys_current() to allow forcing the download
-rw-r--r--.gitignore1
-rw-r--r--ChangeLog5
-rw-r--r--src/exchange-lib/exchange_api_handle.c13
-rw-r--r--src/include/taler_exchange_service.h4
4 files changed, 18 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 608d4d65..88559413 100644
--- a/.gitignore
+++ b/.gitignore
@@ -86,3 +86,4 @@ doc/manual/manual.tp
doc/manual/manual.vr
contrib/taler-exchange.tag
doxygen-doc/
+src/exchange-lib/test_exchange_api_keys_cherry_picking
diff --git a/ChangeLog b/ChangeLog
index d8adb7d9..a133921d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Sep 13 14:06:44 CEST 2017
+ Add argument to TALER_EXCHANGE_check_keys_current()
+ to force download even if /keys are still considered
+ current. -CG
+
Fri Jul 14 17:38:54 CEST 2017
Fix #4751 by not allowing denomination deletion (GC)
to cascade into reserve_out table (and tolerating such
diff --git a/src/exchange-lib/exchange_api_handle.c b/src/exchange-lib/exchange_api_handle.c
index 99255e44..91309cc5 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);
}
diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h
index d7056b57..814078a0 100644
--- a/src/include/taler_exchange_service.h
+++ b/src/include/taler_exchange_service.h
@@ -367,10 +367,12 @@ TALER_EXCHANGE_get_keys (struct TALER_EXCHANGE_Handle *exchange);
* not, trigger /keys 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);
/**