Network News Transfer Protocol (NNTP) Additions to LIST Command
Extracted elements (30)
Alias groups ('=other.group') are intended for transitions such as group renames or spelling corrections, and an alias SHOULD NOT point to itself or another alias. The target group SHOULD exist and be visible to any client that can see the original group.
The 'j' status group allows a news server to propagate peer articles to other peers even for newsgroups the local server does not carry. A catch-all 'junk' newsgroup (named to match the status letter) may be used to locally store such articles that would otherwise be unfileable.
The '%s' template mechanism in LIST MODERATORS changes newsgroup periods to dashes when constructing submission addresses. Two groups differing only by a period vs. dash in their names would collide; therefore '%s' patterns MUST NOT be used for such pairs, requiring explicit entries instead.
Newsgroup names SHOULD be restricted to US-ASCII until a successor to RFC 5536 standardizes another approach, though distribution descriptions and MOTD text MUST be in UTF-8.
The wildmat argument to LIST SUBSCRIPTIONS is new in RFC 6048. Servers that do not support CAPABILITIES or do not advertise SUBSCRIPTIONS in the LIST capability (i.e., those conforming only to RFC 2980) are unlikely to support the wildmat argument.
A client MUST NOT rely on the correctness of any cached MOTD results. If a client caches the MOTD, it SHOULD provide a way to force the cached information to be refreshed.
A server SHOULD use the 'x', 'j', and '=' status values when these meanings are required and MUST NOT use them with any other meaning. Status field values 'x' and 'j' are case-sensitive.
An alias (status '=other.group') SHOULD NOT point to a moderated newsgroup, since articles arriving from peers for the alias are accepted and filed without moderation, effectively bypassing the moderation process.
Distribution descriptions MUST be in UTF-8. LIST DISTRIBUTIONS MUST NOT accept an argument; if an argument is provided, a 501 response code MUST be returned.
For a newsgroup with '=other.group' status, a newsgroup name MUST immediately follow the '=' sign. The Newsgroups header fields of articles filed under an alias MUST NOT be altered.
If a server implements LIST DISTRIBUTIONS, it SHOULD also implement LIST DISTRIB.PATS and include in the distributions list all distributions present in the distrib.pats list, enabling clients to use both commands jointly.
If no wildmat is specified in LIST COUNTS, the server MUST include every newsgroup that the client is permitted to select with the GROUP command. The same newsgroup SHOULD NOT appear twice in the output.
In a LIST MODERATORS submission template, the case-sensitive string '%s' MUST occur zero or one time; a literal '%' MUST be written as '%%'; and '%' MUST NOT appear except as '%s' or '%%'. The order of lines is significant: the first matching line is used.
LIST MODERATORS MUST NOT accept an argument; a 501 response code MUST be returned if an argument is specified. LIST MODERATORS MUST return 503 if the server does not maintain the information.
The MOTD text MUST be in UTF-8. LIST MOTD MUST NOT accept an argument; a 501 response MUST be returned if an argument is given. A client MUST NOT cache any motd obtained before a privacy extension took effect.
The status of the newsgroup an alias points to MUST NOT be taken into account when an article arrives in the alias newsgroup; in particular, unapproved peer articles arriving for an alias pointing to a moderated group are accepted.
When a news server advertises one of the new LIST keywords (COUNTS, DISTRIBUTIONS, MODERATORS, MOTD, SUBSCRIPTIONS), it MUST implement the variant with exactly the meaning defined in this specification.
When a server implements a LIST variant but does not maintain the corresponding information (e.g., the configuration file does not exist), it MUST return a 503 response code. An empty 215 response indicates the information is maintained but voluntarily empty.
When the subscriptions list is maintained and non-empty, the news client SHOULD use it instead of any hard-coded default list. The wildmat argument for LIST SUBSCRIPTIONS is new in this specification and is not supported by RFC 2980 servers.
LIST COUNTS returns a multi-line list of newsgroups with five fields per line: name, high water mark, low water mark, estimated article count, and group status. It is similar to LIST ACTIVE but adds the estimated article count field.
LIST DISTRIBUTIONS returns a multi-line list where each line contains a distribution name and a short description, intended for use as values of the Distribution header field in posted articles. No argument is accepted.
LIST MODERATORS returns a multi-line list mapping wildmat patterns to submission address templates, describing how the server generates the e-mail submission address when an article is locally posted to a moderated newsgroup.
LIST MOTD returns a free-format UTF-8 multi-line message of the day from the server administrator, intended for notifications such as downtime warnings. The server may return different content depending on session state (authenticated vs. unauthenticated, reader vs. transit mode).
LIST SUBSCRIPTIONS returns an ordered list of recommended newsgroup names, one per line, with the most important group first. An optional wildmat argument filters the results. It is intended to replace hard-coded default subscription lists in news clients.
Three new case-sensitive status field values are defined for LIST ACTIVE responses: 'x' (no local postings or peer articles accepted), 'j' (only peer articles accepted, not locally filed except optionally in 'junk'), and '=other.group' (alias — peer articles filed under other.group).
This document extends the IANA NNTP LIST capability registry by adding five optional keywords to the 'LIST' capability label: COUNTS, DISTRIBUTIONS, MODERATORS, MOTD, and SUBSCRIPTIONS. It also adds three new status field values ('x', 'j', '=newsgroup-name') to the ACTIVE variant of LIST.
This extension introduces no new security considerations beyond those in RFC 3977 and RFC 5537. Implementors should be aware of distribution leakage (exposing internal routing information) and e-mail denial-of-service risks during the moderation process described in RFC 5537.
Each line of the LIST COUNTS response MUST consist of five space-separated fields in order: newsgroup-name, high-water-mark, low-water-mark, estimated-article-count, status. TAB characters are not valid separators. Fields may include leading zeroes.
Each line of the LIST DISTRIBUTIONS response MUST consist of two fields: the distribution name and its description, separated by one or more space or TAB characters (typically a single TAB). No leading or trailing whitespace; the description may contain whitespace.
Each line of the LIST MODERATORS response consists of two colon-separated fields: a wildmat (or exact newsgroup name) and a submission address template. The template is an e-mail addr-spec where '%s' is replaced by the newsgroup name (with periods changed to dashes) and '%%' represents a literal percent sign.