Nick Kew wrote:
> "Charles Fry" <[EMAIL PROTECTED]> wrote:
> 
> > Hi,
> > 
> > I desire to access a request's Content-Length from an input filter.
> 
> When it exists, you can get it with
> apr_table_get(r->headers_in, "Content-Length")

There is no way to get an accurate content length if other input filters
have modified the request body's length ahead of yours. For example, try
putting mod_deflate's input filter before yours in the filter chain,
send a "Content-Encoding: deflate" request, and notice that mod_deflate
changed the input length without updating "Content-Length" or anything
else you can use to retrieve how much data you will actually get.

The *only* way to reliably tell how much input is available to your
filter/content-handler is to read all the input until you get to the EOS
bucket or until ap_get_client_block returns 0, counting the bytes along
the way. 

- Brian

Reply via email to