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