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