]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
9 years agolib-http: server: Make sure provided connection FDs are non-blocking.
Stephan Bosch [Sun, 19 Jun 2016 23:20:33 +0000 (01:20 +0200)] 
lib-http: server: Make sure provided connection FDs are non-blocking.

9 years agolib-http: server: Wrap request payload in a timeout input stream.
Stephan Bosch [Sun, 19 Jun 2016 23:15:18 +0000 (01:15 +0200)] 
lib-http: server: Wrap request payload in a timeout input stream.

The server cannot reset the timeout properly while the payload is being read by the application.
The HTTP client solved this same problem by identical means.

9 years agolib-http: server: Fixed handling of idle timeout when request just starts processing...
Stephan Bosch [Sun, 19 Jun 2016 20:31:18 +0000 (22:31 +0200)] 
lib-http: server: Fixed handling of idle timeout when request just starts processing on the server.

9 years agolib-http: server: Added more detailed debugging about when idle timeouts are started...
Stephan Bosch [Sun, 19 Jun 2016 20:35:43 +0000 (22:35 +0200)] 
lib-http: server: Added more detailed debugging about when idle timeouts are started/stopped.

9 years agolib-http: client: Added tests for manual handling of connection loss retries to test...
Stephan Bosch [Fri, 17 Jun 2016 14:59:37 +0000 (16:59 +0200)] 
lib-http: client: Added tests for manual handling of connection loss retries to test-http-client-errors.

9 years agolib-http: client: Implemented no_auto_retry setting that disables all automatic reque...
Stephan Bosch [Fri, 17 Jun 2016 14:59:15 +0000 (16:59 +0200)] 
lib-http: client: Implemented no_auto_retry setting that disables all automatic request retries.

This currently only applies to requests sent over a connection that is subsequently lost before a response is received.
Before, such requests were always implicitly resumbitted for a new connection, without the application knowing about it.
By enabling the no_auto_retry client setting, the application is always notified of connection loss through the request's response callback.
As a consequence, requests need to be retried explicitly using the http_client_request_try_retry().

9 years agolib-http: client: Allow retrying requests that failed internally.
Stephan Bosch [Fri, 17 Jun 2016 13:39:36 +0000 (15:39 +0200)] 
lib-http: client: Allow retrying requests that failed internally.

9 years agolib-http: client: Added test for http_client_request_delay_msecs() in test_http_clien...
Stephan Bosch [Tue, 14 Jun 2016 20:47:31 +0000 (22:47 +0200)] 
lib-http: client: Added test for http_client_request_delay_msecs() in test_http_client_errors.

9 years agolib-http: Improved error logging for net_set_*_buffer_size() failures.
Timo Sirainen [Thu, 26 May 2016 15:27:27 +0000 (18:27 +0300)] 
lib-http: Improved error logging for net_set_*_buffer_size() failures.

9 years agolib-http: client: Created test program that triggers most possible error conditions.
Stephan Bosch [Sun, 22 May 2016 08:38:18 +0000 (10:38 +0200)] 
lib-http: client: Created test program that triggers most possible error conditions.

9 years agolib-http: test-http-payload: Added tests for the use of nested ioloops.
Stephan Bosch [Tue, 24 May 2016 01:11:07 +0000 (03:11 +0200)] 
lib-http: test-http-payload: Added tests for the use of nested ioloops.

9 years agolib-http: test-http-payload: Added cleanup code to make sure no child processes get...
Stephan Bosch [Mon, 23 May 2016 19:57:18 +0000 (21:57 +0200)] 
lib-http: test-http-payload: Added cleanup code to make sure no child processes get orphaned at failures.

Also handles SIGSEGV and SIGABRT.

9 years agolib-http: test-http-payload: Added -D option to easily enable debug mode.
Stephan Bosch [Sun, 22 May 2016 17:16:42 +0000 (19:16 +0200)] 
lib-http: test-http-payload: Added -D option to easily enable debug mode.

9 years agolib-http: test-http-client: Callback is not called for explicitly aborted requests.
Stephan Bosch [Mon, 23 May 2016 01:16:07 +0000 (03:16 +0200)] 
lib-http: test-http-client: Callback is not called for explicitly aborted requests.

Test request context was not freed in that case.

9 years agolib-http: client: Fixed bug in handling of lost connections while returning from...
Stephan Bosch [Wed, 25 May 2016 21:41:47 +0000 (23:41 +0200)] 
lib-http: client: Fixed bug in handling of lost connections while returning from another ioloop.

At one instance the http_client_connection_is_ready() function could have destroyed the connection while the caller still depended on it.
Renamed the http_client_connection_is_ready() function to http_client_connection_check_ready().
This now returns -1 when the connection got destroyed. Before it returned a bool that just indicated whether the connection was ready or not.
So, there is no need anymore to preserve a connection reference while calling this function.

9 years agolib-http: client: Reworked connection close handling.
Stephan Bosch [Mon, 23 May 2016 00:38:49 +0000 (02:38 +0200)] 
lib-http: client: Reworked connection close handling.

Now, the peer is immediately notified of the lost connection.
Before, this step was only taken when the connection was fully dereferenced.
To prevent recursive notifications between peer and connection, handling the loss of a connection is deferred to the request handler.
When a peer is freed, any associated lingering connections have conn->peer set to NULL.

9 years agolib-http: client: Prevent useless and unexpected request callbacks during http_client...
Stephan Bosch [Sun, 22 May 2016 10:48:37 +0000 (12:48 +0200)] 
lib-http: client: Prevent useless and unexpected request callbacks during http_client_deinit().

Requests are now destroyed before queues, hosts, peers and connections.
As a side-effect, requests are now removed from the client request list at http_client_request_destroy(), so that requests with lingering references will no longer make http_client_wait() hang.

9 years agolib-http: client: Added settings to configure the connection's socket kernel buffer...
Stephan Bosch [Thu, 19 May 2016 22:04:12 +0000 (00:04 +0200)] 
lib-http: client: Added settings to configure the connection's socket kernel buffer sizes.

This is mainly useful for use in the lib-http test suite.

9 years agolib: Implemented net_set_send_buffer_size() and net_set_recv_buffer_size().
Stephan Bosch [Thu, 19 May 2016 22:02:49 +0000 (00:02 +0200)] 
lib: Implemented net_set_send_buffer_size() and net_set_recv_buffer_size().

These functions allow manipulating the kernel socket buffer sizes for a socket file descriptor.

9 years agolib-http: client: Removed curiously duplicated code.
Stephan Bosch [Thu, 19 May 2016 21:42:14 +0000 (23:42 +0200)] 
lib-http: client: Removed curiously duplicated code.

Probably a patch got applied with sufficient fuzz that it duplicated this code fragment, while it actually already existed.

9 years agolib-http: client: peer: Improved debug message that shows the loss of a connection.
Stephan Bosch [Sat, 21 May 2016 11:17:58 +0000 (13:17 +0200)] 
lib-http: client: peer: Improved debug message that shows the loss of a connection.

9 years agolib-http: client: Made peer object reference-counted to prevent invalid memory access...
Stephan Bosch [Fri, 20 May 2016 22:16:21 +0000 (00:16 +0200)] 
lib-http: client: Made peer object reference-counted to prevent invalid memory access in request handling routine.

Resetting the peer->handling_requests flag risked triggering a segfault, since the peer object could be deleted from within the request handler loop.

9 years agolib-http: client: Improved request reference counting in connection code.
Stephan Bosch [Sat, 21 May 2016 11:16:08 +0000 (13:16 +0200)] 
lib-http: client: Improved request reference counting in connection code.

It should now always be clear when the connection object holds a reference to a request and when it is released.
Only while the reference is held, req->conn points to a connection.
This also makes the assertion in http_client_request_unref() more robust and clear.

9 years agolib-http: client: Fixed reference counting for requests that are aborted due to an...
Stephan Bosch [Sun, 22 May 2016 08:42:01 +0000 (10:42 +0200)] 
lib-http: client: Fixed reference counting for requests that are aborted due to an early server response.

An additional http_client_request_unref() is (now) unneccessary.

9 years agolib-http: client: Fixed reference counting for requests that are aborted due to havin...
Stephan Bosch [Thu, 19 May 2016 21:40:26 +0000 (23:40 +0200)] 
lib-http: client: Fixed reference counting for requests that are aborted due to having a broken outgoing payload stream.

9 years agolib-http: Changed http_client_request_error to set request to NULL
Timo Sirainen [Wed, 18 May 2016 16:40:32 +0000 (19:40 +0300)] 
lib-http: Changed http_client_request_error to set request to NULL

It's going to internally unreference it, so the caller should be aware of it
also.

I also changed request state check to be an assert, since I don't think
there's any safe way this could work otherwise.

9 years agolib-http: response parser: Added check for the range of the response status value.
Stephan Bosch [Fri, 20 May 2016 22:16:38 +0000 (00:16 +0200)] 
lib-http: response parser: Added check for the range of the response status value.

A value of 666 was accepted inappropriately.

9 years agolib-dict-extra: Compiler warning fix
Timo Sirainen [Mon, 20 Jun 2016 00:07:58 +0000 (03:07 +0300)] 
lib-dict-extra: Compiler warning fix

9 years agolib-dict: Added dict_switch_ioloop()
Timo Sirainen [Mon, 13 Jun 2016 14:10:22 +0000 (17:10 +0300)] 
lib-dict: Added dict_switch_ioloop()

9 years agolib-dict: dict-client rewrite to support async operations
Timo Sirainen [Wed, 1 Jun 2016 21:57:17 +0000 (00:57 +0300)] 
lib-dict: dict-client rewrite to support async operations

9 years agolib: Added t_str_tabunescape()
Timo Sirainen [Fri, 6 May 2016 14:24:42 +0000 (17:24 +0300)] 
lib: Added t_str_tabunescape()

9 years agolib-dcrypt: Use a more supported EC curve in unit test
Timo Sirainen [Sun, 19 Jun 2016 23:25:47 +0000 (02:25 +0300)] 
lib-dcrypt: Use a more supported EC curve in unit test

Fixes running the test on CentOS 6.

9 years agolib-index: Don't break indexes on syscall failures during index refreshing.
Timo Sirainen [Sun, 19 Jun 2016 22:47:59 +0000 (01:47 +0300)] 
lib-index: Don't break indexes on syscall failures during index refreshing.

Especially mmap() failures due to out of memory could have triggered this.
We treated the open as successful, which meant that an empty index was
opened.

9 years agolib-dcrypt: Fixed running unit tests in build directory.
Timo Sirainen [Sun, 19 Jun 2016 20:18:43 +0000 (23:18 +0300)] 
lib-dcrypt: Fixed running unit tests in build directory.

9 years agomailbox-alias: Fixed renaming mailboxes when the plugin is loaded.
Timo Sirainen [Sun, 19 Jun 2016 17:23:27 +0000 (20:23 +0300)] 
mailbox-alias: Fixed renaming mailboxes when the plugin is loaded.

9 years agolib-dcrypt: Fixed memory leak in test-crypto unit test
Timo Sirainen [Sun, 19 Jun 2016 15:44:55 +0000 (18:44 +0300)] 
lib-dcrypt: Fixed memory leak in test-crypto unit test

9 years agodoveadm dump: Updated obox's oid output.
Timo Sirainen [Sun, 19 Jun 2016 15:38:39 +0000 (18:38 +0300)] 
doveadm dump: Updated obox's oid output.

9 years agolib-http: client: Added more debug logging about the submission of delayed requests.
Stephan Bosch [Tue, 14 Jun 2016 23:54:25 +0000 (01:54 +0200)] 
lib-http: client: Added more debug logging about the submission of delayed requests.

9 years agotime-util: Fixed usec comparison in timeval_cmp_margin().
Stephan Bosch [Tue, 14 Jun 2016 23:53:44 +0000 (01:53 +0200)] 
time-util: Fixed usec comparison in timeval_cmp_margin().

9 years agolib-dcrypt: Fix error_r pointer verification.
Teemu Huovila [Tue, 14 Jun 2016 19:42:09 +0000 (22:42 +0300)] 
lib-dcrypt: Fix error_r pointer verification.

9 years agolib-fs: Added write_bytes to statistics
Timo Sirainen [Tue, 14 Jun 2016 19:32:36 +0000 (22:32 +0300)] 
lib-fs: Added write_bytes to statistics

9 years ago[LEN] to [static LEN] on some function parameters
Martti Rannanjärvi [Tue, 10 May 2016 07:19:57 +0000 (10:19 +0300)] 
[LEN] to [static LEN] on some function parameters

Also add STATIC_ARRAY macro to hide it in c++ compilation.

9 years agodcrypt: Arm deinitialization code
Aki Tuomi [Tue, 14 Jun 2016 09:30:27 +0000 (12:30 +0300)] 
dcrypt: Arm deinitialization code

9 years agodcrypt: Add test for public key loading
Aki Tuomi [Tue, 14 Jun 2016 09:08:49 +0000 (12:08 +0300)] 
dcrypt: Add test for public key loading

9 years agodcrypt-openssl: Pass pointer safely
Aki Tuomi [Tue, 14 Jun 2016 09:08:34 +0000 (12:08 +0300)] 
dcrypt-openssl: Pass pointer safely

9 years agolib-index: Fixed test-mail-index-sync-ext
Timo Sirainen [Tue, 14 Jun 2016 07:49:24 +0000 (10:49 +0300)] 
lib-index: Fixed test-mail-index-sync-ext

9 years agolib-index: Fixes to handling resized records.
Timo Sirainen [Mon, 13 Jun 2016 22:14:13 +0000 (01:14 +0300)] 
lib-index: Fixes to handling resized records.

9 years agodict: Increased max number of pipelined requests from 5 to 1000.
Timo Sirainen [Mon, 13 Jun 2016 17:16:14 +0000 (20:16 +0300)] 
dict: Increased max number of pipelined requests from 5 to 1000.

The client is supposed to be the one throttling the requests. We mainly
want to avoid accidental abuses. Using 1000 is hopefully "large enough"
without being "too large".

9 years agodict: Avoid potentially using 100% CPU
Timo Sirainen [Mon, 13 Jun 2016 14:59:01 +0000 (17:59 +0300)] 
dict: Avoid potentially using 100% CPU

Continuing 65c570f18 fix.

9 years agolib-fs: Added fs_switch_ioloop()
Timo Sirainen [Mon, 13 Jun 2016 14:11:28 +0000 (17:11 +0300)] 
lib-fs: Added fs_switch_ioloop()

9 years agolib-fs: Code cleanup for fs-sis: Use struct fs.parent
Timo Sirainen [Mon, 13 Jun 2016 14:31:34 +0000 (17:31 +0300)] 
lib-fs: Code cleanup for fs-sis: Use struct fs.parent

9 years agolib-dcrypt: Use hex encoded public key ID in callback
Aki Tuomi [Mon, 13 Jun 2016 09:49:19 +0000 (12:49 +0300)] 
lib-dcrypt: Use hex encoded public key ID in callback

9 years agoFixed linking with OSX.
Timo Sirainen [Tue, 7 Jun 2016 00:47:44 +0000 (03:47 +0300)] 
Fixed linking with OSX.

9 years agolib-dcrypt: Use dcrypt_key_id_private when applicable
Aki Tuomi [Mon, 13 Jun 2016 09:44:09 +0000 (12:44 +0300)] 
lib-dcrypt: Use dcrypt_key_id_private when applicable

9 years agoldap: Fix cyclic dependency
Aki Tuomi [Wed, 11 May 2016 05:02:29 +0000 (08:02 +0300)] 
ldap: Fix cyclic dependency

9 years agodovecot-config: Add lib-dcrypt to LIBDOVECOT_INCLUDE
Timo Sirainen [Mon, 13 Jun 2016 09:18:07 +0000 (12:18 +0300)] 
dovecot-config: Add lib-dcrypt to LIBDOVECOT_INCLUDE

Since lib-dcrypt is part of libdovecot.

9 years agomaster: make setting listen empty an error
Martti Rannanjärvi [Thu, 19 May 2016 08:14:46 +0000 (11:14 +0300)] 
master: make setting listen empty an error

9 years agolib-index: mail_index_ext_resize() was broken when record_size wasn't changed.
Timo Sirainen [Sun, 12 Jun 2016 17:11:49 +0000 (20:11 +0300)] 
lib-index: mail_index_ext_resize() was broken when record_size wasn't changed.

9 years agolib-dcrypt: Fix various problems
Aki Tuomi [Sun, 12 Jun 2016 15:57:10 +0000 (18:57 +0300)] 
lib-dcrypt: Fix various problems

9 years agolib-mail: Improved message-parser unit tests.
Timo Sirainen [Sat, 11 Jun 2016 18:23:57 +0000 (21:23 +0300)] 
lib-mail: Improved message-parser unit tests.

9 years agolib-mail: Fixed message_parser_init_from_parts() with truncated MIME headers
Timo Sirainen [Sat, 11 Jun 2016 18:23:07 +0000 (21:23 +0300)] 
lib-mail: Fixed message_parser_init_from_parts() with truncated MIME headers

9 years agolib-mail: message-header-parser now keeps istream referenced.
Timo Sirainen [Sat, 11 Jun 2016 18:20:37 +0000 (21:20 +0300)] 
lib-mail: message-header-parser now keeps istream referenced.

9 years agolib-storage: mail_set_cache_corrupted*() now sets internal error to storage.
Timo Sirainen [Sat, 11 Jun 2016 17:50:39 +0000 (20:50 +0300)] 
lib-storage: mail_set_cache_corrupted*() now sets internal error to storage.

At least index_mail_set_message_parts_corrupted() assumed that this was
being done.

9 years agocassandra: Try fallback_consistency also for write timeout failures.
Timo Sirainen [Sat, 11 Jun 2016 14:13:12 +0000 (17:13 +0300)] 
cassandra: Try fallback_consistency also for write timeout failures.

9 years agodoveadm-server: Disable idle timeout for now
Aki Tuomi [Tue, 7 Jun 2016 05:50:12 +0000 (08:50 +0300)] 
doveadm-server: Disable idle timeout for now

9 years agolib-dcrypt: Fixed library dependencies
Timo Sirainen [Tue, 7 Jun 2016 00:25:16 +0000 (03:25 +0300)] 
lib-dcrypt: Fixed library dependencies

_DEPENDENCIES needs an explicit paths, not "-lssl" and such. Fixes building
with e.g. OSX.

9 years agolib-lda: Don't assert-crash if home directory isn't set.
Timo Sirainen [Tue, 7 Jun 2016 00:04:32 +0000 (03:04 +0300)] 
lib-lda: Don't assert-crash if home directory isn't set.

9 years agombox: Code cleanup - use bool instead of int for tracking locked-status
Timo Sirainen [Sun, 5 Jun 2016 13:01:05 +0000 (16:01 +0300)] 
mbox: Code cleanup - use bool instead of int for tracking locked-status

9 years agoquota: Differentiate between forced and non-forced quota recalc
Timo Sirainen [Mon, 2 May 2016 15:27:02 +0000 (18:27 +0300)] 
quota: Differentiate between forced and non-forced quota recalc

The "count" backend doesn't need to recalc quota unless an explicit "doveadm
quota recalc" command is called.

9 years agoquota: Skip reading mail sizes when quota backend doesn't need it.
Timo Sirainen [Mon, 2 May 2016 15:16:00 +0000 (18:16 +0300)] 
quota: Skip reading mail sizes when quota backend doesn't need it.

If quota backend is updating the quota internally, it's just going to ignore
the looked up size. The only reason for looking up the sizes is to check
with quota_try_alloc() whether user is going over quota.

9 years agofs-randomfail: Support failures after asynchronous commands have already finished.
Timo Sirainen [Sun, 5 Jun 2016 23:27:35 +0000 (02:27 +0300)] 
fs-randomfail: Support failures after asynchronous commands have already finished.

9 years agodict: Fixed hang when pipelining multiple commands.
Timo Sirainen [Sun, 5 Jun 2016 23:26:09 +0000 (02:26 +0300)] 
dict: Fixed hang when pipelining multiple commands.

9 years agolib-index: Extension record size resizing was still broken.
Timo Sirainen [Sun, 5 Jun 2016 21:07:53 +0000 (00:07 +0300)] 
lib-index: Extension record size resizing was still broken.

Fixes assert-crash:
Panic: file mail-index-util.c: line 143 (mail_index_seq_array_add): assertion failed: (array->arr.element_size == sizeof(seq) + aligned_record_size)

9 years agolib-mail: Added comment about invalid timezones in message_date_parse()
Timo Sirainen [Sun, 5 Jun 2016 13:51:12 +0000 (16:51 +0300)] 
lib-mail: Added comment about invalid timezones in message_date_parse()

9 years agodirector: Fixed error handling when directors support incompatible tags
Timo Sirainen [Sun, 5 Jun 2016 13:40:27 +0000 (16:40 +0300)] 
director: Fixed error handling when directors support incompatible tags

Connection should have been disconnected immediately, not after the next
command that would have produced "Incompatible protocol".

9 years agolib-dcrypt: Fixed error handling in dcrypt_key_id_public()
Timo Sirainen [Sun, 5 Jun 2016 12:57:48 +0000 (15:57 +0300)] 
lib-dcrypt: Fixed error handling in dcrypt_key_id_public()

9 years agolib-storage: Fixed error handling in list=children checking
Timo Sirainen [Sun, 5 Jun 2016 12:35:13 +0000 (15:35 +0300)] 
lib-storage: Fixed error handling in list=children checking

9 years agofts-lucene: Fixed error handling when checking if settings had changed.
Timo Sirainen [Sun, 5 Jun 2016 12:32:09 +0000 (15:32 +0300)] 
fts-lucene: Fixed error handling when checking if settings had changed.

9 years agomailbox-alias plugin: Fixed error handling
Timo Sirainen [Sun, 5 Jun 2016 12:31:20 +0000 (15:31 +0300)] 
mailbox-alias plugin: Fixed error handling

9 years agolib-storage: Search args equalness checks didn't compare keywords correctly.
Timo Sirainen [Sun, 5 Jun 2016 12:26:11 +0000 (15:26 +0300)] 
lib-storage: Search args equalness checks didn't compare keywords correctly.

This may have broken the search in some situations.

9 years agombox: Fixed expunging first mail with CRLF linefeeds.
Timo Sirainen [Sun, 5 Jun 2016 12:23:45 +0000 (15:23 +0300)] 
mbox: Fixed expunging first mail with CRLF linefeeds.

9 years agomdbox: Fix want_altpath flags/boolean mixup
Timo Sirainen [Sun, 5 Jun 2016 12:18:04 +0000 (15:18 +0300)] 
mdbox: Fix want_altpath flags/boolean mixup

There was only a single flag, so this wasn't actually currently broken.

9 years agoauth: Fixed error handling in passdb/userdb dict config parsing
Timo Sirainen [Sun, 5 Jun 2016 12:11:56 +0000 (15:11 +0300)] 
auth: Fixed error handling in passdb/userdb dict config parsing

9 years agodirector: Fixed ignoring an obsolete up/down change while host is desynced.
Timo Sirainen [Sun, 5 Jun 2016 11:54:05 +0000 (14:54 +0300)] 
director: Fixed ignoring an obsolete up/down change while host is desynced.

9 years agolib-dcrypt: Fixed function return type.
Timo Sirainen [Sun, 5 Jun 2016 01:29:00 +0000 (04:29 +0300)] 
lib-dcrypt: Fixed function return type.

9 years agolazy-expunge: Fixed crash on error handling
Timo Sirainen [Sat, 4 Jun 2016 00:47:37 +0000 (03:47 +0300)] 
lazy-expunge: Fixed crash on error handling

9 years agolib-index: Fix duplicate fields in mail_cache_register_fields()
Timo Sirainen [Fri, 3 Jun 2016 17:14:01 +0000 (20:14 +0300)] 
lib-index: Fix duplicate fields in mail_cache_register_fields()

Broken by hash_table_insert() API change. The earlier code was also a bit
wrong by allocating a bit too much memory when there were duplicate fields
being registered.

9 years agolib-index: Fixed extension resizing
Timo Sirainen [Fri, 3 Jun 2016 17:10:02 +0000 (20:10 +0300)] 
lib-index: Fixed extension resizing

Broken by 8483af4ff.

9 years agolib-index: Added header-size asserts
Timo Sirainen [Fri, 3 Jun 2016 17:00:14 +0000 (20:00 +0300)] 
lib-index: Added header-size asserts

9 years agolib-index: Fixed fsck handling extension with invalid header size
Timo Sirainen [Fri, 3 Jun 2016 16:58:29 +0000 (19:58 +0300)] 
lib-index: Fixed fsck handling extension with invalid header size

Fixes:

Panic: file mail-index-sync-ext.c: line 393 (mail_index_sync_ext_init_new): assertion failed: (hdr_buf->used == map->hdr.header_size)

9 years agolib-storage: Detect duplicate mailbox GUIDs in guid-cache.
Timo Sirainen [Fri, 3 Jun 2016 16:20:35 +0000 (19:20 +0300)] 
lib-storage: Detect duplicate mailbox GUIDs in guid-cache.

Also fixes assert-crashing in hash_table_insert() when it happens.

9 years agomaildir: Detect duplicate keywords in dovecot-keywords file
Timo Sirainen [Fri, 3 Jun 2016 16:18:43 +0000 (19:18 +0300)] 
maildir: Detect duplicate keywords in dovecot-keywords file

Use the first such keyword's index, not the last.

Also fixes assert-crashing in hash_table_insert() when it happens.

9 years agomaildir: Avoid extra memory usage on duplicate uidlist entries
Timo Sirainen [Fri, 3 Jun 2016 16:17:03 +0000 (19:17 +0300)] 
maildir: Avoid extra memory usage on duplicate uidlist entries

Also fixes assert-crashing in hash_table_insert() when it happens.

9 years agolib-index: Allow growing ext record_size after mail_index_update_ext()
Timo Sirainen [Fri, 3 Jun 2016 14:54:36 +0000 (17:54 +0300)] 
lib-index: Allow growing ext record_size after mail_index_update_ext()

The existing records will just get some zero-padding at the end of records.

9 years agolib-index: Fixed changing extension record sizes.
Timo Sirainen [Fri, 3 Jun 2016 14:52:39 +0000 (17:52 +0300)] 
lib-index: Fixed changing extension record sizes.

map needs to be cloned before any extension record size changes are done.
Otherwise the map cloning will crash or do something broken.

9 years agolib-index: Minor code cleanup - use better variable names
Timo Sirainen [Fri, 3 Jun 2016 14:40:11 +0000 (17:40 +0300)] 
lib-index: Minor code cleanup - use better variable names

9 years agolib-storage: add no_fts in struct mail_search_arg
Baofeng Wang [Wed, 18 May 2016 11:42:21 +0000 (14:42 +0300)] 
lib-storage: add no_fts in struct mail_search_arg

When flag is set, FTS will not be performed.

fts plugin: handle no_fts flag

No fts will be performed once flag is set.
Original patch from Timo Sirainen <timo.sirainen@dovecot.fi>

9 years agovirtual: Moved virtual_mailbox_vfuncs to lib-storage.
Timo Sirainen [Mon, 30 May 2016 16:07:16 +0000 (19:07 +0300)] 
virtual: Moved virtual_mailbox_vfuncs to lib-storage.

This allows implementing other virtual storage backends.

9 years agomaster: Give a nicer error if unix/fifo_listener path is empty.
Timo Sirainen [Wed, 1 Jun 2016 09:37:22 +0000 (12:37 +0300)] 
master: Give a nicer error if unix/fifo_listener path is empty.

The previous error was simply:

unlink(/var/run/dovecot/) failed: Is a directory

9 years agodict-sql: Improve error message for invalid value fields.
Timo Sirainen [Thu, 2 Jun 2016 13:06:08 +0000 (16:06 +0300)] 
dict-sql: Improve error message for invalid value fields.

It'll now show which map's pattern matched, making it easier to find
from the config file.