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