On Tue, Feb 06, 2007 at 05:35:00PM +0100, Ruediger Pluem wrote:
> On 02/06/2007 04:49 PM, Jim Jagielski wrote:
> > Joe, can you see if the below fixes it:
> >
> > Index: http_filters.c
> > ===================================================================
> > --- http_filters.c (revision 504180)
> > +++ http_filters.c (working copy)
> > @@ -299,7 +299,8 @@
> > rv = APR_SUCCESS;
> > }
> > - if (rv == APR_SUCCESS) {
> > + if (rv == APR_SUCCESS ||
> > + (ctx->state == BODY_CHUNK &&
> > (APR_STATUS_IS_EAGAIN(rv))) ) {
> > /* Read the real chunk line. */
> > rv = ap_get_brigade(f->next, bb, AP_MODE_GETLINE,
> > block, 0);
> >
>
> Wouldn't that do the wrong thing?
Yes.
...
> Joe could you please refresh my mind what was wrong in returning an
> APR_EAGAIN? We actually do this explicity in line 311. If this is
> wrong I guess this needs to be fixed there as well.
Returning an EAGAIN directly after line 295 would be fine but that's not
what the code does: it falls through to the line 331 conditional and
sends an error response.
joe