Update of /cvsroot/aolserver/aolserver/nsd
In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv28472
Modified Files:
fd.c
Log Message:
- fix for Mac OS X Leopard: setrlimit with RLIM_INFINITY fails and causes Ns_Log to crash
(fix was sketched by David Caruso on the aolserver mailing list on Jan 10, 2008)
Index: fd.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/fd.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** fd.c 8 Oct 2005 20:20:51 -0000 1.12
--- fd.c 22 Mar 2008 17:43:39 -0000 1.13
***************
*** 126,132 ****
} else {
if (rl.rlim_cur != rl.rlim_max) {
! rl.rlim_cur = rl.rlim_max;
if (setrlimit(RLIMIT_NOFILE, &rl) != 0) {
! Ns_Log(Warning, "fd: setrlimit(RLIMIT_NOFILE, %d) failed: %s",
rl.rlim_max, strerror(errno));
}
--- 126,140 ----
} else {
if (rl.rlim_cur != rl.rlim_max) {
! #if defined(__APPLE__) && defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1040
! if (rl.rlim_max == RLIM_INFINITY) {
! rl.rlim_cur = OPEN_MAX < rl.rlim_max ? OPEN_MAX : rl.rlim_max;
! } else {
! rl.rlim_cur = rl.rlim_max;
! }
! #else
! rl.rlim_cur = rl.rlim_max;
! #endif
if (setrlimit(RLIMIT_NOFILE, &rl) != 0) {
! Ns_Log(Warning, "fd: setrlimit(RLIMIT_NOFILE, %lld) failed: %s",
rl.rlim_max, strerror(errno));
}
|