Hi all,
I have a question about synchronization between session cached message
list on the currently open mailbox and disk message list. I have wrote
a driver implementation that uses a database in place of canonical unix
file system to store message headers and file references. The problem
arises
when I have more than one open session on the same mailbox. Suppose we
have
client A and B.

A: logs-in and selects INBOX with 10 messages
B: does the same
A: set deleted flag on 1 message (sequence number) and expunge
B: fetch message 1 body (FETCH 1 ...)
    before the end of fetch, the <driver>_parse routine is called
    and (my own implementation) re-builds the internal message list
    with one less message. no expunge responses are sent back, but
    exists and recent messages are replied with the new number
    of messages.

B: fetch (again) message 1 body (FETCH 1 ...)
    the body is now different.

The question is: must the internal message list be re-built only within
command different from FETCH, STORE and SEARCH so that sequence numbers
still remain correct? If yes what should I do with the hole in message
list
at sequence number 1? How and when the server has to communicate to the
client that somebody else has removed one or more messages? Any
suggestion?

Thanks in advance,
Matteo Gelosa

PS
I have read the standard an looked at the unix.c implementation, but I
still have some doubts...

-- 
Matteo Gelosa                                             I.NET S.p.A.
Research & Development      Via Darwin, 85 - 20019 Settimo Milanese MI
mailto:[EMAIL PROTECTED]                            Tel. +39.02.32863.1
http://www.inet.it                               Fax +39.02.32863.7701
-- 
------------------------------------------------------------------
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/imap/c-client-list.html
------------------------------------------------------------------

Reply via email to