httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sorin Manolache" <>
Subject Re: ap_get_client_block vs bucket brigades
Date Thu, 17 Jul 2008 21:52:15 GMT
On 2008-07-17, Jason Fister <> wrote:
> Hello there,
>  I have a module thats working as designed and the only reason I am sending
>  this mail is because I want to confirm what I am doing is the correct way to
>  do it.
>  A little background:
>  We wanted to convert some legacy services to REST webservice. Clients can
>  upload and retrieve data using this service. So I wrote an apache module
>  that can be accessed at<resource>.
>  Clients can POST, PUT, GET to this uri. I use ap_get_client_block to read
>  the http body in case of POST and PUT. I know when we use the
>  ap_get_client_block method to read the data, the data is not available that
>  point onwards to any other filter/module and that is totally fine. Thats
>  because when the uri has '/rest' in it, the data is meant for my module.
>  I have been doing some online reading and now I am wondering if I shld have
>  used  buckets/brigades in my module.
>  1. Is my approach totally wrong?

Just a caveat. Loop like this:

while ((n = ap_get_client_block()) > 0)

and not

while (already_read < request->remaining) {
   n = ap_get_client_block();
   alread_read += n;

request->remaining may be misleading, for example if the client PUSHes
compressed data request->remaining will indicate the size of the
compressed data while your module will most likely read the data that
is already decompressed by the DEFLATE filter on the input filter

>  2. Will the use of bucket brigades have a positive impact on the
>  performance?

Most likely not.
>  Your help in understanding this issue is much appreciated.
>  Jason

View raw message