On Tue, Oct 6, 2015 at 9:37 AM, Plüm, Rüdiger, Vodafone Group
<ruediger.pl...@vodafone.com> wrote:
>
>> -----Original Message-----
>> From: Yann Ylavic [mailto:ylavic....@gmail.com]
>>
>> > Modified: httpd/httpd/trunk/server/mpm/event/event.c
>> > URL:
>> http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/event/event.c?re
>> v=1706669&r1=1706668&r2=1706669&view=diff
>> >
>> ==========================================================================
>> ====
>> > --- httpd/httpd/trunk/server/mpm/event/event.c (original)
>> > +++ httpd/httpd/trunk/server/mpm/event/event.c Sun Oct  4 10:10:51 2015
>> > @@ -1146,19 +1146,38 @@ read_request:
>> >      }
>> >
>> []
>> > +
>> > +        rindex = apr_hash_first(NULL, c->filters);
>> > +        while (rindex) {
>> > +            ap_filter_t *f = apr_hash_this_val(rindex);
>> > +
>> > +            if (!APR_BRIGADE_EMPTY(f->bb)) {
>> > +
>> > +                rv = ap_pass_brigade(f, c->empty);
>> > +                apr_brigade_cleanup(c->empty);
>> > +                if (APR_SUCCESS != rv) {
>> > +                    ap_log_cerror(
>> > +                            APLOG_MARK, APLOG_DEBUG, rv, c,
>> APLOGNO(00470)
>> > +                            "write failure in '%s' output filter", f-
>> >frec->name);
>> > +                    break;
>> > +                }
>> > +
>> > +                if (ap_filter_should_yield(f)) {
>> > +                    data_in_output_filters = 1;
>> > +                }
>> > +            }
>> > +
>> > +            rindex = apr_hash_next(rindex);
>> >          }
>>
>> This pattern looks shared by all (relevant) MPMs, couldn't we make it
>> a function? Maybe ap_reinstate_conn()?
>
> Sounds sensible.

By defining this function in util_filter
(ap_filter_reinstate_conn()?), we also possibly could get rid of
c->empty (which looks quite hacky), using/hidding an empty brigade per
filter (in opaque data).

Regards,
Yann.

Reply via email to