< draft-ietf-nntpext-imp-03.txt   draft-ietf-nntpext-imp-04.txt >
INTERNET-DRAFT S. Barber
INTERNET-DRAFT S. Barber Expires: February 13, 2001 Academ Consulting Services
Expires: January 7, 1999 Academ Consulting Services August 2000
August 1998 Common NNTP Extensions
Common NNTP Extensions draft-ietf-nntpext-imp-04.txt
draft-ietf-nntpext-imp-03.txt
Status of this Document Status of this Document
This document is an Internet-Draft. Internet-Drafts are working docu- This document is an Internet-Draft and is in full conformance
ments of the Internet Engineering Task Force (IETF), its areas, and its with Section 10 of RFC 2026. Internet-Drafts are working
working groups. Note that other groups may also distribute working doc- documents of the Internet Engineering Task Force (IETF), its
uments as Internet-Drafts. areas, and its working groups. Note that other groups may
also distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six
and may be updated, replaced, or obsoleted by other documents at any months and may be updated, replaced, or made obsolete by other
time. It is inappropriate to use Internet- Drafts as reference material documents at any time. It is inappropriate to use Internet-
or to cite them other than as ``work in progress.'' Drafts as reference material or to cite them other than as
"work in progress."
To learn the current status of any Internet-Draft, please check the The list of current Internet-Drafts can be accesses at
``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow http://www.ietf.org/ietf/1id-abstracts.txt.
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
ftp.isi.edu (US West Coast).
Copyright The list of Internet-Draft shadow directories can be accessed
at http://www.ietf.org/shadow.html.
Copyright (C) The Internet Society (1998). All Rights Reserved. This section will be updated with the appropriate verbiage
from RFC 2223 should this document has been found ready for
publication as an RFC.
This document is a product of the NNTP Working Group, chaired
by Stan Barber and Ned Freed.
Abstract Abstract
In this document, a number of popular extensions to the NNTP protocol In this document, a number of popular extensions to the NNTP
defined in RFC977 are documented and discussed. While this document is protocol defined in RFC977 are documented and discussed. While
not intended to serve as a standard of any kind, it will hopefully serve this document is not intended to serve as a standard of any kind,
as a reference document for future implementers of the NNTP protocol. In it will hopefully serve as a reference document for future
the role, this document would hopefully create the possibility for some implementers of the NNTP protocol. In the role, this document
level of interoperability among implementations that make use of exten- would hopefully create the possibility for some level of
sions. interoperability among implementations that make use of extensions.
Introduction Introduction
RFC977[1] defines the NNTP protocol and was released over a decade ago. RFC977[1] defines the NNTP protocol and was released over
Since then, NNTP has become one of the most popular protocols in use on a decade ago. Since then, NNTP has become one of the most
the Internet. Many implementations of the protocol have been created on popular protocols in use on the Internet. Many implementations
many different platforms and operating systems. With the growth in use of the protocol have been created on many different platforms
of the protocol, work began on a revision to NNTP in 1991, but that work and operating systems. With the growth in use of the
did not result in a new standard protocol specification. However, many protocol, work began on a revision to NNTP in 1991, but
ideas from that working group did find their way into many implementa- that work did not result in a new standard protocol
tions of NNTP. Additionally, many other extensions, often created by specification. However, many ideas from that working group
newsreader authors, are also in use. This document will capture and did find their way into many implementations of NNTP.
define all known extensions to NNTP available in official NNTP server Additionally, many other extensions, often created by
releases of some type as of this writing. Where possible, the server newsreader authors, are also in use. This document will capture
software first implementing a particular extension will be noted. It is and define all known extensions to NNTP available in official
the hope of the author that using this document in tandem with RFC977 NNTP server releases of some type as of this writing. Where
will limit the addition of new extensions that essentially do the same possible, the server software first implementing a particular
thing. Software developers may wish to use this document and others[2] extension will be noted. It is the hope of the author that
as a resource for the development of new software. using this document in tandem with RFC977 will limit the
addition of new extensions that essentially do the same thing.
Software developers may wish to use this document and others[2]
as a resource for the development of new software.
This document does not specify an Internet Standard of any kind. It This document does not specify an Internet Standard of any
only attempts to document current practices. While this document may kind. It only attempts to document current practices.
clarify some ambiguity in RFC977, RFC977 should be regarded as authori- While this document may clarify some ambiguity in RFC977,
tative in all cases. There are some implementations that are not RFC977 should be regarded as authoritative in all cases.
strictly RFC977 compliant and where necessary, these deviations from the There are some implementations that are not strictly RFC977
standard will be noted. This document does reflect the work of the IETF compliant and where necessary, these deviations from the
NNTP-EXT working group chaired by Ned Freed and Stan Barber. standard will be noted. This document does reflect the work of
the IETF NNTP-EXT working group chaired by Ned Freed and Stan
Barber.
This document is provided to help implementers have a uniform source of This document is provided to help implementers have a uniform source
information about extensions, however, it is important for any prospec- of information about extensions, however, it is important for any
tive implementer to understand that the extensions listed here are NOT prospective implementer to understand that the extensions listed
part of any current standard for NNTP. In fact, some of the ones listed here are NOT part of any current standard for NNTP. In fact, some
in this document should not be included in new NNTP implementations as of the ones listed in this document should not be included in new
they should no longer be used modern NNTP environments. Such commands NNTP implementations as they should no longer be used modern NNTP
should be considered historic and are documented as such in this docu- environments. Such commands should be considered historic and are
ment. documented as such in this document.
Extensions fall into three categories: transport, newsreader and other. Extensions fall into three categories: transport, newsreader
Transport extensions are additions to the NNTP specification that were and other. Transport extensions are additions to the NNTP
made specifically to move news articles from one server to another specification that were made specifically to move news
server. Newsreader extensions are additions to the NNTP specification articles from one server to another server. Newsreader
that were made to assist NNTP clients in selecting and retrieving news extensions are additions to the NNTP specification that
articles from servers. Other extensions to the NNTP specification are were made to assist NNTP clients in selecting and retrieving
those which did not specifically fall into either of the other two cate- news articles from servers. Other extensions to the NNTP
gories. Examples of other extensions include authentication and time-of- specification are those which did not specifically fall
day extensions. into either of the other two categories. Examples of other
extensions include authentication and time-of-day extensions.
For each command, the format of section 3 of RFC977 will be used. For each command, the format of section 3 of RFC977 will be used.
1. Transport Extensions 1. Transport Extensions
A transport extension is one which is primarily used in interserver com- A transport extension is one which is primarily used in inter-
munications. Following are the descriptions of each transport extension server communications. Following are the descriptions of each
commands and the responses which will be returned by those commands. transport extension commands and the responses which will be
returned by those commands.
Each command is shown in upper case for clarity, although case is Each command is shown in upper case for clarity, although
ignored in the interpretation of commands by the NNTP server. Any case is ignored in the interpretation of commands by the
parameters are shown in lower case. A parameter shown in [square brack- NNTP server. Any parameters are shown in lower case. A
ets] is optional. For example, [GMT] indicates that the triglyph GMT parameter shown in [square brackets] is optional. For
may present or omitted. A parameter that may be repeated is followed by example, [GMT] indicates that the triglyph GMT may present
an ellipsis. or omitted. A parameter that may be repeated is followed
by an ellipsis.
1.1. The CHECK command 1.1.1 The CHECK command
CHECK <message-id> CHECK <message-id>
CHECK is used by a peer to discover if the article with the specified CHECK is used by a peer to discover if the article with the
message-id should be sent to the server using the TAKETHIS command. The specified message-id should be sent to the server using the
peer does not have to wait for a response from the server before sending TAKETHIS command. The peer does not have to wait for a response
the next command. from the server before sending the next command.
>From using the responses to the sequence of CHECK commands, a list of From using the responses to the sequence of CHECK commands, a
articles to be sent can be constructed for subsequent use by the list of articles to be sent can be constructed for subsequent
TAKETHIS command. use by the TAKETHIS command.
The use of the CHECK command for streaming is optional. Some implementa- The use of the CHECK command for streaming is optional. Some
tions will directly use the TAKETHIS command and send all articles in implementations will directly use the TAKETHIS command and send all
the send queue on that peer for the server. articles in the send queue on that peer for the server.
On some implementations, the use of the CHECK command is not permitted On some implementations, the use of the CHECK command is not
when the server is in slave mode (via the SLAVE command). permitted when the server is in slave mode (via the SLAVE command).
Responses that are of the form X3X must specify the message-id in the Responses that are of the form X3X must specify the message-id in
response. the response.
1.1.1. Responses 1.1.2. Responses
238 no such article found, please send it to me 238 no such article found, please send it to me
400 not accepting articles 400 not accepting articles
431 try sending it again later 431 try sending it again later
438 already have it, please don't send it to me 438 already have it, please don't send it to me
480 Transfer permission denied 480 Transfer permission denied
500 Command not understood 500 Command not understood
1.2. The MODE STREAM command 1.2.1 The MODE STREAM command
MODE STREAM MODE STREAM
MODE STREAM is used by a peer to indicate to the server that it would MODE STREAM is used by a peer to indicate to the server
like to suspend the lock step conversational nature of NNTP and send that it would like to suspend the lock step conversational
commands in streams. This command should be used before TAKETHIS and nature of NNTP and send commands in streams. This command should be
CHECK. See the section on the commands TAKETHIS and CHECK for more used before TAKETHIS and CHECK. See the section on the commands
details. TAKETHIS and CHECK for more details.
1.2.1. Responses 1.2.2. Responses
203 Streaming is OK 203 Streaming is OK
500 Command not understood 500 Command not understood
1.3. The TAKETHIS command 1.3.1 The TAKETHIS command
TAKETHIS <message-id> TAKETHIS <message-id>
TAKETHIS is used to send articles to a server when in streaming mode. TAKETHIS is used to send articles to a server when in streaming
The entire article (header and body, in that sequence) is sent immedi- mode. The entire article (header and body, in that sequence) is
ately after the peer sends the TAKETHIS command. The peer does not have sent immediately after the peer sends the TAKETHIS command. The
to wait for a response from the server before sending the next command peer does not have to wait for a response from the server before
and the associated article. sending the next command and the associated article.
During transmission of the article, the peer should send the entire During transmission of the article, the peer should send the entire
article, including header and body, in the manner specified for text article, including header and body, in the manner specified for text
transmission from the server. See RFC977, Section 2.4.1 for details. transmission from the server. See RFC977, Section 2.4.1 for details.
Responses that are of the form X3X must specify the message-id in the Responses that are of the form X3X must specify the message-id in
response. the response.
1.3.1. Responses 1.3.2. Responses
239 article transferred ok 239 article transferred ok
400 not accepting articles 400 not accepting articles
439 article transfer failed 439 article transfer failed
480 Transfer permission denied 480 Transfer permission denied
500 Command not understood 500 Command not understood
1.4. The XREPLIC command 1.4.1 The XREPLIC command
XREPLIC ggg:nnn[,ggg:nnn...] XREPLIC ggg:nnn[,ggg:nnn...]
The XREPLIC command makes it possible to exactly duplicate the news The XREPLIC command makes is possible to exactly duplicate
spool structure of one server in another server. It first appeared in the news spool structure of one server in another server. It
INN. first appeared in INN.
This command works similarly to the IHAVE command as specified in This command works similarly to the IHAVE command as
RFC977. The same response codes are used. The command line arguments specified in RFC977. The same response codes are used. The
consist of entries separated by a single comma. Each entry consists of a command line arguments consist of entries separated by a
news group name, a colon, and an article number. If the server responds single comma. Each entry consists of a news group name, a
with a 335 response, the article should be filed in the news group(s) colon, and an article number. If the server responds with
and article number(s) specified in the XREPLIC command line. If the a 335 response, the article should be filed in the news
server cannot do successfully install the article once it has accepted group(s) and article number(s) specified in the XREPLIC
it, a 436 or 437 response code can be used to indicate the failure. command line. If the server cannot do successfully install
the article once it has accepted it, a 436 or 437 response
code can be used to indicate the failure.
This command should only be used when the receiving server is being fed This command should only be used when the receiving server
by only one other server. It is likely that when used with servers that is being fed by only one other server. It is likely that
have multiple feeds that this command will frequently fail. when used with servers that have multiple feeds that this
command will frequently fail.
XREPLIC slaving has been deprecated in INN version 1.7.2 and later. INN XREPLIC slaving has been deprecated in INN version 1.7.2 and later.
now has the ability to slave servers via transparent means, simply by INN now has the ability to slave servers via transparent means, sim-
having the article's Xref header transferred. (In previous versions, ply
this header was generated locally and stripped off on outgoing feeds.) by having the article's Xref header transferred. (In previous ver-
It is likely that future versions of INN will no longer support XREPLIC. sions,
this header was generated locally and stripped off on outgoing
feeds.)
It is likely that future versions of INN will no longer support
XREPLIC.
1.4.1. Responses 1.4.2. Responses
235 article transferred ok 235 article transferred ok
335 send article to be transferred. End with <CR-LF>.<CR-LF> 335 send article to be transferred. End with <CR-LF>.<CR-LF>
435 article not wanted - do not send it 435 article not wanted - do not send it
436 transfer failed - try again later 436 transfer failed - try again later
437 article rejected - do not try again 437 article rejected - do not try again
2. Newsreader Extensions 2. Newsreader Extensions
Newsreader extensions are those which are primarily used by newsreading Newsreader extensions are those which are primarily used by
clients. Following are the descriptions of each newsreader extension newsreading clients. Following are the descriptions of each
commands and the responses which will be returned by those commands. newsreader extension commands and the responses which will
be returned by those commands.
Each command is shown in upper case for clarity, although case is Each command is shown in upper case for clarity, although
ignored in the interpretation of commands by the NNTP server. Any case is ignored in the interpretation of commands by the
parameters are shown in lower case. A parameter shown in [square brack- NNTP server. Any parameters are shown in lower case. A
ets] is optional. For example, [GMT] indicates that the triglyph GMT parameter shown in [square brackets] is optional. For
may present or omitted. A parameter that may be repeated is followed by example, [GMT] indicates that the triglyph GMT may present
an ellipsis. Mutually exclusive parameters are separated by a vertical or omitted. A parameter that may be repeated is followed
bar (|) character. For example, ggg|<message-id> indicates that a group by an ellipsis. Mutually exclusive parameters are separated
name or a <message-id> may be specified, but not both. Some parameters, by a vertical bar (|) character. For example, ggg|<message-id>
notably <message-id>, is case specific. See RFC 1036 for these details. indicates that a group name or a <message-id> may be
specified, but not both. Some parameters, notably <message-id>,
is case specific. See RFC 1036 for these details.
Also, certain commands make use of a pattern for selection of multiple Also, certain commands make use of a pattern for selection
news groups. The pattern in all cases is based on the wildmat[4] format of multiple news groups. The pattern in all cases is based
introduced by Rich Salz in 1986. Arguments expected to be in wildmat on the wildmat[4] format introduced by Rich Salz in 1986.
format will be represented by the string wildmat. This format is dis- Arguments expected to be in wildmat format will be
cussed in detail in section 3.3 of this document. represented by the string wildmat. This format is discussed
in detail in section 3.3 of this document.
2.1. Extensions to the LIST command 2.1.1 Extensions to the LIST command
The original LIST command took no arguments in RFC977 and returned the The original LIST command took no arguments in RFC977 and
contents of the active file in a specific format. Since the original returned the contents of the active file in a specific
newsreaders made use of other information available in the news trans- format. Since the original newsreaders made use of other
port software in addition to the active file, extensions to the LIST information available in the news transport software in
command were created to make that information available to NNTP news- addition to the active file, extensions to the LIST command
readers. There may be other extensions to the LIST command that simply were created to make that information available to NNTP
return the contents of a file. This approach is suggested over the addi- newsreaders. There may be other extensions to the LIST command
tion of over verbs. For example, LIST MOTD could be used instead of that simply return the contents of a file. This approach is
adding XMOTD. suggested over the addition of over verbs. For example, LIST
MOTD could be used instead of adding XMOTD.
2.1.1. LIST ACTIVE 2.1.2 LIST ACTIVE
LIST ACTIVE [wildmat] LIST ACTIVE [wildmat]
LIST ACTIVE is exactly the same as the LIST command specified in RFC977. LIST ACTIVE is exactly the same as the LIST command specified in
The responses and the format should exactly match the LIST command with- RFC977. The responses and the format should exactly match the LIST
out arguments. If the optional matching parameter is specified, the command without arguments. If the optional matching parameter is
list is limited to only the groups that match the pattern. Specifying a specified, the list is limited to only the groups that match the
single group is usually very efficient for the server, and multiple pattern. Specifying a single group is usually very efficient for
groups may be specified by using wildmat patterns (described later in the server, and multiple groups may be specified by using wildmat
this document), not regular expressions. If nothing is matched an empty patterns (described later in this document), not regular
list is returned, not an error. This command first appeared in the UNIX expressions. If nothing is matched an empty list is returned,
reference version. not an error. This command first appeared in the UNIX reference
version.
2.1.2. LIST ACTIVE.TIMES 2.1.3 LIST ACTIVE.TIMES
LIST ACTIVE.TIMES LIST ACTIVE.TIMES
The active.times file is maintained by some news transports systems to The active.times file is maintained by some news transports
contain information about the when and who created a particular news systems to contain information about the when and who
group. The format of this file generally include three fields. The first created a particular news group. The format of this file
field is the name of the news group. The second is the time when this generally include three fields. The first field is the name
group was created on this news server measured in seconds since January of the news group. The second is the time when this group
1, 1970. The third is the email address of the entity that created the was created on this news server measured in seconds since
news group. When executed, the information is displayed following the January 1, 1970. The third is the email address of the
215 response. When display is completed, the server will send a period entity that created the news group. When executed, the
on a line by itself. If the information is not available, the server information is displayed following the 215 response. When
will return the 503 error response. This command first appeared in the display is completed, the server will send a period on a
UNIX reference version. line by itself. If the information is not available, the
server will return the 503 error response. This command
first appeared in the UNIX reference version.
2.1.2.1. Responses 2.1.3.1 Responses
215 information follows 215 information follows
503 program error, function not performed 503 program error, function not performed
2.1.3. LIST DISTRIBUTIONS 2.1.4 LIST DISTRIBUTIONS
LIST DISTRIBUTIONS LIST DISTRIBUTIONS
The distributions file is maintained by some news transport systems to The distributions file is maintained by some news transport
contain information about valid values for the Distribution: line in a systems to contain information about valid values for the
news article header and about what the values mean. Each line contains Distribution: line in a news article header and about what
two fields, the value and a short explanation on the meaning of the the values mean. Each line contains two fields, the value
value. When executed, the information is displayed following the 215 and a short explanation on the meaning of the value. When
response. When display is completed, the server will send a period on a executed, the information is displayed following the 215
line by itself. If the information is not available, the server will response. When display is completed, the server will send
return the 503 error response. This command first appeared in the UNIX a period on a line by itself. If the information is not
reference version. available, the server will return the 503 error response.
This command first appeared in the UNIX reference version.
2.1.3.1. Responses 2.1.4.1 Responses
215 information follows 215 information follows
503 program error, function not performed 503 program error, function not performed
2.1.4. LIST DISTRIB.PATS 2.1.5 LIST DISTRIB.PATS
LIST DISTRIB.PATS LIST DISTRIB.PATS
The distrib.pats file is maintained by some news transport systems to The distrib.pats file is maintained by some news transport
contain default values for the Distribution: line in a news article systems to contain default values for the Distribution:
header when posting to particular news groups. This information could be line in a news article header when posting to particular
used to provide a default value for the Distribution: line in the header news groups. This information could be used to provide a
when posting an article. The information returned involves three fields default value for the Distribution: line in the header when
separated by colons. The first column is a weight. The second is a posting an article. The information returned involves three
group name or a pattern that can be used to match a group name in the fields separated by colons. The first column is a weight.
wildmat format. The third is the value of the Distribution: line that The second is a group name or a pattern that can be used
should be used when the group name matches and the weight value is the to match a group name in the wildmat format. The third is
highest. All this processing is done by the news posting client and not the value of the Distribution: line that should be used
by the server itself. The server just provides this information to the when the group name matches and the weight value is the
client for it to use or ignore as it chooses. When executed, the infor- highest. All this processing is done by the news posting
mation is displayed following the 215 response. When display is com- client and not by the server itself. The server just provides
pleted, the server will send a period on a line by itself. If the infor- this information to the client for it to use or ignore as
mation is not available, the server will return the 503 error response. it chooses. When executed, the information is displayed
This command first appeared in INN. following the 215 response. When display is completed,
the server will send a period on a line by itself. If the
information is not available, the server will return the
503 error response. This command first appeared in INN.
2.1.4.1. Responses 2.1.5.1 Responses
215 information follows 215 information follows
503 program error, function not performed 503 program error, function not performed
2.1.5. LIST NEWSGROUPS 2.1.6 LIST NEWSGROUPS
LIST NEWSGROUPS [wildmat] LIST NEWSGROUPS [wildmat]
The newsgroups file is maintained by some news transport systems to con- The newsgroups file is maintained by some news transport
tain the name of each news group which is active on the server and a systems to contain the name of each news group which is
short description about the purpose of each news group. Each line in the active on the server and a short description about the
file contains two fields, the news group name and a short explanation of purpose of each news group. Each line in the file contains
the purpose of that news group. When executed, the information is dis- two fields, the news group name and a short explanation of
played following the 215 response. When display is completed, the server the purpose of that news group. When executed, the information
will send a period on a line by itself. If the information is not avail- is displayed following the 215 response. When display is
able, the server will return the 503 response. If the optional matching completed, the server will send a period on a line by
parameter is specified, the list is limited to only the groups that itself. If the information is not available, the server
match the pattern (no matching is done on the group descriptions). will return the 503 response. If the optional matching
Specifying a single group is usually very efficient for the server, and parameter is specified, the list is limited to only the groups
multiple groups may be specified by using wildmat patterns (similar to that match the pattern (no matching is done on the group
file globbing), not regular expressions. If nothing is matched an empty descriptions). Specifying a single group is usually very
list is returned, not an error. efficient for the server, and multiple groups may be specified
by using wildmat patterns (similar to file globbing),
not regular expressions. If nothing is matched an empty list
is returned, not an error.
When the optional parameter is specified, this command is equivalent to When the optional parameter is specified, this command is
the XGTITLE command, though the response code are different. equivalent to the XGTITLE command, though the response code
are different.
2.1.5.1. Responses 2.1.6.1 Responses
215 information follows 215 information follows
503 program error, function not performed 503 program error, function not performed
2.1.6. LIST OVERVIEW.FMT 2.1.7 LIST OVERVIEW.FMT
LIST OVERVIEW.FMT LIST OVERVIEW.FMT
The overview.fmt file is maintained by some news transport systems to The overview.fmt file is maintained by some news transport
contain the order in which header information is stored in the overview systems to contain the order in which header information
databases for each news group. When executed, news article header is stored in the overview databases for each news group.
fields are displayed one line at a time in the order in which they are When executed, news article header fields are displayed
stored in the overview database[5] following the 215 response. When one line at a time in the order in which they are stored
display is completed, the server will send a period on a line by itself. in the overview database[5] following the 215 response.
If the information is not available, the server will return the 503 When display is completed, the server will send a period
response. on a line by itself. If the information is not available,
the server will return the 503 response.
Please note that if the header has the word "full" (without quotes) Please note that if the header has the word "full" (without
after the colon, the header's name is prepended to its field in the out- quotes) after the colon, the header's name is prepended
put returned by the server. to its field in the output returned by the server.
Many newsreaders work better if Xref: is one of the optional fields. Many newsreaders work better if Xref: is one of the optional fields.
It is STRONGLY recommended that this command be implemented in any It is STRONGLY recommended that this command be implemented
server that implements the XOVER command. See section 2.8 for more in any server that implements the XOVER command. See section
details about the XOVER command. 2.8 for more details about the XOVER command.
2.1.6.1. Responses 2.1.7.1 Responses
215 information follows 215 information follows
503 program error, function not performed 503 program error, function not performed
2.1.7. LIST SUBSCRIPTIONS 2.1.8 LIST SUBSCRIPTIONS
LIST SUBSCRIPTIONS LIST SUBSCRIPTIONS
This command is used to get a default subscription list for new users of
this server. The order of groups is significant.
When this list is available, it is preceded by the 215 response and fol- This command is used to get a default subscription list for
lowed by a period on a line by itself. When this list is not available, new users of this server. The order of groups is significant.
the server returns a 503 response code.
2.1.7.1. Responses When this list is available, it is preceded by the 215
response and followed by a period on a line by itself. When
this list is not available, the server returns a 503 response
code.
215 information follows 2.1.8.1 Responses
503 program error, function not performed
2.2. LISTGROUP 215 information follows
503 program error, function not performed
LISTGROUP [ggg] 2.2 LISTGROUP
The LISTGROUP command is used to get a listing of all the article num- LISTGROUP [ggg]
bers in a particular news group.
The optional parameter ggg is the name of the news group to be selected The LISTGROUP command is used to get a listing of all the
(e.g. "news.software.b"). A list of valid news groups may be obtained article numbers in a particular news group.
from the LIST command. If no group is specified, the current group is
used as the default argument.
The successful selection response will be a list of the article numbers The optional parameter ggg is the name of the news group
in the group followed by a period on a line by itself. to be selected (e.g. "news.software.b"). A list of valid
news groups may be obtained from the LIST command. If no
group is specified, the current group is used as the default
argument.
When a valid group is selected by means of this command, the internally The successful selection response will be a list of the
maintained "current article pointer" is set to the first article in the article numbers in the group followed by a period on a line
group. If an invalid group is specified, the previously selected group by itself.
and article remain selected. If an empty news group is selected, the
"current article pointer" is in an indeterminate state and should not be
used.
Note that the name of the news group is not case-dependent. It must When a valid group is selected by means of this command,
otherwise match a news group obtained from the LIST command or an error the internally maintained "current article pointer" is set
will result. to the first article in the group. If an invalid group is
specified, the previously selected group and article remain
selected. If an empty news group is selected, the "current
article pointer" is in an indeterminate state and should
not be used.
2.2.1. Responses Note that the name of the news group is not case-dependent.
It must otherwise match a news group obtained from the LIST
command or an error will result.
211 list of article numbers follow 2.2.1 Responses
412 Not currently in newsgroup
502 no permission
2.3. MODE READER 211 list of article numbers follow
412 Not currently in newsgroup
502 no permission
MODE READER is used by the client to indicate to the server that it is a 2.3 MODE READER
news reading client. Some implementations make use of this information
to reconfigure themselves for better performance in responding to news
reader commands. This command can be contrasted with the SLAVE command
in RFC 977, which was not widely implemented. MODE READER was first
available in INN.
2.3.1. Responses MODE READER is used by the client to indicate to the server
that it is a news reading client. Some implementations make
use of this information to reconfigure themselves for better
performance in responding to news reader commands. This
command can be contrasted with the SLAVE command in RFC 977,
which was not widely implemented. MODE READER was first
available in INN.
200 Hello, you can post 2.3.1 Responses
201 Hello, you can't post
2.4. XGTITLE 200 Hello, you can post
201 Hello, you can't post
XGTITLE [wildmat] 2.4 XGTITLE
The XGTITLE command is used to retrieve news group descriptions for spe- XGTITLE [wildmat]
cific news groups.
This extension first appeared in ANU-NEWS, an NNTP implementation for The XGTITLE command is used to retrieve news group descriptions
DEC's VMS. The optional parameter is a pattern in wildmat format. When for specific news groups.
executed, a 282 response is given followed by lines that have two
fields, the news group name (which matches the pattern in the argument)
and a short explanation of the purpose of the news group. When no argu-
ment is specified, the default argument is the current group name. When
display is completed, the server sends a period on a line by itself.
Please note that this command and the LIST NEWSGROUP command provide the This extension first appeared in ANU-NEWS, an NNTP
same functionality with different response codes. implementation for DEC's VMS. The optional parameter is a
pattern in wildmat format. When executed, a 282 response
is given followed by lines that have two fields, the news
group name (which matches the pattern in the argument) and
a short explanation of the purpose of the news group. When
no argument is specified, the default argument is the
current group name. When display is completed, the server
sends a period on a line by itself.
Since this command provides the same functionality as LIST NEWSGROUP it Please note that this command and the LIST NEWSGROUP command
is suggested that this extension be deprecated and no longer be used in provide the same functionality with different response codes.
newsreading clients.
Note that there is a conflict in one of the response codes from XGTITLE Since this command provides the same functionality as LIST NEWSGROUP
and some of the authentication extensions. it is suggested that this extension be deprecated and no longer be
used in newsreading clients.
2.4.1. Responses Note that there is a conflict in one of the response codes from
XGTITLE and some of the authentication extensions.
481 Groups and descriptions unavailable 2.5.1 Responses
282 list of groups and descriptions follows
2.5. XHDR 481 Groups and descriptions unavailable
282 list of groups and descriptions follows
XHDR header [range|<message-id>] 2.6 XHDR
The XHDR command is used to retrieve specific headers from specific
articles.
The required parameter is the name of a header line (e.g. "subject") in XHDR header [range|<message-id>]
a news group article. See RFC-1036 for a list of valid header lines. The
optional range argument may be any of the following:
an article number The XHDR command is used to retrieve specific headers from
an article number followed by a dash to indicate all following specific articles.
an article number followed by a dash followed by another article
number
The optional message-id argument indicates a specific article. The range The required parameter is the name of a header line (e.g.
and message-id arguments are mutually exclusive. If no argument is spec- "subject") in a news group article. See RFC-1036 for a list
ified, then information from the current article is displayed. Success- of valid header lines. The optional range argument may be
ful responses start with a 221 response followed by a the matched head- any of the following:
ers from all matched messages. Each line containing matched headers an article number
returned by the server has an article number (or message ID, if a mes- an article number followed by a dash to indicate
sage ID was specified in the command), then one or more spaces, then the all following
value of the requested header in that article. Once the output is com-
plete, a period is sent on a line by itself. If the optional argument is
a message-id and no such article exists, the 430 error response is
returned. If a range is specified, a news group must have been selected
earlier, else a 412 error response is returned. If no articles are in
the range specified, a 420 error response is returned by the server. A
502 response will be returned if the client only has permission to
transfer articles.
Some implementations will return "(none)" followed by a period on a line an article number followed by a dash followed by
by itself if no headers match in any of the articles searched. Others another article number
return the 221 response code followed by a period on a line by itself.
The XHDR command has been available in the UNIX reference implementation The optional message-id argument indicates a specific
from its first release. However, until now, it has been documented only article. The range and message-id arguments are mutually
in the source for the server. exclusive. If no argument is specified, then information
from the current article is displayed. Successful responses
start with a 221 response followed by a the matched headers
from all matched messages. Each line containing matched
headers returned by the server has an article number (or
message ID, if a message ID was specified in the command),
then one or more spaces, then the value of the requested
header in that article. Once the output is complete, a period
is sent on a line by itself. If the optional argument is a
message-id and no such article exists, the 430 error response
is returned. If a range is specified, a news group must have
been selected earlier, else a 412 error response is returned.
If no articles are in the range specified, a 420 error
response is returned by the server. A 502 response will be
returned if the client only has permission to transfer
articles.
2.5.1. Responses Some implementations will return "(none)" followed by a
period on a line by itself if no headers match in any of the
articles searched. Others return the 221 response code
followed by a period on a line by itself.
221 Header follows The XHDR command has been available in the UNIX reference
412 No news group current selected implementation from its first release. However, until now,
420 No current article selected it has been documented only in the source for the server.
430 no such article
502 no permission
2.6. XINDEX 2.6.1 Responses
XINDEX ggg 221 Header follows
The XINDEX command is used to retrieve an index file in the format of 412 No news group current selected
originally created for use by the TIN[6] news reader. 420 No current article selected
430 no such article
502 no permission
The required parameter ggg is the name of the news group to be selected 2.7 XINDEX
(e.g. "news.software.b"). A list of valid news groups may be obtained
from the LIST command.
The successful selection response will return index file in the format XINDEX ggg
used by the TIN news reader followed by a period on a line by itself.
When a valid group is selected by means of this command, the internally The XINDEX command is used to retrieve an index file in
maintained "current article pointer" is set to the first article in the the format of originally created for use by the TIN[6] news
group. If an invalid group is specified, the previously selected group reader.
and article remain selected. If an empty news group is selected, the
"current article pointer" is in an indeterminate state and should not be
used.
Note that the name of the news group is not case-dependent. It must The required parameter ggg is the name of the news group
otherwise match a news group obtained from the LIST command or an error to be selected (e.g. "news.software.b"). A list of valid
will result. news groups may be obtained from the LIST command.
The format of the tin-style index file is discussed in the documentation The successful selection response will return index file
for the TIN newsreader. Since more recent versions of TIN support the in the format used by the TIN news reader followed by a
news overview (NOV) format, it is recommended that this extension become period on a line by itself.
historic and no longer be used in current servers or future implementa-
tions.
2.6.1. Responses When a valid group is selected by means of this command,
the internally maintained "current article pointer" is set
to the first article in the group. If an invalid group is
specified, the previously selected group and article remain
selected. If an empty news group is selected, the "current
article pointer" is in an indeterminate state and should
not be used.
218 tin-style index follows Note that the name of the news group is not case-dependent.
418 no tin-style index is available for this news group It must otherwise match a news group obtained from the LIST
command or an error will result.
2.7. XOVER The format of the tin-style index file is discussed in the
documentation for the TIN newsreader. Since more recent
versions of TIN support the news overview (NOV) format, it
is recommended that this extension become historic and no
longer be used in current servers or future implementations.
XOVER [range] 2.7.1 Responses
The XOVER command returns information from the overview database for the 218 tin-style index follows
article(s) specified. This command was originally suggested as part of 418 no tin-style index is available for this news group
the OVERVIEW work described in "The Design of a Common Newsgroup
Overview Database for Newsreaders" by Geoff Collyer. This document is
distributed in the Cnews distribution.
The optional range argument may be any of the following: 2.8 XOVER
an article number XOVER [range]
an article number followed by a dash to indicate all following
an article number followed by a dash followed by another article
number
If no argument is specified, then information from the current article The XOVER command returns information from the overview
is displayed. Successful responses start with a 224 response followed by database for the article(s) specified. This command was
the overview information for all matched messages. Once the output is originally suggested as part of the OVERVIEW work described
complete, a period is sent on a line by itself. If no argument is speci- in "The Design of a Common Newsgroup Overview Database for
fied, the information for the current article is returned. A news group Newsreaders" by Geoff Collyer. This document is distributed
must have been selected earlier, else a 412 error response is returned. in the Cnews distribution.
If no articles are in the range specified, a 420 error response is
returned by the server. A 502 response will be returned if the client
only has permission to transfer articles.
Each line of output will be formatted with the article number, followed The optional range argument may be any of the following:
by each of the headers in the overview database or the article itself an article number
(when the data is not available in the overview database) for that arti- an article number followed by a dash to indicate
cle separated by a tab character. The sequence of fields must be in all following
this order: subject, author, date, message-id, references, byte count, an article number followed by a dash followed by
and line count. Other optional fields may follow line count. Other another article number
optional fields may follow line count. These fields are specified by
examining the response to the LIST OVERVIEW.FMT command. Where no data
exists, a null field must be provided (i.e. the output will have two tab
characters adjacent to each other). Servers should not output fields for
articles that have been removed since the XOVER database was created.
The LIST OVERVIEW.FMT command should be implemented if XOVER is imple- If no argument is specified, then information from the
mented. A client can use LIST OVERVIEW.FMT to determine what optional current article is displayed. Successful responses start
fields and in which order all fields will be supplied by the XOVER com- with a 224 response followed by the overview information
mand. See Section 2.1.7 for more details about the LIST OVERVIEW.FMT for all matched messages. Once the output is complete, a
command. period is sent on a line by itself. If no argument is
specified, the information for the current article is
returned. A news group must have been selected earlier,
else a 412 error response is returned. If no articles are
in the range specified, a 420 error response is returned
by the server. A 502 response will be returned if the
client only has permission to transfer articles.
Note that any tab and end-of-line characters in any header data that is Each line of output will be formatted with the article number,
returned will be converted to a space character. followed by each of the headers in the overview database or the
article itself (when the data is not available in the overview
database) for that article separated by a tab character. The
sequence of fields must be in this order: subject, author,
date, message-id, references, byte count, and line count. Other
optional fields may follow line count. Other optional fields may
follow line count. These fields are specified by examining the
response to the LIST OVERVIEW.FMT command. Where no data exists,
a null field must be provided (i.e. the output will have two tab
characters adjacent to each other). Servers should not output
fields for articles that have been removed since the XOVER database
was created.
2.7.1. Responses The LIST OVERVIEW.FMT command should be implemented if XOVER
is implemented. A client can use LIST OVERVIEW.FMT to determine
what optional fields and in which order all fields will be
supplied by the XOVER command. See Section 2.1.7 for more
details about the LIST OVERVIEW.FMT command.
224 Overview information follows Note that any tab and end-of-line characters in any header
412 No news group current selected data that is returned will be converted to a space character.
420 No article(s) selected
502 no permission
2.8. XPAT 2.8.1 Responses
XPAT header range|<message-id> pat [pat...] 224 Overview information follows
412 No news group current selected
420 No article(s) selected
502 no permission
The XPAT command is used to retrieve specific headers from specific 2.9 XPAT
articles, based on pattern matching on the contents of the header. This
command was first available in INN.
The required header parameter is the name of a header line (e.g. "sub- XPAT header range|<message-id> pat [pat...]
ject") in a news group article. See RFC-1036 for a list of valid header
lines. The required range argument may be any of the following:
an article number The XPAT command is used to retrieve specific headers from
an article number followed by a dash to indicate all following specific articles, based on pattern matching on the contents of
an article number followed by a dash followed by another article the header. This command was first available in INN.
number
The required message-id argument indicates a specific article. The range The required header parameter is the name of a header line (e.g.
and message-id arguments are mutually exclusive. At least one pattern in "subject") in a news group article. See RFC-1036 for a list
wildmat must be specified as well. If there are additional arguments the of valid header lines. The required range argument may be
are joined together separated by a single space to form one complete any of the following:
pattern. Successful responses start with a 221 response followed by a an article number
the headers from all messages in which the pattern matched the contents an article number followed by a dash to indicate
of the specified header line. This includes an empty list. Once the out- all following
put is complete, a period is sent on a line by itself. If the optional an article number followed by a dash followed by
argument is a message-id and no such article exists, the 430 error another article number
response is returned. A 502 response will be returned if the client only
has permission to transfer articles.
2.8.1. Responses The required message-id argument indicates a specific
article. The range and message-id arguments are mutually
exclusive. At least one pattern in wildmat must be specified
as well. If there are additional arguments the are joined
together separated by a single space to form one complete
pattern. Successful responses start with a 221 response
followed by a the headers from all messages in which the
pattern matched the contents of the specified header line. This
includes an empty list. Once the output is complete, a period
is sent on a line by itself. If the optional argument is a
message-id and no such article exists, the 430 error response
is returned. A 502 response will be returned if the client only
has permission to transfer articles.
221 Header follows 2.9.1 Responses
430 no such article
502 no permission
2.9. The XPATH command 221 Header follows
430 no such article
502 no permission
XPATH <message-id> 2.10 The XPATH command
The XPATH command is used to determine the filenames in which an article XPATH <message-id>
is filed. It first appeared in INN.
The required parameter message-id is the message id of an article as The XPATH command is used to determine the filenames in
shown in that article's message-id header. According to RFC 1036[3], all which an article is filed. It first appeared in INN.
message ids for all articles within the netnews environment are unique,
but articles may be crossposted to multiple groups. The response to an
XPATH command will include a listing of all filenames in which an arti-
cle is stored separated by spaces or a response indicating that no arti-
cle with the specified message-id exists. The returned data is only use-
ful if the news client knows the implementation details of the server.
Because of this, it is recommended that client avoid using this command.
2.9.1. Responses The required parameter message-id is the message id of an
article as shown in that article's message-id header. According to
RFC 1036[3], all message ids for all articles within the
netnews environment are unique, but articles may be
crossposted to multiple groups. The response to an XPATH
command will include a listing of all filenames in which
an article is stored separated by spaces or a response
indicating that no article with the specified message-id
exists. The returned data is only useful if the news client
knows the implementation details of the server. Because of
this, it is recommended that client avoid using this command.
223 path1[ path2 ...] 2.10.1 Responses
430 no such article on server
2.10. The XROVER command 223 path1[ path2 ...]
430 no such article on server
XROVER [range] 2.11 The XROVER command
The XROVER command returns reference information from the overview XROVER [range]
database for the article(s) specified. This command first appeared in
the Unix reference implementation.
The optional range argument may be any of the following: The XROVER command returns reference information from the
overview database for the article(s) specified. This command
first appeared in the Unix reference implementation.
an article number The optional range argument may be any of the following:
an article number followed by a dash to indicate all following an article number
an article number followed by a dash followed by another article an article number followed by a dash to indicate
number all following
an article number followed by a dash followed by
another article number
Successful responses start with a 224 response followed by the contents Successful responses start with a 224 response followed by
of reference information for all matched messages. Once the output is the contents of reference information for all matched messages. Once
complete, a period is sent on a line by itself. If no argument is speci- the output is complete, a period is sent on a line by
fied, the information for the current article is returned. A news group itself. If no argument is specified, the information for
must have been selected earlier, else a 412 error response is returned. the current article is returned. A news group must have
If no articles are in the range specified, a 420 error response is been selected earlier, else a 412 error response is returned.
returned by the server. A 502 response will be returned if the client If no articles are in the range specified, a 420 error
only has permission to transfer articles. response is returned by the server. A 502 response will be
returned if the client only has permission to transfer
articles.
The output will be formatted with the article number, followed by the The output will be formatted with the article number,
contents of the References: line for that article, but does not contain followed by the contents of the References: line for that article,
the field name itself. but does not contain the field name itself.
This command provides the same basic functionality as using the XHDR This command provides the same basic functionality as using
command and "references" as the header argument. the XHDR command and "references" as the header argument.
2.10.1. Responses 2.11.1 Responses
224 Overview information follows 224 Overview information follows
412 No news group current selected 412 No news group current selected
420 No article(s) selected 420 No article(s) selected
502 no permission 502 no permission
2.11. XTHREAD 2.12 XTHREAD
XTHREAD [DBINIT|THREAD] XTHREAD [DBINIT|THREAD]
The XTHREAD command is used to retrieve threading information in format The XTHREAD command is used to retrieve threading information
of originally created for use by the TRN[7] news reader. in format of originally created for use by the TRN[6] news
reader.
The command XTHREAD DBINIT may be issued prior to entering any groups to The command XTHREAD DBINIT may be issued prior to entering
see if a thread database exists. If it does, the database's byte order any groups to see if a thread database exists. If it does,
and version number are returned as binary data. the database's byte order and version number are returned
as binary data.
If no parameter is given, XTHREAD THREAD is assumed. If no parameter is given, XTHREAD THREAD is assumed.
To use XTHREAD THREAD, a news group must have been selected earlier, To use XTHREAD THREAD, a news group must have been selected
else a 412 error response is returned. earlier, else a 412 error response is returned.
A 502 response will be returned if the client only has permission to A 502 response will be returned if the client only has
transfer articles. A 503 response is returned if the threading files are permission to transfer articles. A 503 response is returned
not available. if the threading files are not available.
The format of the trn-style thread format is discussed in the documenta- The format of the trn-style thread format is discussed in
tion for the TRN newsreader. Since more recent versions of TRN support the documentation for the TRN newsreader. Since more recent
the news overview (NOV) format, it is recommended that this extension versions of TRN support the news overview (NOV) format, it
become historic and no longer be used in current servers or future is recommended that this extension become historic and no
implementations. longer be used in current servers or future implementations.
2.11.1. Responses 2.12.1 Responses
288 Binary data to follow 288 Binary data to follow
412 No newsgroup current selected 412 No newsgroup current selected
502 No permission 502 No permission
503 program error, function not performed 503 program error, function not performed
3. Other Extensions 3. Other Extensions
3.1. AUTHINFO 3.1 AUTHINFO
AUTHINFO is used to inform a server about the identity of a user of the AUTHINFO is used to inform a server about the identity of
server. In all cases, clients must provide this information when a user of the server. In all cases, clients must provide
requested by the server. Servers are not required to accept authentica- this information when requested by the server. Servers are
tion information that is volunteered by the client. Clients must accom- not required to accept authentication information that is
modate servers that reject any authentication information volunteered by volunteered by the client. Clients must accommodate servers that
the client. reject any authentication information volunteered by the client.
There are three forms of AUTHINFO in use. The original version, an NNTP There are three forms of AUTHINFO in use. The original version,
v2 revision called AUTHINFO SIMPLE and a more recent version which is an NNTP v2 revision called AUTHINFO SIMPLE and a more recent
called AUTHINFO GENERIC. version which is called AUTHINFO GENERIC.
3.1.1. Original AUTHINFO 3.1.1 Original AUTHINFO
AUTHINFO USER username AUTHINFO USER username
AUTHINFO PASS password AUTHINFO PASS password
The original AUTHINFO is used to identify a specific entity to the The original AUTHINFO is used to identify a specific entity
server using a simple username/password combination. It first appeared to the server using a simple username/password combination.
in the UNIX reference implementation. It first appeared in the UNIX reference implementation.
When authorization is required, the server will send a 480 response When authorization is required, the server will send a 480
requesting authorization from the client. The client must enter AUTHINFO response requesting authorization from the client. The
USER followed by the username. Once sent, the server will cache the client must enter AUTHINFO USER followed by the username.
username and may send a 381 response requesting the password associated Once sent, the server will cache the username and may send
with that username. Should the server request a password using the 381 a 381 response requesting the password associated with that
respose, the client must enter AUTHINFO PASS followed by a password and username. Should the server request a password using the 381
the server will then check the authentication database to see if the respose, the client must enter AUTHINFO PASS followed by
username/password combination is valid. If the combination is valid or a password and the server will then check the authentication
if no password is required, the server will return a 281 response. The database to see if the username/password combination is valid.
client should then retry the original command to which the server If the combination is valid or if no password is required,
responded with the 480 response. The command should then be processed by the server will return a 281 response. The client should then
the server normally. If the combination is not valid, the server will retry the original command to which the server responded with
return a 502 response. the 480 response. The command should then be processed by
the server normally. If the combination is not valid, the server
will return a 502 response.
Clients must provide authentication when requested by the server. It is Clients must provide authentication when requested by the server.
possible that some implementations will accept authentication informa- It is possible that some implementations will accept authentication
tion at the beginning of a session, but this was not the original intent information at the beginning of a session, but this was not the
of the specification. If a client attempts to reauthenticate, the server original intent of the specification. If a client attempts to
may return 482 response indicating that the new authentication data is reauthenticate, the server may return 482 response indicating
rejected by the server. The 482 code will also be returned when the that the new authentication data is rejected by the server.
AUTHINFO commands are not entered in the correct sequence (like two The 482 code will also be returned when the AUTHINFO commands
AUTHINFO USERs in a row, or AUTHINFO PASS preceding AUTHINFO USER). are not entered in the correct sequence (like two AUTHINFO
USERs in a row, or AUTHINFO PASS preceding AUTHINFO USER).
All information is passed in cleartext. All information is passed in cleartext.
When authentication succeeds, the server will create an email address When authentication succeeds, the server will create an email
for the client from the user name supplied in the AUTHINFO USER command address for the client from the user name supplied in the
and the hostname generated by a reverse lookup on the IP address of the AUTHINFO USER command and the hostname generated by a reverse
client. If the reverse lookup fails, the IP address, represented in dot- lookup on the IP address of the client. If the reverse lookup
ted-quad format, will be used. Once authenticated, the server shall gen- fails, the IP address, represented in dotted-quad format, will
erate a Sender: line using the email address provided by authentication be used. Once authenticated, the server shall generate a Sender:
if it does not match the client-supplied From: line. Additionally, the line using the email address provided by authentication if it
server should log the event, including the email address This will pro- does not match the client-supplied From: line. Additionally,
vide a means by which subsequent statistics generation can associate the server should log the event, including the email address
newsgroup references with unique entities - not necessarily by name. This will provide a means by which subsequent statistics generation
can associate newsgroup references with unique entities - not
necessarily by name.
3.1.1.1. Responses 3.1.1.1 Responses
281 Authentication accepted 281 Authentication accepted
381 More authentication information required 381 More authentication information required
480 Authentication required 480 Authentication required
482 Authentication rejected 482 Authentication rejected
502 No permission 502 No permission
3.1.2. AUTHINFO SIMPLE 3.1.2 AUTHINFO SIMPLE
AUTHINFO SIMPLE AUTHINFO SIMPLE
user password user password
This version of AUTHINFO was part of a proposed NNTP V2 specification,
which was started in 1991 but never completed, and is implemented in
some servers and clients. It is a refinement of the original AUTHINFO
and provides the same basic functionality, but the sequence of commands
is much simpler.
When authorization is required, the server sends a 450 response request- This version of AUTHINFO was part of a proposed NNTP V2
ing authorization from the client. The client must enter AUTHINFO SIM- specification, which was started in 1991 but never completed,
PLE. If the server will accept this form of authentication, the server and is implemented in some servers and clients. It is a
responds with a 350 response. The client must then send the username refinement of the original AUTHINFO and provides the same
followed by one or more space characters followed by the password. If basic functionality, but the sequence of commands is much
accepted, the server returns a 250 response and the client should then simpler.
retry the original command to which the server responded with the 450
response. The command should then be processed by the server normally.
If the combination is not valid, the server will return a 452 response.
Note that the response codes used here were part of the proposed NNTP V2 When authorization is required, the server sends a 450 response
specification and are violations of RFC 977. It is recommended that requesting authorization from the client. The client must enter
this command not be implemented, but use either or both of the other AUTHINFO SIMPLE. If the server will accept this form of
forms of AUTHINFO if such functionality if required. authentication, the server responds with a 350 response. The
client must then send the username followed by one or more
space characters followed by the password. If accepted, the
server returns a 250 response and the client should then
retry the original command to which the server responded
with the 450 response. The command should then be processed
by the server normally. If the combination is not valid,
the server will return a 452 response.
3.1.2.1. Responses Note that the response codes used here were part of the
proposed NNTP V2 specification and are violations of RFC 977.
It is recommended that this command not be implemented, but
use either or both of the other forms of AUTHINFO if such
functionality if required.
250 Authorization accepted 3.1.2.1 Responses
350 Continue with authorization sequence
450 Authorization required for this command
452 Authorization rejected
3.1.3. AUTHINFO GENERIC 250 Authorization accepted
350 Continue with authorization sequence
450 Authorization required for this command
452 Authorization rejected
AUTHINFO GENERIC authenticator arguments... 3.1.3 AUTHINFO GENERIC
AUTHINFO GENERIC is used to identify a specific entity to the server AUTHINFO GENERIC authenticator arguments...
using arbitrary authentication or identification protocols. The desired
protocol is indicated by the authenticator parameter, and any number of
parameters can be passed to the authenticator.
When authorization is required, the server will send a 480 response AUTHINFO GENERIC is used to identify a specific entity to the
requesting authorization from the client. The client should enter server using arbitrary authentication or identification
AUTHINFO GENERIC followed by the authenticator name, and the arguments protocols. The desired protocol is indicated by the
if any. The authenticator and arguments must not contain the sequence authenticator parameter, and any number of parameters can
"..". be passed to the authenticator.
The server will attempt to engage the server end authenticator, simi- When authorization is required, the server will send a 480
larly, the client should engage the client end authenticator. The response requesting authorization from the client. The
server end authenticator will then initiate authentication using the client should enter AUTHINFO GENERIC followed by the
NNTP sockets (if appropriate for that authentication protocol), using authenticator name, and the arguments if any. The authenticator
the protocol specified by the authenticator name. These authentication and arguments must not contain the sequence "..".
protocols are not included in this document, but are similar in struc-
ture to those referenced in RFC 1731[8] for the IMAP-4 protocol.
If the server returns 501, this means that the authenticator invocation The server will attempt to engage the server end authenticator,
was syntactically incorrect, or that AUTHINFO GENERIC is not supported. similarly, the client should engage the client end authenticator.
The client should retry using the AUTHINFO USER command. The server end authenticator will then initiate authentication
using the NNTP sockets (if appropriate for that authentication
protocol), using the protocol specified by the authenticator name.
These authentication protocols are not included in this document,
but are similar in structure to those referenced in RFC 1731[8]
for the IMAP-4 protocol.
If the requested authenticator capability is not found, the server If the server returns 501, this means that the authenticator
returns the 503 response code. invocation was syntactically incorrect, or that AUTHINFO
GENERIC is not supported. The client should retry using the
AUTHINFO USER command.
If there is some other unspecified server program error, the server If the requested authenticator capability is not found, the
returns the 500 response code. server returns the 503 response code.
The authenticators converse using their protocol until complete. If the If there is some other unspecified server program error, the
authentication succeeds, the server authenticator will terminate with a server returns the 500 response code.
281, and the client can continue by reissuing the command that prompted
the 380. If the authentication fails, the server will respond with a
502.
The client must provide authentication when requested by the server. The authenticators converse using their protocol until complete.
The server may request authentication at any time. Servers may request If the authentication succeeds, the server authenticator will
authentication more than once during a single session. terminate with a 281, and the client can continue by reissuing
the command that prompted the 380. If the authentication fails,
the server will respond with a 502.
When the server authenticator completes, it provides to the server (by a The client must provide authentication when requested by the
mechanism herein undefined) the email address of the user, and poten- server. The server may request authentication at any
tially what the user is allowed to access. Once authenticated, the time. Servers may request authentication more than once
server shall generate a Sender: line using the email address provided by during a single session.
the authenticator if it does not match the user-supplied From: line.
Additionally, the server should log the event, including the user's
authenticated email address (if available). This will provide a means by
which subsequent statistics generation can associate newsgroup refer-
ences with unique entities - not necessarily by name.
Some implementations make it possible to obtain a list of authentication When the server authenticator completes, it provides to the
procedures available by sending the server AUTHINFO GENERIC with no server (by a mechanism herein undefined) the email address
arguments. The server then returns a list of supported mechanisms fol- of the user, and potentially what the user is allowed to
lowed by a period on a line by itself. access. Once authenticated, the server shall generate a Sender:
line using the email address provided by the authenticator
if it does not match the user-supplied From: line. Additionally,
the server should log the event, including the user's
authenticated email address (if available). This will provide
a means by which subsequent statistics generation can
associate newsgroup references with unique entities - not
necessarily by name.
3.1.3.1. Responses Some implementations make it possible to obtain a list of
authentication procedures available by sending the server
AUTHINFO GENERIC with no arguments. The server then returns
a list of supported mechanisms followed by a period on a line
by itself.
281 Authentication succeeded 3.1.3.1 Responses
480 Authentication required
500 Command not understood
501 Command not supported
502 No permission
503 Program error, function not performed
nnn authenticator-specific protocol.
3.2. DATE 281 Authentication succeeded
480 Authentication required
500 Command not understood
501 Command not supported
502 No permission
503 Program error, function not performed
nnn authenticator-specific protocol.
DATE 3.2 DATE
The first NNTP working group discussed and proposed a syntax for this DATE
command to help clients find out the current time from the server's per-
spective. At the time this command was discussed (1991-1992), the Net-
work Time Protocol [9] (NTP) was not yet in wide use and there was also
some concern that small systems may not be able to make effective use of
NTP.
This command returns a one-line response code of 111 followed by the The first NNTP working group discussed and proposed a syntax for
GMT date and time on the server in the form YYYYMMDDhhmmss. this
command to help
clients find out the current time from the server's perspective.
At the time this command was discussed (1991-1992), the
Network Time Protocol [9] (NTP) was not yet in wide use and there
was also some concern that small systems may not be able to make
effective use of NTP.
3.2.1. Responses This command returns a one-line response code of 111 followed
by the GMT date and time on the server in the form
YYYYMMDDhhmmss.
111 YYYYMMDDhhmmss 3.2.1 Responses
3.3. The WILDMAT Format 111 YYYYMMDDhhmmss
The WILDMAT format was first developed by Rich Salz based on the format 3.3 The WILDMAT format
used in the UNIX "find" command to articulate file names. It was devel-
oped to provide a uniform mechanism for matching patterns in the same
manner that the UNIX shell matches filenames. Patterns are implicitly
anchored at the beginning and end of each string when testing for a
match. There are five pattern matching operations other than a strict
one-to-one match between the pattern and the source to be checked for a
match. The first is an asterisk (*) to match any sequence of zero or
more characters. The second is a question mark (?) to match any single
character. The third specifies a specific set of characters. The set is
specified as a list of characters, or as a range of characters where the
beginning and end of the range are separated by a minus (or dash) char-
acter, or as any combination of lists and ranges. The dash can also be
included in the set as a character it if is the beginning or end of the
set. This set is enclosed in square brackets. The close square bracket
(]) may be used in a set if it is the first character in the set. The
fourth operation is the same as the logical not of the third operation
and is specified the same way as the third with the addition of a caret
character (^) at the beginning of the test string just inside the open
square bracket. The final operation uses the backslash character to
invalidate the special meaning of the a open square bracket ([), the
asterisk, backslash or the question mark. Two backslashes in sequence
will result in the evaluation of the backslash as a character with no
special meaning.
3.3.1. Examples The WILDMAT format was first developed by Rich Salz based on
the format used in the UNIX "find" command to articulate
file names. It was developed to provide a uniform mechanism
for matching patterns in the same manner that the UNIX shell
matches filenames. Patterns are implicitly anchored at the
beginning and end of each string when testing for a match.
There are five pattern matching operations other than a strict
one-to-one match between the pattern and the source to be
checked for a match. The first is an asterisk (*) to match
any sequence of zero or more characters. The second is a
question mark (?) to match any single character. The third
specifies a specific set of characters. The set is specified as
a list of characters, or as a range of characters where the
beginning and end of the range are separated by a minus (or dash)
character, or as any combination of lists and ranges. The dash can
also be included in the set as a character it if is the beginning
or end of the set. This set is enclosed in square brackets. The
close square bracket (]) may be used in a set if it is the first
character in the set. The fourth operation is the same as the
logical not of the third operation and is specified the same
way as the third with the addition of a caret character (^) at
the beginning of the test string just inside the open square
bracket. The final operation uses the backslash character to
invalidate the special meaning of the a open square bracket ([),
the asterisk, backslash or the question mark. Two backslashes in
sequence will result in the evaluation of the backslash as a
character with no special meaning.
a. [^]-] -- matches any single character other than a close square 3.3.1 Examples
bracket or a minus sign/dash.
b. *bdc -- matches any string that ends with the string "bdc" a. [^]-] -- matches any single character other than a close square
including the string "bdc" (without quotes). bracket or a minus sign/dash.
c. [0-9a-zA-Z] -- matches any single printable alphanumeric ASCII b. *bdc -- matches any string that ends with the string "bdc"
character. including the string "bdc" (without quotes).
d. a??d -- matches any four character string which begins c. [0-9a-zA-Z] -- matches any single printable alphanumeric ASCII
with a and ends with d. character.
3.4. Additional Headers d. a??d -- matches any four character string which begins
with a and ends with d.
Many NNTP implementations add headers to Usenet articles when then are 3.4 Additional Headers
POSTed via NNTP. These headers are discussed in this section. None of
these headers conflict with those specified in RFC 1036 and should be
passed unchanged by Usenet transports conforming to RFC 1036.
3.4.1. NNTP-Posting-Host Many NNTP implementations add headers to Usenet articles when then
are POSTed via NNTP. These headers are discussed in this section.
This line is added to the header of a posted article by the server. The None of these headers conflict with those specified in RFC 1036
contents of the header is either the IP address or the fully qualified and should be passed unchanged by Usenet transports conforming
domain name of the client host posting the article. The fully qualified to RFC 1036.
domain name should be determined by doing a reverse lookup in the DNS on
the IP address of the client. If the client article contains this line,
it is removed by the server before acceptance of the article by the
Usenet transport system.
This header provides some idea of the actual host posting the article as 3.4.1 NNTP-Posting-Host
opposed to information in the Sender or From lines that may be present
in the article. This is not a fool-proof methodology since reverse
lookups in the DNS are vulnerable to certain types of spoofing, but such
discussions are outside the scope of this document.
3.4.2. X-Newsreader and others This line is added to the header of a posted article by the
server. The contents of the header is either the IP address
or the fully qualified domain name of the client host posting
the article. The fully qualified domain name should be
determined by doing a reverse lookup in the DNS on the IP
address of the client. If the client article contains this line,
it is removed by the server before acceptance of the article
by the Usenet transport system.
There are other lines that are added by clients as well. Most of these This header provides some idea of the actual host posting
indicate the type of newsreader software that is posting the article. the article as opposed to information in the Sender or From
lines that may be present in the article. This is not a
fool-proof methodology since reverse lookups in the DNS
are vulnerable to certain types of spoofing, but such
discussions are outside the scope of this document.
4. Common Implementation Issues 3.4.2 X-Newsreader and others
Many NNTP implementations do not follow the specifications in RFC 977. There are other lines that are added by clients as well.
In this section, some common implementation issues are summarized. Most of these indicate the type of newsreader software
that is posting the article.
4.1. The Response to the LIST command 4.0 Common Implementation Issues
RFC 977 says that the fourth field of the "list of valid newsgroups Many NNTP implementations do not follow the specifications in
associated information" returned must be "either 'y' or 'n' indicating RFC 977. In this section, some common implementation issues are
whether posting to this newsgroup is allowed ('y') or prohibited ('n'). summarized.
Most implementations simply output the exact contents of the transport
system's active newsgroup list. For more implementations, the fourth
field usually has more values that 'y' or 'n'.
4.2. The Required Headers in an Article and the POST command 4.1 The Response to the LIST command
RFC 977 notes in section 3.10.1 that articles presented "should include RFC 977 says that the fourth field of the "list of valid newsgroups
all required header lines." In fact, modern implementations only require associated information" returned must be "either 'y' or 'n'
From, Subject, and Newsgroups header lines and will supply the rest; indicating whether posting to this newsgroup is allowed ('y') or
further, many implementers believe that it is best for clients to gener- prohibited ('n'). Most implementations simply output the exact
ate as few headers as possible, since clients often do not format other contents of the transport system's active newsgroup list. For more
headers correctly. implementations, the fourth field usually has more values that 'y'
or 'n'.
This implementation behavior is consistent with both Bnews and Cnews 4.2 The Required Headers in an Article and the POST command
which would supply missing headers for articles directly submitted to RFC 977 notes in section 3.10.1 that articles presented "should
them. include all required header lines." In fact, modern implementations
only require From, Subject, and Newsgroups header lines and will
supply the rest; further, many implementers believe that it is
best for clients to generate as few headers as possible, since
clients often do not format other headers correctly.
4.3. Article Numbering This implementation behavior is consistent with both Bnews and Cnews
which would supply missing headers for articles directly submitted
to them.
RFC977 does not directly address the rules concerning articles number, 4.3 Article Numbering
but the current practice is simple. New articles have monotonically
increasing numbers within a group, and articles may disappear or be
reinstated at any time (and thus between any two commands). The low
water mark returned in a GROUP command is an absolute minimum (though
that article might not exist), but there could be articles above the
high water mark (that have appeared since the GROUP command was issued),
and so it should be treated as advisory only. Similarly, the results of
sequences of NEXT and LAST commands might not be consistent.
4.4. Availability of commands defined in RFC977 RFC977 does not directly address the rules concerning articles
number. However, the current practice is simple: article numbers
are monotonically increasing, articles may disappear, and therefore
the high and low water marks returned in a GROUP command should be
treated as maximum minima, and minimum maxima, respectively.
Some implementations permit administrators to disable commands defined 4.4 Availability of commands defined in RFC977
RFC977. Some implementations have some set of commands disabled by
default. This means that client implementations cannot depend on the
availability of the disabled set of commands. This increases the com-
plexity of the client and does not encourage implementors to optimize
the implementation of commands that don't perform well.
NEWNEWS is one of the commands frequently disabled by news server man- Some implementations permit administrators to disable commands
agers. defined RFC977. Some implementations have some set of commands
disabled by default. This means that client implementations cannot
depend on the availability of the disabled set of commands. This
increases the complexity of the client and does not encourage
implementors to optimize the implementation of commands that don't
perform well.
4.5. The Distribution header and NEWNEWS NEWNEWS is one of the commands frequently disabled.
In section 12.4 of RFC977, the optional distributions argument is 4.5 The Distribution header and NEWNEWS
described. This argument, according to RFC977, would limit the responses
to articles that were in newsgroups with prefixes that matched the
optional distributions argument.
Some implementations implement this by matching the Distributions header In section 12.4 of RFC977, the optional distributions argument is
in articles to the distribution argument. Others do the match against described. This argument, according to RFC977, would limit the
segments of the newsgroup's name. responses to articles that were in newsgroups with prefixes that
matched the optional distributions argument.
This variation is probably best explained by the evolution of the USENET Some implementations implement this by matching the Distributions
article format. At the time RFC977 was specified, the newsgroup name header in articles to the distribution argument. Others do the
defined how the group was distributed thoughout USENET. RFC1036 changed match against segments of the newsgroup's name.
this convention. So, those that are strictly implementing RFC977 would
match the newsgroup name prefix against the distribution arguement and
only display matches. Those that implement against the intent of the
command (as modified by the redefinition of the article format)would
match the Distributions header against the distribution argument and
only display those matches.
5. Further Work This variation is probably best explained by the evolution
of the USENET article format. At the time RFC977 was specified,
the newsgroup name defined how the group was distributed thoughout
USENET. RFC1036 changed this convention. So, those that are
strictly implementing RFC977 would match the newsgroup name prefix
against the distribution arguement and only display matches. Those
that implement against the intent of the command (as modified by
the redefinition of the article format)would match the Distributions
header against the distribution argument and only display those
matches.
With the continued use of NNTP on the Internet, there remains an inter- 5.0 Further Work
est in creating an optimized transport protocol for server-to-server
transfers and an optimized client protocol for client-to-server interac-
tions. There is also considerable interest is building better mechanisms
to provide audit information on which news groups are being read by
which users.
An IETF working group has been formed and it is the hope of this author With the continued use of NNTP on the Internet, there
that these issues will be addressed in that forum. remains an interest in creating an optimized transport
protocol for server-to-server transfers and an optimized
client protocol for client-to-server interactions. There
is also considerable interest is building better mechanisms
to provide audit information on which news groups are being
read by which users.
6. Security Considerations An IETF working group has been formed and it is the hope of
this author that these issues will be addressed in that forum.
The use of the AUTHINFO is optional. This command as documented has a 6.0 Security Considerations
number of security implications. In the original and simple forms, all
passwords are passed in plaintext and could be discovered by various
forms of network or system surveillance. The AUTHINFO GENERIC command
has the potential for the same problems if a mechanism is used that also
passes cleartext passwords. RFC 1731[8] discusses these issues in
greater detail.
7. References The use of the AUTHINFO is optional. This command as documented
has a number of security implications. In the original and simple
forms, all passwords are passed in plaintext and could be
discovered by various forms of network or system surveillance.
The AUTHINFO GENERIC command has the potential for the same
problems if a mechanism is used that also passes cleartext
passwords. RFC 1731[8] discusses these issues in greater detail.
[1] Kantor, B and P. Lapsley, "Network News Transfer Protocol", 7.0 References
RFC-977, U.C. San Diego and U.C. Berkeley, February, 1986.
[2] Limoncelli, Tom, "Read This Before You Write a Newsreader", [1] Kantor, B and P. Lapsley, "Network News Transfer Protocol",
http://mars.superlink.net/tal/writings/news-software-authors.html, RFC-977, U.C. San Diego and U.C. Berkeley, February, 1986.
May, 1995.
[3] Horton, M.R. and R. Adams, "Standard for interchange of USENET mes- [2] Limoncelli, Tom, "Read This Before You Write a Newsreader",
sages", RFC-1036, AT&T Bell Laboratories and Center for Seismic http://mars.superlink.net/tal/news-software-authors.html, June,
Studies, December, 1987. 1996.
[4] Salz, Rich, Manual Page for wildmat(3) from the INN 1.4 distribu- [3] Horton, M.R. and R. Adams, "Standard for interchange of USENET mes-
tion, UUNET Technologies, Revision 1.10, April, 1992. sages", RFC-1036, AT&T Bell Laboratories and Center for Seismic
Studies, December, 1987.
[5] Robertson, Rob, "FAQ: Overview database / NOV General Information", [4] Salz, Rich, Manual Page for wildmat(3) from the INN 1.4 distribu-
http://web.infoave.net/~anonymous/unix/FAQ-NOV, January, 1995. tion, UUNET Technologies, Revision 1.10, April, 1992.
[6] Lea, Iain, "FAQ about the TIN newsreader", http://nimbus.tem- [5] Robertson, Rob, "FAQ: Overview database / NOV General Information",
ple.edu/pds/tinfaq.html, May 1995. [More recent info about TIN is ftp://ftp.uu.net/networking/news/nntp/inn/faq-nov.Z, January, 1995.
at http://www.tin.org.]
[7] Kappesser, Peter, "[news.software.readers] trn newsreader FAQ", 2 [6] Lea, Ian, "FAQ about the TIN newsreader",
parts, http://www.faqs.org/faqs/usenet/software/trn- http://www.scn.de/~iain/tin/faq.html, April, 1995.
faq/part1/index.html and http://www.faqs.org/faqs/usenet/soft-
ware/trn-faq/part2/index.html February, 1995.
[8] Meyers, J, "IMAP4 Authentication Mechanisms", RFC-1731, Carnegie [7] Kappesser, Peter, "[news.software.readers] trn newsreader FAQ", 2
parts, ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/news/ soft-
ware/readers/%5Bnews.software.readers%5D_trn_newsreader_FAQ
%2C_part_1%3A_Basics and ftp://rtfm.mit.edu/pub/usenet-by-hierar-
chy/news/software/ readers/%5Bnews.software.readers%5D_trn_news-
reader_FAQ %2C_part_2%3A_Advanced, February, 1995.
[8] Meyers, J, "IMAP4 Authentication Mechanisms", RFC-1731, Carnegie
Mellon, December, 1994. Mellon, December, 1994.
[9] Mills, David L., "Network Time Protocol (Version 3), Specification, [9] Mills, David L., "Network Time Protocol (Version 3), Specification,
Implementation and Analysis", RFC-1305, University of Delaware, Implementation and Analysis", RFC-1305, University of Delaware,
March 1992. March 1992.
8. Notes 8.0 Notes
DEC is a registered trademark of Compaq Computer Corporation.
UNIX is a registered trademark of the Open Group.
VMS is a registered trademark of Compaq Computer Corporation.
9. Acknowledgments
The author gratefully acknowledges the comments and additional informa-
tion provided by the following individuals:
Wayne Davison <davison@clari.net>
Clive D.W. Feather <clive@demon.net>
Chris Lewis <clewis@bnr.ca>
Tom Limoncelli <tal@lucent.com>
Eric Schnoebelen <eric@egsner.cirr.com>
Rich Salz <rsalz@osf.org>
This work was precipitated by the work of various newsreader authors and
newsserver authors which includes those listed below:
Rick Adams -- Original author of the NNTP extensions to the RN
newsreader and last maintainer of Bnews
Stan Barber -- Original author of the NNTP extensions to the
newsreaders that are part of Bnews.
Geoff Collyer -- Original author of the OVERVIEW database proposal
and one of the original authors of CNEWS
Dan Curry -- Original author of the xvnews newsreader
Wayne Davison -- Author of the first threading extensions to the RN
newsreader (commonly called TRN).
Geoff Huston -- Original author of ANU NEWS
Phil Lapsey -- Original author of the UNIX reference implementa-
tion of NNTP
Iain Lea -- Original author of the TIN newsreader
Chris Lewis -- First known implementor of the AUTHINFO GENERIC
extension
Rich Salz -- Original author of INN
Henry Spencer -- One of the original authors of CNEWS
Kim Storm -- Original author of the NN newsreader
10. Author's Address
Stan Barber DEC is a registered trademark of Digital Equipment Corporation.
P.O. Box 300481 UNIX is a registered trademark of the X/Open Consortium.
Houston, Texas, 77230 VMS is a registered trademark of Digital Equipment Corporation.
Email: <sob@academ.com>
This document expires January 7, 1999 9.0 Acknowledgments
11. Copyright Statement The author gratefully acknowledges the comments and additional
information provided by the following individuals:
Wayne Davison <davison@armory.com>
Chris Lewis <clewis@bnr.ca>
Tom Limoncelli <tal@lucent.com>
Eric Schnoebelen <eric@egsner.cirr.com>
Rich Salz <rsalz@osf.org>
Copyright (C) The Internet Society (1998). All Rights Reserved. This work was precipitated by the work of various newsreader
authors and newsserver authors which includes those listed below:
Rick Adams -- Original author of the NNTP extensions to the RN
newsreader and last maintainer of Bnews
Stan Barber -- Original author of the NNTP extensions to the
newsreaders that are part of Bnews.
Geoff Collyer -- Original author of the OVERVIEW database proposal and
one of the original authors of CNEWS
Dan Curry -- Original author of the xvnews newsreader
Wayne Davision-- Author of the first threading extensions to the
RN newsreader (commonly called TRN).
Geoff Huston -- Original author of ANU NEWS
Phil Lapsey -- Original author of the UNIX reference
implementation
Ian Lea -- Maintainer of the TIN newsreader
Chris Lewis -- First known implementor of the AUTHINFO GENERIC
extension
Rich Salz -- Original author of INN
Henry Spencer -- One of the original authors of CNEWS
Kim Storm -- Original author of the NN newsreader
This document and translations of it may be copied and furnished to oth- 10.0 Author's Address
ers, and derivative works that comment on or otherwise explain it or
assist in its implmentation may be prepared, copied, published and dis-
tributed, in whole or in part, without restriction of any kind, provided
that the above copyright notice and this paragraph are included on all
such copies and derivative works. However, this document itself may not
be modified in any way, such as by removing the copyright notice or ref-
erences to the Internet Society or other Internet organizations, except
as needed for the purpose of developing Internet standards in which case
the procedures for copyrights defined in the Internet Standards process
must be followed, or as required to translate it into languages other
than English.
The limited permissions granted above are perpetual and will not be Stan Barber
revoked by the Internet Society or its successors or assigns. P.O. Box 300481
Houston, Texas, 77230
Email: <sob@academ.com>
This document and the information contained herein is provided on an "AS This document expires August 13, 1998.
IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK
FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FIT-
NESS FOR A PARTICULAR PURPOSE.
 End of changes. 264 change blocks. 
913 lines changed or deleted 985 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/