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.
Timo Sirainen [Sun, 24 Nov 2013 21:02:13 +0000 (23:02 +0200)]
lib-compression: Added support for liblzma (xz)
Annoyingly this is mainly copy&pasted [io]stream-bzlib, but I'm not sure if
it's worth the effort to try to create common functions for them.
Timo Sirainen [Sun, 24 Nov 2013 18:41:42 +0000 (20:41 +0200)]
Data stack has now an extra NULL pointer padding before its actual data starts.
This is just an extra safety measure against buffer overflows.
Patch by Jann Horn.
Timo Sirainen [Sat, 23 Nov 2013 17:28:48 +0000 (19:28 +0200)]
fts: Added plugin { fts_autoindex_on_save } setting.
When enabled and a mail is saved/copied, the indexer process is requested to
index the changed mailbox.
fts_autoindex_max_recent_msgs setting can also be used to skip indexing
mailboxes that have too many \Recent messages (implying that the mailbox is
never actually accessed). This corresponds to doveadm index -n parameter.
Stephan Bosch [Fri, 22 Nov 2013 20:12:08 +0000 (22:12 +0200)]
http: Implemented delayed requests scheduling.
Requests can now be (re)submitted with a delay. The request is not sent
until the delay time expires. This facilitates handling the Retry-After
header in responses. This can either be performed automatically if the
indicated delay is not too long or explicitly by the code using lib-http.
Stephan Bosch [Fri, 22 Nov 2013 20:08:20 +0000 (22:08 +0200)]
http-client: Improved handing of delayed request errors.
Originally each request would have its own zero timeout, but now only one
timeout is put in the host object.
Stephan Bosch [Fri, 22 Nov 2013 20:07:41 +0000 (22:07 +0200)]
http-client: Changed struct http_client_host_port into a struct http_client_queue object.
Peer and request objects now reference the queue object directly rather
than the host object. This way, there is no need to find the matching
host:port in the host anymore. This makes the queueing structure more
intuitive and more efficient. This is a first step towards support for
connecting to HTTP services through unix sockets or directing requests at
specific hosts (so not from the URL). This patch also fixes a potential
timeout leak (to_connect) in http_client_host_port (now http_client_queue)
and makes sure it is moved during switch_ioloop(). Finally it updates the
structure comment at the top of http-client.c.
Timo Sirainen [Fri, 22 Nov 2013 11:47:36 +0000 (13:47 +0200)]
ostream: Don't mark the stream closed too early after all.
Use another flag instead to avoid losing the last data written to the stream
before closing.
Timo Sirainen [Wed, 20 Nov 2013 12:50:53 +0000 (14:50 +0200)]
lib-storage: mail_get_*header*() still didn't handle cached values correctly.
If header ends with ":", the ":" shouldn't be returned as part of the value.
Timo Sirainen [Wed, 20 Nov 2013 12:37:44 +0000 (14:37 +0200)]
lib-storage: mail_get_*header*() didn't remove leading whitespace for headers from cache.
But it was removed when the headers were found by parsing the full header.
Timo Sirainen [Mon, 18 Nov 2013 14:18:53 +0000 (16:18 +0200)]
doveadm auth/user: Fixes to auth_socket_path handling.
doveadm user (without -u parameter) was ignoring "-a" parameter entirely.
Others weren't using auth_socket_path setting.