diff options
-rw-r--r-- | src/lib/exchange_api_handle.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/exchange_api_handle.c b/src/lib/exchange_api_handle.c index a6e6e9a4d..fbb33eb23 100644 --- a/src/lib/exchange_api_handle.c +++ b/src/lib/exchange_api_handle.c @@ -1863,8 +1863,14 @@ TALER_EXCHANGE_connect ( static long get_keys_timeout_seconds (struct TALER_EXCHANGE_Handle *exchange) { - return GNUNET_MIN (60, - 5 + (1L << exchange->keys_error_count)); + unsigned int kec; + + /* if retry counter >= 8, do not bother to go further, we + stop the exponential back-off at 128 anyway. */ + kec = GNUNET_MIN (7, + exchange->keys_error_count); + return GNUNET_MIN (120, + 5 + (1L << kec)); } |