Re: IMAP server implementation details unclear in RFC-3501



On Wed, 2 Aug 2006, ondrugs@xxxxxxxxx wrote:
The IMAP
implementation I am developing uses an index file of records containing
the UID, flags as well as sizes and offsets into the actual message
file. If records from this index file were expunged by another
process, I'd best be careful when making updates ;)

Indeed, any shared access environment must handle flag updates and expunges very carefully in order to do the right thing. It is possible to do if you follow IMAP's rules carefully; but this in turn requires a very careful reading of the specification. If there is something that you do not understand, it is better to ask (as you have done, thank you!!) because it's likely to be an important point.

You may want to look into existing implementations of IMAP server that do this. For example, the mix format in the imap-2006 version of UW imapd uses an index file that is very much like what you discuss. If you look at the mix format driver, you'll see that there's quite a bit to lock and synchronize updates between multiple sessions.

-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.
.