]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Stephan Bosch [Sat, 9 Feb 2019 13:30:53 +0000 (14:30 +0100)]
lib-smtp: smtp-client-transaction - Free the mail object in smtp_client_transaction_mail_fail_reply().
Stephan Bosch [Sat, 9 Feb 2019 13:26:48 +0000 (14:26 +0100)]
lib-smtp: smtp-client-transaction - Handle MAIL failure callback in a separate _mail function.
Stephan Bosch [Sat, 9 Feb 2019 13:18:02 +0000 (14:18 +0100)]
lib-smtp: smtp-client-transaction - Handle MAIL reply in a separate _mail function.
Stephan Bosch [Wed, 6 Feb 2019 22:47:31 +0000 (23:47 +0100)]
lib-smtp: smtp-params - Add support for adding RCPT parameters to an event.
Stephan Bosch [Wed, 6 Feb 2019 22:31:25 +0000 (23:31 +0100)]
lib-smtp: smtp-params - Add support for adding MAIL parameters to an event.
Stephan Bosch [Mon, 4 Feb 2019 00:26:44 +0000 (01:26 +0100)]
lib-smtp: smtp-client-command - Emit named events.
Stephan Bosch [Mon, 4 Feb 2019 00:31:40 +0000 (01:31 +0100)]
lib-smtp: smtp-client-command - Create local variable for "was_sent" command status.
The condition is amended with (state < SMTP_CLIENT_COMMAND_STATE_FINISHED),
because that part is now checked after the intiialization of this variable
(causing the function to exit). It is important that the content of this
variable makes sense immediately (for future changes), rather than only after
the if statement that checks the added condition.
Stephan Bosch [Mon, 4 Feb 2019 00:29:08 +0000 (01:29 +0100)]
lib-smtp: smtp-client-command - Rename "waslocked" to "was_locked" in smtp_client_command_abort().
Stephan Bosch [Mon, 4 Feb 2019 00:25:59 +0000 (01:25 +0100)]
lib-smtp: smtp-reply - Add smtp_reply_add_to_event().
This sets standard reply fields in the provided pass-through event.
Stephan Bosch [Fri, 30 Nov 2018 01:05:13 +0000 (02:05 +0100)]
lib-smtp: smtp-client-connection - Add peer fields to the connection events.
Stephan Bosch [Thu, 29 Nov 2018 22:44:23 +0000 (23:44 +0100)]
lib-smtp: smtp-client - Replace smtp_*_debug() with e_debug().
Stephan Bosch [Mon, 24 Dec 2018 00:23:57 +0000 (01:23 +0100)]
lib-smtp: smtp-client - Replace smtp_*_warning() with e_warning().
Stephan Bosch [Mon, 24 Dec 2018 00:06:11 +0000 (01:06 +0100)]
lib-smtp: smtp-client - Replace smtp_*_error() with e_error().
Stephan Bosch [Sun, 23 Dec 2018 23:52:54 +0000 (00:52 +0100)]
lib-smtp: smtp-client - Replace i_error() with e_error().
Stephan Bosch [Thu, 29 Nov 2018 22:08:48 +0000 (23:08 +0100)]
lib-smtp: smtp-client - Remove redundant debug logging checks.
Stephan Bosch [Thu, 29 Nov 2018 21:55:08 +0000 (22:55 +0100)]
lib-smtp: smtp-client - Add support for event API.
Stephan Bosch [Fri, 30 Nov 2018 01:25:36 +0000 (02:25 +0100)]
lib-smtp: smtp-client-command - Split command name extraction from label construction.
Stephan Bosch [Sun, 3 Feb 2019 23:53:36 +0000 (00:53 +0100)]
lib-smtp: smtp-reply - Add smtp_reply_get_message().
Returns only the message of the reply without statuses as a single line.
Aki Tuomi [Wed, 22 May 2019 06:12:08 +0000 (09:12 +0300)]
lib: test-event-flatten - Fix initializators for value
Older gcc complains about using anonymous members directly,
so instead use nested braces. This fixes the issue.
Continues fix in
ae3c9db544c40367cded872a5f46dbd6abc8cd78
Martti Rannanjärvi [Tue, 21 May 2019 10:16:52 +0000 (13:16 +0300)]
lib: Add initializers to test-event-flatten
This is to fix a compiler warning.
Timo Sirainen [Mon, 13 May 2019 13:03:27 +0000 (16:03 +0300)]
lib: i_zero*() - Update comment, especially about arrays
Timo Sirainen [Mon, 13 May 2019 12:57:26 +0000 (15:57 +0300)]
lib: i_zero*() - Remove extra "+"
It was ignored by compilers though.
Stephan Bosch [Fri, 4 Jan 2019 12:57:36 +0000 (13:57 +0100)]
imap: client: Add init() client vfunc.
This is called when client creation is finished completely, including namespace
initialization. The normal create hook is executed before namespace
initialization, which is a problem when a plugin needs to access the mail
storage immediately.
Stephan Bosch [Sat, 5 Jan 2019 18:43:49 +0000 (19:43 +0100)]
imap: client: Rearrange and document the client vfuncs.
Stephan Bosch [Fri, 28 Dec 2018 18:16:26 +0000 (19:16 +0100)]
submssion: DATA command: Seek data stream to the beginning before executing backends.
Stephan Bosch [Fri, 28 Dec 2018 18:13:03 +0000 (19:13 +0100)]
submission: DATA command: Provide a default name for the data stream.
Josef 'Jeff' Sipek [Thu, 4 Apr 2019 11:25:45 +0000 (14:25 +0300)]
stats: event export - Add tabescaped plain text format support
This commit adds support for format=tab-text.
Since we don't care to select a native timestamp data type, one must specify
exactly one time-* format_args token.
Josef 'Jeff' Sipek [Thu, 4 Apr 2019 11:24:50 +0000 (14:24 +0300)]
stats: event export - Add http-post transport support
This commit adds support for transport=http-post.
The value of transport_args is used as the HTTP POST URL.
Josef 'Jeff' Sipek [Thu, 4 Apr 2019 11:24:24 +0000 (14:24 +0300)]
stats: event export - Add log transport support
This commit adds support for transport=log.
The log transport ignores transport_args.
Josef 'Jeff' Sipek [Thu, 4 Apr 2019 11:23:41 +0000 (14:23 +0300)]
stats: event export - Add json format support
This commit adds support for format=json.
Since JSON doesn't have a native timestamp data type, one must specify
exactly one time-* format_args token.
Josef 'Jeff' Sipek [Fri, 19 Apr 2019 13:48:26 +0000 (09:48 -0400)]
stats: event export - Implement core functionality
The core event exporter feature. It extends the metric { } config blocks
and adds new event_exporter { } blocks.
event_exporter EXNAME {
format = FMT # required, see below
format_args = FMTARGS # optional, see below
transport = TRANSPORT # required, see below
transport_args = TRANSPORTARGS # optional, see below
}
metric METNAME {
... normal metric fields ...
exporter = EXNAME # required to make export happen
exporter_include = INCS # optional, see below
}
FMT is a string identifying which format to serialize the event into. As of
this commit, the only valid value is "none" (always the empty string).
FMTARGS is a set of tokens that tweak how certain data types are encoded. If
not specified, the format's default is used ("none" always emits empty strings
so it doesn't care what this is set to, future formats will make use of this
setting). Currently the only possible tokens are: "time-rfc3339" and
"time-unix" - as their names imply, they format all timestamps as either
RFC3339 or Unix-style seconds since 1970-01-01 00:00:00 UTC.
TRANSPORT is a string identifying how to transport the serialized event. As
of this commit, the only valid value is "drop" which simply drops the event.
TRANSPORTARGS is a string used by the transport to tweak its behavior. The
drop transport ignores the args.
INCS is a string made up of tokens ("name", "hostname", "timestamps",
"categories", and "fields") which control what parts of an event are
exported. It can be set to any set of those (including empty set) and the
order doesn't matter. It defaults to all 5 tokens.
Josef 'Jeff' Sipek [Mon, 1 Apr 2019 12:52:04 +0000 (15:52 +0300)]
lib-master: Use event_minimize() to simplify the event before sending to stats
Josef 'Jeff' Sipek [Mon, 1 Apr 2019 10:23:41 +0000 (13:23 +0300)]
lib: Add event_minimize()
At times, we want to simplify the structure of events before sending them to
the stats process thereby minimizing the amount of data transfered and the
amount of work the stats process has to do. This simplification before
sending allows us to incur the CPU penalty in the (many) sending processes
instead of in the (sole & single-threaded) stats process.
Unlike the code in lib-master, this implementation flattens part of the
parent chain backwards so that parents' fields are properly overridden by
their children. It exists in lib because it shares code with the recently
added event_flatten().
Josef 'Jeff' Sipek [Thu, 11 Apr 2019 21:31:34 +0000 (17:31 -0400)]
lib-master: Fix event stats test compare function arg order
The arguments were backwards.
Josef 'Jeff' Sipek [Tue, 16 Apr 2019 22:45:21 +0000 (18:45 -0400)]
lib: Move event filter test's event categories from stack to .data
Event categories must not be allocated on the stack. Categories must be
accessible for the duration of the program runtime.
Josef 'Jeff' Sipek [Thu, 7 Mar 2019 17:58:35 +0000 (12:58 -0500)]
stats: Rename stats filter to indicate what it is for
This makes the next commit a little cleaner.
Josef 'Jeff' Sipek [Fri, 19 Apr 2019 13:50:53 +0000 (09:50 -0400)]
lib-master: Add a comment clarifying when events must be sent to stats
Josef 'Jeff' Sipek [Fri, 15 Mar 2019 01:19:59 +0000 (21:19 -0400)]
lib-master: minor refactor of stats_client_send_event()
This makes later event exporting commits cleaner.
Josef 'Jeff' Sipek [Fri, 15 Mar 2019 00:30:29 +0000 (20:30 -0400)]
lib: Add event_flatten() to return a flattened event
Josef 'Jeff' Sipek [Fri, 15 Mar 2019 00:21:15 +0000 (20:21 -0400)]
lib: replace event_copy_categories_fields() into two
It is more flexible to allow to copy only categories or only fields.
Josef 'Jeff' Sipek [Fri, 3 May 2019 14:30:39 +0000 (10:30 -0400)]
lib: fixup str_append_tabescaped()'s { placement
This makes it consistent with the rest of the file.
Timo Sirainen [Thu, 9 May 2019 16:52:51 +0000 (19:52 +0300)]
global: Add asserts to make static analyzers happy
Timo Sirainen [Thu, 9 May 2019 16:48:43 +0000 (19:48 +0300)]
doveadm dict: Make it clear that *iter_flags can't dereference NULL pointer
It's not possible to dereference it anyway, because only "doveadm dict iter"
has these iter parameters. This change fixes warnings from static analyzers.
Timo Sirainen [Thu, 9 May 2019 16:27:18 +0000 (19:27 +0300)]
lib-storage: Fix mail_user_home_mkdir() crash when user has no home directory
This is used only by dsync when creating lock file. It wouldn't work
without a home directory anyway.
Timo Sirainen [Thu, 9 May 2019 16:22:28 +0000 (19:22 +0300)]
lib: net_*() - Make sure sockaddr_union is always cleared
Fixes scan-build warnings
Timo Sirainen [Thu, 9 May 2019 16:19:42 +0000 (19:19 +0300)]
lib: data-stack - Make STACK_BLOCK_DATA() behavior clearer
Otherwise scan-build thinks that it's pointing outside valid memory in the
struct and gives an error:
"Memory set function accesses out-of-bound array element"
Timo Sirainen [Thu, 9 May 2019 12:29:34 +0000 (15:29 +0300)]
global: Change CALLBACK_TYPECHECK() to used with subtraction
This is because clang's -Wstring-plus-int gave warnings when using
"string" + CALLBACK_TYPECHECK(), but there are no warnings when using
"string" - CALLBACK_TYPECHECK(). It would have been enough to change
only the string parameters to use "-", but for consistency this commit
changes all of them.
Stephan Bosch [Mon, 24 Dec 2018 14:02:58 +0000 (15:02 +0100)]
lmtp: local: Make the local_deliver client vfunc responsible for submitting the reply.
This gives plugins more power to override delivery behavior.
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.
Martti Rannanjärvi [Thu, 28 Jun 2018 11:36:51 +0000 (14:36 +0300)]
fts-solr: Remove obsolete break-imap-search setting
Stephan Bosch [Mon, 26 Feb 2018 22:12:03 +0000 (23:12 +0100)]
lib-program-client: Add more detailed debug logging.
Stephan Bosch [Mon, 26 Feb 2018 21:27:40 +0000 (22:27 +0100)]
lib-program-client: Use event logging.
This also makes the overall log messages better match similar messages produced
by other parts of Dovecot.
Stephan Bosch [Thu, 15 Mar 2018 23:08:17 +0000 (00:08 +0100)]
lib-program-client: Use i_close_fd() rather than close() when error is not supposed to happen.
Stephan Bosch [Mon, 26 Feb 2018 22:26:50 +0000 (23:26 +0100)]
lib-program-client: Make debug mode for test suite optional.
It is now disabled by default.
Stephan Bosch [Mon, 26 Feb 2018 17:58:37 +0000 (18:58 +0100)]
lib-program-client: local: Cleanup any kill timeout while program client is destroyed.
Stephan Bosch [Mon, 26 Feb 2018 17:32:32 +0000 (18:32 +0100)]
lib-program-client: local: Make sure the child is dead once the program client is destroyed.
Stephan Bosch [Mon, 26 Feb 2018 17:01:23 +0000 (18:01 +0100)]
lib-program-client: Simplify disconnect handling.
Perform all of the cleanups in a separate shared function.
Always close all fds, since there is nothing left to be read or written at
disconnect.
Stephan Bosch [Mon, 26 Feb 2018 17:21:04 +0000 (18:21 +0100)]
lib-program-client: remote: Don't try to read remaining input at disconnect.
This code is no longer relevant. At disconnect, there is nothing left to be read
by definition.
Stephan Bosch [Sun, 25 Feb 2018 23:07:10 +0000 (00:07 +0100)]
lib-program-client: Use iostream-pump for streaming data from program.
Stephan Bosch [Mon, 26 Feb 2018 16:16:41 +0000 (17:16 +0100)]
lib-program-client: Destroy timeout once client is passively disconnected.
Stephan Bosch [Mon, 26 Feb 2018 16:15:13 +0000 (17:15 +0100)]
lib-program-client: remote: Initialize program_client_istream with parent FD.
This way, io_add_istream() works as expected.
Stephan Bosch [Mon, 26 Feb 2018 16:12:29 +0000 (17:12 +0100)]
lib-program-client: local: Stop immediately when child program without I/O ends.
Particularly, don't perform this by calling the input handler.
Stephan Bosch [Mon, 26 Feb 2018 15:52:18 +0000 (16:52 +0100)]
lib-program-client: Change return type of program_client_connected() to void.
Returning an int status code is no longer useful.
Stephan Bosch [Sun, 25 Feb 2018 16:21:47 +0000 (17:21 +0100)]
lib-program-client: Use iostream-pump for streaming data towards program.
Stephan Bosch [Sun, 25 Feb 2018 10:43:04 +0000 (11:43 +0100)]
lib-program-client: Initialize dot streams right after the connection is established.
This avoids creating the dot streams in the input/output handlers, which makes
the code cleaner and easier to port to using iostream-pump.
Stephan Bosch [Sun, 25 Feb 2018 08:55:00 +0000 (09:55 +0100)]
lib-program-client: Use iostream-temp rather than istream-seekable for seekable output.
This considerably simplifies the code.
Stephan Bosch [Sun, 25 Feb 2018 16:31:51 +0000 (17:31 +0100)]
lib-program-client: test-program-client-net: Read the client input stream to EOF after the dot stream is closed.
The low-level file stream is not necessarily read to EOF when the body dot
stream sees EOF.
Stephan Bosch [Sun, 25 Feb 2018 17:38:23 +0000 (18:38 +0100)]
lib-program-client: test-program-client-unix: Properly recognize the noreply script protocol option.
Somehow the equivalent test-program-client-net code does not have this problem.
And somehow this test did not fail before.
Stephan Bosch [Sun, 25 Feb 2018 17:31:14 +0000 (18:31 +0100)]
lib-program-client: test-program-client-net: Destroy test client upon error.
This prevents infinite input event loop when something goes wrong.
Stephan Bosch [Sun, 25 Feb 2018 17:30:12 +0000 (18:30 +0100)]
lib-program-client: test-program-client-unix: Destroy test client upon error.
This prevents infinite input event loop when something goes wrong.
Stephan Bosch [Sun, 25 Feb 2018 17:03:04 +0000 (18:03 +0100)]
lib-program-client: test-program-client-net: Handle test client connections non-blocking.
Stephan Bosch [Sun, 25 Feb 2018 17:03:51 +0000 (18:03 +0100)]
lib-program-client: test-program-client-unix: Handle test client connections non-blocking.
Stephan Bosch [Sun, 25 Feb 2018 16:57:59 +0000 (17:57 +0100)]
lib-program-client: test-program-client-net: Create body streams only once in test_program_input_handle().
Stephan Bosch [Sun, 25 Feb 2018 16:56:15 +0000 (17:56 +0100)]
lib-program-client: test-program-client-unix: Create body stream only once in test_program_input_handle().
Stephan Bosch [Sun, 25 Feb 2018 17:15:59 +0000 (18:15 +0100)]
lib-program-client: test-program-client-net: Match client input handling code with test-program-client-unix.
Stephan Bosch [Sun, 18 Mar 2018 02:32:19 +0000 (03:32 +0100)]
lib-program-client: test-program-client-unix: Further fix error handling in test_program_input().