rfc2980.txt 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518
  1. cat rfc2980.txt
  2. Network Working Group S. Barber
  3. Request for Comments: 2980 Academ Consulting Services
  4. Category: Informational October 2000
  5. Common NNTP Extensions
  6. Status of this Memo
  7. This memo provides information for the Internet community. It does
  8. not specify an Internet standard of any kind. Distribution of this
  9. memo is unlimited.
  10. Copyright Notice
  11. Copyright (C) The Internet Society (2000). All Rights Reserved.
  12. Abstract
  13. In this document, a number of popular extensions to the Network News
  14. Transfer Protocol (NNTP) protocol defined in RFC 977 are documented
  15. and discussed. While this document is not intended to serve as a
  16. standard of any kind, it will hopefully serve as a reference document
  17. for future implementers of the NNTP protocol. In the role, this
  18. document would hopefully create the possibility for some level of
  19. interoperability among implementations that make use of extensions.
  20. Introduction
  21. RFC 977 [1] defines the NNTP protocol and was released over a decade
  22. ago. Since then, NNTP has become one of the most popular protocols
  23. in use on the Internet. Many implementations of the protocol have
  24. been created on many different platforms and operating systems. With
  25. the growth in use of the protocol, work began on a revision to NNTP
  26. in 1991, but that work did not result in a new standard protocol
  27. specification. However, many ideas from that working group did find
  28. their way into many implementations of NNTP. Additionally, many
  29. other extensions, often created by newsreader authors, are also in
  30. use. This document will capture and define all known extensions to
  31. NNTP available in official NNTP server releases of some type as of
  32. this writing. Where possible, the server software first implementing
  33. a particular extension will be noted. It is the hope of the author
  34. that using this document in tandem with RFC 977 will limit the
  35. addition of new extensions that essentially do the same thing.
  36. Software developers may wish to use this document and others [2] as a
  37. resource for the development of new software.
  38. Barber Informational [Page 1]
  39. RFC 2980 Common NNTP Extensions October 2000
  40. This document does not specify an Internet Standard of any kind. It
  41. only attempts to document current practices. While this document may
  42. clarify some ambiguity in RFC 977, RFC 977 should be regarded as
  43. authoritative in all cases. There are some implementations that are
  44. not strictly RFC 977 compliant and where necessary, these deviations
  45. from the standard will be noted. This document does reflect the work
  46. of the IETF NNTP-EXT working group chaired by Ned Freed and Stan
  47. Barber.
  48. This document is provided to help implementers have a uniform source
  49. of information about extensions, however, it is important for any
  50. prospective implementer to understand that the extensions listed here
  51. are NOT part of any current standard for NNTP. In fact, some of the
  52. ones listed in this document should not be included in new NNTP
  53. implementations as they should no longer be used modern NNTP
  54. environments. Such commands should be considered historic and are
  55. documented as such in this document.
  56. Extensions fall into three categories: transport, newsreader and
  57. other. Transport extensions are additions to the NNTP specification
  58. that were made specifically to move news articles from one server to
  59. another server. Newsreader extensions are additions to the NNTP
  60. specification that were made to assist NNTP clients in selecting and
  61. retrieving news articles from servers. Other extensions to the NNTP
  62. specification are those which did not specifically fall into either
  63. of the other two categories. Examples of other extensions include
  64. authentication and time-of-day extensions. For each command, the
  65. format of section 3 of RFC 977 will be used.
  66. 1. Transport Extensions
  67. A transport extension is one which is primarily used in inter-server
  68. communications. Following are the descriptions of each transport
  69. extension commands and the responses which will be returned by those
  70. commands.
  71. Each command is shown in upper case for clarity, although case is
  72. ignored in the interpretation of commands by the NNTP server. Any
  73. parameters are shown in lower case. A parameter shown in [square
  74. brackets] is optional. For example, [GMT] indicates that the
  75. triglyph GMT may present or omitted. A parameter that may be
  76. repeated is followed by an ellipsis.
  77. Barber Informational [Page 2]
  78. RFC 2980 Common NNTP Extensions October 2000
  79. 1.1.1 The CHECK command
  80. CHECK <message-id>
  81. CHECK is used by a peer to discover if the article with the specified
  82. message-id should be sent to the server using the TAKETHIS command.
  83. The peer does not have to wait for a response from the server before
  84. sending the next command.
  85. From using the responses to the sequence of CHECK commands, a list of
  86. articles to be sent can be constructed for subsequent use by the
  87. TAKETHIS command.
  88. The use of the CHECK command for streaming is optional. Some
  89. implementations will directly use the TAKETHIS command and send all
  90. articles in the send queue on that peer for the server.
  91. On some implementations, the use of the CHECK command is not
  92. permitted when the server is in slave mode (via the SLAVE command).
  93. Responses that are of the form X3X must specify the message-id in the
  94. response.
  95. 1.1.2. Responses
  96. 238 no such article found, please send it to me
  97. 400 not accepting articles
  98. 431 try sending it again later
  99. 438 already have it, please don't send it to me
  100. 480 Transfer permission denied
  101. 500 Command not understood
  102. 1.2.1 The MODE STREAM command
  103. MODE STREAM
  104. MODE STREAM is used by a peer to indicate to the server that it would
  105. like to suspend the lock step conversational nature of NNTP and send
  106. commands in streams. This command should be used before TAKETHIS and
  107. CHECK. See the section on the commands TAKETHIS and CHECK for more
  108. details.
  109. 1.2.2. Responses
  110. 203 Streaming is OK
  111. 500 Command not understood
  112. Barber Informational [Page 3]
  113. RFC 2980 Common NNTP Extensions October 2000
  114. 1.3.1 The TAKETHIS command
  115. TAKETHIS <message-id>
  116. TAKETHIS is used to send articles to a server when in streaming mode.
  117. The entire article (header and body, in that sequence) is sent
  118. immediately after the peer sends the TAKETHIS command. The peer does
  119. not have to wait for a response from the server before sending the
  120. next command and the associated article.
  121. During transmission of the article, the peer should send the entire
  122. article, including header and body, in the manner specified for text
  123. transmission from the server. See RFC 977, Section 2.4.1 for
  124. details.
  125. Responses that are of the form X3X must specify the message-id in the
  126. response.
  127. 1.3.2. Responses
  128. 239 article transferred ok
  129. 400 not accepting articles
  130. 439 article transfer failed
  131. 480 Transfer permission denied
  132. 500 Command not understood
  133. 1.4.1 The XREPLIC command
  134. XREPLIC ggg:nnn[,ggg:nnn...]
  135. The XREPLIC command makes is possible to exactly duplicate the news
  136. spool structure of one server in another server. It first appeared
  137. in INN.
  138. This command works similarly to the IHAVE command as specified in RFC
  139. 977. The same response codes are used. The command line arguments
  140. consist of entries separated by a single comma. Each entry consists
  141. of a news group name, a colon, and an article number. If the server
  142. responds with a 335 response, the article should be filed in the news
  143. group(s) and article number(s) specified in the XREPLIC command line.
  144. If the server cannot do successfully install the article once it has
  145. accepted it, a 436 or 437 response code can be used to indicate the
  146. failure.
  147. This command should only be used when the receiving server is being
  148. fed by only one other server. It is likely that when used with
  149. servers that have multiple feeds that this command will frequently
  150. fail.
  151. Barber Informational [Page 4]
  152. RFC 2980 Common NNTP Extensions October 2000
  153. XREPLIC slaving has been deprecated in INN version 1.7.2 and later.
  154. INN now has the ability to slave servers via transparent means,
  155. simply by having the article's Xref header transferred. (In previous
  156. versions, this header was generated locally and stripped off on
  157. outgoing feeds.)
  158. It is likely that future versions of INN will no longer support
  159. XREPLIC.
  160. 1.4.2. Responses
  161. 235 article transferred ok
  162. 335 send article to be transferred. End with <CR-LF>.<CR-LF>
  163. 435 article not wanted - do not send it
  164. 436 transfer failed - try again later
  165. 437 article rejected - do not try again
  166. 2. Newsreader Extensions
  167. Newsreader extensions are those which are primarily used by
  168. newsreading clients. Following are the descriptions of each
  169. newsreader extension commands and the responses which will be
  170. returned by those commands.
  171. Each command is shown in upper case for clarity, although case is
  172. ignored in the interpretation of commands by the NNTP server. Any
  173. parameters are shown in lower case. A parameter shown in [square
  174. brackets] is optional. For example, [GMT] indicates that the
  175. triglyph GMT may present or omitted. A parameter that may be
  176. repeated is followed by an ellipsis. Mutually exclusive parameters
  177. are separated by a vertical bar (|) character. For example,
  178. ggg|<message-id> indicates that a group name or a <message-id> may
  179. be specified, but not both. Some parameters, notably <message-id>,
  180. is case specific. See RFC 1036 for these details.
  181. Also, certain commands make use of a pattern for selection of
  182. multiple news groups. The pattern in all cases is based on the
  183. wildmat [4] format introduced by Rich Salz in 1986. Arguments
  184. expected to be in wildmat format will be represented by the string
  185. wildmat. This format is discussed in detail in section 3.3 of this
  186. document.
  187. 2.1.1 Extensions to the LIST command
  188. The original LIST command took no arguments in RFC 977 and returned
  189. the contents of the active file in a specific format. Since the
  190. original newsreaders made use of other information available in the
  191. news transport software in addition to the active file, extensions to
  192. Barber Informational [Page 5]
  193. RFC 2980 Common NNTP Extensions October 2000
  194. the LIST command were created to make that information available to
  195. NNTP newsreaders. There may be other extensions to the LIST command
  196. that simply return the contents of a file. This approach is
  197. suggested over the addition of over verbs. For example, LIST MOTD
  198. could be used instead of adding XMOTD.
  199. 2.1.2 LIST ACTIVE
  200. LIST ACTIVE [wildmat]
  201. LIST ACTIVE is exactly the same as the LIST command specified in RFC
  202. 977. The responses and the format should exactly match the LIST
  203. command without arguments. If the optional matching parameter is
  204. specified, the list is limited to only the groups that match the
  205. pattern. Specifying a single group is usually very efficient for the
  206. server, and multiple groups may be specified by using wildmat
  207. patterns (described later in this document), not regular expressions.
  208. If nothing is matched an empty list is returned, not an error. This
  209. command first appeared in the UNIX reference version.
  210. 2.1.3 LIST ACTIVE.TIMES
  211. LIST ACTIVE.TIMES
  212. The active.times file is maintained by some news transports systems
  213. to contain information about the when and who created a particular
  214. news group. The format of this file generally include three fields.
  215. The first field is the name of the news group. The second is the
  216. time when this group was created on this news server measured in
  217. seconds since January 1, 1970. The third is the email address of the
  218. entity that created the news group. When executed, the information
  219. is displayed following the 215 response. When display is completed,
  220. the server will send a period on a line by itself. If the
  221. information is not available, the server will return the 503 error
  222. response. This command first appeared in the UNIX reference version.
  223. 2.1.3.1 Responses
  224. 215 information follows
  225. 503 program error, function not performed
  226. 2.1.4 LIST DISTRIBUTIONS
  227. LIST DISTRIBUTIONS
  228. The distributions file is maintained by some news transport systems
  229. to contain information about valid values for the Distribution: line
  230. in a news article header and about what the values mean. Each line
  231. Barber Informational [Page 6]
  232. RFC 2980 Common NNTP Extensions October 2000
  233. contains two fields, the value and a short explanation on the meaning
  234. of the value. When executed, the information is displayed following
  235. the 215 response. When display is completed, the server will send a
  236. period on a line by itself. If the information is not available, the
  237. server will return the 503 error response. This command first
  238. appeared in the UNIX reference version.
  239. 2.1.4.1 Responses
  240. 215 information follows
  241. 503 program error, function not performed
  242. 2.1.5 LIST DISTRIB.PATS
  243. LIST DISTRIB.PATS
  244. The distrib.pats file is maintained by some news transport systems to
  245. contain default values for the Distribution: line in a news article
  246. header when posting to particular news groups. This information
  247. could be used to provide a default value for the Distribution: line
  248. in the header when posting an article. The information returned
  249. involves three fields separated by colons. The first column is a
  250. weight. The second is a group name or a pattern that can be used to
  251. match a group name in the wildmat format. The third is the value of
  252. the Distribution: line that should be used when the group name
  253. matches and the weight value is the highest. All this processing is
  254. done by the news posting client and not by the server itself. The
  255. server just provides this information to the client for it to use or
  256. ignore as it chooses. When executed, the information is displayed
  257. following the 215 response. When display is completed, the server
  258. will send a period on a line by itself. If the information is not
  259. available, the server will return the 503 error response. This
  260. command first appeared in INN.
  261. 2.1.5.1 Responses
  262. 215 information follows
  263. 503 program error, function not performed
  264. 2.1.6 LIST NEWSGROUPS
  265. LIST NEWSGROUPS [wildmat]
  266. The newsgroups file is maintained by some news transport systems to
  267. contain the name of each news group which is active on the server and
  268. a short description about the purpose of each news group. Each line
  269. in the file contains two fields, the news group name and a short
  270. explanation of the purpose of that news group. When executed, the
  271. Barber Informational [Page 7]
  272. RFC 2980 Common NNTP Extensions October 2000
  273. information is displayed following the 215 response. When display is
  274. completed, the server will send a period on a line by itself. If the
  275. information is not available, the server will return the 503
  276. response. If the optional matching parameter is specified, the list
  277. is limited to only the groups that match the pattern (no matching is
  278. done on the group descriptions). Specifying a single group is
  279. usually very efficient for the server, and multiple groups may be
  280. specified by using wildmat patterns (similar to file globbing), not
  281. regular expressions. If nothing is matched an empty list is
  282. returned, not an error.
  283. When the optional parameter is specified, this command is equivalent
  284. to the XGTITLE command, though the response code are different.
  285. 215 information follows
  286. 503 program error, function not performed
  287. 2.1.7 LIST OVERVIEW.FMT
  288. LIST OVERVIEW.FMT
  289. The overview.fmt file is maintained by some news transport systems to
  290. contain the order in which header information is stored in the
  291. overview databases for each news group. When executed, news article
  292. header fields are displayed one line at a time in the order in which
  293. they are stored in the overview database [5] following the 215
  294. response. When display is completed, the server will send a period
  295. on a line by itself. If the information is not available, the server
  296. will return the 503 response.
  297. Please note that if the header has the word "full" (without quotes)
  298. after the colon, the header's name is prepended to its field in the
  299. output returned by the server.
  300. Many newsreaders work better if Xref: is one of the optional fields.
  301. It is STRONGLY recommended that this command be implemented in any
  302. server that implements the XOVER command. See section 2.8 for more
  303. details about the XOVER command.
  304. 2.1.7.1 Responses
  305. 215 information follows
  306. 503 program error, function not performed
  307. Barber Informational [Page 8]
  308. RFC 2980 Common NNTP Extensions October 2000
  309. 2.1.8 LIST SUBSCRIPTIONS
  310. LIST SUBSCRIPTIONS
  311. This command is used to get a default subscription list for new users
  312. of this server. The order of groups is significant.
  313. When this list is available, it is preceded by the 215 response and
  314. followed by a period on a line by itself. When this list is not
  315. available, the server returns a 503 response code.
  316. 2.1.8.1 Responses
  317. 215 information follows
  318. 503 program error, function not performed
  319. 2.2 LISTGROUP
  320. LISTGROUP [ggg]
  321. The LISTGROUP command is used to get a listing of all the article
  322. numbers in a particular news group.
  323. The optional parameter ggg is the name of the news group to be
  324. selected (e.g. "news.software.b"). A list of valid news groups may
  325. be obtained from the LIST command. If no group is specified, the
  326. current group is used as the default argument.
  327. The successful selection response will be a list of the article
  328. numbers in the group followed by a period on a line by itself.
  329. When a valid group is selected by means of this command, the
  330. internally maintained "current article pointer" is set to the first
  331. article in the group. If an invalid group is specified, the
  332. previously selected group and article remain selected. If an empty
  333. news group is selected, the "current article pointer" is in an
  334. indeterminate state and should not be used.
  335. Note that the name of the news group is not case-dependent. It must
  336. otherwise match a news group obtained from the LIST command or an
  337. error will result.
  338. 2.2.1 Responses
  339. 211 list of article numbers follow
  340. 412 Not currently in newsgroup
  341. 502 no permission
  342. Barber Informational [Page 9]
  343. RFC 2980 Common NNTP Extensions October 2000
  344. 2.3 MODE READER
  345. MODE READER is used by the client to indicate to the server that it
  346. is a news reading client. Some implementations make use of this
  347. information to reconfigure themselves for better performance in
  348. responding to news reader commands. This command can be contrasted
  349. with the SLAVE command in RFC 977, which was not widely implemented.
  350. MODE READER was first available in INN.
  351. 2.3.1 Responses
  352. 200 Hello, you can post
  353. 201 Hello, you can't post
  354. 2.4 XGTITLE
  355. XGTITLE [wildmat]
  356. The XGTITLE command is used to retrieve news group descriptions for
  357. specific news groups.
  358. This extension first appeared in ANU-NEWS, an NNTP implementation for
  359. DEC's VMS. The optional parameter is a pattern in wildmat format.
  360. When executed, a 282 response is given followed by lines that have
  361. two fields, the news group name (which matches the pattern in the
  362. argument) and a short explanation of the purpose of the news group.
  363. When no argument is specified, the default argument is the current
  364. group name. When display is completed, the server sends a period on
  365. a line by itself.
  366. Please note that this command and the LIST NEWSGROUP command provide
  367. the same functionality with different response codes.
  368. Since this command provides the same functionality as LIST NEWSGROUP
  369. it is suggested that this extension be deprecated and no longer be
  370. used in newsreading clients.
  371. Note that there is a conflict in one of the response codes from
  372. XGTITLE and some of the authentication extensions.
  373. 2.5.1 Responses
  374. 481 Groups and descriptions unavailable
  375. 282 list of groups and descriptions follows
  376. Barber Informational [Page 10]
  377. RFC 2980 Common NNTP Extensions October 2000
  378. 2.6 XHDR
  379. XHDR header [range|<message-id>]
  380. The XHDR command is used to retrieve specific headers from specific
  381. articles.
  382. The required parameter is the name of a header line (e.g. "subject")
  383. in a news group article. See RFC 1036 for a list of valid header
  384. lines. The optional range argument may be any of the following:
  385. an article number
  386. an article number followed by a dash to indicate
  387. all following
  388. an article number followed by a dash followed by
  389. another article number
  390. The optional message-id argument indicates a specific article. The
  391. range and message-id arguments are mutually exclusive. If no
  392. argument is specified, then information from the current article is
  393. displayed. Successful responses start with a 221 response followed
  394. by a the matched headers from all matched messages. Each line
  395. containing matched headers returned by the server has an article
  396. number (or message ID, if a message ID was specified in the command),
  397. then one or more spaces, then the value of the requested header in
  398. that article. Once the output is complete, a period is sent on a
  399. line by itself. If the optional argument is a message-id and no such
  400. article exists, the 430 error response is returned. If a range is
  401. specified, a news group must have been selected earlier, else a 412
  402. error response is returned. If no articles are in the range
  403. specified, a 420 error response is returned by the server. A 502
  404. response will be returned if the client only has permission to
  405. transfer articles.
  406. Some implementations will return "(none)" followed by a period on a
  407. line by itself if no headers match in any of the articles searched.
  408. Others return the 221 response code followed by a period on a line by
  409. itself.
  410. The XHDR command has been available in the UNIX reference
  411. implementation from its first release. However, until now, it has
  412. been documented only in the source for the server.
  413. Barber Informational [Page 11]
  414. RFC 2980 Common NNTP Extensions October 2000
  415. 2.6.1 Responses
  416. 221 Header follows
  417. 412 No news group current selected
  418. 420 No current article selected
  419. 430 no such article
  420. 502 no permission
  421. 2.7 XINDEX
  422. XINDEX ggg
  423. The XINDEX command is used to retrieve an index file in the format of
  424. originally created for use by the TIN [6] news reader.
  425. The required parameter ggg is the name of the news group to be
  426. selected (e.g. "news.software.b"). A list of valid news groups may
  427. be obtained from the LIST command.
  428. The successful selection response will return index file in the
  429. format used by the TIN news reader followed by a period on a line by
  430. itself.
  431. When a valid group is selected by means of this command, the
  432. internally maintained "current article pointer" is set to the first
  433. article in the group. If an invalid group is specified, the
  434. previously selected group and article remain selected. If an empty
  435. news group is selected, the "current article pointer" is in an
  436. indeterminate state and should not be used.
  437. Note that the name of the news group is not case-dependent. It must
  438. otherwise match a news group obtained from the LIST command or an
  439. error will result.
  440. The format of the tin-style index file is discussed in the
  441. documentation for the TIN newsreader. Since more recent versions of
  442. TIN support the news overview (NOV) format, it is recommended that
  443. this extension become historic and no longer be used in current
  444. servers or future implementations.
  445. 2.7.1 Responses
  446. 218 tin-style index follows
  447. 418 no tin-style index is available for this news group
  448. Barber Informational [Page 12]
  449. RFC 2980 Common NNTP Extensions October 2000
  450. 2.8 XOVER
  451. XOVER [range]
  452. The XOVER command returns information from the overview database for
  453. the article(s) specified. This command was originally suggested as
  454. part of the OVERVIEW work described in "The Design of a Common
  455. Newsgroup Overview Database for Newsreaders" by Geoff Collyer. This
  456. document is distributed in the Cnews distribution. The optional
  457. range argument may be any of the following:
  458. an article number
  459. an article number followed by a dash to indicate all following
  460. an article number followed by a dash followed by another article number
  461. If no argument is specified, then information from the current
  462. article is displayed. Successful responses start with a 224 response
  463. followed by the overview information for all matched messages. Once
  464. the output is complete, a period is sent on a line by itself. If no
  465. argument is specified, the information for the current article is
  466. returned. A news group must have been selected earlier, else a 412
  467. error response is returned. If no articles are in the range
  468. specified, a 420 error response is returned by the server. A 502
  469. response will be returned if the client only has permission to
  470. transfer articles.
  471. Each line of output will be formatted with the article number,
  472. followed by each of the headers in the overview database or the
  473. article itself (when the data is not available in the overview
  474. database) for that article separated by a tab character. The
  475. sequence of fields must be in this order: subject, author, date,
  476. message-id, references, byte count, and line count. Other optional
  477. fields may follow line count. Other optional fields may follow line
  478. count. These fields are specified by examining the response to the
  479. LIST OVERVIEW.FMT command. Where no data exists, a null field must
  480. be provided (i.e. the output will have two tab characters adjacent to
  481. each other). Servers should not output fields for articles that have
  482. been removed since the XOVER database was created.
  483. The LIST OVERVIEW.FMT command should be implemented if XOVER is
  484. implemented. A client can use LIST OVERVIEW.FMT to determine what
  485. optional fields and in which order all fields will be supplied by
  486. the XOVER command. See Section 2.1.7 for more details about the LIST
  487. OVERVIEW.FMT command.
  488. Barber Informational [Page 13]
  489. RFC 2980 Common NNTP Extensions October 2000
  490. Note that any tab and end-of-line characters in any header data that
  491. is returned will be converted to a space character.
  492. 2.8.1 Responses
  493. 224 Overview information follows
  494. 412 No news group current selected
  495. 420 No article(s) selected
  496. 502 no permission
  497. 2.9 XPAT
  498. XPAT header range|<message-id> pat [pat...]
  499. The XPAT command is used to retrieve specific headers from specific
  500. articles, based on pattern matching on the contents of the header.
  501. This command was first available in INN.
  502. The required header parameter is the name of a header line (e.g.
  503. "subject") in a news group article. See RFC 1036 for a list of valid
  504. header lines. The required range argument may be any of the
  505. following:
  506. an article number
  507. an article number followed by a dash to indicate
  508. all following
  509. an article number followed by a dash followed by
  510. another article number
  511. The required message-id argument indicates a specific article. The
  512. range and message-id arguments are mutually exclusive. At least one
  513. pattern in wildmat must be specified as well. If there are
  514. additional arguments the are joined together separated by a single
  515. space to form one complete pattern. Successful responses start with
  516. a 221 response followed by a the headers from all messages in which
  517. the pattern matched the contents of the specified header line. This
  518. includes an empty list. Once the output is complete, a period is
  519. sent on a line by itself. If the optional argument is a message-id
  520. and no such article exists, the 430 error response is returned. A
  521. 502 response will be returned if the client only has permission to
  522. transfer articles.
  523. 2.9.1 Responses
  524. 221 Header follows
  525. 430 no such article
  526. 502 no permission
  527. Barber Informational [Page 14]
  528. RFC 2980 Common NNTP Extensions October 2000
  529. 2.10 The XPATH command
  530. XPATH <message-id>
  531. The XPATH command is used to determine the filenames in which an
  532. article is filed. It first appeared in INN.
  533. The required parameter message-id is the message id of an article as
  534. shown in that article's message-id header. According to RFC 1036
  535. [3], all message ids for all articles within the netnews environment
  536. are unique, but articles may be crossposted to multiple groups. The
  537. response to an XPATH command will include a listing of all filenames
  538. in which an article is stored separated by spaces or a response
  539. indicating that no article with the specified message-id exists. The
  540. returned data is only useful if the news client knows the
  541. implementation details of the server. Because of this, it is
  542. recommended that client avoid using this command.
  543. 2.10.1 Responses
  544. 223 path1[ path2 ...]
  545. 430 no such article on server
  546. 2.11 The XROVER command
  547. XROVER [range]
  548. The XROVER command returns reference information from the overview
  549. database for the article(s) specified. This command first appeared
  550. in the Unix reference implementation. The optional range argument
  551. may be any of the following:
  552. an article number
  553. an article number followed by a dash to indicate
  554. all following
  555. an article number followed by a dash followed by
  556. another article number
  557. Successful responses start with a 224 response followed by the
  558. contents of reference information for all matched messages. Once the
  559. output is complete, a period is sent on a line by itself. If no
  560. argument is specified, the information for the current article is
  561. returned. A news group must have been selected earlier, else a 412
  562. error response is returned. If no articles are in the range
  563. specified, a 420 error response is returned by the server. A 502
  564. response will be returned if the client only has permission to
  565. transfer articles.
  566. Barber Informational [Page 15]
  567. RFC 2980 Common NNTP Extensions October 2000
  568. The output will be formatted with the article number, followed by the
  569. contents of the References: line for that article, but does not
  570. contain the field name itself.
  571. This command provides the same basic functionality as using the XHDR
  572. command and "references" as the header argument.
  573. 2.11.1 Responses
  574. 224 Overview information follows
  575. 412 No news group current selected
  576. 420 No article(s) selected
  577. 502 no permission
  578. 2.12 XTHREAD
  579. XTHREAD [DBINIT|THREAD]
  580. The XTHREAD command is used to retrieve threading information
  581. in format of originally created for use by the TRN [6] news
  582. reader.
  583. The command XTHREAD DBINIT may be issued prior to entering
  584. any groups to see if a thread database exists. If it does,
  585. the database's byte order and version number are returned
  586. as binary data.
  587. If no parameter is given, XTHREAD THREAD is assumed.
  588. To use XTHREAD THREAD, a news group must have been selected
  589. earlier, else a 412 error response is returned.
  590. A 502 response will be returned if the client only has
  591. permission to transfer articles. A 503 response is returned
  592. if the threading files are not available.
  593. The format of the trn-style thread format is discussed in
  594. the documentation for the TRN newsreader. Since more recent
  595. versions of TRN support the news overview (NOV) format, it
  596. is recommended that this extension become historic and no
  597. longer be used in current servers or future implementations.
  598. 2.12.1 Responses
  599. 288 Binary data to follow
  600. 412 No newsgroup current selected
  601. 502 No permission
  602. 503 program error, function not performed
  603. Barber Informational [Page 16]
  604. RFC 2980 Common NNTP Extensions October 2000
  605. 3. Other Extensions
  606. 3.1 AUTHINFO
  607. AUTHINFO is used to inform a server about the identity of a user of
  608. the server. In all cases, clients must provide this information when
  609. requested by the server. Servers are not required to accept
  610. authentication information that is volunteered by the client.
  611. Clients must accommodate servers that reject any authentication
  612. information volunteered by the client.
  613. There are three forms of AUTHINFO in use. The original version, an
  614. NNTP v2 revision called AUTHINFO SIMPLE and a more recent version
  615. which is called AUTHINFO GENERIC.
  616. 3.1.1 Original AUTHINFO
  617. AUTHINFO USER username
  618. AUTHINFO PASS password
  619. The original AUTHINFO is used to identify a specific entity to the
  620. server using a simple username/password combination. It first
  621. appeared in the UNIX reference implementation.
  622. When authorization is required, the server will send a 480 response
  623. requesting authorization from the client. The client must enter
  624. AUTHINFO USER followed by the username. Once sent, the server will
  625. cache the username and may send a 381 response requesting the
  626. password associated with that username. Should the server request a
  627. password using the 381 response, the client must enter AUTHINFO PASS
  628. followed by a password and the server will then check the
  629. authentication database to see if the username/password combination
  630. is valid. If the combination is valid or if no password is required,
  631. the server will return a 281 response. The client should then retry
  632. the original command to which the server responded with the 480
  633. response. The command should then be processed by the server
  634. normally. If the combination is not valid, the server will return a
  635. 502 response.
  636. Clients must provide authentication when requested by the server. It
  637. is possible that some implementations will accept authentication
  638. information at the beginning of a session, but this was not the
  639. original intent of the specification. If a client attempts to
  640. reauthenticate, the server may return 482 response indicating that
  641. the new authentication data is rejected by the server. The 482 code
  642. will also be returned when the AUTHINFO commands are not entered in
  643. the correct sequence (like two AUTHINFO USERs in a row, or AUTHINFO
  644. PASS preceding AUTHINFO USER).
  645. Barber Informational [Page 17]
  646. RFC 2980 Common NNTP Extensions October 2000
  647. All information is passed in cleartext.
  648. When authentication succeeds, the server will create an email address
  649. for the client from the user name supplied in the AUTHINFO USER
  650. command and the hostname generated by a reverse lookup on the IP
  651. address of the client. If the reverse lookup fails, the IP address,
  652. represented in dotted-quad format, will be used. Once authenticated,
  653. the server shall generate a Sender: line using the email address
  654. provided by authentication if it does not match the client-supplied
  655. From: line. Additionally, the server should log the event, including
  656. the email address. This will provide a means by which subsequent
  657. statistics generation can associate newsgroup references with unique
  658. entities - not necessarily by name.
  659. 3.1.1.1 Responses
  660. 281 Authentication accepted
  661. 381 More authentication information required
  662. 480 Authentication required
  663. 482 Authentication rejected
  664. 502 No permission
  665. 3.1.2 AUTHINFO SIMPLE
  666. AUTHINFO SIMPLE
  667. user password
  668. This version of AUTHINFO was part of a proposed NNTP V2
  669. specification, which was started in 1991 but never completed, and is
  670. implemented in some servers and clients. It is a refinement of the
  671. original AUTHINFO and provides the same basic functionality, but the
  672. sequence of commands is much simpler.
  673. When authorization is required, the server sends a 450 response
  674. requesting authorization from the client. The client must enter
  675. AUTHINFO SIMPLE. If the server will accept this form of
  676. authentication, the server responds with a 350 response. The client
  677. must then send the username followed by one or more space characters
  678. followed by the password. If accepted, the server returns a 250
  679. response and the client should then retry the original command to
  680. which the server responded with the 450 response. The command should
  681. then be processed by the server normally. If the combination is not
  682. valid, the server will return a 452 response.
  683. Note that the response codes used here were part of the proposed NNTP
  684. V2 specification and are violations of RFC 977. It is recommended
  685. that this command not be implemented, but use either or both of the
  686. other forms of AUTHINFO if such functionality if required.
  687. Barber Informational [Page 18]
  688. RFC 2980 Common NNTP Extensions October 2000
  689. 3.1.2.1 Responses
  690. 250 Authorization accepted
  691. 350 Continue with authorization sequence
  692. 450 Authorization required for this command
  693. 452 Authorization rejected
  694. 3.1.3 AUTHINFO GENERIC
  695. AUTHINFO GENERIC authenticator arguments...
  696. AUTHINFO GENERIC is used to identify a specific entity to the server
  697. using arbitrary authentication or identification protocols. The
  698. desired protocol is indicated by the authenticator parameter, and any
  699. number of parameters can be passed to the authenticator.
  700. When authorization is required, the server will send a 480 response
  701. requesting authorization from the client. The client should enter
  702. AUTHINFO GENERIC followed by the authenticator name, and the
  703. arguments if any. The authenticator and arguments must not contain
  704. the sequence "..".
  705. The server will attempt to engage the server end authenticator,
  706. similarly, the client should engage the client end authenticator.
  707. The server end authenticator will then initiate authentication using
  708. the NNTP sockets (if appropriate for that authentication protocol),
  709. using the protocol specified by the authenticator name. These
  710. authentication protocols are not included in this document, but are
  711. similar in structure to those referenced in RFC 1731 [8] for the
  712. IMAP-4 protocol.
  713. If the server returns 501, this means that the authenticator
  714. invocation was syntactically incorrect, or that AUTHINFO GENERIC is
  715. not supported. The client should retry using the AUTHINFO USER
  716. command.
  717. If the requested authenticator capability is not found, the server
  718. returns the 503 response code.
  719. If there is some other unspecified server program error, the server
  720. returns the 500 response code.
  721. The authenticators converse using their protocol until complete. If
  722. the authentication succeeds, the server authenticator will terminate
  723. with a 281, and the client can continue by reissuing the command that
  724. prompted the 380. If the authentication fails, the server will
  725. respond with a 502.
  726. Barber Informational [Page 19]
  727. RFC 2980 Common NNTP Extensions October 2000
  728. The client must provide authentication when requested by the server.
  729. The server may request authentication at any time. Servers may
  730. request authentication more than once during a single session.
  731. When the server authenticator completes, it provides to the server
  732. (by a mechanism herein undefined) the email address of the user, and
  733. potentially what the user is allowed to access. Once authenticated,
  734. the server shall generate a Sender: line using the email address
  735. provided by the authenticator if it does not match the user-supplied
  736. From: line. Additionally, the server should log the event, including
  737. the user's authenticated email address (if available). This will
  738. provide a means by which subsequent statistics generation can
  739. associate newsgroup references with unique entities - not necessarily
  740. by name.
  741. Some implementations make it possible to obtain a list of
  742. authentication procedures available by sending the server AUTHINFO
  743. GENERIC with no arguments. The server then returns a list of
  744. supported mechanisms followed by a period on a line by itself.
  745. 3.1.3.1 Responses
  746. 281 Authentication succeeded
  747. 480 Authentication required
  748. 500 Command not understood
  749. 501 Command not supported
  750. 502 No permission
  751. 503 Program error, function not performed
  752. nnn authenticator-specific protocol.
  753. 3.2 DATE
  754. DATE
  755. The first NNTP working group discussed and proposed a syntax for this
  756. command to help clients find out the current time from the server's
  757. perspective. At the time this command was discussed (1991-1992), the
  758. Network Time Protocol [9] (NTP) was not yet in wide use and there was
  759. also some concern that small systems may not be able to make
  760. effective use of NTP.
  761. This command returns a one-line response code of 111 followed by the
  762. GMT date and time on the server in the form YYYYMMDDhhmmss.
  763. 3.2.1 Responses
  764. 111 YYYYMMDDhhmmss
  765. Barber Informational [Page 20]
  766. RFC 2980 Common NNTP Extensions October 2000
  767. 3.3 The WILDMAT format
  768. The WILDMAT format was first developed by Rich Salz based on the
  769. format used in the UNIX "find" command to articulate file names. It
  770. was developed to provide a uniform mechanism for matching patterns in
  771. the same manner that the UNIX shell matches filenames. Patterns are
  772. implicitly anchored at the beginning and end of each string when
  773. testing for a match. There are five pattern matching operations
  774. other than a strict one-to-one match between the pattern and the
  775. source to be checked for a match. The first is an asterisk (*) to
  776. match any sequence of zero or more characters. The second is a
  777. question mark (?) to match any single character. The third specifies
  778. a specific set of characters. The set is specified as a list of
  779. characters, or as a range of characters where the beginning and end
  780. of the range are separated by a minus (or dash) character, or as any
  781. combination of lists and ranges. The dash can also be included in
  782. the set as a character it if is the beginning or end of the set.
  783. This set is enclosed in square brackets. The close square bracket
  784. (]) may be used in a set if it is the first character in the set.
  785. The fourth operation is the same as the logical not of the third
  786. operation and is specified the same way as the third with the
  787. addition of a caret character (^) at the beginning of the test string
  788. just inside the open square bracket. The final operation uses the
  789. backslash character to invalidate the special meaning of the a open
  790. square bracket ([), the asterisk, backslash or the question mark.
  791. Two backslashes in sequence will result in the evaluation of the
  792. backslash as a character with no special meaning.
  793. 3.3.1 Examples
  794. a. [^]-] -- matches any single character other than a close square
  795. bracket or a minus sign/dash.
  796. b. *bdc -- matches any string that ends with the string "bdc"
  797. including the string "bdc" (without quotes).
  798. c. [0-9a-zA-Z] -- matches any single printable alphanumeric ASCII
  799. character.
  800. d. a??d -- matches any four character string which begins
  801. with a and ends with d.
  802. Barber Informational [Page 21]
  803. RFC 2980 Common NNTP Extensions October 2000
  804. 3.4 Additional Headers
  805. Many NNTP implementations add headers to Usenet articles when then
  806. are POSTed via NNTP. These headers are discussed in this section.
  807. None of these headers conflict with those specified in RFC 1036 and
  808. should be passed unchanged by Usenet transports conforming to RFC
  809. 1036.
  810. 3.4.1 NNTP-Posting-Host
  811. This line is added to the header of a posted article by the server.
  812. The contents of the header is either the IP address or the fully
  813. qualified domain name of the client host posting the article. The
  814. fully qualified domain name should be determined by doing a reverse
  815. lookup in the DNS on the IP address of the client. If the client
  816. article contains this line, it is removed by the server before
  817. acceptance of the article by the Usenet transport system.
  818. This header provides some idea of the actual host posting the article
  819. as opposed to information in the Sender or From lines that may be
  820. present in the article. This is not a fool-proof methodology since
  821. reverse lookups in the DNS are vulnerable to certain types of
  822. spoofing, but such discussions are outside the scope of this
  823. document.
  824. 3.4.2 X-Newsreader and others
  825. There are other lines that are added by clients as well. Most of
  826. these indicate the type of newsreader software that is posting the
  827. article.
  828. 4.0 Common Implementation Issues
  829. Many NNTP implementations do not follow the specifications in RFC
  830. 977. In this section, some common implementation issues are
  831. summarized.
  832. 4.1 The Response to the LIST command
  833. RFC 977 says that the fourth field of the "list of valid newsgroups
  834. associated information" returned must be "either 'y' or 'n'
  835. indicating whether posting to this newsgroup is allowed ('y') or
  836. prohibited ('n'). Most implementations simply output the exact
  837. contents of the transport system's active newsgroup list. For more
  838. implementations, the fourth field usually has more values that 'y' or
  839. 'n'.
  840. Barber Informational [Page 22]
  841. RFC 2980 Common NNTP Extensions October 2000
  842. 4.2 The Required Headers in an Article and the POST command
  843. RFC 977 notes in section 3.10.1 that articles presented "should
  844. include all required header lines." In fact, modern implementations
  845. only require From, Subject, and Newsgroups header lines and will
  846. supply the rest; further, many implementers believe that it is best
  847. for clients to generate as few headers as possible, since clients
  848. often do not format other headers correctly.
  849. This implementation behavior is consistent with both Bnews and Cnews
  850. which would supply missing headers for articles directly submitted to
  851. them.
  852. 4.3 Article Numbering
  853. RFC 977 does not directly address the rules concerning articles
  854. number. However, the current practice is simple: article numbers are
  855. monotonically increasing, articles may disappear, and therefore the
  856. high and low water marks returned in a GROUP command should be
  857. treated as maximum minima, and minimum maxima, respectively.
  858. 4.4 Availability of commands defined in RFC 977
  859. Some implementations permit administrators to disable commands
  860. defined RFC 977. Some implementations have some set of commands
  861. disabled by default. This means that client implementations cannot
  862. depend on the availability of the disabled set of commands. This
  863. increases the complexity of the client and does not encourage
  864. implementors to optimize the implementation of commands that don't
  865. perform well.
  866. NEWNEWS is one of the commands frequently disabled.
  867. 4.5 The Distribution header and NEWNEWS
  868. In section 12.4 of RFC 977, the optional distributions argument is
  869. described. This argument, according to RFC 977, would limit the
  870. responses to articles that were in newsgroups with prefixes that
  871. matched the optional distributions argument.
  872. Some implementations implement this by matching the Distributions
  873. header in articles to the distribution argument. Others do the match
  874. against segments of the newsgroup's name.
  875. This variation is probably best explained by the evolution of the
  876. USENET article format. At the time RFC 977 was specified, the
  877. newsgroup name defined how the group was distributed throughout
  878. USENET. RFC 1036 changed this convention. So, those that are
  879. Barber Informational [Page 23]
  880. RFC 2980 Common NNTP Extensions October 2000
  881. strictly implementing RFC 977 would match the newsgroup name prefix
  882. against the distribution argument and only display matches. Those
  883. that implement against the intent of the command (as modified by the
  884. redefinition of the article format)would match the Distributions
  885. header against the distribution argument and only display those
  886. matches.
  887. 5.0 Further Work
  888. With the continued use of NNTP on the Internet, there remains an
  889. interest in creating an optimized transport protocol for server-to-
  890. server transfers and an optimized client protocol for client-to-
  891. server interactions. There is also considerable interest is building
  892. better mechanisms to provide audit information on which news groups
  893. are being read by which users.
  894. An IETF working group has been formed and it is the hope of this
  895. author that these issues will be addressed in that forum.
  896. 6.0 Security Considerations
  897. The use of the AUTHINFO is optional. This command as documented has
  898. a number of security implications. In the original and simple forms,
  899. all passwords are passed in plaintext and could be discovered by
  900. various forms of network or system surveillance. The AUTHINFO
  901. GENERIC command has the potential for the same problems if a
  902. mechanism is used that also passes cleartext passwords. RFC 1731 [8]
  903. discusses these issues in greater detail.
  904. 7.0 References
  905. [1] Kantor, B and P. Lapsley, "Network News Transfer Protocol", RFC
  906. 977, February 1986.
  907. [2] Limoncelli, Tom, "Read This Before You Write a Newsreader",
  908. http://mars.superlink.net/tal/news-software-authors.html, June,
  909. 1996.
  910. [3] Horton, M. and R. Adams, "Standard for interchange of USENET
  911. messages", RFC 1036, December 1987.
  912. [4] Salz, Rich, Manual Page for wildmat(3) from the INN 1.4
  913. distribution, UUNET Technologies, Revision 1.10, April, 1992.
  914. [5] Robertson, Rob, "FAQ: Overview database / NOV General
  915. Information", ftp://ftp.uu.net/networking/news/nntp/inn/faq-
  916. nov.Z, January, 1995.
  917. Barber Informational [Page 24]
  918. RFC 2980 Common NNTP Extensions October 2000
  919. [6] Lea, Iain, "FAQ about the TIN newsreader",
  920. http://www.cs.unca.edu/~davidson/handouts/tinfaq.html
  921. [7] Kappesser, Peter, "[news.software.readers] trn newsreader FAQ",
  922. 2 parts, ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/news/
  923. software/readers/%5Bnews.software.readers%5D_trn_newsreader
  924. _FAQ%2C_part_1%3A_Basics and ftp://rtfm.mit.edu/pub/usenet-by
  925. -hierarchy/news/software/readers/%5Bnews.software.readers
  926. %5D_trn_news-reader_FAQ%2C_part_2%3A_Advanced, February, 1995.
  927. [8] Meyers, J., "IMAP4 Authentication Mechanisms", RFC 1731,
  928. December 1994.
  929. [9] Mills, D., "Network Time Protocol (Version 3), Specification,
  930. Implementation and Analysis", RFC 1305, March 1992.
  931. 8.0 Notes
  932. DEC is a registered trademark of Compaq Computer Corporation. UNIX
  933. is a registered trademark of The Open Group. VMS is a registered
  934. trademark of Compaq Computer Corporation.
  935. 9.0 Acknowledgments
  936. The author gratefully acknowledges the comments and additional
  937. information provided by the following individuals:
  938. Wayne Davison <davison@armory.com>
  939. Chris Lewis <clewis@bnr.ca>
  940. Tom Limoncelli <tal@lucent.com>
  941. Eric Schnoebelen <eric@egsner.cirr.com>
  942. Rich Salz <rsalz@osf.org>
  943. This work was precipitated by the work of various newsreader authors
  944. and newsserver authors which includes those listed below:
  945. Rick Adams -- Original author of the NNTP extensions to the RN
  946. newsreader and last maintainer of Bnews
  947. Stan Barber -- Original author of the NNTP extensions to the
  948. newsreaders that are part of Bnews.
  949. Geoff Collyer -- Original author of the OVERVIEW database proposal and
  950. one of the original authors of CNEWS
  951. Dan Curry -- Original author of the xvnews newsreader
  952. Wayne Davison -- Author of the first threading extensions to the
  953. RN newsreader (commonly called TRN).
  954. Geoff Huston -- Original author of ANU NEWS
  955. Barber Informational [Page 25]
  956. RFC 2980 Common NNTP Extensions October 2000
  957. Phil Lapsey -- Original author of the UNIX reference
  958. implementation
  959. Iain Lea -- Original maintainer of the TIN newsreader
  960. Chris Lewis -- First known implementor of the AUTHINFO GENERIC
  961. extension
  962. Rich Salz -- Original author of INN
  963. Henry Spencer -- One of the original authors of CNEWS
  964. Kim Storm -- Original author of the NN newsreader
  965. 10.0 Author's Address
  966. Stan Barber
  967. P.O. Box 300481
  968. Houston, Texas, 77230
  969. EMail: sob@academ.com
  970. Barber Informational [Page 26]
  971. RFC 2980 Common NNTP Extensions October 2000
  972. 11.0 Full Copyright Statement
  973. Copyright (C) The Internet Society (2000). All Rights Reserved.
  974. This document and translations of it may be copied and furnished to
  975. others, and derivative works that comment on or otherwise explain it
  976. or assist in its implementation may be prepared, copied, published
  977. and distributed, in whole or in part, without restriction of any
  978. kind, provided that the above copyright notice and this paragraph are
  979. included on all such copies and derivative works. However, this
  980. document itself may not be modified in any way, such as by removing
  981. the copyright notice or references to the Internet Society or other
  982. Internet organizations, except as needed for the purpose of
  983. developing Internet standards in which case the procedures for
  984. copyrights defined in the Internet Standards process must be
  985. followed, or as required to translate it into languages other than
  986. English.
  987. The limited permissions granted above are perpetual and will not be
  988. revoked by the Internet Society or its successors or assigns.
  989. This document and the information contained herein is provided on an
  990. "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  991. TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  992. BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  993. HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  994. MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  995. Acknowledgement
  996. Funding for the RFC Editor function is currently provided by the
  997. Internet Society.
  998. Barber Informational [Page 27]
  999. Sat 12/21/02 23:31:54 /net/u/1/e/erco
  1000. [erco@panix1.panix.com] 9 :