mirror of
https://github.com/nginx/nginx.git
synced 2025-06-10 19:42:39 +08:00
HTTP/2: fixed request length accounting.
Now it includes not only the received body size, but the size of headers block as well.
This commit is contained in:
parent
405f4f99b4
commit
8050277acf
@ -1185,6 +1185,8 @@ ngx_http_v2_state_headers(ngx_http_v2_connection_t *h2c, u_char *pos,
|
|||||||
return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_INTERNAL_ERROR);
|
return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_INTERNAL_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
stream->request->request_length = h2c->state.length;
|
||||||
|
|
||||||
stream->in_closed = h2c->state.flags & NGX_HTTP_V2_END_STREAM_FLAG;
|
stream->in_closed = h2c->state.flags & NGX_HTTP_V2_END_STREAM_FLAG;
|
||||||
stream->node = node;
|
stream->node = node;
|
||||||
|
|
||||||
@ -1751,7 +1753,6 @@ ngx_http_v2_handle_continuation(ngx_http_v2_connection_t *h2c, u_char *pos,
|
|||||||
return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_PROTOCOL_ERROR);
|
return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_PROTOCOL_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
h2c->state.length += ngx_http_v2_parse_length(head);
|
|
||||||
h2c->state.flags |= p[4];
|
h2c->state.flags |= p[4];
|
||||||
|
|
||||||
if (h2c->state.sid != ngx_http_v2_parse_sid(&p[5])) {
|
if (h2c->state.sid != ngx_http_v2_parse_sid(&p[5])) {
|
||||||
@ -1766,6 +1767,14 @@ ngx_http_v2_handle_continuation(ngx_http_v2_connection_t *h2c, u_char *pos,
|
|||||||
|
|
||||||
ngx_memcpy(pos, p, len);
|
ngx_memcpy(pos, p, len);
|
||||||
|
|
||||||
|
len = ngx_http_v2_parse_length(head);
|
||||||
|
|
||||||
|
h2c->state.length += len;
|
||||||
|
|
||||||
|
if (h2c->state.stream) {
|
||||||
|
h2c->state.stream->request->request_length += len;
|
||||||
|
}
|
||||||
|
|
||||||
h2c->state.handler = handler;
|
h2c->state.handler = handler;
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user