]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Josef 'Jeff' Sipek [Tue, 12 Dec 2017 16:10:15 +0000 (11:10 -0500)]
global: io_remove*(NULL) is a no-op
Josef 'Jeff' Sipek [Mon, 27 Nov 2017 19:11:40 +0000 (14:11 -0500)]
global: timeout_remove(NULL) is a no-op
Aki Tuomi [Wed, 13 Dec 2017 08:50:38 +0000 (10:50 +0200)]
m4: Fix sodium checks
Make sure it actually has password checking function
Stephan Bosch [Tue, 12 Dec 2017 20:53:42 +0000 (21:53 +0100)]
submission-login: Added default listener for secure submission on port 465 (submissions).
This is analogous to pop3s and imaps.
Efforts to standardize the use of this port are almost finished: https://datatracker.ietf.org/doc/draft-ietf-uta-email-deep/
Stephan Bosch [Tue, 12 Dec 2017 20:46:53 +0000 (21:46 +0100)]
submission-login: Fix NULL dereference occurring at an invalid reply from the backend server.
Problem found by Coverity.
Josef 'Jeff' Sipek [Tue, 12 Dec 2017 17:18:06 +0000 (12:18 -0500)]
lib-smtp: fix uoff_t vs. size_t confusion
Sergey Kitov [Tue, 12 Dec 2017 14:07:52 +0000 (16:07 +0200)]
plugins/fts: Return back comment about Server Error.
Sergey Kitov [Tue, 12 Dec 2017 14:06:14 +0000 (16:06 +0200)]
plugins/fts: Retry all 5xx tika http statuses, not only 500
Josef 'Jeff' Sipek [Tue, 12 Dec 2017 13:56:31 +0000 (08:56 -0500)]
director: avoid comparison between signed and unsigned ints
Josef 'Jeff' Sipek [Tue, 12 Dec 2017 13:55:58 +0000 (08:55 -0500)]
submission: use correct format string for printing uoff_t
Stephan Bosch [Mon, 11 Dec 2017 13:18:20 +0000 (14:18 +0100)]
Update README regarding supported RFCs.
Some were missing and new ones are added by the recent lib-smtp and submission service changes.
Timo Sirainen [Mon, 11 Dec 2017 16:07:35 +0000 (18:07 +0200)]
config: Add a warning comment to the generated all-settings.c
Stephan Bosch [Mon, 11 Dec 2017 19:29:29 +0000 (20:29 +0100)]
doc: example-config: Fix installation of the example configuration for the submission service.
Forgot to add it to Makefile.am.
Stephan Bosch [Mon, 11 Dec 2017 14:55:32 +0000 (15:55 +0100)]
lmtp: Fix segfault occurring in client_read_settings().
This problem is caused by recent changes.
The code attempts to access client->conn to obtain connection security info, which is not yet assigned at that point.
It is doubtful whether assigning those security flags is useful at that stage, but it now uses the ssl flag from the master_service_connection instead.
Stephan Bosch [Mon, 11 Dec 2017 14:53:45 +0000 (15:53 +0100)]
lmtp: Removed useless ssl_start parameter for client_create().
The same information is already contained in the conn parameter.
Stephan Bosch [Sat, 11 Nov 2017 13:20:59 +0000 (14:20 +0100)]
Implemented SMTP submission proxy service.
Stephan Bosch [Sat, 9 Dec 2017 01:09:35 +0000 (02:09 +0100)]
lib-storage: mail-user: Added more information about the client connection.
Submission service will need it to pass to the backend MTA in XCLIENT and for creating the "Received:" header.
Stephan Bosch [Sat, 9 Dec 2017 01:34:52 +0000 (02:34 +0100)]
lib-master: master-auth: Pass more information about the user connection to the backend in struct master_auth_request.
Adds remote and local ports and security information about the connection.
This changes the master-auth protocol incompatibly, so the major version is updated.
Stephan Bosch [Sat, 9 Dec 2017 01:33:16 +0000 (02:33 +0100)]
login-common: Added flag to client that indicates whether connection is secured using SSL specifically.
Stephan Bosch [Sat, 9 Dec 2017 00:52:28 +0000 (01:52 +0100)]
lib-storage: mail-user: Changed mail_user_set_vars() to accept struct mail_user_connection_data, rather than individual fields.
Stephan Bosch [Sat, 9 Dec 2017 00:29:06 +0000 (01:29 +0100)]
lib-storage: Moved connection information in struct mail_user into separate struct mail_user_connection_data.
Stephan Bosch [Sat, 9 Dec 2017 00:11:53 +0000 (01:11 +0100)]
imap: cmd-idle: Created local variable for client in idle_add_keepalive_timeout().
Stephan Bosch [Sat, 9 Dec 2017 00:04:48 +0000 (01:04 +0100)]
imap: imap-client-hibernate: Created local variable for mail_user in imap_hibernate_write_cmd().
Stephan Bosch [Mon, 26 Sep 2016 07:25:32 +0000 (09:25 +0200)]
imap-urlauth: Allow connections from services other than IMAP.
The imap-urlauth service detects the new submission service and assigns the appropriate privileges.
The dovecot-token authentication mechanism provides information on which service connected to it.
Stephan Bosch [Fri, 10 Nov 2017 16:18:28 +0000 (17:18 +0100)]
login-common: Added client_disconnect(), which allows explicitly disconnecting the client before it is destroyed.
This is sometimes needed to make sure the SSL layer is closed properly before destroying the underlying connection.
Stephan Bosch [Mon, 26 Sep 2016 17:12:19 +0000 (19:12 +0200)]
login-common: Added support for login services that handle their own input io.
Stephan Bosch [Sun, 10 Dec 2017 10:28:44 +0000 (11:28 +0100)]
lib-smtp: server: Added max_recipients setting, which enforces a recipient limit per-transaction.
Stephan Bosch [Sun, 10 Dec 2017 10:26:10 +0000 (11:26 +0100)]
lib-smtp: server: transaction: Added smtp_server_transaction_rcpt_count().
Stephan Bosch [Mon, 11 Dec 2017 01:19:52 +0000 (02:19 +0100)]
lib-smtp: server: DATA/BDAT command: Make sure chunk stream is dereferenced early.
The submission BURL command - which uses part of the same code - runs into trouble otherwise.
This could also be an actual istream reference leak outside BURL, but that is not confirmed.
Stephan Bosch [Sun, 10 Dec 2017 10:32:28 +0000 (11:32 +0100)]
lib-smtp: server: DATA command: Continue processing connection input once DATA reply is submitted.
Fixes a potential connection hang.
Stephan Bosch [Sun, 10 Dec 2017 10:31:24 +0000 (11:31 +0100)]
lib-smtp: server: command: Added smtp_server_command_input_unlock().
Allows unlock input for a command that was earlier locked with smtp_server_command_input_lock().
Stephan Bosch [Mon, 11 Dec 2017 09:33:09 +0000 (10:33 +0100)]
lib-smtp: server: DATA command: Make sure there is a transaction in smtp_server_connection_data_check_state() before using it.
This fixes a potential NULL dereference.
Found by Coverity.
Stephan Bosch [Mon, 11 Dec 2017 09:37:58 +0000 (10:37 +0100)]
lib-smtp: server: DATA command: Fixed check for valid recipients in smtp_server_connection_data_check_state().
Can only decide whether we have valid recipients once there are no more pending RCPT commands.
Stephan Bosch [Mon, 11 Dec 2017 03:18:54 +0000 (04:18 +0100)]
lib-smtp: server: Removed inappropriate NULL check in smtp_server_connection_send_replies().
Caller holds a reference, so it can never be NULL.
Found by Coverity.
Stephan Bosch [Mon, 11 Dec 2017 09:41:53 +0000 (10:41 +0100)]
lib-smtp: server: Remove useless o_stream_flush() in smtp_server_connection_disconnect().
This is already performed implicitly by o_stream_uncork().
Fixes a problem found by Coverity.
Timo Sirainen [Sun, 10 Dec 2017 18:00:21 +0000 (20:00 +0200)]
lib-test: istream-test - Don't modify existing snapshots' memareas
At least with --enable-devel-checks this caused istream-sized unit test to
randomly panic:
Panic: file istream.c: line 279 (i_stream_read): assertion failed: (memcmp(prev_buf, prev_data + prev_skip, prev_pos - prev_skip) == 0)
Stephan Bosch [Mon, 11 Dec 2017 11:59:58 +0000 (12:59 +0100)]
lib-http: client: Cleaned up initialization of client settings.
There were checks for the client context not being NULL, which makes no sense anymore, since a private context is always created when none is provided.
Problem reported by Coverity.
Aki Tuomi [Tue, 5 Dec 2017 15:05:27 +0000 (17:05 +0200)]
lib: test-var-expand - Ensure var_get_key_range_full handles nested ifs correctly
Aki Tuomi [Fri, 1 Dec 2017 17:46:58 +0000 (19:46 +0200)]
lib: var-expand - handle \{ and \} correctly
Do not treat these as embedded braces
Aki Tuomi [Fri, 1 Dec 2017 12:53:46 +0000 (14:53 +0200)]
lib: Support nested keys in var_get_key_range_full
Fixes problems with %{if...}
failed: if: requires four or five parameters, got 1
Martti Rannanjärvi [Mon, 11 Dec 2017 10:52:38 +0000 (12:52 +0200)]
auth: Debug log an LDAP request result only once
Martti Rannanjärvi [Mon, 11 Dec 2017 10:47:32 +0000 (12:47 +0200)]
auth: Have ldap_request instead of auth_request in db_ldap_result_iterate_context
This makes it easier to access ldap_request where needed later.
Sergey Kitov [Mon, 9 Oct 2017 10:57:12 +0000 (13:57 +0300)]
fts: fts_parser_tika replace empty path with "/"
indexing doesn't crash if fts_tika = http://host:port setting is
missing trailing '/'
Sergey Kitov [Mon, 9 Oct 2017 10:53:42 +0000 (13:53 +0300)]
fts: Retry indexing for tika backend in case of internal server error
Sergey Kitov [Mon, 9 Oct 2017 10:13:05 +0000 (13:13 +0300)]
fts: Extend parser's deinit function interface with retriable_err_msg_r parameter
the new parameter will be set to a error string in case indexing may
need retrying, so it will be logged later when decision about retry will be made.
Sergey Kitov [Mon, 9 Oct 2017 08:23:54 +0000 (11:23 +0300)]
fts: Parser move try_init arguments to a single structure parser_context.
Martti Rannanjärvi [Mon, 27 Nov 2017 12:19:34 +0000 (14:19 +0200)]
global: Use mail_set_critical() and mailbox_set_critical() if possible
Replace calls to mail_storage_set_critical() with mail_set_critical()
or mailbox_set_critical() in places where mailbox or mail are easily
available.
Martti Rannanjärvi [Mon, 27 Nov 2017 12:09:21 +0000 (14:09 +0200)]
lib-storage: Take mail_save_context parameter in save_check_write_error()
This is in order to use mail_set_critical() in the function later.
Martti Rannanjärvi [Mon, 27 Nov 2017 11:52:07 +0000 (13:52 +0200)]
quota: Take mailbox as parameter in quota_set_storage_error()
This is to start using mailbox_set_critical() later.
Martti Rannanjärvi [Wed, 29 Nov 2017 13:46:34 +0000 (15:46 +0200)]
lib-ssl-iostream: Use SSL_CTX_set_min_proto_version if available
Martti Rannanjärvi [Tue, 7 Nov 2017 12:47:01 +0000 (14:47 +0200)]
m4: Add SSL_CTX_set_min_proto_version detection
Martti Rannanjärvi [Tue, 28 Nov 2017 10:02:08 +0000 (12:02 +0200)]
Replace ssl_protocols config option with ssl_min_protocol
Default to TLSv1.
Aki Tuomi [Mon, 20 Nov 2017 11:40:03 +0000 (13:40 +0200)]
lib-storage: mailbox-list-iter - Refresh subscriptions before setting flags
This happens when list patterns match the namespace prefix,
but mailbox_list_ns_match_patterns() returns FALSE. And one of the ways for
that to happen is if namespace has alias_for set.
Aki Tuomi [Mon, 20 Nov 2017 08:40:52 +0000 (10:40 +0200)]
lib-storage: mailbox-tree - Ensure tree is not NULL
Stephan Bosch [Mon, 6 Nov 2017 20:54:00 +0000 (21:54 +0100)]
lmtp: Changed message data handling to use iostream-temp.
The existing code predates iostream-temp.
Stephan Bosch [Mon, 9 Oct 2017 23:04:50 +0000 (01:04 +0200)]
lmtp: Removed structural comments that are now useless.
Stephan Bosch [Mon, 9 Oct 2017 23:03:02 +0000 (01:03 +0200)]
lmtp: client: Made client_remote_id() static.
Stephan Bosch [Wed, 23 Nov 2016 09:43:53 +0000 (10:43 +0100)]
lmtp: Ported to use lib-smtp/server.
Implicitly fixes handling of multi-line replies from proxy backend.
Implicitly adds support for mixing local and proxy recipients.
Implicitly adds support for SMTP CHUNKING.
RCPT failures are reported back to the client immediately, rather than waiting for the DATA command.
Stephan Bosch [Sat, 11 Nov 2017 09:20:05 +0000 (10:20 +0100)]
lib-smtp: Created test-smtp-server-errors, which tests the server's error handling.
Stephan Bosch [Sat, 11 Nov 2017 09:30:14 +0000 (10:30 +0100)]
lib-smtp: Created test-smtp-payload, which tests client<->server payload exchange.
Stephan Bosch [Sun, 6 Nov 2016 21:46:31 +0000 (22:46 +0100)]
lib-smtp: Implemented SMTP server.
Stephan Bosch [Sun, 6 Nov 2016 21:36:57 +0000 (22:36 +0100)]
lib-smtp: Implemented SMTP command parser.
Stephan Bosch [Sun, 19 Nov 2017 21:57:12 +0000 (22:57 +0100)]
lib: istream-failure-at: Allow setting the the stream_errno to something other than EIO.
Stephan Bosch [Tue, 31 Oct 2017 00:12:44 +0000 (01:12 +0100)]
lmtp: proxy: Restructured proxy so that it has direct access to struct client.
This avoids the hassle of initializing using struct lmtp_proxy_settings and uselessly reallocating stuff that is already persisted in struct client.
Moved the proxy from alloconly pool to default pool in the process.
The amount of allocated stuff will diminish further in subsequent commits.
Stephan Bosch [Mon, 30 Oct 2017 22:28:35 +0000 (23:28 +0100)]
lmtp: proxy: Renamed pool to auth_pool in lmtp_proxy_rcpt() for clarity.
Stephan Bosch [Mon, 30 Oct 2017 20:09:25 +0000 (21:09 +0100)]
lmtp: proxy: Made struct lmtp_proxy_rcpt_settings private.
Stephan Bosch [Mon, 30 Oct 2017 19:50:28 +0000 (20:50 +0100)]
lmtp: proxy: Merged lmtp_proxy_add_rcpt() into lmtp_proxy_rcpt().
Stephan Bosch [Mon, 30 Oct 2017 19:44:09 +0000 (20:44 +0100)]
lmtp: proxy: Made lmtp_proxy_mail_from() private.
Stephan Bosch [Mon, 30 Oct 2017 19:41:03 +0000 (20:41 +0100)]
lmtp: proxy: Made lmtp_proxy_init() private.
Stephan Bosch [Mon, 30 Oct 2017 00:24:37 +0000 (01:24 +0100)]
lmtp: commands: Created local variable for client->dot_input in client_input_data_handle().
Stephan Bosch [Mon, 30 Oct 2017 00:19:18 +0000 (01:19 +0100)]
lmtp: commands: Renamed client_input_add() to cmd_data_input_add().
Stephan Bosch [Mon, 30 Oct 2017 00:17:21 +0000 (01:17 +0100)]
lmtp: commands: Renamed client_input_add_file() to cmd_data_input_add_file().
Stephan Bosch [Mon, 30 Oct 2017 00:13:33 +0000 (01:13 +0100)]
lmtp: commands: Renamed client_get_input() to cmd_data_get_input().
Stephan Bosch [Sun, 22 Oct 2017 22:36:16 +0000 (00:36 +0200)]
lmtp: local: Renamed error variables in lmtp_local_rcpt_check_quota() to match other code.
Stephan Bosch [Mon, 30 Oct 2017 01:00:38 +0000 (02:00 +0100)]
lmtp: local: Allocate recipients on the default pool, rather than the client state pool.
This prevents the pool from growing potentially indefinitely with failed recipients.
Stephan Bosch [Sun, 22 Oct 2017 21:29:21 +0000 (23:29 +0200)]
lmtp: Split off local delivery in a struct separate from the client.
This mimics proxy delivery, making the implementation better structured.
Stephan Bosch [Sun, 26 Nov 2017 20:29:10 +0000 (21:29 +0100)]
lmtp: local: Renamed local variable "dest_user" to "rcpt_user" in lmtp_local_deliver().
This matches the rcpt_user field in struct mail_deliver_context.
Stephan Bosch [Tue, 19 Sep 2017 01:56:39 +0000 (03:56 +0200)]
lmtp: local: Created local variable for service_user in lmtp_local_deliver().
Stephan Bosch [Tue, 19 Sep 2017 01:53:45 +0000 (03:53 +0200)]
lmtp: local: Renamed trans variable in lmtp_local_open_raw_mail().
Preparation for new trans parameter.
Stephan Bosch [Tue, 19 Sep 2017 01:33:12 +0000 (03:33 +0200)]
lmtp: local: Renamed client_deliver_to_rcpts() to lmtp_local_deliver_to_rcpts().
Stephan Bosch [Tue, 19 Sep 2017 00:07:22 +0000 (02:07 +0200)]
lmtp: client: Dropped useless rcpt_idx state.
Recent refactoring made it obsolete.
Stephan Bosch [Mon, 18 Sep 2017 22:29:02 +0000 (00:29 +0200)]
lmtp: local: Always handle sending of error replies inside lmtp_rcpt_to_is_over_quota().
Code was confusing.
Stephan Bosch [Tue, 19 Sep 2017 01:40:56 +0000 (03:40 +0200)]
lmtp: local: Renamed cmd_rcpt_finish() to lmtp_local_rcpt_anvil_finish().
Stephan Bosch [Tue, 19 Sep 2017 01:29:03 +0000 (03:29 +0200)]
lmtp: local: Renamed rcpt_anvil_lookup_callback() to lmtp_local_rcpt_anvil_cb().
Stephan Bosch [Mon, 18 Sep 2017 21:16:21 +0000 (23:16 +0200)]
lmtp: commands: Moved RCPT command handling relating to local recipients to lmtp-local.c.
Stephan Bosch [Mon, 18 Sep 2017 20:51:30 +0000 (22:51 +0200)]
lmtp: client: Moved recipient deinitialization to lmtp-local.c.
Stephan Bosch [Tue, 19 Sep 2017 01:21:39 +0000 (03:21 +0200)]
lmtp: local: Renamed lmtp_rcpt_to_is_over_quota() to lmtp_local_rcpt_check_quota().
Stephan Bosch [Mon, 18 Sep 2017 23:33:28 +0000 (01:33 +0200)]
lmtp: local: Renamed client_input_data_write_local() to lmtp_local_data().
Stephan Bosch [Mon, 18 Sep 2017 23:07:17 +0000 (01:07 +0200)]
lmtp: local: Renamed client_open_raw_mail() to lmtp_local_open_raw_mail().
Stephan Bosch [Mon, 18 Sep 2017 22:59:27 +0000 (00:59 +0200)]
lmtp: local: Renamed client_deliver() to lmtp_local_deliver().
Stephan Bosch [Mon, 18 Sep 2017 20:40:41 +0000 (22:40 +0200)]
lmtp: local: Renamed client_rcpt_anvil_disconnect() to lmtp_local_rcpt_anvil_disconnect().
Stephan Bosch [Mon, 30 Oct 2017 22:06:50 +0000 (23:06 +0100)]
lmtp: proxy: Changed return type of lmtp_proxy_rcpt() from bool to int.
Stephan Bosch [Mon, 18 Sep 2017 20:32:43 +0000 (22:32 +0200)]
lmtp: proxy: Renamed client_proxy_rcpt() to lmtp_proxy_rcpt().
Stephan Bosch [Mon, 18 Sep 2017 20:29:29 +0000 (22:29 +0200)]
lmtp: proxy: Renamed client_proxy_is_ourself() to lmtp_proxy_is_ourself().
Stephan Bosch [Mon, 18 Sep 2017 20:27:41 +0000 (22:27 +0200)]
lmtp: proxy: Renamed client_proxy_rcpt_parse_fields() to lmtp_proxy_rcpt_parse_fields().
Stephan Bosch [Mon, 18 Sep 2017 20:04:58 +0000 (22:04 +0200)]
lmtp: Renamed struct mail_recipient to struct lmtp_recipient.
Stephan Bosch [Tue, 31 Oct 2017 01:37:40 +0000 (02:37 +0100)]
lmtp: proxy: Added structural comments.
Stephan Bosch [Mon, 18 Sep 2017 19:14:05 +0000 (21:14 +0200)]
lmtp: local: Added structural comments.
Stephan Bosch [Sun, 17 Sep 2017 12:28:33 +0000 (14:28 +0200)]
lmtp: commands: Added structural comments.
Stephan Bosch [Wed, 23 Nov 2016 09:43:53 +0000 (10:43 +0100)]
lmtp: proxy: Removed dns_client_socket_path from struct lmtp_proxy_settings.
It is globally accessible.