X-Git-Url: https://git.sesse.net/?p=nageru;a=blobdiff_plain;f=shared%2Fhttpd.h;fp=shared%2Fhttpd.h;h=8d2a05eb1df89f56e8577234ed8a00b460d8d620;hp=dae5cad627b7e056e41fe3f1901a51201f4fc066;hb=07d7f0c3d8f50598144625c29a93e0aacfd996d7;hpb=d4dbce0e8dd7b7a8aec1b81ceb5c6243d5f8025e diff --git a/shared/httpd.h b/shared/httpd.h index dae5cad..8d2a05e 100644 --- a/shared/httpd.h +++ b/shared/httpd.h @@ -22,6 +22,8 @@ extern "C" { #include } +#include + #include "shared/shared_defs.h" struct MHD_Connection; @@ -81,15 +83,23 @@ public: } private: - static int answer_to_connection_thunk(void *cls, MHD_Connection *connection, - const char *url, const char *method, - const char *version, const char *upload_data, - size_t *upload_data_size, void **con_cls); - - int answer_to_connection(MHD_Connection *connection, - const char *url, const char *method, - const char *version, const char *upload_data, - size_t *upload_data_size, void **con_cls); + // libmicrohttpd 0.9.71 broke the type of MHD_YES/MHD_NO, causing + // compilation errors for C++ and undefined behavior for C. +#if MHD_VERSION >= 0x00097002 + using MHD_Result = ::MHD_Result; +#else + using MHD_Result = int; +#endif + + static MHD_Result answer_to_connection_thunk(void *cls, MHD_Connection *connection, + const char *url, const char *method, + const char *version, const char *upload_data, + size_t *upload_data_size, void **con_cls); + + MHD_Result answer_to_connection(MHD_Connection *connection, + const char *url, const char *method, + const char *version, const char *upload_data, + size_t *upload_data_size, void **con_cls); static void free_stream(void *cls);