]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Stephan Bosch [Sun, 19 Jun 2016 23:20:33 +0000 (01:20 +0200)]
lib-http: server: Make sure provided connection FDs are non-blocking.
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.
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.
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.
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.
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().
Stephan Bosch [Fri, 17 Jun 2016 13:39:36 +0000 (15:39 +0200)]
lib-http: client: Allow retrying requests that failed internally.
Timo Sirainen [Mon, 20 Jun 2016 00:08:30 +0000 (03:08 +0300)]
lib-dict-extra: Compiler warning fix
Timo Sirainen [Mon, 13 Jun 2016 14:10:22 +0000 (17:10 +0300)]
lib-dict: Added dict_switch_ioloop()
Timo Sirainen [Mon, 13 Jun 2016 13:55:33 +0000 (16:55 +0300)]
lib-dict: Added test-dict-client to stress test async dict operations
Timo Sirainen [Wed, 1 Jun 2016 21:57:17 +0000 (00:57 +0300)]
lib-dict: dict-client rewrite to support async operations
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.
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.
Timo Sirainen [Sun, 19 Jun 2016 20:18:43 +0000 (23:18 +0300)]
lib-dcrypt: Fixed running unit tests in build directory.
Timo Sirainen [Sun, 19 Jun 2016 17:23:27 +0000 (20:23 +0300)]
mailbox-alias: Fixed renaming mailboxes when the plugin is loaded.
Timo Sirainen [Sun, 19 Jun 2016 15:44:55 +0000 (18:44 +0300)]
lib-dcrypt: Fixed memory leak in test-crypto unit test
Timo Sirainen [Sun, 19 Jun 2016 15:38:39 +0000 (18:38 +0300)]
doveadm dump: Updated obox's oid output.
Stephan Bosch [Thu, 16 Jun 2016 20:02:08 +0000 (22:02 +0200)]
lib-http: client/server: Enable the TCP_NODELAY option for all connections.
This disables the TCP Nagle algorithm. With the Nagle algorithm enabled, TCP waits a little to accumulate more data in a small segment before it is sent. For transfer of large continuous payloads, this is not useful and even harmful.
If the final remaining bit of the payload is small, the TCP layer will wait for a significant amount of time at the end of the payload. For many sequential transfers, this amounts to much waiting time.
This is particularly evident in the test-http-payload test suite tool. Setting TCP_NODELAY decreases its run time from up to 20 minutes to about half a minute my system.
Stephan Bosch [Thu, 16 Jun 2016 20:01:06 +0000 (22:01 +0200)]
lib: Created net_set_tcp_nodelay(), which enables the TCP_NODELAY socket option.
This disables the TCP Nagle algorithm.
Timo Sirainen [Thu, 16 Jun 2016 08:23:16 +0000 (11:23 +0300)]
lib-ssl-iostream: Changed require_valid_cert -> allow_invalid_cert
We should default to being safe.
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.
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.
Stephan Bosch [Tue, 14 Jun 2016 23:53:44 +0000 (01:53 +0200)]
time-util: Fixed usec comparison in timeval_cmp_margin().
Teemu Huovila [Tue, 14 Jun 2016 19:42:09 +0000 (22:42 +0300)]
lib-dcrypt: Fix error_r pointer verification.
Timo Sirainen [Tue, 14 Jun 2016 19:32:36 +0000 (22:32 +0300)]
lib-fs: Added write_bytes to statistics
Aki Tuomi [Tue, 14 Jun 2016 09:30:27 +0000 (12:30 +0300)]
dcrypt: Arm deinitialization code
Aki Tuomi [Tue, 14 Jun 2016 09:08:49 +0000 (12:08 +0300)]
dcrypt: Add test for public key loading
Aki Tuomi [Tue, 14 Jun 2016 09:08:34 +0000 (12:08 +0300)]
dcrypt-openssl: Pass pointer safely
Timo Sirainen [Tue, 14 Jun 2016 07:49:24 +0000 (10:49 +0300)]
lib-index: Fixed test-mail-index-sync-ext
Timo Sirainen [Mon, 13 Jun 2016 22:14:13 +0000 (01:14 +0300)]
lib-index: Fixes to handling resized records.
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".
Timo Sirainen [Mon, 13 Jun 2016 14:59:01 +0000 (17:59 +0300)]
dict: Avoid potentially using 100% CPU
Continuing
65c570f18 fix.
Timo Sirainen [Mon, 13 Jun 2016 14:11:28 +0000 (17:11 +0300)]
lib-fs: Added fs_switch_ioloop()
Timo Sirainen [Mon, 13 Jun 2016 14:31:34 +0000 (17:31 +0300)]
lib-fs: Code cleanup for fs-sis: Use struct fs.parent
Aki Tuomi [Mon, 13 Jun 2016 09:49:19 +0000 (12:49 +0300)]
lib-dcrypt: Use hex encoded public key ID in callback
Aki Tuomi [Mon, 13 Jun 2016 09:44:09 +0000 (12:44 +0300)]
lib-dcrypt: Use dcrypt_key_id_private when applicable
Aki Tuomi [Wed, 11 May 2016 05:02:29 +0000 (08:02 +0300)]
ldap: Fix cyclic dependency
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.
Martti Rannanjärvi [Thu, 19 May 2016 08:14:46 +0000 (11:14 +0300)]
master: make setting listen empty an error
Timo Sirainen [Mon, 6 Jun 2016 07:28:18 +0000 (10:28 +0300)]
lib-fs: fs_wait_async() can't fail, so make it return void.
The individual requests can timeout, but not the waiting itself.
Timo Sirainen [Mon, 13 Jun 2016 06:56:20 +0000 (09:56 +0300)]
lmtp: Don't permanently allocate from data stack during init.
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.
Aki Tuomi [Sun, 12 Jun 2016 15:57:10 +0000 (18:57 +0300)]
lib-dcrypt: Fix various problems
Timo Sirainen [Sat, 11 Jun 2016 18:23:57 +0000 (21:23 +0300)]
lib-mail: Improved message-parser unit tests.
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
Timo Sirainen [Sat, 11 Jun 2016 18:20:37 +0000 (21:20 +0300)]
lib-mail: message-header-parser now keeps istream referenced.
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.
Timo Sirainen [Sat, 11 Jun 2016 17:36:51 +0000 (20:36 +0300)]
doveadm: Don't use already-freed data stack after init.
Broken by
0679f8a70 .
Timo Sirainen [Sat, 11 Jun 2016 14:13:12 +0000 (17:13 +0300)]
cassandra: Try fallback_consistency also for write timeout failures.
Aki Tuomi [Tue, 7 Jun 2016 05:50:12 +0000 (08:50 +0300)]
doveadm-server: Disable idle timeout for now
Timo Sirainen [Tue, 7 Jun 2016 00:47:44 +0000 (03:47 +0300)]
Fixed linking with OSX.
Timo Sirainen [Tue, 7 Jun 2016 00:41:18 +0000 (03:41 +0300)]
-Wstrict-bool warning fixes
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.
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.
Timo Sirainen [Mon, 6 Jun 2016 14:10:12 +0000 (17:10 +0300)]
lib-mail: Fixed to
91fdb25b5
Caused by my manual edits to avoid the -Wstrict-bool warnings.
Timo Sirainen [Fri, 3 Jun 2016 19:23:00 +0000 (22:23 +0300)]
lib-master: Add automatic data stack frame to init unless disabled.
Timo Sirainen [Sun, 5 Jun 2016 14:17:12 +0000 (17:17 +0300)]
mbox: mbox_index_header.dirty_flag isn't boolean, so don't use TRUE/FALSE with it.
Timo Sirainen [Sun, 5 Jun 2016 13:54:38 +0000 (16:54 +0300)]
lib: define FALSE to be (!1)
This allows the patched clang to treat FALSE as a boolean expression.
Timo Sirainen [Sun, 5 Jun 2016 13:35:04 +0000 (16:35 +0300)]
global: Use only explicit int -> bool conversions
These were checked with a patched clang.
Timo Sirainen [Sun, 5 Jun 2016 02:06:27 +0000 (05:06 +0300)]
global: Require comparisons to be strict boolean expressions
* No implicit integer -> boolean or pointer -> boolean conversions
* !expr can be used only if expr is boolean type
These were checked with a patched clang. It found various actual bugs,
which were fixed by the previous commits.
Timo Sirainen [Sun, 5 Jun 2016 13:30:47 +0000 (16:30 +0300)]
global: uint32_t:1 -> bool:1
They were uint32_t because I wanted to be sure that there wouldn't be any
padding added to the struct. But this should be true also with bool:1.
Timo Sirainen [Sun, 5 Jun 2016 11:37:11 +0000 (14:37 +0300)]
global: unsigned int:1 -> bool:1
perl -i -pe 's/unsigned int ([^,:;]+):1;/bool $1:1;/' **/*.[ch]
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
Martti Rannanjärvi [Mon, 9 May 2016 11:28:08 +0000 (14:28 +0300)]
lib: remove autoclose parameter from [io]_stream_create_fd
Use [io]_stream_create_fd_autoclose() for autoclose.
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.
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.
Pali Rohár [Sun, 5 Jun 2016 13:48:20 +0000 (15:48 +0200)]
lib-mail: Update tests for message address
Pali Rohár [Sun, 5 Jun 2016 13:48:19 +0000 (15:48 +0200)]
lib-mail: message_address_write: Quote and escape strings if needed
ATEXT characters must be properly quoted when are in phrase.
Test case:
{ name = "test\"test", mailbox = "user", domain = "host" }
converts to:
"test\"test" <user@host>
Pali Rohár [Sun, 5 Jun 2016 13:48:18 +0000 (15:48 +0200)]
lib-mail: parse_mailbox: Set display name instead mailbox when parsing failed
It does not make sense to set mailbox without domain on incorrect input.
Rather set display name which is more likely useable value.
Test case:
test
is parsed as:
{ name = "test", mailbox = NULL, domain = NULL }
Pali Rohár [Sun, 5 Jun 2016 13:48:17 +0000 (15:48 +0200)]
lib-mail: parse_addr_spec: Email address without local-part is invalid
Add explicit invalid_syntax flag also when end of input occure because
address is without domain invalid and in this case it was not correctly
propagated.
Pali Rohár [Sun, 5 Jun 2016 13:48:16 +0000 (15:48 +0200)]
lib-mail: parse_addr_spec: Like in rfc822_skip_comment() check if last_comment is not NULL
This will fix possible NULL pointer dereference when caller does not set last_comment.
Pali Rohár [Sun, 5 Jun 2016 13:48:15 +0000 (15:48 +0200)]
lib-mail: message_address_write: Fix generating group list with empty name
Empty name for group list must be quoted.
Test case:
{ { name = NULL, mailbox = "", domain = NULL }, { name = NULL, mailbox = NULL, domain = NULL } }
converts to:
"":;
Pali Rohár [Sun, 5 Jun 2016 13:48:14 +0000 (15:48 +0200)]
lib-mail: message_address_write: Fix generating empty group list
Empty group list ends with ": " not with ", ".
Test case:
{ { name = NULL, mailbox = "group", domain = NULL }, { name = NULL, mailbox = NULL, domain = NULL } }
converts to:
group:;
Timo Sirainen [Sun, 5 Jun 2016 23:27:35 +0000 (02:27 +0300)]
fs-randomfail: Support failures after asynchronous commands have already finished.
Timo Sirainen [Sun, 5 Jun 2016 23:26:09 +0000 (02:26 +0300)]
dict: Fixed hang when pipelining multiple commands.
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)
Timo Sirainen [Sun, 5 Jun 2016 14:48:41 +0000 (17:48 +0300)]
global: More fixes to mismatched bool vs int handling
Timo Sirainen [Sun, 5 Jun 2016 12:37:06 +0000 (15:37 +0300)]
global: Fixed mismatched bool vs. int/pointer handling
I don't think these fix any actual bugs.
Timo Sirainen [Sun, 5 Jun 2016 13:51:12 +0000 (16:51 +0300)]
lib-mail: Added comment about invalid timezones in message_date_parse()
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".
Timo Sirainen [Sun, 5 Jun 2016 12:57:48 +0000 (15:57 +0300)]
lib-dcrypt: Fixed error handling in dcrypt_key_id_public()
Timo Sirainen [Sun, 5 Jun 2016 12:35:13 +0000 (15:35 +0300)]
lib-storage: Fixed error handling in list=children checking
Timo Sirainen [Sun, 5 Jun 2016 12:32:09 +0000 (15:32 +0300)]
fts-lucene: Fixed error handling when checking if settings had changed.
Timo Sirainen [Sun, 5 Jun 2016 12:31:20 +0000 (15:31 +0300)]
mailbox-alias plugin: Fixed error handling
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.
Timo Sirainen [Sun, 5 Jun 2016 12:23:45 +0000 (15:23 +0300)]
mbox: Fixed expunging first mail with CRLF linefeeds.
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.
Timo Sirainen [Sun, 5 Jun 2016 12:11:56 +0000 (15:11 +0300)]
auth: Fixed error handling in passdb/userdb dict config parsing
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.
Timo Sirainen [Sun, 5 Jun 2016 01:29:00 +0000 (04:29 +0300)]
lib-dcrypt: Fixed function return type.
Timo Sirainen [Sat, 4 Jun 2016 00:47:37 +0000 (03:47 +0300)]
lazy-expunge: Fixed crash on error handling
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.
Timo Sirainen [Fri, 3 Jun 2016 17:10:02 +0000 (20:10 +0300)]
lib-index: Fixed extension resizing
Broken by
8483af4ff .
Timo Sirainen [Fri, 3 Jun 2016 17:00:14 +0000 (20:00 +0300)]
lib-index: Added header-size asserts
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)
Timo Sirainen [Fri, 3 Jun 2016 16:31:09 +0000 (19:31 +0300)]
global: Use hash_table_update() instead of _insert() where necessary.
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.
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.
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.
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.