10 May
2004
10 May
'04
3:23 a.m.
Lots of bugfixes related to syncing. There's still some left.
Somewhat working mbox support:
- combined syncing/rewriting uses much less disk I/O than with older mbox code
- expunges aren't working yet
- last-uid field in X-IMAPbase header isn't updated
- it's currently syncing the whole mbox constantly even if it hasn't changed
- it isn't hiding the mbox-specific headers from IMAP clients
- if mbox hasn't changed, rewriting could start from the message which requires rewriting instead of syncing the whole mbox
- syncing could keep the lock file extra two seconds to make sure if someone changes it the file's mtime changes -> as long as only Dovecot is modifying it, we'll never need to sync the whole mbox -> multi-gigabyte mboxes are still fast!
One nice thing about this mbox code is that it isn't exactly mbox-specific. Some people are still using formats which use eg. ^A as separator rather than From-line. Some people are using SMTP-formatted data directly ('.' as mail separator, '..' = normal line begins with '.'). These formats should be pretty easy to implement now as all mbox-specific code is in istream-raw-mbox.c file. I'll probably do that once mbox itself is fully working.