Issue in ABNF syntax for the User-Agent: header

Julien ÉLIE <[email protected]> Mon, 2 Nov 2009 23:52:28 +0100
Newsgroups gmane.ietf.usenet.format
Organization TrigoFACILE -- http://www.trigofacile.com/
Message-ID <C4F757B7FFCA4F45AE7E360540F3EB5C@Iulius>
Hi,

I read in USEFOR:

   user-agent      =  "User-Agent:" SP 1*product [CFWS] CRLF
   product         =  [CFWS] token [ [CFWS] "/" product-version ]
   product-version =  [CFWS] token

and in RFC 2045:

     token := 1*<any (US-ASCII) CHAR except SPACE, CTLs,
                 or tspecials>

     tspecials :=  "(" / ")" / "<" / ">" / "@" /
                   "," / ";" / ":" / "\" / <"> /
                   "/" / "[" / "]" / "?" / "="
                   ; Must be in quoted-string,
                   ; to use within parameter values


However, a quick "HDR User-Agent -" on news.software.nntp gives at least:

7710 Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)
7704 slrn/pre1.0.0-15 (Linux)
7660 tin/1.9.5-20091003 ("Rieclachan") (UNIX) (Linux/2.6.24-24-generic (i686))
7659 Thunderbird 2.0.0.23 (Windows/20090812)
7600 MacSOUP/2.8.2 (Mac OS X version 10.5.8 (x86))
7594 Turnpike/6.07-M (<wztiu2+cqs7vk6mlt6f268lB5p>)
7587 Pan/0.133 (House of Butterflies)

All of them are not USEFOR-compliant!

Is it normal?!?

Isn't something missing in the ABNF syntax?  If I read RFC 2626 for HTTP, I see:

   User-Agent     = "User-Agent" ":" 1*( product | comment )
   comment        = "(" *( ctext | quoted-pair | comment ) ")"
   ctext          = <any TEXT excluding "(" and ")">

which seems to be more accurate thant what USEFOR mentions.




Incidentally, it is normal we have [CFWS] for a few headers and not others?
No initial folding for Path:
   path            =  "Path:" SP *WSP path-list tail-entry *WSP CRLF
   path-list       =  *( path-identity [FWS] [path-diagnostic] "!" )
but a possible one for Archive:
   archive         =  "Archive:" SP [CFWS] ("no" / "yes")
                      *( [CFWS] ";" [CFWS] archive-param ) [CFWS] CRLF

I think that's OK, but better be sure...

-- 
Julien ÉLIE

« A man inserted an 'ad' in the classifieds: "Wife wanted".
  Next day he received a hundred letters.  They all said
  the same thing:  "You can have mine." »