]> git.kaiwu.me - nginx.git/commit
Request body: reading body buffering in filters.
authorMaxim Dounin <mdounin@mdounin.ru>
Sun, 29 Aug 2021 19:22:02 +0000 (22:22 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Sun, 29 Aug 2021 19:22:02 +0000 (22:22 +0300)
commit67d160bf25e02ba6679bb6c3b9cbdfeb29b759de
treeff76312fe9cba7e3c339e71a053c1888d1bdab45
parent2a709213800fd3fd2809881374eb110562b53c08
Request body: reading body buffering in filters.

If a filter wants to buffer the request body during reading (for
example, to check an external scanner), it can now do so.  To make
it possible, the code now checks rb->last_saved (introduced in the
previous change) along with rb->rest == 0.

Since in HTTP/2 this requires flow control to avoid overflowing the
request body buffer, so filters which need buffering have to set
the rb->filter_need_buffering flag on the first filter call.  (Note
that each filter is expected to call the next filter, so all filters
will be able set the flag if needed.)
src/http/ngx_http_request.h
src/http/ngx_http_request_body.c
src/http/v2/ngx_http_v2.c