Timo Sirainen [Fri, 8 Apr 2011 13:41:26 +0000 (16:41 +0300)]
config: Log a warning if global ssl=no, but some section has ssl=yes/required.
Actually supporting per-protocol (or even worse, per-ip) SSL would be too
much trouble.
Timo Sirainen [Tue, 5 Apr 2011 09:28:32 +0000 (12:28 +0300)]
auth: If auth-userdb socket is 0666, allow peer to do only USER lookups whose uid matches its.
Anything else results in failure. If userdb doesn't return uid, the lookups
also fail. To truly give full permissions for everyone, use 0777 mode.
Timo Sirainen [Mon, 4 Apr 2011 20:07:37 +0000 (23:07 +0300)]
quota: Set quota limit correctly (for code path that doesn't exist).
quota_alloc() followed by quota_test/try_alloc() set the "quota left" limit
wrong. But this is only a theoretical problem, because nothing actually
calls quota_alloc() currently.
Timo Sirainen [Mon, 4 Apr 2011 11:09:11 +0000 (14:09 +0300)]
imapc: Removed support for connection locking and multiple connections to mailbox.
If needed they can be added back by reversing this change, but for now
they're no longer needed.
Timo Sirainen [Thu, 31 Mar 2011 08:10:22 +0000 (11:10 +0300)]
Search supports now prefetching data for returned mails. Dropped imapc's own prefetching.
mail_prefetch_count specifies how many mails can be kept open and issue a
prefetch.
This works using posix_fadvise(POSIX_FADV_WILLNEED) for maildir, sdbox and
cydir backends. Apparently only Linux supports this.
imapc backend also implements this internally by sending wanted IMAP
commands to remote server. The command pipelining helps with latency. This
change also makes it actually possible for imapc backend to first check if
wanted data is already cached in local index and avoid sending unnecessary
IMAP commands to remote server.
Timo Sirainen [Tue, 29 Mar 2011 04:00:40 +0000 (07:00 +0300)]
lib-storage: Changed mailbox_search_*() API to return pointer struct mail.
This reduces the flexibility, because now different mailbox_search_next()
calls can't have different mail parameters with possibly different
wanted_fields settings. This flexibility was never used though, and removing
it gives a couple of benefits:
* it's now easier for backends to implement prefetch and parallel search
* usage is easier since mail_alloc()/mail_free() is no longer needed
Timo Sirainen [Fri, 25 Mar 2011 23:10:59 +0000 (01:10 +0200)]
lib-settings: Fixed crash when trying treat strlist as having a subsection.
For example "plugin/foo/bar=yes" crashed, while it should have been just
ignored.
Timo Sirainen [Fri, 25 Mar 2011 22:33:51 +0000 (00:33 +0200)]
lib-storage: Fixed mailbox_get_expunges() to return GUIDs with all mailbox formats.
Also added mailbox_get_expunged_uids() for use cases that don't really need
GUIDs.
Timo Sirainen [Wed, 23 Mar 2011 22:10:59 +0000 (00:10 +0200)]
lib-storage: Removed extra "don't allow INBOX to be deleted" check.
It's already checked in places where it could cause actual harm
(accidentally deleting other mailboxes) and where it's not allowed (IMAP).
This allows dsync backup to delete unwanted INBOX if the mail location
settings allow it.
Timo Sirainen [Wed, 23 Mar 2011 21:13:00 +0000 (23:13 +0200)]
lib-storage: When mail_location is looked up from environment, set its unexpanded string properly.
This fixes a crash when creating index directories and mail location was
autodetected.
Timo Sirainen [Thu, 10 Mar 2011 14:25:26 +0000 (16:25 +0200)]
Moved most of listescape plugin functionality directly to lib-storage.
This fixes actually opening escaped mailboxes. The plugin may eventually be
removed and replaced with a setting.
Timo Sirainen [Sun, 6 Mar 2011 22:56:54 +0000 (00:56 +0200)]
expire: When saving first message to expire mailbox, use the oldest message's save-time.
This makes it easier to enable and test expire plugin. This also changes how
expire dict is used: previously when all messages were expunged in a
mailbox its entry was deleted in dict, but now its value is set to 0.