Add configure argument to optimistically redefine FD_SETSIZE
authorFabian Keil <fk@fabiankeil.de>
Sun, 22 May 2016 12:42:49 +0000 (12:42 +0000)
committerFabian Keil <fk@fabiankeil.de>
Sun, 22 May 2016 12:42:49 +0000 (12:42 +0000)
... with the intent to change the maximum number of client
connections Privoxy can handle. Only works with some libcs.

Sponsored by: Robert Klemme

configure.in

index f38afa2..12cab50 100644 (file)
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl
-dnl $Id: configure.in,v 1.196 2016/04/09 10:22:40 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-2016 the
 dnl Privoxy team. https://www.privoxy.org/
@@ -32,7 +32,7 @@ dnl =================================================================
 dnl AutoConf Initialization
 dnl =================================================================
 
-AC_REVISION($Revision: 1.196 $)
+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