[Dovecot] Bug in QRESYNC SELECT/EXAMINE behavior

2008-10-24 Thread Michael M. Slusarz
RFC 5162 [3.1] states that a QRESYNC should return all changes in a  
SELECT/EXAMINE since the given modseq.  In the following case, it  
looks like there is an off-by-1 error somewhere:


C: A64 SELECT TestMailboxTest (QRESYNC (1224531494 6 1,3:5))
[MMS: MODSEQ given is 6]
S: * OK [CLOSED]
S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
S: * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)]  
Flags permitted.

S: * 4 EXISTS
S: * 0 RECENT
S: * OK [UNSEEN 1] First unseen.
S: * OK [UIDVALIDITY 1224531494] UIDs valid
S: * OK [UIDNEXT 6] Predicted next UID
S: * OK [HIGHESTMODSEQ 6]
[MMS: HIGHESTMODSEQ is 6 - the same as our cache, so there should be  
no need for an update]

S: * 2 FETCH (MODSEQ (6) UID 3 FLAGS (\Deleted))
[MMS: ...but we get this FETCH that contains the MODSEQ ID of 6, which  
we have already told the server we are aware of]

S: A64 OK [READ-WRITE] Select completed.

In other words, I don't think that 2 FETCH ... should be in the  
server response - it is duplicative information as to what is already  
cached on the client.


michael



Re: [Dovecot] Bug in QRESYNC SELECT/EXAMINE behavior

2008-10-24 Thread Timo Sirainen

On Oct 24, 2008, at 9:58 PM, Michael M. Slusarz wrote:

RFC 5162 [3.1] states that a QRESYNC should return all changes in a  
SELECT/EXAMINE since the given modseq.  In the following case, it  
looks like there is an off-by-1 error somewhere:


Thanks, fixed: http://hg.dovecot.org/dovecot-1.2/rev/66a792567e59

I guess I confused it with CONDSTORE's UNCHANGEDSINCE behavior.



PGP.sig
Description: This is a digitally signed message part