Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: RFC 5537 to RFC 3977 descriptions translation

0 views
Skip to first unread message

Julien ÉLIE

unread,
Dec 10, 2009, 5:05:35 PM12/10/09
to
Hi all,

[Follow up to news.admin.hierarchies.]

Just a note to warn news implementors that a translation should be done
between RFC 5537 newsgroups descriptions and RFC 3977 newsgroups descriptions
because RFC 5537 now allows empty descriptions (which were forbidden by
Son-of-1036).


> After more years than I care to remember, the primary output of the USEFOR
> Working Group has finally made it to become RFC 5536 and RFC 5537, both of
> which now have the status of Proposed Standard, and can be downloaded from
> http://www.ietf.org/rfc.html.
>
> [RFC5536] Murchison, K., Ed., Lindsey, C., and D. Kohn, "Netnews
> Article Format", RFC 5536, November 2009.
>
> [RFC5537] Allbery, R., Ed. and C. Lindsey, "Netnews Architecture
> and Protocols", RFC 5537, November 2009.
>
> Apart from bringing things more-or-less into line with the Email format
> and MIME, and a general clarification of RFC 1036, the principal changes are:
>
> o A new Injection-Date header field to make the rejection
> of stale articles more precise and to minimize spurious
> rejections.
> o A new Injection-Info header field to replace the undocumented
> X-Trace, X-Complaints-To and NNTP-Posting-Host.
> o An enhanced syntax for the Path header field to enable easier
> detection of Paths forged to disguise where an article came from.
> o MIME is used to better structure the format of Control Messages and
> submission of articles to moderators in encapsulated form.

I would like to highlight the fact that hierarchy administrators probably
should not send *empty* newsgroups descriptions (in newgroup and checkgroups
control articles) with the new syntax defined by RFC 5537:

4.2. application/news-groupinfo

newsgroups-line = newsgroup-name
[ 1*HTAB newsgroup-description ]
[ *WSP moderation-flag ]
newsgroup-description
= eightbit-utext *( *WSP eightbit-utext )
moderation-flag = SP "(" %x4D.6F.64.65.72.61.74.65.64 ")"
; SPACE + case sensitive "(Moderated)"
eightbit-utext = %x21-FF

because it does not cope well with the LIST NEWSGROUPS command defined by
RFC 3977 (that command was supposed to follow the checkgroups syntax):

The newsgroups list is maintained by NNTP servers to contain the name
of each newsgroup that is available on the server and a short
description about the purpose of the group. Each line of this list
consists of two fields separated from each other by one or more space
or TAB characters (the usual practice is a single TAB). The first
field is the name of the newsgroup, and the second is a short
description of the group.

; newsgroups
list-content =/ list-newsgroups-content
list-newsgroups-content =
*(newsgroup-name WS newsgroup-description CRLF)
newsgroup-description = S-TEXT

WS = 1*(SP / TAB)
S-TEXT = U-TEXT
U-TEXT = P-CHAR *U-CHAR
P-CHAR = A-CHAR / UTF8-non-ascii
A-CHAR = %x21-7E
U-CHAR = CTRL / TAB / SP / A-CHAR / UTF8-non-ascii

and it is stricter than what Son-of-1036 defined (allowing tabs and spaces,
and disallowing an empty description):

checkgroups-body = [ invalidation ] valid-groups
/ invalidation
invalidation = "!" plain-component *( "," plain-component ) eol
valid-groups = 1*( description-line eol )
description-line = newsgroup-name space description
description = nonblank-text [ " (Moderated)" ]
space = 1*( <HT (ASCII 9)> / <blank (ASCII 32)> )

For instance, even though all these lines are valid for RFC 5537:

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
fr.test
fr.test.y\tA description.
fr.test.m\tA description. (Moderated)
fr.test.m.without.desc (Moderated)
fr.test.m.without.desc2 (Moderated)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

it is unsure that fr.test.m.without.desc or fr.test.m.without.desc2 will
be considered as moderated with all news software.

A few of these lines are invalid in LIST NEWSGROUPS so news servers have
to ensure that they properly rewrite the descriptions into valid output,
possibly adding "No description.", as ftp.isc.org does.

Maybe the following output is the right one to give:

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
fr.test\tNo description.
fr.test.y\tA description.
fr.test.m\tA description. (Moderated)
fr.test.m.without.desc\tNo description. (Moderated)
fr.test.m.without.desc2\tNo description. (Moderated)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

--
Julien �LIE

� Quand on retire tout ce qu'on a dit, il reste tout ce qu'on n'a pas
dit. � (Philippe Geluck)

0 new messages