[Dovecot] 1.0-test60
I've been running this for two hours now without problems. I guess it's pretty stable.
Keyword support finally included. Not too well tested, but I couldn't get it to break. Doesn't store the keywords into maildir/mbox yet. Hopefully soon.
Major reorganization of code in dovecot-auth, and not yet finished. Load balancing between multiple auth procsses (ie. auth_count > 1) was before done by connecting to each one's socket separately. Now there's a single socket which a balancer process listens to and distributes the requests to worker processes.
What's left to do is make a single auth process support handling multiple auth sections in config file. This makes it possible to:
- have ordering-sensitive fallbacking for multiple passdbs
- have fallbacking work with non-plaintext authentication
- allow for all kinds of new great features more easily. For example we could add PAM-like "required" vs. "sufficient" selection for auth sections, or some rules when each passdb is used (eg. based on username, domain or IP range).
After that it should also be easy to run dovecot-auth standalone because it would read its own config file. I'm also planning on making it compatible with Postfix's master process, so you could directly add it to master.cf (actually I think I only have to move one fd from 3 to 6 and it'd work).
- Added "passdb" userdb. Basically means that the passdb already returned all the information needed for userdb. With SQL this means you could do:
SELECT password, uid AS userdb_uid, gid AS userdb_gid, home AS userdb_home FROM ...
If authentication failed because of some internal error, tell it to client instead of showing a generic "Authentication failed." error.
MySQL driver supports load balancing between multiple servers. Just add a new host=xx to connect string. It's not currently supported to have different usernames/passwords. Probably not worth it?
rawlog code rewritten. Should work better.
If userdb returns non-numeric UID or GID, look it up from passwd/group.
Rewritten message address parser. The old code could have lost some spaces and might have even returned invalid MIME string because of it. This affected only clients which use FETCH ENVELOPE command.
mbox: If lines began with NUL characters, things broke. Also fixed another potential problem with parsing mboxes. As a result hopefully these fix a problem with expunge sometimes leaving a few extra characters to beginning of mbox.
Added mail_debug setting which logs where and how Dovecot is trying to locate mails. Helpful when initially figuring out why Dovecot isn't working right. auth_debug=yes now also logs all SQL queries and LDAP lookups and some other things.
etc.
Is there any possibility that we might get a debian unstable build of this to run?
Thanks, Michael
-----Original Message----- From: dovecot-bounces@dovecot.org [mailto:dovecot-bounces@dovecot.org] On Behalf Of Timo Sirainen Sent: Monday, January 10, 2005 2:02 PM To: dovecot@dovecot.org Subject: [Dovecot] 1.0-test60
I've been running this for two hours now without problems. I guess it's pretty stable.
Keyword support finally included. Not too well tested, but I couldn't get it to break. Doesn't store the keywords into maildir/mbox yet. Hopefully soon.
Major reorganization of code in dovecot-auth, and not yet finished. Load balancing between multiple auth procsses (ie. auth_count > 1) was before done by connecting to each one's socket separately. Now there's a single socket which a balancer process listens to and distributes the requests to worker processes.
What's left to do is make a single auth process support handling multiple auth sections in config file. This makes it possible to:
- have ordering-sensitive fallbacking for multiple passdbs
- have fallbacking work with non-plaintext authentication
- allow for all kinds of new great features more easily. For example we could add PAM-like "required" vs. "sufficient" selection for auth sections, or some rules when each passdb is used (eg. based on username, domain or IP range).
After that it should also be easy to run dovecot-auth standalone because it would read its own config file. I'm also planning on making it compatible with Postfix's master process, so you could directly add it to master.cf (actually I think I only have to move one fd from 3 to 6 and it'd work).
- Added "passdb" userdb. Basically means that the passdb already returned all the information needed for userdb. With SQL this means you could do:
SELECT password, uid AS userdb_uid, gid AS userdb_gid, home AS userdb_home FROM ...
If authentication failed because of some internal error, tell it to client instead of showing a generic "Authentication failed." error.
MySQL driver supports load balancing between multiple servers. Just add a new host=xx to connect string. It's not currently supported to have different usernames/passwords. Probably not worth it?
rawlog code rewritten. Should work better.
If userdb returns non-numeric UID or GID, look it up from passwd/group.
Rewritten message address parser. The old code could have lost some spaces and might have even returned invalid MIME string because of it. This affected only clients which use FETCH ENVELOPE command.
mbox: If lines began with NUL characters, things broke. Also fixed another potential problem with parsing mboxes. As a result hopefully these fix a problem with expunge sometimes leaving a few extra characters to beginning of mbox.
Added mail_debug setting which logs where and how Dovecot is trying to locate mails. Helpful when initially figuring out why Dovecot isn't working right. auth_debug=yes now also logs all SQL queries and LDAP lookups and some other things.
etc.
Timo Sirainen wrote:
I've been running this for two hours now without problems. I guess it's pretty stable.
Removed all traces of old dovecot (including any dovecot* files in maildir)
did a "make install" and then typed "dovecot" in bash, got this when opening Thunderbird for the first time:
Jan 11 02:08:46 one dovecot: Dovecot v1.0-test60 starting up Jan 11 02:08:47 one dovecot: auth(default): mysql: Connected to localhost (mailserver) Jan 11 02:08:55 one dovecot: auth(default): sql(ts@dreamcoder.dk,10.24.0.1): query: SELECT password FROM aliases WHERE alias = 'ts@dreamcoder.dk' and type = 'mailbox' Jan 11 02:08:55 one dovecot: auth(default): sql(ts@dreamcoder.dk,10.24.0.1): SELECT maildir AS home, uid, gid FROM aliases WHERE alias = 'ts@dreamcoder.dk' and type = 'mailbox' Jan 11 02:08:55 one dovecot: auth(default): userdb(ts@dreamcoder.dk,10.24.0.1): uid=517 gid=517 home=dreamcoder.dk/ts/Maildir/ mail= Jan 11 02:08:55 one dovecot: IMAP(ts@dreamcoder.dk): Effective uid=517, gid=517 Jan 11 02:08:55 one dovecot: IMAP(ts@dreamcoder.dk): maildir: data=dreamcoder.dk/ts/Maildir/ Jan 11 02:08:55 one dovecot: IMAP(ts@dreamcoder.dk): maildir: root=dreamcoder.dk/ts/Maildir, index=dreamcoder.dk/ts/Maildir, control=, inbox= Jan 11 02:08:55 one dovecot: imap-login: Login: ts@dreamcoder.dk [10.24.0.1] Jan 11 02:08:55 one dovecot: child 10373 (imap) killed with signal 11
Reverting to test52 solves the problem.
Sorry, can't get the thing to dump stacktraces, I read the docs about too.
// Tom
participants (3)
-
Michael Joy
-
Timo Sirainen
-
Tom Sommer