> On Fri, Mar 01, 2002 at 04:50:16PM -0800, Ryan Bloom wrote:
> > I don't understand how this is working.  The original code from Will
> > came from a discussion that he and I had over the phone.  My
question is
> > how were the protocol specific filters removed in this case?
> >
> > Oh, damn, the problem is that these filters are request specific
instead
> > of connection specific.  What we really need, is a filter type that
is
> > request specific, but that isn't specifically tied to the request.
> > Basically another field in the request_rec, which would store all
store
> > all HTTP_HEADER filters.  That way, they wouldn't be lost for
> > sub-requests and internal redirects.
> 
> Yes, but the concept of the protocol is intertwined with the concept
> of a request.  A request should be one "transaction" of a protocol
> interaction.  A protocol filter shouldn't survive successive
> iterations of a "request" - we saw that didn't work for HTTP.

You are thinking of this wrong.  Filters that are stored on 
r->protocol_filters wouldn't survive a single request, they would be
required for the lifetime of the request.  The idea is that anything
that lives in r->output_filters would be allowed to be removed by the
server code at will.  Anything on r->protocol_filters would be static
for the lifetime
of a request, and c->output_filters survives a request.

> What's wrong with a simple hook that lets the protocol engines add
> filters to a request?  -- justin

Because the more hooks we add, the more complex it is to write a module,
and the slower the server actually goes.  Also, why should this be a
hook?  There are a set of filters that absolutely must survive for the
lifetime of a request and no longer.  Those are protocol filters, and
they shouldn't be treated equivalently to content filters.

Ryan


Reply via email to