Loading configure.in +1 −1 Original line number Diff line number Diff line Loading @@ -490,7 +490,7 @@ AC_CHECK_HEADERS(zlib.h, , AC_MSG_ERROR(Zlib header (zlib.h) not found. Tor requ dnl These headers are not essential AC_CHECK_HEADERS(stdint.h sys/types.h inttypes.h sys/param.h sys/wait.h limits.h sys/limits.h netinet/in.h arpa/inet.h machine/limits.h syslog.h sys/time.h sys/resource.h inttypes.h utime.h sys/utime.h sys/mman.h netintet/in.h netinet/in6.h) AC_CHECK_HEADERS(stdint.h sys/types.h inttypes.h sys/param.h sys/wait.h limits.h sys/limits.h netinet/in.h arpa/inet.h machine/limits.h syslog.h sys/time.h sys/resource.h inttypes.h utime.h sys/utime.h sys/mman.h netintet/in.h netinet/in6.h sys/syslimits.h) AC_CHECK_HEADERS(net/if.h, [net_if_found=1], [net_if_found=0], [#ifdef HAVE_SYS_TYPES_H Loading doc/TODO.012 +1 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ Backport items for 0.1.2: X no need to backport the windows privoxy.config changes because they're not in SVN?? o r12339: rlim_t may be wider than unsigned long. - r12341: Work if the real open-file limit is OPEN_FILES. o r12341: Work if the real open-file limit is OPEN_FILES. o r12459: Exit policies reject public IP address too Backport for 0.1.2.x once better tested: Loading src/common/compat.c +30 −3 Original line number Diff line number Diff line Loading @@ -94,6 +94,9 @@ const char compat_c_id[] = #ifdef HAVE_SYS_MMAN_H #include <sys/mman.h> #endif #ifdef HAVE_SYS_SYSLIMITS_H #include <sys/syslimits.h> #endif #ifdef USE_BSOCKETS #include <bsocket.h> Loading Loading @@ -653,10 +656,34 @@ set_max_file_descriptors(unsigned long limit, unsigned long cap) } rlim.rlim_cur = most; if (setrlimit(RLIMIT_NOFILE, &rlim) != 0) { log_warn(LD_CONFIG, "Could not set maximum number of file descriptors: %s", int bad = 1; #ifdef OPEN_MAX if (errno == EINVAL && OPEN_MAX < rlim.rlim_cur) { /* On some platforms, OPEN_MAX is the real limit, and getrlimit() is * full of nasty lies. I'm looking at you, OSX 10.5.... */ rlim.rlim_cur = OPEN_MAX; if (setrlimit(RLIMIT_NOFILE, &rlim) == 0) { if (rlim.rlim_cur < limit) { log_warn(LD_CONFIG, "We are limited to %lu file descriptors by " "OPEN_MAX, and ConnLimit is %lu. Changing ConnLimit; sorry.", (unsigned long)OPEN_MAX, limit); } else { log_info(LD_CONFIG, "Dropped connection limit to OPEN_MAX (%lu); " "Apparently, %lu was too high and rlimit lied to us.", (unsigned long)OPEN_MAX, (unsigned long)most); } most = rlim.rlim_cur; bad = 0; } } #endif if (bad) { log_warn(LD_CONFIG, "Couldn't set maximum number of file descriptors: %s", strerror(errno)); return -1; } } /* leave some overhead for logs, etc, */ limit = most; #endif Loading Loading
configure.in +1 −1 Original line number Diff line number Diff line Loading @@ -490,7 +490,7 @@ AC_CHECK_HEADERS(zlib.h, , AC_MSG_ERROR(Zlib header (zlib.h) not found. Tor requ dnl These headers are not essential AC_CHECK_HEADERS(stdint.h sys/types.h inttypes.h sys/param.h sys/wait.h limits.h sys/limits.h netinet/in.h arpa/inet.h machine/limits.h syslog.h sys/time.h sys/resource.h inttypes.h utime.h sys/utime.h sys/mman.h netintet/in.h netinet/in6.h) AC_CHECK_HEADERS(stdint.h sys/types.h inttypes.h sys/param.h sys/wait.h limits.h sys/limits.h netinet/in.h arpa/inet.h machine/limits.h syslog.h sys/time.h sys/resource.h inttypes.h utime.h sys/utime.h sys/mman.h netintet/in.h netinet/in6.h sys/syslimits.h) AC_CHECK_HEADERS(net/if.h, [net_if_found=1], [net_if_found=0], [#ifdef HAVE_SYS_TYPES_H Loading
doc/TODO.012 +1 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ Backport items for 0.1.2: X no need to backport the windows privoxy.config changes because they're not in SVN?? o r12339: rlim_t may be wider than unsigned long. - r12341: Work if the real open-file limit is OPEN_FILES. o r12341: Work if the real open-file limit is OPEN_FILES. o r12459: Exit policies reject public IP address too Backport for 0.1.2.x once better tested: Loading
src/common/compat.c +30 −3 Original line number Diff line number Diff line Loading @@ -94,6 +94,9 @@ const char compat_c_id[] = #ifdef HAVE_SYS_MMAN_H #include <sys/mman.h> #endif #ifdef HAVE_SYS_SYSLIMITS_H #include <sys/syslimits.h> #endif #ifdef USE_BSOCKETS #include <bsocket.h> Loading Loading @@ -653,10 +656,34 @@ set_max_file_descriptors(unsigned long limit, unsigned long cap) } rlim.rlim_cur = most; if (setrlimit(RLIMIT_NOFILE, &rlim) != 0) { log_warn(LD_CONFIG, "Could not set maximum number of file descriptors: %s", int bad = 1; #ifdef OPEN_MAX if (errno == EINVAL && OPEN_MAX < rlim.rlim_cur) { /* On some platforms, OPEN_MAX is the real limit, and getrlimit() is * full of nasty lies. I'm looking at you, OSX 10.5.... */ rlim.rlim_cur = OPEN_MAX; if (setrlimit(RLIMIT_NOFILE, &rlim) == 0) { if (rlim.rlim_cur < limit) { log_warn(LD_CONFIG, "We are limited to %lu file descriptors by " "OPEN_MAX, and ConnLimit is %lu. Changing ConnLimit; sorry.", (unsigned long)OPEN_MAX, limit); } else { log_info(LD_CONFIG, "Dropped connection limit to OPEN_MAX (%lu); " "Apparently, %lu was too high and rlimit lied to us.", (unsigned long)OPEN_MAX, (unsigned long)most); } most = rlim.rlim_cur; bad = 0; } } #endif if (bad) { log_warn(LD_CONFIG, "Couldn't set maximum number of file descriptors: %s", strerror(errno)); return -1; } } /* leave some overhead for logs, etc, */ limit = most; #endif Loading