From: Fabian Keil <fk@fabiankeil.de>
Date: Sun, 22 May 2016 12:42:49 +0000 (+0000)
Subject: Add configure argument to optimistically redefine FD_SETSIZE
X-Git-Tag: v_3_0_25~19
X-Git-Url: http://www.privoxy.org/gitweb/%22https:/faq/developer-manual/diff?a=commitdiff_plain;h=9424a2760917ffde1cdaf6217309b9b01f31d4a9;p=privoxy.git

Add configure argument to optimistically redefine FD_SETSIZE

... with the intent to change the maximum number of client
connections Privoxy can handle. Only works with some libcs.

Sponsored by: Robert Klemme
---

diff --git a/configure.in b/configure.in
index f38afa2c..12cab501 100644
--- a/configure.in
+++ b/configure.in
@@ -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