Is Cyrus nntpd "LAST" command per RFC?
Ken Murchison
murch at andrew.cmu.edu
Sun Nov 13 09:28:42 EST 2005
Lars Kellogg-Stedman wrote:
> Hey folks,
>
> I'm writing an application in which I'd like to be able to retrieve the
> last <n> messages from a newsgroup hosted on a Cyrus nntp server. I
> figured I could use the ARTICLE command to select the last article in
> the group and then use the LAST command to step backwards an appropriate
> number of articles. Unfortunately, this results in an error:
>
> C: GROUP my.group
> S: 211 5 6 22 my.group
> C: ARTICLE 22
> S: 220 22 <...message id...>
> S: ...article contents...
> S: .
> C: LAST
> S: 422 No previous article in this group
>
> The RFC implies this ought to work -- the ARTICLE command is supposed to
> update the "current article pointer", and the description of the LAST
> command says:
>
> The internally maintained "current article pointer" is set
> to the previous article in the current newsgroup. If already
> positioned at the first article of the newsgroup, an error
> message is returned and the current article remains selected.
>
> So, is this a bug? Or just a poorly specified RFC (it doesn't
> *explicitly* state that you have to use NEXT before you use LAST, but
> neither does it state the opposite).
Its a bug which I just fixed in CVS:
https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/cyrus/imap/nntpd.c.diff?r1=1.49&r2=1.50&f=u
When I refactored the msgno/msgid/range code, I forgot to have the
article selection commands set the current article pointer.
--
Kenneth Murchison
Systems Programmer
Carnegie Mellon University
More information about the Info-cyrus
mailing list