On Tue, Nov 19, 2013 at 07:44:07PM +0200, Graham Leggett wrote:
> On 18 Nov 2013, at 1:24 PM, "Plüm, Rüdiger, Vodafone Group" 
> <ruediger.pl...@vodafone.com> wrote:
> 
> > +        rv = send_brigade_nonblocking(net->client_socket, bb,
> > +                                      &(ctx->bytes_written), c);
> > +        if (APR_STATUS_IS_EAGAIN(rv)) {
> > +            setaside_remaining_output(f, ctx, bb, c);
> > +        }
> > +        else if (rv != APR_EAGAIN) {
> > 
> > What if rv is APR_SUCCESS?
> 
> This is indeed broken, fixed.
> 
> Some more testing has revealed that mod_ssl's output filter breaks 
> rules 2 and 5 of the 10 output filter rules published here: 
> http://httpd.apache.org/docs/trunk/da/developer/output-filters.html#rules

Those rules are written (explicitly) for resource-level filters.  They 
would have to be a little different for CONNECTION level, e.g. EOS 
handling should probably be different... though I'm not sure how we'd 
write the rule.  Probably connection filters should delete or pass EOS, 
since they don't (shouldn't) care about request boundaries.  Dunno.

mod_ssl's output filter goes to some effort to apply (10) consistently, 
and is agnostic to data bucket types (5), but yeah, the metadata 
handling is looks wrong as you say.

Regards, Joe

Reply via email to