squid/squid-2.6.STABLE5-fd-config.patch
2006-11-07 15:06:53 +00:00

150 lines
4.0 KiB
Diff

--- squid-2.6.STABLE1/configure.fd 2006-07-26 09:58:41.000000000 +0200
+++ squid-2.6.STABLE1/configure 2006-07-26 09:58:41.000000000 +0200
@@ -2970,6 +2970,34 @@
AMDEP_FALSE=
fi
+if false; then
+ USE_FD_CONFIG_TRUE=
+ USE_FD_CONFIG_FALSE='#'
+else
+ USE_FD_CONFIG_TRUE='#'
+ USE_FD_CONFIG_FALSE=
+fi
+# Check whether --enable-fd-config or --disable-fd-config was given.
+if test "${enable_fd_config+set}" = set; then
+ enableval="$enable_fd_config"
+ if test "$enableval" = "yes" ; then
+ echo "File descriptor config enabled"
+ cat >> confdefs.h <<\EOF
+#define FD_CONFIG 1
+EOF
+
+
+
+if true; then
+ USE_FD_CONFIG_TRUE=
+ USE_FD_CONFIG_FALSE='#'
+else
+ USE_FD_CONFIG_TRUE='#'
+ USE_FD_CONFIG_FALSE=
+fi
+ fi
+
+fi
--- squid-2.6.STABLE1/include/autoconf.h.in.fd 2006-07-26 09:58:41.000000000 +0200
+++ squid-2.6.STABLE1/include/autoconf.h.in 2006-07-26 09:58:41.000000000 +0200
@@ -36,6 +36,9 @@
/* Traffic management via "delay pools". */
#undef DELAY_POOLS
+/* Filedesc managment */
+#undef FD_CONFIG
+
/* Enable following X-Forwarded-For headers */
#undef FOLLOW_X_FORWARDED_FOR
--- squid-2.6.STABLE1/configure.in.fd 2006-07-26 09:58:41.000000000 +0200
+++ squid-2.6.STABLE1/configure.in 2006-07-26 09:58:41.000000000 +0200
@@ -501,6 +501,16 @@
fi
])
+AM_CONDITIONAL(USE_FD_CONFIG, false)
+AC_ARG_ENABLE(fd-config,
+[ --enable-fd-config Enable filedesc config to configure maximal number of used filedescriptors],
+[ if test "$enableval" = "yes" ; then
+ echo "Filedesc config enabled"
+ AC_DEFINE(FD_CONFIG)
+ AM_CONDITIONAL(USE_FD_CONFIG, true)
+ fi
+])
+
dnl This is a developer only option. Developers know how to set defines
dnl
dnl AC_ARG_ENABLE(mem-gen-trace,
--- squid-2.6.STABLE1/src/cf.data.pre.fd 2006-07-26 09:58:41.000000000 +0200
+++ squid-2.6.STABLE1/src/cf.data.pre 2006-07-26 10:05:54.000000000 +0200
@@ -5027,4 +5027,23 @@
or response to be rejected.
DOC_END
+NAME: max_filedesc
+IFDEF: FD_CONFIG
+TYPE: int
+DEFAULT: 1024
+LOC: Config.max_filedesc
+DOC_START
+ The maximum number of open file descriptors.
+
+ WARNING: Changes of this value isn't respected by reconfigure
+ command. This value should be changed only if there isn't
+ any active squid process.
+
+ NOTE: This option is only supported by system with poll()
+ or epoll(). You can set this value by --with-maxfd during
+ compilation on system whith uses select().
+
+ The maximum value for max_filedesc is set by --with-maxfd during
+ compilation.
+DOC_END
EOF
--- squid-2.6.STABLE1/src/main.c.fd 2006-07-26 09:58:41.000000000 +0200
+++ squid-2.6.STABLE1/src/main.c 2006-07-26 09:58:41.000000000 +0200
@@ -748,6 +749,8 @@
/* Make sure the OS allows core dumps if enabled in squid.conf */
enableCoredumps();
+ setMaxFD();
+
#if TEST_ACCESS
comm_init();
comm_select_init();
@@ -781,7 +784,6 @@
}
if (!opt_no_daemon)
watch_child(argv);
- setMaxFD();
/* init comm module */
comm_init();
--- squid-2.6.STABLE1/src/structs.h.fd 2006-07-26 09:58:41.000000000 +0200
+++ squid-2.6.STABLE1/src/structs.h 2006-07-26 09:58:41.000000000 +0200
@@ -805,6 +805,9 @@
#endif
time_t refresh_stale_window;
int umask;
+#if FD_CONFIG
+ int max_filedesc;
+#endif
};
struct _SquidConfig2 {
--- squid-2.6.STABLE1/src/tools.c.fd 2006-07-26 09:58:41.000000000 +0200
+++ squid-2.6.STABLE1/src/tools.c 2006-07-26 09:58:41.000000000 +0200
@@ -757,6 +757,21 @@
void
setMaxFD(void)
{
+
+/* Set up number of used filedescriptors from config file */
+/* Override the default settings Squid_MaxFD = FD_SETSIZE */
+#if FD_CONFIG
+ Squid_MaxFD = Config.max_filedesc;
+
+ /* don't exceed limit which was set during compilation */
+ if(SQUID_MAXFD < Squid_MaxFD)
+ Squid_MaxFD = SQUID_MAXFD;
+#else
+ /* don't exceed FD_SETSIZE */
+ if(FD_SETSIZE < Squid_MaxFD)
+ Squid_MaxFD = FD_SETSIZE;
+#endif
+
#if HAVE_SETRLIMIT
/* try to use as many file descriptors as possible */
/* System V uses RLIMIT_NOFILE and BSD uses RLIMIT_OFILE */