Subject: [NNTP] Additions to the LIST capability

From: Julien ÉLIE <[email-masked]>
Date: Thu, 15 Oct 2009 22:34:05 +0200

Hi,

I think it would be useful to document a few additions to the LIST capability:

 - LIST ACTIVE -> field status "j", "x" and "=news.group";
 - LIST DISTRIBUTIONS;
 - LIST MODERATORS;
 - LIST MOTD;
 - LIST SUBSCRIPTIONS.

I've begun to write an Internet-Draft and would like to have a few comments
on it.  Feel free to point out lame wording and any issue you see.

** First of all, do you see other keywords we should add to LIST?  Is it OK
to put everything in the same I.-D. ?

Abstract

   This document defines a set of enhancements to the Network News
   Transfer Protocol (NNTP) that allows a client to request extended
   information maintained by NNTP servers as for local use and
   distribution policy.  These enhancements are made as new keywords to
   the existing LIST capability described in RFC 3977.

   This memo updates and formalizes the LIST DISTRIBUTIONS and LIST
   SUBSCRIPTIONS commands specified in RFC 2980.  It also adds the LIST
   MODERATORS and LIST MOTD commands, and specifies additional values
   returned by the existing LIST ACTIVE command for the status of a
   newsgroup.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
     1.1.  Conventions Used in This Document  . . . . . . . . . . . .  4
   2.  Additions to the LIST Extension  . . . . . . . . . . . . . . .  5
     2.1.  Advertising the New LIST Commands  . . . . . . . . . . . .  5
     2.2.  Additions to the LIST ACTIVE Command . . . . . . . . . . .  5
       2.2.1.  Usage  . . . . . . . . . . . . . . . . . . . . . . . .  5
       2.2.2.  Description  . . . . . . . . . . . . . . . . . . . . .  5
       2.2.3.  Examples . . . . . . . . . . . . . . . . . . . . . . .  5
     2.3.  LIST DISTRIBUTIONS Command . . . . . . . . . . . . . . . .  5
       2.3.1.  Usage  . . . . . . . . . . . . . . . . . . . . . . . .  5
       2.3.2.  Description  . . . . . . . . . . . . . . . . . . . . .  5
       2.3.3.  Examples . . . . . . . . . . . . . . . . . . . . . . .  5
     2.4.  LIST MODERATORS Command  . . . . . . . . . . . . . . . . .  5
       2.4.1.  Usage  . . . . . . . . . . . . . . . . . . . . . . . .  5
       2.4.2.  Description  . . . . . . . . . . . . . . . . . . . . .  5
       2.4.3.  Examples . . . . . . . . . . . . . . . . . . . . . . .  5
     2.5.  LIST MOTD Command  . . . . . . . . . . . . . . . . . . . .  5
       2.5.1.  Usage  . . . . . . . . . . . . . . . . . . . . . . . .  5
       2.5.2.  Description  . . . . . . . . . . . . . . . . . . . . .  5
       2.5.3.  Examples . . . . . . . . . . . . . . . . . . . . . . .  5
     2.6.  LIST SUBSCRIPTIONS Command . . . . . . . . . . . . . . . .  5
       2.6.1.  Usage  . . . . . . . . . . . . . . . . . . . . . . . .  5
       2.6.2.  Description  . . . . . . . . . . . . . . . . . . . . .  5
       2.6.3.  Examples . . . . . . . . . . . . . . . . . . . . . . .  6
   3.  Augmented BNF Syntax for the New LIST Commands . . . . . . . .  7
     3.1.  Commands . . . . . . . . . . . . . . . . . . . . . . . . .  7
     3.2.  Responses  . . . . . . . . . . . . . . . . . . . . . . . .  7
   4.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  8
   5.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . .  9
   6.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     6.1.  Normative References . . . . . . . . . . . . . . . . . . . 10
     6.2.  Informative References . . . . . . . . . . . . . . . . . . 10
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11
   Intellectual Property and Copyright Statements . . . . . . . . . . 12

** Does it look good?
Any comment about the use of "LIST Extension" and "LIST Command"?
"This" with a capital letter and "the" with a small letter?

** Should a "Security Considerations" section be added?  (E-mail issues
with LIST MODERATORS?  Another thing?)

1.  Introduction

   The NNTP specification [RFC3977] defines the LIST capability and a
   few keywords which can be used with that command:  ACTIVE,
   ACTIVE.TIMES, DISTRIB.PATS, HEADERS, NEWSGROUPS and OVERVIEW.FMT.  As
   other widely used keywords exist, they are formalized in this
   document.

   The DISTRIBUTIONS and SUBSCRIPTIONS keywords have originally been
   documented in [RFC2980].  The LIST DISTRIBUTIONS command is sent by a
   news client to obtain a list of relevant distributions known by a
   news server along with their descriptions.  The LIST SUBSCRIPTIONS
   command is sent by a news client when first connecting to a news
   server so as to obtain a list of recommended newsgroups available on
   it.  Both of these commands are intended to be used in place of
   hard-coding news clients to use specific distributions or look for
   specific default newsgroups.

   The MOTD keyword has originally been documented in
   [I-D.draft-hernacki-nntplist] (which also defines the SUBSCRIPTIONS
   keyword).  The LIST MOTD command is sent by a news client to obtain a
   "message of the day" containing useful information regarding the
   current state of a news server.

   The MODERATORS keyword was not documented before.  The LIST
   MODERATORS command is sent by a news client to obtain a list of
   associations between moderated newsgroups and their submission
   address.

   The ACTIVE keyword has already been documented in [RFC3977] but the
   meaning of only three status fields in response to the LIST ACTIVE
   command has been specified:  "y", "n" and "m".  This memo defines
   three other widespread values for the status field:  "j", "x" and "="
   followed by the name of a newsgroup.

** Any comment?  Is is enough for an introduction?

-- 
Julien ÉLIE

« Argumentum baculinum. » (Sganarelle)

---

From: Julien ÉLIE <[email-masked]>
Date: Thu, 15 Oct 2009 22:50:32 +0200

> - LIST ACTIVE -> field status "j", "x" and "=news.group";

Here is a proposal for the grammar.

3.  Augmented BNF Syntax for the New LIST Commands

   This section describes the formal syntax of the new LIST commands
   defined in this document using [RFC5234].  It extends the syntax in
   Section 9 of [RFC3977], and non-terminals not defined in this
   document are defined there.  The [RFC3977] ABNF should be imported
   first before attempting to validate these rules.

3.1.  Commands

   This syntax extends the non-terminal <list-arguments> which
   represents the keywords for the LIST command.

      list-arguments =/ "DISTRIBUTIONS" / "MODERATORS" /
              "MOTD" / "SUBSCRIPTIONS"

3.2.  Responses

   This syntax extends the non-terminals <newsgroup-status> and <list-
   content> which respectively represent the status field returned by
   the LIST ACTIVE command and the response contents for the LIST
   command.

      ; active
      newsgroup-status =/ %x6A / %x78 /   ; case-sensitive "j" and "x"
              newsgroup-alias
      newsgroup-alias =  "=" newsgroup-name

      ; distributions
      list-content =/ list-distributions-content
      list-distributions-content =
            *(distribution WS distribution-description CRLF)
      distribution-description = S-TEXT

      ; moderators
      list-content =/ list-moderators-content
      list-moderators-content =
            *(wildmat ":" moderators-address CRLF)
      moderators-address = S-TEXT

      ; motd
      list-content =/ list-motd-content
      list-motd-content = *(*U-CHAR CRLF)

      ; subscriptions
      list-content =/ list-subscriptions-content
      list-subscriptions-content = *(newsgroup-name CRLF)

** Is it OK?
Especially S-TEXT for distribution-description and moderators-address (?)

** Should other things be defined in that section?
Especially capability entries (?)  I see that RFC 3977 has
  list-capability = "LIST" 1*(WS keyword)
and defines nowhere an exhaustive list of such keywords, contrary to
  list-arguments = keyword [WS token]
  list-content = body
which are both extended with the exhaustive list of keywords and
responses.
That's why I think a capability section is not necessary, but I may be wrong.

** Should a capability be added to specify that the additions to the LIST ACTIVE
command are properly taken into account? ("j", "x" and "=news.group")
As a matter of fact, I do not see how to distinguish a news server which uses "j"
as a private value (allowed by RFC 3977) and a news server which uses "j" with
the meaning defined in an extension...

-- 
Julien ÉLIE

« L'art de la médecine consiste à distraire le malade
  pendant que la nature le guérit. » (Voltaire)