]> git.kaiwu.me - nginx.git/commit
HTTP/2: always use temporary pool for processing headers.
authorValentin Bartenev <vbart@nginx.com>
Wed, 24 Feb 2016 13:05:47 +0000 (16:05 +0300)
committerValentin Bartenev <vbart@nginx.com>
Wed, 24 Feb 2016 13:05:47 +0000 (16:05 +0300)
commit4e6a490fa7ecb227296e277e2c3b7664441e5b40
tree52cf5e152b567df990d8d77d10a118d7783f9a0a
parent8b40f1eaec90be72e791904b345db15f536dca45
HTTP/2: always use temporary pool for processing headers.

This is required for implementing per request timeouts.

Previously, the temporary pool was used only during skipping of
headers and the request pool was used otherwise.  That required
switching of pools if the request was closed while parsing.

It wasn't a problem since the request could be closed only after
the validation of the fully parsed header.  With the per request
timeouts, the request can be closed at any moment, and switching
of pools in the middle of parsing header name or value becomes a
problem.

To overcome this, the temporary pool is now always created and
used.  Special checks are added to keep it when either the stream
is being processed or until header block is fully parsed.
src/http/v2/ngx_http_v2.c
src/http/v2/ngx_http_v2.h