httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Orton <jor...@redhat.com>
Subject Re: [Patch] non blocking writes in core
Date Thu, 21 Nov 2013 08:43:34 GMT
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.pluem@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

Mime
View raw message