generate 502 on secmod unavailable instead of 200 with bad public key; more logging

This commit is contained in:
Christian Grothoff 2021-10-11 14:32:32 +02:00
parent 70ff10286b
commit 66573865e1
No known key found for this signature in database
GPG Key ID: 939E6BE1E29FC3CC
3 changed files with 28 additions and 1 deletions

@ -1 +1 @@
Subproject commit 0272caa8ff8ee7553d035d29fb19d01866df43e4 Subproject commit 2e967c48b395a3edb85982e2e349cb82e76dcb27

View File

@ -2504,6 +2504,21 @@ TEH_keys_management_get_keys_handler (const struct TEH_RequestHandler *rh,
.signkeys = json_array () .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.denoms);
GNUNET_assert (NULL != fbc.signkeys); GNUNET_assert (NULL != fbc.signkeys);
GNUNET_CONTAINER_multihashmap_iterate (ksh->helpers->denom_keys, GNUNET_CONTAINER_multihashmap_iterate (ksh->helpers->denom_keys,

View File

@ -441,7 +441,11 @@ TALER_CRYPTO_helper_denom_poll (struct TALER_CRYPTO_DenominationHelper *dh)
try_connect (dh); try_connect (dh);
if (-1 == dh->sock) if (-1 == dh->sock)
{
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
"Cannot poll denom helper: socket down\n");
return; /* give up */ return; /* give up */
}
while (1) while (1)
{ {
ret = recv (dh->sock, 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"); "Restarting connection to RSA helper, did not come up properly\n");
do_disconnect (dh); do_disconnect (dh);
if (0 == retry_limit) if (0 == retry_limit)
{
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
"Cannot poll denom helper: retry limit reached\n");
return; /* give up */ return; /* give up */
}
try_connect (dh); try_connect (dh);
if (-1 == dh->sock) if (-1 == dh->sock)
{
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
"Cannot poll denom helper: failed to connect\n");
return; /* give up */ return; /* give up */
}
retry_limit--; retry_limit--;
flag = MSG_DONTWAIT; flag = MSG_DONTWAIT;
} }