exchange

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

commit 5017dacbdaac2d1654b01329f97b8b5b7dc34ba9
parent 6761e2a997efbd76e412b6d6343aba3a14c9a703
Author: Christian Grothoff <christian@grothoff.org>
Date:   Fri, 27 Aug 2021 14:35:59 +0200

-fix memory leak

Diffstat:
Msrc/include/taler_mhd_lib.h | 19+++++++++++++++++--
Msrc/mhd/mhd_responses.c | 15+++++++++++++++
2 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/src/include/taler_mhd_lib.h b/src/include/taler_mhd_lib.h @@ -125,6 +125,21 @@ TALER_MHD_reply_json (struct MHD_Connection *connection, /** + * Send JSON object as response, and free the @a json + * object. + * + * @param connection the MHD connection + * @param json the json object (freed!) + * @param response_code the http response code + * @return MHD result code + */ +MHD_RESULT +TALER_MHD_reply_json_steal (struct MHD_Connection *connection, + json_t *json, + unsigned int response_code); + + +/** * Function to call to handle the request by building a JSON * reply from a format string and varargs. * @@ -151,8 +166,8 @@ TALER_MHD_reply_json_pack (struct MHD_Connection *connection, * @return MHD result code */ #define TALER_MHD_REPLY_JSON_PACK(connection,response_code,...) \ - TALER_MHD_reply_json (connection, GNUNET_JSON_PACK (__VA_ARGS__), \ - response_code) + TALER_MHD_reply_json_steal (connection, GNUNET_JSON_PACK (__VA_ARGS__), \ + response_code) /** diff --git a/src/mhd/mhd_responses.c b/src/mhd/mhd_responses.c @@ -220,6 +220,21 @@ TALER_MHD_reply_json (struct MHD_Connection *connection, MHD_RESULT +TALER_MHD_reply_json_steal (struct MHD_Connection *connection, + json_t *json, + unsigned int response_code) +{ + MHD_RESULT ret; + + ret = TALER_MHD_reply_json (connection, + json, + response_code); + json_decref (json); + return ret; +} + + +MHD_RESULT TALER_MHD_reply_cors_preflight (struct MHD_Connection *connection) { struct MHD_Response *response;