diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2017-02-12 00:06:20 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2017-02-12 00:06:35 +0100 |
commit | 6d5ea20e0b0986a5d763ba39c5ad4773c2d6ade6 (patch) | |
tree | 1313fd2a4ee26d64b7a27c812d322b5637715e93 | |
parent | bf2627e58c7654d1d99dd4822055a71007cf9b33 (diff) | |
parent | 9814be4bc28892d1e0a5dc875fef0b4bde455d23 (diff) | |
download | php-git-6d5ea20e0b0986a5d763ba39c5ad4773c2d6ade6.tar.gz |
Merge branch 'PHP-7.0' into PHP-7.1
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | main/fastcgi.c | 10 | ||||
-rw-r--r-- | main/fastcgi.h | 1 | ||||
-rw-r--r-- | sapi/fpm/fpm/fpm_main.c | 3 |
4 files changed, 13 insertions, 5 deletions
@@ -17,6 +17,10 @@ PHP NEWS . Fixed bug #73837 ("new DateTime()" sometimes returns 1 second ago value). (Derick) +- FPM: + . Fixed bug #69860 (php-fpm process accounting is broken with keepalive). + (Denis Yeldandi) + - GD: . Fixed bug #74031 (ReflectionFunction for imagepng is missing last two parameters). (finwe) diff --git a/main/fastcgi.c b/main/fastcgi.c index 0da9c3873e..cca4342f2a 100644 --- a/main/fastcgi.c +++ b/main/fastcgi.c @@ -462,6 +462,11 @@ void fcgi_terminate(void) in_shutdown = 1; } +void fcgi_request_set_keep(fcgi_request *req, int new_value) +{ + req->keep = new_value; +} + #ifndef HAVE_ATTRIBUTE_WEAK void fcgi_set_logger(fcgi_logger lg) { fcgi_log = lg; @@ -1429,8 +1434,6 @@ int fcgi_accept_request(fcgi_request *req) struct pollfd fds; int ret; - req->hook.on_read(); - fds.fd = req->fd; fds.events = POLLIN; fds.revents = 0; @@ -1443,8 +1446,6 @@ int fcgi_accept_request(fcgi_request *req) } fcgi_close(req, 1, 0); #else - req->hook.on_read(); - if (req->fd < FD_SETSIZE) { struct timeval tv = {5,0}; fd_set set; @@ -1471,6 +1472,7 @@ int fcgi_accept_request(fcgi_request *req) } else if (in_shutdown) { return -1; } + req->hook.on_read(); if (fcgi_read_request(req)) { #ifdef _WIN32 if (is_impersonate && !req->tcp) { diff --git a/main/fastcgi.h b/main/fastcgi.h index efadac61d2..4cafc69c6e 100644 --- a/main/fastcgi.h +++ b/main/fastcgi.h @@ -102,6 +102,7 @@ int fcgi_accept_request(fcgi_request *req); int fcgi_finish_request(fcgi_request *req, int force_close); const char *fcgi_get_last_client_ip(); void fcgi_set_in_shutdown(int new_value); +void fcgi_request_set_keep(fcgi_request *req, int new_value); #ifndef HAVE_ATTRIBUTE_WEAK typedef void (*fcgi_logger)(int type, const char *fmt, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3); diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c index 3b33141aee..ce9b85620b 100644 --- a/sapi/fpm/fpm/fpm_main.c +++ b/sapi/fpm/fpm/fpm_main.c @@ -1995,7 +1995,8 @@ fastcgi_request_done: requests++; if (UNEXPECTED(max_requests && (requests == max_requests))) { - fcgi_finish_request(request, 1); + fcgi_request_set_keep(request, 0); + fcgi_finish_request(request, 0); break; } /* end of fastcgi loop */ |