If dovecot-auth was crashing with you, this release should fix it. I don't know when it did though, I just applied a patch from Andrey Panin with that description :)
Fixed also another dovecot-auth crash with Solaris and maybe some other systems.
Contains the first attempt of a Dovecot LDA. It's still in pretty ugly shape, but it should work, more or less. I wouldn't recommend using it in production yet. There are two ways to use it:
- As a normal user. The username is taken from passwd.
- Giving -d <username> option. This connects to dovecot-auth and requests the uid, gid, home, etc. from it. dovecot-auth's master socket is expected to be in /var/run/dovecot/auth-master but you can override this with -a parameter.
To actually create the auth-master socket you'll need to add this inside auth { .. } :
socket listen { master { path = /var/run/dovecot/auth-master mode = 0600 } }
Dovecot LDA also currently needs dovecot-lda.conf file. Everything that is read from it is just dumped into environment variables internally. You should be able to set pretty much all the same settings in there as exists in dovecot.conf. The most important exception is that instead of default_mail_env there's just "mail". Example dovecot-lda.conf would be:
# note that namespaces aren't supported yet.. mail = mbox:~/mail:INBOX=/var/mail/%u mbox_read_locks = flock mbox_write_locks = flock # EOF
All this goes away once I get the config process implemented.
The actual usage goes something like:
/usr/local/libexec/dovecot/deliver -d username < mail_file
ie. the mail is read from standard input. Any suggestions if the "deliver" name should be changed and maybe moved to /usr/bin/?
Another large change is that I created dynamically growing array implementation with possibility to do compile time type checking. The old code was using buffer_t for arrays, but that got pretty ugly. I changed most of those in lib-index/ to the new array API. I'd be happy if someone changed the rest of them since it's pretty boring and time consuming job :) See lib/array.h for explanation how it works.
And finally a small advertisement: http://mjr.iki.fi/texts/patentfund