ietf-nntp Draft vs Diablo server software

Russell Vincent rv at openusenet.org
Sun Jul 23 12:37:10 PDT 2000


Here is a list of the commands used in the Diablo NNTP server software.
I did this audit to see how it conforms with draft-ietf-nntpext-base-10.txt
and to compare how another usenet server (with a different architecture
to INN) complies with the draft.

Note that I will update Diablo to conform to the standard where necessary
and feasible.

Summary of major differences that may require clarification or extra
response codes in the draft:
 - uses 501 to indicate usage error in commands that require parameters
 - uses 502 instead of 504 in GREETING for unauthorised connections (7.1)
 - uses 480 to indicate that IHAVE transfer permission is denied (9.3.2)
 - uses 481 to indicate that no group was specified for LISTGROUP (9.5.1)
    (perhaps use 501 instead)
 - DATE not implemented in transfer mode (only reading client mode)

Differences that need to be fixed in Diablo:
 - not all wildmat options are implemented (5)
 - uses 500 instead of 502 for MODE command failure (7.1.2)

There are also some commands that are only implemented in Diablo and
these will probably be implemented with LIST EXTENSIONS.

For those readers unfamiliar with Diablo; it is currently in wide use
as newsfeeding software and gaining popularity in newsreading,
particularly in very large, distrubuted newsreading systems.

      http://www.openusenet.org/diablo/

 -Russell
 (Current maintainer of Diablo usenet server software)

========================================================================
   Differences between draft-ietf-nntpext-base-10.txt and the Diablo
   -----------------------------------------------------------------
   implementation of the commands.
   -------------------------------

Wildmat
    - implemented '*', '?' and '!'.
    - unimplemented: set ([]), negate set and backslash

GREETING
    - implemented: 200/201/400
    - uses 502 instead of 504

MODE READER
    - implemented: 200/201
    - unimplemented: 400
    - uses 500 instead of 502

    - also implemented
	stream
	feeder - to switch to feeding mode when connected as reader
	headfeed - switch to header-only feed
    The last 2 options are implemented due to the distributed nature
    of the implementation, which means that the reader frontend only
    requires a feed of the article headers

LIST EXTENSIONS
    - not yet implemented

GROUP
    - conforms
    - also implements 501 (no group name specified)

LAST
    - implemented: 223/422
    - uses 422 for 412/420 
    - also implements 501 (no group name specified)

NEXT
    - implemented: 223/421
    - uses 421 for 412/420 
    - also implements 501 (no group name specified)

ARTICLE
    - implemented: 220/412/423/430
    - uses 423 for 420
    - unimplemented: 502

HEAD
    - implemented: 221/412/423/430
    - uses 423 for 420
    - unimplemented: 502

BODY
    - implemented: 222/412/423/430
    - uses 423 for 420
    - unimplemented: 502

STAT
    - implemented: 223/412/423/430
    - uses 423 for 420
    - unimplemented: 502

POST
    - conforms
    - also implements a secondary code used after 340 (optional and not
      recommended)
	340 340 send article to be posted, Message-ID will be accepted
	340 345 send article to be posted, but Message-ID will be replaced

IHAVE
    - conforms
    - also implements:
	480 Transfer permission denied
	400 I/O Error

LIST ACTIVE
    - implemented: 215
    - unimplemented: 501/503

LIST ACTIVE.TIMES
    - not supported yet

LIST DISTRIBUTIONS
    - implemented: 215
    - unimplemented: 501/503

LIST DISTRIB.PATS
    - implemented: 215
    - unimplemented: 501/503

LIST NEWSGROUPS
    - implemented: 215
    - unimplemented: 501/503

LISTGROUP
    - implemented: 211/411
    - unimplemented: 412
    - also implemented:
	481 No group specified
	[ This needs changing to 412 ]

LIST OVERVIEW.FMT
    - implemented: 215
    - unimplemented: 501/503

OVER
    - implemented as XOVER
    - implemented: 224/412/500
    - unimplemented: 420/502
	if no article is specified (420), then uses the current article
	pointer

PAT
    - implemented as XPAT
    - implemented: 221/412
    - unimplemented: 430/502
    - also implemented:
	501 Usage error

QUIT
    - conforms

DATE
    - conforms
    - only implemented in reader code

DEBUG
    - unimplemented

HELP
    - conforms

NEWGROUPS
    - conforms
    - also implemented:
	501 Usage error

NEWNEWS
    - unimplemented

Other commands implemented, but not in draft
--------------------------------------------

LISTGROUP
    - list all article numbers in a group as '211' followed by
      '.\r\n' terminated list of article numbers, one per line.

XGTITLE [group_pattern]
    - list description of newsgroup(s)

XHDR header [range|MessageID]
    - display a particular article header for a range of articles

XOVER
    - see OVER
XPAT
    - see OVER

CHECK
TAKETHIS
    - used in streaming mode NNTP

OUTQ
    - display the size of the feed backlog for the connecting site

FEEDRSET
FEEDADD
FEEDDEL
FEEDCOMMIT
    - adjust the newsfeed group patterns for the connecting site

AUTHINFO USER 
AUTHINFO PASS 
    - user authentication to client mode




More information about the ietf-nntp mailing list