> > check_pipeline:  use AP_MODE_SPECULATIVE to check for data in the input
> filters
> > to accomodate mod_ssl's input filter.  AP_MODE_EATCRLF is essentially a
> no-op
> > in that filter.
> 
> EATCRLF was used here for a specific reason though - the fact that "many 
> browsers" (says ap_core_input_filter) send newlines after request data - 
> is that no longer the case?

EATCRLF started out life as AP_MODE_PEEK.  its mission was to see if any more
input data was stashed in the pipeline in order to know if it is appropriate to
flush the output filters, without doing a read() syscall.

then someone added the side effect of eating the single CRLFs from old
browsers.  an inappropriate design in my opinion.  the filters should be lean
and mean and relatively dumb.

then someone else decided to rewrite the input filters and rename MODE_PEEK. 
the result was that it got named after its side effect and redundant code was
added as MODE_SPECULATIVE which was used in mod_ssl.

my thoughts:  don't try to optimize for old browsers within the core filters. 
if they really need any special attention (I doubt it), do it at the protocol
level, above the filters.

Greg

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Reply via email to