]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Aki Tuomi [Mon, 7 Jan 2019 18:01:21 +0000 (20:01 +0200)]
push-notification-driver-lua: Add keywords and flags to MessageAppend event
Aki Tuomi [Mon, 7 Jan 2019 17:49:20 +0000 (19:49 +0200)]
push-notification-driver-lua: Add keywords and flags to MessageNew event
Aki Tuomi [Mon, 7 Jan 2019 17:48:11 +0000 (19:48 +0200)]
push-notification-driver-lua: Rename keywords_set and keywors_clear to keywords
This is more concince since these are the keywords being operated on.
Aki Tuomi [Mon, 7 Jan 2019 17:47:14 +0000 (19:47 +0200)]
push-notification-driver-lua: Push keywords in helper function
Aki Tuomi [Mon, 7 Jan 2019 17:42:39 +0000 (19:42 +0200)]
push-notification-driver-lua: Push mail flags as array of flags
Aki Tuomi [Mon, 7 Jan 2019 18:00:07 +0000 (20:00 +0200)]
push-notification: Add flags and keywords to MessageAppend event
Aki Tuomi [Mon, 7 Jan 2019 17:33:28 +0000 (19:33 +0200)]
push-notification: Add flags and keywords to MessageNew event
Aki Tuomi [Fri, 11 Jan 2019 07:55:25 +0000 (09:55 +0200)]
m4: Remove unneeded else case from want_lz4
This causes extraneous code in configure causing it to fail
Aki Tuomi [Fri, 11 Jan 2019 07:37:51 +0000 (09:37 +0200)]
m4: Replace some if tests with AS_IF
Fixes configure on older systems
Aki Tuomi [Fri, 11 Jan 2019 07:37:42 +0000 (09:37 +0200)]
m4: Remove stray comma from want_lua.m4
Aki Tuomi [Fri, 11 Jan 2019 07:37:02 +0000 (09:37 +0200)]
m4: Remove stray AC_ARG_WITH from arc4random.m4
Aki Tuomi [Fri, 28 Dec 2018 08:36:49 +0000 (10:36 +0200)]
lib: test-event-log - Add test for log level
Aki Tuomi [Fri, 28 Dec 2018 08:17:10 +0000 (10:17 +0200)]
lib: event - Check log level for info, warning and error
Aki Tuomi [Fri, 28 Dec 2018 17:06:12 +0000 (19:06 +0200)]
lib: event - Add event_want_level and event_want_log_level
Aki Tuomi [Tue, 11 Dec 2018 13:46:05 +0000 (15:46 +0200)]
lib: event - Add min_log_level
Determines minimum severity to log for this event
Aki Tuomi [Thu, 10 Jan 2019 10:11:24 +0000 (12:11 +0200)]
global: Really change array_idx(A, 0) to array_first(A)
Was only partially done in
27b2b51943e0f9440483abeae4c9f5805b236db9
Aki Tuomi [Fri, 4 Jan 2019 13:16:44 +0000 (15:16 +0200)]
global: Use array_last instead of array_idx
@@
expression E;
@@
-array_idx(E, array_count(E) - 1)
+array_last(E)
@@
expression E;
@@
-array_idx_modifiable(E, array_count(E) - 1)
+array_last_modifiable(E)
Aki Tuomi [Fri, 4 Jan 2019 12:01:53 +0000 (14:01 +0200)]
global: Use array_pop_back
@@
expression A;
@@
-array_delete(A, array_count(A)-1, 1)
+array_pop_back(A)
And manually fixing the few missed ones
Aki Tuomi [Fri, 4 Jan 2019 11:59:36 +0000 (13:59 +0200)]
global: Use array_pop_front
@@
expression A;
@@
-array_delete(A, 0, 1)
+array_pop_front(A)
Aki Tuomi [Fri, 4 Jan 2019 11:58:46 +0000 (13:58 +0200)]
global: Use array_push_front
@@
expression A,I;
@@
-array_insert(A, 0, I, 1)
+array_push_front(A, I)
Aki Tuomi [Fri, 4 Jan 2019 11:58:08 +0000 (13:58 +0200)]
global: Use array_push_back
@@
expression A,I;
@@
-array_append(A, I, 1)
+array_push_back(A, I)
Aki Tuomi [Fri, 4 Jan 2019 11:56:10 +0000 (13:56 +0200)]
global: Use array_first instead of array_idx
@@
expression A;
@@
-array_idx(A, 0)
+array_first(A)
@@
expression A;
@@
-array_idx_modifiable(A, 0)
+array_first_modifiable(A)
Aki Tuomi [Wed, 2 Jan 2019 11:29:32 +0000 (13:29 +0200)]
lib: array - Add helpers for dealing with some common array usecases
Adds macros for accessing first and last item, pushing and popping
and also adding/removing first item.
Note that pop and shift do not return item.
Aki Tuomi [Fri, 4 Jan 2019 14:01:01 +0000 (16:01 +0200)]
lib: array - Fix asserts to work correctly on 32-bit systems
Stephan Bosch [Sun, 6 Jan 2019 15:22:02 +0000 (16:22 +0100)]
lib-smtp: client: Fix infinite loop in XCLIENT command interaction with server.
The state regarding the fact that the XCLIENT command was already sent was not
recorded. So, after the HELO handshake, the client would send a new XCLIENT
command.
Stephan Bosch [Sun, 6 Jan 2019 15:21:29 +0000 (16:21 +0100)]
lib-smtp: client: command: Add debug message showing what commands are being sent to the server.
Stephan Bosch [Thu, 27 Dec 2018 13:13:15 +0000 (14:13 +0100)]
lib-smtp: client: Move connection to TRANSACTION state immediately when a transaction is started.
Before, it waited until the actual start handler was called from timeout, but
that causes a race condition with mtp_client_connection_abort_transaction(),
which in turn causes an assert panic.
Panic was:
Panic: file smtp-client-connection.c: line 2153 (smtp_client_connection_abort_transaction): assertion failed: (conn->state != SMTP_CLIENT_CONNECTION_STATE_READY)
Stephan Bosch [Sun, 11 Nov 2018 19:41:18 +0000 (20:41 +0100)]
lib-smtp: client: Properly reset connection state upon reconnect.
Stephan Bosch [Sun, 11 Nov 2018 19:32:09 +0000 (20:32 +0100)]
lib-smtp: client: connection: Prevent timeout leak for transaction start.
Perform timeout management in a single place. Also, always start the next
transaction only through a timeout.
Sergey Kitov [Wed, 12 Dec 2018 14:21:29 +0000 (16:21 +0200)]
log: Use failure context log_prefix when available as prefix for error.
Current behaviour hides log prefix when seeing errors via doveadm log
errors, this commit will fix it.
Martti Rannanjärvi [Thu, 13 Dec 2018 09:30:06 +0000 (11:30 +0200)]
auth: Fix auth-policy log-only warning whitespace
Aki Tuomi [Tue, 4 Dec 2018 11:42:44 +0000 (13:42 +0200)]
auth: Add auth_policy_log_only setting
When auth_policy_log_only=yes, only log what would have been done.
Aki Tuomi [Tue, 4 Dec 2018 11:42:04 +0000 (13:42 +0200)]
auth: Treat all negative responses from policy servers as drops
Otherwise negative responses that are not -1 are considered
as success, which is wrong.
Aki Tuomi [Tue, 4 Dec 2018 11:41:20 +0000 (13:41 +0200)]
auth: Log policy decisions clearly
Stephan Bosch [Sat, 10 Nov 2018 14:26:51 +0000 (15:26 +0100)]
lmtp: Load all globally-defined mail_plugins at client connect.
Before, this was not performed until after a user lookup was performed for a
recipient. That is not acceptable when plugins need to modify the LMTP protocol
itself.
Stephan Bosch [Sat, 10 Nov 2018 12:58:37 +0000 (13:58 +0100)]
lmtp: Install header files.
This allows creating external lmtp plugins.
Stephan Bosch [Sat, 10 Nov 2018 12:48:56 +0000 (13:48 +0100)]
lmtp: Rename commands.h to lmtp-commands.h.
Stephan Bosch [Sat, 10 Nov 2018 12:52:28 +0000 (13:52 +0100)]
lmtp: Rename client.h to lmtp-client.h.
Stephan Bosch [Sat, 10 Nov 2018 12:41:27 +0000 (13:41 +0100)]
lmtp: Make include directory available to external plugins.
Stephan Bosch [Sat, 3 Nov 2018 12:34:20 +0000 (13:34 +0100)]
lmtp: local: Create a client vfunc for local delivery.
This way,for example, the struct mail_deliver_context passed to mail_deliver()
can be adjusted by plugins.
Stephan Bosch [Sat, 3 Nov 2018 10:18:46 +0000 (11:18 +0100)]
lib-smtp: server: Add support for adding (non-standard) extra capabilities.
Stephan Bosch [Sat, 10 Nov 2018 12:27:52 +0000 (13:27 +0100)]
lib-smtp: syntax: Add new smtp_ehlo_params_are_valid().
This new version checks whether the parameters contained in the provided string
array are all valid EHLO parameters.
Stephan Bosch [Sat, 10 Nov 2018 12:22:52 +0000 (13:22 +0100)]
lib-smtp: syntax: Remame smtp_ehlo_params_are_valid() to smtp_ehlo_params_str_is_valid().
Moves it out of the way for a function that is better suited for this name;
i.e., it operates on an array of parameters.
Stephan Bosch [Sat, 3 Nov 2018 10:18:10 +0000 (11:18 +0100)]
lib-smtp: server: Add smtp_server_reply_ehlo_add_params().
Stephan Bosch [Sat, 3 Nov 2018 08:55:41 +0000 (09:55 +0100)]
lib-smtp: server: EHLO command: Move composition of individual reply lines to separate functions.
Stephan Bosch [Sat, 3 Nov 2018 08:27:48 +0000 (09:27 +0100)]
lib-smtp: server: EHLO command: Move composition of default EHLO reply to a separate public function.
Stephan Bosch [Sat, 3 Nov 2018 00:00:13 +0000 (01:00 +0100)]
lmtp: Add support for module contexts to recipient.
Stephan Bosch [Fri, 2 Nov 2018 23:54:50 +0000 (00:54 +0100)]
lmtp: Add support for module contexts to client.
Stephan Bosch [Fri, 2 Nov 2018 23:49:32 +0000 (00:49 +0100)]
lmtp: Implement client vfuncs for transaction start and free.
Stephan Bosch [Fri, 2 Nov 2018 23:33:31 +0000 (00:33 +0100)]
lmtp: Implement client vfuncs for SMTP transaction commands.
Stephan Bosch [Sat, 3 Nov 2018 13:26:24 +0000 (14:26 +0100)]
lmtp: RCPT command: Allocate lmtp_recipient object immediately.
Stephan Bosch [Fri, 2 Nov 2018 23:41:03 +0000 (00:41 +0100)]
lmtp: DATA command: Add data size to client state.
Stephan Bosch [Fri, 2 Nov 2018 23:37:52 +0000 (00:37 +0100)]
lmtp: DATA command: Put the data input stream in the client state rather than the transaction context.
Stephan Bosch [Fri, 2 Nov 2018 22:48:48 +0000 (23:48 +0100)]
lmtp: Implement basic client vfuncs.
Currently, only client_destroy can be overriden.
Stephan Bosch [Sat, 3 Nov 2018 11:56:30 +0000 (12:56 +0100)]
lmtp: Add hook for client_create().
Stephan Bosch [Sat, 3 Nov 2018 11:47:00 +0000 (12:47 +0100)]
lmtp: Remove obsolete declaration from lmtp-common.h.
Stephan Bosch [Sat, 3 Nov 2018 11:45:19 +0000 (12:45 +0100)]
lmtp: Make lmtp-common.h the primary include.
This better matches other services.
Stephan Bosch [Sat, 3 Nov 2018 11:34:02 +0000 (12:34 +0100)]
lmtp: Rename main.h to lmtp-common.h.
This better matches other services.
Stephan Bosch [Sat, 3 Nov 2018 11:26:51 +0000 (12:26 +0100)]
lmtp: Rename lmtp-common to lmtp-recipient.
Timo Sirainen [Tue, 11 Dec 2018 18:28:33 +0000 (20:28 +0200)]
lib-storage: Fix mail_get_headers() API comment
Timo Sirainen [Tue, 11 Dec 2018 13:26:01 +0000 (15:26 +0200)]
master: Before child process closes log fds, switch logging to stderr
Otherwise any logging could cause the process to fail with FATAL_LOGWRITE
without writing the error message anywhere. This is especially unwanted
when using --enable-devel-checks and logging a debug message about growing
data stack.
Stephan Bosch [Fri, 7 Dec 2018 21:38:19 +0000 (22:38 +0100)]
lib-http: client: Fix panic occurring at connection failure.
In http_client_peer_connection_failed_pool(), all linked queues are notified
about the connection failure through http_client_queue_connection_failure().
That function can internally link and unlink peers to the queue, including the
calling one. This means that the peer->queues array can be modified while it is
iterated in the array_foreach() loop. The problem is fixed by making a local
copy of the peer->queues array.
Stephan Bosch [Thu, 25 Oct 2018 08:31:07 +0000 (10:31 +0200)]
lib-http: client: Fix handling of servers with several alternative IP addresses.
This also addresses an assert failure occurring with parallel clients:
Panic: file http-client-queue.c: line 518 (http_client_queue_connection_failure): assertion failed: (queue->cur_peer == peer)
Timo Sirainen [Tue, 4 Dec 2018 09:19:23 +0000 (11:19 +0200)]
lib-storage: Fix error handling if mailbox list index refresh fails
The caller expects the error to be in mail_storage, not mailbox_list.
Aki Tuomi [Tue, 4 Dec 2018 12:40:04 +0000 (14:40 +0200)]
driver-mysql: Avoid double-closing MySQL connection
Fixes double-free
Timo Sirainen [Mon, 3 Dec 2018 13:43:06 +0000 (15:43 +0200)]
maildir: Don't crash with zlib plugin when saving is aborted
The ostream can be finished even if the saving had already failed. It gets
deleted anyway.
Fixes:
Panic: file ostream-zlib.c: line 37 (o_stream_zlib_close): assertion failed: (zstream->ostream.finished || zstream->ostream.ostream.stream_errno != 0 || zstream->ostream.error_handling_disabled)
Stephan Bosch [Mon, 3 Dec 2018 17:45:43 +0000 (18:45 +0100)]
lib-smtp: client: Make sending the XCLIENT command(s) always implicit and do it only once.
For most servers, XCLIENT changes the ip:port identity of the client, causing it
to lose privileges to send more XCLIENT commands. For long XCLIENT commands
split in a series of XCLIENT commands, the ip:port parameters were sent last
already, so that did not cause problems even before this change. However, the
old code assumed it could update XCLIENT fields later on, which is often not
possible.
Stephan Bosch [Mon, 3 Dec 2018 17:45:43 +0000 (18:45 +0100)]
submission: relay backend: Don't bother updating the protocol in proxy data.
Old SMTP clients cannot use the submission service, since these cannot perform
the required authentication.
Stephan Bosch [Mon, 3 Dec 2018 17:45:42 +0000 (18:45 +0100)]
submission: Move client_create_backend_default() after smtp_server_connection_login() in client_create().
This way, the created default backend can use the HELO data provided to smtp_server_connection_login().
Stephan Bosch [Mon, 3 Dec 2018 17:45:42 +0000 (18:45 +0100)]
lib-smtp: client: Allow deferring sending the XCLIENT command until authentication or first mail transaction.
This allows updating the proxy data until the XCLIENT command actually needs to
be sent. For submission, this means that later EHLO domain changes can still be
accounted for. This change makes the simplifications in subsequent changes
easier.
Stephan Bosch [Mon, 3 Dec 2018 17:45:41 +0000 (18:45 +0100)]
lib-smtp: client: Merge smtp_client_connection_init_xclient() into smtp_client_connection_authenticate().
Stephan Bosch [Mon, 3 Dec 2018 17:45:40 +0000 (18:45 +0100)]
lib-smtp: client: Move smtp_client_connection_send_xclient() before smtp_client_connection_authenticate().
Keeps ordering of functions logical for next changes.
Stephan Bosch [Mon, 3 Dec 2018 17:45:40 +0000 (18:45 +0100)]
submission: relay backend: Provide data for the HELO and PROTO XCLIENT fields to the relay connection.
Stephan Bosch [Mon, 3 Dec 2018 17:45:39 +0000 (18:45 +0100)]
lib-smtp: server: Use the HELO domain provided to smtp_server_connection_login() immediately.
Before, it was only used when no new HELO/EHLO command was issued before MAIL.
Stephan Bosch [Mon, 3 Dec 2018 17:45:39 +0000 (18:45 +0100)]
lib-smtp: client: Remove proxy_data parameter from smtp_client_connection_send_xclient().
Use smtp_client_connection_update_proxy_data() to change fields in the proxy
data recorded in the client.
Stephan Bosch [Mon, 3 Dec 2018 17:45:38 +0000 (18:45 +0100)]
lib-smtp: client: Add smtp_client_connection_update_proxy_data().
Allows updating the proxy data after creation of the connection.
Stephan Bosch [Mon, 3 Dec 2018 17:45:38 +0000 (18:45 +0100)]
lib-smtp: client: Make smtp_client_connection_send_xclient() return void.
Stephan Bosch [Mon, 3 Dec 2018 17:45:37 +0000 (18:45 +0100)]
lib-smtp: client: Copy proxy data from settings using the new smtp_proxy_data_merge() functioṅ.
Stephan Bosch [Mon, 3 Dec 2018 17:45:36 +0000 (18:45 +0100)]
lib-smtp: common: Add smtp_proxy_data_merge().
Stephan Bosch [Mon, 3 Dec 2018 17:45:35 +0000 (18:45 +0100)]
lib-smtp: client: Drop smtp_client_command_mail_submit_after().
It is not used.
Stephan Bosch [Mon, 3 Dec 2018 17:45:24 +0000 (18:45 +0100)]
lib-smtp: client: connection: Fix copying of PROTO XCLIENT field in proxy data.
Stephan Bosch [Mon, 3 Dec 2018 17:45:17 +0000 (18:45 +0100)]
lib-smtp: syntax: Fix smtp_ehlo_line_parse() to also record the last parameter.
Timo Sirainen [Mon, 3 Dec 2018 13:59:13 +0000 (15:59 +0200)]
login-proxy: Fix potential crash for delayed disconnects
This happens only with login_proxy_max_disconnect_delay.
Fixes:
Panic: file ioloop.c: line 86 (io_add): assertion failed: (fd >= 0)
Stephan Bosch [Mon, 3 Dec 2018 23:16:47 +0000 (00:16 +0100)]
lib-smtp: client: Prevent sending an empty XCLIENT command when the first parameter is long.
Aki Tuomi [Thu, 29 Nov 2018 11:12:28 +0000 (13:12 +0200)]
lib: event - Add event_set_log_prefix_callback
Fetch prefix using a callback.
Timo Sirainen [Thu, 29 Nov 2018 14:28:23 +0000 (16:28 +0200)]
lib: Fix failure_context.log_prefix_type_pos handling
The log type string was inserted into wrong location if there were multiple
log prefixes.
Timo Sirainen [Wed, 28 Nov 2018 12:13:54 +0000 (14:13 +0200)]
lib-storage: Remove MAILBOX_FEATURE_QRESYNC
This is an imap-specific feature, which doesn't need to be visible in
the lib-storage layer.
Timo Sirainen [Wed, 28 Nov 2018 12:12:57 +0000 (14:12 +0200)]
imap: Add support for ENABLE extensions
Based on patch by Aki Tuomi
Timo Sirainen [Wed, 28 Nov 2018 12:02:44 +0000 (14:02 +0200)]
imap: Change state import/export to use full feature string names
Single letter IDs wouldn't allow extensions.
Timo Sirainen [Thu, 29 Nov 2018 08:01:36 +0000 (10:01 +0200)]
imap: Add client_enabled_features()
This simplifies the following commits.
Timo Sirainen [Wed, 28 Nov 2018 11:19:02 +0000 (13:19 +0200)]
imap: Cleanup - Change client_enable() to return void
Nothing cares about its return value. With the current features it's
not even possible to fail. Possibly mailbox_enable() should be also
changed to return void in the future.
Timo Sirainen [Wed, 28 Nov 2018 11:17:39 +0000 (13:17 +0200)]
imap: Add and use imap_feature_lookup()
This simplifies the following commits.
Timo Sirainen [Wed, 28 Nov 2018 10:50:51 +0000 (12:50 +0200)]
imap: Add and use client_enabled_mailbox_features()
This simplifies the following commits.
Timo Sirainen [Wed, 28 Nov 2018 10:48:47 +0000 (12:48 +0200)]
imap: Cleanup - don't avoid calling mailbox_enable(box, 0)
This simplifies the following changes. mailbox_enable() is an efficient
function and it doesn't mind being called with features=0 parameter.
Timo Sirainen [Wed, 28 Nov 2018 10:44:48 +0000 (12:44 +0200)]
imap: Add and use client_has_enabled() wrapper
This simplifies the following commits.
Timo Sirainen [Wed, 28 Nov 2018 10:42:55 +0000 (12:42 +0200)]
imap: client_enable() API change - enable features one at a time
This simplifies the following commits.
Timo Sirainen [Wed, 28 Nov 2018 10:26:33 +0000 (12:26 +0200)]
imap: Access enabled features via new imap_client_feature_* variables
This simplifies the following commits.
Aki Tuomi [Thu, 29 Nov 2018 08:19:38 +0000 (10:19 +0200)]
m4: dovecot.m4 - Bump serial
Aki Tuomi [Mon, 26 Nov 2018 10:45:52 +0000 (12:45 +0200)]
m4: dovecot.m4 - Improve CC_CLANG
Aki Tuomi [Mon, 26 Nov 2018 10:38:25 +0000 (12:38 +0200)]
m4: dovecot.m4 - Call CC_CLANG before DC_DOVECOT_CFLAGS
So we know if we are using clang compiler