From 7a336c237882a3ee6a020d2f6ad4f8b227cf5742 Mon Sep 17 00:00:00 2001 From: "Jose M. Guisado Gomez" Date: Sat, 18 Jul 2020 12:25:21 +0200 Subject: [PATCH] capabilities: conditionalize mhd callback return type libmicrohttpd introduced an API change with respect its callback return types. Now its signature says that an enum must be returned instead of an int. This causes collectd to not finish compilation because of the compiler warnings this arised (in addition to -Werror) Add conditional compiling so systems with microhttpd >=0.9.71 can compile collectd with -Werror Fixes #3511 --- src/capabilities.c | 7 ++++++- src/capabilities_test.c | 10 +++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/capabilities.c b/src/capabilities.c index 5c27e6a3a..8e9411836 100644 --- a/src/capabilities.c +++ b/src/capabilities.c @@ -33,6 +33,11 @@ #include "utils/dmi/dmi.h" #include +#if MHD_VERSION >= 0x00097002 +#define MHD_RESULT enum MHD_Result +#else +#define MHD_RESULT int +#endif #include #include @@ -187,7 +192,7 @@ static int cap_get_dmi_variables(json_t *parent, const dmi_type type, /* http_handler is the callback called by the microhttpd library. It essentially * handles all HTTP request aspects and creates an HTTP response. */ -static int cap_http_handler(void *cls, struct MHD_Connection *connection, +static MHD_RESULT cap_http_handler(void *cls, struct MHD_Connection *connection, const char *url, const char *method, const char *version, const char *upload_data, size_t *upload_data_size, void **connection_state) { diff --git a/src/capabilities_test.c b/src/capabilities_test.c index 16061d294..8207740df 100644 --- a/src/capabilities_test.c +++ b/src/capabilities_test.c @@ -93,14 +93,14 @@ struct MHD_Response *MHD_create_response_from_data(size_t size, void *data, return mhd_res; } -int MHD_add_response_header(struct MHD_Response *response, const char *header, - const char *content) { +MHD_RESULT MHD_add_response_header(struct MHD_Response *response, + const char *header, const char *content) { return 0; } -int MHD_queue_response(struct MHD_Connection *connection, - unsigned int status_code, - struct MHD_Response *response) { +MHD_RESULT MHD_queue_response(struct MHD_Connection *connection, + unsigned int status_code, + struct MHD_Response *response) { return MHD_HTTP_OK; } -- 2.47.2