On Fri, Mar 01, 2002 at 09:15:46PM -0800, Ryan Bloom wrote:
> 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.

We're essentially creating a new request here.  I'm not sure why
you think we have to preseve the old protocol filters.  They simply
aren't valid anymore.  They are for the old request - we want a *new*
instance of these filters.  The old request filters aren't valid for
this type of sub-request - the contexts shouldn't be valid.  The
only filters with a valid context are the connection-filters.

> > 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.

How do you know which filters to add?  There are number of places
in the HTTP modules where they manually add CONTENT_LENGTH and
HTTP_HEADER.  My point is just to remove all of the duplicate code
and allow modules to reset the filters.  I can't believe that this
will cause the server to be that much slower.  By making it a hook,
you abstract out the protocol - only the protocol engine knows
which filters are required.  -- justin

Reply via email to