On Tue, Oct 27, 2015 at 1:17 PM, Roy T. Fielding <field...@gbiv.com> wrote:

> > On Oct 26, 2015, at 11:45 PM, jaillet...@apache.org wrote:
> >
> > Author: jailletc36
> > Date: Tue Oct 27 06:45:03 2015
> > New Revision: 1710723
> >
> > URL: http://svn.apache.org/viewvc?rev=1710723&view=rev
> > Log:
> > RFC2616 defines #rules as:
> >   #rule
> >      A construct "#" is defined, similar to "*", for defining lists of
> >      elements. The full form is "<n>#<m>element" indicating at least
> >      <n> and at most <m> elements, each separated by one or more commas
> >      (",") and OPTIONAL linear white space (LWS). This makes the usual
> >      form of lists very easy; a rule such as
> >         ( *LWS element *( *LWS "," *LWS element ))
> >      can be shown as
> >         1#element
> >
> > It also defines Linear White Space (LWS) as:
> >   LWS            = [CRLF] 1*( SP | HT )
> >
> >
> > The actual implementation only accepts SP (Space) and not HT (Horizontal
> Tab) when parsing cache related header fields (i.e. "Vary", "Cache-Control"
> and "Pragma")
>
> Well, to be more accurate: RFC7230 defines these (2616 no longer applies)
> and
> the original algorithm did handle HT.  My bet is that someone screwed up an
> automated TAB -> two space conversion and the code change got lost in the
> noise.
>

Interestingly it was only introduced in a recent commit (2 yrs ago) with
the defect,
one might guess that the vi/emacs template did the damage when the text was
pasted in.

See also server.c/protocol.c@920 on trunk, which has the correct HT
handling,
explicitly.

Reply via email to