[Dovecot] Bug: MODSEQ FETCH return (?)
Hi Timo - hope things are well :) Playing around with the CONDSTORE (RFC 4551) stuff while testing the IMAP lib I am writing and I think I have found a bug in Dovecot 1.2. RFC 4551 [4] identifies the FETCH response to a MODSEQ request as follows: fetch-mod-resp = "MODSEQ" SP "(" permsg-modsequence ")" with 'permsg-modsequence' defined as: permsg-modsequence = mod-sequence-value ;; per message mod-sequence Unfortunately, Dovecot 1.2 is returning as follows: S: * 1 FETCH (UID 1 MODSEQ 3 FLAGS (\Flagged \Deleted \Recent)) Where, under the RFC, I believe it should be: S: * 1 FETCH (UID 1 MODSEQ (3) FLAGS (\Flagged \Deleted \Recent)) Here is a proposed patch (WARNING: my C skills = zero): # HG changeset patch # User root@bigworm.curecanti.org # Date 1224040830 21600 # Branch HEAD # Node ID 0c0615bc6bf74ccf109049e251a30b8ab5f8ea67 # Parent 40df4d4cced09fa72d37581d0c526416d2c6e3de per RFC 4551, MODSEQ FETCH responses need to be wrapped in (). diff -r 40df4d4cced0 -r 0c0615bc6bf7 src/imap/imap-fetch.c --- a/src/imap/imap-fetch.c Tue Oct 14 14:52:44 2008 +0300 +++ b/src/imap/imap-fetch.c Tue Oct 14 21:20:30 2008 -0600 @@ -749,7 +749,7 @@ modseq = mail_get_modseq(mail); if (ctx->client->highest_fetch_modseq < modseq) ctx->client->highest_fetch_modseq = modseq; - str_printfa(ctx->cur_str, "MODSEQ %llu ", + str_printfa(ctx->cur_str, "MODSEQ (%llu) ", (unsigned long long)modseq); return 1; } Hope this helps/is correct. michael
On Tue, 2008-10-14 at 21:29 -0600, Michael M. Slusarz wrote:
Unfortunately, Dovecot 1.2 is returning as follows: S: * 1 FETCH (UID 1 MODSEQ 3 FLAGS (\Flagged \Deleted \Recent))
Where, under the RFC, I believe it should be: S: * 1 FETCH (UID 1 MODSEQ (3) FLAGS (\Flagged \Deleted \Recent))
Thanks. I also wondered about this recently when writing a mail, but I assumed I MODSEQ 3 was correct, because there's no point in having parenthesis there. Wonder why it was done..
Here is a proposed patch (WARNING: my C skills = zero):
You missed another place where it's sent. Fixed both in: http://hg.dovecot.org/dovecot-1.2/rev/242e6d47f790
participants (2)
-
Michael M. Slusarz
-
Timo Sirainen