]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
6 years agolib-smtp: smtp-client - Perform the LF -> CRLF conversion for the message data in...
Stephan Bosch [Sat, 9 Feb 2019 12:55:22 +0000 (13:55 +0100)] 
lib-smtp: smtp-client - Perform the LF -> CRLF conversion for the message data in the transaction.

Before, it was performed in the DATA/BDAT command code, which makes it very
difficult to extract post-conversion size statistics.

6 years agolib-smtp: smtp-client-command.h - Reformat the comments for the standard commands.
Stephan Bosch [Sat, 9 Feb 2019 12:41:40 +0000 (13:41 +0100)] 
lib-smtp: smtp-client-command.h - Reformat the comments for the standard commands.

6 years agolib-smtp: smtp-client-transaction - Emit named recipient events.
Stephan Bosch [Wed, 6 Feb 2019 22:06:38 +0000 (23:06 +0100)] 
lib-smtp: smtp-client-transaction - Emit named recipient events.

6 years agolib-smtp: smtp-client-transaction - Emit named events.
Stephan Bosch [Sun, 16 Dec 2018 18:16:37 +0000 (19:16 +0100)] 
lib-smtp: smtp-client-transaction - Emit named events.

6 years agolib-smtp: smtp-client-transaction - Pass last reply to smtp_client_transaction_finish().
Stephan Bosch [Sun, 3 Feb 2019 23:48:58 +0000 (00:48 +0100)] 
lib-smtp: smtp-client-transaction - Pass last reply to smtp_client_transaction_finish().

6 years agolib-smtp: smtp-client-transaction - Record the first failure reply of the DATA command.
Stephan Bosch [Sat, 9 Feb 2019 13:39:24 +0000 (14:39 +0100)] 
lib-smtp: smtp-client-transaction - Record the first failure reply of the DATA command.

This is needed when the DATA command yields more than a single reply (LMTP).

6 years agolib-smtp: smtp-client-transaction - Record recipient statistics in the transaction.
Stephan Bosch [Sat, 9 Feb 2019 12:22:38 +0000 (13:22 +0100)] 
lib-smtp: smtp-client-transaction - Record recipient statistics in the transaction.

6 years agolib-smtp: smtp-client-transaction - Drop smtp_client_transaction_rcpt_drop_pending...
Stephan Bosch [Sat, 9 Feb 2019 12:01:01 +0000 (13:01 +0100)] 
lib-smtp: smtp-client-transaction - Drop smtp_client_transaction_rcpt_drop_pending() as a separate function.

It is now merged into smtp_client_transaction_rcpt_approved() to make the code
less confusing.

6 years agolib-smtp: smtp-client-transaction - Drop the rcpt->failed flag.
Stephan Bosch [Sat, 9 Feb 2019 11:50:12 +0000 (12:50 +0100)] 
lib-smtp: smtp-client-transaction - Drop the rcpt->failed flag.

It is no longer needed.

6 years agolib-smtp: smtp-client-transaction - Explicitly keep track of whether a recipient...
Stephan Bosch [Sat, 9 Feb 2019 11:44:04 +0000 (12:44 +0100)] 
lib-smtp: smtp-client-transaction - Explicitly keep track of whether a recipient is already finished.

6 years agolib-smtp: smtp-client-transaction - Free the rcpt object in smtp_client_transaction_r...
Stephan Bosch [Sat, 9 Feb 2019 11:32:44 +0000 (12:32 +0100)] 
lib-smtp: smtp-client-transaction - Free the rcpt object in smtp_client_transaction_rcpt_fail_reply().

6 years agolib-smtp: smtp-client-transaction - Handle recipient failure callback in a separate...
Stephan Bosch [Sat, 9 Feb 2019 11:22:40 +0000 (12:22 +0100)] 
lib-smtp: smtp-client-transaction - Handle recipient failure callback in a separate _rcpt function.

6 years agolib-smtp: smtp-client-transaction - Handle recipient DATA callback in a separate...
Stephan Bosch [Sat, 9 Feb 2019 11:17:40 +0000 (12:17 +0100)] 
lib-smtp: smtp-client-transaction - Handle recipient DATA callback in a separate _rcpt function.

6 years agolib-smtp: smtp-client-transaction - Handle RCPT reply in a separate _rcpt function.
Stephan Bosch [Sat, 9 Feb 2019 11:14:21 +0000 (12:14 +0100)] 
lib-smtp: smtp-client-transaction - Handle RCPT reply in a separate _rcpt function.

6 years agolib-smtp: smtp-client-transaction - Free the mail object in smtp_client_transaction_m...
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().

6 years agolib-smtp: smtp-client-transaction - Handle MAIL failure callback in a separate _mail...
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.

6 years agolib-smtp: smtp-client-transaction - Handle MAIL reply 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.

6 years agolib-smtp: smtp-params - Add support for adding RCPT parameters to an event.
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.

6 years agolib-smtp: smtp-params - Add support for adding MAIL 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.

6 years agolib-smtp: smtp-client-command - Emit named events.
Stephan Bosch [Mon, 4 Feb 2019 00:26:44 +0000 (01:26 +0100)] 
lib-smtp: smtp-client-command - Emit named events.

6 years agolib-smtp: smtp-client-command - Create local variable for "was_sent" command status.
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.

6 years agolib-smtp: smtp-client-command - Rename "waslocked" to "was_locked" in smtp_client_com...
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().

6 years agolib-smtp: smtp-reply - Add smtp_reply_add_to_event().
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.

6 years agolib-smtp: smtp-client-connection - Add peer fields to the connection events.
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.

6 years agolib-smtp: smtp-client - Replace smtp_*_debug() with e_debug().
Stephan Bosch [Thu, 29 Nov 2018 22:44:23 +0000 (23:44 +0100)] 
lib-smtp: smtp-client - Replace smtp_*_debug() with e_debug().

6 years agolib-smtp: smtp-client - Replace smtp_*_warning() with e_warning().
Stephan Bosch [Mon, 24 Dec 2018 00:23:57 +0000 (01:23 +0100)] 
lib-smtp: smtp-client - Replace smtp_*_warning() with e_warning().

6 years agolib-smtp: smtp-client - Replace smtp_*_error() with e_error().
Stephan Bosch [Mon, 24 Dec 2018 00:06:11 +0000 (01:06 +0100)] 
lib-smtp: smtp-client - Replace smtp_*_error() with e_error().

6 years agolib-smtp: smtp-client - Replace i_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().

6 years agolib-smtp: smtp-client - Remove redundant debug logging checks.
Stephan Bosch [Thu, 29 Nov 2018 22:08:48 +0000 (23:08 +0100)] 
lib-smtp: smtp-client - Remove redundant debug logging checks.

6 years agolib-smtp: smtp-client - Add support for event API.
Stephan Bosch [Thu, 29 Nov 2018 21:55:08 +0000 (22:55 +0100)] 
lib-smtp: smtp-client - Add support for event API.

6 years agolib-smtp: smtp-client-command - Split command name extraction from label construction.
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.

6 years agolib-smtp: smtp-reply - Add smtp_reply_get_message().
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.

6 years agolib: test-event-flatten - Fix initializators for value
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

6 years agolib: Add initializers to test-event-flatten
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.

6 years agolib: i_zero*() - Update comment, especially about arrays
Timo Sirainen [Mon, 13 May 2019 13:03:27 +0000 (16:03 +0300)] 
lib: i_zero*() - Update comment, especially about arrays

6 years agolib: i_zero*() - Remove extra "+"
Timo Sirainen [Mon, 13 May 2019 12:57:26 +0000 (15:57 +0300)] 
lib: i_zero*() - Remove extra "+"

It was ignored by compilers though.

6 years agoimap: client: Add init() client vfunc.
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.

6 years agoimap: client: Rearrange and document the client vfuncs.
Stephan Bosch [Sat, 5 Jan 2019 18:43:49 +0000 (19:43 +0100)] 
imap: client: Rearrange and document the client vfuncs.

6 years agosubmssion: DATA command: Seek data stream to the beginning before executing backends.
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.

6 years agosubmission: DATA command: Provide a default name for the data stream.
Stephan Bosch [Fri, 28 Dec 2018 18:13:03 +0000 (19:13 +0100)] 
submission: DATA command: Provide a default name for the data stream.

6 years agostats: event export - Add tabescaped plain text format support
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.

6 years agostats: event export - Add http-post transport support
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.

6 years agostats: event export - Add log transport support
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.

6 years agostats: event export - Add json format support
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.

6 years agostats: event export - Implement core functionality
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.

6 years agolib-master: Use event_minimize() to simplify the event before sending to stats
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

6 years agolib: Add event_minimize()
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().

6 years agolib-master: Fix event stats test compare function arg order
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.

6 years agolib: Move event filter test's event categories from stack to .data
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.

6 years agostats: Rename stats filter to indicate what it is for
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.

6 years agolib-master: Add a comment clarifying when events must be sent to stats
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

6 years agolib-master: minor refactor of stats_client_send_event()
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.

6 years agolib: Add event_flatten() to return a flattened event
Josef 'Jeff' Sipek [Fri, 15 Mar 2019 00:30:29 +0000 (20:30 -0400)] 
lib: Add event_flatten() to return a flattened event

6 years agolib: replace event_copy_categories_fields() into two
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.

6 years agolib: fixup str_append_tabescaped()'s { placement
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.

6 years agoglobal: Add asserts to make static analyzers happy
Timo Sirainen [Thu, 9 May 2019 16:52:51 +0000 (19:52 +0300)] 
global: Add asserts to make static analyzers happy

6 years agodoveadm dict: Make it clear that *iter_flags can't dereference NULL pointer
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.

6 years agolib-storage: Fix mail_user_home_mkdir() crash when user has no home directory
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.

6 years agolib: net_*() - Make sure sockaddr_union is always cleared
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

6 years agolib: data-stack - Make STACK_BLOCK_DATA() behavior clearer
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"

6 years agoglobal: Change CALLBACK_TYPECHECK() to used with subtraction
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.

6 years agolmtp: local: Make the local_deliver client vfunc responsible for submitting the reply.
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.

6 years agolmtp: Load all globally-defined mail_plugins at client connect.
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.

6 years agolmtp: Install header files.
Stephan Bosch [Sat, 10 Nov 2018 12:58:37 +0000 (13:58 +0100)] 
lmtp: Install header files.

This allows creating external lmtp plugins.

6 years agolmtp: Rename commands.h to lmtp-commands.h.
Stephan Bosch [Sat, 10 Nov 2018 12:48:56 +0000 (13:48 +0100)] 
lmtp: Rename commands.h to lmtp-commands.h.

6 years agolmtp: Rename client.h to lmtp-client.h.
Stephan Bosch [Sat, 10 Nov 2018 12:52:28 +0000 (13:52 +0100)] 
lmtp: Rename client.h to lmtp-client.h.

6 years agolmtp: Make include directory available to external plugins.
Stephan Bosch [Sat, 10 Nov 2018 12:41:27 +0000 (13:41 +0100)] 
lmtp: Make include directory available to external plugins.

6 years agolmtp: local: Create a client vfunc for local delivery.
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.

6 years agolib-smtp: server: Add support for adding (non-standard) extra capabilities.
Stephan Bosch [Sat, 3 Nov 2018 10:18:46 +0000 (11:18 +0100)] 
lib-smtp: server: Add support for adding (non-standard) extra capabilities.

6 years agolib-smtp: syntax: Add new smtp_ehlo_params_are_valid().
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.

6 years agolib-smtp: syntax: Remame smtp_ehlo_params_are_valid() to smtp_ehlo_params_str_is_valid().
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.

6 years agolib-smtp: server: Add smtp_server_reply_ehlo_add_params().
Stephan Bosch [Sat, 3 Nov 2018 10:18:10 +0000 (11:18 +0100)] 
lib-smtp: server: Add smtp_server_reply_ehlo_add_params().

6 years agolib-smtp: server: EHLO command: Move composition of individual reply lines to separat...
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.

6 years agolib-smtp: server: EHLO command: Move composition of default EHLO reply to a separate...
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.

6 years agolmtp: Add support for module contexts to recipient.
Stephan Bosch [Sat, 3 Nov 2018 00:00:13 +0000 (01:00 +0100)] 
lmtp: Add support for module contexts to recipient.

6 years agolmtp: Add support for module contexts to client.
Stephan Bosch [Fri, 2 Nov 2018 23:54:50 +0000 (00:54 +0100)] 
lmtp: Add support for module contexts to client.

6 years agolmtp: Implement client vfuncs for transaction start and free.
Stephan Bosch [Fri, 2 Nov 2018 23:49:32 +0000 (00:49 +0100)] 
lmtp: Implement client vfuncs for transaction start and free.

6 years agolmtp: Implement client vfuncs for SMTP transaction commands.
Stephan Bosch [Fri, 2 Nov 2018 23:33:31 +0000 (00:33 +0100)] 
lmtp: Implement client vfuncs for SMTP transaction commands.

6 years agolmtp: RCPT command: Allocate lmtp_recipient object immediately.
Stephan Bosch [Sat, 3 Nov 2018 13:26:24 +0000 (14:26 +0100)] 
lmtp: RCPT command: Allocate lmtp_recipient object immediately.

6 years agolmtp: DATA command: Add data size to client state.
Stephan Bosch [Fri, 2 Nov 2018 23:41:03 +0000 (00:41 +0100)] 
lmtp: DATA command: Add data size to client state.

6 years agolmtp: DATA command: Put the data input stream in the client state rather than the...
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.

6 years agolmtp: Implement basic client vfuncs.
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.

6 years agolmtp: Add hook for client_create().
Stephan Bosch [Sat, 3 Nov 2018 11:56:30 +0000 (12:56 +0100)] 
lmtp: Add hook for client_create().

6 years agolmtp: Remove obsolete declaration from lmtp-common.h.
Stephan Bosch [Sat, 3 Nov 2018 11:47:00 +0000 (12:47 +0100)] 
lmtp: Remove obsolete declaration from lmtp-common.h.

6 years agolmtp: Make lmtp-common.h the primary include.
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.

6 years agolmtp: Rename main.h to lmtp-common.h.
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.

6 years agolmtp: Rename lmtp-common to lmtp-recipient.
Stephan Bosch [Sat, 3 Nov 2018 11:26:51 +0000 (12:26 +0100)] 
lmtp: Rename lmtp-common to lmtp-recipient.

6 years agofts-solr: Remove obsolete break-imap-search setting
Martti Rannanjärvi [Thu, 28 Jun 2018 11:36:51 +0000 (14:36 +0300)] 
fts-solr: Remove obsolete break-imap-search setting

6 years agolib-program-client: Add more detailed debug logging.
Stephan Bosch [Mon, 26 Feb 2018 22:12:03 +0000 (23:12 +0100)] 
lib-program-client: Add more detailed debug logging.

6 years agolib-program-client: Use event 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.

6 years agolib-program-client: Use i_close_fd() rather than close() when error is not supposed...
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.

6 years agolib-program-client: Make debug mode for test suite optional.
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.

6 years agolib-program-client: local: Cleanup any kill timeout while program client is destroyed.
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.

6 years agolib-program-client: local: Make sure the child is dead once the program client is...
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.

6 years agolib-program-client: Simplify disconnect handling.
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.

6 years agolib-program-client: remote: Don't try to read remaining input 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.

6 years agolib-program-client: Use iostream-pump for streaming data from program.
Stephan Bosch [Sun, 25 Feb 2018 23:07:10 +0000 (00:07 +0100)] 
lib-program-client: Use iostream-pump for streaming data from program.

6 years agolib-program-client: Destroy timeout once client is passively disconnected.
Stephan Bosch [Mon, 26 Feb 2018 16:16:41 +0000 (17:16 +0100)] 
lib-program-client: Destroy timeout once client is passively disconnected.

6 years agolib-program-client: remote: Initialize program_client_istream with parent FD.
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.

6 years agolib-program-client: local: Stop immediately when child program without I/O ends.
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.