diff options
| m--------- | contrib/gana | 0 | ||||
| -rw-r--r-- | src/exchange/taler-exchange-httpd_keys.c | 15 | ||||
| -rw-r--r-- | src/util/crypto_helper_denom.c | 12 | 
3 files changed, 27 insertions, 0 deletions
| diff --git a/contrib/gana b/contrib/gana -Subproject 0272caa8ff8ee7553d035d29fb19d01866df43e +Subproject 2e967c48b395a3edb85982e2e349cb82e76dcb2 diff --git a/src/exchange/taler-exchange-httpd_keys.c b/src/exchange/taler-exchange-httpd_keys.c index 72c2de12..0e000530 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 4f8c921f..f8e77ae4 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;          } | 
