Timo Sirainen [Thu, 30 Jan 2014 21:03:40 +0000 (22:03 +0100)]
net_transmit() may have wrongly returned EPIPE error.
If errno was EPIPE before net_transmit() was called and sendto() didn't
change it, we still returned error.
Also removed the unlikely() call which isn't all that unlikely for
non-blocking code.
Timo Sirainen [Mon, 27 Jan 2014 14:35:46 +0000 (16:35 +0200)]
acl plugin: Added an alternative global ACL file that can contain mailbox patterns.
Instead of pointing the global ACL path to a directory use a file instead.
The file format is "<mailbox pattern> <normal ACL line>". Most importantly
this can be used to specify default ACLs for namespaces.
The mailbox pattern uses "*" and "?" wildcards currently. I'm not sure if I
should still change them to IMAP "*" and "%" wildcards. That would make the
behavior more complex ("%" depends on hierarchy separator), slightly slower
and quota code is already also using the */? wildcards..
Timo Sirainen [Tue, 14 Jan 2014 22:57:59 +0000 (00:57 +0200)]
lib-compression: Added initial support for LZ4
There's no standard file format for LZ4, so we created our own. The code has
had only minimal testing currently, so there may be bugs.
Timo Sirainen [Tue, 14 Jan 2014 01:24:47 +0000 (03:24 +0200)]
auth, login, mail: Added %{auth_user}, %{auth_username} and %{auth_domain}
They expand to the SASL authentication ID. So if master user login is done,
it expands to the master user. If username changes during authentication, it
expands to the original username. Otherwise %{user} and %{auth_user} are
equal.
Stephan Bosch [Fri, 10 Jan 2014 20:00:28 +0000 (15:00 -0500)]
lib-http: Added option to the header parser to make it lenient towards illegal characters in header field content.
The offending characters are then skipped without error. This is required
for the http client as a workaround for bugs in certain HTTP servers. This
behavior is explicitly not enabled for the http-request-parser as used by
our own HTTP server implementation.
Timo Sirainen [Wed, 11 Dec 2013 17:39:12 +0000 (19:39 +0200)]
login-*: Make sure "need to write more" flag doesn't get stuck during handshake.
This should prevent busy-looping in SSL_accept(). (Second attempt at doing
this, first one was in e95479f439aa.)
Timo Sirainen [Wed, 11 Dec 2013 16:39:08 +0000 (18:39 +0200)]
auth: ldap with auth_bind=yes leaked memory
Existing LDAP search request can't just be converted into bind request
before the search request is freed. So just create a new request.
Timo Sirainen [Sun, 8 Dec 2013 22:02:58 +0000 (00:02 +0200)]
mysql: Added ssl_verify_server_cert=no|yes parameter.
To make sure we don't break existing installations, default to "no". For
v2.3 it should default to "yes".
Timo Sirainen [Sun, 8 Dec 2013 19:26:29 +0000 (21:26 +0200)]
quota: Added support for SETQUOTA IMAP command.
The configuration is done via quota_set setting. Currently only dict backend
is supported. For example:
plugin {
quota_set = dict:file:/var/lib/dovecot/quota/%u
}
The SETQUOTA command is available only for the "admin" user (userdb lookup
must return admin=y).
Timo Sirainen [Sun, 8 Dec 2013 19:22:38 +0000 (21:22 +0200)]
lib-storage: Added mail_user->admin flag.
The previous admin-flag used to mix up "admin user" and "admin tool", while
this new purpose only means "admin user".
Timo Sirainen [Sun, 8 Dec 2013 17:00:31 +0000 (19:00 +0200)]
auth: passdb/userdb dict rewrite to support more complex configuration.
See the new doc/example-config/dovecot-dict-auth.conf.ext for explanation
how it works. The old configuration format will also stay functional.
Timo Sirainen [Tue, 3 Dec 2013 19:31:59 +0000 (21:31 +0200)]
lib-imap: imap_envelope_parse() added extra "," after address group.
This function wasn't actually used by Dovecot anywhere anymore.
Patch by Potapov Sergey.
Timo Sirainen [Tue, 3 Dec 2013 15:29:38 +0000 (17:29 +0200)]
imap: If SELECT fails with "mailbox is inconsistent", disconnect client. (Plus related cleanups.)
The inconsistency can also be used to indicate that something is badly wrong
and nothing useful can be done before client reconnects.
Timo Sirainen [Mon, 2 Dec 2013 23:33:18 +0000 (01:33 +0200)]
imap: Don't send [NOMODSEQ] on SELECT/EXAMINE reply when condstore hasn't been enabled yet.
This is definitely the better behavior and was also clearly intended by the
CONDSTORE RFC, although with some mixed language.