draft-ietf-usefor-article-05.txt   draft-ietf-usefor-article-06.txt 
INTERNET-DRAFT Charles H. Lindsey INTERNET-DRAFT Charles H. Lindsey
Usenet Format Working Group University of Manchester Usenet Format Working Group University of Manchester
July 2001 November 2001
News Article Format News Article Format
<draft-ietf-usefor-article-05.txt> <draft-ietf-usefor-article-06.txt>
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026. all provisions of Section 10 of RFC 2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 2, line 4 skipping to change at page 2, line 4
Backward compatibility has been a major goal of this endeavour, but Backward compatibility has been a major goal of this endeavour, but
where this standard and earlier documents or practices conflict, this where this standard and earlier documents or practices conflict, this
standard should be followed. In most such cases, current practice is standard should be followed. In most such cases, current practice is
already compatible with these changes. already compatible with these changes.
[The use of the words "this standard" within this document when [The use of the words "this standard" within this document when
referring to itself does not imply that this draft yet has pretensions referring to itself does not imply that this draft yet has pretensions
to be a standard, but rather indicates what will become the case if and to be a standard, but rather indicates what will become the case if and
when it is accepted as an RFC with the status of a proposed or draft when it is accepted as an RFC with the status of a proposed or draft
standard.] standard.]
News Article Format July 2001 News Article Format November 2001
[Remarks enclosed in square brackets and aligned with the left margin, [Remarks enclosed in square brackets and aligned with the left margin,
such as this one, are not part of this draft, but are editorial notes to such as this one, are not part of this draft, but are editorial notes to
explain matters amongst ourselves, or to point out alternatives, or to explain matters amongst ourselves, or to point out alternatives, or to
indicate work yet to be done.] indicate work yet to be done.]
[Please note that this Draft describes "Work in Progress". Much remains [Please note that this Draft describes "Work in Progress". Much remains
to be done, though the material included so far is unlikely to change in to be done, though the material included so far is unlikely to change in
any major way.] any major way.]
skipping to change at page 2, line 47 skipping to change at page 2, line 47
4.2.2.2. Inheritable Headers ............................... 18 4.2.2.2. Inheritable Headers ............................... 18
4.2.2.3. Variant Headers ................................... 18 4.2.2.3. Variant Headers ................................... 18
4.2.3. White Space and Continuations ......................... 19 4.2.3. White Space and Continuations ......................... 19
4.2.4. Comments .............................................. 20 4.2.4. Comments .............................................. 20
4.2.5. Undesirable Headers ................................... 20 4.2.5. Undesirable Headers ................................... 20
4.3. Body ...................................................... 21 4.3. Body ...................................................... 21
4.3.1. Body Format Issues .................................... 21 4.3.1. Body Format Issues .................................... 21
4.3.2. Body Conventions ...................................... 21 4.3.2. Body Conventions ...................................... 21
4.4. Characters and Character Sets ............................. 23 4.4. Characters and Character Sets ............................. 23
4.4.1. Character Sets within Article Headers ................. 23 4.4.1. Character Sets within Article Headers ................. 23
4.4.2. Character Sets within Article Bodies .................. 24 4.4.2. Character Sets within Article Bodies .................. 25
4.5. Size Limits ............................................... 25 4.5. Size Limits ............................................... 25
4.6. Example ................................................... 26 4.6. Example ................................................... 26
5. Mandatory Headers ............................................. 27 5. Mandatory Headers ............................................. 27
5.1. Date ...................................................... 27 5.1. Date ...................................................... 27
5.1.1. Examples .............................................. 28 5.1.1. Examples .............................................. 28
5.2. From ...................................................... 28 5.2. From ...................................................... 28
5.2.1. Examples: ............................................ 28 5.2.1. Examples: ............................................ 28
5.3. Message-ID ................................................ 29 5.3. Message-ID ................................................ 29
5.4. Subject ................................................... 29 5.4. Subject ................................................... 29
5.4.1. Examples .............................................. 30 5.4.1. Examples .............................................. 30
5.5. Newsgroups ................................................ 31 5.5. Newsgroups ................................................ 31
News Article Format July 2001 News Article Format November 2001
5.5.1. Forbidden newsgroup names ............................. 35 5.5.1. Forbidden newsgroup names ............................. 35
5.6. Path ...................................................... 36 5.6. Path ...................................................... 36
5.6.1. Format ................................................ 36 5.6.1. Format ................................................ 36
5.6.2. Adding a path-identity to the Path header ............. 37 5.6.2. Adding a path-identity to the Path header ............. 37
5.6.3. The tail-entry ........................................ 38 5.6.3. The tail-entry ........................................ 38
5.6.4. Delimiter Summary ..................................... 38 5.6.4. Delimiter Summary ..................................... 38
5.6.5. Suggested Verification Methods ........................ 39 5.6.5. Suggested Verification Methods ........................ 39
5.6.6. Example ............................................... 40 5.6.6. Example ............................................... 40
6. Optional Headers .............................................. 41 6. Optional Headers .............................................. 41
6.1. Reply-To .................................................. 41 6.1. Reply-To .................................................. 41
6.1.1. Examples .............................................. 41 6.1.1. Examples .............................................. 42
6.2. Sender .................................................... 42 6.2. Sender .................................................... 42
6.3. Organization .............................................. 42 6.3. Organization .............................................. 42
6.4. Keywords .................................................. 42 6.4. Keywords .................................................. 42
6.5. Summary ................................................... 42 6.5. Summary ................................................... 42
6.6. Distribution .............................................. 43 6.6. Distribution .............................................. 43
6.7. Followup-To ............................................... 44 6.7. Followup-To ............................................... 44
6.8. Mail-Copies-To ............................................ 44 6.8. Mail-Copies-To ............................................ 44
6.9. Posted-And-Mailed ......................................... 45 6.9. Posted-And-Mailed ......................................... 46
6.10. References ............................................... 46 6.10. References ............................................... 46
6.10.1. Examples ............................................. 46 6.10.1. Examples ............................................. 47
6.11. Expires .................................................. 47 6.11. Expires .................................................. 47
6.12. Archive .................................................. 47 6.12. Archive .................................................. 47
6.13. Control .................................................. 48 6.13. Control .................................................. 48
6.14. Approved ................................................. 48 6.14. Approved ................................................. 48
6.15. Replaces / Supersedes .................................... 49 6.15. Supersedes ............................................... 49
6.15.1. Syntax and Semantics ................................. 49 6.16. Xref ..................................................... 49
6.15.2. Message-ID version procedure ......................... 50 6.17. Lines .................................................... 50
6.15.2.1. Message version numbers .......................... 51 6.18. User-Agent ............................................... 50
6.15.2.2. Implementation and Use Note ...................... 52 6.18.1. Examples ............................................. 51
6.15.2.3. The Message-Version NNTP extension ............... 54 6.19. Injector-Info ............................................ 51
6.15.2.4. Examples ......................................... 54 6.19.1. Usage of Injector-Info-header-parameters ............. 53
6.16. Xref ..................................................... 55 6.19.1.1. The posting-host-parameter ....................... 54
6.17. Lines .................................................... 57 6.19.1.2. The posting-account-parameter .................... 54
6.18. User-Agent ............................................... 57 6.19.1.3. The posting-sender-parameter ..................... 54
6.18.1. Examples ............................................. 58 6.19.1.4. The posting-logging-parameter .................... 54
6.19. Injector-Info ............................................ 58 6.19.1.5. The posting-date-parameter ....................... 54
6.19.1. Usage of Injector-Info-header-parameters ............. 60 6.19.2. Example .............................................. 55
6.19.1.1. The posting-host-parameter ....................... 60 6.20. Complaints-To ............................................ 55
6.19.1.2. The posting-account-parameter .................... 61 6.21. MIME headers ............................................. 55
6.19.1.3. The posting-sender-parameter ..................... 61 6.21.1. Syntax ............................................... 55
6.19.1.4. The posting-logging-parameter .................... 61 6.21.2. Content-Type ......................................... 56
6.19.1.5. The posting-date-parameter ....................... 61 6.21.2.1. Message/partial .................................. 56
6.19.2. Example .............................................. 61 6.21.2.2. Message/rfc822 ................................... 57
6.20. Complaints-To ............................................ 61 6.21.2.3. Message/external-body ............................ 58
6.21. MIME headers ............................................. 62 6.21.2.4. Multipart types .................................. 58
6.21.1. Syntax ............................................... 62 6.21.3. Content-Transfer-Encoding ............................ 58
6.21.2. Content-Type ......................................... 62 6.21.4. Character Sets ....................................... 60
6.21.2.1. Message/partial .................................. 63 6.21.5. Content Disposition .................................. 60
6.21.2.2. Message/rfc822 ................................... 63 6.21.6. Definition of some new Content-Types ................. 60
6.21.2.3. Message/external-body ............................ 64 6.21.6.1. Application/news-transmission .................... 60
6.21.2.4. Multipart types .................................. 64 6.21.6.2. Message/news withdrawn ........................... 62
6.21.3. Content-Transfer-Encoding ............................ 65 6.22. Obsolete Headers ......................................... 62
6.21.4. Character Sets ....................................... 66 7. Control Messages .............................................. 62
News Article Format July 2001 News Article Format November 2001
6.21.5. Content Disposition .................................. 67 7.1. Digital Signature of Headers .............................. 63
6.21.6. Definition of some new Content-Types ................. 67 7.2. Group Control Messages .................................... 63
6.21.6.1. Application/news-transmission .................... 67 7.2.1. The 'newgroup' Control Message ........................ 63
6.21.6.2. Message/news withdrawn ........................... 68 7.2.1.1. The Body of the 'newgroup' Control Message ........ 64
6.22. Obsolete Headers ......................................... 68 7.2.1.2. Application/news-groupinfo ........................ 64
7. Control Messages .............................................. 69 7.2.1.3. Initial Articles .................................. 66
7.1. The 'newgroup' Control Message ............................ 69 7.2.1.4. Example ........................................... 67
7.1.1. The Body of the 'newgroup' Control Message ............ 70 7.2.2. The 'rmgroup' Control Message ......................... 68
7.1.2. Application/news-groupinfo ............................ 71 7.2.2.1. Example ........................................... 68
7.1.3. Initial Articles ...................................... 72 7.2.3. The 'mvgroup' Control Message ......................... 68
7.1.4. Example ............................................... 73 7.2.3.1. Example ........................................... 70
7.2. The 'rmgroup' Control Message ............................. 74 7.2.4. The 'checkgroups' Control Message ..................... 70
7.2.1. Example ............................................... 74 7.2.4.1. Application/news-checkgroups ...................... 71
7.3. The 'mvgroup' Control Message ............................. 74 7.3. Cancel .................................................... 72
7.3.1. Single group .......................................... 74 7.4. Ihave, sendme ............................................. 73
7.3.2. Multiple Groups ....................................... 75 7.5. Obsolete control messages. ............................... 74
7.3.3. Examples .............................................. 76 8. Duties of Various Agents ...................................... 74
7.4. The 'checkgroups' Control Message ......................... 77 8.1. General principles to be followed ......................... 74
7.4.1. Application/news-checkgroups .......................... 78 8.2. Duties of an Injecting Agent .............................. 75
7.5. Cancel .................................................... 78 8.2.1. Proto-articles ........................................ 75
7.6. Ihave, sendme ............................................. 80 8.2.2. Procedure to be followed by Injecting Agents .......... 75
7.7. Obsolete control messages. ............................... 81 8.3. Duties of a Relaying Agent ................................ 77
8. Duties of Various Agents ...................................... 81 8.4. Duties of a Serving Agent ................................. 78
8.1. General principles to be followed ......................... 81 8.5. Duties of a Posting Agent ................................. 79
8.2. Duties of an Injecting Agent .............................. 82 8.6. Duties of a Followup Agent ................................ 79
8.2.1. Proto-articles ........................................ 82 8.7. Duties of a Moderator ..................................... 80
8.2.2. Procedure to be followed by Injecting Agents .......... 82 8.8. Duties of a Gateway ....................................... 81
8.3. Duties of a Relaying Agent ................................ 84 8.8.1. Duties of an Outgoing Gateway ......................... 82
8.4. Duties of a Serving Agent ................................. 85 8.8.2. Duties of an Incoming Gateway ......................... 83
8.5. Duties of a Posting Agent ................................. 86 8.8.3. Example ............................................... 85
8.6. Duties of a Followup Agent ................................ 86 9. Security and Related Considerations ........................... 86
8.7. Duties of a Moderator ..................................... 87 9.1. Leakage ................................................... 86
8.8. Duties of a Gateway ....................................... 88 9.2. Attacks ................................................... 86
8.8.1. Duties of an Outgoing Gateway ......................... 89 9.2.1. Denial of Service ..................................... 86
8.8.2. Duties of an Incoming Gateway ......................... 90 9.2.2. Compromise of System Integrity ........................ 87
8.8.3. Example ............................................... 92 9.3. Liability ................................................. 88
9. Security and Related Considerations ........................... 93 10. IANA Considerations .......................................... 89
9.1. Leakage ................................................... 93 11. References ................................................... 89
9.2. Attacks ................................................... 93 12. Acknowledgements ............................................. 91
9.2.1. Denial of Service ..................................... 93 13. Contact Addresses ............................................ 91
9.2.2. Compromise of System Integrity ........................ 94 14. Intellectual Property Rights ................................. 92
9.3. Liability ................................................. 95 Appendix A.1 - A-News Article Format .............................. 93
10. References ................................................... 96 Appendix A.2 - Early B-News Article Format ........................ 93
11. Acknowledgements ............................................. 98 Appendix A.3 - Obsolete Headers ................................... 94
12. Contact Addresses ............................................ 98 Appendix A.4 - Obsolete Control Messages .......................... 94
13. Intellectual Property Rights ................................. 99 Appendix B - Collected Syntax ..................................... 95
Appendix A.1 - A-News Article Format .............................. 100 News Article Format November 2001
Appendix A.2 - Early B-News Article Format ........................ 100
Appendix A.3 - Obsolete Headers ................................... 101
Appendix A.4 - Obsolete Control Messages .......................... 101
Appendix B - Collected Syntax ..................................... 102
News Article Format July 2001
1. Introduction 1. Introduction
1.1. Basic Concepts 1.1. Basic Concepts
"Netnews" is a set of protocols for generating, storing and "Netnews" is a set of protocols for generating, storing and
retrieving news "articles" (which resemble mail messages) and for retrieving news "articles" (which resemble mail messages) and for
exchanging them amongst a readership which is potentially widely exchanging them amongst a readership which is potentially widely
distributed. It is organized around "newsgroups", with the distributed. It is organized around "newsgroups", with the
expectation that each reader will be able to see all articles posted expectation that each reader will be able to see all articles posted
skipping to change at page 6, line 4 skipping to change at page 6, line 4
tolerant of poorly designed interfaces than mere computers, articles tolerant of poorly designed interfaces than mere computers, articles
in breach of established policy can cause considerable annoyance to in breach of established policy can cause considerable annoyance to
their recipients. their recipients.
Policies may well vary from network to network, from hierarchy to Policies may well vary from network to network, from hierarchy to
hierarchy within one network, and even between individual newsgroups hierarchy within one network, and even between individual newsgroups
within one hierarchy. It is assumed, for the purposes of this within one hierarchy. It is assumed, for the purposes of this
standard, that agencies with varying degrees of authority to standard, that agencies with varying degrees of authority to
establish such policies will exist, and that where they do not, establish such policies will exist, and that where they do not,
policy will be established by mutual agreement. For the benefit of policy will be established by mutual agreement. For the benefit of
News Article Format July 2001 News Article Format November 2001
networks and hierarchies without such established agencies, and to networks and hierarchies without such established agencies, and to
provide a basis upon which all agencies can build, this present provide a basis upon which all agencies can build, this present
standard often provides default policy parameters, usually standard often provides default policy parameters, usually
introducing them by a phrase such as "As a matter of policy ...". introducing them by a phrase such as "As a matter of policy ...".
1.2. Objectives 1.2. Objectives
The purpose of this present standard is to define the protocols to be The purpose of this present standard is to define the protocols to be
used for Netnews in general, and for Usenet in particular, and to set used for Netnews in general, and for Usenet in particular, and to set
skipping to change at page 7, line 4 skipping to change at page 7, line 4
As in this standard's predecessors, the exact means used to transmit As in this standard's predecessors, the exact means used to transmit
articles from one host to another is not specified. NNTP [NNTP] is articles from one host to another is not specified. NNTP [NNTP] is
the most common transmission method on the Internet, but much the most common transmission method on the Internet, but much
transmission takes place entirely independent of the Internet. Other transmission takes place entirely independent of the Internet. Other
methods in use include the UUCP protocol [RFC 976] extensively used methods in use include the UUCP protocol [RFC 976] extensively used
in the early days of Usenet, FTP, downloading via satellite, tape in the early days of Usenet, FTP, downloading via satellite, tape
archives, and physically delivered magnetic and optical media. archives, and physically delivered magnetic and optical media.
2. Definitions, Notations and Conventions 2. Definitions, Notations and Conventions
News Article Format July 2001 News Article Format November 2001
2.1. Definitions 2.1. Definitions
An "article" is the unit of news, analogous to an [RFC 2822] An "article" is the unit of news, analogous to an [RFC 2822]
"message". A "proto-article" is one that has not yet been injected "message". A "proto-article" is one that has not yet been injected
into the news system. into the news system.
A "message identifier" (5.3) is a unique identifier for an article, A "message identifier" (5.3) is a unique identifier for an article,
usually supplied by the "posting agent" which posted it or, failing usually supplied by the "posting agent" which posted it or, failing
that, by the "injecting agent". It distinguishes the article from that, by the "injecting agent". It distinguishes the article from
skipping to change at page 8, line 5 skipping to change at page 8, line 5
A "followup" is an article containing a response to the contents of A "followup" is an article containing a response to the contents of
an earlier article (the followup's "precursor"). an earlier article (the followup's "precursor").
A "followup agent" is a combination of reading agent and posting A "followup agent" is a combination of reading agent and posting
agent that aids in the preparation and posting of a followup. agent that aids in the preparation and posting of a followup.
An article's "reply address" is the address to which mailed replies An article's "reply address" is the address to which mailed replies
should be sent. This is the address specified in the article's From should be sent. This is the address specified in the article's From
header (5.2), unless it also has a Reply-To header (6.1). header (5.2), unless it also has a Reply-To header (6.1).
News Article Format July 2001 News Article Format November 2001
A "reply agent" is a combination of reading agent and mailer that A "reply agent" is a combination of reading agent and mailer that
aids in the preparation and posting of an email response to an aids in the preparation and posting of an email response to an
article. article.
A "sender" is the person or software (usually, but not always, the A "sender" is the person or software (usually, but not always, the
same as the poster) responsible for the operation of the posting same as the poster) responsible for the operation of the posting
agent or, which amounts to the same thing, for passing the article to agent or, which amounts to the same thing, for passing the article to
the injecting agent. The sender is analogous to [RFC 2822]'s sender. the injecting agent. The sender is analogous to [RFC 2822]'s sender.
skipping to change at page 9, line 4 skipping to change at page 9, line 4
the specification. The purpose of the notes is to explain why choices the specification. The purpose of the notes is to explain why choices
were made, to place them in context, or to suggest possible were made, to place them in context, or to suggest possible
implementation techniques. implementation techniques.
NOTE: While such explanatory notes may seem superfluous in NOTE: While such explanatory notes may seem superfluous in
principle, they often help the less-than-omniscient reader grasp principle, they often help the less-than-omniscient reader grasp
the purpose of the specification and the constraints involved. the purpose of the specification and the constraints involved.
Given the limitations of natural language for descriptive Given the limitations of natural language for descriptive
purposes, this improves the probability that implementors and purposes, this improves the probability that implementors and
users will understand the true intent of the specification in users will understand the true intent of the specification in
News Article Format July 2001 News Article Format November 2001
cases where the wording is not entirely clear. cases where the wording is not entirely clear.
"US-ASCII" is short for "the ANSI X3.4 character set" [ANSI X3.4]. "US-ASCII" is short for "the ANSI X3.4 character set" [ANSI X3.4].
While "ASCII" is often misused to refer to various character sets While "ASCII" is often misused to refer to various character sets
somewhat similar to X3.4, in this standard "US-ASCII" is used to mean somewhat similar to X3.4, in this standard "US-ASCII" is used to mean
X3.4 and only X3.4. US-ASCII is a 7 bit character set. Please note X3.4 and only X3.4. US-ASCII is a 7 bit character set. Please note
that this standard requires that all agents be 8 bit clean; that is, that this standard requires that all agents be 8 bit clean; that is,
they must accept and transmit data without changing or omitting the they must accept and transmit data without changing or omitting the
8th bit. 8th bit.
skipping to change at page 10, line 5 skipping to change at page 10, line 5
Throughout this standard we will give examples of various Throughout this standard we will give examples of various
definitions, headers and other specifications. It needs to be definitions, headers and other specifications. It needs to be
remembered that these samples are for the aid of the reader only and remembered that these samples are for the aid of the reader only and
do NOT define any specification themselves. In order to prevent do NOT define any specification themselves. In order to prevent
possible conflict with "Real World" entities and people the top level possible conflict with "Real World" entities and people the top level
domain of ".example" is used in all sample domains and addresses. The domain of ".example" is used in all sample domains and addresses. The
hierarchy of example.* is also used as a sample hierarchy. hierarchy of example.* is also used as a sample hierarchy.
Information on the ".example" top level domain is in [RFC 2606]. Information on the ".example" top level domain is in [RFC 2606].
News Article Format July 2001 News Article Format November 2001
2.3. Relation To Mail and MIME 2.3. Relation To Mail and MIME
The primary intent of this standard is to describe the news article The primary intent of this standard is to describe the news article
format. Insofar as news articles are a subset of the Mail message format. Insofar as news articles are a subset of the Mail message
format augmented by some new headers, this standard incorporates many format augmented by some new headers, this standard incorporates many
(though not all) of the provisions of [RFC 2822], with the aim of (though not all) of the provisions of [RFC 2822], with the aim of
enabling news articles to pass through mail systems and vice versa, enabling news articles to pass through mail systems and vice versa,
provided only that they contain the minimum headers required for the provided only that they contain the minimum headers required for the
mode of transport being used. Unfortunately, the match is not mode of transport being used. Unfortunately, the match is not
skipping to change at page 10, line 51 skipping to change at page 10, line 51
referred to, and in some further specific rules. referred to, and in some further specific rules.
The following syntactic forms therefore supersede the corresponding The following syntactic forms therefore supersede the corresponding
rules given in [RFC 2822] and [RFC 2045], thus allowing UTF-8 rules given in [RFC 2822] and [RFC 2045], thus allowing UTF-8
characters [RFC 2279] to appear in certain contexts (the five rules characters [RFC 2279] to appear in certain contexts (the five rules
begining with "strict-" reflect the corresponding original rules from begining with "strict-" reflect the corresponding original rules from
[RFC 2822]). [RFC 2822]).
UTF8-xtra-2-head= %xC2-DF UTF8-xtra-2-head= %xC2-DF
UTF8-xtra-3-head= %xE0 %xA0-BF / %xE1-EC %x80-BF / UTF8-xtra-3-head= %xE0 %xA0-BF / %xE1-EC %x80-BF /
= %xED %x80-9F / %xEE-EF %x80-BF %xED %x80-9F / %xEE-EF %x80-BF
UTF8-xtra-4-head= %xF0 %x90-BF / %xF1-F7 %x80-BF UTF8-xtra-4-head= %xF0 %x90-BF / %xF1-F7 %x80-BF
UTF8-xtra-5-head= %xF8 %x88-BF / %xF9-FB %x80-BF UTF8-xtra-5-head= %xF8 %x88-BF / %xF9-FB %x80-BF
UTF8-xtra-6-head= %xFC %x84-BF / %xFD %x80-BF UTF8-xtra-6-head= %xFC %x84-BF / %xFD %x80-BF
UTF8-xtra-tail = %x80-BF UTF8-xtra-tail = %x80-BF
UTF8-xtra-char = UTF8-xtra-2-head 1( UTF8-xtra-tail ) / UTF8-xtra-char = UTF8-xtra-2-head 1( UTF8-xtra-tail ) /
UTF8-xtra-3-head 1( UTF8-xtra-tail ) / UTF8-xtra-3-head 1( UTF8-xtra-tail ) /
UTF8-xtra-4-head 2( UTF8-xtra-tail ) / UTF8-xtra-4-head 2( UTF8-xtra-tail ) /
UTF8-xtra-5-head 3( UTF8-xtra-tail ) / UTF8-xtra-5-head 3( UTF8-xtra-tail ) /
UTF8-xtra-6-head 4( UTF8-xtra-tail ) UTF8-xtra-6-head 4( UTF8-xtra-tail )
News Article Format July 2001 News Article Format November 2001
text = %d1-9 / ; all UTF-8 characters except text = %d1-9 / ; all UTF-8 characters except
%d11-12 / ; US-ASCII NUL, CR and LF %d11-12 / ; US-ASCII NUL, CR and LF
%d14-127 / %d14-127 /
UTF8-xtra-char UTF8-xtra-char
ctext = NO-WS-CTL / ; all of <text> except ctext = NO-WS-CTL / ; all of <text> except
%d33-39 / ; SP, HTAB, "(", ")" %d33-39 / ; SP, HTAB, "(", ")"
%d42-91 / ; and "\" %d42-91 / ; and "\"
%d93-126 / %d93-126 /
UTF8-xtra-char UTF8-xtra-char
skipping to change at page 12, line 5 skipping to change at page 12, line 5
after making the above changes, but NOT including any syntax defined after making the above changes, but NOT including any syntax defined
in section 4 ("Obsolete syntax") of [RFC 2822]. Software compliant in section 4 ("Obsolete syntax") of [RFC 2822]. Software compliant
with this standard MUST NOT generate any of the syntactic forms with this standard MUST NOT generate any of the syntactic forms
defined in that Obsolete Syntax, although it MAY accept such defined in that Obsolete Syntax, although it MAY accept such
syntactic forms. Certain syntax from the MIME specifications [RFC syntactic forms. Certain syntax from the MIME specifications [RFC
2045] et seq is also considered a part of this standard (see 6.21). 2045] et seq is also considered a part of this standard (see 6.21).
The following syntactic forms, taken from [RFC 2234] or from [RFC The following syntactic forms, taken from [RFC 2234] or from [RFC
2822], are repeated here for convenience only: 2822], are repeated here for convenience only:
News Article Format July 2001 News Article Format November 2001
ALPHA = %x41-5A / ; A-Z ALPHA = %x41-5A / ; A-Z
%x61-7A ; a-z %x61-7A ; a-z
CR = %x0D ; carriage return CR = %x0D ; carriage return
CRLF = CR LF CRLF = CR LF
DIGIT = %x30-39 ; 0-9 DIGIT = %x30-39 ; 0-9
HTAB = %x09 ; horizontal tab HTAB = %x09 ; horizontal tab
LF = %x0A ; line feed LF = %x0A ; line feed
SP = %x20 ; space SP = %x20 ; space
NO-WS-CTL = %d1-8 / ; US-ASCII control characters NO-WS-CTL = %d1-8 / ; US-ASCII control characters
skipping to change at page 13, line 4 skipping to change at page 13, line 4
[CFWS] [CFWS]
word = atom / quoted-string word = atom / quoted-string
phrase = 1*word phrase = 1*word
unstructured = *( [FWS] utext ) [FWS] unstructured = *( [FWS] utext ) [FWS]
NOTE: CFWS occurs at many places in the syntax in order to allow NOTE: CFWS occurs at many places in the syntax in order to allow
comments and extra whitespace to be inserted almost anywhere. comments and extra whitespace to be inserted almost anywhere.
The syntax is in fact ambiguous insofar as it may be impossible The syntax is in fact ambiguous insofar as it may be impossible
to tell in which of several possible ways a given comment or WS to tell in which of several possible ways a given comment or WS
was produced. However, this does not lead to semantic ambiguity was produced. However, this does not lead to semantic ambiguity
News Article Format July 2001 News Article Format November 2001
because, unless specifically stated otherwise, the presence of because, unless specifically stated otherwise, the presence of
absence of a comment or additional WS has no semantic meaning absence of a comment or additional WS has no semantic meaning
and, in particular, it is a matter of indifference whether it and, in particular, it is a matter of indifference whether it
forms a part of the syntactic construct preceding it or the one forms a part of the syntactic construct preceding it or the one
following it. following it.
NOTE: Following [RFC 2234], literal text included in the syntax NOTE: Following [RFC 2234], literal text included in the syntax
is to be regarded as case-insensitive. However, in is to be regarded as case-insensitive. However, in
contradistinction to [RFC 2822], the Netnews protocols are contradistinction to [RFC 2822], the Netnews protocols are
skipping to change at page 13, line 59 skipping to change at page 13, line 59
o An enhanced syntax for the Path header enables the injection o An enhanced syntax for the Path header enables the injection
point of and the route taken by an article to be determined with point of and the route taken by an article to be determined with
certainty. certainty.
o Netnews is firmly established as an 8bit medium. o Netnews is firmly established as an 8bit medium.
o Large parts of MIME are recognised as an integral part of o Large parts of MIME are recognised as an integral part of
Netnews. Netnews.
o The charset for headers is always UTF-8. This will, inter alia, o The charset for headers is always UTF-8. This will, inter alia,
permit newsgroup-names with non-ASCII characters. permit newsgroup-names with non-ASCII characters.
o There is a new Control command 'mvgroup' to facilitate moving a o There is a new Control command 'mvgroup' to facilitate moving a
group to a different place (name) in a hierarchy. group to a different place (name) in a hierarchy.
o There are several new headers defined, such as Replaces and o There are several new headers defined, such as Injector-Info and
News Article Format July 2001 News Article Format November 2001
Author-Ids, leading to increased functionality. Author-Ids, leading to increased functionality.
o There are numerous other small changes, clarifications and o There are numerous other small changes, clarifications and
enhancements. enhancements.
[Doubtless many other changes should be listed, but there is little [Doubtless many other changes should be listed, but there is little
point in doing so until our text is nearing completion. The above gives point in doing so until our text is nearing completion. The above gives
the flavour of what should be said. There should also be references to the flavour of what should be said. There should also be references to
Appendix A.3 and Appendix A.4 ] Appendix A.3 and Appendix A.4 ]
3.2. Transitional Arrangements 3.2. Transitional Arrangements
skipping to change at page 15, line 4 skipping to change at page 15, line 4
o The vast majority of serving, relaying and transport agents are o The vast majority of serving, relaying and transport agents are
believed to be already 8bit clean (in the slightly restricted believed to be already 8bit clean (in the slightly restricted
sense in which that term is used in the MIME standards). User sense in which that term is used in the MIME standards). User
agents that do not implement MIME may be disadvantaged, but no agents that do not implement MIME may be disadvantaged, but no
more so than at present when faced with 8bit characters (which more so than at present when faced with 8bit characters (which
currently abound in spite of the previous standards). currently abound in spite of the previous standards).
o The introduction of MIME reflects a practice that is already o The introduction of MIME reflects a practice that is already
widespread. Articles in strict compliance with the previous widespread. Articles in strict compliance with the previous
standards (using strict US-ASCII) will be unaffected. Many user standards (using strict US-ASCII) will be unaffected. Many user
agents already support it, at least to the extent of widely used agents already support it, at least to the extent of widely used
News Article Format July 2001 News Article Format November 2001
charsets such as ISO-8859-1. Users expecting to read articles charsets such as ISO-8859-1. Users expecting to read articles
using other charsets will need to acquire suitable reading using other charsets will need to acquire suitable reading
agents. It is not intended, in general, that any single user agents. It is not intended, in general, that any single user
agent will be able to display every charset known to IANA, but agent will be able to display every charset known to IANA, but
all such agents MUST support US-ASCII. Serving and relaying all such agents MUST support US-ASCII. Serving and relaying
agents are not affected. agents are not affected.
o The use of the UTF-8 charset for headers will not affect any o The use of the UTF-8 charset for headers will not affect any
existing usage, since US-ASCII is a strict subset of UTF-8. existing usage, since US-ASCII is a strict subset of UTF-8.
Insofar as newsgroup names containing non-ASCII characters can Insofar as newsgroup names containing non-ASCII characters can
skipping to change at page 15, line 30 skipping to change at page 15, line 30
characters available in UTF-8, though it is desirable for them to characters available in UTF-8, though it is desirable for them to
be displayable for diagnostic purposes via some escape mechanism be displayable for diagnostic purposes via some escape mechanism
using, for example, the visible subset of US-ASCII. For users using, for example, the visible subset of US-ASCII. For users
expecting to use the more exotic possibilities available under expecting to use the more exotic possibilities available under
UTF-8, the remarks already made in connection with MIME will UTF-8, the remarks already made in connection with MIME will
apply. apply.
o The new Control: mvgroup command will need to be implemented in o The new Control: mvgroup command will need to be implemented in
serving agents. It SHOULD be used in conjunction with pairs of serving agents. It SHOULD be used in conjunction with pairs of
matching rmgroup and newgroup commands (injected shortly after matching rmgroup and newgroup commands (injected shortly after
the mvgroup) until such time as mvgroup is widely implemented. the mvgroup) until such time as mvgroup is widely implemented.
The new Replaces header is also effectively a Control command, User agents are unaffected.
and transitional arrangements are provided which should be used
in the meantime. User agents are unaffected.
o The headers newly introduced by this standard can safely be o The headers newly introduced by this standard can safely be
ignored by existing software, albeit with loss of the new ignored by existing software, albeit with loss of the new
functionality. functionality.
4. Basic Format 4. Basic Format
4.1. Syntax of News Articles 4.1. Syntax of News Articles
The overall syntax of a news article is: The overall syntax of a news article is:
skipping to change at page 16, line 4 skipping to change at page 16, line 4
other-header-content other-header-content
USENET-header-content USENET-header-content
= <the header-content defined in this standard = <the header-content defined in this standard
(or an extension of it) for a specific (or an extension of it) for a specific
USENET header> USENET header>
other-header-content other-header-content
= <a header-content defined (explicitly or = <a header-content defined (explicitly or
implicitly) by some other standard> implicitly) by some other standard>
header-parameter = USENET-header-parameter / header-parameter = USENET-header-parameter /
other-header-parameter other-header-parameter
News Article Format July 2001 News Article Format November 2001
USENET-header-parameter USENET-header-parameter
= <an other-header-parameter defined in = <an other-header-parameter defined in
this standard for use in conjunction with this standard for use in conjunction with
a specific USENET-header-content> a specific USENET-header-content>
other-header-parameter other-header-parameter
= attribute "=" value = attribute "=" value
attribute = USENET-token / iana-token / x-token attribute = USENET-token / iana-token / x-token
value = token / quoted-string value = token / quoted-string
USENET-token = <A token defined in this standard for USENET-token = <A token defined in this standard for
skipping to change at page 17, line 5 skipping to change at page 17, line 5
4.2. Headers 4.2. Headers
4.2.1. Names and Contents 4.2.1. Names and Contents
Despite the restrictions on header-name syntax imposed by the Despite the restrictions on header-name syntax imposed by the
grammar, relayers and reading agents SHOULD tolerate header names grammar, relayers and reading agents SHOULD tolerate header names
containing any US-ASCII printable character other than colon (":", containing any US-ASCII printable character other than colon (":",
US-ASCII 58). US-ASCII 58).
News Article Format July 2001 News Article Format November 2001
Header-names SHOULD be either those for which a USENET-header-content Header-names SHOULD be either those for which a USENET-header-content
is established by this standard, or by [RFC 2822], or by any is established by this standard, or by [RFC 2822], or by any
extension to either of these standards including, in particular, the extension to either of these standards including, in particular, the
MIME standards [RFC 2045] et seq., or else experimental headers MIME standards [RFC 2045] et seq., or else experimental headers
beginning with "X-" (as defined in 4.2.2.1). Software SHOULD NOT beginning with "X-" (as defined in 4.2.2.1). Software SHOULD NOT
attempt to interpret headers not described in this standard or in its attempt to interpret headers not described in this standard or in its
extensions, but relaying agents MUST pass them on unaltered and extensions, but relaying agents MUST pass them on unaltered and
reading agents MUST enable them to be displayed, at least optionally. reading agents MUST enable them to be displayed, at least optionally.
skipping to change at page 18, line 5 skipping to change at page 18, line 5
to it SHOULD NOT) define any USENET-header-parameter to be to it SHOULD NOT) define any USENET-header-parameter to be
associated with such an unstructured USENET-header-content. associated with such an unstructured USENET-header-content.
The order of headers in an article is not significant. However, The order of headers in an article is not significant. However,
posting agents are encouraged to put mandatory headers (section 5) posting agents are encouraged to put mandatory headers (section 5)
first, followed by optional headers (section 6), followed by first, followed by optional headers (section 6), followed by
experimental headers and headers not defined in this standard or its experimental headers and headers not defined in this standard or its
extensions. Relaying agents MUST NOT change the order of the headers extensions. Relaying agents MUST NOT change the order of the headers
in an article. in an article.
News Article Format July 2001 News Article Format November 2001
Header-names are case-insensitive. There is a preferred case Header-names are case-insensitive. There is a preferred case
convention, which posters and posting agents Ought to use: each convention, which posters and posting agents Ought to use: each
hyphen-separated "word" has its initial letter (if any) in uppercase hyphen-separated "word" has its initial letter (if any) in uppercase
and the rest in lowercase, except that some abbreviations have all and the rest in lowercase, except that some abbreviations have all
letters uppercase (e.g. "Message-ID" and "MIME-Version"). The forms letters uppercase (e.g. "Message-ID" and "MIME-Version"). The forms
used in this standard are the preferred forms for the headers used in this standard are the preferred forms for the headers
described herein. Relaying and reading agents MUST, however, tolerate described herein. Relaying and reading agents MUST, however, tolerate
articles not obeying this convention. articles not obeying this convention.
skipping to change at page 19, line 4 skipping to change at page 19, line 4
NOTE: The Keywords header is not inheritable, though some older NOTE: The Keywords header is not inheritable, though some older
newsreaders treated it as such. newsreaders treated it as such.
4.2.2.3. Variant Headers 4.2.2.3. Variant Headers
Headers with the variant property may differ between (or even be Headers with the variant property may differ between (or even be
completely absent from) copies of the same article as stored or completely absent from) copies of the same article as stored or
relayed throughout a Netnews system. The manner of the difference (or relayed throughout a Netnews system. The manner of the difference (or
absence) MUST be as specified in this (or any future) standard. absence) MUST be as specified in this (or any future) standard.
Typically, these headers are modified as articles are propagated, or Typically, these headers are modified as articles are propagated, or
News Article Format July 2001 News Article Format November 2001
they reflect the status of the article on a particular serving agent, they reflect the status of the article on a particular serving agent,
or cooperating group of such agents. The variant header MAY be placed or cooperating group of such agents. The variant header MAY be placed
anywhere within the headers (though placing it first is recommended). anywhere within the headers (though placing it first is recommended).
The principle examples are: The principle examples are:
o Path (5.6) - augmented at each relaying agent that an article o Path (5.6) - augmented at each relaying agent that an article
passes through. passes through.
o Xref (6.16) - used to keep track of the article locators of o Xref (6.16) - used to keep track of the article locators of
crossposted articles so that newsreaders serviced by a particular crossposted articles so that newsreaders serviced by a particular
serving agent can mark such articles as read. serving agent can mark such articles as read.
skipping to change at page 20, line 5 skipping to change at page 20, line 5
that violate them. that violate them.
NOTE: This standard differs from [RFC 2822] in requiring that NOTE: This standard differs from [RFC 2822] in requiring that
WSP followng the colon (it was also an [RFC 1036] requirement). WSP followng the colon (it was also an [RFC 1036] requirement).
Posters and posting agents SHOULD use SP, not HTAB, where white space Posters and posting agents SHOULD use SP, not HTAB, where white space
is desired in headers (some existing software expects this), and MUST is desired in headers (some existing software expects this), and MUST
use SP immediately following the colon after a header-name. Relaying use SP immediately following the colon after a header-name. Relaying
agents SHOULD accept HTAB in all such cases, however. agents SHOULD accept HTAB in all such cases, however.
News Article Format July 2001 News Article Format November 2001
Since the white space beginning a continuation line remains a part of Since the white space beginning a continuation line remains a part of
the logical line, headers can be "broken" into multiple lines only at the logical line, headers can be "broken" into multiple lines only at
FWS or CFWS. Posting agents Ought Not to break headers unnecessarily FWS or CFWS. Posting agents Ought Not to break headers unnecessarily
(but see 4.5). (but see 4.5).
4.2.4. Comments 4.2.4. Comments
Strings of characters which are treated as comments may be included Strings of characters which are treated as comments may be included
in header-contents wherever the syntactic element CFWS occurs. They in header-contents wherever the syntactic element CFWS occurs. They
skipping to change at page 21, line 4 skipping to change at page 21, line 4
syntactic rules, such as requirements that certain header names syntactic rules, such as requirements that certain header names
appear at most once in an article, MUST still be satisfied). Posting appear at most once in an article, MUST still be satisfied). Posting
and injecting agents SHOULD delete empty headers from articles before and injecting agents SHOULD delete empty headers from articles before
posting them; relaying agents MUST pass them untouched. posting them; relaying agents MUST pass them untouched.
Headers that merely state defaults explicitly (e.g., a Followup-To Headers that merely state defaults explicitly (e.g., a Followup-To
header with the same content as the Newsgroups header, or a MIME header with the same content as the Newsgroups header, or a MIME
Content-Type header with contents "text/plain; charset=us-ascii") or Content-Type header with contents "text/plain; charset=us-ascii") or
state information that reading agents can typically determine easily state information that reading agents can typically determine easily
themselves (e.g. the length of the body in octets) are redundant and themselves (e.g. the length of the body in octets) are redundant and
News Article Format July 2001 News Article Format November 2001
posters and posting agents Ought Not to include them. posters and posting agents Ought Not to include them.
4.3. Body 4.3. Body
4.3.1. Body Format Issues 4.3.1. Body Format Issues
The body of an article SHOULD NOT be empty. A posting or injecting The body of an article SHOULD NOT be empty. A posting or injecting
agent which does not reject such an article entirely SHOULD at least agent which does not reject such an article entirely SHOULD at least
issue a warning message to the poster and supply a non-empty body. issue a warning message to the poster and supply a non-empty body.
skipping to change at page 22, line 5 skipping to change at page 22, line 5
relied on for essential meaning. relied on for essential meaning.
4.3.2. Body Conventions 4.3.2. Body Conventions
A body is by default an uninterpreted sequence of octets for most of A body is by default an uninterpreted sequence of octets for most of
the purposes of this standard. However, a MIME Content-Type header the purposes of this standard. However, a MIME Content-Type header
may impose some structure or intended interpretation upon it, and may may impose some structure or intended interpretation upon it, and may
also specify the character set in accordance with which the octets also specify the character set in accordance with which the octets
are to be interpreted. are to be interpreted.
News Article Format July 2001 News Article Format November 2001
It is a common practice for followup agents to enable the It is a common practice for followup agents to enable the
incorporation of the followed-up article (the "precursor") as a incorporation of the followed-up article (the "precursor") as a
quotation. This SHOULD be done by prefacing each line of the quoted quotation. This SHOULD be done by prefacing each line of the quoted
text (even if it is empty) with the character ">" (or perhaps with text (even if it is empty) with the character ">" (or perhaps with
"> " in the case of a previously unquoted line). This will result in "> " in the case of a previously unquoted line). This will result in
multiple levels of ">" when quoted content itself contains quoted multiple levels of ">" when quoted content itself contains quoted
content, and it will also facilitate the automatic analysis of content, and it will also facilitate the automatic analysis of
articles. articles.
skipping to change at page 23, line 5 skipping to change at page 23, line 5
may be folded in the same way as headers, but attributions SHOULD may be folded in the same way as headers, but attributions SHOULD
always be terminated by a ":" followed by CRLF. always be terminated by a ":" followed by CRLF.
Further examples: Further examples:
On comp.foo in <1234@bar.example> on 24 Dec 1997 16:40:20 +0000, On comp.foo in <1234@bar.example> on 24 Dec 1997 16:40:20 +0000,
Joe D. Bloggs <jdbloggs@bar.example> wrote: Joe D. Bloggs <jdbloggs@bar.example> wrote:
Am 24. Dez 1997 schrieb Helmut Schmidt <helmut@bar.example>: Am 24. Dez 1997 schrieb Helmut Schmidt <helmut@bar.example>:
News Article Format July 2001 News Article Format November 2001
A "personal signature" is a short closing text automatically added to A "personal signature" is a short closing text automatically added to
the end of articles by posting agents, identifying the poster and the end of articles by posting agents, identifying the poster and
giving his network addresses, etc. If a poster or posting agent does giving his network addresses, etc. If a poster or posting agent does
append such a signature to an article, it MUST be preceded with a append such a signature to an article, it MUST be preceded with a
delimiter line containing (only) two hyphens (US-ASCII 45) followed delimiter line containing (only) two hyphens (US-ASCII 45) followed
by one SP (US-ASCII 32). The signature is considered to extend from by one SP (US-ASCII 32). The signature is considered to extend from
the last occurrence of that delimiter up to the end of the article the last occurrence of that delimiter up to the end of the article
(or up to the end of the part in the case of a multipart MIME body). (or up to the end of the part in the case of a multipart MIME body).
Followup agents, when incorporating quoted text from a precursor, Followup agents, when incorporating quoted text from a precursor,
skipping to change at page 24, line 5 skipping to change at page 24, line 5
Within article headers, characters are represented as octets Within article headers, characters are represented as octets
according to the UTF-8 encoding scheme [RFC 2279] or [ISO/IEC 10646], according to the UTF-8 encoding scheme [RFC 2279] or [ISO/IEC 10646],
and hence all the characters in Unicode [UNICODE 3.1] or in the and hence all the characters in Unicode [UNICODE 3.1] or in the
Universal Multiple-Octet Coded Character Set (UCS) [ISO/IEC 10646] Universal Multiple-Octet Coded Character Set (UCS) [ISO/IEC 10646]
(which is essentially a superset of Unicode and expected to remain (which is essentially a superset of Unicode and expected to remain
so) are potentially available. However, processing all octets in the so) are potentially available. However, processing all octets in the
same manner as US-ASCII characters should ensure correct behaviour in same manner as US-ASCII characters should ensure correct behaviour in
most situations. most situations.
News Article Format July 2001 News Article Format November 2001
NOTE: UTF-8 is an encoding for 16bit (and even 32bit) character NOTE: UTF-8 is an encoding for 16bit (and even 32bit) character
sets with the property that any octet less than 128 immediately sets with the property that any octet less than 128 immediately
represents the corresponding US-ASCII character, thus ensuring represents the corresponding US-ASCII character, thus ensuring
upwards compatibility with previous practice. Non-ASCII upwards compatibility with previous practice. Non-ASCII
characters from Unicode are represented by sequences of octets characters from Unicode are represented by sequences of octets
satisfying the syntax of a UTF8-xtra-char (2.4), which excludes satisfying the syntax of a UTF8-xtra-char (2.4), which excludes
certain octet sequences not explicitly permitted by [RFC 2279]. certain octet sequences not explicitly permitted by [RFC 2279].
Unicode includes all characters from the ISO-8859 series of Unicode includes all characters from the ISO-8859 series of
characters sets [ISO 8859] (which includes all Cyrillic, Greek characters sets [ISO 8859] (which includes all Cyrillic, Greek
skipping to change at page 24, line 32 skipping to change at page 24, line 32
need for restraint in its use in order that the essential components need for restraint in its use in order that the essential components
of headers may be discerned using reading agents that cannot present of headers may be discerned using reading agents that cannot present
the full Unicode range. In particular, header-names and tokens MUST the full Unicode range. In particular, header-names and tokens MUST
be in US-ASCII, and certain other components of headers, as defined be in US-ASCII, and certain other components of headers, as defined
elsewhere in this standard - notably msg-ids, date-times, dot-atoms, elsewhere in this standard - notably msg-ids, date-times, dot-atoms,
domains and path-identities - MUST be in US-ASCII. Comments, phrases domains and path-identities - MUST be in US-ASCII. Comments, phrases
(as in addresses) and unstructureds (as in Subject headers) MAY use (as in addresses) and unstructureds (as in Subject headers) MAY use
the full range of UTF-8 characters, but SHOULD nevertheless be the full range of UTF-8 characters, but SHOULD nevertheless be
invariant under Unicode normalization NFC [UNICODE 3.1]. invariant under Unicode normalization NFC [UNICODE 3.1].
NOTE: The effect of normalization NFC is to place composite NOTE: Unicode allows for composite characters made up of a
characters (made by overlaying one character with another) into starter character - which can be a letter, number, punctuation
a canonical form (usually represented by a single character mark, or symbol - plus zero or more combining marks (such as
where one is available - thus E-acute is preferred over E accents, diacritics, and similar). The requirement that a
followed by a non-spacing acute accent), and to make a composite be invariant under normalization NFC means that, where
consistent choice among equivalent forms (e.g. the Angstrom sign it could be written in more than one way, only one particular
is replaced by A-ring). At least for the main European one is allowed (for example, the single character E-acute is
languages, for which all the needed composites are already preferred over E followed by a non-spacing acute accent, and A-
available as single characters, it is unlikely that posting ring is preferred over the Angstrom symbol). At least for the
agents will need to take any special steps to ensure main European languages, for which all the needed composites are
already available as single characters, it is unlikely that
posting agents will need to take any special steps to ensure
normalization. normalization.
In the particular case of newsgroup-names (see 5.5) there are more In the particular case of newsgroup-names (see 5.5) there are more
stringent requirements regarding the use of UTF-8 and Unicode. stringent requirements regarding the use of UTF-8 and Unicode.
Where the use of non-ASCII characters, encoded in UTF-8, is permitted Where the use of non-ASCII characters, encoded in UTF-8, is permitted
as above, they MAY also be encoded using the MIME mechanism defined as above, they MAY also be encoded using the MIME mechanism defined
in [RFC 2047], but this usage is deprecated within news articles in [RFC 2047], but this usage is deprecated within news articles
(even though it is required in mail messages) since it is less (even though it is required in mail messages) since it is less
legible in older reading agents which support neither it nor UTF-8. legible in older reading agents which support neither it nor UTF-8.
Nevertheless, reading agents SHOULD support this usage, but only in Nevertheless, reading agents SHOULD support this usage, but only in
those contexts explicitly mentioned in [RFC 2047]. those contexts explicitly mentioned in [RFC 2047].
News Article Format November 2001
4.4.2. Character Sets within Article Bodies 4.4.2. Character Sets within Article Bodies
Within article bodies, characters are represented as octets according Within article bodies, characters are represented as octets according
to the encoding scheme implied by any Content-Transfer-Encoding and to the encoding scheme implied by any Content-Transfer-Encoding and
Content-Type headers [RFC 2045]. In the absence of such headers, Content-Type headers [RFC 2045]. In the absence of such headers,
reading agents cannot be relied upon to display correctly more than reading agents cannot be relied upon to display correctly more than
News Article Format July 2001
the US-ASCII characters. the US-ASCII characters.
NOTE: Observe that reading agents are not forbidden to "guess", NOTE: Observe that reading agents are not forbidden to "guess",
or to interpret as UTF-8 regardless, which would be the simplest or to interpret as UTF-8 regardless, which would be the simplest
course for them to take. course for them to take.
NOTE: It is not expected that reading agents will necessarily be NOTE: It is not expected that reading agents will necessarily be
able to present characters in all possible character sets, able to present characters in all possible character sets,
although they MUST be able to present all US-ASCII characters. although they MUST be able to present all US-ASCII characters.
For example, a reading agent might be able to present only the For example, a reading agent might be able to present only the
skipping to change at page 25, line 52 skipping to change at page 26, line 5
folding, be made to exceed the 998 octets restriction pertaining folding, be made to exceed the 998 octets restriction pertaining
to a single header line). to a single header line).
The syntax provides for the lines of a body to be up to 998 octets in The syntax provides for the lines of a body to be up to 998 octets in
length, not including the CRLF. All software compliant with this length, not including the CRLF. All software compliant with this
standard MUST support lines of at least that length, both in headers standard MUST support lines of at least that length, both in headers
and in bodies, and all such software SHOULD support lines of and in bodies, and all such software SHOULD support lines of
arbitrary length. In particular, relaying agents MUST transmit lines arbitrary length. In particular, relaying agents MUST transmit lines
of arbitrary length without truncation or any other modification. of arbitrary length without truncation or any other modification.
News Article Format November 2001
NOTE: The limit of 998 octets is consistent with the NOTE: The limit of 998 octets is consistent with the
corresponding limit in [RFC 2822]. corresponding limit in [RFC 2822].
In plain-text messages (those with no MIME headers, or those with a In plain-text messages (those with no MIME headers, or those with a
MIME Content-Type of text/plain) posting agents Ought to endeavour to MIME Content-Type of text/plain) posting agents Ought to endeavour to
keep the length of body lines within some reasonable limit. The size keep the length of body lines within some reasonable limit. The size
of this limit is a matter of policy, the default being to keep within of this limit is a matter of policy, the default being to keep within
79 characters at most, and preferably within 72 characters (to allow 79 characters at most, and preferably within 72 characters (to allow
News Article Format July 2001
room for quoting in followups). Exceptionally, posting agents Ought room for quoting in followups). Exceptionally, posting agents Ought
Not to adjust the length of quoted lines in followups unless they are Not to adjust the length of quoted lines in followups unless they are
able to reformat them in a consistent manner. Moreover, posting able to reformat them in a consistent manner. Moreover, posting
agents MUST permit the poster to include longer lines if he so agents MUST permit the poster to include longer lines if he so
insists. insists.
NOTE: Plain-text messages are intended to be displayed "as-is" NOTE: Plain-text messages are intended to be displayed "as-is"
without any special action (such as automatic line splitting) on without any special action (such as automatic line splitting) on
the part of the recipient. The policy limit (e.g. 72 or 79) the part of the recipient. The policy limit (e.g. 72 or 79)
should be expressed as a number of characters (as they will be should be expressed as a number of characters (as they will be
skipping to change at page 26, line 49 skipping to change at page 27, line 4
Reply-To: Ann Example <a.example+replies@site1.example> Reply-To: Ann Example <a.example+replies@site1.example>
Expires: Wed, 22 Apr 1998 12:12:50 -0700 Expires: Wed, 22 Apr 1998 12:12:50 -0700
Organization: Site1, The Number one site for examples. Organization: Site1, The Number one site for examples.
User-Agent: ExampleNews/3.14 (Unix) User-Agent: ExampleNews/3.14 (Unix)
Keywords: example, announcement, standards, RFC 1036, Usefor Keywords: example, announcement, standards, RFC 1036, Usefor
Summary: The URL for the next standard. Summary: The URL for the next standard.
Just a quick announcemnt that a new standard example article has Just a quick announcemnt that a new standard example article has
been released; it is in the new USEFOR draft obtainable from been released; it is in the new USEFOR draft obtainable from
ftp.ietf.org. ftp.ietf.org.
News Article Format November 2001
Ann. Ann.
-- --
Ann Example <a.example@site1.example> Sample Poster to the Stars Ann Example <a.example@site1.example> Sample Poster to the Stars
"The opinions in this article are bloody good ones" - J. Clarke. "The opinions in this article are bloody good ones" - J. Clarke.
News Article Format July 2001
5. Mandatory Headers 5. Mandatory Headers
An article MUST have one, and only one, of each of the following An article MUST have one, and only one, of each of the following
headers: Date, From, Message-ID, Subject, Newsgroups, Path. headers: Date, From, Message-ID, Subject, Newsgroups, Path.
Note also that there are situations, discussed in the relevant parts Note also that there are situations, discussed in the relevant parts
of section 6, where References, Sender, or Approved headers are of section 6, where References, Sender, or Approved headers are
mandatory. In control messages, specific values are required for mandatory. In control messages, specific values are required for
certain headers. certain headers.
skipping to change at page 27, line 55 skipping to change at page 28, line 4
comment, after the date-time, containing the time zone in comment, after the date-time, containing the time zone in
human-readable form, but many of the abbreviations commonly used human-readable form, but many of the abbreviations commonly used
for this purpose are ambiguous. The value given by the <zone> is for this purpose are ambiguous. The value given by the <zone> is
the only definitive form. the only definitive form.
In order to prevent the reinjection of expired articles into the news In order to prevent the reinjection of expired articles into the news
stream, relaying and serving agents MUST refuse articles whose Date stream, relaying and serving agents MUST refuse articles whose Date
header predates the earliest articles of which they normally keep header predates the earliest articles of which they normally keep
record, or which is more than 24 hours into the future (though they record, or which is more than 24 hours into the future (though they
MAY use a margin less than that 24 hours). Relaying agents MUST NOT MAY use a margin less than that 24 hours). Relaying agents MUST NOT
modify the Date header in transit. News Article Format November 2001
News Article Format July 2001 modify the Date header in transit.
5.1.1. Examples 5.1.1. Examples
Date: Fri, 2 Apr 1999 20:20:51 -0500 (EST) Date: Fri, 2 Apr 1999 20:20:51 -0500 (EST)
Date: 26 May 1999 16:13 +0000 Date: 26 May 1999 16:13 +0000
Date: 26 May 1999 16:13 GMT (Obsolete) Date: 26 May 1999 16:13 GMT (Obsolete)
5.2. From 5.2. From
The From header contains the electronic address(es), and possibly the The From header contains the electronic address(es), and possibly the
skipping to change at page 29, line 4 skipping to change at page 29, line 4
5.2.1. Examples: 5.2.1. Examples:
From: John Smith <jsmith@site.example> From: John Smith <jsmith@site.example>
From: "John Smith" <jsmith@site.example>, dave@isp.example From: "John Smith" <jsmith@site.example>, dave@isp.example
From: "John D. Smith" <jsmith@site.example>, andrew@isp.example, From: "John D. Smith" <jsmith@site.example>, andrew@isp.example,
fred@site2.example fred@site2.example
From: Jan Jones <jan@please_setup_your_system_correctly.invalid> From: Jan Jones <jan@please_setup_your_system_correctly.invalid>
From: Jan Jones <joe@guess-where.invalid> From: Jan Jones <joe@guess-where.invalid>
From: dave@isp.example (Dave Smith) From: dave@isp.example (Dave Smith)
News Article Format July 2001 News Article Format November 2001
NOTE: the last example shows a now deprecated convention of NOTE: the last example shows a now deprecated convention of
putting a poster's full name in a comment following the mailbox, putting a poster's full name in a comment following the mailbox,
rather than in a phrase at the start of that mailbox. Observe rather than in a phrase at the start of that mailbox. Observe
that the quotes around the "John D. Smith" example were that the quotes around the "John D. Smith" example were
required, on account of the '.' character, and they would also required, on account of the '.' character, and they would also
have been required had any UTF8-xtra-char been present. have been required had any UTF8-xtra-char been present.
5.3. Message-ID 5.3. Message-ID
skipping to change at page 30, line 4 skipping to change at page 30, line 4
differ only in case within their id-right part as equivalent, differ only in case within their id-right part as equivalent,
and implementors of agents that generate message identifiers and implementors of agents that generate message identifiers
should be aware of this. should be aware of this.
5.4. Subject 5.4. Subject
The Subject header contains a short string identifying the topic of The Subject header contains a short string identifying the topic of
the message. This is an inheritable header (4.2.2.2) to be copied the message. This is an inheritable header (4.2.2.2) to be copied
into the Subject header of any followup, in which case the new into the Subject header of any followup, in which case the new
header-content SHOULD then default to the string "Re: " (a "back header-content SHOULD then default to the string "Re: " (a "back
News Article Format July 2001 News Article Format November 2001
reference") followed by the contents of the pure-subject of the reference") followed by the contents of the pure-subject of the
precursor. Any leading "Re: " in the pure-subject MUST be stripped. precursor. Any leading "Re: " in the pure-subject MUST be stripped.
Subject-content = [ back-reference ] pure-subject Subject-content = [ back-reference ] pure-subject
pure-subject = 1*( [FWS] utext ) pure-subject = 1*( [FWS] utext )
back-reference = %x52.65.3A.20 back-reference = %x52.65.3A.20
; which is a case-sensitive "Re: " ; which is a case-sensitive "Re: "
The pure-subject MUST NOT begin with "Re: ". The pure-subject MUST NOT begin with "Re: ".
skipping to change at page 31, line 4 skipping to change at page 31, line 4
In the following examples, please note that only "Re: " is mandated In the following examples, please note that only "Re: " is mandated
by this standard. "was: " is a convention used by many English- by this standard. "was: " is a convention used by many English-
speaking posters to signal a change in subject matter. Software speaking posters to signal a change in subject matter. Software
should be able to deduce this information from References. should be able to deduce this information from References.
Subject: Film at 11 Subject: Film at 11
Subject: Re: Film at 11 Subject: Re: Film at 11
Subject: Godwin's law considered harmful (was: Film at 11) Subject: Godwin's law considered harmful (was: Film at 11)
Subject: Godwin's law (was: Film at 11) Subject: Godwin's law (was: Film at 11)
Subject: Re: Godwin's law (was: Film at 11) Subject: Re: Godwin's law (was: Film at 11)
News Article Format July 2001 News Article Format November 2001
5.5. Newsgroups 5.5. Newsgroups
The Newsgroups header's content specifies the newsgroup(s) in which The Newsgroups header's content specifies the newsgroup(s) in which
the article is intended to appear. It is an inheritable header the article is intended to appear. It is an inheritable header
(4.2.2.2) which then becomes the default Newsgroups header of any (4.2.2.2) which then becomes the default Newsgroups header of any
followup, unless a Followup-To header is present to prescribe followup, unless a Followup-To header is present to prescribe
otherwise. otherwise.
References to "Unicode" or "the latest version of the Unicode References to "Unicode" or "the latest version of the Unicode
Standard" mean [UNICODE 3.1] contains guarantees of strict future Standard" mean [UNICODE 3.1] or any standard that supersedes it. That
upwards compatibility (e.g. no character will be removed or change document contains guarantees of strict future upwards compatibility
classification). Implementors should be aware that currently (e.g. no character will be removed or change classification).
unassigned code points (Unicode category Cn) may become valid Implementors should be aware that currently unassigned code points
characters in future versions of Unicode. Since the poster of an (Unicode category Cn) may become valid characters in future versions
article might have access to a newer version of that standard, of Unicode. Since the poster of an article might have access to a
relaying and serving agents MUST accept such characters, but posting newer version of that standard, relaying and serving agents MUST
agents (and indeed all agents) MUST NOT generate them. accept such characters, but posting agents (and indeed all agents)
MUST NOT generate them (though they might well follow up to
newsgroup-names containing them).
Newsgroups-content = newsgroup-name Newsgroups-content = newsgroup-name
*( *FWS ng-delim *FWS newsgroup-name ) *( *FWS ng-delim *FWS newsgroup-name )
*FWS *FWS
newsgroup-name = component *( "." component ) newsgroup-name = component *( "." component )
component = 1*component-glyph component = 1*component-glyph
ng-delim = "," ng-delim = ","
component-glyph = combiner-base *combiner-mark component-glyph = combiner-base *combiner-mark
combiner-base = combiner-ASCII / combiner-extended combiner-base = combiner-ASCII / combiner-extended
combiner-ASCII = "0"-"9" / %x41-5A / %x61-7A / "+" / "-" / "_" combiner-ASCII = "0"-"9" / %x41-5A / %x61-7A / "+" / "-" / "_"
skipping to change at page 31, line 44 skipping to change at page 31, line 46
0080 or greater and a combining class of 0, 0080 or greater and a combining class of 0,
but excluding any character in Unicode but excluding any character in Unicode
categories Cc, Cf, Cs, Zs, Zl, and Zp> categories Cc, Cf, Cs, Zs, Zl, and Zp>
combiner-mark = <any character with a Unicode code value of combiner-mark = <any character with a Unicode code value of
0080 or greater and a combining class other 0080 or greater and a combining class other
than 0> than 0>
NOTE: the excluded characters are control characters (Cc), NOTE: the excluded characters are control characters (Cc),
format control characters (Cf), surrogates (Cs), and separators format control characters (Cf), surrogates (Cs), and separators
(Zs, Zl, Zp). In particular, this excludes all whitespace (Zs, Zl, Zp). In particular, this excludes all whitespace
characters. characters. To all intents and purposes, a component-glyph is
what a user might regard as a single "character" as displayed on
his screen, though it might be transmitted as several actual
characters (e.g. q-circumflex is two characters). Note also
that, in some writing schemes, several component-glyphs will
merge into one visible object of variable size.
Each component MUST be invariant under Unicode normalization NFKC Each component MUST be invariant under Unicode normalization NFKC
(cf. the weaker normalization requirement for other headers in (cf. the weaker normalization requirement for other headers in
section 4.4.1 which specified no more than normalization NFC). section 4.4.1 which specified no more than normalization NFC, and see
also the explanatory NOTE in that section).
NOTE: Alternatively, this restriction could have been expressed News Article Format November 2001
by saying:
o All characters with a compatibility decomposition are
forbidden;
or else
o All characters with property NFKC-NO are forbidden.
The effect is to exclude variant forms of characters, such as
superscripts and subscripts, wide and narrow forms, font
variants, encircled forms, ligatures, and so on, as their use
could cause confusion.
News Article Format July 2001 NOTE: As a result of of this restriction, a name has only one
valid form. Implementations can assume that a straight
comparison of characters or octets is sufficient to compare two
newsgroup-names.
As a result of of this restriction, a name has only one valid The requirement that names be invariant under NFKC, rather than
form. Implementations can assume that a straight comparison of NFC, means that all characters with a "compatibility
characters or octets is sufficient to compare two newsgroup- decomposition" are forbidden (Unicode provides the property
names. "NFKC_NO" to make this test easier). The effect is to exclude
variant forms of characters, such as superscripts and
subscripts, wide and narrow forms, font variants, encircled
forms, ligatures, and so on, as their use could cause confusion.
There is insufficient experience in this area to determine
whether this is the right long-term solution. Implementers
should therefore be aware that a future version of this standard
might reduce the requirement in the direction of NFC as opposed
to NFKC.
NOTE: An implementation is not required to apply NFKC, or any NOTE: An implementation is not required to apply NFKC, or any
other normalization, to newsgroup names. Only agencies that other normalization, to newsgroup names. Only agencies that
create new groups need to be careful to obey this restriction create new groups need to be careful to obey this restriction
(7.1). However, if a posting agent neglects to normalize a (7.2.1). However, if a posting agent neglects to normalize a
newsgroup-name entered manually, this may lead to the user newsgroup-name entered manually, this may lead to the user
posting to a non-existent group without understanding why. posting to a non-existent group without understanding why.
Newsgroup-names containing non-ASCII characters MUST be encoded in Newsgroup-names containing non-ASCII characters MUST be encoded in
UTF-8 and not according to [RFC 2047]. UTF-8 and not according to [RFC 2047].
Components beginning with underline ("_") are reserved for use by Components beginning with underline ("_") are reserved for use by
future versions of this standard and MUST NOT occur in newsgroup future versions of this standard and MUST NOT occur in newsgroup
names (whether in Newsgroup headers or in newgroup control messages names (whether in Newsgroup headers or in newgroup control messages
(7.1)). However, such names MUST be accepted. (7.2.1)). However, such names MUST be accepted.
Components beginning with "+" or "-" are reserved for use by Components beginning with "+" or "-" are reserved for use by
implementations and MUST NOT occur in newsgroup names (whether in implementations and MUST NOT occur in newsgroup names (whether in
Newsgroup headers or in newgroup control messages). Implementors may Newsgroup headers or in newgroup control messages). Implementors may
assume that this rule will not change in any future version of this assume that this rule will not change in any future version of this
standard. standard.
NOTE: For example, implementors may safely use leading "+" and NOTE: For example, implementors may safely use leading "+" and
"-" to "escape" other entities within something that looks like "-" to "escape" other entities within something that looks like
a newsgroup-name. a newsgroup-name.
Agencies responsible for the administration of particular hierarchies Agencies responsible for the administration of particular hierarchies
Ought to place additional restrictions on the characters they allow Ought to place additional restrictions on the characters they allow
in newsgroup-names within those hierarchies (such as to accord with in newsgroup-names within those hierarchies (such as to accord with
the languages commonly used within those hierarchies, or to avoid the languages commonly used within those hierarchies, or to avoid
perceived ambiguities pertinent to those languages). Where there is perceived ambiguities pertinent to those languages). Where there is
no such specific policy, the following restrictions SHOULD be applied no such specific policy, the following restrictions SHOULD be applied
to newsgroup names. to newsgroup names.
News Article Format November 2001
NOTE: These restrictions are intended to reflect existing NOTE: These restrictions are intended to reflect existing
practice, with some additions to accomodate foreseeable practice, with some additions to accomodate foreseeable
enhancements, and are intended both to avoid certain technical enhancements, and are intended both to avoid certain technical
difficulties and to avoid unnecessary confusion. It may well be difficulties and to avoid unnecessary confusion. It may well be
that experience will allow future extensions to this standard to that experience will allow future extensions to this standard to
relax some or all of these restrictions. relax some or all of these restrictions.
The specific restrictions (to be applied in the absence of The specific restrictions (to be applied in the absence of
established policies to the contrary) are: established policies to the contrary) are:
1. The following characters are forbidden, subject to the comments 1. The following characters are forbidden, subject to the comments
and notes at the end of the list: and notes at the end of the list:
characters in category Cn (Other, Not assigned) [1] characters in category Cn (Other, Not assigned) [1]
characters in category Co (Other, Private Use) [2] characters in category Co (Other, Private Use) [2]
characters in category Lt (Letter, Titlecase) [3] characters in category Lt (Letter, Titlecase) [3]
News Article Format July 2001
characters in category Lu (Letter, Uppercase) [3] characters in category Lu (Letter, Uppercase) [3]
characters in category Me (Mark, Enclosing) [4] characters in category Me (Mark, Enclosing) [4]
characters in category Pd (Punctuation, Dash) [4][5] characters in category Pd (Punctuation, Dash) [4][5]
characters in category Pe (Punctuation, Close) [4] characters in category Pe (Punctuation, Close) [4]
characters in category Pf (Punctuation, Final quote) [4] characters in category Pf (Punctuation, Final quote) [4]
characters in category Pi (Punctuation, Initial quote) [4] characters in category Pi (Punctuation, Initial quote) [4]
characters in category Po (Punctuation, Other) [4] characters in category Po (Punctuation, Other) [4]
characters in category Ps (Punctuation, Open) [4] characters in category Ps (Punctuation, Open) [4]
characters in category Sc (Symbol, Currency) [4] characters in category Sc (Symbol, Currency) [4]
characters in category Sk (Symbol, Modifier) [4] characters in category Sk (Symbol, Modifier) [4]
skipping to change at page 33, line 27 skipping to change at page 33, line 44
characters in category So (Symbol, Other) [4] characters in category So (Symbol, Other) [4]
[1] As new characters are added to Unicode, the code point moves [1] As new characters are added to Unicode, the code point moves
from category Cn to some other category. As stated above, from category Cn to some other category. As stated above,
implementors should be prepared for this. implementors should be prepared for this.
[2] Specific private use characters can be used within a hierarchy [2] Specific private use characters can be used within a hierarchy
or co-operating subnet that has agreed meanings for them. or co-operating subnet that has agreed meanings for them.
[3] Traditionally, newsgroup-names have been written in lowercase. [3] Traditionally, newsgroup-names have been written in lowercase.
Posting agents MAY convert these characters to the Posting agents Ought Not to convert uppercase or titlecase
corresponding lowercase forms. characters to the corresponding lowercase forms except under
[That may be better left unsaid, or rewritten] the explicit instructions of the poster.
[4] Traditionally newsgroup names have only used letters, digits, [4] Traditionally newsgroup names have only used letters, digits,
and the three special characters "+", "-" and "_". These and the three special characters "+", "-" and "_". These
categories correspond to characters outside that set. categories correspond to characters outside that set.
[5] Although the characters "+" and "-" are within categories Pd [5] Although the characters "+" and "-" are within categories Pd
and Sm, they are not forbidden. and Sm, they are not forbidden.
2. A component name is forbidden to consist entirely of digits. 2. A component name is forbidden to consist entirely of digits.
NOTE: This requirement was in [RFC 1036] but nevertheless NOTE: This requirement was in [RFC 1036] but nevertheless
several such groups have appeared in practice and implementors several such groups have appeared in practice and implementors
should be prepared for them. A common implementation technique should be prepared for them. A common implementation technique
uses each component as the name of a directory and uses numeric uses each component as the name of a directory and uses numeric
News Article Format November 2001
filenames for each article within a group. Such an filenames for each article within a group. Such an
implementation needs to be careful when this could cause a clash implementation needs to be careful when this could cause a clash
(e.g. between article 123 of group xxx.yyy and the directory for (e.g. between article 123 of group xxx.yyy and the directory for
group xxx.yyy.123). group xxx.yyy.123).
[Open issue a number of people think this should not be a default [Open issue a number of people think this should not be a default
requirement but simply be a NOTE; wording for such is further down.] requirement but simply be a NOTE; wording for such is further down.]
3. A component is limited to 30 component-glyphs and a newsgroup-name 3. A component is limited to 30 component-glyphs and a newsgroup-name
to 71 component-glyphs. Whilst there is no longer any technical to 71 component-glyphs. Whilst there is no longer any technical
reason to limit the length of a component (formerly, it was reason to limit the length of a component (formerly, it was
limited to 14 octets) nor of a newsgroup-name, it should be noted limited to 14 octets) nor of a newsgroup-name, it should be noted
that these names are also used in the newsgroups line (7.1.2) that these names are also used in the newsgroups line (7.2.1.2)
where an overall policy limit applies and, moreover, excessively where an overall policy limit applies and, moreover, excessively
long names can be exceedingly inconvenient in practical use. long names can be exceedingly inconvenient in practical use.
News Article Format July 2001
NOTE: To all intents and purposes, a component-glyph is what a
user might regard as a single "character" as displayed on his
screen, though it might be transmitted as several actual
characters (e.g. q-circumflex is two characters).
Serving and relaying agents MUST accept any newsgroup-name that meets Serving and relaying agents MUST accept any newsgroup-name that meets
the above requirements, even if they violate one or more of the the above requirements, even if they violate one or more of the
policy restrictions. Posting and injecting agents MAY reject articles policy restrictions. Posting and injecting agents MAY reject articles
containing newsgroup-names that do not meet these restrictions, and containing newsgroup-names that do not meet these restrictions, and
posting agents MAY attempt to correct them (e.g. by lowercasing). posting agents MAY attempt to correct them (but only with the
However, because of the large and changing tables required to do explicit agreement of the poster for anything more than NFC or NFKC
these checks and corrections throughout the whole of Unicode, this normalization). However, because of the large and changing tables
standard does not require them to do so. Rather, the onus is placed required to do these checks and corrections throughout the whole of
on those who create new newsgroups (7.1) to check the mandatory Unicode, this standard does not require them to do so. Rather, the
requirements, to consider the effects of relaxing the other onus is placed on those who create new newsgroups (7.2.1) to check
restrictions, and to consider how all this may affect propagation of the mandatory requirements, to consider the effects of relaxing the
the group. other restrictions, and to consider how all this may affect
propagation of the group.
Since future extensions to this standard and the Unicode standard, Since future extensions to this standard and the Unicode standard,
plus any relaxations of the default restrictions introduced by including a possible relaxation of the NFKC normalization, plus any
specific hierarchies, might invalidate some such checks, warnings, relaxations of the default restrictions introduced by specific
and adjustments, implementations MUST incorporate means to disable hierarchies might invalidate some such checks, warnings, and
them. In particular, implementations must be prepared for a adjustments, implementations MUST incorporate means to disable them.
relaxation of the normalization requirements (e.g. from NFKC down to
NFC), which have been made rather stringent due to a lack of
practical experience in this area.
[Alternative text for Open issue] [Alternative text for Open issue]
NOTE: Components composed entirely of digits were forbidden by NOTE: Components composed entirely of digits were forbidden by
[RFC 1036] but have nevertheless been used in practice, and are [RFC 1036] but have nevertheless been used in practice, and are
therefore permitted by this specification. A common therefore permitted by this specification. A common
implementation technique uses each component as the name of a implementation technique uses each component as the name of a
directory and uses numeric filenames for each article within a directory and uses numeric filenames for each article within a
group. Such an implementation needs to be careful when this group. Such an implementation needs to be careful when this
could cause a clash (e.g. between article 123 of group xxx.yyy could cause a clash (e.g. between article 123 of group xxx.yyy
and the directory for group xxx.yyy.123). and the directory for group xxx.yyy.123).
[Open issue: delete the above text if we retain the default requirement [Open issue: delete the above text if we retain the default requirement
above.] above.]
NOTE: The newsgroup-name as encoded in UTF-8 should be regarded NOTE: The newsgroup-name as encoded in UTF-8 should be regarded
as the canonical form. Reading agents may convert it to whatever as the canonical form. Reading agents may convert it to whatever
character set they are able to display (see 4.4.1) and serving character set they are able to display (see 4.4.1) and serving
agents may possibly need to convert it to some form more agents may possibly need to convert it to some form more
suitable as a filename. Simple algorithms for both kinds of suitable as a filename. Simple algorithms for both kinds of
conversion are readily available. Observe that the syntax does conversion are readily available. Observe that the syntax does
News Article Format November 2001
not allow comments within the Newsgroups header; this is to not allow comments within the Newsgroups header; this is to
simplify processing by relaying and serving agents which have a simplify processing by relaying and serving agents which have a
requirement to process this header extremely rapidly. requirement to process this header extremely rapidly.
The inclusion of folding white space within a Newsgroups-content is a The inclusion of folding white space within a Newsgroups-content is a
newly introduced feature in this standard. It MUST be accepted by all newly introduced feature in this standard. It MUST be accepted by all
conforming implementations (relaying agents, serving agents and conforming implementations (relaying agents, serving agents and
reading agents). Posting agents should be aware that such postings reading agents). Posting agents should be aware that such postings
News Article Format July 2001
may be rejected by overly-critical old-style relaying agents. When a may be rejected by overly-critical old-style relaying agents. When a
sufficient number of relaying agents are in conformance, posting sufficient number of relaying agents are in conformance, posting
agents SHOULD generate such whitespace in the form of <CRLF WS> so as agents SHOULD generate such whitespace in the form of <CRLF WS> so as
to keep the length of lines in the relevant headers (notably to keep the length of lines in the relevant headers (notably
Newsgroups and Followup-To) to no more than than 79 characters (or Newsgroups and Followup-To) to no more than than 79 characters (or
other agreed policy limit - see 4.5). Before such critical mass other agreed policy limit - see 4.5). Before such critical mass
occurs, injecting agents MAY reformat such headers by removing occurs, injecting agents MAY reformat such headers by removing
whitespace inserted by the posting agent, but relaying agents MUST whitespace inserted by the posting agent, but relaying agents MUST
NOT do so. NOT do so.
Posters SHOULD use only the names of existing newsgroups in the Posters SHOULD use only the names of existing newsgroups in the
Newsgroups header. However, it is legitimate to cross-post to Newsgroups header. However, it is legitimate to cross-post to
newsgroup(s) which do not exist on the posting agent's host, provided newsgroup(s) which do not exist on the posting agent's host, provided
that at least one of the newsgroups DOES exist there, and followup that at least one of the newsgroups DOES exist there, and followup
agents SHOULD accept this (posting agents MAY accept it, but Ought at agents SHOULD accept this (posting agents MAY accept it, but Ought at
least to alert the poster to the situation and request confirmation). least to alert the poster to the situation and request confirmation).
Relaying agents MUST NOT rewrite Newsgroups headers in any way, even Relaying agents MUST NOT rewrite Newsgroups headers in any way, even
if some or all of the newsgroups do not exist on the relaying agent's if some or all of the newsgroups do not exist on the relaying agent's
host. Serving agents MUST NOT create new newsgroups simply because an host. Serving agents MUST NOT create new newsgroups simply because an
unrecognised newsgroup-name occurs in a Newsgroups header (see 7.1 unrecognised newsgroup-name occurs in a Newsgroups header (see 7.2.1
for the correct method of newsgroup creation). for the correct method of newsgroup creation).
The Newsgroups header is intended for use in Netnews articles rather The Newsgroups header is intended for use in Netnews articles rather
than in mail messages. It MAY be used in a mail message to indicate than in mail messages. It MAY be used in a mail message to indicate
that it is a copy also posted to the listed newsgroups, but it SHOULD that it is a copy also posted to the listed newsgroups, but it SHOULD
NOT be used in a mail-only reply to a Netnews article (thus the NOT be used in a mail-only reply to a Netnews article (thus the
"inheritable" property of this header applies only to followups to a "inheritable" property of this header applies only to followups to a
newsgroup, and not to followups to the poster). Moreover, if a newsgroup, and not to followups to the poster). Moreover, if a
newsgroup-name contains any non-ASCII character, it MAY be encoded newsgroup-name contains any non-ASCII character, it MAY be encoded
using the mechanism defined in [RFC 2047] when sent by mail but, if using the mechanism defined in [RFC 2047] when sent by mail but, if
skipping to change at page 35, line 48 skipping to change at page 35, line 56
5.5.1. Forbidden newsgroup names 5.5.1. Forbidden newsgroup names
The following forms of newsgroup-name MUST NOT be used except for the The following forms of newsgroup-name MUST NOT be used except for the
specific purposes indicated: specific purposes indicated:
o Newsgroup-names having only one component. These are reserved for o Newsgroup-names having only one component. These are reserved for
newsgroups whose propagation is restricted to a single host or newsgroups whose propagation is restricted to a single host or
local network, and for pseudo-newsgroups such as "poster" (which local network, and for pseudo-newsgroups such as "poster" (which
has special meaning in the Followup-To header - see section 6.7), has special meaning in the Followup-To header - see section 6.7),
"junk" (often used by serving agents), "control" (likewise), "junk" (often used by serving agents), "control" (likewise)
"revise" and "repost" (which have special meanings in the Xref News Article Format November 2001
header - see 6.16)
o Any newsgroup-name beginning with "control." (used as pseudo- o Any newsgroup-name beginning with "control." (used as pseudo-
newsgroups by many serving agents) newsgroups by many serving agents)
o Any newsgroup-name containing the component "ctl" (likewise) o Any newsgroup-name containing the component "ctl" (likewise)
o "to" or any newsgroup-name beginning with "to." (reserved for the o "to" or any newsgroup-name beginning with "to." (reserved for the
ihave/sendme protocol described in section 7.6, and for test ihave/sendme protocol described in section 7.4, and for test
messages sent on an essentially point-to-point basis) messages sent on an essentially point-to-point basis)
News Article Format July 2001
o Any newsgroup-name beginning with "example." (reserved for o Any newsgroup-name beginning with "example." (reserved for
examples in this and other standards) examples in this and other standards)
o Any newsgroup-name containing the component "all" (because this o Any newsgroup-name containing the component "all" (because this
is used as a wildcard in some implementations) is used as a wildcard in some implementations)
A newsgroup-name SHOULD NOT appear more than once in the Newsgroups A newsgroup-name SHOULD NOT appear more than once in the Newsgroups
header. The order of newsgroup names in the Newsgroups header is not header. The order of newsgroup names in the Newsgroups header is not
significant, except for determining which moderator to send the significant, except for determining which moderator to send the
article to if more than one of the groups is moderated (see 8.2). article to if more than one of the groups is moderated (see 8.2).
skipping to change at page 36, line 52 skipping to change at page 37, line 5
Path header; this is to simplify processing by relaying and Path header; this is to simplify processing by relaying and
injecting agents which have a requirement to process this header injecting agents which have a requirement to process this header
extremely rapidly. extremely rapidly.
A relaying agent SHOULD NOT pass an article to another relaying agent A relaying agent SHOULD NOT pass an article to another relaying agent
whose path-identity (or some known alias thereof) already appears in whose path-identity (or some known alias thereof) already appears in
the Path-content. Since the comparison may be either case sensitive the Path-content. Since the comparison may be either case sensitive
or case insensitive, relaying agents SHOULD NOT generate a name which or case insensitive, relaying agents SHOULD NOT generate a name which
differs from that of another site only in terms of case. differs from that of another site only in terms of case.
News Article Format November 2001
A relaying agent MAY decline to accept an article if its own path- A relaying agent MAY decline to accept an article if its own path-
identity is already present in the Path-content or if the Path- identity is already present in the Path-content or if the Path-
content contains some path-identity whose articles the relaying agent content contains some path-identity whose articles the relaying agent
does not want, as a matter of local policy. does not want, as a matter of local policy.
NOTE: This last facility is sometimes used to detect and decline NOTE: This last facility is sometimes used to detect and decline
control messages (notably cancel messages) which have been control messages (notably cancel messages) which have been
deliberately seeded with a path-identity to be "aliased out" by deliberately seeded with a path-identity to be "aliased out" by
News Article Format July 2001
sites not wishing to act upon them. sites not wishing to act upon them.
5.6.2. Adding a path-identity to the Path header 5.6.2. Adding a path-identity to the Path header
When an injecting, relaying or serving agent receives an article, it When an injecting, relaying or serving agent receives an article, it
MUST prepend its own path-identity followed by a delimiter to the MUST prepend its own path-identity followed by a delimiter to the
beginning of the Path-content. In addition, it SHOULD then add CRLF beginning of the Path-content. In addition, it SHOULD then add CRLF
and WSP if it would otherwise result in a line longer than 79 and WSP if it would otherwise result in a line longer than 79
characters. characters.
skipping to change at page 37, line 51 skipping to change at page 38, line 5
Of the above options, nos. 1 to 3 are much to be preferred, unless Of the above options, nos. 1 to 3 are much to be preferred, unless
there are strong technical reasons dictating otherwise. In there are strong technical reasons dictating otherwise. In
particular, the injecting agent's path-identity MUST, as a special particular, the injecting agent's path-identity MUST, as a special
case, be an FQDN mailable address in the sense defined under option case, be an FQDN mailable address in the sense defined under option
1, or with an associated MX record as in option 2. 1, or with an associated MX record as in option 2.
The injecting agent's path-identity MUST be followed by the special The injecting agent's path-identity MUST be followed by the special
delimiter '%' which serves to separate the pre-injection and post- delimiter '%' which serves to separate the pre-injection and post-
injection regions of the Path-content (see 5.6.3). injection regions of the Path-content (see 5.6.3).
News Article Format November 2001
In the case of a relaying or serving agent, the delimiter is chosen In the case of a relaying or serving agent, the delimiter is chosen
as follows. When such an agent receives an article, it MUST as follows. When such an agent receives an article, it MUST
establish the identity of the source and compare it with the leftmost establish the identity of the source and compare it with the leftmost
path-identity of the Path-content. If it matches, a '/' should be path-identity of the Path-content. If it matches, a '/' should be
used as the delimiter when prepending the agent's own path-identity. used as the delimiter when prepending the agent's own path-identity.
If it does not match then the agent should prepend two entries to the If it does not match then the agent should prepend two entries to the
Path-content; firstly the true established path-identity of the Path-content; firstly the true established path-identity of the
source followed by a '?' delimiter, and then, to the left of that, source followed by a '?' delimiter, and then, to the left of that,
the agent's own path-identity followed by a '/' delimiter as usual. the agent's own path-identity followed by a '/' delimiter as usual.
News Article Format July 2001
This prepending of two entries SHOULD NOT be done if the provided and This prepending of two entries SHOULD NOT be done if the provided and
established identities match. established identities match.
Any method of establishing the identity of the source may be used Any method of establishing the identity of the source may be used
(but see 5.6.5 below), with the consideration that, in the event of (but see 5.6.5 below), with the consideration that, in the event of
problems, the agent concerned may be called upon to justify it. problems, the agent concerned may be called upon to justify it.
NOTE: The use of the '%' delimiter marks the position of the NOTE: The use of the '%' delimiter marks the position of the
injecting agent in the chain. In normal circumstances there injecting agent in the chain. In normal circumstances there
should therefore be only one `%` delimiter present, and should therefore be only one `%` delimiter present, and
skipping to change at page 38, line 51 skipping to change at page 39, line 5
identifier. The '!' delimiter may be used freely within the pre- identifier. The '!' delimiter may be used freely within the pre-
injection region, although '/' and '?' are also appropriate if used injection region, although '/' and '?' are also appropriate if used
correctly. correctly.
5.6.4. Delimiter Summary 5.6.4. Delimiter Summary
A summary of the various delimiters. The name immediately to the left A summary of the various delimiters. The name immediately to the left
of the delimiter is always that of the machine which added the of the delimiter is always that of the machine which added the
delimiter. delimiter.
News Article Format November 2001
'/' The name immediately to the right is known to be the identity of '/' The name immediately to the right is known to be the identity of
the machine from which the article was received (either because the machine from which the article was received (either because
the entry was made by that machine and we have verified it, or the entry was made by that machine and we have verified it, or
because we have added it ourselves). because we have added it ourselves).
'?' The name immediately to the right is the claimed identity of the '?' The name immediately to the right is the claimed identity of the
machine from which the article was received, but we were unable machine from which the article was received, but we were unable
to verify it (and have prepended our own view of where it came to verify it (and have prepended our own view of where it came
from, and then a '/'). from, and then a '/').
News Article Format July 2001
'%' Everything to the right is the pre-injection region followed by '%' Everything to the right is the pre-injection region followed by
the tail-entry. The name on the left is the FQDN of the the tail-entry. The name on the left is the FQDN of the
injecting agent. The presence of two '%'s in a path indicates a injecting agent. The presence of two '%'s in a path indicates a
double-injection (see 8.2.2). double-injection (see 8.2.2).
'!' The name immediately to the right is unverified. The presence of '!' The name immediately to the right is unverified. The presence of
a '!' to the left of the '%' indicates that the identity to the a '!' to the left of the '%' indicates that the identity to the
left is that of an old-style system not conformant with this left is that of an old-style system not conformant with this
standard. standard.
skipping to change at page 39, line 49 skipping to change at page 40, line 5
following them should avoid the necessity for wasteful double-entry following them should avoid the necessity for wasteful double-entry
Path additions. Path additions.
If the incoming article arrives through some TCP/IP protocol such as If the incoming article arrives through some TCP/IP protocol such as
NNTP, the IP address of the source will be known, and will likely NNTP, the IP address of the source will be known, and will likely
already have been checked against a list of known FQDNs or IP already have been checked against a list of known FQDNs or IP
addresses that the receiving site has agreed to peer with (this will addresses that the receiving site has agreed to peer with (this will
have involved a DNS lookup of a known FQDN, following CNAME chains as have involved a DNS lookup of a known FQDN, following CNAME chains as
required, to find an A record containing that source IP). required, to find an A record containing that source IP).
News Article Format November 2001
1. Where the path-identity is an FQDN (or even an arbitrary name 1. Where the path-identity is an FQDN (or even an arbitrary name
starting with a '.') it is now a simple matter to check that it is starting with a '.') it is now a simple matter to check that it is
the proper FQDN for the source, or some known registered alias the proper FQDN for the source, or some known registered alias
thereof. Alternatively, where the FQDN in the path-identity has an thereof. Alternatively, where the FQDN in the path-identity has an
associated A record, an immediate DNS lookup as above can be used associated A record, an immediate DNS lookup as above can be used
to verify it. to verify it.
2. Where the path-identity is an encoding of an IP address which does 2. Where the path-identity is an encoding of an IP address which does
not immediately match the known IP address of the source, a not immediately match the known IP address of the source, a
reverse-DNS (in-addr.arpa PTR record) lookup may be done on the reverse-DNS (in-addr.arpa PTR record) lookup may be done on the
provided address, followed by a regular DNS "A" record lookup on provided address, followed by a regular DNS "A" record lookup on
the returned name. There may be A records for several IP the returned name. There may be A records for several IP
News Article Format July 2001
addresses, of which one should match the path-identity and another addresses, of which one should match the path-identity and another
should match the source. should match the source.
3. If the path-identity fails to match any known alias for the source 3. If the path-identity fails to match any known alias for the source
(requiring the insertion of an extra path-identity for the true (requiring the insertion of an extra path-identity for the true
source followed by a '?'), simply doing a reverse DNS (PTR) lookup source followed by a '?'), simply doing a reverse DNS (PTR) lookup
on the source IP address is not sufficient to generate the true on the source IP address is not sufficient to generate the true
FQDN. The returned name must be mapped back to A records to assure FQDN. The returned name must be mapped back to A records to assure
it matches the source's IP address. it matches the source's IP address.
skipping to change at page 40, line 45 skipping to change at page 41, line 5
that it got it from dialup123.baz.isp.example. "x" is the that it got it from dialup123.baz.isp.example. "x" is the
default tail entry, though sometimes a real userid is put there. default tail entry, though sometimes a real userid is put there.
The article was relayed, perhaps by UUCP, to the machine known, The article was relayed, perhaps by UUCP, to the machine known,
at least to its downstream, as "barbaz". at least to its downstream, as "barbaz".
Barbaz relayed it to old.site.example, which does not yet Barbaz relayed it to old.site.example, which does not yet
conform to this standard (hence the '!' delimiter). So one conform to this standard (hence the '!' delimiter). So one
cannot be sure that it really came from barbaz. cannot be sure that it really came from barbaz.
News Article Format November 2001
Old.site.example relayed it to a site claiming to have the IP Old.site.example relayed it to a site claiming to have the IP
address [10.123.12.2], and claiming (by using the '/' delimiter) address [10.123.12.2], and claiming (by using the '/' delimiter)
to have verified that it came from old.site.example. to have verified that it came from old.site.example.
[10.123.12.2] relayed it to "foo-server" which, not being [10.123.12.2] relayed it to "foo-server" which, not being
convinced that it truly came from [10.123.12.2], did a reverse convinced that it truly came from [10.123.12.2], did a reverse
lookup on the actual source and concluded it was known as lookup on the actual source and concluded it was known as
bar.isp.example (that is not to say that [10.123.12.2] was not a bar.isp.example (that is not to say that [10.123.12.2] was not a
correct IP address for bar.isp.example, but simply that that correct IP address for bar.isp.example, but simply that that
connection could not be substantiated by foo-server). Observe connection could not be substantiated by foo-server). Observe
that foo-server has now added two entries to the Path. that foo-server has now added two entries to the Path.
News Article Format July 2001
"foo-server" is a locally significant name within the complex "foo-server" is a locally significant name within the complex
site of many machines run by foo.isp.example, so the latter site of many machines run by foo.isp.example, so the latter
should have no problem recognizing foo-server and using a '/' should have no problem recognizing foo-server and using a '/'
delimiter. Presumably foo.isp.example then delivered the delimiter. Presumably foo.isp.example then delivered the
article to its direct clients. article to its direct clients.
It appears that foo.isp.example and old.site.example decided to It appears that foo.isp.example and old.site.example decided to
fold the line, on the grounds that it seemed to be getting a fold the line, on the grounds that it seemed to be getting a
little too long. little too long.
skipping to change at page 41, line 47 skipping to change at page 42, line 5
Reply-To-content = From-content ; see 5.2 Reply-To-content = From-content ; see 5.2
In the absence of Reply-To, the reply address(es) is the address(es) In the absence of Reply-To, the reply address(es) is the address(es)
in the From header. For this reason a Reply-To SHOULD NOT be included in the From header. For this reason a Reply-To SHOULD NOT be included
if it just duplicates the From header. if it just duplicates the From header.
NOTE: Use of a Reply-To header is preferable to including a NOTE: Use of a Reply-To header is preferable to including a
similar request in the article body, because reply agents can similar request in the article body, because reply agents can
take account of Reply-To automatically. take account of Reply-To automatically.
News Article Format November 2001
An address of "<>" in the Reply-To header MAY be used to indicate An address of "<>" in the Reply-To header MAY be used to indicate
that the poster does not wish to recieve email replies. that the poster does not wish to recieve email replies.
6.1.1. Examples 6.1.1. Examples
Reply-To: John Smith <jsmith@site.example> Reply-To: John Smith <jsmith@site.example>
Reply-To: John Smith <jsmith@site.example>, dave@isp.example Reply-To: John Smith <jsmith@site.example>, dave@isp.example
Reply-To: John Smith <jsmith@site.example>,andrew@isp.example, Reply-To: John Smith <jsmith@site.example>,andrew@isp.example,
fred@site2.example fred@site2.example
Reply-To: Please do not reply <> Reply-To: Please do not reply <>
News Article Format July 2001
6.2. Sender 6.2. Sender
The Sender header specifies the mailbox of the entity which actually The Sender header specifies the mailbox of the entity which actually
sent this article, if that entity is different from that given in the sent this article, if that entity is different from that given in the
From header or if more than one address appears in the From header. From header or if more than one address appears in the From header.
This header SHOULD NOT appear in an article unless the sender is This header SHOULD NOT appear in an article unless the sender is
different from the poster. This header is appropriate for use by different from the poster. This header is appropriate for use by
automatic article posters. The content syntax makes use of syntax automatic article posters. The content syntax makes use of syntax
defined in [RFC 2822]. defined in [RFC 2822].
skipping to change at page 42, line 48 skipping to change at page 43, line 5
Keywords-content = phrase *( "," phrase ) Keywords-content = phrase *( "," phrase )
NOTE: The list is comma separated NOT space separated. NOTE: The list is comma separated NOT space separated.
6.5. Summary 6.5. Summary
The Summary header is a short phrase summarizing the article's The Summary header is a short phrase summarizing the article's
content. content.
News Article Format November 2001
Summary-content = 1*( [FWS] utext ) Summary-content = 1*( [FWS] utext )
The summary should be terse. Authors Ought to avoid trying to cram The summary should be terse. Authors Ought to avoid trying to cram
their entire article into the headers; even the simplest query their entire article into the headers; even the simplest query
usually benefits from a sentence or two of elaboration and context, usually benefits from a sentence or two of elaboration and context,
and not all reading agents display all headers. On the other hand the and not all reading agents display all headers. On the other hand the
summary should give more detail than the Subject. summary should give more detail than the Subject.
News Article Format July 2001
6.6. Distribution 6.6. Distribution
The Distribution header is an inheritable header (see 4.2.2.2) which The Distribution header is an inheritable header (see 4.2.2.2) which
specifies geographical or organizational limits to an article's specifies geographical or organizational limits to an article's
propagation. propagation.
Distribution-content= distribution *( dist-delim distribution ) Distribution-content= distribution *( dist-delim distribution )
dist-delim = "," dist-delim = ","
distribution = positive-distribution / distribution = positive-distribution /
negative-distribution negative-distribution
skipping to change at page 43, line 51 skipping to change at page 44, line 5
have been reluctant, historically speaking, to apply such have been reluctant, historically speaking, to apply such
filters (except to ensure that distributions local to their own filters (except to ensure that distributions local to their own
site or cooperating subnet did not escape); moreover they tended site or cooperating subnet did not escape); moreover they tended
to configure their filters on an "all but those listed" basis, to configure their filters on an "all but those listed" basis,
so that new and hitherto unheard of distributions would not be so that new and hitherto unheard of distributions would not be
caught. Indeed many "hub" sites actually wanted to receive all caught. Indeed many "hub" sites actually wanted to receive all
possible distributions so that they could feed on to their possible distributions so that they could feed on to their
clients in all possible geographical (or organizational) clients in all possible geographical (or organizational)
regions. regions.
News Article Format November 2001
Therefore, it is desirable to provide facilities for rejecting Therefore, it is desirable to provide facilities for rejecting
unwanted distributions at the receiving end. Indeed, it may be unwanted distributions at the receiving end. Indeed, it may be
simpler to do so locally than to inform each sending site of simpler to do so locally than to inform each sending site of
what is required, especially in the case of specialized what is required, especially in the case of specialized
distributions (for example for control messages, such as cancels distributions (for example for control messages, such as cancels
from certain issuers) which might need to be added at short from certain issuers) which might need to be added at short
notice. Tha possibility for reading agents to filter notice. Tha possibility for reading agents to filter
distributions has been provided for the same reason. distributions has been provided for the same reason.
News Article Format July 2001
Exceptionally, ALL relaying agents are deemed willing to supply or Exceptionally, ALL relaying agents are deemed willing to supply or
accept the distribution "world", and NO relaying agent should supply accept the distribution "world", and NO relaying agent should supply
or accept the distribution "local". However, "world" SHOULD NEVER be or accept the distribution "local". However, "world" SHOULD NEVER be
mentioned explicitly since it is the default when the Distribution mentioned explicitly since it is the default when the Distribution
header is absent entirely. "All" MUST NOT be used as a header is absent entirely. "All" MUST NOT be used as a
distribution-name. Distribution-names SHOULD contain at least three distribution-name. Distribution-names SHOULD contain at least three
characters, except when they are two-letter country names as in [ISO characters, except when they are two-letter country names as in [ISO
3166]. Distribution-names are case-insensitive (i.e. "US", "Us" and 3166]. Distribution-names are case-insensitive (i.e. "US", "Us" and
"us" all specify the same distribution). "us" all specify the same distribution).
skipping to change at page 44, line 53 skipping to change at page 45, line 5
NOTE: A poster who wishes both a personal reply and a followup NOTE: A poster who wishes both a personal reply and a followup
post should include a Mail-Copies-To header (6.8). post should include a Mail-Copies-To header (6.8).
6.8. Mail-Copies-To 6.8. Mail-Copies-To
The Mail-Copies-To header indicates whether or not the poster wishes The Mail-Copies-To header indicates whether or not the poster wishes
to have followups to an article emailed in addition to being posted to have followups to an article emailed in addition to being posted
to Netnews and, if so, establishes the address to which they should to Netnews and, if so, establishes the address to which they should
be sent. be sent.
News Article Format November 2001
The content syntax makes use of syntax defined in [RFC 2822], but The content syntax makes use of syntax defined in [RFC 2822], but
subject to the revised definition of local-part given in section 5.2. subject to the revised definition of local-part given in section 5.2.
Mail-Copies-To-content = copy-addr / "nobody" / "poster" Mail-Copies-To-content = copy-addr / "nobody" / "poster"
copy-addr = mailbox copy-addr = mailbox
News Article Format July 2001
The keyword "nobody" indicates that the poster does not wish copies The keyword "nobody" indicates that the poster does not wish copies
of any followup postings to be emailed. This indication is widely of any followup postings to be emailed. This indication is widely
seen as a very strong wish, and is to be taken as the default when seen as a very strong wish, and is to be taken as the default when
this header is absent. this header is absent.
The keyword "poster" indicates that the poster wishes a copy of any The keyword "poster" indicates that the poster wishes a copy of any
followup postings to be emailed to him. followup postings to be emailed to him.
Otherwise, this header contains a copy-addr to which the poster Otherwise, this header contains a copy-addr to which the poster
skipping to change at page 45, line 53 skipping to change at page 46, line 5
falls outside the scope of this standard. falls outside the scope of this standard.
When emailing a copy, the followup agent SHOULD also include a When emailing a copy, the followup agent SHOULD also include a
"Posted-And-Mailed: yes" header (6.9). "Posted-And-Mailed: yes" header (6.9).
NOTE: In addition to the Posted-And-Mailed header, some followup NOTE: In addition to the Posted-And-Mailed header, some followup
agents also include within the body a mention that the article agents also include within the body a mention that the article
is both posted and mailed, for the benefit of reading agents is both posted and mailed, for the benefit of reading agents
that do not normally show that header. that do not normally show that header.
News Article Format November 2001
6.9. Posted-And-Mailed 6.9. Posted-And-Mailed
Posted-And-Mailed-content = "yes" / "no" Posted-And-Mailed-content = "yes" / "no"
This header, when used with the "yes" keyword, indicates that the This header, when used with the "yes" keyword, indicates that the
article has been both posted to the specified newsgroups and emailed. article has been both posted to the specified newsgroups and emailed.
It SHOULD be used when replying to the poster of an article to which It SHOULD be used when replying to the poster of an article to which
News Article Format July 2001
this one is a followup (see the Mail-Copies-To header in section 6.8) this one is a followup (see the Mail-Copies-To header in section 6.8)
and it MAY be used when any article is also mailed to a recipient(s) and it MAY be used when any article is also mailed to a recipient(s)
identified in a To and/or Cc header that is also present. The "no" identified in a To and/or Cc header that is also present. The "no"
keyword is included for the sake of completeness; it MAY be used to keyword is included for the sake of completeness; it MAY be used to
indicate the opposite state, but is redundant insofar as it only indicate the opposite state, but is redundant insofar as it only
describes the default state when this header is absent. describes the default state when this header is absent.
This header, if present, MUST be included in both the posted and This header, if present, MUST be included in both the posted and
emailed versions of the article. The Newsgroups header of the posted emailed versions of the article. The Newsgroups header of the posted
article SHOULD be included in the email version as recommended in article SHOULD be included in the email version as recommended in
skipping to change at page 46, line 52 skipping to change at page 46, line 60
precursor. A followup to an article which had a References header precursor. A followup to an article which had a References header
MUST have a References header containing the precursor's References- MUST have a References header containing the precursor's References-
content (subject to trimming as described below) plus the precursor's content (subject to trimming as described below) plus the precursor's
message identifier appended to the end of the list (separated from it message identifier appended to the end of the list (separated from it
by CFWS). by CFWS).
Followup agents SHOULD NOT trim message identifiers out of a Followup agents SHOULD NOT trim message identifiers out of a
References header unless the number of message identifiers exceeds References header unless the number of message identifiers exceeds
21, at which time trimming SHOULD be done by removing sufficient 21, at which time trimming SHOULD be done by removing sufficient
identifiers starting with the second so as to bring the total down to identifiers starting with the second so as to bring the total down to
21. However, it would be wrong to assume that References headers 21 (but the first message identifier MUST NOT be trimmed). However,
containing more than 21 message identifiers will not occur. News Article Format November 2001
it would be wrong to assume that References headers containing more
than 21 message identifiers will not occur.
6.10.1. Examples 6.10.1. Examples
References: <i4g587y@site1.example> References: <i4g587y@site1.example>
References: <i4g587y@site1.example> <kgb2231+ee@site2.example> References: <i4g587y@site1.example> <kgb2231+ee@site2.example>
News Article Format July 2001
References: <i4g587y@site1.example> <kgb2231+ee@site2.example> References: <i4g587y@site1.example> <kgb2231+ee@site2.example>
<222@site1.example> <87tfbyv@site7.example> <222@site1.example> <87tfbyv@site7.example>
<67jimf@site666.example> <67jimf@site666.example>
References: <i4g587y@site1.example> <kgb2231+ee@site2.example> References: <i4g587y@site1.example> <kgb2231+ee@site2.example>
<tisjits@smeghead.example> <tisjits@smeghead.example>
6.11. Expires 6.11. Expires
The Expires header specifies a date and time when the article is The Expires header specifies a date and time when the article is
deemed to be no longer relevant and could usefully be removed deemed to be no longer relevant and could usefully be removed
skipping to change at page 47, line 53 skipping to change at page 48, line 5
such redistribution to take place. The optional Filename parameter such redistribution to take place. The optional Filename parameter
can then be used to suggest a filename under which the article should can then be used to suggest a filename under which the article should
be stored. Further extensions to this standard may provide additional be stored. Further extensions to this standard may provide additional
parameters for administration of the archiving process. parameters for administration of the archiving process.
NOTE: This standard does not attempt to define the length of NOTE: This standard does not attempt to define the length of
"long-term", since it is dependent on many factors, including "long-term", since it is dependent on many factors, including
the retention policies of individual sites, and the customs or the retention policies of individual sites, and the customs or
policies established for particular newsgroup or hierarchies. policies established for particular newsgroup or hierarchies.
News Article Format November 2001
NOTE: Posters are cautioned that some sites may not implement NOTE: Posters are cautioned that some sites may not implement
the "no" option of the Archive header correctly. In some the "no" option of the Archive header correctly. In some
jurisdictions non-compliance with this header may constitute a jurisdictions non-compliance with this header may constitute a
breach of copyright or of other legal provisions. Moreover, breach of copyright or of other legal provisions. Moreover,
even if this header prevents the poster's words from being even if this header prevents the poster's words from being
archived publicly, it does nothing to prevent the archiving of a archived publicly, it does nothing to prevent the archiving of a
followup in which those words are quoted. followup in which those words are quoted.
News Article Format July 2001
6.13. Control 6.13. Control
The Control header marks the article as a control message, and The Control header marks the article as a control message, and
specifies the desired actions (other than the usual ones of storing specifies the desired actions (other than the usual ones of storing
and/or relaying the article). and/or relaying the article).
Control-content = CONTROL-verb CONTROL-argument Control-content = CONTROL-verb CONTROL-argument
CONTROL-verb = <the verb defined in this standard CONTROL-verb = <the verb defined in this standard
(or an extension of it) for a specific (or an extension of it) for a specific
CONTROL message> CONTROL message>
skipping to change at page 48, line 30 skipping to change at page 48, line 38
CONTROL message> CONTROL message>
arguments = *( CFWS value ) ; see 4.1 arguments = *( CFWS value ) ; see 4.1
[Observe that <value> reqires the use of a quoted-string if any [Observe that <value> reqires the use of a quoted-string if any
tspecials or non-ASCII characters are involved. This is a restriction on tspecials or non-ASCII characters are involved. This is a restriction on
present usage, but follows MIME practice.] present usage, but follows MIME practice.]
The verb indicates what action should be taken, and the argument(s) The verb indicates what action should be taken, and the argument(s)
(if any) supply details. In some cases, the body of the article may (if any) supply details. In some cases, the body of the article may
also contain details. Section 7 describes all of the standard verbs. also contain details. Section 7 describes all of the standard verbs.
An article with a Control header MUST NOT also have a Replaces or An article with a Control header MUST NOT also have a Supersedes
Supersedes header. header.
NOTE: The presence of a Subject header starting with the string NOTE: The presence of a Subject header starting with the string
"cmsg " and followed by a Control-content MUST NOT be construed, "cmsg " and followed by a Control-content MUST NOT be construed,
in the absence of a proper Control header, as a request to in the absence of a proper Control header, as a request to
perform that control action (as may have occurred in some legacy perform that control action (as may have occurred in some legacy
software). See also section 5.4. software). See also section 5.4.
6.14. Approved 6.14. Approved
The Approved header indicates the mailing addresses (and possibly the The Approved header indicates the mailing addresses (and possibly the
full names) of the persons or entities approving the article for full names) of the persons or entities approving the article for
posting. posting.
Approved-content = From-content ; see 5.2 Approved-content = From-content ; see 5.2
Each mailbox contained in the Approved-content MUST be that of the Each mailbox contained in the Approved-content MUST be that of the
person or entity in question, and one of those mailboxes MUST be that person or entity in question, and one of those mailboxes MUST be that
of the actual injector of the article. of the actual injector of the article.
[This is the start of an attempt to strengthen this header. It should be
a TOSSable offence to put a dummy or invalid address in here. Later, News Article Format November 2001
when we have some form of authentication, I would hope to be able to say
more.]
An Approved header is required in all postings to moderated An Approved header is required in all postings to moderated
newsgroups. If this header is not present in such postings, then newsgroups. If this header is not present in such postings, then
relaying and serving agents MUST reject the article. Please see relaying and serving agents MUST reject the article. Please see
section 8.2.2 for how injecting agents should treat postings to section 8.2.2 for how injecting agents should treat postings to
moderated groups that do not contain this header. moderated groups that do not contain this header.
News Article Format July 2001
An Approved header is also required in certain control messages, to An Approved header is also required in certain control messages, to
reduce the risk of accidental posting of same; see the relevant parts reduce the risk of accidental posting of same.
of section 7.
6.15. Replaces / Supersedes NOTE: The presence of an Approved header indicates that the
person or entity identified claims to have the necessary
authority to post the article in question, thus enabling sites
that dispute that authority to refuse to accept or to act upon
it. However, the mere presence of the header is insufficient to
provide assurance that it indeed originated from that person or
entity, and it is therefore desirable that it be included within
some digital signature scheme (see 7.1), especially in the case
of control messages (section 7).
These two headers contain one or more message identifiers that the 6.15. Supersedes
current article is expected to replace or supersede. All listed
articles MUST be treated as though a "cancel" control message had The Supersedes header contains a message identifier specifying an
article to be superseded upon the arrival of this one. The specified
article MUST be treated as though a "cancel" control message had
arrived for the article (but observe that a site MAY choose not to arrived for the article (but observe that a site MAY choose not to
honour a "cancel" message, especially if its authenticity is in honour a "cancel" message, especially if its authenticity is in
doubt). doubt). The content syntax makes use of syntax defined in [RFC 2822].
6.15.1. Syntax and Semantics
The Replaces and Supersedes headers specify articles to be cancelled
on arrival of this one. The content syntax makes use of syntax
defined in [RFC 2822].
Replaces-content = msg-id *( CFWS msg-id )
Replaces-header-parameter
= Disposition-token "=" [CFWS]
( Disposition-value /
DQUOTE Disposition-value DQUOTE )
[CFWS]
; for USENET-header-parameters see 4.1
Disposition-token = [CFWS] "disposition" [CFWS]
Disposition-value = "replace" / "revise" / "repost"
Supersedes-content = msg-id Supersedes-content = msg-id
NOTE: There is no "c" in "Supersedes". NOTE: There is no "c" in "Supersedes".
If an article contains a Replaces header, then the old articles If an article contains a Supersedes header, then the old article
mentioned SHOULD simply be deleted by the serving agent, as in a mentioned SHOULD be withdrawn from circulation or access, as in a
cancel message (7.5), and the new article inserted into the system as cancel message (7.3), and the new article inserted into the system as
any other new article would be. any other new article would have been.
A Replaces-header-parameter is only meaningful when it occurs within
a Replaces-content. If its Disposition-value is "revise" or "repost"
(or if the Replaces-header-parameter is absent, then by default)
reading agents Ought Not to show the article as an "unread" article
unless the replaced article(s) were themselves all unread, except
when the reader has configured his reading agent otherwise.
Moreover, if a Disposition-value is "revise" or "repost", serving
agents that generate a local Xref header MUST then include additional
"revise" or "repost" information as set out in section 6.16.
NOTE: A replacement with "disposition=replace" is intended to be
used in the case of an article that is sufficiently different
from its predecessors that it is advisable for readers to see it
again. A replacement with "disposition=revise" is intended to
be used in the case of a minor change, unworthy of being brought
News Article Format July 2001
to the attention of a reader who has already read one of its
predecessors. A replacement with "disposition=repost" is
intended to be used in the case of an article identical to the
one replaced (but possibly being reposted because the earlier
one had likely expired).
NOTE: A reader who elects to ignore all the articles available
in a newsgroup (perhaps on the occasion of accessing that
newsgroup for the first time) will likely have them all marked
as "already read", unless the reading agent provides a distinct
mark such as "never offered". This could lead to a later
replacement with "revise" or "repost" for one of those articles
being missed.
The Supersedes header is obsolescent, is provided only for
compatibility with existing software, and may be removed entirely in
some future version of this standard. Its meaning is the same as that
of a corresponding Replaces header with its Replaces-header-parameter
set to "disposition=replace", and whenever a Supersedes header is
provided a matching Replaces header SHOULD be provided as well.
Observe that the Supersedes header makes provision for only a single
msg-id.
Until the Replaces header has become widely implemented, software
SHOULD generate Replaces headers with only one msg-id, and cancel
control messages SHOULD be issued if needed for further identifiers.
Moreover, until that time, any article containing a Replaces header
SHOULD contain also a Supersedes header (or alternatively be
accompanied by a Control cancel message) for that same msg-id, to
ensure that older systems still at least remove the predecessor.
When a message contains both a Replaces and a Supersedes header they
MUST be for the same msg-id. Furthermore, to resolve any doubt, the
Replaces header shall be deemed to take priority.
Whatever security or authentication mechanisms are required for a
Control cancel message MUST also be required for an article with a
Replaces or Supersedes header. In the absence or failure of such
checks, the article SHOULD be discarded, or at most stored as an
ordinary article.
[We can write something more constructive in here as soon as the
situation with regard to cancel-locks and signed headers has been
clarified.]
6.15.2. Message-ID version procedure
Whilst this procedure is not essential for the operation of Netnews,
it SHOULD be supported by all serving agents. However, for the
procedure to work, all the msg-ids in the Replaces-content MUST be
those of successive replacements of the same original article, and
all be generated as described below.
[Whilst the procedure about to be described will undoubtedly work, it
must be pointed out that life would be much simpler if there was only a
single msg-id allowed in a Replaces-content.]
News Article Format July 2001
6.15.2.1. Message version numbers
According to [MESSFOR], and omitting the obsolete forms, the syntax
of the left hand side of a msg-id (the part before the "@") is given
by:
id-left-side = dot-atom-text / no-fold-quote
Consider this to be replaced by:
id-left-side = ( atom-text / no-fold-quote )
*( dollars-sequence )
dollars-sequence = version-number / random-dollars-sequence
version-number = "$" %d118 "=" 1*DIGIT ; $v=digits
random-dollars-sequence
= "$" 1*atom-text
Whilst this is admittedly ambiguous ("$" is already a possible value
of atom-text) and does not in fact change what is allowable as an
id-left-side, it does serve to allow dollars-sequences such as
version-number (and any others that may be added by extensions to
this standard) to be distinguished within a message identifier and
utilized by agents which can understand them. Observe that no-fold-
quotes cannot occur within a dollars-sequence.
Posters and/or posting agents when replacing (or superseding)
articles SHOULD arrange that the message identifier of the
replacement follows the following convention, generating what are
known as "version-number" message identifiers. This is to enable the
new version of the article to be retrieved by its original message
identifier, notably when it occurs in a URL of the form
<news:message-identifier> [RFC 1738].
1. If the id-left-side of the most recent predecessor's message
identifier contains a leftmost version-number "$v=<n>", where <n>
is an integer version number, possibly followed by one or more
random-dollars-sequences, the replacement message identifier
should be obtained by replacing the <n> with the integer <n+1> and
providing a different random-dollars-sequence(s). For example
<foo$v=3$XYZ@faq-site.example> becomes <foo$v=4$PQR@faq-
site.example>.
2. If the id-left-side of the predecessor's message identifier does
not contain a version-number, the replacement message identifier
should be obtained by appending the string "$v=1", preferably
followed by a random-dollars-sequence(s), to that id-left-side.
For example <foo@faq-site.example> becomes <foo$v=1$ABC@faq-
site.example>.
Any random-dollars-sequence so added MUST NOT start with "$<l>=" for
any letter <l>.
News Article Format July 2001
NOTE: The presence of a random-dollars-sequence following the
version-number is intended to prevent a malicious poster from
preempting the posting of a replacement article by guessing its
likely message identifier.
Attempts to fetch a replaced (or superseded) article by its message
identifier SHOULD retrieve instead its most recent successor which
has used the version-number convention. This is intended to ensure
that "news:" URLs [RFC 1738] will continue to work even when an
article has been replaced, but agents Ought then to draw the user's
attention to the fact that the message identifier retrieved differed
from that requested.
6.15.2.2. Implementation and Use Note
[Here is the implementation technique that we discussed, based on the
use of a conventional History file. This is a sanity check for our own
use, not intended to go in the final text. There are two cases to
consider:
A. Traditional implementations (e.g. CNEWS) where each History file line
includes a full message-identifier plus an item for each group in which
the article appears. Thus History file entries are of variable length,
and it is impractical to update them in situ.
B. History files made up of fixed length records (e.g. as proposed for
INN), which enables entries to be overwritten in situ. The History line
typically contains a hash of the message identifier plus some pointer to
an object representing the article as stored.
We consider the traditional case first:
1A. Ensure that the implementation of DBZ is not upset if the same key
is attempted to be stored a second time, and that such a key always
retrieves the latest record indexed by that key.
2A. Additions to the History file are always made at the end. Removals
or changes to existing entries are only made by the expire program. An
entry for a Replaced (or otherwise cancelled) article will remain until,
first, the expire program removes the links to the articles that are no
longer stored, and later on removes the entire entry according to its
expiry date. For every entry containing a '$v=n' followed by random-
dollars-sequences there will be an immediately following entry identical
but for the omission of that '$v=n' and of the random-dollars-sequences.
Thus there may be several entries with identical message-ids but,
because of the change to DBZ just described, only the most recent will
ever be seen except by programs that access the History file directly,
rather than by its index.
3A. When an article is Replaced, at the same time as the successor
article is entered into the History file, with '$v=7' say, a duplicate
entry (same article list) is entered under the same key, modified by
removing any leftmost '$v=n' and the following random-dollars-sequences
from it.
For the fixed length implementations, these steps become:
News Article Format July 2001
1B. DBZ does not need to be changed.
2B. History file entries may be updated in situ. An entry for a Replaced
(or otherwise cancelled) article can be overwritten with that for the
new article (or with a suitable indication of cancellation). For every
entry containing a '$v=n' followed by random-dollars-sequences there
will always exist a second entry identical but for the omission of that
'$v=n' and of the random-dollars-sequences, both entries pointing to the
same article object.
3B. When an article is Replaced, at the same time as the successor
article is entered into the History file, with '$v=7' say, the existing
entry without the leftmost '$v=n' and the following random-dollars-
sequences is overwritten (with the new article and new expiry date,
after destroying the old article, of course). If no such entry exists,
one is created.
>From here on, the two cases are the same:
4. Provide a call to a routine which, if asked to retrieve any message
identifier with '$v=n' and finding it missing (or rather linked to no
stored groups), immediately tries again without the '$v=n' and its
random-dollars-sequences. NOTE. We don't want this behaviour when
checking whether we already have an article offered to us by IHAVE, only
in response to an ARTICLE command. So this needs to be an extra call in
DBZ, in addition to the 'fetch' or 'dbzfetch' calls, to be used in the
proposed extension to the NNTP ARTICLE command. Observe that if the
requested '$v=n' is present and linked to stored articles (for whatever
reason) then you will be given exactly that version, even if later ones
are stored as well.
5. NOTE that I have dropped the idea of having '$v=0', because you can
never be sure that the very first issue of the FAQ used it, so you have
to provide the versionless root as well. If someone asks for '$v=0' (or
any '$v=n') the algorithm I gave will still find it via the root. So we
don't care what people put in URLs.
6. You are supposed to cancel the replaced/superseded article. If you
REALLY want to keep the old ones around a little longer, then this
implementation will not work if you want the latest to be retrieved
automatically - you will have to invent something much more complicated.
7. Having said all that, here follows a brief account of the same thing,
but short enough to be included in our document (the convention being
that implementation issues are hinted at, rather than being described in
full detail).]
Typically, a news database will index a Replacement article both by
its "version-number" message identifier (containing a "$v=" tag
followed by a random-dollars-sequence) and by its "root" version
(without the "$v=" tag or any following random-dollars-sequence).
Thus when a request for an article comes in that is not present under
the version-number requested, any article that is present and indexed
by the corresponding root version can be retrieved instead. The
indexing mechanism needs to be such that, although the root version
may have at times referred to many different articles, it is always
News Article Format July 2001
the current one that is retrieved.
NOTE: The presence of a version-number in the message identifier
of an article without a Replaces or Supersedes header causes no
extra action (it is just an ordinary article). Observe also that
if an article with the exact message identifier (even though it
contains a version-number) is, for whatever reason, already
present on the serving agent, that article will always be
retrieved in preference to the one indexed by any root version.
6.15.2.3. The Message-Version NNTP extension
The following Service Extension to the NNTP protocol is defined in
accordance with the framework set out in [NNTP], and is to be
registered with IANA.
Name of the extension: Message-Version
Extension Label (for the LIST EXTENSIONS command): MESSAGE-VERSION
Additional keywords, syntax and parameters: None
In a server supporting this extension, the behaviour of the ARTICLE,
HEAD, BODY and STAT commands when the parameter is a <message-id> is
modified as follows.
If the specified article is available on the server then it (or its
Head, Body or Status as appropriate) is returned in the normal
manner. Otherwise, if a leftmost id-left-side of the <message-id>
(the part before the '@') contains "$v=<n>", where <n> is an integer
version number, that "$v=<n>"and everything following it is stripped
from that id-left-side and the article (Head, Body or Status) with
the stripped <message-id> is returned instead. Otherwise (no article
is available under the original, or any stripped, <message-id>), a
430 response is given as usual.
NOTE: If the client is concerned to know whether the article
found was exactly the one requested or a replacement article
corresponding to a stripped <message-id>, then it has only to
compare the <message-id> requested with that returned in the 220
(221, 222, or 223) response. The intent of this extension is to
enable the retrieval of the current version of an article (such
as a regularly posted FAQ) referenced by a "news:" URL [RFC-
1738] which quotes the <message-id> of an earlier version.
NOTE: This extension has no effect on the IHAVE command.
6.15.2.4. Examples
Example 1. The first edition of a FAQ is posted with a message
identifier of the form: <examplegroup-faq@faq-site.example>. The
next (but identical) version, a month later, has:
Message-ID: <examplegroup-faq$v=1$A1b@faq-site.example>
Replaces: <examplegroup-faq@faq-site.example>; disposition=repost
Supersedes: <examplegroup-faq@faq-site.example>
News Article Format July 2001
Observe the inclusion of a Supersedes header as well, it being
presumed that the Replaces header was not yet widely implemented at
that time.
The next one, another month later (and with some significant changes
justifying the use of "replace" rather than "repost") has:
Message-ID: <examplegroup-faq$v=2$B2b@faq-site.example>
Replaces: <examplegroup-faq$v=1$A1b@faq-site.example>
<examplegroup-faq@faq-site.example>; disposition=replace
Supersedes: <examplegroup-faq$v=1$A1b@faq-site.example>
The next one, another month later, has:
Message-ID: <examplegroup-faq$v=3$C3c@faq-site.example>
Replaces: <examplegroup-faq$v=2$B2b@faq-site.example>
<examplegroup-faq$v=1$A1b@faq-site.example>; disposition=repost
Supersedes: <examplegroup-faq$v=2$B2b@faq-site.example>
Note that the only reason to include more than one message identifier
in the Replaces is in case a site had missed the previous
Replacement. It is hardly necessary with such a long interval between
the postings.
Under the above, on systems using the version-number system (which is
optional) requests for any message identifier in the chain will
always return the most recent. As such the URL "news:examplegroup-
faq@faq-site.example" will always work, making it suitable to appear
in HTML documents.
Example 2. A user posts a message <myuniquepart@mysite.example> to
the net. She notices a typo and, 2 minutes later, posts with:
Message-ID: <myuniquepart$v=1$xxx@mysite.example>
Replaces: <myuniquepart@mysite.example>; disposition=revise
3 minutes later she sees another typo, and posts:
Message-ID: <myuniquepart$v=2$yyy@mysite.example>
Replaces: <myuniquepart$v=1$xxx@mysite.example>
<myuniquepart@mysite.example>; disposition=revise
The two bad versions will be replaced with the 3rd, even if a site Whatever security or authentication checks are normally applied to a
never sees the 2nd due to batching or feed problems (thus the use of Control cancel message (or may be prescribed for such messages by
two message identifiers is quite useful in this case, in some extension to this standard - see the remarks in 7.1 and 7.3)
contradistinction to the first example). Requests for the original MUST also be applied to an article with a Supersedes header. In the
will return the 3rd. event of the failure of such checks, the article SHOULD be discarded,
or at most stored as an ordinary article.
6.16. Xref 6.16. Xref
The Xref header is a variant header (4.2.2.3) which indicates where The Xref header is a variant header (4.2.2.3) which indicates where
an article was filed by the last server to process it, and whether it an article was filed by the last server to process it.
is a Replacement (6.15) for an earlier article.
News Article Format July 2001
Xref-content = [CFWS] server-name 1*( CFWS location ) Xref-content = [CFWS] server-name 1*( CFWS location )
server-name = path-identity ; see 5.6.1 server-name = path-identity ; see 5.6.1
location = newsgroup-name ":" article-locator location = newsgroup-name ":" article-locator
[ CFWS ( "revise" / "repost" )
":" article-locator ]
article-locator = 1*( %x21-7E ) ; US-ASCII printable characters article-locator = 1*( %x21-7E ) ; US-ASCII printable characters
News Article Format November 2001
The server-name is included so that software can determine which The server-name is included so that software can determine which
serving agent generated the header. The locations specify what serving agent generated the header. The locations specify what
newsgroups the article was filed under (which may differ from those newsgroups the article was filed under (which may differ from those
in the Newsgroups header) and where it was filed under them. The in the Newsgroups header) and where it was filed under them. The
exact form of an article-locator is implementation-specific. exact form of an article-locator is implementation-specific.
NOTE: The traditional form of an article-locator is a decimal NOTE: The traditional form of an article-locator is a decimal
number, with articles in each newsgroup numbered consecutively number, with articles in each newsgroup numbered consecutively
starting from 1. NNTP demands that such a model be provided, and starting from 1. NNTP demands that such a model be provided, and
much other software expects it, but it seems desirable to permit much other software expects it, but it seems desirable to permit
flexibility for unorthodox implementations. flexibility for unorthodox implementations.
Whenever an Xref header is created by an agent for an article which
includes a Replaces header with "disposition=revise" or
"disposition=repost" (6.15), it SHOULD include, within the location
field of each newsgroup in the Newsgroups header of whichever of the
old articles referenced in that Replaces header is still current, a
corresponding "revise:<old-article-locator>" or "repost:<old-
article-locator>" for the oldest article known to be being replaced,
where <old-article-locator> is the article-locator under which that
oldest article was filed. If the Replaces header has a
"disposition=replace" (explicit or implicit) the Xref header MUST NOT
include any such reference to an <old-article-locator>.
NOTE: This is to enable reading agents to avoid showing that
article to users who have already read any of those older
articles (see 6.15). Because several replacements for a given
article may arrive in the period between attempts by a reader to
read a given newsgroup, it is useful to include the oldest one
in the Xref header. The information necessary to determine this
article can be obtained from the Xref header of the current
version of the article just before it is deleted. Observe that a
server that never received one of the replaced articles can
still generate suitable information from whichever earlier
version it actually has. This is why it is useful for a Replaces
header to mention more than one earlier article, especially when
replacements are being issued in quick succession.
NOTE: "revise" and "repost" are case-insensitive.
An agent inserting an Xref header into an article MUST delete any An agent inserting an Xref header into an article MUST delete any
previous Xref header(s). A relaying agent MAY delete it before previous Xref header(s). A relaying agent MAY delete it before
relaying, but otherwise it SHOULD be ignored (and usually replaced) relaying, but otherwise it SHOULD be ignored (and usually replaced)
by any relying or serving agent receiving it. by any relying or serving agent receiving it.
News Article Format July 2001
An agent MUST use the same serving-name in Xref headers as the path- An agent MUST use the same serving-name in Xref headers as the path-
identity it uses in Path headers. identity it uses in Path headers.
6.17. Lines 6.17. Lines
The Lines header indicates the number of lines in the body of the The Lines header indicates the number of lines in the body of the
article. article.
Lines-content = [CFWS] 1*digit Lines-content = [CFWS] 1*digit
skipping to change at page 57, line 44 skipping to change at page 51, line 4
needing correction. Although not one of the mandatory headers, needing correction. Although not one of the mandatory headers,
posting agents SHOULD normally include it. posting agents SHOULD normally include it.
User-Agent-content = product-token *( CFWS product-token ) User-Agent-content = product-token *( CFWS product-token )
product-token = value ["/" product-version] ; see 4.1 product-token = value ["/" product-version] ; see 4.1
product-version = value product-version = value
This header MAY contain multiple product-tokens identifying the agent This header MAY contain multiple product-tokens identifying the agent
and any subproducts which form a significant part of the posting and any subproducts which form a significant part of the posting
agent, listed in order of their significance for identifying the agent, listed in order of their significance for identifying the
News Article Format November 2001
application. Product-tokens should be short and to the point - they application. Product-tokens should be short and to the point - they
MUST NOT be used for information beyond the canonical name of the MUST NOT be used for information beyond the canonical name of the
product and its version. Injecting agents MAY include product product and its version. Injecting agents MAY include product
information for servers (such as "INN/1.7.2"), but serving and information for servers (such as "INN/1.7.2"), but serving and
relaying agents MUST NOT generate or modify this header to list relaying agents MUST NOT generate or modify this header to list
themselves. themselves.
NOTE: Variations from [RFC 2616] which describes a similar NOTE: Variations from [RFC 2616] which describes a similar
facility for the HTTP protocol: facility for the HTTP protocol:
1. use of arbitrary text or octets from character sets other 1. use of arbitrary text or octets from character sets other
than US-ASCII in a product-token may require the use of a than US-ASCII in a product-token may require the use of a
quoted-string, quoted-string,
2. "{" and "}" are allowed in a value (product-token and 2. "{" and "}" are allowed in a value (product-token and
product-version) in Netnews, product-version) in Netnews,
News Article Format July 2001
3. UTF-8 replaces ISO-8859-1 as charset assumption. 3. UTF-8 replaces ISO-8859-1 as charset assumption.
NOTE: Comments should be restricted to information regarding the NOTE: Comments should be restricted to information regarding the
product named to their left such as platform information and product named to their left such as platform information and
should be concise. Use as an advertising medium (in the mundane should be concise. Use as an advertising medium (in the mundane
sense) is discouraged. sense) is discouraged.
6.18.1. Examples 6.18.1. Examples
skipping to change at page 58, line 42 skipping to change at page 52, line 4
6.19. Injector-Info 6.19. Injector-Info
The Injector-Info header SHOULD be added to each article by the The Injector-Info header SHOULD be added to each article by the
injecting agent in order to provide information as to how that injecting agent in order to provide information as to how that
article entered the Netnews system and to assist in tracing its true article entered the Netnews system and to assist in tracing its true
origin. origin.
Injector-Info-content Injector-Info-content
= path-identity = path-identity
News Article Format November 2001
Injector-Info-header-parameter Injector-Info-header-parameter
= posting-host-parameter / = posting-host-parameter /
posting-account-parameter / posting-account-parameter /
posting-sender-parameter / posting-sender-parameter /
posting-logging-parameter / posting-logging-parameter /
posting-date-parameter posting-date-parameter
; for USENET-header-parameters see 4.1 ; for USENET-header-parameters see 4.1
posting-host-parameter posting-host-parameter
= [CFWS] "posting-host" [CFWS] "=" [CFWS] = [CFWS] "posting-host" [CFWS] "=" [CFWS]
( host-value / ( host-value /
DQUOTE host-value DQUOTE ) [CFWS] DQUOTE host-value DQUOTE ) [CFWS]
host-value = dot-atom / host-value = dot-atom /
[ dot-atom ":" ] [ dot-atom ":" ]
( dotted-quad / ; see [RFC 820] ( dotted-quad / ; see [RFC 820]
ipv6-numeric ) ; see [RFC 2373] ipv6-numeric ) ; see [RFC 2373]
posting-account-parameter posting-account-parameter
= [CFWS] "posting-account" [CFWS] "=" value = [CFWS] "posting-account" [CFWS] "=" value
News Article Format July 2001
posting-sender-parameter posting-sender-parameter
= [CFWS] "sender" [CFWS] "=" [CFWS] = [CFWS] "sender" [CFWS] "=" [CFWS]
( sender-value / ( sender-value /
DQUOTE sender-value DQUOTE ) [CFWS] DQUOTE sender-value DQUOTE ) [CFWS]
sender-value = ( mailbox / "verified" ) sender-value = ( mailbox / "verified" )
posting-logging-parameter posting-logging-parameter
= [CFWS] "logging-data" [CFWS] "=" value = [CFWS] "logging-data" [CFWS] "=" value
posting-date-parameter posting-date-parameter
= [CFWS] "posting-date" [CFWS] "=" [CFWS] = [CFWS] "posting-date" [CFWS] "=" [CFWS]
( date-value / ( date-value /
skipping to change at page 59, line 41 skipping to change at page 53, line 5
Although comments and folding of white space are permitted throughout Although comments and folding of white space are permitted throughout
the Injector-Info-content specification, it is RECOMMENDED that the Injector-Info-content specification, it is RECOMMENDED that
folding is not used within any header-parameter (but only before or folding is not used within any header-parameter (but only before or
after the ";" separating parameters), and that comments are only used after the ";" separating parameters), and that comments are only used
following the last parameter. It is also RECOMMENDED that such following the last parameter. It is also RECOMMENDED that such
parameters as are present are included in the order in which they parameters as are present are included in the order in which they
have been defined in the syntax above. An injecting agent SHOULD use have been defined in the syntax above. An injecting agent SHOULD use
a consistent form of this header for all articles emanating from the a consistent form of this header for all articles emanating from the
same or similar origins. same or similar origins.
News Article Format November 2001
NOTE: The effect of those recommendations is to facilitate the NOTE: The effect of those recommendations is to facilitate the
recognition of articles arising from certain designated origins recognition of articles arising from certain designated origins
(as in the so-called "killfiles" which are available in some (as in the so-called "killfiles" which are available in some
reading agents). Observe that the order within the syntax has reading agents). Observe that the order within the syntax has
been chosen to place last those parameters which are most likely been chosen to place last those parameters which are most likely
to change between successive articles posted from the same to change between successive articles posted from the same
origin. origin.
NOTE: To comply with the overall "attribute = value" syntax of NOTE: To comply with the overall "attribute = value" syntax of
USENET-header-parameters, any value containing an ipv6-numeric, USENET-header-parameters, any value containing an ipv6-numeric,
a date-time, a mailbox or any CFWS MUST be quoted using a date-time, a mailbox or any CFWS MUST be quoted using
<DQUOTE>s (the quoting is optional in other cases). <DQUOTE>s (the quoting is optional in other cases).
NOTE: This header is intended to replace various currently-used NOTE: This header is intended to replace various currently-used
but nowhere-documented headers such as "NNTP-Posting-Host", but nowhere-documented headers such as "NNTP-Posting-Host",
"NNTP-Posting-Date" amd "X-Trace". Any of these headers present "NNTP-Posting-Date" amd "X-Trace". Any of these headers present
when an article arrives at an injecting agent SHOULD also be when an article arrives at an injecting agent SHOULD also be
removed as above. removed as above.
News Article Format July 2001
6.19.1. Usage of Injector-Info-header-parameters 6.19.1. Usage of Injector-Info-header-parameters
The purpose of these parameters is to enable the injecting agent to The purpose of these parameters is to enable the injecting agent to
make assertions about the origin of the article, in fulfilment of its make assertions about the origin of the article, in fulfilment of its
responsibilities towards the rest of the network as set out in responsibilities towards the rest of the network as set out in
section 8.2. These assertions can then be utilized as follows: section 8.2. These assertions can then be utilized as follows:
1. To enable the administrator of the injecting agent to respond to 1. To enable the administrator of the injecting agent to respond to
complaints and queries concerning the article. For this purpose, complaints and queries concerning the article. For this purpose,
the parameters included SHOULD be sufficient to enable the the parameters included SHOULD be sufficient to enable the
skipping to change at page 60, line 42 skipping to change at page 54, line 4
An injecting agent MUST NOT include any Injector-Info-header- An injecting agent MUST NOT include any Injector-Info-header-
parameter unless it has positive evidence of its correctness. An parameter unless it has positive evidence of its correctness. An
injecting agent MAY include other-header-parameters with x-token injecting agent MAY include other-header-parameters with x-token
attributes which will assist in identifying the origin of the attributes which will assist in identifying the origin of the
article. article.
NOTE: It will be observed that the range of parameters provided NOTE: It will be observed that the range of parameters provided
allows much choice as to the precise manner in which an injecting allows much choice as to the precise manner in which an injecting
agent fulfils its responsibilities. Whilst this standard does not agent fulfils its responsibilities. Whilst this standard does not
News Article Format November 2001
seek to establish any preferences in this matter, administrators seek to establish any preferences in this matter, administrators
of injecting agents need to be aware of the privacy implications of injecting agents need to be aware of the privacy implications
of the choices that they make. of the choices that they make.
6.19.1.1. The posting-host-parameter 6.19.1.1. The posting-host-parameter
If a dot-atom is present, it MUST be a FQDN identifying the specific If a dot-atom is present, it MUST be a FQDN identifying the specific
host from which the injecting agent received the article. host from which the injecting agent received the article.
Alternatively, an IP address (dotted-quad or ipv6-numeric) identifies Alternatively, an IP address (dotted-quad or ipv6-numeric) identifies
that host. If both forms are present, then they MUST identify the that host. If both forms are present, then they MUST identify the
same host, or at least have done so at the time the article was same host, or at least have done so at the time the article was
injected. injected.
NOTE: It is commonly the case that this header identifies a NOTE: It is commonly the case that this header identifies a
dial-up point-of-presence, in which case a posting-account or dial-up point-of-presence, in which case a posting-account or
logging-data may need to be consulted to find the true origin of logging-data may need to be consulted to find the true origin of
the article. the article.
News Article Format July 2001
6.19.1.2. The posting-account-parameter 6.19.1.2. The posting-account-parameter
This parameter identifies the source from which the injecting agent This parameter identifies the source from which the injecting agent
received the article. It MAY be in a cryptic notation understandable received the article. It MAY be in a cryptic notation understandable
only by the administrator of the injecting agent, but it MUST be such only by the administrator of the injecting agent, but it MUST be such
that a given source always gives rise to the same posting-account (if that a given source always gives rise to the same posting-account (if
the injecting agent is unable to meet that obligation, then it should the injecting agent is unable to meet that obligation, then it should
use a posting-logging-parameter instead). use a posting-logging-parameter instead).
6.19.1.3. The posting-sender-parameter 6.19.1.3. The posting-sender-parameter
skipping to change at page 61, line 44 skipping to change at page 55, line 5
injecting agent. injecting agent.
6.19.1.5. The posting-date-parameter 6.19.1.5. The posting-date-parameter
This parameter identifies the time at which the article was injected This parameter identifies the time at which the article was injected
(as distinct from the Date header, which indicates when it was (as distinct from the Date header, which indicates when it was
written). It is in the form of the number of seconds elapsed since written). It is in the form of the number of seconds elapsed since
January 1st 1970, optionally followed by a date-time which MUST January 1st 1970, optionally followed by a date-time which MUST
indicate the same time. indicate the same time.
News Article Format November 2001
6.19.2. Example 6.19.2. Example
Injector-Info: news2.isp.net; posting-host=modem-15.pop.isp.net; Injector-Info: news2.isp.net; posting-host=modem-15.pop.isp.net;
posting-account=client0002623; logging-data=2427; posting-account=client0002623; logging-data=2427;
posting-date="965243133: Wed 2 Aug 2000 20:05:33 -0100 (BST)" posting-date="965243133: Wed 2 Aug 2000 20:05:33 -0100 (BST)"
6.20. Complaints-To 6.20. Complaints-To
The Complaints-To header is added to an article by an injecting agent The Complaints-To header is added to an article by an injecting agent
in order to indicate the mailbox to which complaints concerning the in order to indicate the mailbox to which complaints concerning the
poster of the article may be sent. poster of the article may be sent.
Complaints-To-content Complaints-To-content
= mailbox = mailbox
News Article Format July 2001
A Complaints-To header MUST NOT be added to an article by any agent A Complaints-To header MUST NOT be added to an article by any agent
other than an injecting agent. Any Complaints-To header present when other than an injecting agent. Any Complaints-To header present when
an article arrives at an injecting agent MUST be removed. In an article arrives at an injecting agent MUST be removed. In
particular if, for some exceptional reason (8.2.2), an article gets particular if, for some exceptional reason (8.2.2), an article gets
injected twice, the Complaints-To header will always relate to the injected twice, the Complaints-To header will always relate to the
second injection. second injection.
The specified mailbox is for sending complaints concerning the The specified mailbox is for sending complaints concerning the
behaviour of the poster of the article; it SHOULD NOT be used for behaviour of the poster of the article; it SHOULD NOT be used for
skipping to change at page 62, line 43 skipping to change at page 56, line 5
Content-MD5: Content-MD5:
Insofar as the syntax for these headers, as given in [RFC 2045], does Insofar as the syntax for these headers, as given in [RFC 2045], does
not specify precisely where whitespace and comments may occur not specify precisely where whitespace and comments may occur
(whether in the form of WSP, FWS or CFWS), the usage defined in this (whether in the form of WSP, FWS or CFWS), the usage defined in this
standard, and failing that in [RFC 2822], and failing that in [RFC standard, and failing that in [RFC 2822], and failing that in [RFC
822] MUST be followed. In particular, there MUST NOT be any WSP 822] MUST be followed. In particular, there MUST NOT be any WSP
between a header-name and the following colon and there MUST be a SP between a header-name and the following colon and there MUST be a SP
following that colon. following that colon.
News Article Format November 2001
The meaning of the various MIME headers is as defined in [RFC 2045] The meaning of the various MIME headers is as defined in [RFC 2045]
and [RFC 2046], and in extensions registered in accordance with [RFC and [RFC 2046], and in extensions registered in accordance with [RFC
2048]. However, their usage is curtailed as described in the 2048]. However, their usage is curtailed as described in the
following sections. following sections.
6.21.2. Content-Type 6.21.2. Content-Type
The Content-Type: "text/plain" is the default type for any news The Content-Type: "text/plain" is the default type for any news
article, but the recommendations and limits on line lengths set out article, but the recommendations and limits on line lengths set out
in section 4.5 Ought to be observed in section 4.5 Ought to be observed
The acceptability of other subtypes of Content-Type: "text" (such as The acceptability of other subtypes of Content-Type: "text" (such as
"text/html") is a matter of policy (see 1.1), and posters Ought Not "text/html") is a matter of policy (see 1.1), and posters Ought Not
to use them unless established policy or custom in the particular to use them unless established policy or custom in the particular
hierarchies or groups involved so allows. Moreover, even in those hierarchies or groups involved so allows. Moreover, even in those
cases, for the benefit of readers who see it only in its transmitted cases, for the benefit of readers who see it only in its transmitted
form, the material SHOULD be "pretty-printed" (for example by form, the material SHOULD be "pretty-printed" (for example by
News Article Format July 2001
restricting its line length as above and by keeping sequences which restricting its line length as above and by keeping sequences which
control its layout or style separate from the meaningful text). control its layout or style separate from the meaningful text).
In the same way, Content-Types requiring special processing for their In the same way, Content-Types requiring special processing for their
display, such as "application", "image", "audio", "video" and display, such as "application", "image", "audio", "video" and
"multipart/related" are discouraged except in groups specifically "multipart/related" are discouraged except in groups specifically
intended (by policy or custom) to include them. Exceptionally, those intended (by policy or custom) to include them. Exceptionally, those
application types defined in [RFC 1847] and [RFC 2015] and/or [RFC application types defined in [RFC 1847] and [RFC 2015] and/or [RFC
2015bis] for use within "multipart/signed" articles, and the type 2015bis] for use within "multipart/signed" articles, and the type
"application/pgp-keys" (or other similar types containing digital "application/pgp-keys" (or other similar types containing digital
certificates) may be used freely. certificates) may be used freely.
Reading agents SHOULD NOT, unless explicitly configured otherwise, Reading agents SHOULD NOT, unless explicitly configured otherwise,
act automatically on Application types which could change the state act automatically on Application types which could change the state
of that agent (e.g. by writing or modifying files), except in the of that agent (e.g. by writing or modifying files), except in the
case of those prescribed for use in control messages (7.1.2 and case of those prescribed for use in control messages (7.2.1.2 and
7.4.1). 7.2.4.1).
6.21.2.1. Message/partial 6.21.2.1. Message/partial
The Content-Type "message/partial" MAY be used to split a long news The Content-Type "message/partial" MAY be used to split a long news
article into several smaller ones. article into several smaller ones.
NOTE: This Content-Type is not recommended for textual articles NOTE: This Content-Type is not recommended for textual articles
because the Content-Type, and in particular the charset, of the because the Content-Type, and in particular the charset, of the
complete article cannot be determined by examination of the complete article cannot be determined by examination of the
second and subsequent parts, and hence it is not possible to second and subsequent parts, and hence it is not possible to
read them as separate articles (except when they are written in read them as separate articles (except when they are written in
pure US-ASCII). Moreover, for full compliance with [RFC 2046] it pure US-ASCII). Moreover, for full compliance with [RFC 2046] it
would be necessary to use the "quoted-printable" encoding to would be necessary to use the "quoted-printable" encoding to
ensure the material was 7bit-safe. In any case, breaking such ensure the material was 7bit-safe. In any case, breaking such
long texts into several parts is usually unnecessary, since long texts into several parts is usually unnecessary, since
modern transport agents should have no difficulty in handling modern transport agents should have no difficulty in handling
articles of arbitrary length. articles of arbitrary length.
News Article Format November 2001
On the other hand, "message/partial" may be useful for binaries On the other hand, "message/partial" may be useful for binaries
of excessive length, since reading of the individual parts on of excessive length, since reading of the individual parts on
their own is not required and they would in any case be encoded their own is not required and they would in any case be encoded
in a manner that was 7bit-safe. in a manner that was 7bit-safe.
IF this Content-Type is used, then the "id" parameter SHOULD be in IF this Content-Type is used, then the "id" parameter SHOULD be in
the form of a unique message identifier (but different from that in the form of a unique message identifier (but different from that in
the Message-ID header of any of the parts). The second and subsequent the Message-ID header of any of the parts). The second and subsequent
parts SHOULD contain References headers referring to all the previous parts SHOULD contain References headers referring to all the previous
parts, thus enabling reading agents with threading capabilities to parts, thus enabling reading agents with threading capabilities to
present them in the correct order. Reading agents MAY then provide a present them in the correct order. Reading agents MAY then provide a
facility to recombine the parts into a single article (but this facility to recombine the parts into a single article (but this
standard does not require them to do so). standard does not require them to do so).
6.21.2.2. Message/rfc822 6.21.2.2. Message/rfc822
The Content-Type "message/rfc822" should be used for the The Content-Type "message/rfc822" should be used for the
encapsulation (whether as part of another news article or, more encapsulation (whether as part of another news article or, more
usually, as part of a mail message) of complete news articles which usually, as part of a mail message) of complete news articles which
News Article Format July 2001
have already been posted to Netnews and which are for the information have already been posted to Netnews and which are for the information
of the recipient, and do not constitute a request to repost them. of the recipient, and do not constitute a request to repost them.
In the case where the encapsulated article has Content-Transfer- In the case where the encapsulated article has Content-Transfer-
Encoding "8bit", it will be necessary to change that encoding if it Encoding "8bit", it will be necessary to change that encoding if it
is to be forwarded over some mail transport that only supports is to be forwarded over some mail transport that only supports
"7bit". However, this should not be necessary for any mail transport "7bit". However, this should not be necessary for any mail transport
that supports the 8BITMIME feature [RFC 2821]. Moreover, where the that supports the 8BITMIME feature [RFC 2821]. Moreover, where the
headers of the encapsulated article contain any UTF8-xtra-chars headers of the encapsulated article contain any UTF8-xtra-chars
(2.4), it may not be possible to transport them over mail transports (2.4), it may not be possible to transport them over mail transports
skipping to change at page 64, line 38 skipping to change at page 58, line 4
NOTE: It is likely, though not guaranteed, that headers NOTE: It is likely, though not guaranteed, that headers
containing UTF8-xtra-chars will pass safely through mail containing UTF8-xtra-chars will pass safely through mail
transports supporting 8BITMIME if the "message/rfc822" object is transports supporting 8BITMIME if the "message/rfc822" object is
sent as an attachment (i.e. as a part of a multipart) rather sent as an attachment (i.e. as a part of a multipart) rather
than as the top-level body of the mail message. Moreover, it is than as the top-level body of the mail message. Moreover, it is
anticipated that future extensions to the mail standards will anticipated that future extensions to the mail standards will
permit headers containing UTF8-xtra-chars to be carried without permit headers containing UTF8-xtra-chars to be carried without
further ado over conforming transports. further ado over conforming transports.
[In fact, of current transports supporting 8BITMIME, only sendmail will [In fact, of current transports supporting 8BITMIME, only sendmail will
have problems with UTF-8 in top-level headers.] have problems with UTF-8 in top-level headers.]
News Article Format November 2001
6.21.2.3. Message/external-body 6.21.2.3. Message/external-body
The Content-Type "message/external-body" could be apropriate for The Content-Type "message/external-body" could be apropriate for
texts which it would be uneconomic (in view of the likely readership) texts which it would be uneconomic (in view of the likely readership)
to distribute to the entire network. to distribute to the entire network.
6.21.2.4. Multipart types 6.21.2.4. Multipart types
The Content-Types "multipart/mixed", "multipart/parallel" and The Content-Types "multipart/mixed", "multipart/parallel" and
skipping to change at page 65, line 4 skipping to change at page 58, line 27
"multipart/alternative" SHOULD NOT be used, on account of the extra "multipart/alternative" SHOULD NOT be used, on account of the extra
bandwidth consumed and the difficulty of quoting in followups, but bandwidth consumed and the difficulty of quoting in followups, but
reading agents MUST accept it. reading agents MUST accept it.
The Content-Type: "multipart/digest" is commended for any article The Content-Type: "multipart/digest" is commended for any article
composed of multiple messages more conveniently viewed as separate composed of multiple messages more conveniently viewed as separate
entities, thus enabling reading agents to move rapidly between them. entities, thus enabling reading agents to move rapidly between them.
The "boundary" should be composed of 28 hyphens (US-ASCII 45) (which The "boundary" should be composed of 28 hyphens (US-ASCII 45) (which
makes each boundary delimiter 30 hyphens, or 32 for the final one) so makes each boundary delimiter 30 hyphens, or 32 for the final one) so
as to enable reading agents which currently support the digest usage as to enable reading agents which currently support the digest usage
News Article Format July 2001
described in [RFC 1153] to continue to operate correctly. described in [RFC 1153] to continue to operate correctly.
[Actually, this conflicts with some present digest usage (such as the [Actually, this conflicts with some present digest usage (such as the
news.answers rules), but should still be the right way to go. There news.answers rules), but should still be the right way to go. There
remains the possibility that future MIME-compliant readers could enable remains the possibility that future MIME-compliant readers could enable
one to proceed directly to some particular message by clicking on it in one to proceed directly to some particular message by clicking on it in
a table of contents, but that feature is not yet supported by the a table of contents, but that feature is not yet supported by the
current MIME standards.] current MIME standards.]
NOTE: The various recomendations given above regarding the usage NOTE: The various recomendations given above regarding the usage
of particular Content-Types apply also to the individual parts of particular Content-Types apply also to the individual parts
skipping to change at page 65, line 38 skipping to change at page 59, line 5
1. The content type implies that the content is (or may be) "8bit- 1. The content type implies that the content is (or may be) "8bit-
unsafe"; i.e. it may contain octets equivalent to the US-ASCII unsafe"; i.e. it may contain octets equivalent to the US-ASCII
characters CR or LF (other than in the combination CRLF) or NUL. characters CR or LF (other than in the combination CRLF) or NUL.
In that case one of the Content-Transfer-Encodings "base64" or In that case one of the Content-Transfer-Encodings "base64" or
"quoted-printable" MUST be used, and reading agents MUST be able "quoted-printable" MUST be used, and reading agents MUST be able
to handle both of them. Encoding "binary" MUST NOT be used (except to handle both of them. Encoding "binary" MUST NOT be used (except
in cooperating subnets with alternative transport arrangements) in cooperating subnets with alternative transport arrangements)
because this standard does not mandate a transport mechanism that because this standard does not mandate a transport mechanism that
could support it. could support it.
News Article Format November 2001
NOTE: If a future extension to the MIME standards were to NOTE: If a future extension to the MIME standards were to
provide a more compact encoding of binary suited to transport provide a more compact encoding of binary suited to transport
over an 8bit channel, it could be considered as an alternative over an 8bit channel, it could be considered as an alternative
to base64 once it had gained widespread acceptance. to base64 once it had gained widespread acceptance.
2. It is often the case that "application" Content-Types are textual 2. It is often the case that "application" Content-Types are textual
in nature, and intelligible to humans as well as to machines, and in nature, and intelligible to humans as well as to machines, and
where this state can be recognized by the posting agent (either where this state can be recognized by the posting agent (either
through knowledge of the particular application type or by through knowledge of the particular application type or by
testing) the material SHOULD NOT be treated as 8bit-unsafe; this testing) the material SHOULD NOT be treated as 8bit-unsafe; this
skipping to change at page 66, line 5 skipping to change at page 59, line 28
CRLF for line endings internally, of automatically ensuring that CRLF for line endings internally, of automatically ensuring that
line endings are processed correctly during transport. line endings are processed correctly during transport.
If, on the other hand, the posting agent recognizes that the If, on the other hand, the posting agent recognizes that the
material is not textual, or cannot reasonably determine it to be material is not textual, or cannot reasonably determine it to be
so, then the material MUST be encoded as for 8bit-unsafe (however, so, then the material MUST be encoded as for 8bit-unsafe (however,
in that case, it is the responsibility of the agent generating the in that case, it is the responsibility of the agent generating the
material to ensure that lines endings, if any, are represented material to ensure that lines endings, if any, are represented
correctly). correctly).
News Article Format July 2001
NOTE: All the application types defined by this standard, namely NOTE: All the application types defined by this standard, namely
"application/news-transmission", "application/news-groupinfo" "application/news-transmission", "application/news-groupinfo"
and "application/news-checkgroups" are textual, and indeed and "application/news-checkgroups" are textual, and indeed
designed for human reading. designed for human reading.
3. Although the "text" Content-Types should normally be encoded as 3. Although the "text" Content-Types should normally be encoded as
8bit (or 7bit), if the character set specified by the "charset=" 8bit (or 7bit), if the character set specified by the "charset="
parameter can include the 3 disallowed octets, then the material parameter can include the 3 disallowed octets, then the material
MUST be encoded as for 8bit-unsafe. This is most likely to arise MUST be encoded as for 8bit-unsafe. This is most likely to arise
in the case of 16-bit character sets such as UTF-16 ([UNICODE3.1] in the case of 16-bit character sets such as UTF-16 ([UNICODE3.1]
skipping to change at page 66, line 37 skipping to change at page 60, line 4
"7bit" encodings (and indeed the referenced standard recommends "7bit" encodings (and indeed the referenced standard recommends
that signed messages using those encodings be accepted and that signed messages using those encodings be accepted and
interpreted), they should be warned that differences in the interpreted), they should be warned that differences in the
treatment of trailing whitespace between OpenPGP [RFC 2440] and treatment of trailing whitespace between OpenPGP [RFC 2440] and
earlier versions of PGP may render signatures written with the one earlier versions of PGP may render signatures written with the one
unverifiable by the other; and, moreover, Usenet articles are very unverifiable by the other; and, moreover, Usenet articles are very
likely to include trailing whitespace in the form of a personal likely to include trailing whitespace in the form of a personal
signature (4.3.2). signature (4.3.2).
[It is to be hoped that [RFC 2015bis] will have progressed to a full RFC [It is to be hoped that [RFC 2015bis] will have progressed to a full RFC
by the time this draft is finalized.] by the time this draft is finalized.]
News Article Format November 2001
5. The Content-Type message/partial [RFC 2046] is required to use 5. The Content-Type message/partial [RFC 2046] is required to use
encoding "7bit" (the encapsulated complete message may itself use encoding "7bit" (the encapsulated complete message may itself use
encoding "quoted-printable" or "base64", but that information is encoding "quoted-printable" or "base64", but that information is
only conveyed along with the first of the partial parts). only conveyed along with the first of the partial parts).
NOTE: Although there would actually be no problem using encoding NOTE: Although there would actually be no problem using encoding
"8bit" in a pure Netnews (as opposed to mail) environment, this "8bit" in a pure Netnews (as opposed to mail) environment, this
standard discourages (see 6.21.2.1) the use of "message/partial" standard discourages (see 6.21.2.1) the use of "message/partial"
except for binary material, which will be encoded to pass except for binary material, which will be encoded to pass
skipping to change at page 67, line 5 skipping to change at page 60, line 30
6.21.4. Character Sets 6.21.4. Character Sets
In principle, any character set may be specified in the "charset=" In principle, any character set may be specified in the "charset="
parameter of a content type. However, only those character sets (and parameter of a content type. However, only those character sets (and
the corresponding parts of UTF-8) should be used which are the corresponding parts of UTF-8) should be used which are
appropriate for the customary language(s) of the hierarchy or appropriate for the customary language(s) of the hierarchy or
newsgroup concerned (whose readers could be expected to possess newsgroup concerned (whose readers could be expected to possess
agents capable of displaying them). agents capable of displaying them).
News Article Format July 2001
6.21.5. Content Disposition 6.21.5. Content Disposition
Reading agents Ought to honour any Content-Disposition header that is Reading agents Ought to honour any Content-Disposition header that is
provided (in particular, they Ought to display any part of a provided (in particular, they Ought to display any part of a
multipart for which the disposition is "inline", possibly multipart for which the disposition is "inline", possibly
distinguished from adjacent parts by some suitable separator). In the distinguished from adjacent parts by some suitable separator). In the
absence of such a header, the body of an article or any part of a absence of such a header, the body of an article or any part of a
multipart with Content-Type "text" Ought to be displayed inline. multipart with Content-Type "text" Ought to be displayed inline.
Followup agents which quote parts of a precursor (see 4.3.2) Ought Followup agents which quote parts of a precursor (see 4.3.2) Ought
initially to include all parts of the precursor that were displayed initially to include all parts of the precursor that were displayed
inline, as if they were a single part. inline, as if they were a single part.
6.21.6. Definition of some new Content-Types 6.21.6. Definition of some new Content-Types
This standard defines (or redefines) several new Content-Types, which This standard defines (or redefines) several new Content-Types, which
require to be registered with IANA as provided for in [RFC 2048]. require to be registered with IANA as provided for in [RFC 2048].
For "application/news-groupinfo" see 7.1.2, for "application/news- For "application/news-groupinfo" see 7.2.1.2, for "application/news-
checkgroups" see 7.4.1, and for "application/news-transmission" see checkgroups" see 7.2.4.1, and for "application/news-transmission" see
the following section. the following section.
6.21.6.1. Application/news-transmission 6.21.6.1. Application/news-transmission
The Content-Type "application/news-transmission" is intended for the The Content-Type "application/news-transmission" is intended for the
encapsulation of complete news articles where the intention is that encapsulation of complete news articles where the intention is that
the recipient should then inject them into Netnews. This Application the recipient should then inject them into Netnews. This Application
type SHOULD be used when mailing articles to moderators and to mail- type SHOULD be used when mailing articles to moderators and to mail-
to-news gateways (see 8.2.2). to-news gateways (see 8.2.2).
News Article Format November 2001
NOTE: The benefit of such encapsulation is that it removes NOTE: The benefit of such encapsulation is that it removes
possible conflict between news and email headers and it provides possible conflict between news and email headers and it provides
a convenient way of "tunnelling" a news article through a a convenient way of "tunnelling" a news article through a
transport medium that does not support 8bit characters. transport medium that does not support 8bit characters.
The MIME content type definition of "application/news-transmission" The MIME content type definition of "application/news-transmission"
is: is:
MIME type name: application MIME type name: application
MIME subtype name: news-transmission MIME subtype name: news-transmission
skipping to change at page 68, line 4 skipping to change at page 61, line 33
the article transmitted MAY be supplied the article transmitted MAY be supplied
(perhaps en route) to ensure correct (perhaps en route) to ensure correct
transmission over some 7bit transport transmission over some 7bit transport
medium. medium.
Security considerations: A news article may be a "control message", Security considerations: A news article may be a "control message",
which could have effects on the recipient which could have effects on the recipient
host's system beyond just storage of the host's system beyond just storage of the
article. However, such control messages article. However, such control messages
also occur in normal news flow, so most also occur in normal news flow, so most
hosts will already be suitably defended hosts will already be suitably defended
News Article Format July 2001
against undesired effects. against undesired effects.
Published specification: [USEFOR] Published specification: [USEFOR]
Body part: A complete article or proto-article, ready Body part: A complete article or proto-article, ready
for injection into Netnews, or a batch of for injection into Netnews, or a batch of
such articles. such articles.
NOTE: It is likely that the recipient of an "application/news- NOTE: It is likely that the recipient of an "application/news-
transmission" will be a specialised gateway (e.g. a moderator's transmission" will be a specialised gateway (e.g. a moderator's
submission address) able to accept articles with only one of the submission address) able to accept articles with only one of the
three usage parameters "moderate", "inject" and "relay", hence three usage parameters "moderate", "inject" and "relay", hence
skipping to change at page 68, line 35 skipping to change at page 62, line 5
batch = 1*( batch-header article ) batch = 1*( batch-header article )
batch-header = "#!" SP "rnews" SP article-size CRLF batch-header = "#!" SP "rnews" SP article-size CRLF
article-size = 1*digit article-size = 1*digit
where the "rnews" is case-sensitive. Thus a batch is a sequence of where the "rnews" is case-sensitive. Thus a batch is a sequence of
articles, each prefixed by a header line that includes its size. The articles, each prefixed by a header line that includes its size. The
article-size is a decimal count of the octets in the article, article-size is a decimal count of the octets in the article,
counting each CRLF as one octet regardless of how it is actually counting each CRLF as one octet regardless of how it is actually
represented. represented.
News Article Format November 2001
NOTE: Despite the similarity of this format to an executable NOTE: Despite the similarity of this format to an executable
UNIX script, it is EXTREMELY unwise to feed such a batch into a UNIX script, it is EXTREMELY unwise to feed such a batch into a
command interpreter in anticipation of it running a command command interpreter in anticipation of it running a command
named "rnews"; the security implications of so doing would be named "rnews"; the security implications of so doing would be
disastrous. disastrous.
6.21.6.2. Message/news withdrawn 6.21.6.2. Message/news withdrawn
The Content-Type "message/news", as previously registered with IANA, The Content-Type "message/news", as previously registered with IANA,
is hereby obsoleted and should be withdrawn. It was never widely is hereby obsoleted and should be withdrawn. It was never widely
skipping to change at page 69, line 4 skipping to change at page 62, line 31
6.22. Obsolete Headers 6.22. Obsolete Headers
Persons writing new agents SHOULD ignore any former meanings of the Persons writing new agents SHOULD ignore any former meanings of the
following headers: following headers:
Also-Control Also-Control
See-Also See-Also
Article-Names Article-Names
Article-Updates Article-Updates
News Article Format July 2001
7. Control Messages 7. Control Messages
The following sections document the control messages. "Message" is The following sections document the control messages. "Message" is
used herein as a synonym for "article" unless context indicates used herein as a synonym for "article" unless context indicates
otherwise. Group control messages are the sub-class of control otherwise.
messages that request some update to the configuration of the groups
known to a serving agent, namely "newgroup". "rmgroup", "mvgroup"
and "checkgroups", plus any others created by extensions to this
standard.
All of the group control messages MUST have an Approved header
(6.14). Moreover, in those hierarchies where appropriate
administrative agencies exist (see 1.1), group control messages Ought
Not to be issued except as authorized by those agencies.
[They SHOULD also use one of the authentication mechanisms which we may
define when we get a Round Tuit.]
The Newsgroups header of each control message SHOULD include the The Newsgroups header of each control message SHOULD include the
newsgroup-name(s) for the group(s) affected (i.e. groups to be newsgroup-name(s) for the group(s) affected (i.e. groups to be
created, modified or removed, or containing articles to be canceled). created, modified or removed, or containing articles to be canceled).
This is to ensure that the message progagates to all sites which This is to ensure that the message progagates to all sites which
receive (or would receive) that group(s). It MAY include other receive (or would receive) that group(s). It MAY include other
newsgroup-names so as to improve propagation (but this practice may newsgroup-names so as to improve propagation (but this practice may
cause the control message to propagate also to places where it is cause the control message to propagate also to places where it is
unwanted, so it should not be used without good reason). unwanted, or even cause it not to progatate where it should, so it
should not be used without good reason).
For convenience, the descriptions below are phrased on the assumption The descriptions below set out REQUIREMENTS to be followed by sites
that control messages will be honoured by sites receiving them. that receive control messages and choose to honour them. However,
Naturally, this does not apply where they have not been issued by the nothing in these descriptions should be taken as overriding the right
appropriate administrative agencies (and sites SHOULD take such steps of any such site, in accordance with its local policy, to deny any
as are reasonable practicable to validate their authenticity). particular control message, or to refer it to an administrator for
Moreover, acceptance of such messages MAY be subject to local approval (either as a class or on a case-by-case basis). In
administrative restrictions, and MAY be denied or referred to an particular, sites Ought to deny messages not issued by the
administrator for approval (either as a class or on a case-by-case appropriate administrative agencies, and therefore SHOULD take such
basis). Analogously, where the description below specifies that a steps as are reasonably practicable to validate their authenticity
message or portion thereof is to be ignored, this action MAY include (see, for example, section 7.1 below).
reporting it to an administrator.
News Article Format November 2001
Relaying Agents MUST propagate even control messages that they do not Relaying Agents MUST propagate even control messages that they do not
understand. recognise.
In the following sections, each type of control message is defined In the following sections, each type of control message is defined
syntactically by defining its verb, its arguments, and possibly its syntactically by defining its verb, its arguments, and possibly its
body. body.
7.1. The 'newgroup' Control Message 7.1. Digital Signature of Headers
It is most desirable that group control messages (7.2) in particular
be authenticated by incorporating them within some digital signature
scheme that encompasses other headers closely associated with them
(including at least the Approved, Message-ID and Date headers). At
the time of writing, this is usually done by means of a protocol
known as "PGPverify" ([PGPVERIFY]), and continued usage of this is
encouraged at least as an interim measure.
However, PGPverify is not considered suitable for standardization in
its present form, for various technical reasons. It is therefore
expected that an early extension to this standard will provide a
robust and general purpose digital authentication mechanism with
applicability to all situations requiring protection against
malicious use of, or interference with, headers. That extension
would also address other Netnews security issues.
7.2. Group Control Messages
"Group control messages" are the sub-class of control messages that
request some update to the configuration of the groups known to a
serving agent, namely "newgroup". "rmgroup", "mvgroup" and
"checkgroups", plus any others created by extensions to this
standard.
All of the group control messages MUST have an Approved header
(6.14). Moreover, in those hierarchies where appropriate
administrative agencies exist (see 1.1), group control messages Ought
Not to be issued except as authorized by those agencies.
7.2.1. The 'newgroup' Control Message
newgroup-verb = "newgroup" newgroup-verb = "newgroup"
newgroup-arguments = CFWS newsgroup-name [ CFWS newgroup-flag ] newgroup-arguments = CFWS newsgroup-name [ CFWS newgroup-flag ]
newgroup-flag = "moderated" newgroup-flag = "moderated"
The "newgroup" control message requests that the specified group be The "newgroup" control message requests that the specified group be
created or changed. If the request is honoured, or if the group created or changed. If the request is honoured, or if the group
already exists on the serving agent, and if the newgroup-flag already exists on the serving agent, and if the newgroup-flag
News Article Format July 2001
"moderated" is present, then the group MUST be marked as moderated, "moderated" is present, then the group MUST be marked as moderated,
and vice versa. "Moderated" is the only such flag defined by this and vice versa. "Moderated" is the only such flag defined by this
standard; other flags MAY be defined for use in cooperating subnets, standard; other flags MAY be defined for use in cooperating subnets,
but newgroup messages containing them MUST NOT be acted on outside of but newgroup messages containing them MUST NOT be acted on outside of
those subnets. those subnets.
News Article Format November 2001
NOTE: Specifically, some alternative flags such as "y" and "m", NOTE: Specifically, some alternative flags such as "y" and "m",
which are sent and recognised by some current software, are NOT which are sent and recognised by some current software, are NOT
part of this standard. Moreover, some existing implementations part of this standard. Moreover, some existing implementations
treat any flag other than "moderated" as indicating an treat any flag other than "moderated" as indicating an
unmoderated newsgroup. Both of these usages are contrary to this unmoderated newsgroup. Both of these usages are contrary to this
standard. standard.
The message body comprises or includes a "application/news-groupinfo" The message body comprises or includes an "application/news-
(7.1.2) part containing machine- and human-readable information about groupinfo" (7.2.1.2) part containing machine- and human-readable
the group. information about the group.
It is REQUIRED that the newsgroup-name conforms to all requirements It is REQUIRED that the newsgroup-name conforms to all requirements
set out in section 5.5. This includes the restrictions as to the set out in section 5.5. This includes the restrictions as to the
permitted characters, and the requirement that they be invariant permitted characters, and the requirement that they be invariant
under NFKC normalization. It is essential that those who issue under NFKC normalization. It is essential that those who issue
newgroup messages are aware of their responsibility to enforce this newgroup messages are aware of their responsibility to enforce this
requirement, since some of those conditions are hard to enforce requirement, since some of those conditions are hard to enforce
mechanically. mechanically.
Additionally, the newsgroup-name Ought to conform to whatever Additionally, the newsgroup-name Ought to conform to whatever
policies have been established by the administrative agency, if any, policies have been established by the administrative agency, if any,
for that hierarchy. Serving agents SHOULD, insofar as they are for that hierarchy. Serving agents SHOULD, insofar as they are
conveniently able to detect them, reject all newgroup messages not conveniently able to detect them, reject all newgroup messages not
meeting those requirements. meeting those requirements.
The newgroup command is also used to update the newsgroups-line or The newgroup command is also used to update the newsgroups-line or
the moderation status of a group. the moderation status of a group.
7.1.1. The Body of the 'newgroup' Control Message 7.2.1.1. The Body of the 'newgroup' Control Message
The body of the newgroup message contains the following subparts, The body of the newgroup message contains the following subparts,
preferably in the order shown: preferably in the order shown:
1. An "application/news-groupinfo" part (7.1.2) containing the name 1. An "application/news-groupinfo" part (7.2.1.2) containing the name
and newsgroups-line of the group(s). This part MUST be present. and newsgroups-line of the group(s). This part MUST be present.
2. Other parts containing useful information about the background of 2. Other parts containing useful information about the background of
the newsgroup message (typically of type "text/plain"). the newsgroup message (typically of type "text/plain").
3. Parts containing initial articles for the newsgroup. See section 3. Parts containing initial articles for the newsgroup. See section
7.1.3 for details. 7.2.1.3 for details.
In the event that there is only the single (i.e. application/news- In the event that there is only the single (i.e. application/news-
groupinfo) subpart present, it will suffice to include a "Content- groupinfo) subpart present, it will suffice to include a "Content-
Type: application/news-groupinfo" amongst the headers of the control Type: application/news-groupinfo" amongst the headers of the control
message. Otherwise, a "Content-Type: multipart/mixed header" will be message. Otherwise, a "Content-Type: multipart/mixed header" will be
needed, and each separate part will then need its own Content-Type needed, and each separate part will then need its own Content-Type
header. header.
News Article Format July 2001 7.2.1.2. Application/news-groupinfo
7.1.2. Application/news-groupinfo
The "application/news-groupinfo" body part contains brief information The "application/news-groupinfo" body part contains brief information
about a newsgroup, i.e. the group's name, it's newsgroup-description about a newsgroup, i.e. the group's name, it's newsgroup-description
and the moderation-flag. and the moderation-flag.
News Article Format November 2001
NOTE: The presence of the newsgroups-tag "For your newsgroups NOTE: The presence of the newsgroups-tag "For your newsgroups
file:" is intended to make the whole newgroup message compatible file:" is intended to make the whole newgroup message compatible
with current practice as described in [Son-of-1036]. with current practice as described in [Son-of-1036].
The MIME content type definition of "application/news-groupinfo" is: The MIME content type definition of "application/news-groupinfo" is:
MIME type name: application MIME type name: application
MIME subtype name: news-groupinfo MIME subtype name: news-groupinfo
Required parameters: none Required parameters: none
Disposition: by default, inline Disposition: by default, inline
skipping to change at page 71, line 34 skipping to change at page 65, line 28
used to maintain compatibility. used to maintain compatibility.
Security considerations: this type MUST NOT be used except as part Security considerations: this type MUST NOT be used except as part
of a control message for the creation or of a control message for the creation or
modification of a Netnews newsgroup modification of a Netnews newsgroup
Published specification: [USEFOR] Published specification: [USEFOR]
The content of the "application/news-groupinfo" body part is defined The content of the "application/news-groupinfo" body part is defined
as: as:
groupinfo-body = [ newsgroups-tag CRLF ] groupinfo-body = [ newsgroups-tag CRLF ]
1*( newsgroups-line CRLF ) newsgroups-line CRLF
newsgroups-tag = %x46.6F.72 SP %x79.6F.75.72 SP newsgroups-tag = %x46.6F.72 SP %x79.6F.75.72 SP
%x6E.65.77.73.67.72.6F.75.70.73 SP %x6E.65.77.73.67.72.6F.75.70.73 SP
%x66.69.6C.65.3A %x66.69.6C.65.3A
; case sensitive ; case sensitive
; "For your newsgroups file:" ; "For your newsgroups file:"
newsgroups-line = newsgroup-name newsgroups-line = newsgroup-name
[ 1*HTAB newsgroup-description ] [ 1*HTAB newsgroup-description ]
[ 1*WSP moderation-flag ] [ 1*WSP moderation-flag ]
newsgroup-description newsgroup-description
= 1*( [WSP] utext) = 1*( [WSP] utext)
moderation-flag = %x28.4D.6F.64.65.72.61.74.65.64.29 moderation-flag = %x28.4D.6F.64.65.72.61.74.65.64.29
; case sensitive "(Moderated)" ; case sensitive "(Moderated)"
The whole groupinfo-body is intended to be interpreted as a text The whole groupinfo-body is intended to be interpreted as a text
written in the UTF-8 character set. written in the UTF-8 character set.
The "application/news-groupinfo" is used in conjunction with the The "application/news-groupinfo" is used in conjunction with the
"newgroup" (7.1) and "mvgroup" (7.3) control messages. The "newgroup" (7.2.1) and "mvgroup" (7.2.3) control messages. The
newsgroup-name(s) in the newsgroups-line MUST agree with the newsgroup-name(s) in the newsgroups-line MUST agree with the
newsgroup-name(s) in the "newgroup" or "mvgroup" control message (and newsgroup-name(s) in the "newgroup" or "mvgroup" control message.
thus there cannot be more than a single newsgroups-line except in the The Content-Type "application/news-groupinfo" MUST NOT be used except
case of a "mvgroup" control message affecting a whole as a part of such control messages. Although optional, the
(sub)hierarchy). The Content-Type "application/news-groupinfo" MUST newsgroups-tag SHOULD be included until such time as this standard
NOT be used except as a part of such control messages. Although has been widely adopted, to ensure compatibility with present
optional, the newsgroups-tag SHOULD be included until such time as practice.
this standard has been widely adopted, to ensure compatibility with
present practice.
News Article Format July 2001
Moderated newsgroups MUST be marked by appending the case sensitive Moderated newsgroups MUST be marked by appending the case sensitive
text " (Moderated)" at the end. It is NOT recommended that the text " (Moderated)" at the end. It is NOT recommended that the
moderator's email address be included in the newsgroup-description as moderator's email address be included in the newsgroup-description as
has sometimes been done. has sometimes been done.
News Article Format November 2001
Although, in accordance with [RFC 2822] and section 4.5 of this Although, in accordance with [RFC 2822] and section 4.5 of this
standard, a newsgroups-line could have a maximum length of 998 standard, a newsgroups-line could have a maximum length of 998
octets, as a matter of policy a far lower limit, expressed in octets, as a matter of policy a far lower limit, expressed in
characters, Ought to be set. The current convention is to limit its characters, Ought to be set. The current convention is to limit its
length so that the newsgroup-name, the HTAB(s) (interpreted as 8- length so that the newsgroup-name, the HTAB(s) (interpreted as 8-
character tabs that takes one at least to column 24) and the character tabs that takes one at least to column 24) and the
newsgroup-description (excluding any moderation-flag) fit into 79 newsgroup-description (excluding any moderation-flag) fit into 79
characters. However, this standard does not seek to enforce any such characters. However, this standard does not seek to enforce any such
rule, and reading agents SHOULD therefore enable a newsgroups-line of rule, and reading agents SHOULD therefore enable a newsgroups-line of
any length to be displayed, e.g. by wrapping it as required. any length to be displayed, e.g. by wrapping it as required.
NOTE: The newsgroups-line is intended to provide a brief NOTE: The newsgroups-line is intended to provide a brief
description of the newsgroup, written in the UTF-8 character description of the newsgroup, written in the UTF-8 character
set. Since newsgroup-names are required to be expressed in set. Since newsgroup-names are required to be expressed in
UTF-8 when they appear in headers, and since [NNTP] requires the UTF-8 when they appear in headers, and since [NNTP] requires the
use of UTF-8 when such a description is transmitted by the LIST use of UTF-8 when such a description is transmitted by the LIST
NEWSGROUPS command, it would also be convenient for servers that NEWSGROUPS command, it would also be convenient for servers that
keep a "newsgroups" file to store them in that form, so as to keep a "newsgroups" file to store them in that form, so as to
avoid unnecessary conversions. avoid unnecessary conversions.
7.1.3. Initial Articles 7.2.1.3. Initial Articles
Some subparts of a "newgroup" or "mvgroup" control message MAY Some subparts of a "newgroup" or "mvgroup" control message MAY
contain an initial set of articles to be posted to the affected contain an initial set of articles to be posted to the affected
newsgroup(s) as soon as it has been created. These parts are newsgroup(s) as soon as it has been created or modified. These parts
identified by having the Content-Type "application/news- are identified by having the Content-Type "application/news-
transmission", possibly with the parameter "usage=inject". The body transmission", possibly with the parameter "usage=inject". The body
of each such part should be a complete proto-article, ready for of each such part should be a complete proto-article, ready for
posting. This feature is intended for the posting of charters, posting. This feature is intended for the posting of charters,
initial FAQs and the like to the newly formed group(s). initial FAQs and the like to the newly formed group(s).
The Newsgroups header of the proto-article MUST include the The Newsgroups header of the proto-article MUST include the
newsgroup-name of the newly created group (or one of them, if more newsgroup-name of the newly created or modified group. It MAY include
than one). It MAY include other newsgroup-names. If the proto-article other newsgroup-names. If the proto-article includes a Message-ID
includes a Message-ID header, the message indentifier in it MUST be header, the message indentifier in it MUST be different from that of
different from that of any existing article and from that of the any existing article and from that of the control message as a whole.
control message as a whole, though it MAY be derived from it by
appending "$p=<n>", where <n> is an integer part number (see also
6.15.2.1), immediately after its id-left-side (i.e. before the "@").
Alternatively such a message identifier MAY be derived by the Alternatively such a message identifier MAY be derived by the
injecting agent when the proto-article is posted. The proto-article injecting agent when the proto-article is posted. The proto-article
SHOULD include the header "Distribution: local". SHOULD include the header "Distribution: local".
The proto-article SHOULD be injected at the serving agent that The proto-article SHOULD be injected at the serving agent that
processes the control message AFTER the newsgroup(s) in question has processes the control message AFTER the newsgroup(s) in question has
been created. It MUST NOT be injected if the newsgroup is not, in been created or modified. It MUST NOT be injected if the newsgroup is
fact, created (for whatever reason). It MUST NOT be submitted to any not, in fact, created (for whatever reason). It MUST NOT be submitted
relaying agent for transmission beyond the server(s) upon which the to any relaying agent for transmission beyond the server(s) upon
newsgroup creation has just been effected (in other words, it is to which the newsgroup creation has just been effected (in other words,
News Article Format July 2001 it is to be treated as having a "Distribution: local" header,
whether such a header is actually present or not).
be treated as having a "Distribution: local" header, whether such a
header is actually present or not).
NOTE: The "$p=<n>" convention, if applied uniformly, should NOTE: The "$p=<n>" convention, if applied uniformly, should
ensure that initial articles relayed beyond the local server in ensure that initial articles relayed beyond the local server in
contravention of the above prohibition will not propagate in contravention of the above prohibition will not propagate in
competition with similar copies injected at other local servers. competition with similar copies injected at other local servers.
News Article Format November 2001
NOTE: It is not precluded that the proto-article is itself a NOTE: It is not precluded that the proto-article is itself a
control message or other type of special article, to be control message or other type of special article, to be
activated only upon creation of the new newsgroup. However, activated only upon creation of the new newsgroup. However,
except as might arise from that possibility, any except as might arise from that possibility, any
"application/news-transmission" within some nested "multipart/*" "application/news-transmission" within some nested "multipart/*"
structure within the proto-article is not to be activated. structure within the proto-article is not to be activated.
7.1.4. Example 7.2.1.4. Example
A "newgroup" with bilingual charter and policy information: A "newgroup" with bilingual charter and policy information:
From: "example.all Administrator" <admin@example.invalid> From: "example.all Administrator" <admin@example.invalid>
Newsgroups: example.admin.groups,example.admin.announce Newsgroups: example.admin.groups,example.admin.announce
Date: 27 Feb 1997 12:50:22 +0200 Date: 27 Feb 1997 12:50:22 +0200
Subject: cmsg newgroup example.admin.info moderated Subject: cmsg newgroup example.admin.info moderated
Approved: admin@example.invalid Approved: admin@example.invalid
Control: newgroup example.admin.info moderated Control: newgroup example.admin.info moderated
Message-ID: <ng-example.admin.info-19970227@example.invalid> Message-ID: <ng-example.admin.info-19970227@example.invalid>
skipping to change at page 74, line 4 skipping to change at page 67, line 53
Content-Type: multipart/alternative ; Content-Type: multipart/alternative ;
differences = content-language ; differences = content-language ;
boundary = nxtlang boundary = nxtlang
--nxtlang --nxtlang
Content-Type: text/plain; charset=us-ascii Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit
Content-Language: en Content-Language: en
The group example.admin.info contains regularly posted The group example.admin.info contains regularly posted
News Article Format July 2001
information on the example.* hierarchy. information on the example.* hierarchy.
--nxtlang --nxtlang
Content-Type: text/plain; charset=iso-8859-1 Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit Content-Transfer-Encoding: 8bit
Content-Language: de Content-Language: de
Die Gruppe example.admin.info enthaelt regelmaessig versandte Die Gruppe example.admin.info enthaelt regelmaessig versandte
News Article Format November 2001
Informationen ueber die example.*-Hierarchie. Informationen ueber die example.*-Hierarchie.
--nxtlang-- --nxtlang--
--nxtprt-- --nxtprt--
7.2. The 'rmgroup' Control Message 7.2.2. The 'rmgroup' Control Message
rmgroup-verb = "rmgroup" rmgroup-verb = "rmgroup"
rmgroup-arguments = CFWS newsgroup-name rmgroup-arguments = CFWS newsgroup-name
The "rmgroup" control message requests that the specified group be The "rmgroup" control message requests that the specified group be
removed from the list of valid groups. The Content-Type of the body removed from the list of valid groups. The Content-Type of the body
is unspecified; it MAY contain anything, usually an explanatory text. is unspecified; it MAY contain anything, usually an explanatory text.
NOTE: It is entirely proper for a serving agent to retain the NOTE: It is entirely proper for a serving agent to retain the
group until all the articles in it have expired, provided that group until all the articles in it have expired, provided that
it ceases to accept new articles. it ceases to accept new articles.
7.2.1. Example 7.2.2.1. Example
Plain "rmgroup": Plain "rmgroup":
From: "example.all Administrator" <admin@example.invalid> From: "example.all Administrator" <admin@example.invalid>
Newsgroups: example.admin.groups, example.admin.announce Newsgroups: example.admin.groups, example.admin.announce
Date: 4 Jul 1997 22:04 -0900 (PST) Date: 4 Jul 1997 22:04 -0900 (PST)
Subject: cmsg rmgroup example.admin.obsolete Subject: cmsg rmgroup example.admin.obsolete
Message-ID: <rm-example.admin.obsolete-19970730@example.invalid> Message-ID: <rm-example.admin.obsolete-19970730@example.invalid>
Approved: admin@example.invalid Approved: admin@example.invalid
Control: rmgroup example.admin.obsolete Control: rmgroup example.admin.obsolete
The group example.admin.obsolete is obsolete. Please remove it The group example.admin.obsolete is obsolete. Please remove it
from your system. from your system.
7.3. The 'mvgroup' Control Message 7.2.3. The 'mvgroup' Control Message
mvgroup-verb = "mvgroup" mvgroup-verb = "mvgroup"
mvgroup-arguments = CFWS ( mvgrp-groups / mvgrp-hrchy ) mvgroup-arguments = CFWS newsgroup-name CFWS newsgroup-name
mvgrp-groups = newsgroup-name [ CFWS newgroup-flag ]
CFWS newsgroup-name [ CFWS newgroup-flag ]
mvgrp-hrchy = groupnamepart ".*" CFWS groupnamepart ".*"
groupnamepart = newsgroup-name ; syntactically
7.3.1. Single group The "mvgroup" control message requests that the group specified by
the first (old-)newsgroup-name be moved to that specified by the
second (new-)newsgroup-name. Thus it is broadly equivalent to a
"newgroup" control message for the second group followed by a
"rmgroup" control message for the first group.
The "mvgroup" control message requests that the first specified group The second (new-)newsgroup-name MUST conform to all requirements
be moved to the second specified group. The message body MUST contain prescribed for the newsgroup-name of a "newgroup" control message
a "application/news-groupinfo" (7.1.2) containing machine- and (7.2.1) and Ought, similarly, to conform to any established policies
News Article Format July 2001 of the hierarchy. The message body contains an "application/news-
groupinfo" part (7.2.1.2) containing machine- and human-readable
information about the new group, and possibly other subparts as for a
"newgroup" control message. The information conveyed in the
"application/news-groupinfo" body part, notably its newsgroups-line
(7.2.1.2), is applied to the new group.
human-readable information about the new group, and possibly other News Article Format November 2001
subparts as for a newgroup control message.
When this message is received, and the new group does not already When this message is received, the new group is created (if it does
exist, it is created (and MUST be moderated if a newgroup-flag not exist already) as for a "newgroup" control message, and MUST in
"moderated" is present) and all existing articles SHOULD be copied or any case be made moderated if a newgroup-flag "moderated" is present.
moved to the new group; then the old, now empty group SHOULD be At the same time, arrangements SHOULD be made to remove the old group
removed. (as with a "rmgroup" control message), but only after a suitable
overlap period to allow the network to adjust to the new arrangement.
If the old group does not exist, the message is ignored unless the At the same time as a serving agent acts upon this message, all
new group does not exist either, in which case the message SHOULD be injecting agents associated with that serving agent SHOULD inhibit
treated as if it had been an equivalent "newgroup" message. the posting of new articles to the old group (preferably with some
indication to the poster that the new group should have been used).
Relaying agents, however, MUST continue to propagate such articles
during the overlap period.
If both groups exist, the groups MAY be "merged". If this is done, it NOTE: It is to be expected that different serving agents will
MUST be done correctly, i.e. implementations MUST take care that the act on this message at different points of time, users of the
messages in the group being deleted are renumbered accordingly to old group will have to become accustomed to the new arrangement,
avoid overwriting articles in one group with those of the other, and and followups to already established threads will likely
that crossposted articles do not appear twice. Otherwise, the old continue under the old group. Therefore, there needs to be an
group is just removed. overlap period during which articles may continue to be accepted
by relaying and serving agents in either group. This standard
does not specify any standard period of overlap (though it would
be expected to be expressed in days rather than in months). The
inhibition of injection of new articles to the old group may
seem draconian, but it is the surest way to prevent the
changeover from dragging on indefinitely.
[We could easily provide an extra parameter for the issuer of the
mvgroup message to suggest how many days the overlap should be. Does
anybody want to pursue that possibility?]
NOTE: Due to the severe difficulties of implementing this Since the "mvgroup" control message is newly introduced in this
merging, those proposing to merge existing groups using this standard and may not be widely implemented initially, it SHOULD be
control message should be aware that it may not be implemented followed shortly afterwards by a corresponding "newgroup" control
on many (if not most) sites, and should therefore be prepared message; and again, after a reasonable overlap period, it MUST be
for such disruption as may ensue. followed by a "rmgroup" control message for the old group.
An indication that the old group was replaced by the new group MAY be In order to facilitate a smooth changeover, serving agents MAY
retained by the serving agent so that continuity of service may be arrange to service requests for access to the old group by providing
maintained, and clients made aware of the new arrangements. access to the new group, which would then contain, or appear to
contain, all articles posted to either group (including, ideally, the
pre-changeover articles from the old one). Nevertheless, if this
feature is implemented, the articles themselves, as supplied to
reading agents, MUST NOT be altered in any way (and, in particular,
their Newsgroups headers MUST contain exactly those newsgroups
present when they were injected). On the other hand, the Xref header
MAY contain entries for either group (or even both).
NOTE: Some serving agents that use an "active" file permit an NOTE: Some serving agents that use an "active" file permit an
entry of the form "oldgroup xxx yyy =newgroup", which enables entry of the form "oldgroup xxx yyy =newgroup", which enables
any articles arriving for oldgroup to be diverted to newgroup, any articles arriving for oldgroup to be diverted to newgroup,
and could even enable users already subscribed to oldgroup to thus providing a simple implementation of this feature. However,
receive articles from newgroup instead. it is known that not all current serving agents will find
implementation so easy (especially in the short term) which is
In all cases, the information conveyed in the "application/news- why it is not mandated by this standard. Nevertheless, its
groupinfo" body part is applied to the new group. News Article Format November 2001
Until most serving agents conform to this standard, whenever a
mvgroup control message for a single group is issued, a corresponding
pair of rmgroup and newgroup control messages SHOULD be issued a few
days later.
7.3.2. Multiple Groups
If the two names ends with the character sequence ".*", the newgroup
message requests that a whole (sub)hierarchy be moved. The same
procedure as for single groups (7.3.1) applies to each matched group,
except that the moderation status of each old group MUST be copied to
the corresponding new group.
News Article Format July 2001
To avoid recursion, the new groups' names MUST NEVER match the old
groups' name pattern; i.e., moving a whole (sub)hierarchy to a
subhierarchy of the original hierarchy is explicitly disallowed.
Until most serving agents conform to this standard, whenever a eventual implementation in all serving agents is to be
mvgroup control message for multiple groups is issued, a considered highly desirable.
corresponding set of rmgroup and newgroup control messages for all
the affected groups SHOULD be issued a few days later.
7.3.3. Examples On the other hand, it is recognised that this feature would
likely not be implementable if the new group was already in
existence with existing articles in it. This situation should
not normally arise except when there is already some confusion
as to which groups are, or are not, supposed to exist in that
hierarchy. Note that the "mvgroup" control message is not really
intended to be used for merging two existing groups.
Plain "mvgroup": 7.2.3.1. Example
From: "example.all Administrator" <admin@example.invalid> From: "example.all Administrator" <admin@example.invalid>
Newsgroups: example.admin.groups, example.admin.announce Newsgroups: example.admin.groups, example.admin.announce
Date: 30 Jul 1997 22:04 -0500 (EST) Date: 30 Jul 1997 22:04 -0500 (EST)
Subject: cmsg mvgroup example.oldgroup example.newgroup moderated Subject: cmsg mvgroup example.oldgroup example.newgroup moderated
Message-ID: <mvgroup-example.oldgroup-19970730@example.invalid> Message-ID: <mvgroup-example.oldgroup-19970730@example.invalid>
Approved: admin@example.invalid Approved: admin@example.invalid
Control: mvgroup example.oldgroup example.newgroup moderated Control: mvgroup example.oldgroup example.newgroup moderated
Content-Type: multipart/mixed; boundary=nxt Content-Type: multipart/mixed; boundary=nxt
--nxt --nxt
Content-Type: application/newgroupinfo Content-Type: application/newgroupinfo
For your newsgroups file: For your newsgroups file:
example.newgroup The new replacement group (Moderated) example.newgroup The new replacement group (Moderated)
--nxt --nxt
The moderated group example.oldgroup is replaced by The moderated group example.oldgroup is replaced by
example.newgroup. Please update your configuration. example.newgroup. Please update your configuration, and please
--nxt-- arrange to file articles arriving for example.oldgroup as if
they were in example.newgroup.
More complex "mvgroup" for a whole hierarchy:
The charter of the group example.talk.jokes contained a reference to
example.talk.jokes.d, which is also being moved. So the charter is
updated.
From: "example.all Administrator" <admin@example.invalid>
Newsgroups: example.admin.groups, example.admin.announce
Date: 30 Jul 1997 22:04 -0500 (EST)
Subject: cmsg mvgroup example.talk.* example.conversation
Message-ID: <mvgroup-example.talk-19970730@example.invalid>
Approved: admin@example.invalid
Control: mvgroup example.talk.* example.conversation
Content-Type: multipart/mixed; boundary=nxt
--nxt
Content-Type: application/news-groupinfo
For your newsgroups file:
example.conversation.boring Boring conversations
News Article Format July 2001
example.conversation.better Better conversations
example.conversation.jokes Funny stuff
example.conversation.jokes.d Discussion of funny stuff
--nxt
Content-Type: application/news-transmission
Newsgroups: example.conversation.jokes
From: "example.all Administrator" <admin@example.invalid>
Subject: Charter for renamed group example.conversation.jokes
Distribution: local
Message-ID: <mvgroup-example.talk-19970730$p=1@example.invalid>
This group is to publish jokes and other funny stuff.
Discussions about the articles posted here should be redirected
to example.conversation.jokes.d; adding a Followup-To: header
is recommended.
--nxt-- --nxt--
7.4. The 'checkgroups' Control Message 7.2.4. The 'checkgroups' Control Message
The "checkgroups" control message contains a list of all the valid The "checkgroups" control message contains a list of all the valid
groups in a complete hierarchy. groups in a complete hierarchy.
checkgroup-verb = "checkgroups" checkgroup-verb = "checkgroups"
checkgroup-arguments= [ chkscope ] [ chksernr ] checkgroup-arguments= [ chkscope ] [ chksernr ]
chkscope = 1*( CFWS ["!"] newsgroup-name ) chkscope = 1*( CFWS ["!"] newsgroup-name )
chksernr = CFWS "#" 1*DIGIT chksernr = CFWS "#" 1*DIGIT
The chkscope parameter(s) specifies the (sub)hierarchy(s) for which The chkscope parameter(s) specifies the (sub)hierarchy(s) for which
this "checkgroups" message applies. The chksernr parameter is a this "checkgroups" message applies. The chksernr parameter is a
serial number, which can be any positive integer (e.g. just numbered serial number, which can be any positive integer (e.g. just numbered
or the date in YYYYMMDD). It SHOULD increase by an arbitrary value or the date in YYYYMMDD). It SHOULD increase by an arbitrary value
with every change to the group list and MUST NOT ever decrease. with every change to the group list and MUST NOT ever decrease.
News Article Format November 2001
NOTE: This was added to circumvent security problems in NOTE: This was added to circumvent security problems in
situations where the Date header cannot be authenticated. situations where the Date header cannot be authenticated.
Example: Example:
Control: checkgroups de !de.alt #248 Control: checkgroups de !de.alt #248
NOTE: Some existing software does not support the "chkscope" NOTE: Some existing software does not support the "chkscope"
parameter. Thus a "checkgroups" message SHOULD also contain the parameter. Thus a "checkgroups" message SHOULD also contain the
groups of other subhierarchies the sender is not responsible groups of other subhierarchies the sender is not responsible
for. "New" software MUST ignore groups which do not fall into for. "New" software MUST ignore groups which do not fall into
the scope of the "checkgroups" message. the scope of the "checkgroups" message.
If no scope for the checkgroups message is given, it applies to all If no scope for the checkgroups message is given, it applies to all
hierarchies for which group statements appear in the message. hierarchies for which group statements appear in the message.
News Article Format July 2001
The body of the message has the Content-Type "application/news- The body of the message has the Content-Type "application/news-
checkgroups". It asserts that the newsgroups it lists are the only checkgroups". It asserts that the newsgroups it lists are the only
newsgroups in the specified hierarchies. newsgroups in the specified hierarchies.
NOTE: The checkgroups nessage is intended to synchronize the NOTE: The checkgroups nessage is intended to synchronize the
list of newsgroups stored by a serving agent, and their list of newsgroups stored by a serving agent, and their
newsgroup-descriptions, with the lists stored by other serving newsgroup-descriptions, with the lists stored by other serving
agents throughout the network. However, it might be inadvisable agents throughout the network. However, it might be inadvisable
for the serving agent actually to create or delete any for the serving agent actually to create or delete any
newsgroups without first obtaining the approval of its newsgroups without first obtaining the approval of its
administrators for such proposed actions. administrators for such proposed actions.
7.4.1. Application/news-checkgroups 7.2.4.1. Application/news-checkgroups
The "application/news-checkgroups" body part contains a complete list The "application/news-checkgroups" body part contains a complete list
of all the newsgroups in a hierarchy, their newsgroup-descriptions of all the newsgroups in a hierarchy, their newsgroup-descriptions
and their moderation status. and their moderation status.
The MIME content type definition of "application/news-checkgroups" The MIME content type definition of "application/news-checkgroups"
is: is:
MIME type name: application MIME type name: application
MIME subtype name: news-checkgroups MIME subtype name: news-checkgroups
skipping to change at page 78, line 41 skipping to change at page 71, line 57
Disposition: by default, inline Disposition: by default, inline
Encoding considerations: "7bit" or "8bit" is sufficient and MUST be Encoding considerations: "7bit" or "8bit" is sufficient and MUST be
used to maintain compatibility. used to maintain compatibility.
Security considerations: this type MUST NOT be used except as part Security considerations: this type MUST NOT be used except as part
of a checkgroups control message of a checkgroups control message
The content of the "application/news-checkgroups" body part is The content of the "application/news-checkgroups" body part is
defined as: defined as:
checkgroups-body = *( valid-group CRLF ) checkgroups-body = *( valid-group CRLF )
valid-group = newsgroups-line ; see 7.1.2 valid-group = newsgroups-line ; see 7.2.1.2
The whole checkgroups-body is intended to be interpreted as a text The whole checkgroups-body is intended to be interpreted as a text
written in the UTF-8 character set. written in the UTF-8 character set.
News Article Format November 2001
The "application/news-checkgroups" content type is used in The "application/news-checkgroups" content type is used in
conjunction with the "checkgroups" control message (7.4). conjunction with the "checkgroups" control message (7.2.4).
NOTE: The possibility of removing a complete hierarchy by means NOTE: The possibility of removing a complete hierarchy by means
of an "invalidation" line beginning with a '!' is no longer of an "invalidation" line beginning with a '!' is no longer
provided by this standard. The intent of the feature was widely provided by this standard. The intent of the feature was widely
misunderstood and it was misused more often than it was used misunderstood and it was misused more often than it was used
correctly. The same effect, if required, can now be obtained by correctly. The same effect, if required, can now be obtained by
the use of an appropriate chkscope argument in conjunction with the use of an appropriate chkscope argument in conjunction with
an empty checkgroups-body. an empty checkgroups-body.
7.5. Cancel 7.3. Cancel
The cancel message requests that a target article be "canceled" i.e. The cancel message requests that a target article be "canceled" i.e.
be withdrawn from circulation or access. A cancel message may be be withdrawn from circulation or access. A cancel message may be
issued in the following circumstances. issued in the following circumstances.
News Article Format July 2001
1. The poster of an article (or, more specifically, any entity 1. The poster of an article (or, more specifically, any entity
mentioned in the From header or the Sender header, whether or not mentioned in the From header or the Sender header, whether or not
that entity was the actual poster) is always entitled to issue a that entity was the actual poster) is always entitled to issue a
cancel message for that article, and serving agents SHOULD honour cancel message for that article, and serving agents SHOULD honour
such requests. Posting agents SHOULD facilitate the issuing of such requests. Posting agents SHOULD facilitate the issuing of
cancel messages by posters fulfilling these criteria. cancel messages by posters fulfilling these criteria.
2. The agent which injected the article onto the network (more 2. The agent which injected the article onto the network (more
specifically, the entity identified by the path-identity in front specifically, the entity identified by the path-identity in front
of the leftmost '%' delimeter in the Path header (5.6) or in the of the leftmost '%' delimeter in the Path header (5.6) or in the
skipping to change at page 79, line 30 skipping to change at page 72, line 47
serving agents SHOULD honour such requests. serving agents SHOULD honour such requests.
3. Other entities MAY be entitled to issue a cancel message for that 3. Other entities MAY be entitled to issue a cancel message for that
article, in circumstances where established policy for any article, in circumstances where established policy for any
hierarchy or group in the Newsgroup header, or established custom hierarchy or group in the Newsgroup header, or established custom
within Usenet, so allows (such policies and customs are not within Usenet, so allows (such policies and customs are not
defined by this standard). Such cancel messages MUST include an defined by this standard). Such cancel messages MUST include an
Approved header identifying the responsible entity. Serving agents Approved header identifying the responsible entity. Serving agents
MAY honour such requests, but SHOULD first take steps to verify MAY honour such requests, but SHOULD first take steps to verify
their appropriateness. their appropriateness.
[I think that accords with the accepted norms for 1st, 2nd and 3rd party
cancels (or is a moderator a 1st party?). Observe the use of an Approved
header in place of the present X-Cancelled-By (I cannot see that we need
a new header for that when Approved is available). The definitions given
are sufficient to establish which category a cancel was in, assuming
that nobody told any lies, and to establish who had committed abuse
otherwise. So far so good, but we now need authentication methods on top
of all that.]
[A future draft of this standard may contain provisions for a Cancel-
Lock header to enable verification of the authenticity of 1st (and even
2nd) party cancels, and means for digital signatures to establish the
authenticity of 3rd party cancels.]
[A future draft of this standard may also contain provision for a "block
cancel" message, with a list of messages to be canceled contained in its
body rather than in the headers. Whether this needs to have a Control
header at all, and whether the existing "nocem-on-spool" is adequate for
this purpose, and indeed whether NOCEM as such should be part of this,
or some other, standard are issues that are yet to be addressed.]
cancel-verb = "cancel" cancel-verb = "cancel"
cancel-arguments = CFWS message-id cancel-arguments = CFWS message-id
The argument identifies the article to be cancelled by its message The argument identifies the article to be cancelled by its message
identifier. The body SHOULD contain an indication of why the identifier. The body SHOULD contain an indication of why the
cancellation was requested. The cancel message SHOULD be posted to cancellation was requested. The cancel message SHOULD be posted to
the same newsgroup(s), with the same distribution(s), as the article the same newsgroup, with the same distribution, as the article it is
it is attempting to cancel. attempting to cancel.
News Article Format July 2001 A serving agent that elects to honour a cancel message SHOULD make
the article unavailable for relaying or serving (perhaps by deleting
it completely). If the target article is unavailable, and the
News Article Format November 2001
A serving agent that elects to honour a cancel message SHOULD delete acceptability of the cancel message cannot be established without it,
the target article completely and immediately (or at the minimum make activation of the cancel message SHOULD be delayed until the target
the article unavailable for relaying or serving) and also SHOULD article has been seen. See also sections 8.3 and 8.4.
reject any copies of this article that appear subsequently. See also
sections 8.3 and 8.4. NOTE: It is expected that the security extension envisaged in
section 7.1 will make more detailed provisions for establishing
whether honouring a particular cancel message is in order. In
particular, it is likely that there will be provision for the
digital signature of 3rd party cancels.
NOTE: The former requirement [RFC 1036] that the From and/or NOTE: The former requirement [RFC 1036] that the From and/or
Sender headers of the cancel message should match those of the Sender headers of the cancel message should match those of the
original article has been removed from this standard, since it original article has been removed from this standard, since it
only encouraged cancel issuers to conceal their true identity, only encouraged cancel issuers to conceal their true identity,
and it was not usually checked or enforced by canceling and it was not usually checked or enforced by canceling
software. Therefore, both the From and/or Sender headers and software. Therefore, both the From and/or Sender headers and
any Approved header should now relate to the entity responsible any Approved header should now relate to the entity responsible
for issuing the cancel message. for issuing the cancel message.
[Do we want to review that now in the light of what the Security
Extension may contain?]
7.6. Ihave, sendme 7.4. Ihave, sendme
The "ihave" and "sendme" control messages implement a crude batched The "ihave" and "sendme" control messages implement a crude batched
predecessor of the NNTP [NNTP] protocol. They are largely obsolete on predecessor of the NNTP [NNTP] protocol. They are largely obsolete on
the Internet, but still see use in conjunction with some transort the Internet, but still see use in conjunction with some transort
protocols such as UUCP, especially for backup feeds that normally are protocols such as UUCP, especially for backup feeds that normally are
active only when a primary feed path has failed. There is no active only when a primary feed path has failed. There is no
requirement for relaying agents that do not support such transport requirement for relaying agents that do not support such transport
protocols to implement them. protocols to implement them.
NOTE: The ihave and sendme messages defined here have ABSOLUTELY NOTE: The ihave and sendme messages defined here have ABSOLUTELY
skipping to change at page 80, line 53 skipping to change at page 74, line 5
Msg-ids MUST appear in either the arguments or the body, but NOT Msg-ids MUST appear in either the arguments or the body, but NOT
both. Relayers SHOULD generate the form putting msg-ids in the body, both. Relayers SHOULD generate the form putting msg-ids in the body,
but the other form MUST be supported for backward compatibility. but the other form MUST be supported for backward compatibility.
The ihave message states that the named relaying agent has received The ihave message states that the named relaying agent has received
articles with the specified message identifiers, which may be of articles with the specified message identifiers, which may be of
interest to the relaying agents receiving the ihave message. The interest to the relaying agents receiving the ihave message. The
sendme message requests that the agent receiving it send the articles sendme message requests that the agent receiving it send the articles
having the specified message identifiers to the named relaying agent. having the specified message identifiers to the named relaying agent.
News Article Format November 2001
These control messages are normally sent essentially as point-to- These control messages are normally sent essentially as point-to-
point messages, by using newsgroup-names in the Newsgroups header of point messages, by using newsgroup-names in the Newsgroups header of
the form "to." followed by one of more components in the form of a the form "to." followed by one of more components in the form of a
relayer-name (see section 5.5.1 which forbids "to" as the first relayer-name (see section 5.5.1 which forbids "to" as the first
component of a newsgroup-name). The control message SHOULD then be component of a newsgroup-name). The control message SHOULD then be
delivered ONLY to the relaying agent(s) identitifed by that relayer- delivered ONLY to the relaying agent(s) identitifed by that relayer-
name, and any relaying agent receiving such a message which includes name, and any relaying agent receiving such a message which includes
its own relayer-name MUST NOT propagate it further. Each pair of its own relayer-name MUST NOT propagate it further. Each pair of
News Article Format July 2001
relaying agent(s) sending and receiving these messages MUST be relaying agent(s) sending and receiving these messages MUST be
immediate neighbors, exchanging news directly with each other. Each immediate neighbors, exchanging news directly with each other. Each
relaying agent advertises its new arrivals to the other using ihave relaying agent advertises its new arrivals to the other using ihave
messages, and each uses sendme messages to request the articles it messages, and each uses sendme messages to request the articles it
lacks. lacks.
To reduce overhead, ihave and sendme messages SHOULD be sent To reduce overhead, ihave and sendme messages SHOULD be sent
relatively infrequently and SHOULD contain reasonable numbers of relatively infrequently and SHOULD contain reasonable numbers of
message IDs. If ihave and sendme are being used to implement a backup message IDs. If ihave and sendme are being used to implement a backup
feed, it may be desirable to insert a delay between reception of an feed, it may be desirable to insert a delay between reception of an
ihave and generation of a sendme, so that a slightly slow primary ihave and generation of a sendme, so that a slightly slow primary
feed will not cause large numbers of articles to be requested feed will not cause large numbers of articles to be requested
unnecessarily via sendme. unnecessarily via sendme.
7.7. Obsolete control messages. 7.5. Obsolete control messages.
The following control message verbs are declared obsolete by this The following control message verbs are declared obsolete by this
standard: standard:
sendsys sendsys
version version
whogets whogets
senduuname senduuname
8. Duties of Various Agents 8. Duties of Various Agents
skipping to change at page 81, line 51 skipping to change at page 75, line 5
various combinations of the injecting, relaying and serving various combinations of the injecting, relaying and serving
functions. Its duties are then the union of the various duties functions. Its duties are then the union of the various duties
concerned. concerned.
8.1. General principles to be followed 8.1. General principles to be followed
There are two important principles that news implementors (and There are two important principles that news implementors (and
administrators) need to keep in mind. The first is the well-known administrators) need to keep in mind. The first is the well-known
Internet Robustness Principle: Internet Robustness Principle:
News Article Format November 2001
Be liberal in what you accept, and conservative in what you Be liberal in what you accept, and conservative in what you
send. send.
However, in the case of news there is an even more important However, in the case of news there is an even more important
principle, derived from a much older code of practice, the principle, derived from a much older code of practice, the
Hippocratic Oath (we will thus call this the Hippocratic Principle): Hippocratic Oath (we will thus call this the Hippocratic Principle):
News Article Format July 2001
First, do no harm. First, do no harm.
It is VITAL to realize that decisions which might be merely It is VITAL to realize that decisions which might be merely
suboptimal in a smaller context can become devastating mistakes when suboptimal in a smaller context can become devastating mistakes when
amplified by the actions of thousands of hosts within a few minutes. amplified by the actions of thousands of hosts within a few minutes.
In the case of gateways, the primary corollary to this is: In the case of gateways, the primary corollary to this is:
Cause no loops. Cause no loops.
skipping to change at page 82, line 32 skipping to change at page 75, line 39
As such, an injecting agent is considered responsible for ensuring As such, an injecting agent is considered responsible for ensuring
that any article it injects conforms with the rules of this standard that any article it injects conforms with the rules of this standard
and the policies of any newsgroups or hierarchies that the article is and the policies of any newsgroups or hierarchies that the article is
posted to. It is also expected to bear some responsibility towards posted to. It is also expected to bear some responsibility towards
the rest of the network for the behaviour of its posters (and the rest of the network for the behaviour of its posters (and
provision is therefore made for it to be easily contactable by provision is therefore made for it to be easily contactable by
email). email).
To this end injecting agents MAY cancel articles which they have To this end injecting agents MAY cancel articles which they have
previously injected (see 7.5). previously injected (see 7.3).
8.2.1. Proto-articles 8.2.1. Proto-articles
A proto-article is one that has been created by a posting agent and A proto-article is one that has been created by a posting agent and
has not yet been injected into the news system by an injecting agent. has not yet been injected into the news system by an injecting agent.
It SHOULD NOT be propagated in that form to other than injecting It SHOULD NOT be propagated in that form to other than injecting
agents. A proto-article has the same format as a normal article agents. A proto-article has the same format as a normal article
except that some of the following mandatory headers MAY be omitted: except that some of the following mandatory headers MAY be omitted:
Message-Id, Date and Path. These headers MUST NOT contain invalid Message-Id, Date and Path. These headers MUST NOT contain invalid
values; they MUST either be correct or not present at all. values; they MUST either be correct or not present at all.
skipping to change at page 82, line 54 skipping to change at page 76, line 4
A proto-article SHOULD NOT contain the '%' delimiter in any Path A proto-article SHOULD NOT contain the '%' delimiter in any Path
header, except in the rare cases where an article gets injected header, except in the rare cases where an article gets injected
twice. It MAY contain path-identities with other delimiters in the twice. It MAY contain path-identities with other delimiters in the
pre-injection portion of the Path header (5.6.3). pre-injection portion of the Path header (5.6.3).
8.2.2. Procedure to be followed by Injecting Agents 8.2.2. Procedure to be followed by Injecting Agents
A injecting agent receives proto-articles from posting and followup A injecting agent receives proto-articles from posting and followup
agents. It verifies them, adds headers where required and then either agents. It verifies them, adds headers where required and then either
forwards them to a moderator or injects them by passing them to forwards them to a moderator or injects them by passing them to
News Article Format November 2001
serving or relaying agents. serving or relaying agents.
If an injecting agent receives an otherwise valid article that has If an injecting agent receives an otherwise valid article that has
already been injected it SHOULD either act as if it is a relaying already been injected it SHOULD either act as if it is a relaying
agent or else pass the article on to a relaying agent completely agent or else pass the article on to a relaying agent completely
unaltered. Exceptionally, it MAY reinject the article, perhaps as a unaltered. Exceptionally, it MAY reinject the article, perhaps as a
part of some complex gatewaying process (in which case it will add a part of some complex gatewaying process (in which case it will add a
News Article Format July 2001
second '%' delimiter to the Path header). It MUST NOT forward an second '%' delimiter to the Path header). It MUST NOT forward an
already injected article to a moderator. already injected article to a moderator.
An injecting agent processes articles as follows: An injecting agent processes articles as follows:
1. It MUST remove any Injector-Info or Complaints-To header already 1. It MUST remove any Injector-Info or Complaints-To header already
present (though it might be useful to copy them to suitable X- present (though it might be useful to copy them to suitable X-
headers). It SHOULD likewise remove any NNTP-Posting-Host or other headers). It SHOULD likewise remove any NNTP-Posting-Host or other
undocumented tracing header. undocumented tracing header.
skipping to change at page 83, line 53 skipping to change at page 77, line 4
9 An Injector-Info header (6.19) SHOULD be added, identifying the 9 An Injector-Info header (6.19) SHOULD be added, identifying the
trusted source of the article, and a suitable Complaints-To header trusted source of the article, and a suitable Complaints-To header
(6.20) MAY be added (except that these two headers SHOULD NOT be (6.20) MAY be added (except that these two headers SHOULD NOT be
added if the article is to be forwarded to a moderator). added if the article is to be forwarded to a moderator).
10.The injecting agent MAY add other headers not already provided by 10.The injecting agent MAY add other headers not already provided by
the poster, but SHOULD NOT alter, delete or reorder any headers the poster, but SHOULD NOT alter, delete or reorder any headers
already present in the article (except for headers intended for already present in the article (except for headers intended for
tracing purposes, such as Injector-Info and Complaints-To, as tracing purposes, such as Injector-Info and Complaints-To, as
News Article Format November 2001
already mentioned). The injecting agent MUST NOT alter the body of already mentioned). The injecting agent MUST NOT alter the body of
the article in any way. the article in any way.
11.If the Newsgroups line contains one or more moderated groups and 11.If the Newsgroups line contains one or more moderated groups and
the article does NOT contain an Approved header, then the the article does NOT contain an Approved header, then the
injecting agent MUST forward it to the moderator of the first injecting agent MUST forward it to the moderator of the first
(leftmost) moderated group listed in the Newsgroups line via (leftmost) moderated group listed in the Newsgroups line via
News Article Format July 2001
email. The complete article SHOULD be encapsulated (headers and email. The complete article SHOULD be encapsulated (headers and
all) within the email, preferably using the Content-Type all) within the email, preferably using the Content-Type
"application/news-transmission" (6.21.6.1). "application/news-transmission" (6.21.6.1).
NOTE: This standard does not prescribe how the email address of NOTE: This standard does not prescribe how the email address of
the moderator is to be determined, that being a matter of policy the moderator is to be determined, that being a matter of policy
to be arranged by the agency responsible for the oversight of to be arranged by the agency responsible for the oversight of
each hierarchy. Nevertheless, there do exist various agents each hierarchy. Nevertheless, there do exist various agents
worldwide which provide the service of forwarding to moderators, worldwide which provide the service of forwarding to moderators,
and the address to use with them is obtained by replacing each and the address to use with them is obtained by replacing each
skipping to change at page 84, line 50 skipping to change at page 77, line 57
3. It MUST reject any article that does not have the correct 3. It MUST reject any article that does not have the correct
mandatory headers (section 5) present with legal contents. mandatory headers (section 5) present with legal contents.
4. It SHOULD reject any article whose optional headers (section 6) do 4. It SHOULD reject any article whose optional headers (section 6) do
not have legal contents. not have legal contents.
5. It SHOULD reject any article that has already been sent to it (a 5. It SHOULD reject any article that has already been sent to it (a
database of message identifiers of recent messages is usually kept database of message identifiers of recent messages is usually kept
and matched against). and matched against).
6. It SHOULD reject any article that has already been Canceled, 6. It SHOULD reject any article that matches an already received
Superseded or Replaced by its poster or by another trusted entity. cancel message (or an equivalent, Supersedes header) issued by its
poster or by some other trusted entity.
News Article Format November 2001
7. It MAY reject any article without an Approved header posted to 7. It MAY reject any article without an Approved header posted to
newsgroups known to be moderated (this practice is strongly newsgroups known to be moderated (this practice is strongly
recommended, but the information necessary to do it may not be recommended, but the information necessary to do it may not be
available to all agents). available to all agents).
News Article Format July 2001
8. It then passes articles which match mutually agreed criteria on to 8. It then passes articles which match mutually agreed criteria on to
neighboring relaying and serving agents. However, it SHOULD NOT neighboring relaying and serving agents. However, it SHOULD NOT
forward articles to sites whose path-identity is already in the forward articles to sites whose path-identity is already in the
Path header. Path header.
NOTE: It is usual for relaying and serving agents to restrict NOTE: It is usual for relaying and serving agents to restrict
the Newsgroups, Distributions, age and size of articles that the Newsgroups, Distributions, age and size of articles that
they wish to receive. they wish to receive.
If the article is rejected as being invalid, unwanted or unacceptable If the article is rejected as being invalid, unwanted or unacceptable
skipping to change at page 85, line 55 skipping to change at page 79, line 5
A serving agent processes articles as follows: A serving agent processes articles as follows:
1. It MUST verify the leftmost entry in the Path header and then 1. It MUST verify the leftmost entry in the Path header and then
prepend its own path-identity with a '/' delimiter, and possibly prepend its own path-identity with a '/' delimiter, and possibly
also the verified path-identity of its source with a '?' delimiter also the verified path-identity of its source with a '?' delimiter
(5.6.2). (5.6.2).
2. It MUST reject any article whose Date header is stale (see 5.1). 2. It MUST reject any article whose Date header is stale (see 5.1).
News Article Format November 2001
3. It MUST reject any article that does not have the correct 3. It MUST reject any article that does not have the correct
mandatory headers (section 5) present, or which contains any mandatory headers (section 5) present, or which contains any
header that does not have legal contents. header that does not have legal contents.
News Article Format July 2001
4. It SHOULD reject any article that has already been sent to it (a 4. It SHOULD reject any article that has already been sent to it (a
database of message identifiers of recent messages is usually kept database of message identifiers of recent messages is usually kept
and matched against). and matched against).
5. It SHOULD reject any article that has already been Canceled, 5. It SHOULD reject any article that matches an already received
Superseded or Replaced by its poster or by another trusted entity, cancel message (or an equivalent, Supersedes header) issued by its
and delete any of such article that it already has in its news poster or by some other trusted entity.
database.
6. It MUST reject any article without an Approved header posted to 6. It MUST reject any article without an Approved header posted to
any moderated newsgroup which it is configured to receive, and it any moderated newsgroup which it is configured to receive, and it
MAY reject such articles for any newsgroup it knows be moderated. MAY reject such articles for any newsgroup it knows be moderated.
7. It SHOULD remove any variant headers (4.2.2.3) from each article 7. It SHOULD remove any variant headers (4.2.2.3) from each article
and MUST, in particular, remove any Xref header (6.16). It then and MUST, in particular, remove any Xref header (6.16). It then
MAY (and usually will) generate a fresh Xref header. MAY (and usually will) generate a fresh Xref header.
8. Finally, it stores the article in its news database. 8. Finally, it stores the article in its news database.
skipping to change at page 86, line 36 skipping to change at page 79, line 39
8.5. Duties of a Posting Agent 8.5. Duties of a Posting Agent
A Posting Agent is used to assist the poster in creating a valid A Posting Agent is used to assist the poster in creating a valid
proto-article and forwarding it to an injecting agent. proto-article and forwarding it to an injecting agent.
Postings agents SHOULD ensure that proto-articles they create are Postings agents SHOULD ensure that proto-articles they create are
valid Netnews articles according to this standard and other valid Netnews articles according to this standard and other
applicable policies. applicable policies.
Posting agents meant for use by ordinary posters SHOULD reject any Posting agents meant for use by ordinary posters SHOULD reject any
attempt to post an article which cancels, Supersedes or Replaces attempt to post an article which cancels or Supersedes another
another article of which the poster is not the author. article of which the poster is not the author.
8.6. Duties of a Followup Agent 8.6. Duties of a Followup Agent
A Followup Agent is a special case of a posting agent and as such is A Followup Agent is a special case of a posting agent and as such is
bound by all the posting agent's requirements plus additional ones. bound by all the posting agent's requirements plus additional ones.
Followup agents MUST create valid followups, in particular by Followup agents MUST create valid followups, in particular by
providing correctly adjusted forms of those headers described as providing correctly adjusted forms of those headers described as
inheritable (4.2.2.2), notably the Newsgroups header (5.5), the inheritable (4.2.2.2), notably the Newsgroups header (5.5), the
Subject header (5.4) and the References header (6.10), and they Ought Subject header (5.4) and the References header (6.10), and they Ought
to observe appropriate quoting conventions in the body (see 4.3.2). to observe appropriate quoting conventions in the body (see 4.3.2).
Followup agents SHOULD initialize the Newsgroups header from the Followup agents SHOULD initialize the Newsgroups header from the
precursor's Followup-To header, if present, when preparing a precursor's Followup-To header, if present, when preparing a
followup; however posters MAY then change this before posting if they followup; however posters MAY then change this before posting if they
wish. wish.
Followup agents MUST NOT attempt to send email to any address ending Followup agents MUST NOT attempt to send email to any address ending
in ".invalid". Followup agents SHOULD NOT email copies of the in ".invalid". Followup agents SHOULD NOT email copies of the
followup to the poster of the precursor unless this has been followup to the poster of the precursor unless this has been
explicitly requested by means of a Mail-Copies-To header (6.8), but explicitly requested by means of a Mail-Copies-To header (6.8), but
News Article Format November 2001
they SHOULD include a Posted-And-Mailed header (6.9) whenever a copy they SHOULD include a Posted-And-Mailed header (6.9) whenever a copy
is so emailed. is so emailed.
News Article Format July 2001
8.7. Duties of a Moderator 8.7. Duties of a Moderator
A Moderator receives news articles by email, decides whether to A Moderator receives news articles by email, decides whether to
accept them and, if so, either injects them into the news stream or accept them and, if so, either injects them into the news stream or
forwards them to further moderators. forwards them to further moderators.
A moderator processes an article, as submitted to any newsgroup that A moderator processes an article, as submitted to any newsgroup that
he moderates, as follows: he moderates, as follows:
1. He decides, on the basis of whatever moderation policy applies to 1. He decides, on the basis of whatever moderation policy applies to
skipping to change at page 87, line 52 skipping to change at page 80, line 54
The original Date and Message-ID are retained. The original Date and Message-ID are retained.
Any Distribution header is retained. Any Distribution header is retained.
Any Sender header is retained. Any Sender header is retained.
Various other minor headers are retained (though the moderator MAY, of Various other minor headers are retained (though the moderator MAY, of
course, remove them. course, remove them.
] ]
3. He adds an Approved header (6.14) containing a mailbox identifying 3. He adds an Approved header (6.14) containing a mailbox identifying
himself (or, if the article already contains an Approved header himself (or, if the article already contains an Approved header
from another moderator, he adds that identifying information to from another moderator, he adds that identifying information to
it). He MAY also add further headers to authenticate that the it). He MAY also include that Approved header within some digital
article has been properly approved. signature scheme (see 7.1).
[That can be strengthened when we have defined proper authentication
mechanisms.]
4. If the Newsgroups header contains further moderated newsgroups for 4. If the Newsgroups header contains further moderated newsgroups for
which approval has not already been given, he forwards the article which approval has not already been given, he forwards the article
to the moderator of the leftmost such group (which, if this to the moderator of the leftmost such group (which, if this
standard has been followed correctly, will always be the group News Article Format November 2001
News Article Format July 2001
standard has been followed correctly, will always be the group
immediately to the right of the group(s) for which he is immediately to the right of the group(s) for which he is
responsible). However, he MUST NOT alter the order in which the responsible). However, he MUST NOT alter the order in which the
newsgroups are listed in the Newsgroups header. newsgroups are listed in the Newsgroups header.
5. Otherwise, he causes the article to be injected, having first 5. Otherwise, he causes the article to be injected, having first
observed all the duties of a posting agent (8.5). observed all the duties of a posting agent (8.5).
NOTE: This standard does not prescribe how the moderator or NOTE: This standard does not prescribe how the moderator or
moderation policy for each newsgroup is established; rather it moderation policy for each newsgroup is established; rather it
assumes that whatever agencies are responsible for the relevant assumes that whatever agencies are responsible for the relevant
skipping to change at page 88, line 59 skipping to change at page 82, line 4
The primary dictat for a gateway is: The primary dictat for a gateway is:
Above all, prevent loops. Above all, prevent loops.
Transformation of an article into another medium stands a very high Transformation of an article into another medium stands a very high
chance of discarding or interfering with the protection inherent in chance of discarding or interfering with the protection inherent in
the news system against duplicate articles. The most common problem the news system against duplicate articles. The most common problem
caused by gateways is "spews," gateway loops that cause previously caused by gateways is "spews," gateway loops that cause previously
posted articles to be reinjected repeatedly into Usenet. To prevent posted articles to be reinjected repeatedly into Usenet. To prevent
this, a gateway MUST take precautions against loops, as detailed this, a gateway MUST take precautions against loops, as detailed
below. News Article Format November 2001
News Article Format July 2001 below.
If bidirectional gatewaying (both an incoming and an outgoing If bidirectional gatewaying (both an incoming and an outgoing
gateway) is being set up between Netnews and some other medium, the gateway) is being set up between Netnews and some other medium, the
incoming and outgoing gateways SHOULD be coordinated to avoid incoming and outgoing gateways SHOULD be coordinated to avoid
reinjection of gated articles. Circular gatewaying (gatewaying a reinjection of gated articles. Circular gatewaying (gatewaying a
message into another medium and then back into Netnews) SHOULD NOT be message into another medium and then back into Netnews) SHOULD NOT be
done; encapsulation of the article SHOULD be used instead where this done; encapsulation of the article SHOULD be used instead where this
is necessary. is necessary.
A second general principal of gatewaying is that the transformations A second general principal of gatewaying is that the transformations
skipping to change at page 89, line 59 skipping to change at page 83, line 4
by all outgoing gateways regardless of whether there is known to be a by all outgoing gateways regardless of whether there is known to be a
related incoming gateway, both as a precautionary measure and as a related incoming gateway, both as a precautionary measure and as a
guideline to quality of implementation. guideline to quality of implementation.
1. Only the minimal necessary changes should be made, as stated 1. Only the minimal necessary changes should be made, as stated
above. above.
2. The message identifier of the news article should be preserved if 2. The message identifier of the news article should be preserved if
at all possible, preferably as or within the corresponding unique at all possible, preferably as or within the corresponding unique
identifier of the other medium, but if not at least as a comment identifier of the other medium, but if not at least as a comment
in the message. This helps greatly with preventing loops. News Article Format November 2001
News Article Format July 2001 in the message. This helps greatly with preventing loops.
3. The Date of the news article should also be preserved if possible, 3. The Date of the news article should also be preserved if possible,
for similar reasons. for similar reasons.
4. The message should be tagged in some way so as to prevent its 4. The message should be tagged in some way so as to prevent its
reinjection into Netnews. This may be impossible to do without reinjection into Netnews. This may be impossible to do without
knowledge of potential incoming gateways, but it is better to try knowledge of potential incoming gateways, but it is better to try
to provide some indication even if not successful; at the least, a to provide some indication even if not successful; at the least, a
human-readable indication that the article should not be gated human-readable indication that the article should not be gated
back to Netnews can help locate a human problem. back to Netnews can help locate a human problem.
skipping to change at page 90, line 48 skipping to change at page 83, line 49
News articles prepared by gateways MUST be legal news articles. In News articles prepared by gateways MUST be legal news articles. In
particular, they MUST include all of the mandatory headers and MUST particular, they MUST include all of the mandatory headers and MUST
fully conform to the restrictions on said headers. This often fully conform to the restrictions on said headers. This often
requires that a gateway function not only as a relaying agent, but requires that a gateway function not only as a relaying agent, but
also partly as a posting agent, aiding in the synthesis of a also partly as a posting agent, aiding in the synthesis of a
conforming article from non-conforming input. conforming article from non-conforming input.
Incoming gateways MUST NOT pass control messages (articles containing Incoming gateways MUST NOT pass control messages (articles containing
a Control header) without removing or renaming that header. Gateways a Control header) without removing or renaming that header. Gateways
MAY, however, generate their own cancel messages, under the general MAY, however, generate their own cancel messages, under the general
allowance for injecting agents to cancel their own messages (7.5). allowance for injecting agents to cancel their own messages (7.3).
If a gateway receives a message that it can determine is a valid If a gateway receives a message that it can determine is a valid
equivalent of a cancel message in the medium it is gatewaying, it equivalent of a cancel message in the medium it is gatewaying, it
SHOULD discard that message without gatewaying it, generate a SHOULD discard that message without gatewaying it, generate a
corresponding cancel message of its own, and inject that cancel corresponding cancel message of its own, and inject that cancel
message. message.
Incoming gateways MUST NOT inject control messages other than Incoming gateways MUST NOT inject control messages other than
cancels. Encapsulation SHOULD be used instead of gatewaying, when cancels. Encapsulation SHOULD be used instead of gatewaying, when
direct posting is not possible or desirable. direct posting is not possible or desirable.
News Article Format July 2001 News Article Format November 2001
NOTE: It is not unheard of for mail-to-news gateways to be used NOTE: It is not unheard of for mail-to-news gateways to be used
to post control messages, but encapsulation should be used for to post control messages, but encapsulation should be used for
these cases instead. Gateways by their very nature are these cases instead. Gateways by their very nature are
particularly prone to loops. Spews of normal articles are bad particularly prone to loops. Spews of normal articles are bad
enough; spews of control messages with special significance to enough; spews of control messages with special significance to
the news system, possibly resulting in high processing load or the news system, possibly resulting in high processing load or
even e-mail sent for every message received, are catastrophic. even e-mail sent for every message received, are catastrophic.
It is far preferable to construct a system specifically for It is far preferable to construct a system specifically for
posting control messages that can do appropriate consistency posting control messages that can do appropriate consistency
skipping to change at page 92, line 4 skipping to change at page 85, line 4
header with the gateway's current date. If only partial information header with the gateway's current date. If only partial information
is available (e.g. date but not time), this SHOULD be fleshed out to is available (e.g. date but not time), this SHOULD be fleshed out to
a full Date header by adding default values rather than discarding a full Date header by adding default values rather than discarding
this information. Only in very exceptional circumstances should Date this information. Only in very exceptional circumstances should Date
information be discarded, as it plays an important role in preventing information be discarded, as it plays an important role in preventing
reinjection of old messages. reinjection of old messages.
An incoming gateway MUST add a Sender header to the news article it An incoming gateway MUST add a Sender header to the news article it
forms containing the mailbox of the administrator of the gateway. forms containing the mailbox of the administrator of the gateway.
Problems with the gateway may be reported to this address. The Problems with the gateway may be reported to this address. The
News Article Format July 2001 News Article Format November 2001
display-name portion of this mailbox SHOULD indicate that the entity display-name portion of this mailbox SHOULD indicate that the entity
responsible for injection of the message is a gateway. If the responsible for injection of the message is a gateway. If the
original message already had a Sender header, it SHOULD be renamed so original message already had a Sender header, it SHOULD be renamed so
that its contents can be preserved. that its contents can be preserved.
8.8.3. Example 8.8.3. Example
To illustrate the type of precautions that should be taken against To illustrate the type of precautions that should be taken against
loops, here is an example of the measures taken by one particular loops, here is an example of the measures taken by one particular
skipping to change at page 93, line 5 skipping to change at page 86, line 5
handled by the news administrators. handled by the news administrators.
These precautions have proven effective in practice at preventing These precautions have proven effective in practice at preventing
loops for this particular application (bidirectional gatewaying loops for this particular application (bidirectional gatewaying
between mailing lists and locally distributed newsgroups where both between mailing lists and locally distributed newsgroups where both
gateways can be designed together). General gatewaying to world-wide gateways can be designed together). General gatewaying to world-wide
newsgroups poses additional difficulties; one must be very wary of newsgroups poses additional difficulties; one must be very wary of
strange configurations, such as a newsgroup gated to a mailing list strange configurations, such as a newsgroup gated to a mailing list
which is in turn gated to a different newsgroup. which is in turn gated to a different newsgroup.
News Article Format July 2001 News Article Format November 2001
9. Security and Related Considerations 9. Security and Related Considerations
There is no security. Don't fool yourself. Usenet is a prime example There is no security. Don't fool yourself. Usenet is a prime example
of an Internet Adhocratic-Anarchy; that is, an environment in which of an Internet Adhocratic-Anarchy; that is, an environment in which
trust forms the basis of all agreements. It works. trust forms the basis of all agreements. It works.
9.1. Leakage 9.1. Leakage
Articles which are intended to have restricted distribution are Articles which are intended to have restricted distribution are
skipping to change at page 93, line 34 skipping to change at page 86, line 34
The flooding algorithm is extremely good at finding any path by which The flooding algorithm is extremely good at finding any path by which
articles can leave a subnet with supposedly restrictive boundaries, articles can leave a subnet with supposedly restrictive boundaries,
and substantial administrative effort is required to avoid this. and substantial administrative effort is required to avoid this.
Organizations wishing to control such leakage are strongly advised to Organizations wishing to control such leakage are strongly advised to
designate a small number of official gateways to handle all news designate a small number of official gateways to handle all news
exchange with the outside world (however, making such gateways too exchange with the outside world (however, making such gateways too
restrictive can also encourage the setting up of unofficial paths restrictive can also encourage the setting up of unofficial paths
which can be exceedingly hard to track down). which can be exceedingly hard to track down).
The sendme control message (7.6), insofar as it is still used, can be The sendme control message (7.4), insofar as it is still used, can be
used to request articles with a given message identifier, even one used to request articles with a given message identifier, even one
that is not supposed to be supplied to the requestor. that is not supposed to be supplied to the requestor.
9.2. Attacks 9.2. Attacks
9.2.1. Denial of Service 9.2.1. Denial of Service
The proper functioning of individual newsgroups can be disrupted by The proper functioning of individual newsgroups can be disrupted by
the massive posting of "noise" articles, by the repeated posting of the massive posting of "noise" articles, by the repeated posting of
identical or near identical articles, by posting followups unrelated identical or near identical articles, by posting followups unrelated
skipping to change at page 94, line 5 skipping to change at page 87, line 5
Many have argued that "spam", massively multiposted (and to a lesser Many have argued that "spam", massively multiposted (and to a lesser
extent massively crossposted) articles, usually for advertising extent massively crossposted) articles, usually for advertising
purposes, also constitutes a DoS attack in its own regard. This may purposes, also constitutes a DoS attack in its own regard. This may
be so. be so.
Such articles intended to deny service, or other articles of an Such articles intended to deny service, or other articles of an
inflammatory nature, may also have their From or Reply-To addresses inflammatory nature, may also have their From or Reply-To addresses
set to valid but incorrect email addresses, thus causing large set to valid but incorrect email addresses, thus causing large
volumes of mail to descend on the true owners of those addresses. volumes of mail to descend on the true owners of those addresses.
News Article Format July 2001 News Article Format November 2001
It is a violation of this standard for a poster to use as his address It is a violation of this standard for a poster to use as his address
a mailbox which he is not entitled to use. Even addresses with an a mailbox which he is not entitled to use. Even addresses with an
invalid local-part but a valid domain can cause disruption to the invalid local-part but a valid domain can cause disruption to the
administrators of such domains. Posters who wish to remain anonymous administrators of such domains. Posters who wish to remain anonymous
or to prevent automated harvesting of their addresses, but who do not or to prevent automated harvesting of their addresses, but who do not
care to take the additional precautions of using more sophisticated care to take the additional precautions of using more sophisticated
anonymity measures, should avoid that violation by the use of anonymity measures, should avoid that violation by the use of
addresses ending in the ".invalid" top-level-domain (see 5.2). addresses ending in the ".invalid" top-level-domain (see 5.2).
skipping to change at page 94, line 47 skipping to change at page 87, line 47
articles refused progagation and even subject to cancellation, and articles refused progagation and even subject to cancellation, and
other relaying sites would be well advised to withdraw peering other relaying sites would be well advised to withdraw peering
arrangements from them. arrangements from them.
9.2.2. Compromise of System Integrity 9.2.2. Compromise of System Integrity
The posting of unauthorized (as determined by the policies of the The posting of unauthorized (as determined by the policies of the
relevant hierarchy) control messages can cause unwanted newsgroups to relevant hierarchy) control messages can cause unwanted newsgroups to
be created, or wanted ones removed, from serving agents. be created, or wanted ones removed, from serving agents.
Administrators of such agents SHOULD therefore take steps to verify Administrators of such agents SHOULD therefore take steps to verify
the genuiness of such control messages, either by manual inspection the authenticity of such control messages, either by manual
(particularly of the Approved header) or by checking any digital inspection (particularly of the Approved header) or by checking any
signatures that may be provided. In addition, they SHOULD digital signatures that may be provided (see 7.1). In addition, they
periodically compare the newsgroups carried against any regularly SHOULD periodically compare the newsgroups carried against any
issued checkgroups messages, or against lists maintained by trusted regularly issued checkgroups messages, or against lists maintained by
servers and accessed by out-of-band protocols such as FTP or HTTP. trusted servers and accessed by out-of-band protocols such as FTP or
HTTP.
Malicious cancel messages (7.5) can cause valid articles to be Malicious cancel messages (7.3) can cause valid articles to be
removed from serving agents. Administrators of such agents SHOULD removed from serving agents. Administrators of such agents SHOULD
therefore take steps to verify that they originated from the poster, therefore take steps to verify that they originated from the
the injector or the moderator of the article, or that in other cases (apparent) poster, the injector or the moderator of the article, or
they came from a place that is trusted to work within established that in other cases they came from a place that is trusted to work
policies and customs. Articles containing Replaces and/or Supersedes within established policies and customs. Such steps SHOULD include
headers (6.15) are effectively cancel messages, and SHOULD be subject News Article Format November 2001
News Article Format July 2001
the checking of any digital signatures, or other security devices,
that may be provided (see 7.1). Articles containing Supersedes
headers (6.15) are effectively cancel messages, and SHOULD be subject
to the same checks. Currently, many sites choose to ignore all to the same checks. Currently, many sites choose to ignore all
cancel messages on account of the difficulty of conducting such cancel messages on account of the difficulty of conducting such
checks. checks.
[But we cannot really say much more until we have Cancel Locks and
digital signatures in place.]
Improperly configured serving agents can allow articles posted to Improperly configured serving agents can allow articles posted to
moderated groups onto the net without first being approved by the moderated groups onto the net without first being approved by the
moderator. Injecting agents SHOULD verify that moderated articles moderator. Injecting agents SHOULD verify that moderated articles
were received from one of the entities given in their Approved were received from one of the entities given in their Approved
headers and/or check any digital signatures that may be provided. headers and/or check any digital signatures that may be provided (see
7.1).
The filename parameter of the Archive header (6.12) can be used to The filename parameter of the Archive header (6.12) can be used to
attempt to store archived articles in inappropriate locations. attempt to store archived articles in inappropriate locations.
Archiving sites should be suspicious of absolute filename parameters, Archiving sites should be suspicious of absolute filename parameters,
as opposed to those relative to some location of the archiver's as opposed to those relative to some location of the archiver's
choosing. choosing.
There may be weaknesses in particular implementations that are There may be weaknesses in particular implementations that are
subject to malicious exploitation. In particular, it has not been subject to malicious exploitation. In particular, it has not been
unknown for complete shell scripts to be included within Control unknown for complete shell scripts to be included within Control
skipping to change at page 95, line 56 skipping to change at page 89, line 5
9.3. Liability 9.3. Liability
There is a presumption that a poster who sends an article to Usenet There is a presumption that a poster who sends an article to Usenet
intends it to be stored on a multitude of serving agents, and has intends it to be stored on a multitude of serving agents, and has
therefore given permission for it to be copied to that extent. therefore given permission for it to be copied to that extent.
Nevertheless, Usenet is not exempt from the Copyright laws, and it Nevertheless, Usenet is not exempt from the Copyright laws, and it
should not be assumed that permission has been given for the article should not be assumed that permission has been given for the article
to be copied outside of Usenet, nor for its permanent archiving to be copied outside of Usenet, nor for its permanent archiving
contrary to any Archive header that may be present. contrary to any Archive header that may be present.
News Article Format November 2001
Posters also need to be aware that they are responsible if they Posters also need to be aware that they are responsible if they
breach Copyright, Libel, Harrassment or other restrictions relating breach Copyright, Libel, Harrassment or other restrictions relating
to material that they post, and that they may possibly find to material that they post, and that they may possibly find
themselves liable for such breaches in jurisdictions far from their themselves liable for such breaches in jurisdictions far from their
News Article Format July 2001
own. Serving agents may also be liable in some jurisdictions, own. Serving agents may also be liable in some jurisdictions,
especially if the breach has been explicitly drawn to their especially if the breach has been explicitly drawn to their
attention. attention.
Users who are concerned about such matters should seek advice from Users who are concerned about such matters should seek advice from
competent legal authorities. competent legal authorities.
10. References 10. IANA Considerations
TBD
11. References
[ANSI X3.4] "American National Standard for Information Systems - [ANSI X3.4] "American National Standard for Information Systems -
Coded Character Sets - 7-Bit American National Standard Code for Coded Character Sets - 7-Bit American National Standard Code for
Information Interchange (7-Bit ASCII)", ANSI X3.4, 1986. Information Interchange (7-Bit ASCII)", ANSI X3.4, 1986.
[ISO 3166] "Codes for the representation of names of countries and [ISO 3166] "Codes for the representation of names of countries and
their subdivisions -- Part 1: Country codes", ISO 3166, 1997. their subdivisions -- Part 1: Country codes", ISO 3166, 1997.
[ISO 8859] International Standard - Information Processing - 8-bit [ISO 8859] International Standard - Information Processing - 8-bit
Single-Byte Coded Graphic Character Sets. Part 1: Latin Single-Byte Coded Graphic Character Sets. Part 1: Latin
skipping to change at page 96, line 39 skipping to change at page 89, line 48
8859-7, 1987 Part 8: Latin/Hebrew alphabet, ISO 8859-8, 1988 8859-7, 1987 Part 8: Latin/Hebrew alphabet, ISO 8859-8, 1988
[ISO/IEC 10646] "International Standard - Information technology - [ISO/IEC 10646] "International Standard - Information technology -
Universal Multiple-Octet Coded Character Set (UCS) - Part 1: Universal Multiple-Octet Coded Character Set (UCS) - Part 1:
Architecture and Basic Multilingual Plane", ISO/IEC 10646- Architecture and Basic Multilingual Plane", ISO/IEC 10646-
1:2000, 2000. 1:2000, 2000.
[NNTP] S. Barber, "Network News Transport Protocol", draft-ietf- [NNTP] S. Barber, "Network News Transport Protocol", draft-ietf-
nntpext-base-*.txt. nntpext-base-*.txt.
[PGPVERIFY] David Lawrence,
<ftp://ftp.isc.org/pub/pgpcontrol/README.html>.
[RFC 1034] P. Mockapetris, "Domain Names - Concepts and Facilities", [RFC 1034] P. Mockapetris, "Domain Names - Concepts and Facilities",
RFC 1034, November 1987. RFC 1034, November 1987.
[RFC 1036] M. Horton and R. Adams, "Standard for Interchange of [RFC 1036] M. Horton and R. Adams, "Standard for Interchange of
USENET Messages", RFC 1036, December 1987. USENET Messages", RFC 1036, December 1987.
[RFC 1153] F. Wancho, "Digest Message Format", RFC 1153, April 1990. [RFC 1153] F. Wancho, "Digest Message Format", RFC 1153, April 1990.
[RFC 1738] T. Berners-Lee, L. Masinter, and M. McCahill, "Uniform
Resource Locators (URL)", RFC 1738, December 1994.
[RFC 1847] J. Galvin, S. Murphy, S. Crocker, and N. Freed, "Security [RFC 1847] J. Galvin, S. Murphy, S. Crocker, and N. Freed, "Security
News Article Format November 2001
Multiparts for MIME: Multipart/Signed and Miltipart/Encrypted", Multiparts for MIME: Multipart/Signed and Miltipart/Encrypted",
RFC 1847, October 1995. RFC 1847, October 1995.
[RFC 2015] M. Elkins, "MIME Security with Pretty Good Privacy (PGP)", [RFC 2015] M. Elkins, "MIME Security with Pretty Good Privacy (PGP)",
RFC 2015, October 1996. RFC 2015, October 1996.
[RFC 2015bis] M. Elkins, D. Del Torto, R. Levien, and T. Roessler, [RFC 2015bis] M. Elkins, D. Del Torto, R. Levien, and T. Roessler,
"MIME Security with OpenPGP", draft-ietf-openpgp-mime-06.txt, "MIME Security with OpenPGP", draft-ietf-openpgp-mime-06.txt,
News Article Format July 2001
April 2001. April 2001.
[RFC 2045] N. Freed and N. Borenstein, "Multipurpose Internet Mail [RFC 2045] N. Freed and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Bodies", Extensions (MIME) Part One: Format of Internet Message Bodies",
RFC 2045, November 1996. RFC 2045, November 1996.
[RFC 2046] N. Freed and N. Borenstein, "Multipurpose Internet Mail [RFC 2046] N. Freed and N. Borenstein, "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046, November Extensions (MIME) Part Two: Media Types", RFC 2046, November
1996. 1996.
skipping to change at page 97, line 52 skipping to change at page 91, line 5
[RFC 2606] D. Eastlake and A. Panitz, "Reserved Top Level DNS Names", [RFC 2606] D. Eastlake and A. Panitz, "Reserved Top Level DNS Names",
RFC 2606, June 1999. RFC 2606, June 1999.
[RFC 2616] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, [RFC 2616] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter,
P. Leach, and T. Berners-Lee, "Hypertext Transfer Protocol -- P. Leach, and T. Berners-Lee, "Hypertext Transfer Protocol --
HTTP/1.1", RFC 2616, June 1999. HTTP/1.1", RFC 2616, June 1999.
[RFC 2821] John C. Klensin and Dawn P. Mann, "Simple Mail Transfer [RFC 2821] John C. Klensin and Dawn P. Mann, "Simple Mail Transfer
Protocol", RFC 2821, April 2001. Protocol", RFC 2821, April 2001.
News Article Format November 2001
[RFC 2822] P. Resnick, "Internet Message Format", RFC 2822, April [RFC 2822] P. Resnick, "Internet Message Format", RFC 2822, April
2001. 2001.
[RFC 820] J. Postel and J. Vernon, "Assigned Numbers", RFC 820, [RFC 820] J. Postel and J. Vernon, "Assigned Numbers", RFC 820,
January 1983. January 1983.
[RFC 822] D. Crocker, "Standard for the Format of ARPA Internet Text [RFC 822] D. Crocker, "Standard for the Format of ARPA Internet Text
Messages.", STD 11, RFC 822, August 1982. Messages.", STD 11, RFC 822, August 1982.
News Article Format July 2001
[RFC 850] Mark R. Horton, "Standard for interchange of Usenet [RFC 850] Mark R. Horton, "Standard for interchange of Usenet
messages", RFC 850, June 1983. messages", RFC 850, June 1983.
[RFC 976] Mark R. Horton, "UUCP mail interchange format standard", [RFC 976] Mark R. Horton, "UUCP mail interchange format standard",
RFC 976, February 1986. RFC 976, February 1986.
[Son-of-1036] Henry Spencer, "News article format and transmission", [Son-of-1036] Henry Spencer, "News article format and transmission",
<ftp://ftp.zoo.toronto.edu/pub/news.txt.Z>, June 1994. <ftp://ftp.zoo.toronto.edu/pub/news.txt.Z>, June 1994.
[UNICODE 3.0] The Unicode Consortium, "The Unicode Standard - Version [UNICODE 3.0] The Unicode Consortium, "The Unicode Standard - Version
3.0", Addison-Wesley, 2000. 3.0", Addison-Wesley, 2000.
[UNICODE 3.1] The Unicode Consortium, "The Unicode Standard - Version [UNICODE 3.1] The Unicode Consortium, "The Unicode Standard - Version
3.1, being an amendment to [UNICODE 3.0]", Unicode Standard 3.1, being an amendment to [UNICODE 3.0]", Unicode Standard
Annex #27 <http://www.unicode.org/unicode/reports/tr27>, 2001. Annex #27 <http://www.unicode.org/unicode/reports/tr27>, 2001.
[USEFOR] Charles H. Lindsey, "News Article Format", draft-ietf- [USEFOR] Charles H. Lindsey, "News Article Format", draft-ietf-
usefor-article-format-03.txt. usefor-article-format-03.txt.
11. Acknowledgements 12. Acknowledgements
[It is intended to insert a list of those who have been prominent [It is intended to insert a list of those who have been prominent
contributors to the mailing list of the working group at this point.] contributors to the mailing list of the working group at this point.]
12. Contact Addresses 13. Contact Addresses
Editor Editor
Charles. H. Lindsey Charles. H. Lindsey
5 Clerewood Avenue 5 Clerewood Avenue
Heald Green Heald Green
Cheadle Cheadle
Cheshire SK8 3JU Cheshire SK8 3JU
United Kingdom United Kingdom
Phone: +44 161 436 6131 Phone: +44 161 436 6131
Email: chl@clw.cs.man.ac.uk Email: chl@clw.cs.man.ac.uk
Working group chair Working group chair
David Barr David Barr
Digital Island Digital Island
Email: barr@visi.com Email: barr@visi.com
News Article Format November 2001
Comments on this draft should preferably be sent to the mailing list Comments on this draft should preferably be sent to the mailing list
of the Usenet Format Working Group at of the Usenet Format Working Group at
usenet-format@landfield.com. usenet-format@landfield.com.
This draft expires six months after the date of publication (see Page This draft expires six months after the date of publication (see Page
1) (i.e. in January 2002). 1) (i.e. in May 2002).
News Article Format July 2001
13. Intellectual Property Rights 14. Intellectual Property Rights
[The following are taken from RFC 2026. It is not entirely clear whether [The following are taken from RFC 2026. It is not entirely clear whether
all of this is necessary at this stage. Please can someone explain it to all of this is necessary at this stage. Please can someone explain it to
me?] me?]
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it might or might not be available; neither does it represent that it
skipping to change at page 99, line 52 skipping to change at page 93, line 5
the copyright notice or references to the Internet Society or other the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than followed, or as required to translate it into languages other than
English. English.
The limited permissions granted above are perpetual and will not be The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns. revoked by the Internet Society or its successors or assigns.
News Article Format November 2001
This document and the information contained herein is provided on an This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
News Article Format July 2001
Appendix A.1 - A-News Article Format Appendix A.1 - A-News Article Format
The obsolete "A News" article format consisted of exactly five lines The obsolete "A News" article format consisted of exactly five lines
of header information, followed by the body. For example: of header information, followed by the body. For example:
Aeagle.642 Aeagle.642
news.misc news.misc
cbosgd!mhuxj!mhuxt!eagle!jerry cbosgd!mhuxj!mhuxt!eagle!jerry
Fri Nov 19 16:14:55 1982 Fri Nov 19 16:14:55 1982
Usenet Etiquette - Please Read Usenet Etiquette - Please Read
skipping to change at page 100, line 54 skipping to change at page 94, line 4
Expires: Mon Jan 1 00:00:00 1990 Expires: Mon Jan 1 00:00:00 1990
body body
body body
body body
The From header contained the information now found in the Path The From header contained the information now found in the Path
header, plus possibly the full name now typically found in the From header, plus possibly the full name now typically found in the From
header. The Title header contained what is now the Subject content. header. The Title header contained what is now the Subject content.
The Posted header contained what is now the Date content. The The Posted header contained what is now the Date content. The
News Article Format November 2001
Article-I.D. header contained an article ID, analogous to a message Article-I.D. header contained an article ID, analogous to a message
ID and used for similar purposes. The Newsgroups and Expires headers ID and used for similar purposes. The Newsgroups and Expires headers
were approximately as now. The Received header contained the date were approximately as now. The Received header contained the date
when the latest relayer to process the article first saw it. All when the latest relayer to process the article first saw it. All
dates were in the above format, with all fields fixed width, dates were in the above format, with all fields fixed width,
resembling an Internet date but not quite the same. resembling an Internet date but not quite the same.
News Article Format July 2001
This format is documented for archeological purposes only. Articles This format is documented for archeological purposes only. Articles
MUST NOT be generated in this format. MUST NOT be generated in this format.
Appendix A.3 - Obsolete Headers Appendix A.3 - Obsolete Headers
Early versions of news software following the modern format sometimes Early versions of news software following the modern format sometimes
generated headers like the following: generated headers like the following:
Relay-Version: version B 2.10 2/13/83; site cbosgd.UUCP Relay-Version: version B 2.10 2/13/83; site cbosgd.UUCP
Posting-Version: version B 2.10 2/13/83; site eagle.UUCP Posting-Version: version B 2.10 2/13/83; site eagle.UUCP
skipping to change at page 101, line 47 skipping to change at page 94, line 53
of that article in relation to the indicated newsgroup. Article- of that article in relation to the indicated newsgroup. Article-
Updates indicated that an earlier article was updated, without at the Updates indicated that an earlier article was updated, without at the
same time being superseded. same time being superseded.
These headers are documented for archeological purposes only. These headers are documented for archeological purposes only.
Articles containing these headers MUST NOT be generated. Articles containing these headers MUST NOT be generated.
Appendix A.4 - Obsolete Control Messages Appendix A.4 - Obsolete Control Messages
This present standard obsoletes certain control messages defined in This present standard obsoletes certain control messages defined in
[RFC 1036] (see 7.7 all of which had the effect of requesting a [RFC 1036] (see 7.5 all of which had the effect of requesting a
description of a relaying or serving agent's software, or its peering description of a relaying or serving agent's software, or its peering
arrangements with neighbouring sites, to be emailed to the article's arrangements with neighbouring sites, to be emailed to the article's
reply address. Whilst of some utility when Usenet was much smaller reply address. Whilst of some utility when Usenet was much smaller
than it is now, they had become no more than a tool for the malicious than it is now, they had become no more than a tool for the malicious
sending of mailbombs. Moreover, many organizations now consider sending of mailbombs. Moreover, many organizations now consider
information about their internal connectivity to be confidential. information about their internal connectivity to be confidential.
News Article Format November 2001
version version
sendsys sendsys
whogets whogets
senduuname senduuname
News Article Format July 2001
"Version" requested details of the transport software in use at a "Version" requested details of the transport software in use at a
site. "Sendsys" requested the full list of newsgroups taken, and the site. "Sendsys" requested the full list of newsgroups taken, and the
peering arrangements. "Who gets" was similar, but restricted to a peering arrangements. "Who gets" was similar, but restricted to a
named newsgroup. "Senduuname" resembled "sendsys" but restricted to named newsgroup. "Senduuname" resembled "sendsys" but restricted to
the list of peers connected by UUCP. the list of peers connected by UUCP.
Historically, a checkgroups body consisting of one or two lines, the Historically, a checkgroups body consisting of one or two lines, the
first of the form "-n newsgroup", caused check-groups to apply to first of the form "-n newsgroup", caused check-groups to apply to
only that single newsgroup. only that single newsgroup.
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/