--- squid-2.4.1.orig/src/squid.h Thu Feb 22 22:39:14 2001 +++ squid-2.4.1/src/squid.h Thu Jun 28 15:20:47 2001 @@ -45,10 +45,24 @@ */ #define CHANGE_FD_SETSIZE 1 -/* Cannot increase FD_SETSIZE on Linux */ +/* + * Cannot increase FD_SETSIZE on Linux, but we can increase __FD_SETSIZE + * with glibc 2.2 (or later? remains to be seen). We do this by including + * bits/types.h which defines __FD_SETSIZE first, then we redefine + * __FD_SETSIZE. Ofcourse a user program may NEVER include bits/whatever.h + * directly, so this is a dirty hack! + */ #if defined(_SQUID_LINUX_) -#undef CHANGE_FD_SETSIZE -#define CHANGE_FD_SETSIZE 0 +# undef CHANGE_FD_SETSIZE +# define CHANGE_FD_SETSIZE 0 +# include +# if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) +# if SQUID_MAXFD > DEFAULT_FD_SETSIZE +# include +# undef __FD_SETSIZE +# define __FD_SETSIZE SQUID_MAXFD +# endif +# endif #endif /*