libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 90f4046de07129f148c3923410b0258b5b03c4d4
parent 6cf9fb3719c5d5486ec966807fa6ad6d3c10ef7a
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date:   Tue,  8 Dec 2015 10:59:54 +0000

Use real system default value of FD_SETSIZE instead of guessing

Diffstat:
Msrc/include/platform.h | 20+++++---------------
Msrc/microhttpd/Makefile.am | 1+
Msrc/microhttpd/daemon.c | 6+++++-
Mw32/common/libmicrohttpd-files.vcxproj | 2++
Mw32/common/libmicrohttpd-filters.vcxproj | 52+++++++++++++++++++++++++++++-----------------------
5 files changed, 42 insertions(+), 39 deletions(-)

diff --git a/src/include/platform.h b/src/include/platform.h @@ -63,24 +63,14 @@ /* Some platforms (FreeBSD, Solaris, W32) allow to override default FD_SETSIZE by defining it before including headers. */ -#if defined(_WIN32) && !defined(__CYGWIN__) -/* Default FD_SETSIZE value for WinSock */ -#define MHD_SYS_DEFAULT_FD_SETSIZE 64 -#elif defined(__sun) && defined(_LP64) -/* Default FD_SETSIZE value for 64bit Solaris since version 7 - and SunOS since version 2.7 */ -#define MHD_SYS_DEFAULT_FD_SETSIZE 65536 -#else /* all other platforms */ -/* Default FD_SETSIZE value for most platforms */ -#define MHD_SYS_DEFAULT_FD_SETSIZE 1024 -#endif /* all other platforms */ +#define _MHD_SYS_DEFAULT_FD_SETSIZE get_system_fdsetsize_value() #elif defined(_WIN32) && !defined(__CYGWIN__) /* Platform with WinSock and without overridden FD_SETSIZE */ #define FD_SETSIZE 2048 /* Override default small value */ -#define MHD_SYS_DEFAULT_FD_SETSIZE 64 -#else -/* Use system default value */ -#define MHD_SYS_DEFAULT_FD_SETSIZE FD_SETSIZE +#define _MHD_SYS_DEFAULT_FD_SETSIZE get_system_fdsetsize_value() +#else /* !FD_SETSIZE && !WinSock*/ +#define _MHD_SYS_DEFAULT_FD_SETSIZE FD_SETSIZE +#define _MHD_FD_SETSIZE_IS_DEFAULT 1 #endif /* FD_SETSIZE */ #define _XOPEN_SOURCE_EXTENDED 1 diff --git a/src/microhttpd/Makefile.am b/src/microhttpd/Makefile.am @@ -64,6 +64,7 @@ libmicrohttpd_la_SOURCES = \ memorypool.c memorypool.h \ mhd_mono_clock.c mhd_mono_clock.h \ mhd_limits.h mhd_byteorder.h \ + sysfdsetsize.c sysfdsetsize.h \ response.c response.h libmicrohttpd_la_CPPFLAGS = \ $(AM_CPPFLAGS) $(MHD_LIB_CPPFLAGS) \ diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c @@ -52,6 +52,10 @@ #include <sys/sendfile.h> #endif +#ifndef _MHD_FD_SETSIZE_IS_DEFAULT +#include "sysfdsetsize.h" +#endif /* !_MHD_FD_SETSIZE_IS_DEFAULT */ + #ifdef _WIN32 #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN 1 @@ -677,7 +681,7 @@ MHD_get_fdset (struct MHD_Daemon *daemon, { return MHD_get_fdset2(daemon, read_fd_set, write_fd_set, except_fd_set, - max_fd, MHD_SYS_DEFAULT_FD_SETSIZE); + max_fd, _MHD_SYS_DEFAULT_FD_SETSIZE); } /** diff --git a/w32/common/libmicrohttpd-files.vcxproj b/w32/common/libmicrohttpd-files.vcxproj @@ -14,6 +14,7 @@ <ClCompile Include="$(MhdSrc)microhttpd\reason_phrase.c" /> <ClCompile Include="$(MhdSrc)microhttpd\response.c" /> <ClCompile Include="$(MhdSrc)microhttpd\tsearch.c" /> + <ClCompile Include="$(MhdSrc)microhttpd\sysfdsetsize.c" /> <ClCompile Include="$(MhdSrc)platform\w32functions.c" /> </ItemGroup> <ItemGroup> @@ -32,6 +33,7 @@ <ClInclude Include="$(MhdSrc)microhttpd\mhd_mono_clock.h" /> <ClInclude Include="$(MhdSrc)microhttpd\response.h" /> <ClInclude Include="$(MhdSrc)microhttpd\tsearch.h" /> + <ClInclude Include="$(MhdSrc)microhttpd\sysfdsetsize.h" /> <ClInclude Include="$(MhdW32Common)MHD_config.h" /> </ItemGroup> <ItemGroup> diff --git a/w32/common/libmicrohttpd-filters.vcxproj b/w32/common/libmicrohttpd-filters.vcxproj @@ -23,6 +23,29 @@ </Filter> </ItemGroup> <ItemGroup> + <ClInclude Include="$(MhdSrc)include\autoinit_funcs.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="$(MhdSrc)include\microhttpd.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="$(MhdSrc)include\platform.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="$(MhdSrc)include\platform_interface.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="$(MhdSrc)include\w32functions.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="$(MhdW32Common)MHD_config.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClCompile Include="$(MhdSrc)platform\w32functions.c"> + <Filter>Source Files\platform_interface</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> <ClCompile Include="$(MhdSrc)microhttpd\base64.c"> <Filter>Source Files</Filter> </ClCompile> @@ -56,17 +79,12 @@ <ClCompile Include="$(MhdSrc)microhttpd\response.c"> <Filter>Source Files</Filter> </ClCompile> - <ClCompile Include="$(MhdSrc)platform\w32functions.c"> - <Filter>Source Files\platform_interface</Filter> - </ClCompile> <ClCompile Include="$(MhdSrc)microhttpd\tsearch.c"> <Filter>Source Files</Filter> </ClCompile> <ClCompile Include="$(MhdSrc)microhttpd\mhd_mono_clock.c"> <Filter>Source Files</Filter> </ClCompile> - </ItemGroup> - <ItemGroup> <ClInclude Include="$(MhdSrc)microhttpd\base64.h"> <Filter>Source Files</Filter> </ClInclude> @@ -85,27 +103,9 @@ <ClInclude Include="$(MhdSrc)microhttpd\response.h"> <Filter>Source Files</Filter> </ClInclude> - <ClInclude Include="$(MhdSrc)include\microhttpd.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="$(MhdSrc)include\platform.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="$(MhdSrc)include\platform_interface.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="$(MhdSrc)include\w32functions.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="$(MhdW32Common)MHD_config.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="$(MhdSrc)microhttpd\tsearch.h"> <Filter>Source Files</Filter> </ClInclude> - <ClInclude Include="$(MhdSrc)include\autoinit_funcs.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="$(MhdSrc)microhttpd\mhd_limits.h"> <Filter>Source Files</Filter> </ClInclude> @@ -115,6 +115,12 @@ <ClInclude Include="$(MhdSrc)microhttpd\mhd_mono_clock.h"> <Filter>Source Files</Filter> </ClInclude> + <ClInclude Include="$(MhdSrc)microhttpd\sysfdsetsize.h"> + <Filter>Source Files</Filter> + </ClInclude> + <ClCompile Include="$(MhdSrc)microhttpd\sysfdsetsize.c"> + <Filter>Source Files</Filter> + </ClCompile> </ItemGroup> <ItemGroup> <ResourceCompile Include="$(MhdW32Common)microhttpd_dll_res_vc.rc">