[NNTP] Article Numbers Becoming Invalid (RFC 3977)

Julien ÉLIE julien at trigofacile.com
Sat Dec 26 14:25:26 PST 2009


Hi Sabahattin,

> RFC 977 makes no special mention of article numbers being no longer valid,
> but assigns a code 430 for "Article not found".  RFC 3977 does away with
> that code, but then describes the possibility of articles being removed.
> It doesn't say why or how.

RFC 3977 still uses the 430 error code.

Both RFCs 977+2980 and 3977 have:

   Response code 423
      Generated by: ARTICLE, BODY, (X)HDR, HEAD, (X)OVER, STAT
      Meaning: no article with that number or in that range.

   Response code 430
      Generated by: ARTICLE, BODY, (X)HDR, HEAD, (X)OVER, STAT
      Meaning: no article with that message-id.


Examples:


GROUP news.software.nntp
211 4420 1 8093 news.software.nntp

LISTGROUP news.software.nntp 8080-
211 4420 1 8093 news.software.nntp
8081
8082
8083
8084
8085
8087
8088
8090
8092
8093
.

STAT <unknown at article>
430 No such article

STAT 8086
423 Bad article number

STAT 8085
223 8085 <hh528s$4dc$1 at speranza.aioe.org> status

NEXT
223 8087 <slrnhjcc9b.u40.steve at news.mixmin.net> Article retrieved; request text separately



> I'm trying to write a program that gets all articles from a group,
> articles numbered in ascending order, noting first and last reported
> by the GROUP response, and noting the minimum article number written
> into a user rc file that is updated with each invocation.

Note that you could use LISTGROUP, as shown above, and use the article
numbers returned.
Or with GROUP only, play with LAST/NEXT.



> Shall I just ignore errors about invalid article numbers,

Yes.



> or try to enumerate article numbers?  (Most news servers don't know
> about the listgroup range operand.)

Send CAPABILITIES.

CAPABILITIES
101 Capability list:
VERSION 2
IMPLEMENTATION INN 2.6.0 (20091201 prerelease)
AUTHINFO USER SASL
HDR
LIST ACTIVE ACTIVE.TIMES DISTRIB.PATS HEADERS NEWSGROUPS OVERVIEW.FMT
NEWNEWS
OVER
READER
SASL GSSAPI OTP PLAIN NTLM LOGIN DIGEST-MD5 CRAM-MD5
STARTTLS
.

If READER is advertised, then use LISTGROUP with a range and collect
the returned article numbers.  Note that even with that, an article
could have disappeared between the time you sent LISTGROUP and the
time you asked for that article.

Otherwise, send LISTGROUP without a range and start from the last
article number you have in your rc file.
If you receive 500 to LISTGROUP, then try GROUP, and if 12 is your
last article number in your rc file, try to collect 13, 14, 15, etc.
until you have a valid article number.  Then use NEXT until you
receive 421.

-- 
Julien ÉLIE

« En vérité, le chemin importe peu, la volonté d'arriver suffit à tout. » 



More information about the ietf-nntp mailing list