[Dovecot] Mixing MBOX and Maildir?

Timo Sirainen tss at iki.fi
Sun May 13 17:30:36 EEST 2007

On Sun, 2007-05-13 at 16:59 +0300, Tom Alsberg wrote:
> > This is what mailbox_list and mailbox_storage separation was supposed to
> > do. There is still 1:1:1 with
> > mailbox_list:mail_namespace:mail_storage
> Meaning that every mailbox_list module needs to have a corresponding
> mail_storage module and vice versa?

Yes, that's what I meant, although looks like it isn't exactly so.

If you want to support mixed storages within a single namespace, you'd
have to do something like:

 - mailbox_list->iter_is_mailbox() is used to figure out if a file is a
valid mailbox. mail_storage overrides that method but doesn't call the
super.iter_is_mailbox(). It should do that, and the API should be
changed a bit so that you know if the super call really knew for certain
that it's a valid mailbox for it, or that the file should definitely be
skipped (eg. *.lock files with mboxes).

 - Add a new mail_storage->is_valid_mailbox() function and some other
generic mailbox_open() function that goes through the storages calling
the method, and whichever returns TRUE is used to open the mailbox.

 - Change mail_storage pointer in struct mail_namespace to an array and
fix all the callers to use the correct storage. Hmm. Although I'm
actually now checking if I could just remove this completely..

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://dovecot.org/pipermail/dovecot/attachments/20070513/241629bc/attachment.pgp 

More information about the dovecot mailing list