Re: [NNTP] Article Numbers Becoming Invalid (RFC 3977)
Russ Allbery <[email protected]> Sat, 02 Jan 2010 17:04:11 -0800
| Newsgroups | gmane.ietf.nntp |
|---|---|
| Organization | The Eyrie |
| Message-ID | <[email protected]> |
Julien ÉLIE <[email protected]> writes: > Anyway, I believe it cannot always be done in practice. CNFS buffers > are self-expiring and it would need to continuously update low water > marks. LIST ACTIVE should give up-to-date low water marks. (As well as > accurate high water marks.) The implementation I had in mind would be to do the same thing that NEXT and LAST did with the low- and high-water marks on group entrance. Start from the numbers from the active file, determine whether the article exists, and if not, increase or decrease the number and try again. But yes, there's the as-if principle (sorry, not as-is). > OK. Then the only remaining issue I see is in Section 6.1.3.2 of RFC > 3977 regarding the LAST command: > If the currently selected newsgroup is valid, the current article > number MUST be set to the previous article in that newsgroup (that > is, the highest existing article number less than the current article > number). If successful, a response indicating the new current > article number and the message-id of that article MUST be returned. > [...] > If the current article number is already the first article of the > newsgroup, a 422 response MUST be returned. If the current article > number is invalid, a 420 response MUST be returned. > I think the last sentence should be "If the currently selected newsgroup > is empty, a 420 response MUST be returned." > Otherwise, LAST is supposed to send 420 after ARTICLE has sent 420 > because of that ambiguous notion of "invalid" (which is now 420+423). As near as I could tell from re-reading, I think the word "invalid" in both NEXT and LAST refers to the state of the article number after entering an empty group, so yes, I think that's what was meant. Although there's an edge case here so we have to be careful about reading. LAST returns 420 iff the article number is invalid, not just if the group is empty. If you enter a group with one article, and that article is then cancelled (making the group empty), LAST should still return 422. > Incidentally, if the currently selected newsgroup is empty and an > article arrives in it, we cannot retrieve it without reselecting the > newsgroup. ARTICLE will answer 420 (no valid pointer). So will LAST. Well, one could select the article by specifying it by number (which one could have obtained from OVER, for instance), and then the article number would be valid. -- Russ Allbery ([email protected]) <http://www.eyrie.org/~eagle/>