diff --git a/lib/metrics/meson.build b/lib/metrics/meson.build index 7d4c073e2..ca210b6ac 100644 --- a/lib/metrics/meson.build +++ b/lib/metrics/meson.build @@ -31,7 +31,7 @@ if metrics_impl_optval == 'prometheus' # 0.50.0: {'CMake Module'} # 0.51.0: {'subproject'} - libmicrohttpd_dep = dependency('libmicrohttpd', version: '>=0.9.61') + libmicrohttpd_dep = dependency('libmicrohttpd', version: '>=0.9.40') cmake = import('cmake') prometheus_client_c_proj = cmake.subproject('prometheus-client-c') diff --git a/lib/sbi/meson.build b/lib/sbi/meson.build index 5377857c6..f5c32ae40 100644 --- a/lib/sbi/meson.build +++ b/lib/sbi/meson.build @@ -49,7 +49,7 @@ sbi_cc_flags = ['-DOGS_SBI_COMPILATION'] libgnutls_dep = cc.find_library('gnutls', required : true) libnghttp2_dep = dependency('libnghttp2', version: '>=1.18.1') -libmicrohttpd_dep = dependency('libmicrohttpd', version: '>=0.9.61') +libmicrohttpd_dep = dependency('libmicrohttpd', version: '>=0.9.40') libcurl_dep = dependency('libcurl', version: '>=7.52.1') libsbi = library('ogssbi', diff --git a/lib/sbi/mhd-server.c b/lib/sbi/mhd-server.c index 1c68c130c..279e4d035 100644 --- a/lib/sbi/mhd-server.c +++ b/lib/sbi/mhd-server.c @@ -289,10 +289,12 @@ static void server_stop(ogs_sbi_server_t *server) } } +#if MHD_VERSION >= 0x00096100 static void free_callback(void *cls) { ogs_free(cls); } +#endif static bool server_send_response( ogs_sbi_stream_t *stream, ogs_sbi_response_t *response) @@ -330,6 +332,7 @@ static bool server_send_response( ogs_assert(mhd_socket != INVALID_SOCKET); if (response->http.content) { +#if MHD_VERSION >= 0x00096100 mhd_response = MHD_create_response_from_buffer_with_free_callback( response->http.content_length, response->http.content, free_callback); @@ -343,6 +346,12 @@ static bool server_send_response( * So, we'll set response->http.content to NULL. */ response->http.content = NULL; +#else + mhd_response = MHD_create_response_from_buffer( + response->http.content_length, response->http.content, + MHD_RESPMEM_MUST_COPY); + ogs_assert(mhd_response); +#endif } else { mhd_response = MHD_create_response_from_buffer(