On Thu, 2003-08-28 at 12:26, Grahame Bowland wrote:
Do dovecot plugins run as seperate processes and communicate with some sort of IPC, or do they run within the same process as the main server? If they run within a plugin would need to embed the actual interpreter.
They run within the server. I don't think there's much point in separating them into other processes. So yes, you'd need embedded interpreter but I don't think that's much of a problem.
By the way, I converted over UWA's student email server to dovecot from UW-IMAP and cucipop last night. Relatively few problems, which I've now fixed with some tweaks to the config.
Nice :)
The only outstanding problem is these assertions I keep getting in the logs: Aug 28 17:03:51 tartarus imap(mpienaar): file mbox-rewrite.c: line 429 (mbox_write_header): assertion failed: (hdr_parsed_size.physical_size == hdr_size)
Does the assertion indicate a corrupted mailbox file? I can open that user's mailbox fine with mutt. It's dovecot 0.99.10-5 from Debian.
I heard about similiar problem before too.. I couldn't really figure out what it was that caused the problem. I've never seen it myself and I've been using mboxes all the time.
What that error message means is that message header size is different when rewriting mbox than what it was at last synchronization. But since the syncing is done just before the rewriting, that should never happen. Except if there's a bug somewhere..
If it's possible I would like to see that mbox file. Actually it could be enough if you just hide the actual content in it. Here's a pretty perl script for that:
perl -e 'while (<>) { if (/^From ([^ ]*) *(.*)$/) { $hdr = 1; print "From foo\@bar.org $2\n"; } elsif ($hdr) { if (/^$/) { $hdr = 0; print "\n"; } elsif (/^Date:/i || /^Status:/i || /^X-Status:/i || /^X-Keywords:/i || /^X-UID:/i || /^X-IMAPbase:/i || /^Content-Length/i) { print $_; } else { s/^([^:]+:) (.*)/("$1 "."X"x length($2))/e; print $_; } } else { s/./B/g; print $_; } }' < inbox