]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Timo Sirainen [Sun, 5 Nov 2017 20:27:41 +0000 (22:27 +0200)]
director: Include peak output buffer size in director connection log messages
Timo Sirainen [Sat, 4 Nov 2017 12:33:52 +0000 (14:33 +0200)]
cassandra: Include the used timestamp in logged queries
Timo Sirainen [Mon, 6 Nov 2017 09:00:06 +0000 (11:00 +0200)]
cassandra: Rename cassandra_sql_statement.pending_timestamp to just timestamp
Timo Sirainen [Mon, 6 Nov 2017 16:59:34 +0000 (18:59 +0200)]
lib-storage: When copying mails, copy also empty cache fields
This mainly means that it copies cache fields for nonexistent message
headers. Those are still important, because otherwise Dovecot doesn't know
whether they exist or not.
Timo Sirainen [Sun, 5 Nov 2017 23:30:13 +0000 (01:30 +0200)]
director: Don't block too long when sending users during director handshake
All the other work is blocked while the users are being sent.
Taizo Ito [Wed, 26 Jul 2017 09:34:59 +0000 (18:34 +0900)]
auth: Disabling SMTP authentication in vpopmail users with NO_SMTP flag
Timo Sirainen [Sun, 5 Nov 2017 19:36:55 +0000 (21:36 +0200)]
lib: str_parse/to_*int*() - minor optimization
Timo Sirainen [Sat, 4 Nov 2017 13:29:29 +0000 (15:29 +0200)]
director: Avoid str_printfa() in director_connection_send_users()
Optimizes the CPU usage.
Timo Sirainen [Sat, 4 Nov 2017 00:17:55 +0000 (02:17 +0200)]
director: Avoid str_printfa() in login_host_callback()
Optimizes the CPU usage.
Timo Sirainen [Sat, 4 Nov 2017 00:05:26 +0000 (02:05 +0200)]
director: Change request callback to take mail_host parameter
This allows accessing the IP address both as struct and as string without
any conversions.
Timo Sirainen [Fri, 3 Nov 2017 23:59:27 +0000 (01:59 +0200)]
director: Use *_host.ip_str to avoid net_ip2addr() calls
Timo Sirainen [Fri, 3 Nov 2017 23:51:25 +0000 (01:51 +0200)]
director: Add director_host.ip_str
This avoids having to use net_ip2addr() all the time to convert it into a
string.
Timo Sirainen [Fri, 3 Nov 2017 23:49:29 +0000 (01:49 +0200)]
director: Add mail_host.ip_str
This avoids having to use net_ip2addr() all the time to convert it into a
string.
Timo Sirainen [Fri, 3 Nov 2017 23:48:41 +0000 (01:48 +0200)]
director: Use t_strsplit_tabescaped_inplace() for director connection input
Timo Sirainen [Fri, 3 Nov 2017 23:43:41 +0000 (01:43 +0200)]
lib: net_addr2ip() - Optimize for parsing IPv4 addresses
Timo Sirainen [Fri, 3 Nov 2017 23:42:37 +0000 (01:42 +0200)]
lib: net_ip2addr() - Optimize by allocating destination memory immediately
It doesn't really matter if we allocate a few extra bytes.
Timo Sirainen [Fri, 3 Nov 2017 23:40:24 +0000 (01:40 +0200)]
lib: *_strsplit() - implement more efficient version for a single separator char
Timo Sirainen [Sun, 5 Nov 2017 19:30:30 +0000 (21:30 +0200)]
lib: test-strfuncs - Improve *_strsplit*() unit tests
Timo Sirainen [Fri, 3 Nov 2017 23:39:38 +0000 (01:39 +0200)]
lib: Implement t_strsplit_tabescaped_inplace()
This is a more efficient version of t_strsplit_tabescaped(), which modifies
the input string instead of duplicating it.
Timo Sirainen [Sun, 5 Nov 2017 19:14:41 +0000 (21:14 +0200)]
lib: test-strescape - Refactor the unit test to use an array of tests
Timo Sirainen [Fri, 3 Nov 2017 23:37:19 +0000 (01:37 +0200)]
lib: t_strsplit_tabescaped() - don't create unnecessary data stack mempool
unsafe_data_stack_pool is more efficient to use
Timo Sirainen [Fri, 3 Nov 2017 23:35:44 +0000 (01:35 +0200)]
lib: str_tabunescape() - optimize initial escape char lookup
strchr() is faster than looping ourself.
Timo Sirainen [Fri, 3 Nov 2017 23:34:02 +0000 (01:34 +0200)]
director: Don't recreate timeout on every user lookup
Recreate it only when the timeout should change.
Timo Sirainen [Sun, 5 Nov 2017 21:11:25 +0000 (23:11 +0200)]
director: Fix off-by-one when checking if user weakness is stuck
When the weakness was exactly at the second, the weakness wasn't detected
and the next expiration timeout was removed entirely. This shouldn't have
caused any bigger problems, because another user lookup on the following
second would have then detected the weakness, removed the user and restored
the next expiration timeout.
Timo Sirainen [Sun, 5 Nov 2017 15:49:52 +0000 (17:49 +0200)]
mbox: Add assert to make static analyzer happier
Timo Sirainen [Sun, 5 Nov 2017 15:46:03 +0000 (17:46 +0200)]
lib-http: Remove dead code
This code branch became dead after
22ee6e1e6193299034ab99f77a650290de2fd6ca
Aki Tuomi [Fri, 3 Nov 2017 15:28:57 +0000 (17:28 +0200)]
lib-ssl-iostream: Fix alt cert support
It was only partially implemented in
0577701d04beea222fc49a7318851ddcea3b99d3
Timo Sirainen [Wed, 1 Nov 2017 22:00:00 +0000 (00:00 +0200)]
lib: istream - Avoid panic in snapshot() with nonpersistent buffers
Timo Sirainen [Thu, 2 Nov 2017 20:57:00 +0000 (22:57 +0200)]
lib: istream - Don't leak snapshot memory if close() triggers a read
Also move the line_str freeing just before stream is freed. That didn't
cause any known memory leaks though.
Timo Sirainen [Thu, 2 Nov 2017 21:24:38 +0000 (23:24 +0200)]
lib: istream-jsonstr - Fix potential infinite loop if parent stream's max_buffer_size is tiny
Timo Sirainen [Thu, 2 Nov 2017 21:22:14 +0000 (23:22 +0200)]
global: i_stream_read_memarea() - Remove impossible ret==-2 checks
If the stream's buffer is empty, i_stream_read_memarea() would have already
assert-crashed at this point.
Timo Sirainen [Thu, 2 Nov 2017 21:01:20 +0000 (23:01 +0200)]
imap, pop3: Don't access login_set.*_socket_path after they're freed from data stack
Call master_login_init() before master_service_init_finish(), which frees
all the data stack done in initialization.
This didn't normally cause any visible problems, because data stack wasn't
currently being used in a way that the strings were invalidated. However,
it was causing failures if --enable-devel-checks was used.
Aki Tuomi [Thu, 2 Nov 2017 13:45:09 +0000 (15:45 +0200)]
config: Properly fix ssl-parameters.dat handling
It was done only partially right in
a70d867d1fe3584149811c65eb6213deb72be824
Timo Sirainen [Wed, 1 Nov 2017 19:44:54 +0000 (21:44 +0200)]
login-common: client_unref() - always set client pointer to NULL
This is the common coding practise elsewhere as well.
Timo Sirainen [Wed, 1 Nov 2017 19:44:23 +0000 (21:44 +0200)]
pop3-login: Cleanup - uncork output unconditionally before client_unref()
Timo Sirainen [Wed, 1 Nov 2017 19:41:18 +0000 (21:41 +0200)]
login-common: Remove unnecessary client_ref/unref from STARTTLS handling
There used to be code between them that could have destroyed the connection,
but that was removed long time ago.
Timo Sirainen [Tue, 31 Oct 2017 21:51:53 +0000 (23:51 +0200)]
doveadm: Send hostname without ":port" as TLS SNI name for outgoing SSL connections.
Aki Tuomi [Thu, 2 Nov 2017 10:00:42 +0000 (12:00 +0200)]
config: Do not run ssl_dh check always
Do it only when CONFIG_DUMP_FLAG_CHECK_SETTINGS is set. Fixes
"Warning: You can generate it with: dd if=ssl-parameters.dat bs=1 skip=88..."
Aki Tuomi [Mon, 3 Jul 2017 08:17:16 +0000 (11:17 +0300)]
dict-redis: Include last_reply in communications failure error
This way it's possible to determine what went wrong.
Timo Sirainen [Fri, 24 Jun 2016 09:09:31 +0000 (12:09 +0300)]
dict-redis: Added support for authentication.
Patch by David Zambonini
Timo Sirainen [Wed, 1 Nov 2017 23:34:11 +0000 (01:34 +0200)]
lib: i_stream_w_buffer_realloc() - avoid passing NULL to memcpy()
It happened only with size=0, so it shouldn't have mattered much.
Timo Sirainen [Wed, 1 Nov 2017 22:03:57 +0000 (00:03 +0200)]
imap-proxy: Don't discard the first pipelined command after LOGIN
Aki Tuomi [Wed, 1 Nov 2017 17:10:19 +0000 (19:10 +0200)]
lib-storage: imapc - Fix spelling mistakes
Original work by @jsoref
Aki Tuomi [Wed, 1 Nov 2017 17:10:07 +0000 (19:10 +0200)]
lib-fs: Fix spelling mistakes
Original work by @jsoref
Aki Tuomi [Wed, 1 Nov 2017 17:09:55 +0000 (19:09 +0200)]
test-quota: Fix spelling mistakes
Original work by @jsoref
Aki Tuomi [Wed, 1 Nov 2017 17:09:43 +0000 (19:09 +0200)]
lazy-expunge: Fix spelling mistakes
Original work by @jsoref
Aki Tuomi [Wed, 1 Nov 2017 17:09:28 +0000 (19:09 +0200)]
plugin-fts: Fix spelling mistakes
Original work by @jsoref
Aki Tuomi [Wed, 1 Nov 2017 17:09:15 +0000 (19:09 +0200)]
fts-squat: Fix spelling mistakes
Original work by @jsoref
Aki Tuomi [Wed, 1 Nov 2017 17:09:04 +0000 (19:09 +0200)]
imap: Fix spelling mistakes
Original work by @jsoref
Aki Tuomi [Wed, 1 Nov 2017 17:08:54 +0000 (19:08 +0200)]
director: Fix spelling mistakes
Original work by @jsoref
Aki Tuomi [Wed, 1 Nov 2017 17:08:40 +0000 (19:08 +0200)]
mech-apop: Fix spelling mistake
Original work by @jsoref
Aki Tuomi [Wed, 1 Nov 2017 17:08:30 +0000 (19:08 +0200)]
man: Fix spelling mistakes
Original work by @jsoref
Aki Tuomi [Wed, 1 Nov 2017 17:07:26 +0000 (19:07 +0200)]
global: Fix spelling mistakes in comments
Original work by @andreasschulze and @jsoref
Aki Tuomi [Wed, 1 Nov 2017 16:04:57 +0000 (18:04 +0200)]
fts-lucene: Do not clobber return value
Found by scanbuild
Timo Sirainen [Thu, 26 Oct 2017 10:56:25 +0000 (13:56 +0300)]
director: Show each director connection in doveadm DIRECTOR-LIST
Previously the host was shown only once, regardless of how many connections
it had. This especially helps when there are just two directors, but also
can be useful when showing incoming/outgoing connections that are still
in handshaking phase.
Timo Sirainen [Thu, 26 Oct 2017 11:10:51 +0000 (14:10 +0300)]
doveadm director ring status: Add more fields related to connection status
Timo Sirainen [Thu, 26 Oct 2017 11:18:50 +0000 (14:18 +0300)]
director: Track show long the last ring sync took.
Timo Sirainen [Thu, 26 Oct 2017 11:07:56 +0000 (14:07 +0300)]
director: Track connections' last ping time
Timo Sirainen [Thu, 26 Oct 2017 10:07:30 +0000 (13:07 +0300)]
director: Add director_connection_get_status()
Can be used to access connection-specific status information.
Timo Sirainen [Thu, 26 Oct 2017 10:02:32 +0000 (13:02 +0300)]
director: Fix updating director connection's last_output timestamp
It was previously updated only in ostream's flush callback, which was called
only when there were a lot of output. This only caused the "last output"
timestamp in disconnection log lines to be wrong.
Timo Sirainen [Thu, 26 Oct 2017 09:44:34 +0000 (12:44 +0300)]
doveadm director: Parse timestamp parameters with str_to_time()
Timo Sirainen [Wed, 25 Oct 2017 14:22:42 +0000 (17:22 +0300)]
director: Close director connection immediately when output buffer is full
Only the ostream was closed, which didn't actually cause the disconnection
until the other side closed the connection.
Timo Sirainen [Wed, 25 Oct 2017 14:18:03 +0000 (17:18 +0300)]
director: Add director_output_buffer_size setting
This allows configuring the max buffer size for outgoing connections.
Previously it was hardcoded to 10 MB, which wasn't necessarily enough for
very busy directors.
Timo Sirainen [Tue, 31 Oct 2017 21:37:44 +0000 (23:37 +0200)]
lib-ssl-iostream: Verify SSL server's hostname against cert if it's non-NULL
The hostname verification was skipped when handshake-callback wasn't used.
All of the existing code used the callback though, so this doesn't fix
any bugs.
Timo Sirainen [Tue, 31 Oct 2017 17:49:56 +0000 (19:49 +0200)]
lib-ssl-iostream: Fix checking cert validity when handshake callback isn't used
Timo Sirainen [Wed, 1 Nov 2017 10:58:46 +0000 (12:58 +0200)]
lib-ssl-iostream: Split host to connected_host and sni_host
Using the same variable for both was causing confusion.
Josef 'Jeff' Sipek [Fri, 22 Sep 2017 08:38:10 +0000 (11:38 +0300)]
global: start relying on [io]_stream_close(NULL) being a no-op
Cleanup performed with the following semantic patch (and a bit of
hand-editing):
@@
expression E;
@@
- if (E != NULL) {
- i_stream_close(E);
- }
+ i_stream_close(E);
@@
expression E;
@@
- if (E != NULL) {
- o_stream_close(E);
- }
+ o_stream_close(E);
Josef 'Jeff' Sipek [Fri, 22 Sep 2017 08:29:35 +0000 (11:29 +0300)]
lib: [io]_stream_close(NULL) should be no-ops
Timo Sirainen [Wed, 1 Nov 2017 12:40:51 +0000 (14:40 +0200)]
lib-index: Fix -Wstrict-bool warnings with --enable-devel-checks
Timo Sirainen [Fri, 27 Oct 2017 18:20:36 +0000 (21:20 +0300)]
global: Use i_stream_read_memarea() wherever possible
Timo Sirainen [Fri, 27 Oct 2017 18:32:10 +0000 (21:32 +0300)]
lib: i_stream_compress() - assert-crash if trying to compress shared memarea
The caller is always expected to check the refcount before calling this.
Timo Sirainen [Fri, 27 Oct 2017 18:22:04 +0000 (21:22 +0300)]
lib: i_stream_read() - Add buffer validity checks if DEBUG is enabled
Timo Sirainen [Fri, 27 Oct 2017 18:17:23 +0000 (21:17 +0300)]
lib: i_stream_read() - Use snapshots
This guarantees that data returned by i_stream_get_data() won't be freed
until the next i_stream_read() returns >0. This is mainly important,
because often the error handling for <=0 doesn't update the buffer
pointers correctly and it leads to complicated bugs where already freed
memory is attempted to be read (but never written).
Timo Sirainen [Fri, 27 Oct 2017 18:13:40 +0000 (21:13 +0300)]
lib: Use ISTREAM_CREATE_FLAG_NOOP_SNAPSHOT where useful
Timo Sirainen [Fri, 27 Oct 2017 18:13:20 +0000 (21:13 +0300)]
lib: Add ISTREAM_CREATE_FLAG_NOOP_SNAPSHOT flag
Timo Sirainen [Fri, 27 Oct 2017 18:08:26 +0000 (21:08 +0300)]
global: Add flags parameter to i_stream_create() and set it to 0
This just changes the API - the following changes add the new flag.
Timo Sirainen [Fri, 27 Oct 2017 18:28:51 +0000 (21:28 +0300)]
lib-ssl-iostream: Simplify istream-openssl
Partially reverts
739125f23e3312045e620014812fe2249a309cc4 . This is no
longer needed because of the io_set_pending() changes.
Timo Sirainen [Fri, 27 Oct 2017 17:49:07 +0000 (20:49 +0300)]
lib-compression: Use i_stream_try_alloc*()
Timo Sirainen [Fri, 27 Oct 2017 17:45:41 +0000 (20:45 +0300)]
lib: Add i_stream_try_alloc_avoid_compress()
Timo Sirainen [Fri, 27 Oct 2017 17:38:49 +0000 (20:38 +0300)]
lib-compression: istream-lz4 - Use i_stream_alloc()
Timo Sirainen [Thu, 26 Oct 2017 15:36:09 +0000 (18:36 +0300)]
lib-mail: istream-attachment-extractor - Don't modify buffer during failure
If i_stream_read() returns -1 because the attachment file couldn't be
created, don't add the trailing data to the main istream. It's not useful,
and the following extra checks will cause it to assert-crash.
Timo Sirainen [Fri, 8 Sep 2017 11:59:37 +0000 (14:59 +0300)]
lib: istream-mmap - Use memarea API
Timo Sirainen [Thu, 26 Oct 2017 14:12:04 +0000 (17:12 +0300)]
lib: istream-seekable - Implement snapshot()
Timo Sirainen [Thu, 26 Oct 2017 13:37:49 +0000 (16:37 +0300)]
lib: istream-seekable - Change to use i_stream_*alloc()
This simplifies implementing the snapshotting.
Timo Sirainen [Thu, 26 Oct 2017 14:10:57 +0000 (17:10 +0300)]
lib: istream-seekable - Fix fd leak if initial temp file couldn't be read back
That should normally never happen.
Timo Sirainen [Thu, 26 Oct 2017 12:17:04 +0000 (15:17 +0300)]
lib: Add istream.snapshot() method for referencing the current memarea
It will be used by following commits.
Timo Sirainen [Thu, 26 Oct 2017 12:22:26 +0000 (15:22 +0300)]
lib-test: istream-test - use memarea API
Timo Sirainen [Fri, 8 Sep 2017 11:25:41 +0000 (14:25 +0300)]
lib: Use memarea for default istream memory allocations.
Timo Sirainen [Thu, 26 Oct 2017 13:25:51 +0000 (16:25 +0300)]
global: Use i_stream_free_buffer() instead of freeing w_buffer directly
Timo Sirainen [Thu, 26 Oct 2017 13:24:50 +0000 (16:24 +0300)]
lib: Add i_stream_free_buffer() to free i_stream_*alloc()ed memory
Timo Sirainen [Fri, 8 Sep 2017 10:33:27 +0000 (13:33 +0300)]
lib: Add memarea API
This can be used to create reference counted memory areas where a callback
is called once the refcount drops to zero.
Timo Sirainen [Thu, 26 Oct 2017 11:56:26 +0000 (14:56 +0300)]
lib: istream-chain/concat cleanup - return early if no new data is read
There's no need to change the buffer or other variables. This simplifies
the following changes.
This cleanup is identical for istream-concat and istream-chain.
Timo Sirainen [Fri, 20 Jan 2017 15:34:50 +0000 (17:34 +0200)]
lib-mail: istream-header-filter - Fix header read() when max_buffer_size=0
If the buffer was too small to read anything into it, read_header() returned
-2, but then it continued reading the header as if it was the body already.
This should instead be an error situation - max buffer size just shouldn't be
0 at this point.
This was originally changed in
a72355fef49c512c13b7d8c3e07f4f76ebd57a10 as
some kind of a workaround, but since then we implemented support for reading
a mixed header/body in
c2afdbf963d0564a542d71ca784deb0c2f7776d0 .
Timo Sirainen [Mon, 30 Oct 2017 11:58:54 +0000 (13:58 +0200)]
imap: Set max buffer size for CATENATE istream-chain
This fixes a crash with mbox when nonexistent CATENATE URL is attempted to
be used. The istream doesn't get any size, and istream-header-filter panics
due to having reached the maximum buffer size (0), even though the stream is
empty and there's nothing to read.
Timo Sirainen [Fri, 20 Jan 2017 14:28:53 +0000 (16:28 +0200)]
lib: Add assert to io_stream_ref()
This makes an assert-crash likely to happen if iostream was already freed.
Timo Sirainen [Wed, 1 Nov 2017 11:01:03 +0000 (13:01 +0200)]
doveadm: Ignore errors also on outgoing SSL connection ostreams
Setting the errors as ignored on the plain ostream was done too late, so ssl
ostream didn't inherit the error handling flag.
Timo Sirainen [Sun, 29 Oct 2017 22:30:13 +0000 (00:30 +0200)]
lib: iostream-proxy - Specify what failed in completion callback parameter
Timo Sirainen [Sun, 29 Oct 2017 22:16:35 +0000 (00:16 +0200)]
lib: iostream-pump - Specify what failed in completion callback parameter
This makes it easier for the caller to find out whether the failure was due
to istream or ostream.
Timo Sirainen [Sun, 29 Oct 2017 21:53:16 +0000 (23:53 +0200)]
lib: iostream-proxy - Add iostream_proxy_is_waiting_output()
Timo Sirainen [Sun, 29 Oct 2017 21:53:00 +0000 (23:53 +0200)]
lib: iostream-pump - Add iostream_pump_is_waiting_output()