You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Joe Orton <jo...@redhat.com> on 2006/06/13 13:11:38 UTC

Re: svn commit: r413861 - /httpd/httpd/trunk/support/ab.c

On Tue, Jun 13, 2006 at 10:51:55AM -0000, colm@apache.org wrote:
> Author: colm
> Date: Tue Jun 13 03:51:54 2006
> New Revision: 413861
> 
> URL: http://svn.apache.org/viewvc?rev=413861&view=rev
> Log:
> A keepalive response need not neccessarily have included any content-length
> header, handle this case properly for 304 responses. PR39789

This looks wrong, the patch in the PR was a bit better.  If a response 
doesn't have a C-L/T-E the body is read till EOF.  [23]04 are special 
cases which have zero length bodies regardless of the message headers.

> 
> 
> Modified:
>     httpd/httpd/trunk/support/ab.c
> 
> Modified: httpd/httpd/trunk/support/ab.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/support/ab.c?rev=413861&r1=413860&r2=413861&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/support/ab.c (original)
> +++ httpd/httpd/trunk/support/ab.c Tue Jun 13 03:51:54 2006
> @@ -1451,6 +1451,11 @@
>                      c->keepalive = 1;
>                      c->length = atoi(cl + 16);
>                  }
> +                /* The response may not have a Content-Length header */
> +                if (!cl) {
> +                    c->keepalive = 1;
> +                    c->length = 0; 
> +                }	
>              }
>              c->bread += c->cbx - (s + l - c->cbuff) + r - tocopy;
>              totalbread += c->bread;
> 

Re: svn commit: r413861 - /httpd/httpd/trunk/support/ab.c

Posted by Joe Orton <jo...@redhat.com>.
On Tue, Jun 13, 2006 at 12:28:20PM +0100, Colm MacCarthaigh wrote:
> On Tue, Jun 13, 2006 at 12:11:38PM +0100, Joe Orton wrote:
> > On Tue, Jun 13, 2006 at 10:51:55AM -0000, colm@apache.org wrote:
> > > Author: colm
> > > Date: Tue Jun 13 03:51:54 2006
> > > New Revision: 413861
> > > 
> > > URL: http://svn.apache.org/viewvc?rev=413861&view=rev
> > > Log:
> > > A keepalive response need not neccessarily have included any content-length
> > > header, handle this case properly for 304 responses. PR39789
> > 
> > This looks wrong, the patch in the PR was a bit better.  If a response 
> > doesn't have a C-L/T-E the body is read till EOF.  [23]04 are special 
> > cases which have zero length bodies regardless of the message headers.
> 
> 204 is why I didn't conditionalise it on 304, my comment was a bit
> misleading there. My change has the same effect as the patch in the PR
> for 304 responses, but also for any other keep-alive request which
> doesn't include a C-L. Should I restrict to more specific response
> codes? or is there another problem I'm just not seeing :)

Oh sorry, I missed that this is localised to the "keep-alive" case; in 
that case I guess it is no less dubious than the rest of the ab response 
parsing, I don't think it'll break with any normal server.

joe

Re: svn commit: r413861 - /httpd/httpd/trunk/support/ab.c

Posted by Colm MacCarthaigh <co...@stdlib.net>.
On Tue, Jun 13, 2006 at 12:11:38PM +0100, Joe Orton wrote:
> On Tue, Jun 13, 2006 at 10:51:55AM -0000, colm@apache.org wrote:
> > Author: colm
> > Date: Tue Jun 13 03:51:54 2006
> > New Revision: 413861
> > 
> > URL: http://svn.apache.org/viewvc?rev=413861&view=rev
> > Log:
> > A keepalive response need not neccessarily have included any content-length
> > header, handle this case properly for 304 responses. PR39789
> 
> This looks wrong, the patch in the PR was a bit better.  If a response 
> doesn't have a C-L/T-E the body is read till EOF.  [23]04 are special 
> cases which have zero length bodies regardless of the message headers.

204 is why I didn't conditionalise it on 304, my comment was a bit
misleading there. My change has the same effect as the patch in the PR
for 304 responses, but also for any other keep-alive request which
doesn't include a C-L. Should I restrict to more specific response
codes? or is there another problem I'm just not seeing :)

-- 
Colm MacCárthaigh                        Public Key: colm+pgp@stdlib.net