]> git.ipfire.org Git - thirdparty/dovecot/core.git/log
thirdparty/dovecot/core.git
8 years agolib-index: mail_index_update_keywords() - don't assert if adding/removing 0 keywords
Timo Sirainen [Thu, 27 Apr 2017 09:50:13 +0000 (12:50 +0300)] 
lib-index: mail_index_update_keywords() - don't assert if adding/removing 0 keywords

Although it would be nice for the caller to check it, it's easier to do
here. It's mainly a problem with mailbox_keywords_create_valid() that may
unexpectedly create empty keywords.

8 years agoquota: imapc backend now never enforces the quota itself
Timo Sirainen [Wed, 26 Apr 2017 20:41:03 +0000 (23:41 +0300)] 
quota: imapc backend now never enforces the quota itself

It just causes a lot of GETQUOTA/GETQUOTAROOT calls to remove. In theory we
could make this optional, but I doubt anyone would want it.

8 years agolib-storage: Fix crash in mail_get_parts() with a special plugin
Timo Sirainen [Wed, 26 Apr 2017 20:43:24 +0000 (23:43 +0300)] 
lib-storage: Fix crash in mail_get_parts() with a special plugin

If plugin hooks into mail_get_stream() which causes data->parts to be set,
this code crashed with:

Panic: file index-mail.c: line 1163 (index_mail_parse_body): assertion failed: (data->parser_ctx != NULL)

8 years agoimapc: Don't send NOOP on sync if MAILBOX_SYNC_FLAG_FAST is set
Timo Sirainen [Wed, 26 Apr 2017 20:13:20 +0000 (23:13 +0300)] 
imapc: Don't send NOOP on sync if MAILBOX_SYNC_FLAG_FAST is set

Fast syncing should do only the minimal amount of work.

8 years agoimap: Allow plugins to hook into syncing.
Timo Sirainen [Wed, 26 Apr 2017 12:04:23 +0000 (15:04 +0300)] 
imap: Allow plugins to hook into syncing.

Ideally all of the existing pieces in the syncing code would start using
this at some point, so their code could be moved to a more logical location.

8 years agoimap: Move struct imap_sync_context to imap-sync-private.h
Timo Sirainen [Wed, 26 Apr 2017 11:57:40 +0000 (14:57 +0300)] 
imap: Move struct imap_sync_context to imap-sync-private.h

8 years agolib-storage: mail_search_arg_to_imap() - minor keywords writing optimization
Timo Sirainen [Tue, 18 Apr 2017 12:55:08 +0000 (15:55 +0300)] 
lib-storage: mail_search_arg_to_imap() - minor keywords writing optimization

Avoid an extra str_delete() by checking whether the parenthesis are needed.

8 years agolib-storage: mail_search_arg_to_imap() - minor FLAGS writing optimization
Timo Sirainen [Tue, 18 Apr 2017 12:51:39 +0000 (15:51 +0300)] 
lib-storage: mail_search_arg_to_imap() - minor FLAGS writing optimization

Avoid an extra str_delete() by immediately calculating whether the
parenthesis are needed.

8 years agolib: Add bits_is_power_of_two()
Timo Sirainen [Tue, 18 Apr 2017 12:38:59 +0000 (15:38 +0300)] 
lib: Add bits_is_power_of_two()

8 years agoauth: Fixed dovecot/auth hanging when child ntlm_auth crashes while processing an...
Andriy Syrovenko [Sun, 16 Apr 2017 22:14:02 +0000 (01:14 +0300)] 
auth: Fixed dovecot/auth hanging when child ntlm_auth crashes while processing an authentication request

8 years agoimapc: Fix memory leak when closing mailbox with delayed changes
Timo Sirainen [Wed, 26 Apr 2017 11:20:49 +0000 (14:20 +0300)] 
imapc: Fix memory leak when closing mailbox with delayed changes

8 years agoimapc: Use UID SEARCH instead of SEARCH
Timo Sirainen [Tue, 25 Apr 2017 09:39:04 +0000 (12:39 +0300)] 
imapc: Use UID SEARCH instead of SEARCH

UIDs work better for some broken IMAP servers, so it's safer to use it.

Keep using sequences for ESEARCH, since servers supporting it aren't at
least yet known to be broken and the search result with sequences is
smaller.

8 years agoquota: Add imapc backend
Timo Sirainen [Mon, 24 Apr 2017 14:59:53 +0000 (17:59 +0300)] 
quota: Add imapc backend

This allows using imapc storage with imapc quota. The quota acts as
read-only, so it's used only when the current quota usage is explicitly
asked.

The quota can be looked up using either a mailbox name or quota root name.
By default INBOX's quota is looked up. If there are multiple quota roots
returned for the mailbox, only the first quota root returned by the
QUOTAROOT reply is used.

8 years agoquota: Fix namespace deduplication when mailboxes don't have paths.
Timo Sirainen [Mon, 24 Apr 2017 14:58:53 +0000 (17:58 +0300)] 
quota: Fix namespace deduplication when mailboxes don't have paths.

Nothing requires a mailbox path for quota backends, especially imapc.
Still do namespace deduplication based on alias_for settings.

8 years agoimapc: include imapc-client.h in imapc-storage.h
Timo Sirainen [Mon, 24 Apr 2017 14:10:10 +0000 (17:10 +0300)] 
imapc: include imapc-client.h in imapc-storage.h

It was already required to be able to successfully include imapc-storage.h.

8 years agoimap-plugins: Use client_add_capability() for adding dynamic capabilities
Timo Sirainen [Mon, 24 Apr 2017 15:13:13 +0000 (18:13 +0300)] 
imap-plugins: Use client_add_capability() for adding dynamic capabilities

8 years agoimap: Use client_add_capability() for adding all dynamic capabilities
Timo Sirainen [Mon, 24 Apr 2017 15:51:53 +0000 (18:51 +0300)] 
imap: Use client_add_capability() for adding all dynamic capabilities

8 years agoimap: Add client_add_capability()
Timo Sirainen [Mon, 24 Apr 2017 15:12:55 +0000 (18:12 +0300)] 
imap: Add client_add_capability()

8 years agoimapc: Add imapc_features=fetch-bodystructure
Timo Sirainen [Mon, 24 Apr 2017 10:29:13 +0000 (13:29 +0300)] 
imapc: Add imapc_features=fetch-bodystructure

This allows using the remote IMAP server's BODY and BODYSTRUCTURE replies.

8 years agolib-storage: Add mail_storage.nonbody_access_fields
Timo Sirainen [Mon, 24 Apr 2017 10:27:43 +0000 (13:27 +0300)] 
lib-storage: Add mail_storage.nonbody_access_fields

This avoids index_mail_update_access_parts_pre() from opening the mail
stream unnecessarily for fields that can be looked up via other methods
by the storage.

8 years agolib-storage: Add index_mail_get_cached_body[structure]()
Timo Sirainen [Mon, 24 Apr 2017 10:05:48 +0000 (13:05 +0300)] 
lib-storage: Add index_mail_get_cached_body[structure]()

This just moves the code to these functions without changing any of the
logic.

8 years agolib-imap: Make imap_bodystructure_parse_args() public
Timo Sirainen [Mon, 24 Apr 2017 11:04:01 +0000 (14:04 +0300)] 
lib-imap: Make imap_bodystructure_parse_args() public

8 years agolib-imap: Add imap_write_arg() to write only a single arg
Timo Sirainen [Mon, 24 Apr 2017 09:50:10 +0000 (12:50 +0300)] 
lib-imap: Add imap_write_arg() to write only a single arg

8 years agolib-imap-client: Fix imapc_client_get_capabilities() when called without connections
Timo Sirainen [Sun, 23 Apr 2017 16:57:11 +0000 (19:57 +0300)] 
lib-imap-client: Fix imapc_client_get_capabilities() when called without connections

8 years agoimapc: Fix crash in mailbox_exists() when LAYOUT isn't imapc.
Timo Sirainen [Sun, 23 Apr 2017 14:19:36 +0000 (17:19 +0300)] 
imapc: Fix crash in mailbox_exists() when LAYOUT isn't imapc.

Especially breaks LAYOUT=none.

8 years agoimapc: Support imapc_features=search without ESEARCH extension
Timo Sirainen [Sun, 23 Apr 2017 10:35:18 +0000 (13:35 +0300)] 
imapc: Support imapc_features=search without ESEARCH extension

8 years agoimapc: Make sure client is logged in when checking capabilities
Timo Sirainen [Sun, 23 Apr 2017 16:14:54 +0000 (19:14 +0300)] 
imapc: Make sure client is logged in when checking capabilities

Especially with imapc_features=delay-login the capability could have been
looked at before the client was even connected.

8 years agoimapc: Add imapc_mailbox.capabilities
Timo Sirainen [Sun, 23 Apr 2017 15:51:02 +0000 (18:51 +0300)] 
imapc: Add imapc_mailbox.capabilities

Use it instead of imapc_client_get_capabilities(). Simplifies the
following patch.

8 years agoimapc: Rename imapc_storage_has_modseqs() to imapc_mailbox_has_modseqs()
Timo Sirainen [Sun, 23 Apr 2017 15:57:15 +0000 (18:57 +0300)] 
imapc: Rename imapc_storage_has_modseqs() to imapc_mailbox_has_modseqs()

Simplifies the following patch.

8 years agocassandra: Use fallback consistency for CASS_ERROR_LIB_NO_HOSTS_AVAILABLE errors
Timo Sirainen [Fri, 21 Apr 2017 09:54:17 +0000 (12:54 +0300)] 
cassandra: Use fallback consistency for CASS_ERROR_LIB_NO_HOSTS_AVAILABLE errors

I'm not entirely sure if this is always appropriate, but at least this error
happens every time when attempting to use write_consistency=two when there
is only a single Cassandra node.

8 years agodsync-server: Fix support for dsync_features=empty-header-workaround
Timo Sirainen [Fri, 21 Apr 2017 17:59:55 +0000 (20:59 +0300)] 
dsync-server: Fix support for dsync_features=empty-header-workaround

Fixes:
Panic: Unknown key: empty_hdr_workaround

8 years ago*-login: Require client_vfuncs.send_raw_data() to be set
Timo Sirainen [Fri, 21 Apr 2017 10:36:27 +0000 (13:36 +0300)] 
*-login: Require client_vfuncs.send_raw_data() to be set

This removes backwards compatibility for managesieve-login.

8 years ago*-login: Add client_vfuncs.send_raw_data()
Timo Sirainen [Fri, 21 Apr 2017 10:35:33 +0000 (13:35 +0300)] 
*-login: Add client_vfuncs.send_raw_data()

This allows login plugins to hook into seeing all the data that is sent to
the imap/pop3 client.

8 years agoimap: Add imap_client_vfuncs.send_tagline()
Timo Sirainen [Fri, 21 Apr 2017 10:27:18 +0000 (13:27 +0300)] 
imap: Add imap_client_vfuncs.send_tagline()

This allows plugins to catch all the IMAP command replies.

8 years ago*-login: Unload plugins at deinit.
Timo Sirainen [Tue, 18 Apr 2017 07:23:37 +0000 (10:23 +0300)] 
*-login: Unload plugins at deinit.

8 years agolib-storage: Allow mail_add_temp_wanted_fields() to be called before mail_set_seq*()
Timo Sirainen [Wed, 19 Apr 2017 12:01:19 +0000 (15:01 +0300)] 
lib-storage: Allow mail_add_temp_wanted_fields() to be called before mail_set_seq*()

Quota plugin was already doing this, but it didn't actually work. It was
also crashing with imapc:

Panic: file mail-cache-lookup.c: line 341 (mail_cache_field_exists): assertion failed: (seq > 0)

8 years agolib-storage: Add mailbox_attribute_unregister_internal[s]()
Timo Sirainen [Thu, 20 Apr 2017 16:16:46 +0000 (19:16 +0300)] 
lib-storage: Add mailbox_attribute_unregister_internal[s]()

This allows plugins to unregister internal attributes when they're unloaded.

8 years agolib-storage: mail_search_args_simplify() - deduplicate flags
Timo Sirainen [Thu, 13 Apr 2017 12:13:19 +0000 (15:13 +0300)] 
lib-storage: mail_search_args_simplify() - deduplicate flags

This needs to be done in a bit more complicated way because multiple
SEARCH_FLAGS parameters are wanted to be merged together using a single
shared value.flags. Move this merging last after all the deduplication is
done.

8 years agolib-storage: mail_search_args_simplify() - simplify "x AND NOT x"
Timo Sirainen [Thu, 13 Apr 2017 12:09:19 +0000 (15:09 +0300)] 
lib-storage: mail_search_args_simplify() - simplify "x AND NOT x"

Implemented for SEARCH_KEYWORD, SEARCH_TEXT, SEARCH_BODY and SEARCH_HEADER*.
Dates and sizes would need special code, which gets a bit complicated.

8 years agolib-storage: Add more tests to test-mail-search-args-simplify
Timo Sirainen [Thu, 13 Apr 2017 11:05:55 +0000 (14:05 +0300)] 
lib-storage: Add more tests to test-mail-search-args-simplify

8 years agolib-storage: mail_search_arg_to_imap() - remove () around a single flag/keyword
Timo Sirainen [Thu, 13 Apr 2017 10:57:41 +0000 (13:57 +0300)] 
lib-storage: mail_search_arg_to_imap() - remove () around a single flag/keyword

8 years agolib-storage: mail_search_args_simplify() - deduplicate KEYWORDs
Timo Sirainen [Thu, 13 Apr 2017 10:04:25 +0000 (13:04 +0300)] 
lib-storage: mail_search_args_simplify() - deduplicate KEYWORDs

8 years agolib-storage: mail_search_args_to_cmdline() - Fix writing FLAGS & KEYWORDS
Timo Sirainen [Thu, 13 Apr 2017 09:51:25 +0000 (12:51 +0300)] 
lib-storage: mail_search_args_to_cmdline() - Fix writing FLAGS & KEYWORDS

8 years agolib-storage: mail_search_args_to_cmdline() - Write MAILBOX glob without X- prefix
Timo Sirainen [Thu, 13 Apr 2017 09:36:30 +0000 (12:36 +0300)] 
lib-storage: mail_search_args_to_cmdline() - Write MAILBOX glob without X- prefix

Since SEARCH_MAILBOX is written out as "MAILBOX", SEARCH_MAILBOX_GLOB should
also be written as "MAILBOX" rather than "X-MAILBOX".

8 years agoMakefile: Another fix for make distcheck when using scan-build
Timo Sirainen [Wed, 12 Apr 2017 09:24:05 +0000 (12:24 +0300)] 
Makefile: Another fix for make distcheck when using scan-build

It seems to run two configures with different parameters, which results in
some of the files not being cleaned up. So this hopefully fixes:

ERROR: files left in build directory after distclean:
./src/util/tcpwrap

8 years agolib-imap: imap-bodystructure: Fixed handling of a multipart part without children...
Stephan Bosch [Tue, 11 Apr 2017 07:34:11 +0000 (09:34 +0200)] 
lib-imap: imap-bodystructure: Fixed handling of a multipart part without children in imap_bodystructure_parse().

In imap_bodystructure_write(), an empty multipart part is addressed by generating an empty text/plain part.
However, when parsing that back with imap_bodystructure_parse() against a parsed message_part tree, this case needs to be considered explicitly.
Otherwise, it will not be able to match the message part hierarchies.

This adds a test suite item that tests both the write (previous commit) and parse functions.

8 years agolib-imap: imap-bodystructure: Fixed handling of a multipart part without children...
Stephan Bosch [Wed, 12 Apr 2017 08:13:15 +0000 (10:13 +0200)] 
lib-imap: imap-bodystructure: Fixed handling of a multipart part without children in imap_bodystructure_write().

In that case it writes an empty text/plain part to prevent generating an invalid BODYSTRUCURE.
However, it always generated the basic BODY version without the extra fields for a full BODYSTRUCTURE.

8 years agoauth: Check var_expand error in vpopmail
Aki Tuomi [Tue, 11 Apr 2017 17:39:55 +0000 (20:39 +0300)] 
auth: Check var_expand error in vpopmail

8 years agoauth: Fix compile problem with vpopmail
Aki Tuomi [Tue, 11 Apr 2017 17:32:19 +0000 (20:32 +0300)] 
auth: Fix compile problem with vpopmail

79fe1b28df44ba22b230326bee895583c1df5a28 forgot to remove const from table.

8 years agoauth: Filter passdbs on credentials lookup start
Aki Tuomi [Tue, 11 Apr 2017 12:50:14 +0000 (15:50 +0300)] 
auth: Filter passdbs on credentials lookup start

Consistency with how plain verify works.

8 years agoauth: Fix mechanism filter to support `none`
Aki Tuomi [Tue, 11 Apr 2017 12:47:33 +0000 (15:47 +0300)] 
auth: Fix mechanism filter to support `none`

Otherwise credentials lookup can fail. None indicates
that it should match when no mech is specified.

8 years agoauth: Use mem_equals_timing_safe() for all password hash comparisons.
Timo Sirainen [Tue, 11 Apr 2017 12:33:22 +0000 (15:33 +0300)] 
auth: Use mem_equals_timing_safe() for all password hash comparisons.

It's unlikely these could be used to perform timing attacks, since the
attacker would have to have broken MD5/SHA badly enough to be able to
quickly generate string that result in wanted hashes. Still, the extra
cost is almost nothing and it's always better to be super paranoid!

8 years agoauth: Shuffle failed auth requests before sending the failure replies.
Timo Sirainen [Sun, 9 Apr 2017 12:31:11 +0000 (15:31 +0300)] 
auth: Shuffle failed auth requests before sending the failure replies.

This might be helpful against some timing attacks.

Using Fisher–Yates shuffle.

8 years agodoveadm: Make doveadm_password safe against timing attacks.
Timo Sirainen [Sun, 9 Apr 2017 12:19:25 +0000 (15:19 +0300)] 
doveadm: Make doveadm_password safe against timing attacks.

8 years agoauth: Make plaintext password comparisons safe against timing attacks
Timo Sirainen [Sat, 8 Apr 2017 21:50:15 +0000 (00:50 +0300)] 
auth: Make plaintext password comparisons safe against timing attacks

8 years agolib: Add mem_equals_timing_safe()
Timo Sirainen [Sat, 8 Apr 2017 21:49:37 +0000 (00:49 +0300)] 
lib: Add mem_equals_timing_safe()

8 years agofts: Initialize fts after namespaces have been added
Aki Tuomi [Mon, 10 Apr 2017 17:53:29 +0000 (20:53 +0300)] 
fts: Initialize fts after namespaces have been added

This way paths are correctly set, and fts indexes are
written to correct place. This affects mbox with lucene.

Fixes Panic: file mailbox-list.c: line 1158 (mailbox_list_try_mkdir_root): assertion failed (strncmp(root_dir, path, strlen(root_dir)) == 0)

8 years agofts: Remove indentation from fts_mailbox_list_created
Aki Tuomi [Tue, 11 Apr 2017 12:05:53 +0000 (15:05 +0300)] 
fts: Remove indentation from fts_mailbox_list_created

Preparation for next commit

8 years agoMakefile: Fix make distcheck when using scan-build
Timo Sirainen [Tue, 11 Apr 2017 11:55:04 +0000 (14:55 +0300)] 
Makefile: Fix make distcheck when using scan-build

The _build directory shouldn't be deleted afterwards or it'll just fail.

8 years agoImprove valgrind suppressions.
Timo Sirainen [Tue, 11 Apr 2017 08:23:17 +0000 (11:23 +0300)] 
Improve valgrind suppressions.

8 years agolib-imap-client: Fixes to unit test
Timo Sirainen [Mon, 10 Apr 2017 15:12:47 +0000 (18:12 +0300)] 
lib-imap-client: Fixes to unit test

8 years agolib-imap-client: Add unit test
Timo Sirainen [Mon, 10 Apr 2017 14:10:21 +0000 (17:10 +0300)] 
lib-imap-client: Add unit test

Initially this tests some connection and reconnection problems.

8 years agolib-imap-client: Include "ms" in reconnect warning message
Timo Sirainen [Mon, 10 Apr 2017 14:09:29 +0000 (17:09 +0300)] 
lib-imap-client: Include "ms" in reconnect warning message

8 years agolib-imap-client: Fix reconnection
Timo Sirainen [Mon, 10 Apr 2017 14:07:28 +0000 (17:07 +0300)] 
lib-imap-client: Fix reconnection

There was already code for reconnection. We just shouldn't have gone very
far in imapc_connection_connect() if we were still waiting for reconnection
delay to pass.

8 years agolib-imap-client: Remove hardcoded IMAPC_CONNECT_RETRY_WAIT_MSECS
Timo Sirainen [Mon, 10 Apr 2017 14:06:34 +0000 (17:06 +0300)] 
lib-imap-client: Remove hardcoded IMAPC_CONNECT_RETRY_WAIT_MSECS

We have a setting for it now.

8 years agolib-imap-client: Disconnection during LOGIN should still have state=disconnected
Timo Sirainen [Mon, 10 Apr 2017 13:44:52 +0000 (16:44 +0300)] 
lib-imap-client: Disconnection during LOGIN should still have state=disconnected

It's not an authentication failure, which would imply that the user or
password was wrong.

8 years agolib-imap-client: Make command tag counter externally accessible
Timo Sirainen [Mon, 10 Apr 2017 13:18:46 +0000 (16:18 +0300)] 
lib-imap-client: Make command tag counter externally accessible

This allows unit tests to reset it.

8 years agolib-imap-client: Call the public login callback exactly once.
Timo Sirainen [Mon, 10 Apr 2017 12:49:24 +0000 (15:49 +0300)] 
lib-imap-client: Call the public login callback exactly once.

Previously it was also called only once, as long as there were only a single
imap connection. (The current imapc code wouldn't create more than one
connection.) It was a bit confusing what the expectation was, so now the
callback is never called more than once.

8 years agolib-imap-client: imapc_client_deinit() didn't set client=NULL
Timo Sirainen [Mon, 10 Apr 2017 11:14:40 +0000 (14:14 +0300)] 
lib-imap-client: imapc_client_deinit() didn't set client=NULL

8 years agoimapc: Change imapc_connection_retry_interval setting to be in milliseconds.
Timo Sirainen [Mon, 10 Apr 2017 10:49:33 +0000 (13:49 +0300)] 
imapc: Change imapc_connection_retry_interval setting to be in milliseconds.

8 years agoimapc: Change imapc_connection_retry_interval default to be 1 second.
Timo Sirainen [Mon, 10 Apr 2017 10:50:40 +0000 (13:50 +0300)] 
imapc: Change imapc_connection_retry_interval default to be 1 second.

10 secs at least is too high. Usually the connection problem is very
intermittent and even an immediate reconnection would succeed.

8 years agolib-imap-client: Change connect_retry_interval_secs to _msecs
Timo Sirainen [Mon, 10 Apr 2017 10:48:23 +0000 (13:48 +0300)] 
lib-imap-client: Change connect_retry_interval_secs to _msecs

This allows caller to provide better precision.

8 years agolib-imap-client: Use struct timeval for tracking last_connect time.
Timo Sirainen [Mon, 10 Apr 2017 10:46:03 +0000 (13:46 +0300)] 
lib-imap-client: Use struct timeval for tracking last_connect time.

This provides better accuracy when calculating how much time there's left
until reconnection.

8 years agolib-http: Improve request stats text.
Timo Sirainen [Mon, 10 Apr 2017 10:02:17 +0000 (13:02 +0300)] 
lib-http: Improve request stats text.

It's important to know how long the request was in queue before it was sent.

Also the "n attempts in m secs" makes more sense if it was counting only the
time after the initial request was sent, not including the queuing time.

If there is more than 1 attempt, log separately how long all the attempts
were waited on vs. how long the last attempt took.

8 years agolib-http: Add http_client_request_stats.first_sent_msecs
Timo Sirainen [Mon, 10 Apr 2017 09:59:08 +0000 (12:59 +0300)] 
lib-http: Add http_client_request_stats.first_sent_msecs

Also rename sent_msecs to last_sent_msecs.

8 years agolib-http: Track request's first and last send attempt times separately.
Timo Sirainen [Mon, 10 Apr 2017 09:53:43 +0000 (12:53 +0300)] 
lib-http: Track request's first and last send attempt times separately.

8 years agolib-program-client unit test: Let OS assign the listener port
Timo Sirainen [Mon, 10 Apr 2017 08:51:51 +0000 (11:51 +0300)] 
lib-program-client unit test: Let OS assign the listener port

8 years ago*-login: Move code to login_anvil_init()
Timo Sirainen [Wed, 5 Apr 2017 09:36:32 +0000 (12:36 +0300)] 
*-login: Move code to login_anvil_init()

Calling this allows plugins that need to talk to anvil make sure they have
an anvil connection even if mail_max_userip_connections=0.

8 years agodoveadm who: Don't aggregate empty usernames with different IPs
Timo Sirainen [Wed, 5 Apr 2017 09:52:14 +0000 (12:52 +0300)] 
doveadm who: Don't aggregate empty usernames with different IPs

We'll assume that in that case anvil is used to track IP addresses rather
than usernames. (Dovecot core doesn't currently use this.)

8 years agolib-http: Remove unnecessary enum declaration.
Timo Sirainen [Fri, 7 Apr 2017 06:28:55 +0000 (09:28 +0300)] 
lib-http: Remove unnecessary enum declaration.

Most of these were removed by a8fe899601735459641edae975c0fa08be8482e2

8 years agoexample-config: Add blocking setting to dovecot-ldap.conf.ext
Timo Sirainen [Wed, 5 Apr 2017 11:14:57 +0000 (14:14 +0300)] 
example-config: Add blocking setting to dovecot-ldap.conf.ext

8 years agoauth-var-expand-crypt plugin: Add missing ldflags
Timo Sirainen [Sat, 8 Apr 2017 06:58:57 +0000 (09:58 +0300)] 
auth-var-expand-crypt plugin: Add missing ldflags

8 years agofts-solr: Don't double-escape headers.
Timo Sirainen [Sun, 9 Apr 2017 12:48:59 +0000 (15:48 +0300)] 
fts-solr: Don't double-escape headers.

8 years agoauth: Fix crash in passdb imap on connection failures
Timo Sirainen [Fri, 7 Apr 2017 13:27:12 +0000 (16:27 +0300)] 
auth: Fix crash in passdb imap on connection failures

8 years agolib-ssl-iostream: Don't require SSL CA certs if allow_invalid_cert=TRUE
Timo Sirainen [Fri, 7 Apr 2017 13:13:13 +0000 (16:13 +0300)] 
lib-ssl-iostream: Don't require SSL CA certs if allow_invalid_cert=TRUE

This happened only when verify_remote_cert was also TRUE. But this behavior
now allows verifying the cert without actually requiring it to be valid.

8 years agoauth: passdb imap: Use ssl_client_ca_* settings.
Timo Sirainen [Fri, 7 Apr 2017 12:47:27 +0000 (15:47 +0300)] 
auth: passdb imap: Use ssl_client_ca_* settings.

The args = ssl_ca_dir=.. setting still overrides the ssl_client_ca_dir.

8 years agoglobal: Remove extra ';' to fix compiler errors
Timo Sirainen [Fri, 7 Apr 2017 06:34:39 +0000 (09:34 +0300)] 
global: Remove extra ';' to fix compiler errors

Sun C doesn't like them.

8 years agoglobal: Make sure all files end with newline
Timo Sirainen [Fri, 7 Apr 2017 06:32:30 +0000 (09:32 +0300)] 
global: Make sure all files end with newline

Fixes compiler warnings with Sun C.

8 years agofs-posix: Fix FS_METADATA_WRITE_FNAME to preserve the path
Timo Sirainen [Fri, 7 Apr 2017 07:55:40 +0000 (10:55 +0300)] 
fs-posix: Fix FS_METADATA_WRITE_FNAME to preserve the path

It should only change the filename.

8 years agodoveadm force-resync: Skip autocreated mailboxes that don't exist yet.
Timo Sirainen [Fri, 7 Apr 2017 09:45:49 +0000 (12:45 +0300)] 
doveadm force-resync: Skip autocreated mailboxes that don't exist yet.

Since they don't exist, there's nothing to resync in them either.
This avoids unnecessarily creating them.

8 years agodict-sql: Fix setting $variables to iteration key when map had multiple values
Timo Sirainen [Fri, 7 Apr 2017 09:42:12 +0000 (12:42 +0300)] 
dict-sql: Fix setting $variables to iteration key when map had multiple values

8 years agolib: Redefine NULL only if HAVE_TYPE_CHECKS is set
Timo Sirainen [Fri, 7 Apr 2017 06:14:27 +0000 (09:14 +0300)] 
lib: Redefine NULL only if HAVE_TYPE_CHECKS is set

8 years agolib: Add a common HAVE_TYPE_CHECKS
Timo Sirainen [Fri, 7 Apr 2017 06:11:53 +0000 (09:11 +0300)] 
lib: Add a common HAVE_TYPE_CHECKS

I'm not sure if it should be checking gcc >= 3.0 or 3.3, but they're
all old so doesn't really matter.

The __cplusplus check was added to both, since it wouldn't have done
anything anyway as COMPILE_ERROR_IF_TRUE() is 0 for __cplusplus.

8 years ago*-login: Minor logging cleanup if client is disconnected before sending banner.
Timo Sirainen [Wed, 5 Apr 2017 12:59:51 +0000 (15:59 +0300)] 
*-login: Minor logging cleanup if client is disconnected before sending banner.

Avoid unnecessarily adding "(no auth attempts in 0 secs)" when the reason
string already makes it clear that the user didn't even have a chance to
authenticate.

This kind of disconnection currently happens only with some plugins.

8 years agoexample-config: Add connect/read/write_timeout to mysql connect settings
Timo Sirainen [Thu, 6 Apr 2017 17:43:20 +0000 (20:43 +0300)] 
example-config: Add connect/read/write_timeout to mysql connect settings

8 years agoimapc: Remove "_sec" suffix from imapc_connection_retry_interval_secs
Timo Sirainen [Thu, 6 Apr 2017 17:00:31 +0000 (20:00 +0300)] 
imapc: Remove "_sec" suffix from imapc_connection_retry_interval_secs

Its type is SET_TIME, so the value doesn't have to be in seconds.

8 years agoimap-login: Retain client ID only when enabled
Aki Tuomi [Thu, 6 Apr 2017 16:49:07 +0000 (19:49 +0300)] 
imap-login: Retain client ID only when enabled

8 years agolib-storage: Set internal error in imapc_list_get_hierarchy_sep
Aki Tuomi [Wed, 5 Apr 2017 11:23:47 +0000 (14:23 +0300)] 
lib-storage: Set internal error in imapc_list_get_hierarchy_sep

8 years agoimapc: Use IMAPC_COMMAND_STATE_AUTH_FAILED to indicate auth failure
Aki Tuomi [Wed, 5 Apr 2017 11:23:26 +0000 (14:23 +0300)] 
imapc: Use IMAPC_COMMAND_STATE_AUTH_FAILED to indicate auth failure

8 years agolib-imap-client: Do not reset ips when reconnecting
Aki Tuomi [Wed, 5 Apr 2017 11:22:38 +0000 (14:22 +0300)] 
lib-imap-client: Do not reset ips when reconnecting

Avoids infinite loop