Add configure argument to optimistically redefine FD_SETSIZE
[privoxy.git] / configure.in
index 520559b..12cab50 100644 (file)
@@ -1,9 +1,9 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl
-dnl $Id: configure.in,v 1.193 2016/03/30 11:15:42 fabiankeil Exp $
+dnl $Id: configure.in,v 1.197 2016/05/08 10:44:39 fabiankeil Exp $
 dnl
-dnl Written by and Copyright (C) 2001-2014 the
-dnl Privoxy team. http://www.privoxy.org/
+dnl Written by and Copyright (C) 2001-2016 the
+dnl Privoxy team. https://www.privoxy.org/
 dnl
 dnl Based on the Internet Junkbuster originally written
 dnl by and Copyright (C) 1997 Anonymous Coders and
@@ -32,7 +32,7 @@ dnl =================================================================
 dnl AutoConf Initialization
 dnl =================================================================
 
-AC_REVISION($Revision: 1.193 $)
+AC_REVISION($Revision: 1.197 $)
 AC_INIT(jcc.c)
 
 if test ! -f config.h.in; then
@@ -464,6 +464,26 @@ fi
 
 AC_SUBST(PTHREAD_ONLY)
 
+dnl =================================================================
+dnl On most platforms select() does not support fd numbers above
+dnl FD_SETSIZE, as a result Privoxy can't handle more than
+dnl approximately FD_SETSIZE/2 client connections.
+dnl On some platforms the value can be changed at compile time,
+dnl on others it's hardcoded and requires recompilation of the OS.
+dnl =================================================================
+AC_ARG_WITH(fdsetsize,
+ [  --with-fdsetsize=n  Optimistically redefine FD_SETSIZE with the intend to change the number of connections Privoxy can handle. Dangerous if the platform doesn't support this.],
+ [
+   if test "x$withval" != "xyes"; then
+     AC_DEFINE_UNQUOTED(FD_SETSIZE,$with_fdsetsize,[Relevant for select(). Not honoured by all OS.])
+     echo "Redefining FD_SETSIZE to $with_fdsetsize."
+     AC_MSG_WARN(On platforms that don't support FD_SETSIZE redefinition it may cause memory corruption.)
+   else
+     AC_MSG_ERROR(--with-fdsetsize used without value)
+   fi
+   ]
+)
+
 dnl =================================================================
 dnl Support for thread-safe versions of gethostbyaddr, gethostbyname,
 dnl gmtime and localtime
@@ -715,6 +735,7 @@ AC_CHECK_SIZEOF(char *, 4)
 AC_CHECK_SIZEOF(long, 4)
 AC_CHECK_SIZEOF(long long, 8)
 AC_CHECK_SIZEOF(size_t, 4)
+AC_CHECK_SIZEOF(time_t, 8)
 
 dnl Checks for header files.
 AC_CHECK_HEADERS([ \
@@ -982,13 +1003,17 @@ AC_ARG_ENABLE(strptime-sanity-checks,
   AC_DEFINE(FEATURE_STRPTIME_SANITY_CHECKS)
 fi])
 
-FEATURE_CLIENT_TAGS_ONLY="#"
 AC_ARG_ENABLE(client-tags,
-[  --enable-client-tags                Enable client-specific tags],
-[if test $enableval = yes; then
+[  --disable-client-tags           Disable support for client-specific tags],
+[ if test $enableval = "no"; then have_client_tags=no; fi ])
+if test "${have_client_tags}" = "no"; then
+  echo "Disabling support for client-specific tags."
+  FEATURE_CLIENT_TAGS_ONLY="#"
+else
+  echo "Enabling support for client-specific tags."
+  AC_DEFINE(FEATURE_CLIENT_TAGS,1,[Define to enable support for client-specific tags.])
   FEATURE_CLIENT_TAGS_ONLY=""
-  AC_DEFINE(FEATURE_CLIENT_TAGS,1,[Define to enable client-specific tags.])
-fi])
+fi
 AC_SUBST(FEATURE_CLIENT_TAGS_ONLY)
 
 dnl pcre/pcrs is needed for CGI anyway, so