summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-10-11 14:32:32 +0200
committerChristian Grothoff <christian@grothoff.org>2021-10-11 14:32:32 +0200
commit66573865e1da2b23ad856d70088c23ec7f4d4922 (patch)
treea62ce857fb00c5ce2041cf20a11377f31ed41aec /src
parent70ff10286ba94b0dbcb880a79222ee1bc06a5aea (diff)
downloadexchange-66573865e1da2b23ad856d70088c23ec7f4d4922.tar.gz
exchange-66573865e1da2b23ad856d70088c23ec7f4d4922.tar.bz2
exchange-66573865e1da2b23ad856d70088c23ec7f4d4922.zip
generate 502 on secmod unavailable instead of 200 with bad public key; more logging
Diffstat (limited to 'src')
-rw-r--r--src/exchange/taler-exchange-httpd_keys.c15
-rw-r--r--src/util/crypto_helper_denom.c12
2 files changed, 27 insertions, 0 deletions
diff --git a/src/exchange/taler-exchange-httpd_keys.c b/src/exchange/taler-exchange-httpd_keys.c
index 72c2de123..0e0005305 100644
--- a/src/exchange/taler-exchange-httpd_keys.c
+++ b/src/exchange/taler-exchange-httpd_keys.c
@@ -2504,6 +2504,21 @@ TEH_keys_management_get_keys_handler (const struct TEH_RequestHandler *rh,
.signkeys = json_array ()
};
+ if (GNUNET_is_zero (&denom_sm_pub))
+ {
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_BAD_GATEWAY,
+ TALER_EC_EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE,
+ NULL);
+ }
+ if (GNUNET_is_zero (&esign_sm_pub))
+ {
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_BAD_GATEWAY,
+ TALER_EC_EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE,
+ NULL);
+ }
+ // then a secmod helper is not yet running and we should return an MHD_HTTP_BAD_GATEWAY!
GNUNET_assert (NULL != fbc.denoms);
GNUNET_assert (NULL != fbc.signkeys);
GNUNET_CONTAINER_multihashmap_iterate (ksh->helpers->denom_keys,
diff --git a/src/util/crypto_helper_denom.c b/src/util/crypto_helper_denom.c
index 4f8c921f0..f8e77ae4f 100644
--- a/src/util/crypto_helper_denom.c
+++ b/src/util/crypto_helper_denom.c
@@ -441,7 +441,11 @@ TALER_CRYPTO_helper_denom_poll (struct TALER_CRYPTO_DenominationHelper *dh)
try_connect (dh);
if (-1 == dh->sock)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Cannot poll denom helper: socket down\n");
return; /* give up */
+ }
while (1)
{
ret = recv (dh->sock,
@@ -464,10 +468,18 @@ TALER_CRYPTO_helper_denom_poll (struct TALER_CRYPTO_DenominationHelper *dh)
"Restarting connection to RSA helper, did not come up properly\n");
do_disconnect (dh);
if (0 == retry_limit)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Cannot poll denom helper: retry limit reached\n");
return; /* give up */
+ }
try_connect (dh);
if (-1 == dh->sock)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Cannot poll denom helper: failed to connect\n");
return; /* give up */
+ }
retry_limit--;
flag = MSG_DONTWAIT;
}