httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yann Ylavic <ylavic....@gmail.com>
Subject Re: Chunked request
Date Fri, 23 Sep 2016 14:27:58 GMT
Hi,

On Fri, Sep 23, 2016 at 12:59 PM, André Rothe
<andre.rothe@zks.uni-leipzig.de> wrote:
>
> Any ideas?

It depends on whether your filter is called in blocking or
non-blocking mode, i.e. the apr_read_type_e parameter value (either
APR_BLOCK_READ or APR_NONBLOCK_READ).

In the former case, your filter won't return anything upstream until
it has read (and set aside) the whole body (that's its requirement,
AIUI), even if it takes multiple reads downstream.
Then, when the filtering is done, the bucket brigade where each read
bucket has been set aside can be returned in a one go (including the
EOS).

In the latter case (non-blocking), the filter has to read non-blocking too.
If it gets EAGAIN (or any real error), it returns it upstream.
If it gets data, it can set them aside, returning EAGAIN until EOS.
Once EOS, still the whole set aside thing (including the EOS) in a one go.

Hope this helps.

Regards,
Yann.

Mime
View raw message