]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Aki Tuomi [Mon, 25 Apr 2022 18:06:38 +0000 (21:06 +0300)]
m4: dovecot.m4 - Update compiler checks
Require at least C99 compiler and try to use gnu11, gnu99, c11, c99.
This avoids using too modern syntax.
Aki Tuomi [Mon, 25 Apr 2022 17:31:10 +0000 (20:31 +0300)]
m4: dovecot.m4 - Modernize m4 syntax
Aki Tuomi [Mon, 25 Apr 2022 17:28:19 +0000 (20:28 +0300)]
m4: dbqlk.m4 - Modernize m4 syntax
Aki Tuomi [Mon, 25 Apr 2022 17:26:19 +0000 (20:26 +0300)]
m4: crypt_xpg6.m4 - Modernize m4 syntax
Aki Tuomi [Mon, 25 Apr 2022 13:06:46 +0000 (16:06 +0300)]
m4: blockdev.m4 - Modernize m4 syntax
Aki Tuomi [Mon, 25 Apr 2022 13:05:22 +0000 (16:05 +0300)]
m4: arc4random.m4 - Modernize m4 syntax
Aki Tuomi [Mon, 25 Apr 2022 13:04:08 +0000 (16:04 +0300)]
m4: ac_typeof.m4 - Modernize m4 syntax
Aki Tuomi [Mon, 25 Apr 2022 12:58:21 +0000 (15:58 +0300)]
configure.ac: Modernize m4 syntax
Marco Bettini [Mon, 20 Jun 2022 14:35:24 +0000 (14:35 +0000)]
lib-storage: Make NO-NOSELECT the default
Use KEEP-NOSELECT to revert the old behaviour.
Marco Bettini [Tue, 21 Jun 2022 08:17:21 +0000 (08:17 +0000)]
lib-storage: struct mailbox_list_settings - Use bit fields for flags
Marco Bettini [Tue, 28 Jun 2022 15:27:55 +0000 (15:27 +0000)]
plugins: Drop mailbox-alias
Marco Bettini [Tue, 28 Jun 2022 14:37:55 +0000 (14:37 +0000)]
lib-storage: mbox_sync_handle_eof_updates() - Fix for crash on implicit conversion
implicit conversion from type ‘unsigned long’ of value
0xFFFFFFFFFFFFF3FD (64-bit, unsigned) to type ‘off_t’ (aka ‘long’)
changed the value to -3075 (64-bit, signed)
Timo Sirainen [Mon, 25 Jan 2021 19:42:21 +0000 (21:42 +0200)]
lib-index: Fix updating minor_version for old index files
If the index was originally created between Dovecot v1.1 and v2.1, the
minor_version wasn't updated. This caused log2_rotate_time and
last_temp_file_scan fields to become reset to 0 constantly, which
prevented optimizations using those fields.
Timo Sirainen [Sun, 5 Apr 2020 13:58:57 +0000 (16:58 +0300)]
lib-login: Move login_request/reply to login-interface.h
These are used by both the login-client and login-server.
Timo Sirainen [Sat, 4 Apr 2020 21:43:37 +0000 (00:43 +0300)]
lib-login: Add comments to .h file headers explaining what they are doing
Timo Sirainen [Sun, 5 Apr 2020 13:49:41 +0000 (16:49 +0300)]
lib-login: Rename "master login auth" structs/defines/functions to "login server auth"
Timo Sirainen [Sun, 5 Apr 2020 13:45:08 +0000 (16:45 +0300)]
lib-login: Rename master-login-auth.[ch] to login-server-auth.[ch]
Timo Sirainen [Sun, 5 Apr 2020 13:38:09 +0000 (16:38 +0300)]
lib-login: Rename "master login" structs/defines/functions to "login server"
* master_login -> login_server
* master_login_client -> login_server_request
* other master_login_* -> login_server_*
Timo Sirainen [Sun, 5 Apr 2020 13:27:52 +0000 (16:27 +0300)]
lib-login: Use i_close_fd() where possible
Timo Sirainen [Sun, 5 Apr 2020 13:14:17 +0000 (16:14 +0300)]
lib-login: Rename master-login.[ch] to login-server.[ch]
Timo Sirainen [Sun, 5 Apr 2020 13:13:15 +0000 (16:13 +0300)]
login-common: Replace master-login.h include with login-client.h
Timo Sirainen [Sat, 4 Apr 2020 21:27:52 +0000 (00:27 +0300)]
lib-login: Rename "master auth" structs/defines/functions to "login"
* master_auth -> login_client_list
* master_auth_connection -> login_connection
* master_auth_request -> login_request
* master_auth_reply -> login_reply
* master_auth_request_params -> login_client_request_params
* MASTER_AUTH_* mostly to LOGIN_REQUEST_*, but also LOGIN_REPLY_* and LOGIN_CLIENT_*
Timo Sirainen [Sat, 4 Apr 2020 21:21:09 +0000 (00:21 +0300)]
lib-login: Rename master-auth.[ch] to login-client.[ch]
This better describes what it's doing.
Timo Sirainen [Sat, 4 Apr 2020 21:10:15 +0000 (00:10 +0300)]
doveadm: doveadm-auth - Remove unused master_auth_request variables
Timo Sirainen [Sat, 4 Apr 2020 20:59:50 +0000 (23:59 +0300)]
auth: Fix assert-crash if auth-master client sent too long cookie in REQUEST
Only root can connect to auth-master socket by default, so this shouldn't
have caused any real problems.
Timo Sirainen [Sat, 4 Apr 2020 20:55:21 +0000 (23:55 +0300)]
global: Use AUTH_CLIENT_PROTOCOL_MAJOR/MINOR_VERSION also for auth-master socket
Both auth-client and auth-master are using the same auth protocol. There's
no need to have separate version numbers for auth-master socket, it's just
confusing things. The auth server's auth-client version checking code was
already wrongly using AUTH_MASTER_PROTOCOL_MAJOR_VERSION.
Timo Sirainen [Sat, 4 Apr 2020 20:48:51 +0000 (23:48 +0300)]
lib-login, login-common: Rename master_auth_request_full() to master_auth_request()
Timo Sirainen [Mon, 3 May 2021 16:16:04 +0000 (19:16 +0300)]
lib-auth: Merge test-auth-master and test-auth-master2
Timo Sirainen [Sat, 4 Apr 2020 20:41:32 +0000 (23:41 +0300)]
master: Move test-auth-* unit tests to lib-auth
Now that it no longer depends on lib-master, there's no cyclic dependency
problem.
Because test-auth-master already exists, this commit temporarily creates a
second test-auth-master2.
Timo Sirainen [Sat, 4 Apr 2020 20:35:55 +0000 (23:35 +0300)]
master: test-auth-* - Remove lib-master dependency
Timo Sirainen [Sat, 4 Apr 2020 19:27:59 +0000 (22:27 +0300)]
master: Move test-master-login-auth unit test to lib-login
Timo Sirainen [Sat, 4 Apr 2020 19:20:49 +0000 (22:20 +0300)]
lib-master: Move master-auth/login code to lib-login
This makes it clearer that this code is only used for "login services"
while lib-master is used by all services.
Timo Sirainen [Sat, 4 Apr 2020 19:11:24 +0000 (22:11 +0300)]
lib-master: master_service - Remove dependency for master_login.
Marco Bettini [Wed, 22 Jun 2022 08:35:17 +0000 (08:35 +0000)]
global: Move setting push_notification_backend to old-set-parser
Marco Bettini [Mon, 27 Jun 2022 12:40:47 +0000 (14:40 +0200)]
config: old_settings_handle_path() - Handle case where path/<x>/ has x other than 0
Timo Sirainen [Mon, 20 Jun 2022 19:27:15 +0000 (22:27 +0300)]
lib-imap: fuzz-imap-bodystructure - Fix parsing to be used correctly
imap_bodystructure_parse_full() should be used to generate the message_parts
correctly based on the input string. This fixes wrongly triggered panics.
Marco Bettini [Fri, 17 Jun 2022 15:03:13 +0000 (15:03 +0000)]
global: Rename auth_default_realm into auth_default_domain
Marco Bettini [Mon, 20 Jun 2022 13:12:19 +0000 (13:12 +0000)]
auth: Removing stray whitespaces
Marco Bettini [Mon, 20 Jun 2022 13:12:37 +0000 (13:12 +0000)]
doc/example-config: Removing stray whitespaces
Timo Sirainen [Fri, 17 Jun 2022 10:19:16 +0000 (13:19 +0300)]
lib-storage: Disable all events for raw user/storage
The events can be enabled for debug logging, but not for statistics
and such. These were just causing confusion.
Timo Sirainen [Fri, 17 Jun 2022 10:19:06 +0000 (13:19 +0300)]
lib: Add event_disable_callbacks()
Timo Sirainen [Thu, 16 Jun 2022 11:37:21 +0000 (14:37 +0300)]
lib-smtp: Clarify how timeouts actually work
connect_timeout_msecs can't ever default to command_timeout_msecs, because
a zero timeout gets converted to the default 30s timeout.
Martti Rannanjärvi [Thu, 16 Jun 2022 13:53:47 +0000 (16:53 +0300)]
mail-crypt: mail_crypt_user_set_private_key() - Move mailbox alloc later to avoid a panic
This fixes:
Panic: file mail-user.c: line 252 (mail_user_deinit): assertion failed: ((*user)->refcount == 1)
When mail_crypt_require_encrypted_user_key is enabled and the user does
not have key or password.
Martti Rannanjärvi [Thu, 16 Jun 2022 12:56:09 +0000 (15:56 +0300)]
mail-crypt: Remove unused mail_crypt_box_get_or_gen_public_key()
Stephan Bosch [Tue, 26 Apr 2022 00:14:08 +0000 (02:14 +0200)]
lib: unichar - Don't return 0 from uni_utf8_get_char_n() when NUL byte is encountered.
This caused problems for code that uses this function to read from a
size-limited buffer that can contain NUL bytes; i.e. lib-smtp. In that case,
hitting a NUL byte yields the same result as hitting the end of the buffered
data, which is unacceptable. No other code relies on the function returning 0,
so this can be changed safely to returning -1 instead.
Stephan Bosch [Thu, 16 Jun 2022 23:18:48 +0000 (01:18 +0200)]
lib-http: http-client-request - Fix handling of request aborted before submission.
Modifying an aborted request was not always allowed, which could yield assertion
errors when the request was aborted before submission. This would for example
happen when a payload was assigned to a new request created from an invalid URL.
Timo Sirainen [Thu, 16 Jun 2022 07:57:15 +0000 (10:57 +0300)]
dsync: Add more debug logging
Timo Sirainen [Thu, 16 Jun 2022 07:55:42 +0000 (10:55 +0300)]
dsync: Fix dsync_features=no-header-hashes to match UIDs
Mails were previously assumed to be the same, even if their UIDs didn't
match. This caused the sync to misbehave in some situations.
Timo Sirainen [Tue, 14 Jun 2022 11:10:24 +0000 (14:10 +0300)]
lib-lua: Add DLUA_TABLE_STRING_SELF()
Timo Sirainen [Tue, 14 Jun 2022 10:46:43 +0000 (13:46 +0300)]
lib-dict: dict-lua - Export dovecot.dict.ITERATE_FLAG_*
Timo Sirainen [Tue, 14 Jun 2022 11:00:16 +0000 (14:00 +0300)]
lib-lua: Add DLUA_TABLE_ENUM_NOPREFIX()
Timo Sirainen [Tue, 14 Jun 2022 09:47:11 +0000 (12:47 +0300)]
lib-dict-backend: dict-sql - Implement dict_expire_scan()
Timo Sirainen [Tue, 14 Jun 2022 09:25:45 +0000 (12:25 +0300)]
dict: Add dict-expire service
If enabled with service dict-expire { process_min_avail=1 }, this service
will go through all configured dicts and delete all expired fields every
30 seconds.
Timo Sirainen [Tue, 14 Jun 2022 09:25:39 +0000 (12:25 +0300)]
lib-dict: Add dict_expire_scan()
Timo Sirainen [Wed, 15 Jun 2022 12:48:18 +0000 (15:48 +0300)]
dict-client: Fix potential crash if iteration fails to send the command
Timo Sirainen [Tue, 7 Jun 2022 14:33:23 +0000 (17:33 +0300)]
lib-lua: Fix atpanic error message with Lua threads
The function used the main thread's state for finding the error
instead of the thread-specific state.
Timo Sirainen [Tue, 7 Jun 2022 14:07:45 +0000 (17:07 +0300)]
lmtp: proxy - Add "dest_host" and "dest_ip" to lmtp recipient event
Timo Sirainen [Tue, 31 May 2022 12:23:06 +0000 (15:23 +0300)]
lib-dict: dict-lua - Support expire_secs parameter in dict_transaction_begin()
Timo Sirainen [Thu, 19 May 2022 14:42:23 +0000 (16:42 +0200)]
dict-sql: Add support for dict_op_settings.expire_secs
Add a new map { expire_field } to specify the expiration timestamp field in
sql table. This field is automatically updated when
dict_op_settings.expire_secs is used. Also when lookup/iteration sees an
expired row, it's skipped over.
Timo Sirainen [Thu, 19 May 2022 14:22:33 +0000 (16:22 +0200)]
dict-redis: Add support for dict_op_settings.expire_secs
Timo Sirainen [Wed, 15 Jun 2022 08:39:39 +0000 (11:39 +0300)]
dict-redis: Use %zu printf format for strlen()
Timo Sirainen [Tue, 31 May 2022 11:30:42 +0000 (14:30 +0300)]
dict-client, dict: Add support for dict_op_settings.expire_secs
Timo Sirainen [Thu, 19 May 2022 14:55:21 +0000 (16:55 +0200)]
doveadm dict set: Add -e <expire-secs> parameter
Timo Sirainen [Thu, 19 May 2022 14:16:15 +0000 (16:16 +0200)]
lib-dict: Add dict_op_settings.expire_secs
This may be implemented by dict drivers to provide built-in expiration.
Timo Sirainen [Wed, 15 Jun 2022 08:08:41 +0000 (11:08 +0300)]
lib-dict: Support early rollback if dict_transaction_context.error is set
Timo Sirainen [Wed, 15 Jun 2022 08:05:05 +0000 (11:05 +0300)]
lib-dict: Split off dict_transaction_rollback_run()
Timo Sirainen [Tue, 14 Jun 2022 15:45:26 +0000 (18:45 +0300)]
lib-dict*: Use named initializer for dict_vfuncs
Timo Sirainen [Tue, 17 May 2022 10:31:40 +0000 (12:31 +0200)]
lib-master: Use ssl_require_crl setting only for server-side SSL settings
We don't currently properly support checking CRLs when acting as SSL client.
The CRL would have to be stored as part of the CAs, which isn't commonly
done. This bug has been in the code ever since it was added in
30c5c1fc3608ae575f11960281d3e338b6bf7bc8 , but it became more noticeable
with recent changes that started using lib-master for getting all SSL
client settings, e.g.
1e5324b5805bf7299cd8196f7b659fe935f027bd
Aki Tuomi [Tue, 7 Jun 2022 10:48:21 +0000 (13:48 +0300)]
config: old-set-parser - Handle CONFIG_LINE_TYPE_KEYFILE as well
This covers settings with value =< /file.
Forgotten in
ff6c0588196da567197da323865821cd51af8f90
Aki Tuomi [Mon, 13 Jun 2022 09:25:15 +0000 (12:25 +0300)]
global: Remove pre OpenSSL v1.0.2 workarounds
These are also present in libressl 2.4.2
Aki Tuomi [Fri, 3 Jun 2022 11:37:20 +0000 (14:37 +0300)]
lib-dcrypt: Remove gnutls
It never worked
Aki Tuomi [Fri, 3 Jun 2022 11:36:53 +0000 (14:36 +0300)]
global: Make OpenSSL v1.0.2 mandatory requirement
Aki Tuomi [Fri, 3 Jun 2022 11:36:22 +0000 (14:36 +0300)]
m4: ssl.m4 - Modernize m4 syntax
Aki Tuomi [Thu, 2 Jun 2022 13:00:06 +0000 (16:00 +0300)]
lib-auth: Remove auth_client_cache_flush_started|finished event
This was being sent by just doveadm which isn't very useful.
Timo Sirainen [Mon, 13 Jun 2022 06:56:13 +0000 (09:56 +0300)]
doveadm deduplicate: Allocate memory properly for keys in hash table
This caused wrong mails to be deleted somewhat randomly.
Broken by
320844f50cd669b602d30210e2e5216f65d2050f
Marco Bettini [Wed, 8 Jun 2022 10:05:09 +0000 (10:05 +0000)]
indexer: indexer_queue_append_request() - Reorganize the code for better readability
Isolate the section handling duplicated entries from the part creating creating new ones.
Marco Bettini [Wed, 8 Jun 2022 10:02:52 +0000 (10:02 +0000)]
indexer: indexer_queue_deinit() - Assert queue->users last
In case of panic, this allows to discriminate if the mismatch is in the count
of requests between queue and queue->requests count or between queue->requests
and queue->users
Marco Bettini [Wed, 8 Jun 2022 09:56:37 +0000 (09:56 +0000)]
indexer: indexer_queue_append_request() - Fix repeated insertions in queue->users indexer_queue(s)
The repeated insertion happens when invoking for an existing entry and
append=FALSE. At that point, the section dealing with queue->users is
erroneously executed. This will cause later a panic in indexer_queue_deinit()
due to the extra entries remaining in the table
Marco Bettini [Wed, 8 Jun 2022 10:17:25 +0000 (10:17 +0000)]
indexer: Remove stray whitespaces
sergey.kitov [Fri, 6 May 2022 08:19:02 +0000 (11:19 +0300)]
lib-fs: Remove assert for !file->writing_stream from fs_delete.
The assert is not particularly useful and disturbs obox uncertain
write objects remove attempts.
Marco Bettini [Tue, 31 May 2022 14:22:36 +0000 (14:22 +0000)]
lib-storage: Add "service" field to user event
Marco Bettini [Mon, 6 Jun 2022 10:22:38 +0000 (12:22 +0200)]
lib-storage: Override service->name with input->service when available
Marco Bettini [Mon, 6 Jun 2022 08:04:50 +0000 (08:04 +0000)]
lib-storage: mail_storage_service_lookup_real() - Reformat very long line
Marco Bettini [Wed, 1 Jun 2022 10:24:31 +0000 (10:24 +0000)]
lib-storage: mail_storage_service_read_settings() - Fix typo in comment
Marco Bettini [Tue, 31 May 2022 14:21:43 +0000 (14:21 +0000)]
lib-storage: Remove stray whitespaces
Aki Tuomi [Fri, 3 Jun 2022 08:43:08 +0000 (11:43 +0300)]
lib: test-file-cache - Use RLIMIT_AS only if it's available
Aki Tuomi [Fri, 3 Jun 2022 08:33:42 +0000 (11:33 +0300)]
doveadm-cmd: Use PRId64 instead of %ld
int64_t is not guaranteed to be long.
Aki Tuomi [Fri, 3 Jun 2022 07:10:57 +0000 (10:10 +0300)]
doc: Use am__untar to get correct invocation across systems
Current one does not work always.
Aki Tuomi [Fri, 4 Feb 2022 07:33:34 +0000 (09:33 +0200)]
lib: ioloop-kqueue - Include time-util.h
Needed to compile on MacOS
Martti Rannanjärvi [Fri, 3 Jun 2022 01:05:26 +0000 (04:05 +0300)]
global: Use ioloop_time32 more when ioloop_time is used as uint32_t
These were missing from
138bee2f638a53415a1729b6a9476eb342b40831 .
Marco Bettini [Thu, 19 May 2022 15:24:59 +0000 (15:24 +0000)]
plugins: Use container_of() in doveadm functions instead of hard casts
Marco Bettini [Thu, 19 May 2022 15:24:37 +0000 (15:24 +0000)]
doveadm: Use container_of() instead of hard casts
Marco Bettini [Wed, 18 May 2022 13:05:27 +0000 (13:05 +0000)]
doveadm: Remove doveadm_mail_cmd_context::full_args
Marco Bettini [Wed, 18 May 2022 11:20:59 +0000 (11:20 +0000)]
doveadm: Refactor doveadm_cmd_ver2_to_mail_cmd_wrapper()
Marco Bettini [Tue, 17 May 2022 09:55:34 +0000 (09:55 +0000)]
doveadm: Remove doveadm_mail_cmd_vfuncs::parse_arg
Marco Bettini [Fri, 6 May 2022 15:38:25 +0000 (15:38 +0000)]
doveadm: Remove doveadm_mail_cmd_context::getopt_args
Marco Bettini [Fri, 6 May 2022 15:24:31 +0000 (15:24 +0000)]
doveadm: Remove doveadm_mail_cmd_context::args
Marco Bettini [Fri, 6 May 2022 15:02:25 +0000 (15:02 +0000)]
doveadm: Drop parameter args[] from doveadm_mail_cmd_vfuncs::init
Marco Bettini [Wed, 4 May 2022 13:28:24 +0000 (13:28 +0000)]
doveadm: Remove ::parse_arg() and ::args from doveadm-mail.c handlers
Marco Bettini [Fri, 29 Apr 2022 14:43:06 +0000 (14:43 +0000)]
doveadm: Remove ::parse_arg() and ::args from doveadm-dsync.c handlers