exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit c71c40d4d62d55730dad032c3ef9f8f645a07efd
parent de6c30b0e03e4921c207a03c7e4e2193331a6d94
Author: Christian Grothoff <christian@grothoff.org>
Date:   Fri,  6 Aug 2021 09:28:34 +0200

-skeleton logic for #6980

Diffstat:
Msrc/exchange/taler-exchange-httpd.c | 24++++++++++++++++--------
Msrc/exchange/taler-exchange-httpd_keys.c | 4++--
Msrc/exchange/taler-exchange-httpd_keys.h | 4++--
Msrc/exchange/taler-exchange-httpd_wire.c | 12++++++++++++
Msrc/exchange/taler-exchange-httpd_wire.h | 13+++++++++++++
5 files changed, 45 insertions(+), 12 deletions(-)

diff --git a/src/exchange/taler-exchange-httpd.c b/src/exchange/taler-exchange-httpd.c @@ -681,16 +681,24 @@ handle_get_management (const struct TEH_RequestHandler *rh, struct MHD_Connection *connection, const char *const args[1]) { - if ( (NULL == args[0]) || - (0 != strcmp (args[0], - "keys")) || - (NULL != args[1]) ) + if ( (NULL != args[0]) && + (0 == strcmp (args[0], + "keys")) && + (NULL == args[1]) ) { - GNUNET_break_op (0); - return r404 (connection, "/management/*"); + return TEH_keys_management_get_keys_handler (rh, + connection); + } + if ( (NULL != args[0]) && + (0 == strcmp (args[0], + "wire")) && + (NULL == args[1]) ) + { + return TEH_wire_management_get_wire_handler (rh, + connection); } - return TEH_keys_management_get_handler (rh, - connection); + GNUNET_break_op (0); + return r404 (connection, "/management/*"); } diff --git a/src/exchange/taler-exchange-httpd_keys.c b/src/exchange/taler-exchange-httpd_keys.c @@ -2481,8 +2481,8 @@ add_future_signkey_cb (void *cls, MHD_RESULT -TEH_keys_management_get_handler (const struct TEH_RequestHandler *rh, - struct MHD_Connection *connection) +TEH_keys_management_get_keys_handler (const struct TEH_RequestHandler *rh, + struct MHD_Connection *connection) { struct TEH_KeyStateHandle *ksh; json_t *reply; diff --git a/src/exchange/taler-exchange-httpd_keys.h b/src/exchange/taler-exchange-httpd_keys.h @@ -344,8 +344,8 @@ TEH_keys_get_handler (const struct TEH_RequestHandler *rh, * @return MHD result code */ MHD_RESULT -TEH_keys_management_get_handler (const struct TEH_RequestHandler *rh, - struct MHD_Connection *connection); +TEH_keys_management_get_keys_handler (const struct TEH_RequestHandler *rh, + struct MHD_Connection *connection); /** diff --git a/src/exchange/taler-exchange-httpd_wire.c b/src/exchange/taler-exchange-httpd_wire.c @@ -376,4 +376,16 @@ TEH_handler_wire (const struct TEH_RequestHandler *rh, } +MHD_RESULT +TEH_wire_management_get_wire_handler (const struct TEH_RequestHandler *rh, + struct MHD_Connection *connection) +{ + return TALER_MHD_REPLY_JSON_PACK ( + connection, + MHD_HTTP_OK, + GNUNET_JSON_pack_string ("foo", + "bar")); +} + + /* end of taler-exchange-httpd_wire.c */ diff --git a/src/exchange/taler-exchange-httpd_wire.h b/src/exchange/taler-exchange-httpd_wire.h @@ -43,6 +43,19 @@ TEH_WIRE_done (void); /** + * Function to call to handle requests to GET "/management/wire" by sending + * back our current wire status. + * + * @param rh context of the handler + * @param connection the MHD connection to handle + * @return MHD result code + */ +MHD_RESULT +TEH_wire_management_get_wire_handler (const struct TEH_RequestHandler *rh, + struct MHD_Connection *connection); + + +/** * Something changed in the database. Rebuild the wire replies. This function * should be called if the exchange learns about a new signature from our * master key.