summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-01-17 03:42:31 +0100
committerChristian Grothoff <christian@grothoff.org>2020-01-17 03:42:36 +0100
commit7995678e776b719145aeaf9e4409b6dd694c253e (patch)
treef2fe1d83dd130f63c9b1379fa02477857bd32ecd
parentdcc80fd35dccf7c4686d267d37c95c38eb5fd36f (diff)
downloadexchange-7995678e776b719145aeaf9e4409b6dd694c253e.tar.gz
exchange-7995678e776b719145aeaf9e4409b6dd694c253e.tar.bz2
exchange-7995678e776b719145aeaf9e4409b6dd694c253e.zip
fix error code use
-rw-r--r--src/exchange/taler-exchange-httpd_keystate.c11
-rw-r--r--src/exchange/taler-exchange-httpd_refresh_reveal.c3
-rw-r--r--src/include/taler_error_codes.h13
3 files changed, 18 insertions, 9 deletions
diff --git a/src/exchange/taler-exchange-httpd_keystate.c b/src/exchange/taler-exchange-httpd_keystate.c
index 4115fe66e..31cb13684 100644
--- a/src/exchange/taler-exchange-httpd_keystate.c
+++ b/src/exchange/taler-exchange-httpd_keystate.c
@@ -2285,11 +2285,6 @@ TEH_KS_free ()
/**
* Sign the message in @a purpose with the exchange's signing key.
*
- * FIXME:
- * - Change API to return status code and do not assert on TEH_KS_acquire()
- * failures, instead allow caller to handle it (i.e. by returning
- * #TALER_EC_EXCHANGE_BAD_CONFIGURATION to application).
- *
* @param purpose the message to sign
* @param[out] pub set to the current public signing key of the exchange
* @param[out] sig signature over purpose using current signing key
@@ -2451,9 +2446,11 @@ TEH_KS_handler_keys (struct TEH_RequestHandler *rh,
}
if (NULL == krd)
{
- /* FIXME: should return 500 response instead... */
GNUNET_break (0);
- return MHD_NO;
+ return TALER_MHD_reply_with_error (connection,
+ MHD_HTTP_INTERNAL_SERVER_ERROR,
+ TALER_EC_KEYS_MISSING,
+ "no key response found");
}
ret = MHD_queue_response (connection,
rh->response_code,
diff --git a/src/exchange/taler-exchange-httpd_refresh_reveal.c b/src/exchange/taler-exchange-httpd_refresh_reveal.c
index fb2602c61..9a8d929fb 100644
--- a/src/exchange/taler-exchange-httpd_refresh_reveal.c
+++ b/src/exchange/taler-exchange-httpd_refresh_reveal.c
@@ -608,10 +608,9 @@ handle_refresh_reveal_json (struct MHD_Connection *connection,
if (NULL == key_state)
{
TALER_LOG_ERROR ("Lacking keys to operate\n");
- /* FIXME: use correct EC code! */
return TALER_MHD_reply_with_error (connection,
MHD_HTTP_INTERNAL_SERVER_ERROR,
- TALER_EC_REFRESH_REVEAL_SIGNING_ERROR,
+ TALER_EC_REFRESH_REVEAL_KEYS_MISSING,
"exchange lacks keys");
}
diff --git a/src/include/taler_error_codes.h b/src/include/taler_error_codes.h
index b6f736811..30df731c0 100644
--- a/src/include/taler_error_codes.h
+++ b/src/include/taler_error_codes.h
@@ -653,6 +653,13 @@ enum TALER_ErrorCode
TALER_EC_REFRESH_REVEAL_LINK_SIGNATURE_INVALID = 1382,
/**
+ * The exchange failed to generate the signature as it could not find
+ * the signing key for the denomination. This response is provided
+ * with HTTP status code MHD_HTTP_INTERNAL_SERVER_ERROR.
+ */
+ TALER_EC_REFRESH_REVEAL_KEYS_MISSING = 1383,
+
+ /**
* The coin specified in the link request is unknown to the exchange.
* This response is provided with HTTP status code MHD_HTTP_NOT_FOUND.
*/
@@ -940,6 +947,12 @@ enum TALER_ErrorCode
TALER_EC_KEYS_HAVE_NOT_NUMERIC = 1900,
/**
+ * We currently cannot find any keys. This reponse is provied with an
+ * HTTP status code of MHD_HTTP_INTERNAL_SERVER_ERROR.
+ */
+ TALER_EC_KEYS_MISSING = 1901,
+
+ /**
* The backend could not find the merchant instance specified in the
* request. This response is provided with HTTP status code
* MHD_HTTP_NOT_FOUND.