diff options
author | Nikita Popov <nikic@php.net> | 2017-01-07 22:54:16 +0100 |
---|---|---|
committer | Nikita Popov <nikic@php.net> | 2017-01-07 22:54:16 +0100 |
commit | bb2ab755555af61798c8584a166448119dcd9314 (patch) | |
tree | 6cb20ffa2c33a9331b899bee6a278cc4612ae375 /main/fastcgi.c | |
parent | 201e56cd0453779fa483fa0f9d7aa42f1ca4a547 (diff) | |
parent | a46bbdda2e082070bd67ecdc500d9671bf1ab823 (diff) | |
download | php-git-bb2ab755555af61798c8584a166448119dcd9314.tar.gz |
Merge branch 'PHP-7.0' into PHP-7.1
Diffstat (limited to 'main/fastcgi.c')
-rw-r--r-- | main/fastcgi.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/main/fastcgi.c b/main/fastcgi.c index e5b9c5f904..0da9c3873e 100644 --- a/main/fastcgi.c +++ b/main/fastcgi.c @@ -216,7 +216,7 @@ struct _fcgi_request { #ifdef TCP_NODELAY int nodelay; #endif - int closed; + int ended; int in_len; int in_pad; @@ -1045,7 +1045,7 @@ static int fcgi_read_request(fcgi_request *req) unsigned char buf[FCGI_MAX_LENGTH+8]; req->keep = 0; - req->closed = 0; + req->ended = 0; req->in_len = 0; req->out_hdr = NULL; req->out_pos = req->out_buf; @@ -1506,7 +1506,7 @@ static inline void close_packet(fcgi_request *req) } } -int fcgi_flush(fcgi_request *req, int close) +int fcgi_flush(fcgi_request *req, int end) { int len; @@ -1514,7 +1514,7 @@ int fcgi_flush(fcgi_request *req, int close) len = (int)(req->out_pos - req->out_buf); - if (close) { + if (end) { fcgi_end_request_rec *rec = (fcgi_end_request_rec*)(req->out_pos); fcgi_make_header(&rec->hdr, FCGI_END_REQUEST, req->id, sizeof(fcgi_end_request)); @@ -1648,15 +1648,21 @@ int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int l return len; } +int fcgi_end(fcgi_request *req) { + int ret = 1; + if (!req->ended) { + ret = fcgi_flush(req, 1); + req->ended = 1; + } + return ret; +} + int fcgi_finish_request(fcgi_request *req, int force_close) { int ret = 1; if (req->fd >= 0) { - if (!req->closed) { - ret = fcgi_flush(req, 1); - req->closed = 1; - } + ret = fcgi_end(req); fcgi_close(req, force_close, 1); } return ret; |