From 0d1ab614c06f60f79de75a0f2ec30c33a69820dd Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 25 May 2021 20:52:58 +0200 Subject: return signed 404 statements for unknown denomination key hashes (#6889) --- src/exchange/taler-exchange-httpd_keys.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'src/exchange/taler-exchange-httpd_keys.c') diff --git a/src/exchange/taler-exchange-httpd_keys.c b/src/exchange/taler-exchange-httpd_keys.c index 579cb6b3..a0d359e3 100644 --- a/src/exchange/taler-exchange-httpd_keys.c +++ b/src/exchange/taler-exchange-httpd_keys.c @@ -1801,30 +1801,32 @@ TEH_keys_get_state (void) struct TEH_DenominationKey * TEH_keys_denomination_by_hash (const struct GNUNET_HashCode *h_denom_pub, - enum TALER_ErrorCode *ec, - unsigned int *hc) + struct MHD_Connection *conn, + MHD_RESULT *mret) { struct TEH_KeyStateHandle *ksh; ksh = TEH_keys_get_state (); if (NULL == ksh) { - *hc = MHD_HTTP_INTERNAL_SERVER_ERROR; - *ec = TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING; + *mret = TALER_MHD_reply_with_error (conn, + MHD_HTTP_INTERNAL_SERVER_ERROR, + TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING, + NULL); return NULL; } return TEH_keys_denomination_by_hash2 (ksh, h_denom_pub, - ec, - hc); + conn, + mret); } struct TEH_DenominationKey * TEH_keys_denomination_by_hash2 (struct TEH_KeyStateHandle *ksh, const struct GNUNET_HashCode *h_denom_pub, - enum TALER_ErrorCode *ec, - unsigned int *hc) + struct MHD_Connection *conn, + MHD_RESULT *mret) { struct TEH_DenominationKey *dk; @@ -1832,8 +1834,8 @@ TEH_keys_denomination_by_hash2 (struct TEH_KeyStateHandle *ksh, h_denom_pub); if (NULL == dk) { - *hc = MHD_HTTP_NOT_FOUND; - *ec = TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN; + *mret = TEH_RESPONSE_reply_unknown_denom_pub_hash (conn, + h_denom_pub); return NULL; } return dk; -- cgit v1.2.3