From 5a12cbac296493999bbbcee46ca471d3f98685c4 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 11 Nov 2015 18:21:29 +0100 Subject: skeleton for the logic for #3888 (mint-side) --- src/include/taler_signatures.h | 2 - src/mint/Makefile.am | 3 +- src/mint/taler-mint-httpd.c | 14 +++++++ src/mint/taler-mint-httpd_tracking.c | 75 ++++++++++++++++++++++++++++++++++++ src/mint/taler-mint-httpd_tracking.h | 65 +++++++++++++++++++++++++++++++ 5 files changed, 156 insertions(+), 3 deletions(-) create mode 100644 src/mint/taler-mint-httpd_tracking.c create mode 100644 src/mint/taler-mint-httpd_tracking.h (limited to 'src') diff --git a/src/include/taler_signatures.h b/src/include/taler_signatures.h index 555c93e37..ea9ed600a 100644 --- a/src/include/taler_signatures.h +++ b/src/include/taler_signatures.h @@ -795,8 +795,6 @@ struct TALER_MintWireSupportMethodsPS }; - - /** * @brief Format used to generate the signature on a request to obtain * the wire transfer identifier associated with a deposit. diff --git a/src/mint/Makefile.am b/src/mint/Makefile.am index 1c7e1ca87..a115d63a0 100644 --- a/src/mint/Makefile.am +++ b/src/mint/Makefile.am @@ -19,6 +19,7 @@ taler_mint_httpd_SOURCES = \ taler-mint-httpd_admin.c taler-mint-httpd_admin.h \ taler-mint-httpd_deposit.c taler-mint-httpd_deposit.h \ taler-mint-httpd_reserve.c taler-mint-httpd_reserve.h \ + taler-mint-httpd_tracking.c taler-mint-httpd_tracking.h \ taler-mint-httpd_wire.c taler-mint-httpd_wire.h \ taler-mint-httpd_refresh.c taler-mint-httpd_refresh.h taler_mint_httpd_LDADD = \ @@ -36,7 +37,7 @@ taler_mint_httpd_SOURCES += \ endif check_SCRIPTS = \ - test_taler_mint_httpd.sh + test_taler_mint_httpd.sh if HAVE_EXPENSIVE_TESTS check_SCRIPTS += \ diff --git a/src/mint/taler-mint-httpd.c b/src/mint/taler-mint-httpd.c index 09b2439bb..4f35103a7 100644 --- a/src/mint/taler-mint-httpd.c +++ b/src/mint/taler-mint-httpd.c @@ -33,6 +33,7 @@ #include "taler-mint-httpd_reserve.h" #include "taler-mint-httpd_wire.h" #include "taler-mint-httpd_refresh.h" +#include "taler-mint-httpd_tracking.h" #include "taler-mint-httpd_keystate.h" #if HAVE_DEVELOPER #include "taler-mint-httpd_test.h" @@ -256,6 +257,19 @@ handle_mhd_request (void *cls, "Only POST is allowed", 0, &TMH_MHD_handler_send_json_pack_error, MHD_HTTP_METHOD_NOT_ALLOWED }, + { "/wire/deposits", MHD_HTTP_METHOD_GET, "application/json", + NULL, 0, + &TMH_TRACKING_handler_wire_deposits, MHD_HTTP_OK }, + { "/wire/deposits", NULL, "text/plain", + "Only GET is allowed", 0, + &TMH_MHD_handler_send_json_pack_error, MHD_HTTP_METHOD_NOT_ALLOWED }, + { "/deposit/wtid", MHD_HTTP_METHOD_POST, "application/json", + NULL, 0, + &TMH_TRACKING_handler_deposit_wtid, MHD_HTTP_OK }, + { "/deposit/wtid", NULL, "text/plain", + "Only POST is allowed", 0, + &TMH_MHD_handler_send_json_pack_error, MHD_HTTP_METHOD_NOT_ALLOWED }, + #if HAVE_DEVELOPER /* Client crypto-interoperability test functions */ { "/test", MHD_HTTP_METHOD_POST, "application/json", diff --git a/src/mint/taler-mint-httpd_tracking.c b/src/mint/taler-mint-httpd_tracking.c new file mode 100644 index 000000000..beb4b4dd1 --- /dev/null +++ b/src/mint/taler-mint-httpd_tracking.c @@ -0,0 +1,75 @@ +/* + This file is part of TALER + Copyright (C) 2014, 2015 GNUnet e.V. + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with + TALER; see the file COPYING. If not, If not, see +*/ +/** + * @file taler-mint-httpd_tracking.c + * @brief Handle wire transfer tracking-related requests + * @author Christian Grothoff + */ +#include "platform.h" +#include +#include +#include +#include +#include "taler-mint-httpd_parsing.h" +#include "taler-mint-httpd_tracking.h" +#include "taler-mint-httpd_responses.h" + + +/** + * Handle a "/wire/deposits" request. + * + * @param rh context of the handler + * @param connection the MHD connection to handle + * @param[in,out] connection_cls the connection's closure (can be updated) + * @param upload_data upload data + * @param[in,out] upload_data_size number of bytes (left) in @a upload_data + * @return MHD result code + */ +int +TMH_TRACKING_handler_wire_deposits (struct TMH_RequestHandler *rh, + struct MHD_Connection *connection, + void **connection_cls, + const char *upload_data, + size_t *upload_data_size) +{ + GNUNET_break (0); // not implemented + return MHD_NO; +} + + +/** + * Handle a "/deposit/wtid" request. + * + * @param rh context of the handler + * @param connection the MHD connection to handle + * @param[in,out] connection_cls the connection's closure (can be updated) + * @param upload_data upload data + * @param[in,out] upload_data_size number of bytes (left) in @a upload_data + * @return MHD result code + */ +int +TMH_TRACKING_handler_deposit_wtid (struct TMH_RequestHandler *rh, + struct MHD_Connection *connection, + void **connection_cls, + const char *upload_data, + size_t *upload_data_size) +{ + GNUNET_break (0); // not implemented + return MHD_NO; +} + + +/* end of taler-mint-httpd_tracking.c */ diff --git a/src/mint/taler-mint-httpd_tracking.h b/src/mint/taler-mint-httpd_tracking.h new file mode 100644 index 000000000..9ec4c6827 --- /dev/null +++ b/src/mint/taler-mint-httpd_tracking.h @@ -0,0 +1,65 @@ +/* + This file is part of TALER + Copyright (C) 2014, 2015 GNUnet e.V. + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU Affero General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License along with + TALER; see the file COPYING. If not, If not, see +*/ +/** + * @file taler-mint-httpd_tracking.h + * @brief Handle wire transfer tracking-related requests + * @author Christian Grothoff + */ +#ifndef TALER_MINT_HTTPD_TRACKING_H +#define TALER_MINT_HTTPD_TRACKING_H + +#include +#include +#include "taler-mint-httpd.h" + + +/** + * Handle a "/wire/deposits" request. + * + * @param rh context of the handler + * @param connection the MHD connection to handle + * @param[in,out] connection_cls the connection's closure (can be updated) + * @param upload_data upload data + * @param[in,out] upload_data_size number of bytes (left) in @a upload_data + * @return MHD result code + */ +int +TMH_TRACKING_handler_wire_deposits (struct TMH_RequestHandler *rh, + struct MHD_Connection *connection, + void **connection_cls, + const char *upload_data, + size_t *upload_data_size); + + +/** + * Handle a "/deposit/wtid" request. + * + * @param rh context of the handler + * @param connection the MHD connection to handle + * @param[in,out] connection_cls the connection's closure (can be updated) + * @param upload_data upload data + * @param[in,out] upload_data_size number of bytes (left) in @a upload_data + * @return MHD result code + */ +int +TMH_TRACKING_handler_deposit_wtid (struct TMH_RequestHandler *rh, + struct MHD_Connection *connection, + void **connection_cls, + const char *upload_data, + size_t *upload_data_size); + + +#endif -- cgit v1.2.3