diff options
Diffstat (limited to 'src/util/crypto_helper_denom.c')
-rw-r--r-- | src/util/crypto_helper_denom.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/util/crypto_helper_denom.c b/src/util/crypto_helper_denom.c index 7326f70ff..c61a46f1d 100644 --- a/src/util/crypto_helper_denom.c +++ b/src/util/crypto_helper_denom.c @@ -369,7 +369,7 @@ await_read_ready (struct TALER_CRYPTO_DenominationHelper *dh) }; sigset_t sigmask; struct timespec ts = { - .tv_sec = 5 + .tv_sec = 1 }; int ret; @@ -412,7 +412,15 @@ TALER_CRYPTO_helper_denom_poll (struct TALER_CRYPTO_DenominationHelper *dh) if (dh->synced) break; if (! await_read_ready (dh)) - break; /* timeout */ + { + /* timeout AND not synced => full reconnect */ + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + "Restarting connection to helper, did not come up properly\n"); + do_disconnect (dh); + try_connect (dh); + if (-1 == dh->sock) + return; /* give up */ + } continue; /* try again */ } GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, |