diff options
| author | Christian Grothoff <christian@grothoff.org> | 2021-08-27 16:17:45 +0200 | 
|---|---|---|
| committer | Christian Grothoff <christian@grothoff.org> | 2021-08-27 16:17:45 +0200 | 
| commit | 5026518bb5a6c47b9278eede81989ca0fba7094a (patch) | |
| tree | 2fab84462e22f05ce0dec738aec28391268e0ea8 | |
| parent | 5017dacbdaac2d1654b01329f97b8b5b7dc34ba9 (diff) | |
-fix another leak
| -rw-r--r-- | src/include/taler_mhd_lib.h | 12 | ||||
| -rw-r--r-- | src/mhd/mhd_responses.c | 11 | 
2 files changed, 22 insertions, 1 deletions
| diff --git a/src/include/taler_mhd_lib.h b/src/include/taler_mhd_lib.h index aba7cd8e..ba5a072c 100644 --- a/src/include/taler_mhd_lib.h +++ b/src/include/taler_mhd_lib.h @@ -212,6 +212,16 @@ TALER_MHD_make_json (const json_t *json);  /** + * Make JSON response object and free @a json. + * + * @param json the json object, freed. + * @return MHD response object + */ +struct MHD_Response * +TALER_MHD_make_json_steal (json_t *json); + + +/**   * Make JSON response object.   *   * @param fmt format string for pack @@ -230,7 +240,7 @@ TALER_MHD_make_json_pack (const char *fmt,   * @return MHD response object   */  #define TALER_MHD_MAKE_JSON_PACK(...) \ -  TALER_MHD_make_json (GNUNET_JSON_PACK (__VA_ARGS__)) +  TALER_MHD_make_json_steal (GNUNET_JSON_PACK (__VA_ARGS__))  /** diff --git a/src/mhd/mhd_responses.c b/src/mhd/mhd_responses.c index b7ff52e6..c993436c 100644 --- a/src/mhd/mhd_responses.c +++ b/src/mhd/mhd_responses.c @@ -148,6 +148,17 @@ TALER_MHD_make_json (const json_t *json)  } +struct MHD_Response * +TALER_MHD_make_json_steal (json_t *json) +{ +  struct MHD_Response *res; + +  res = TALER_MHD_make_json (json); +  json_decref (json); +  return res; +} + +  MHD_RESULT  TALER_MHD_reply_json (struct MHD_Connection *connection,                        const json_t *json, | 
