diff options
Diffstat (limited to 'src/util/crypto_helper_esign.c')
-rw-r--r-- | src/util/crypto_helper_esign.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/util/crypto_helper_esign.c b/src/util/crypto_helper_esign.c index 688afc7de..ca37c59eb 100644 --- a/src/util/crypto_helper_esign.c +++ b/src/util/crypto_helper_esign.c @@ -373,7 +373,15 @@ TALER_CRYPTO_helper_esign_poll (struct TALER_CRYPTO_ExchangeSignHelper *esh) if (esh->synced) break; if (! await_read_ready (esh)) - break; /* timeout */ + { + /* timeout AND not synced => full reconnect */ + GNUNET_log (GNUNET_ERROR_TYPE_INFO, + "Restarting connection to EdDSA 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, |