Timo Sirainen [Sun, 3 Nov 2013 21:27:15 +0000 (23:27 +0200)]
ostream: Mark stream closed before handling its callback to avoid infinite loops.
The callback could call o_stream_copy_error_from_parent(), which in turn
would try to close the same ostream again.
Timo Sirainen [Sat, 2 Nov 2013 20:30:42 +0000 (22:30 +0200)]
lib-imap: NIL as astring is the same as "NIL"
This is a bit klugdy but works as long as all callers use
imap_arg_get_astring() instead of trying to handle it themselves.
Timo Sirainen [Sat, 2 Nov 2013 19:29:39 +0000 (21:29 +0200)]
imap: Added initial support for METADATA extension.
For now this is enabled only when imap_metadata=yes setting is used. The
setting will go away once the feature is complete. Also mail_attribute_dict
must be set.
TODO:
- Metadata doesn't work for public namespaces. There should probably be a
mail_attribute_public_dict setting for that.
- There isn't any kind of quota or other limits
- After ENABLE METADATA start sending untagged METADATA entries to clients
- /shared/admin should probably return postmaster_address URL
- Check if we handle ACLs correctly
- RFC says that it SHOULD be possible to set METADATA entries to \NoSelect
mailboxes. We probably will never allow this though.
Timo Sirainen [Sat, 2 Nov 2013 13:27:28 +0000 (15:27 +0200)]
ssl-params: Added ssl_dh_parameters_length & removed ssl_parameters_regenerate setting.
ssl_parameters_regenerate was based on some text from GNUTLS documentation a
long time ago, but there's really not much point in doing it.
Ideally we should also support "openssl dhparam" input files, but for now
there's the ssl_dh_parameters_length setting that can be used to specify the
wanted DH parameters length. If the current ssl-parameters.dat has a
different length, it's regenerated.
We should probably at some point support also built-in DH parameters which
are returned while the ssl-params runs.
Timo Sirainen [Sat, 2 Nov 2013 12:19:23 +0000 (14:19 +0200)]
dsync: Don't track too new changes from transaction log.
This mattered only during race conditions while there were changes being
done to the mailbox during syncing.
Timo Sirainen [Sat, 2 Nov 2013 11:52:30 +0000 (13:52 +0200)]
auth: Added %{session_pid} variable for userdb lookups in login requests.
session_pid is now always sent to auth process. A new request_auth_token
parameter was added to specify if auth_token should be returned or not.
Timo Sirainen [Fri, 1 Nov 2013 14:43:53 +0000 (16:43 +0200)]
lib-storage: Hooks weren't called exactly in the order they were intended.
The comparison didn't skip the paths, so the "lib" prefix skipping didn't
work.
Timo Sirainen [Tue, 29 Oct 2013 19:08:07 +0000 (21:08 +0200)]
mdbox: Added "mdbox_deleted" storage, which can be used to access messages with refcount=0
For example:
doveadm import mdbox_deleted:~/mdbox "" mailbox inbox subject oops
Timo Sirainen [Tue, 29 Oct 2013 16:59:20 +0000 (18:59 +0200)]
virtual: If virtual mailbox has no config file, assume it's just nonexistent.
Most importantly if the virtual namespace root doesn't have the config, it
should fail with MAIL_ERROR_NOTFOUND rather than MAIL_ERROR_NOTPOSSIBLE.
Timo Sirainen [Sat, 26 Oct 2013 15:59:52 +0000 (18:59 +0300)]
fts-solr: Fixed support for multiple Solr hosts when same process handles multiple users.
E.g. indexer-worker was always using only the first user's Solr host.
Timo Sirainen [Wed, 23 Oct 2013 13:10:30 +0000 (16:10 +0300)]
lib-master: If service_count=1, close the listener before starting to handle the connection.
This way if the connection handling takes a long time and the service
doesn't notice that master dies, it can keep running without keeping the
listener fds open and preventing a restart.
Timo Sirainen [Wed, 23 Oct 2013 11:34:35 +0000 (14:34 +0300)]
doveadm-server: Don't call io_loop_run() recursively for the same ioloop.
This breaks things more or less badly, especially ioloop-kqueue really
didn't like it.