- 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);