]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Stephan Bosch [Thu, 12 Apr 2018 20:58:16 +0000 (22:58 +0200)]
lib: Added i_memdup().
Timo Sirainen [Mon, 16 Apr 2018 11:01:37 +0000 (14:01 +0300)]
lib-master: Add log_core_filter setting to core dump on matching filter
Timo Sirainen [Mon, 16 Apr 2018 11:00:51 +0000 (14:00 +0300)]
lib: Add global core filter, which allows core dumping on matching events
Timo Sirainen [Mon, 16 Apr 2018 10:48:38 +0000 (13:48 +0300)]
lib: Add log types as event categories
This allows using debug, info, warning, error, fatal and panic as
categories.
Timo Sirainen [Mon, 16 Apr 2018 10:39:17 +0000 (13:39 +0300)]
lib-master, stats: Send event's log_type to stats process
This makes the internal stats protocol incompatible with the previous
version, so major protocol version is increased.
Timo Sirainen [Mon, 16 Apr 2018 10:32:47 +0000 (13:32 +0300)]
lib-master: If log_debug is empty, don't set global debug log filter at all
global_debug_log_filter==NULL check is a bit faster.
Timo Sirainen [Mon, 16 Apr 2018 10:32:15 +0000 (13:32 +0300)]
lib-master: Cleanup - Add new helper function for parsing log filter settings
Timo Sirainen [Mon, 16 Apr 2018 10:31:03 +0000 (13:31 +0300)]
lib-master: Rename master_service_log_debug_parse() to master_service_log_filter_parse()
This function will be used for parsing other settings besides just
log_debug.
Timo Sirainen [Tue, 17 Apr 2018 12:46:41 +0000 (15:46 +0300)]
imapc: Fix expunges+appends in same session with imapc_features=no-msn-updates
Since the EXPUNGEs were ignored, the sequence numbers weren't updated.
When a new mail arrived, the sequence number sent by the remote IMAP server
pointed to existing mails in imapc's mapping. Fix this by changing the
sequence number if the returned UID is >= next_uid.
Fixes "FETCH UID mismatch" errors.
Sergey Kitov [Tue, 13 Mar 2018 14:36:44 +0000 (16:36 +0200)]
lib-mail: html2text: do not parse entity when quote_level > 0.
&entities inside blockquotes are added to text, while other text is
not, this leads to strange results.
Sergey Kitov [Fri, 6 Apr 2018 12:48:02 +0000 (15:48 +0300)]
lib-mail: Fix include guards for istream-nonuls.h
Aki Tuomi [Wed, 11 Apr 2018 12:11:23 +0000 (15:11 +0300)]
lib-program-client: Wait longer in test-program-client-local
Sometiems it can take longer than 1 second to execute, if the test
environment is loaded.
Aki Tuomi [Thu, 1 Feb 2018 07:19:10 +0000 (09:19 +0200)]
lib-ssl-iostream: Fix premature NULL deref
Broken in
4836d541b1c1354073e068aabe5cd92aa67fe61d
Found by coverity
Stephan Bosch [Tue, 10 Apr 2018 00:41:44 +0000 (02:41 +0200)]
lib-mail: message-address: Fix address parser to properly reject angle-addr without `>'.
Stephan Bosch [Tue, 10 Apr 2018 00:36:44 +0000 (02:36 +0200)]
lib-mail: message-address: Fix assert panic occurring in message_address_parse_path() when no opening `<' is found.
Panic was:
Panic: file message-address.c: line 147 (parse_angle_addr): assertion failed: (*ctx->parser.data == '<')
Timo Sirainen [Mon, 19 Feb 2018 11:21:25 +0000 (13:21 +0200)]
lib-storage: Assert unique_root_dir is set with MAIL_STORAGE_CLASS_FLAG_UNIQUE_ROOT
Timo Sirainen [Mon, 19 Feb 2018 11:22:02 +0000 (13:22 +0200)]
lib-storage: shared driver - Remove copying the child storage's class_flags
The shared storage root itself doesn't have any storage, so it shouldn't
need to copy the child storage's class_flags either.
This fixes a crash when shared namespace was created with mdbox storage, and
another mdbox namespace was created afterwards. This had
MAIL_STORAGE_CLASS_FLAG_UNIQUE_ROOT set, but its unique_root_dir is NULL,
which caused a crash in mail_storage_match_class().
Timo Sirainen [Mon, 12 Mar 2018 13:29:48 +0000 (15:29 +0200)]
imapc: Fix errors when handling UIDVALIDITY change
This mainly happened when imapc was used with index files and the backend
IMAP server recreated the mailbox. This caused errors like:
Expunged message uid=1 reappeared - reconnecting
Stephan Bosch [Sat, 17 Feb 2018 20:51:00 +0000 (21:51 +0100)]
lib-dcrypt: Reformatted test-stream.c.
Stephan Bosch [Sat, 17 Feb 2018 20:43:06 +0000 (21:43 +0100)]
lib-dcrypt: Reformatted test-crypto.c.
Stephan Bosch [Sat, 17 Feb 2018 20:10:17 +0000 (21:10 +0100)]
lib-dcrypt: Reformatted ostream-encrypt.h.
Stephan Bosch [Sat, 17 Feb 2018 20:09:16 +0000 (21:09 +0100)]
lib-dcryp: Reformatted ostream-encrypt.c.
Stephan Bosch [Sat, 17 Feb 2018 19:49:14 +0000 (20:49 +0100)]
lib-dcrypt: Reformatted istream-decrypt.h.
Stephan Bosch [Sat, 17 Feb 2018 19:47:19 +0000 (20:47 +0100)]
lib-dcrypt: Reformatted istream-decrypt.c.
Stephan Bosch [Sat, 17 Feb 2018 19:24:42 +0000 (20:24 +0100)]
lib-dcrypt: Reformatted dcrypt-private.h.
Stephan Bosch [Sat, 17 Feb 2018 19:15:24 +0000 (20:15 +0100)]
lib-dcrypt: Reformatted dcrypt-openssl.c.
Stephan Bosch [Sat, 17 Feb 2018 18:19:22 +0000 (19:19 +0100)]
lib-dcrypt: Reformatted dcrypt-iostream.h.
Stephan Bosch [Sat, 17 Feb 2018 18:18:28 +0000 (19:18 +0100)]
lib-dcrypt: Reformatted dcrypt-gnutls.c.
Stephan Bosch [Sat, 17 Feb 2018 18:01:48 +0000 (19:01 +0100)]
lib-dcrypt: Reformatted dcrypt.h.
Stephan Bosch [Sat, 17 Feb 2018 17:53:19 +0000 (18:53 +0100)]
lib-drypt: Reformatted dcrypt.c.
Stephan Bosch [Tue, 6 Mar 2018 22:11:32 +0000 (23:11 +0100)]
lib-storage: mail-storage-settings: Pre-parse postmaster_address as an SMTP address.
The pre-parsed address is not currently used anywhere, but this does check that
the postmaster address can successfully be converted to an SMTP address, which
is important for Pigeonhole.
Stephan Bosch [Tue, 6 Mar 2018 20:43:22 +0000 (21:43 +0100)]
lib-smtp: address: Add source syntax check for conversion from RFC5322 addresses.
The message-address parser (for RFC 5322) allows UTF-8 characters in the
localpart, which is not acceptable for SMTP addresses. This change adds a check
that determines whether the source RFC5222 address can be converted into a
SMTP address.
Martti Rannanjärvi [Thu, 15 Feb 2018 15:50:43 +0000 (17:50 +0200)]
lib-master: Don't dup errors to service->set_pool in master_service_settings_read
Use t_strdup() instead.
Martti Rannanjärvi [Fri, 12 Jan 2018 13:28:52 +0000 (15:28 +0200)]
lib-master: Copy settings_parser_get_error() string so it's usable as error_r
Also convert t_strdup()s in master_service_settings_read() into p_strdup()s
using service->set_pool.
Stephan Bosch [Wed, 28 Feb 2018 18:16:36 +0000 (19:16 +0100)]
lmtp: proxy: Use proxy_not_trusted field if returned from passdb.
Before, this field was ignored. Now, if this field is set, no XCLIENT command is
ever sent to the remote proxy.
Stephan Bosch [Wed, 28 Feb 2018 09:22:33 +0000 (10:22 +0100)]
lmtp: proxy: Use ssl/starttls fields if returned from passdb.
Before, these fields were ignored. Now, these are used to determine whether the
proxy connection to the backend should be secured by SSL and how.
Stephan Bosch [Wed, 28 Feb 2018 17:58:42 +0000 (18:58 +0100)]
login-common: Use client SSL certificate and key settings from lib-master.
Stephan Bosch [Wed, 28 Feb 2018 17:14:33 +0000 (18:14 +0100)]
lib-master: Initialize key and certificate for client SSL settings.
This uses the ssl_client_cert and ssl_client_key settings.
Stephan Bosch [Wed, 28 Feb 2018 18:01:17 +0000 (19:01 +0100)]
login-common: Remove unused ssl_require_crl setting.
Stephan Bosch [Sat, 10 Mar 2018 18:13:24 +0000 (19:13 +0100)]
lib-smtp: client: Add smtp_client_connection_create_ip().
This allows making SMTP client connections without performing a DNS lookup. The
optional hostname parameter is used to verify the hostname in the SSL
certificate from the server, if any.
Stephan Bosch [Sat, 10 Mar 2018 18:07:26 +0000 (19:07 +0100)]
lib-smtp: client: smtp_client_connection_create(): ATTR_NULL() pointed to wrong parameter.
Stephan Bosch [Sat, 10 Mar 2018 18:05:40 +0000 (19:05 +0100)]
lib-smtp: client: connection: Perform IP lookup in a separate function.
Stephan Bosch [Sat, 10 Mar 2018 18:22:19 +0000 (19:22 +0100)]
lib: net: Avoid comparing the content of unassigned IPs in net_ip_cmp().
Stephan Bosch [Tue, 27 Feb 2018 21:56:20 +0000 (22:56 +0100)]
lmtp: proxy: Use source_ip proxy field if it is returned from passdb.
Before, it was ignored. Now, it is used as the source IP for the outgoing LMTP
client connection.
Stephan Bosch [Tue, 27 Feb 2018 20:58:17 +0000 (21:58 +0100)]
lib-smtp: client: Add support for connecting from an explicit source IP.
Stephan Bosch [Tue, 27 Feb 2018 20:56:55 +0000 (21:56 +0100)]
lib: connection: Added support for connecting from an explicit source IP.
Timo Sirainen [Mon, 9 Apr 2018 13:41:19 +0000 (16:41 +0300)]
imapc: Fix crash when handling empty mailboxes.
Broken by
c05b4ac76c4c6012958f1cc37e2fccf7a7d31c33
Timo Sirainen [Sun, 25 Mar 2018 20:15:58 +0000 (23:15 +0300)]
imapc: Fix local state if mailbox is empty after reconnection
If local indexes had more than 0 mails, but after reconnection the remote
IMAP server replied with "* 0 EXISTS", the mails in local index weren't
expunged. This could have resulted in:
Panic: file imapc-sync.c: line 328 (imapc_initial_sync_check): assertion failed: (mail_index_is_expunged(view, lseq) || seq_range_exists(&ctx->mbox->delayed_expunged_uids, luid))
Timo Sirainen [Wed, 11 Apr 2018 11:19:06 +0000 (14:19 +0300)]
imapc: If SELECT INBOX fails with NO, treat it as temporary failure
If it's treated as "mailbox doesn't exist", the INBOX autocreation code
will attempt to CREATE INBOX. This is very unlikely to work.
Timo Sirainen [Tue, 27 Feb 2018 10:26:09 +0000 (12:26 +0200)]
imapc: Fix crash when untagged FETCH reply doesn't have key-value pairs
The last key with the missing value is just silently ignored.
Timo Sirainen [Sun, 25 Mar 2018 21:01:26 +0000 (00:01 +0300)]
imapc: Ignore fetch-msn-workarounds/no-msn-updates during initial FETCH
Otherwise duplicate UIDs aren't detected and it causes an assert-crash:
Panic: file imapc-mailbox.c: line 533 (imapc_untagged_fetch): assertion failed: (lseq == mbox->sync_next_lseq)
Aki Tuomi [Fri, 16 Mar 2018 11:40:26 +0000 (13:40 +0200)]
istream-seekable: Record stream size in stat
Otherwise the size is shown 0
Aki Tuomi [Fri, 16 Mar 2018 11:39:40 +0000 (13:39 +0200)]
istream-mail: Move pos back when bailing out on error
Fixes
Panic: file istream.c: line 276 (i_stream_read): assertion failed: ((_stream->pos - _stream->skip) == (prev_pos - prev_skip))
Aki Tuomi [Tue, 27 Mar 2018 13:12:46 +0000 (16:12 +0300)]
login-common: Indicate TLS secured transport on proxied TLS too
Stephan Bosch [Thu, 15 Mar 2018 21:36:45 +0000 (22:36 +0100)]
lib-smtp: test-smtp-server-errors: Add test for DATA command erroneously used with BODY=BINARYMIME.
Stephan Bosch [Thu, 15 Mar 2018 21:34:34 +0000 (22:34 +0100)]
lib-smtp: test-smtp-server-errors: Add tests for missing MAIL and RCPT commands before DATA command.
Stephan Bosch [Thu, 15 Mar 2018 21:36:16 +0000 (22:36 +0100)]
lib-smtp: server: Check that BINARYMIME is not used without CHUNKING.
Stephan Bosch [Wed, 14 Mar 2018 00:54:20 +0000 (01:54 +0100)]
submission: Add 8BITMIME and BINARYMIME back to supported capabilities.
These are supported when the backend provides support. These were erroneously
disabled earlier by
3bf0c0e211ba1e4ee9977a9dfea32e14ebc50aab .
Arkadiusz Miśkiewicz [Wed, 21 Mar 2018 09:29:26 +0000 (11:29 +0200)]
lib-master: Fix dns_wildcard_match usage
Broken by
446c0b02a7802b676e893ccc4934fc7318d950ea
Aki Tuomi [Mon, 19 Mar 2018 09:34:49 +0000 (11:34 +0200)]
NEWS: Update to 2.3.0.1
Aki Tuomi [Mon, 12 Mar 2018 12:50:32 +0000 (14:50 +0200)]
lib-dcrypt: test-stream - Ensure more is read when buffer becomes empty
Aki Tuomi [Mon, 12 Mar 2018 12:48:41 +0000 (14:48 +0200)]
lib-dcrypt: istream-decrypt - Read more if buffer is empty
If there is no more buffered data, try to decrypt more.
- Fixes Panic: file istream.c: line 192 (i_stream_read): assertion failed: (!stream->blocking)
- Fixes infinite loop when stream is not blocking
Timo Sirainen [Thu, 15 Mar 2018 11:19:53 +0000 (13:19 +0200)]
imapc: Update mail size also when RFC822.SIZE is smaller than fetched header size
If this isn't done, istream-mail will detect that the fetched header is
larger than RFC822.SIZE and fail with "Cached message size smaller than
expected"
Timo Sirainen [Thu, 15 Mar 2018 10:20:14 +0000 (12:20 +0200)]
imapc: Update mail size also when istream_opened() hook is called
When fetching a message body the cached message size was set. However,
if istream_opened() hook was used this wasn't done. If a client had
fetched both (RFC822.SIZE BODY.PEEK[]) and the server sent a wrong
RFC822.SIZE, that size was used for the message body size, which resulted
in "Cached message size larger than expected" errors.
Timo Sirainen [Thu, 1 Mar 2018 10:17:16 +0000 (12:17 +0200)]
sdbox: Delete .temp* files on when save/copy transaction is rolled back
For example when copying was aborted due to user being over quota, temp
files were left behind.
Timo Sirainen [Wed, 7 Mar 2018 09:24:30 +0000 (11:24 +0200)]
notify: Fix crash if NO_NOTIFY transaction is rolled back during commit
Fixes: Panic: no notify_mail_txn found
Aki Tuomi [Tue, 6 Mar 2018 13:15:01 +0000 (15:15 +0200)]
lib-master: Correctly match when local_name has multiple names
Reported by J. Nick Koston <nick@cpanel.net>
Aki Tuomi [Tue, 6 Mar 2018 08:33:27 +0000 (10:33 +0200)]
lib-master: Reply from config process is tabescaped
Found by J. Nick Koston <nick@cpanel.net>
Aki Tuomi [Sat, 10 Mar 2018 17:43:27 +0000 (19:43 +0200)]
config: tabescape local name and service
Aki Tuomi [Tue, 6 Mar 2018 08:31:51 +0000 (10:31 +0200)]
config: Make local_name comparison faster
Based on patch by J. Nick Koston <nick@cpanel.net>
Timo Sirainen [Mon, 12 Mar 2018 13:06:13 +0000 (15:06 +0200)]
imapc: Don't try to add mails to index if they already exist there
Broken by
259a4ca5943123915a019799623d2e4a4ef7fd15 when imapc was used
with (not in-memory) index files.
This caused errors like "Append with UID 200, but next_uid = 201"
Stephan Bosch [Fri, 9 Mar 2018 15:09:16 +0000 (16:09 +0100)]
lmtp: Provide hidden support for ORCPT RCPT parameter.
This is normally only available with the DSN capability, but we use it to
forward the original recipient in proxy setups.
This feature was available in the original Dovecot v2.2 LMTP, but it got lost in
the new lib-smtp implementation.
Stephan Bosch [Tue, 27 Feb 2018 22:13:33 +0000 (23:13 +0100)]
lmtp: proxy: Use per-connection SMTP client settings.
This is needed for setting source IP in later change. The peer_trusted setting
must me moved, since this setting is overriden by per-connection settings,
rather than merged.
Stephan Bosch [Fri, 9 Mar 2018 15:03:23 +0000 (16:03 +0100)]
lib-smtp: client: Add support for forcibly enabling support for a capability.
Then it is enabled even when the server does not list it in the EHLO response.
Stephan Bosch [Fri, 9 Mar 2018 15:01:50 +0000 (16:01 +0100)]
lib-smtp: params: Make ORCPT parameter available separately if hidden capability is enabled.
Stephan Bosch [Fri, 9 Mar 2018 14:47:06 +0000 (15:47 +0100)]
lib-smtp: common: Use the BIT() macro for defining the capability flags.
Stephan Bosch [Sun, 24 Dec 2017 13:35:15 +0000 (14:35 +0100)]
lib-smtp: client: Fix rawlog input stream inconsistency by updating streams right after initializing TLS.
Restructured the code to call a new function called smtp_client_connection_streams_changed() which performs all the necessary updates.
Before, enabling rawlog could break the TLS handshake.
Aki Tuomi [Fri, 1 Dec 2017 11:46:10 +0000 (13:46 +0200)]
auth: Include tls=true/false in policy server request
Aki Tuomi [Fri, 1 Dec 2017 11:30:43 +0000 (13:30 +0200)]
auth: Support secured=tls
Aki Tuomi [Mon, 11 Dec 2017 09:16:02 +0000 (11:16 +0200)]
login-common: Pass SSL protocol details to auth
Aki Tuomi [Fri, 1 Dec 2017 11:16:34 +0000 (13:16 +0200)]
login-common: Indicate TLS encryption if haproxy says it was
Aki Tuomi [Mon, 11 Dec 2017 09:08:08 +0000 (11:08 +0200)]
lib-auth: Include ssl protocol details in request when present
Aki Tuomi [Fri, 1 Dec 2017 11:16:07 +0000 (13:16 +0200)]
lib-auth: Add AUTH_REQUEST_FLAG_TLS
Indicates whether connection is over TLS encryption.
Aki Tuomi [Mon, 11 Dec 2017 09:00:41 +0000 (11:00 +0200)]
lib-ssl-iostream: Add accessors for additional SSL protocol details
This is needed in order to send these details as fields to auth process
Aki Tuomi [Wed, 13 Dec 2017 07:52:16 +0000 (09:52 +0200)]
m4: Check for SSL_CIPHER_get_kx_nid
Aki Tuomi [Thu, 11 Jan 2018 14:10:48 +0000 (16:10 +0200)]
auth: Ensure crypt schemes match with samples
Aki Tuomi [Thu, 11 Jan 2018 13:22:30 +0000 (15:22 +0200)]
auth: Fix crypt scheme detection
Broken by
1ebb6094e5105ba7ef521a0177c42d3ea81243f0
Aki Tuomi [Thu, 8 Feb 2018 13:45:55 +0000 (15:45 +0200)]
auth: Support standard auth variables in LDAP subqueries
Stephan Bosch [Sun, 28 Jan 2018 20:39:07 +0000 (21:39 +0100)]
lib-http: client: Assert that req->client != NULL in http_client_request_send_error().
Applies when blocking payload output API is being used.
Addresses a report by scan-build.
Stephan Bosch [Sat, 20 Jan 2018 17:48:00 +0000 (18:48 +0100)]
lib-http: test-http-payload: Initialize http_context in test_client_create_clients().
Fixes complaint from scan-build.
Stephan Bosch [Sat, 20 Jan 2018 15:48:03 +0000 (16:48 +0100)]
lib-smtp: address: Remove useless local variable initialization in smtp_address_clone().
Fixes complaint from scan-build.
Timo Sirainen [Thu, 8 Feb 2018 11:27:25 +0000 (13:27 +0200)]
lib-http: client: Fix using non-context SSL settings
The SSL settings were used for the SSL context, but they weren't used for
individual SSL streams. This broke stream-only settings, like
allow_invalid_cert=TRUE.
Timo Sirainen [Thu, 8 Mar 2018 12:10:42 +0000 (14:10 +0200)]
lib: Remove ostream.get_used_size()
Removes backwards compatibility.
Timo Sirainen [Thu, 8 Mar 2018 12:08:50 +0000 (14:08 +0200)]
lib-test: test-ostream - Implement the new ostream.get_buffer_used_size() API
It's implemented the same way as the old get_used_size(). The default
implementation for get_buffer_avail_size() also works with this.
Timo Sirainen [Thu, 8 Mar 2018 12:08:43 +0000 (14:08 +0200)]
lib: ostream-buffer - Implement the new ostream.get_buffer_used_size() API
It's implemented the same way as the old get_used_size(). The default
implementation for get_buffer_avail_size() also works with this.
Timo Sirainen [Thu, 8 Mar 2018 12:07:34 +0000 (14:07 +0200)]
lib: ostream-file - Implement the new ostream.get_buffer_used_size() API
It's implemented the same way as the old get_used_size(). The default
implementation for get_buffer_avail_size() also works with this.
Timo Sirainen [Sat, 24 Feb 2018 20:04:49 +0000 (22:04 +0200)]
lib-compression: Implement the new ostream.get_buffer_used/avail_size() APIs
The avail_size() implementation isn't fully correct for bzlib/zlib/lzma.
Fixing it requires larger changes though.
Timo Sirainen [Sat, 24 Feb 2018 20:04:27 +0000 (22:04 +0200)]
lib-ssl-iostream: Implement the new ostream.get_buffer_used/avail_size() APIs
Timo Sirainen [Sat, 24 Feb 2018 20:04:11 +0000 (22:04 +0200)]
lib: ostream-multiplex - Implement the new get_buffer_used/avail_size() APIs
Timo Sirainen [Mon, 26 Feb 2018 13:17:36 +0000 (15:17 +0200)]
lib: Remove ostream-escaped
It can't implement o_stream_get_buffer_avail_size() correctly with its
current API. Nothing uses it currently, so easier to just remove it
entirely.