]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
9 years agolib-fs: Added FS_PROPERTY_FASTCOPY_CHANGED_METADATA
Timo Sirainen [Thu, 12 May 2016 19:10:47 +0000 (15:10 -0400)] 
lib-fs: Added FS_PROPERTY_FASTCOPY_CHANGED_METADATA

9 years agolib-fs: Allow multiple fs_read_stream() calls to seekable istreams.
Timo Sirainen [Thu, 28 Apr 2016 09:45:01 +0000 (12:45 +0300)] 
lib-fs: Allow multiple fs_read_stream() calls to seekable istreams.

This fixes for example calling fs_default_copy() for an istream which was
already opened:

Panic: file fs-api.c: line 528 (fs_read_stream): assertion failed: (!file->istream_open)

9 years agolib-fs: Fixed multiple concurrent fs_read_stream() calls
Timo Sirainen [Thu, 28 Apr 2016 09:47:02 +0000 (12:47 +0300)] 
lib-fs: Fixed multiple concurrent fs_read_stream() calls

Return a new limit-istream, so each istream can have its own independent
offset.

9 years agolib-http: Queue's delayed timeout handler wasn't removed after work was done.
Timo Sirainen [Thu, 12 May 2016 12:09:56 +0000 (08:09 -0400)] 
lib-http: Queue's delayed timeout handler wasn't removed after work was done.

9 years agodict-sql: Cache reading settings files.
Timo Sirainen [Wed, 11 May 2016 20:58:59 +0000 (16:58 -0400)] 
dict-sql: Cache reading settings files.

The settings were read for every dict init, which was done for every new
dict connection. This was using a lot of CPU. There are usually only a
couple dict-sql settings files, so we cache all of the ones we read.

9 years agolib-fs: Minor code cleanup
Timo Sirainen [Thu, 12 May 2016 11:24:39 +0000 (07:24 -0400)] 
lib-fs: Minor code cleanup

9 years agolib-fs: Set fs error on fs_write_stream_abort()
Timo Sirainen [Thu, 12 May 2016 11:23:51 +0000 (07:23 -0400)] 
lib-fs: Set fs error on fs_write_stream_abort()

Probably would be nice for fs_write_stream_abort() to have an error string
parameter, which could be used instead of this generic error.

9 years agolib-fs: Added asserts to make sure async writes are finished before close
Timo Sirainen [Thu, 12 May 2016 11:23:04 +0000 (07:23 -0400)] 
lib-fs: Added asserts to make sure async writes are finished before close

9 years agofs-metawrap: Minor code cleanup
Timo Sirainen [Thu, 12 May 2016 11:21:38 +0000 (07:21 -0400)] 
fs-metawrap: Minor code cleanup

temp_output==NULL, so these calls are equal.

9 years agofs-metawrap: Propagate fs_write_stream_abort() to parent always
Timo Sirainen [Thu, 12 May 2016 11:18:49 +0000 (07:18 -0400)] 
fs-metawrap: Propagate fs_write_stream_abort() to parent always

It needed to be done also when temp_output==NULL, because we had already
started sending it to parent, but async parent wasn't being finished.

9 years agofs-randomfail: Set fs error always when injecting failure.
Timo Sirainen [Thu, 12 May 2016 11:15:41 +0000 (07:15 -0400)] 
fs-randomfail: Set fs error always when injecting failure.

It was done in some places, but not everywhere.

9 years agolib-ldap: Reverted previous commit for now.
Timo Sirainen [Tue, 10 May 2016 21:35:43 +0000 (17:35 -0400)] 
lib-ldap: Reverted previous commit for now.

We don't have libdovecot built at at this stage. But we can't build it
earlier, because it needs lib-dict-extra, which needs lib-ldap. So we have
cyclical dependencies now.

9 years agolib-ldap: Add libdovecot dependency to libdovecot-ldap
Timo Sirainen [Tue, 10 May 2016 21:25:20 +0000 (17:25 -0400)] 
lib-ldap: Add libdovecot dependency to libdovecot-ldap

Required for linking to work on OSX.

9 years agolib: Fixed crash when closing a failed istream-concat
Timo Sirainen [Tue, 10 May 2016 20:22:23 +0000 (16:22 -0400)] 
lib: Fixed crash when closing a failed istream-concat

i_stream_concat_seek() could have set cur_input==NULL and we still
attempted to seek the cur_input at close time.

9 years agolib-index: "first saved UID of the day" wasn't updated right always.
Timo Sirainen [Tue, 10 May 2016 14:42:33 +0000 (10:42 -0400)] 
lib-index: "first saved UID of the day" wasn't updated right always.

It was using the UID of the first append. But it may not have been the
lowest UID. Do this after the appends are first sorted by their UID.

9 years agoAdded liblzma bug to Valgrind suppressions file.
Stephan Bosch [Mon, 9 May 2016 22:42:51 +0000 (00:42 +0200)] 
Added liblzma bug to Valgrind suppressions file.

It caused `make test` to fail with valgrind.
Occurred at least for Debian Jessie with liblzma package version 5.1.1alpha+20120614-2+b3.

9 years agoREADME: Added missing supported RFCs
Timo Sirainen [Mon, 9 May 2016 05:04:39 +0000 (08:04 +0300)] 
README: Added missing supported RFCs

9 years agolib-http: If connect fails, include attempt count and total time in error.
Timo Sirainen [Thu, 5 May 2016 21:17:31 +0000 (00:17 +0300)] 
lib-http: If connect fails, include attempt count and total time in error.

This will produce errors such as:
9002 connect(1.2.3.4:801) failed: Connection timed out in 1.001 secs (4 attempts in 4.706 secs)

9 years agodict-client: Added idle_msecs=<n> parameter
Timo Sirainen [Fri, 6 May 2016 14:35:10 +0000 (17:35 +0300)] 
dict-client: Added idle_msecs=<n> parameter

This can be useful when connected to dict-async server where extra idling
connections don't matter so much as with blocking dict servers.

9 years agoimap: Avoid assert-crash after a failed mailbox sync.
Timo Sirainen [Fri, 6 May 2016 19:24:20 +0000 (22:24 +0300)] 
imap: Avoid assert-crash after a failed mailbox sync.

We didn't close the mailbox and we didn't update message counts, so we could
have crashed with:

Panic: Message count decreased

9 years agostats: Handle getrusage() errors better
Timo Sirainen [Thu, 5 May 2016 18:26:37 +0000 (21:26 +0300)] 
stats: Handle getrusage() errors better

I'm not aware of these errors actually happening anywhere, but its
error handling wouldn't have been correct if previous getrusage() calls
had succeeded. Now if it fails, log an error once and just keep on using
the last working rusage.

9 years agostats: Work around shrinking system CPU usage
Timo Sirainen [Thu, 5 May 2016 18:23:17 +0000 (21:23 +0300)] 
stats: Work around shrinking system CPU usage

Happening at least in Debian's Linux kernel 4.3.0-1-amd64.

getrusage() may returns ru_stime = 4000 or 8000, but later it drops to 0.
We'll just work around this by switching to the previous working ru_stime.

This fixes errors like:
Error: stats: session stats shrank: sys_cpu 0.0 < 0.4000

9 years agodict-ldap: Properly duplicate result
Aki Tuomi [Fri, 6 May 2016 09:51:28 +0000 (12:51 +0300)] 
dict-ldap: Properly duplicate result

9 years agoauth: Makefile dependency fix
Timo Sirainen [Tue, 3 May 2016 14:43:00 +0000 (17:43 +0300)] 
auth: Makefile dependency fix

Hopefully fixes:
mv: cannot stat '.deps/auth-stats.Tpo': No such file or directory

9 years agolib: Added i_stream_get_disconnect_reason()
Timo Sirainen [Fri, 6 May 2016 11:34:57 +0000 (14:34 +0300)] 
lib: Added i_stream_get_disconnect_reason()

9 years agolib: Improved connection_disconnect_reason()
Timo Sirainen [Fri, 6 May 2016 11:22:29 +0000 (14:22 +0300)] 
lib: Improved connection_disconnect_reason()

9 years agolazy-expunge: Handle mailbox create race conditions.
Timo Sirainen [Thu, 5 May 2016 15:10:46 +0000 (18:10 +0300)] 
lazy-expunge: Handle mailbox create race conditions.

Don't log an error if another process just created the lazy-expunge mailbox.

9 years agolib-fs: Fixes to stats count tracking
Timo Sirainen [Thu, 5 May 2016 13:15:15 +0000 (16:15 +0300)] 
lib-fs: Fixes to stats count tracking

fs_exists(), fs_copy(), fs_rename() and fs_delete() could have increased the
count multiple times on async operations.

9 years agostats: Fixed ADD-USER stats tracking (auth stats)
Timo Sirainen [Thu, 5 May 2016 11:58:46 +0000 (14:58 +0300)] 
stats: Fixed ADD-USER stats tracking (auth stats)

9 years agolib-fs: fs-metawrap stat() error handling improvement.
Timo Sirainen [Wed, 4 May 2016 15:34:59 +0000 (18:34 +0300)] 
lib-fs: fs-metawrap stat() error handling improvement.

We can't just treat i_stream_get_size() returning 0 as the reason being
istream is async and not fully read. It might be, but it might also be
because of other reasons. And since we're closing the istream we couldn't
even properly finish up the async handling. So for now just return an
error if we see this happening.

9 years agolib-mail: Fixed istream-header-filter unit test names
Timo Sirainen [Tue, 3 May 2016 17:28:42 +0000 (20:28 +0300)] 
lib-mail: Fixed istream-header-filter unit test names

9 years agodoveadm who: Fixed listing LMTP sessions
Timo Sirainen [Tue, 3 May 2016 17:20:28 +0000 (20:20 +0300)] 
doveadm who: Fixed listing LMTP sessions

9 years agolib-storage: Make it easier to debug mail's unclosed istream
Timo Sirainen [Mon, 2 May 2016 20:43:15 +0000 (23:43 +0300)] 
lib-storage: Make it easier to debug mail's unclosed istream

9 years agolib-mail: istream-header-filter - fixed adding headers at eoh
Timo Sirainen [Tue, 3 May 2016 15:25:50 +0000 (18:25 +0300)] 
lib-mail: istream-header-filter - fixed adding headers at eoh

9 years agolib-mail: istream-header-filter: Fixed stat() with HEADER_FILTER_HIDE_BODY
Timo Sirainen [Tue, 3 May 2016 14:38:34 +0000 (17:38 +0300)] 
lib-mail: istream-header-filter: Fixed stat() with HEADER_FILTER_HIDE_BODY

9 years agolib-mail: istream-header-filter HEADER_FILTER_ADD_MISSING_EOH fixes
Timo Sirainen [Tue, 3 May 2016 14:25:07 +0000 (17:25 +0300)] 
lib-mail: istream-header-filter HEADER_FILTER_ADD_MISSING_EOH fixes

When using HEADER_FILTER_CRLF_PRESERVE, add CR to the EOH if the previous
header line ended with CRLF.

When header ends to a header without newline, add two newlines so we can get
the actual EOH added.

9 years agolib-mail: istream-header-filter: Fixed stat() with HEADER_FILTER_END_BODY_WITH_LF
Timo Sirainen [Tue, 3 May 2016 14:08:24 +0000 (17:08 +0300)] 
lib-mail: istream-header-filter: Fixed stat() with HEADER_FILTER_END_BODY_WITH_LF

9 years agolib-mail: istream-header-filter - Check errors reading header
Timo Sirainen [Tue, 3 May 2016 13:54:46 +0000 (16:54 +0300)] 
lib-mail: istream-header-filter - Check errors reading header

This probably doesn't affect the results much, since the stream_errno is set
anyway. But it's better to abort early, just in case the broken state might
end up asserting later.

9 years agolib-storage: Fixed potential crash in mailbox_sync_deinit() error handling
Timo Sirainen [Tue, 3 May 2016 12:27:22 +0000 (15:27 +0300)] 
lib-storage: Fixed potential crash in mailbox_sync_deinit() error handling

If mailbox_sync*() was called before mailbox was opened, the automatic
mailbox opening could fail. mailbox_sync_deinit() would still try to access
box->view, which would be NULL.

9 years agolib-ldap: Handle various LDAP failures correctly
Aki Tuomi [Mon, 2 May 2016 14:31:30 +0000 (17:31 +0300)] 
lib-ldap: Handle various LDAP failures correctly

9 years agolib-ldap: Do not retry with bad credentials
Aki Tuomi [Mon, 2 May 2016 13:21:27 +0000 (16:21 +0300)] 
lib-ldap: Do not retry with bad credentials

9 years agoimap: Set client_command_context.tagline_reply before syncing.
Timo Sirainen [Wed, 4 May 2016 12:36:44 +0000 (15:36 +0300)] 
imap: Set client_command_context.tagline_reply before syncing.

Command post-hooks can't see it otherwise.

9 years agodsync: Fixed assert-crash if mailbox_attribute_set() fails
Timo Sirainen [Tue, 3 May 2016 19:18:54 +0000 (22:18 +0300)] 
dsync: Fixed assert-crash if mailbox_attribute_set() fails

We shouldn't set importer->mail_error, because we're not going to
fail the import.

Fixes assert-crash:
dsync-mailbox-import.c: line 2812 (dsync_mailbox_import_deinit): assertion failed: (importer->failed == (importer->mail_error != 0))

9 years agolib-ldap: Added initial connection pooling code.
Timo Sirainen [Mon, 2 May 2016 12:20:18 +0000 (15:20 +0300)] 
lib-ldap: Added initial connection pooling code.

This is mainly about allowing multiple dict-ldaps to use the same
ldap-connection. In future we could support load balancing with multiple
concurrent LDAP connections.

9 years agodict-ldap: Removed caching of ldap-clients
Timo Sirainen [Mon, 2 May 2016 11:35:40 +0000 (14:35 +0300)] 
dict-ldap: Removed caching of ldap-clients

With the previous per-username caching there could be a huge number of
dict-ldaps.

9 years agodict-ldap: Don't reuse dict for different usernames.
Timo Sirainen [Mon, 2 May 2016 11:21:06 +0000 (14:21 +0300)] 
dict-ldap: Don't reuse dict for different usernames.

Fixes doing priv/* lookups for multiple usernames.

This currently also means that each username will create a separate LDAP
connection, which isn't ideal. But this is probably better fixed in
lib-ldap code similar to how lib-sql does connection pooling.

9 years agoimap: Added struct client_command_context.tagline_reply
Timo Sirainen [Mon, 2 May 2016 09:01:40 +0000 (12:01 +0300)] 
imap: Added struct client_command_context.tagline_reply

Can be used by plugins.

9 years agoauth: Added %{auth_user/username/domain} variables
Timo Sirainen [Mon, 2 May 2016 07:14:20 +0000 (10:14 +0300)] 
auth: Added %{auth_user/username/domain} variables

9 years agolib-storage: Clear list error before mailbox_list_get_hierarchy_sep()
Timo Sirainen [Sat, 30 Apr 2016 11:55:14 +0000 (14:55 +0300)] 
lib-storage: Clear list error before mailbox_list_get_hierarchy_sep()

With ACL plugin enabled the call could have triggered dovecot-acl-list
rebuild, which in turn could have set list errors if it didn't have
permissions to all the mailboxes. This caused IMAP logins to fail.

9 years agolib-mail: message-parser assert-crashfix
Timo Sirainen [Sat, 30 Apr 2016 11:19:02 +0000 (14:19 +0300)] 
lib-mail: message-parser assert-crashfix

Crashes when multipart MIME header is missing end-of-headers line and the
boundary begins with the same prefix as one of the parent boundaries.
Broken by 7a12331c6

9 years agoquota: Fix to earlier commit 62f2f6baf
Timo Sirainen [Fri, 29 Apr 2016 22:27:27 +0000 (01:27 +0300)] 
quota: Fix to earlier commit 62f2f6baf

expunge_uids may become empty with prev_idx > 0

9 years agolib-fs: Fixed fs_get_metadata() with fs-metawrap
Timo Sirainen [Fri, 29 Apr 2016 22:05:47 +0000 (01:05 +0300)] 
lib-fs: Fixed fs_get_metadata() with fs-metawrap

If mail was already read to EOF.

9 years agoman: Add stub for doveadm-fs command
Michael Slusarz [Tue, 26 Apr 2016 20:27:39 +0000 (14:27 -0600)] 
man: Add stub for doveadm-fs command

9 years agolmtp: Connect to anvil earlier while still running as root
Timo Sirainen [Tue, 26 Apr 2016 15:51:55 +0000 (18:51 +0300)] 
lmtp: Connect to anvil earlier while still running as root

This was a problem only with lmtp_rcpt_check_quota=yes.

9 years agolib: Set timestamp part more accurately in guid_128_generate()
Timo Sirainen [Thu, 28 Apr 2016 19:33:14 +0000 (22:33 +0300)] 
lib: Set timestamp part more accurately in guid_128_generate()

Previously a long-running process would keep the timestamp close to its
original start time. This doesn't really matter as long as GUIDs are treated
opaque, but some pieces of code prefer to try to use the timestamp fields
since they're already there. This makes such code work more nicely.

9 years agolib-ldap: Make static analyzer happier
Timo Sirainen [Fri, 29 Apr 2016 18:57:36 +0000 (21:57 +0300)] 
lib-ldap: Make static analyzer happier

Remove dead assignment.

9 years agoauth: Fixed final result in multiple userdbs
Timo Sirainen [Fri, 29 Apr 2016 17:23:00 +0000 (20:23 +0300)] 
auth: Fixed final result in multiple userdbs

We don't want to return the last result's success/failure, but
the entire userdb chain's success/failure.

9 years agoauth: Session ID wasn't exported to auth workers.
Timo Sirainen [Fri, 29 Apr 2016 16:59:36 +0000 (19:59 +0300)] 
auth: Session ID wasn't exported to auth workers.

Most importantly this means that log messages didn't contain them.

9 years agoquota: Added quota_over_flag_lazy_check flag.
Timo Sirainen [Fri, 29 Apr 2016 16:25:52 +0000 (19:25 +0300)] 
quota: Added quota_over_flag_lazy_check flag.

By default the quota_over_flag is checked immediately at startup. With this
option the check is done only at a time when the quota is anyway being read.

9 years agoquota: dict-quota was broken by 464db6d9d
Timo Sirainen [Fri, 29 Apr 2016 16:20:11 +0000 (19:20 +0300)] 
quota: dict-quota was broken by 464db6d9d

We can't assume that the quota_root given to quota_count() is
count_quota_root, because dict_quota_root also calls it.

9 years agoquota: Cleanup - split quota_over_flag to init & run parts
Timo Sirainen [Fri, 29 Apr 2016 15:58:53 +0000 (18:58 +0300)] 
quota: Cleanup - split quota_over_flag to init & run parts

In preparation for the next change.

9 years agoquota: Fixed debug logging for quota_over_flag
Timo Sirainen [Fri, 29 Apr 2016 15:55:34 +0000 (18:55 +0300)] 
quota: Fixed debug logging for quota_over_flag

9 years agoquota: Fixed quota_over_flag handling when quota usage==limit
Timo Sirainen [Fri, 29 Apr 2016 15:53:04 +0000 (18:53 +0300)] 
quota: Fixed quota_over_flag handling when quota usage==limit

It couldn't really work correctly otherwise. If we've reached the quota, we
want to start rejecting new mails.

9 years agoquota-count: Cache quota usage within the same ioloop run.
Timo Sirainen [Fri, 29 Apr 2016 14:21:26 +0000 (17:21 +0300)] 
quota-count: Cache quota usage within the same ioloop run.

This mainly means that when both STORAGE and MESSAGES quota is looked up we
don't need to calculate them twice.

9 years agoquota-count: Code cleanup - give consistent return value
Timo Sirainen [Fri, 29 Apr 2016 14:20:31 +0000 (17:20 +0300)] 
quota-count: Code cleanup - give consistent return value

Although the callers didn't care if it returned 0 or 1.

9 years agoglobal: Use buffer_get_writable_size() where possible
Timo Sirainen [Fri, 29 Apr 2016 12:50:06 +0000 (15:50 +0300)] 
global: Use buffer_get_writable_size() where possible

With 09539f3db increasing buffer's init_size with +1 some fts-icu unit tests
started failing. And in general it's better to use the writable size since
that provides the true size that can be used.

9 years agoquota: Optimize handling a large number of expunges.
Timo Sirainen [Fri, 29 Apr 2016 12:42:48 +0000 (15:42 +0300)] 
quota: Optimize handling a large number of expunges.

This assumes that the mail_expunge() was called in the same order as
sync_notify(), which practically means that they were both done in
ascending uid order. This is usually true.

9 years agolib-ldap: Set minimum protocol if supported by library
Aki Tuomi [Fri, 29 Apr 2016 11:30:46 +0000 (14:30 +0300)] 
lib-ldap: Set minimum protocol if supported by library

9 years agoimapc: Fixed EXPUNGE handling when imapc_features didn't have modseq
Timo Sirainen [Fri, 29 Apr 2016 11:33:45 +0000 (14:33 +0300)] 
imapc: Fixed EXPUNGE handling when imapc_features didn't have modseq

9 years agolib-index: Use a bit larger initial records buffer size
Timo Sirainen [Fri, 29 Apr 2016 11:07:05 +0000 (14:07 +0300)] 
lib-index: Use a bit larger initial records buffer size

For example with a mailbox having 160k messages the buffer size is around
10MB. Adding just 1% more space to it allows a lot more appends before the
buffer needs to be realloced. This reduces CPU usage quite a lot.

9 years agolib: buffer_create_dynamic() now adds +1 to init_size
Timo Sirainen [Fri, 29 Apr 2016 10:55:33 +0000 (13:55 +0300)] 
lib: buffer_create_dynamic() now adds +1 to init_size

9 years agolib: Use p_malloc() explicitly in first buffer_alloc()
Timo Sirainen [Fri, 29 Apr 2016 09:55:52 +0000 (12:55 +0300)] 
lib: Use p_malloc() explicitly in first buffer_alloc()

Although there is now code in p_realloc() that it should be just as
efficient, this makes profiling somewhat nicer since it can better
distinguish between actual reallocs and initial allocs.

9 years agolib: Implement i_realloc(mem==NULL) more efficiently
Timo Sirainen [Fri, 29 Apr 2016 09:54:46 +0000 (12:54 +0300)] 
lib: Implement i_realloc(mem==NULL) more efficiently

Various parts of code use this to allocate the initial buffer. We can
do this more efficiently by using calloc().

9 years agolib-index: Memory allocation optimization
Timo Sirainen [Fri, 29 Apr 2016 09:34:23 +0000 (12:34 +0300)] 
lib-index: Memory allocation optimization

9 years agoconfigure: Fixed (again) --with-ldap=plugin
Timo Sirainen [Fri, 29 Apr 2016 09:44:31 +0000 (12:44 +0300)] 
configure: Fixed (again) --with-ldap=plugin

9 years agofts-lucene: Fixed crash on rescan
Timo Sirainen [Fri, 29 Apr 2016 07:53:37 +0000 (10:53 +0300)] 
fts-lucene: Fixed crash on rescan

Broken by af2564c7f9e05ad245a032efdfbc5abbb9b70f1e - rescan_ctx can be NULL.

9 years agolib-charset: Do not use //IGNORE on non-GNU system
Aki Tuomi [Thu, 28 Apr 2016 11:03:41 +0000 (14:03 +0300)] 
lib-charset: Do not use //IGNORE on non-GNU system

9 years agolib-storage: mailbox_set_subscribed() ignores duplicate changes now.
Timo Sirainen [Thu, 28 Apr 2016 23:33:58 +0000 (02:33 +0300)] 
lib-storage: mailbox_set_subscribed() ignores duplicate changes now.

9 years agolib-storage: Added index_storage_list_index_has_changed_full()
Timo Sirainen [Thu, 28 Apr 2016 12:21:41 +0000 (15:21 +0300)] 
lib-storage: Added index_storage_list_index_has_changed_full()

This allows the caller to use it to implement a slightly different
mailbox.list_index_has_changed()

9 years agodoveadm dump: Added more index ext records.
Timo Sirainen [Thu, 28 Apr 2016 09:53:49 +0000 (12:53 +0300)] 
doveadm dump: Added more index ext records.

"msgs" and "vsize" are now expanded.

9 years agolazy-expunge: Open the mailbox with ACLs ignored.
Timo Sirainen [Wed, 27 Apr 2016 20:58:12 +0000 (23:58 +0300)] 
lazy-expunge: Open the mailbox with ACLs ignored.

9 years agolazy-expunge: Open mailbox with MAILBOX_FLAG_SAVEONLY flag.
Timo Sirainen [Wed, 27 Apr 2016 20:47:09 +0000 (23:47 +0300)] 
lazy-expunge: Open mailbox with MAILBOX_FLAG_SAVEONLY flag.

9 years agoman: Add more complete description of one-way sync
Michael Slusarz [Wed, 20 Apr 2016 01:24:52 +0000 (19:24 -0600)] 
man: Add more complete description of one-way sync

9 years agofts: Empty "fts" setting should be same as nonexistent.
Timo Sirainen [Tue, 26 Apr 2016 18:07:57 +0000 (21:07 +0300)] 
fts: Empty "fts" setting should be same as nonexistent.

9 years agostats: Support multiple FIFO listeners.
Timo Sirainen [Tue, 26 Apr 2016 14:12:25 +0000 (17:12 +0300)] 
stats: Support multiple FIFO listeners.

9 years agodoveadm -u: Use mail_storage_service_all_init_mask()
Timo Sirainen [Tue, 26 Apr 2016 08:12:45 +0000 (11:12 +0300)] 
doveadm -u: Use mail_storage_service_all_init_mask()

9 years agolib-storage: Added mail_storage_service_all_init_mask()
Timo Sirainen [Tue, 26 Apr 2016 08:11:57 +0000 (11:11 +0300)] 
lib-storage: Added mail_storage_service_all_init_mask()

This allows providing a usermask hint to the userdb iteration lookup. For example
with LDAP this allows setting the base based on the @domain.

9 years agolib-storage: fixup the broken search result with \seen or \delete
Baofeng Wang [Tue, 26 Apr 2016 08:10:35 +0000 (11:10 +0300)] 
lib-storage: fixup the broken search result with \seen or \delete

remove side effects of match_always flag during search.

9 years agolib-sql: Fixed building Cassandra as plugin
Timo Sirainen [Tue, 26 Apr 2016 07:31:49 +0000 (10:31 +0300)] 
lib-sql: Fixed building Cassandra as plugin

9 years agofts-lucene: Rescan skipped namespace roots.
Timo Sirainen [Mon, 25 Apr 2016 17:14:19 +0000 (20:14 +0300)] 
fts-lucene: Rescan skipped namespace roots.

9 years agofts-lucene: Cleanup - move code to a separate function
Timo Sirainen [Mon, 25 Apr 2016 17:13:54 +0000 (20:13 +0300)] 
fts-lucene: Cleanup - move code to a separate function

9 years agolib-mail: More fixes to istream-header-filter with large input.
Timo Sirainen [Mon, 25 Apr 2016 13:58:30 +0000 (16:58 +0300)] 
lib-mail: More fixes to istream-header-filter with large input.

Don't assume that when reading the header the second time we'll get exactly
the same header blocks as the first time.

This commit also prevents the filter callback from switching the
matching-decision on non-first header line. This shouldn't be needed and it
could just cause confusion. (It also made it a bit easier to implement this
fix.)

9 years agolib-mail: Improved istream-header-filter unit test.
Timo Sirainen [Mon, 25 Apr 2016 13:34:59 +0000 (16:34 +0300)] 
lib-mail: Improved istream-header-filter unit test.

Existing code already assumes that the callback is called for all the header
data. So it's not used just for filtering headers but also parsing the
header contents. Make this assumption now explicit as a unit test.

9 years agolib-mail: istream-header-filter didn't limit memory usage.
Timo Sirainen [Mon, 25 Apr 2016 13:25:46 +0000 (16:25 +0300)] 
lib-mail: istream-header-filter didn't limit memory usage.

A large header was always added to hdr_buf, ignoring any max_buffer_size
limits.

9 years agolib-mail: Code cleanup to istream-header-filter unit test
Timo Sirainen [Mon, 25 Apr 2016 13:22:12 +0000 (16:22 +0300)] 
lib-mail: Code cleanup to istream-header-filter unit test

The exclude_headers arrays were used in a confusing way. The X-Drop header
wasn't actually even used in the exclude_headers.

9 years agodsync: If state is invalid, exit with code 2 instead of tempfail.
Timo Sirainen [Mon, 25 Apr 2016 11:38:35 +0000 (14:38 +0300)] 
dsync: If state is invalid, exit with code 2 instead of tempfail.

We'll have dsync_mailbox_import_*() just return success to everything until
_deinit() is called. The _deinit() will return a failure and set "resync
needed"-flag, which caller will know how to handle.

9 years agodsync: If full resync is requested, return empty state string.
Timo Sirainen [Mon, 25 Apr 2016 11:35:21 +0000 (14:35 +0300)] 
dsync: If full resync is requested, return empty state string.

If the state is wrong, it's better to fully resync all the mailboxes rather
than just the one where a problem was noticed.

9 years agodsync: Improved detecting state state string.
Timo Sirainen [Mon, 25 Apr 2016 11:08:37 +0000 (14:08 +0300)] 
dsync: Improved detecting state state string.

9 years agolib-storage: Don't use same session ID for multiple mail_storage_service_next() calls.
Timo Sirainen [Fri, 15 Apr 2016 13:12:44 +0000 (16:12 +0300)] 
lib-storage: Don't use same session ID for multiple mail_storage_service_next() calls.

dsync does multiple mail_storage_service_next() calls for the same
mail_storage_service_user. This causes stats plugin to send the same
session ID to stats process, which complains about duplicates. Solved this
in a generic way by having the following mail_storage_service_next() calls
append :counter to session ID.

9 years agofs-posix: If link() fails, preserve its errno through the following unlink()
Timo Sirainen [Mon, 11 Apr 2016 14:25:51 +0000 (17:25 +0300)] 
fs-posix: If link() fails, preserve its errno through the following unlink()