mirror of
https://github.com/nginx/nginx.git
synced 2026-02-18 18:17:52 -05:00
SCGI: fixed passing CONTENT_LENGTH in unbuffered mode.
Some checks failed
buildbot / buildbot (push) Has been cancelled
Some checks failed
buildbot / buildbot (push) Has been cancelled
Passing requests to SCGI uses a recalculated size of a request body as per changes made ind60b8d10f(1.3.9) to support CONTENT_LENGTH with chunked body requests. This, however, is not compatible with unbuffered mode introduced later in7ec559df5(1.7.11), where such an approach may not always represent complete request body. The fix is to use r->headers_in.content_length_n representing either original Content-Length, if any, or a recalculated value from request body filters, such as chunked body filter. Reported by Mufeed VH.
This commit is contained in:
parent
bf0508fabf
commit
ec714d52bd
1 changed files with 2 additions and 4 deletions
|
|
@ -658,11 +658,9 @@ ngx_http_scgi_create_request(ngx_http_request_t *r)
|
|||
u_char buffer[NGX_OFF_T_LEN];
|
||||
|
||||
content_length_n = 0;
|
||||
body = r->upstream->request_bufs;
|
||||
|
||||
while (body) {
|
||||
content_length_n += ngx_buf_size(body->buf);
|
||||
body = body->next;
|
||||
if (r->headers_in.content_length_n > 0) {
|
||||
content_length_n = r->headers_in.content_length_n;
|
||||
}
|
||||
|
||||
content_length.data = buffer;
|
||||
|
|
|
|||
Loading…
Reference in a new issue