dmitry Wed Feb 21 15:46:30 2007 UTC Modified files: /php-src/sapi/cgi fastcgi.c Log: Check for FD_SETSIZE limit http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/fastcgi.c?r1=1.31&r2=1.32&diff_format=u Index: php-src/sapi/cgi/fastcgi.c diff -u php-src/sapi/cgi/fastcgi.c:1.31 php-src/sapi/cgi/fastcgi.c:1.32 --- php-src/sapi/cgi/fastcgi.c:1.31 Mon Feb 19 13:21:49 2007 +++ php-src/sapi/cgi/fastcgi.c Wed Feb 21 15:46:30 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: fastcgi.c,v 1.31 2007/02/19 13:21:49 dmitry Exp $ */ +/* $Id: fastcgi.c,v 1.32 2007/02/21 15:46:30 dmitry Exp $ */ #include "php.h" #include "fastcgi.h" @@ -757,18 +757,23 @@ break; #else if (req->fd >= 0) { - struct timeval tv = {5,0}; - fd_set set; + if (req->fd < FD_SETSIZE) { + struct timeval tv = {5,0}; + fd_set set; - FD_ZERO(&set); - FD_SET(req->fd, &set); + FD_ZERO(&set); + FD_SET(req->fd, &set); try_again: - errno = 0; - if (select(req->fd + 1, &set, NULL, NULL, &tv) >= 0 && FD_ISSET(req->fd, &set)) { - break; + errno = 0; + if (select(req->fd + 1, &set, NULL, NULL, &tv) >= 0 && FD_ISSET(req->fd, &set)) { + break; + } + if (errno == EINTR) goto try_again; + fcgi_close(req, 1, 0); + } else { + fprintf(stderr, "Too many open file descriptors. FD_SETSIZE limit exceeded."); + fcgi_close(req, 1, 0); } - if (errno == EINTR) goto try_again; - fcgi_close(req, 1, 0); } #endif }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php