Timo Sirainen [Fri, 22 Jul 2011 10:21:59 +0000 (13:21 +0300)]
fts: Redesigned/enhanced FTS API and how virtual plugin works with it.
The changes include:
- Only indexer process and "doveadm index" do FTS indexing now. Other
processes connect to the indexer process via UNIX socket and request
indexing a specific mailbox.
- FTS backends can now index/search any search key. Current backends
implement indexing for some specific header fields (Subject, From, To, Cc,
Bcc), but it would also be possible to add indexing for e.g. message size
or date.
- CLucene support is fixed and fully functional.
- Solr is split to "solr" and "solr_old" backends. The new "solr" backend
supports the new header fields. It also uses mailbox GUIDs as mailbox
identifiers, so that renaming a mailbox doesn't require reindexing.
The "solr_old" uses the old Solr schema and doesn't support any new features.
Timo Sirainen [Thu, 30 Jun 2011 05:54:04 +0000 (08:54 +0300)]
Fixed compiling ldap/sql/gssapi plugins.
I couldn't figure out any way to disable NOPLUGIN_FLAGS only for those
plugins, so those flags are now always disabled for lib-sql library and auth
binaries.
Timo Sirainen [Mon, 27 Jun 2011 23:41:06 +0000 (02:41 +0300)]
lib-lda: waitpid() for executed sendmail binary wasn't called correctly.
It may have failed with -ECHILD, if the sendmail binary itself forked other
processes.
Timo Sirainen [Mon, 27 Jun 2011 20:40:13 +0000 (23:40 +0300)]
fts: Removed the separation of "substring" and "fast" fts backends and search keys.
No one wants to use two separate backends and it just makes the code more
difficult.
Timo Sirainen [Mon, 27 Jun 2011 20:02:40 +0000 (23:02 +0300)]
Added "indexer" service, which uses worker processes to perform queued mailbox indexing.
Only a single worker process will index the same user at the same time. This
avoids lock waits, especially when doing full text search indexing with
backends that require locking.
Timo Sirainen [Tue, 14 Jun 2011 13:59:57 +0000 (16:59 +0300)]
Moved the main functionality from "doveadm index" to MAILBOX_SYNC_FLAG_PRECACHE
This also allows plugins to hook into the sync and implement their own
precaching easily. fts indexing is now done this way rather than kludging.
Timo Sirainen [Wed, 8 Jun 2011 13:04:35 +0000 (16:04 +0300)]
vpopmail: Fixed opening SMTP relays.
Also don't even try to open IPv6 relays, since vpopmail becomes an open
relay then. Based on patch by Matt Brookings.
Timo Sirainen [Mon, 6 Jun 2011 15:25:52 +0000 (18:25 +0300)]
lib_signals_set_handler(): Changed API to take flags instead of boolean.
This is still compatible with the old API, because using FALSE/TRUE as the
flags still maps to the same behavior.
Timo Sirainen [Mon, 23 May 2011 13:12:44 +0000 (16:12 +0300)]
lib-storage: Export a list of permanent flags via mailbox_status().
Removed mailbox_allow_new_keywords(), since it's now included in the status
structure. ACL plugin may limit what flags are permanent according to ACLs.
Timo Sirainen [Fri, 20 May 2011 18:46:32 +0000 (21:46 +0300)]
message header parser: Allow NULs in header name also when header is missing ':'.
This doesn't fix any crashes/corruption unlike the earlier fix, but it makes
the code more correct. Although it might help with mbox rewriting seeing
some size mismatches (or might not).
Timo Sirainen [Fri, 20 May 2011 15:45:29 +0000 (18:45 +0300)]
Added support for a simplified IPC infrastructure.
The idea is that you have one "ipc" proxy process, where all server
processes connect to. IPC clients can then connect to the proxy and ask it
to forward commands to either a specific server or all servers. The proxy
does this, and forwards back any replies from the server.
Timo Sirainen [Fri, 20 May 2011 10:30:40 +0000 (13:30 +0300)]
doveadm: Added simple PLAIN authentication for remote connections.
Currently clients are required to use "doveadm" as the username and the
password must match doveadm_password setting. When using doveadm as a
client, it automatically uses these settings when connecting to remote
servers.