]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 15:18:13 +0000 (11:18 -0400)]
lib: mempool-alloconly - Use container_of instead of casts
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 14:35:15 +0000 (10:35 -0400)]
lib: Rename a alloconly mempool helper function to make its scope obvious
pool_try_grow() makes it look like it is part of the mempool API, even
though it is an internal helper specific to the alloconly pool.
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 14:55:53 +0000 (10:55 -0400)]
lib: Document the unsafe datastack mempool
Josef 'Jeff' Sipek [Tue, 19 Jun 2018 20:08:40 +0000 (16:08 -0400)]
lib: Document the system mempool
Josef 'Jeff' Sipek [Wed, 20 Jun 2018 11:50:38 +0000 (07:50 -0400)]
lib: Document datastack mempools
Josef 'Jeff' Sipek [Tue, 19 Jun 2018 19:36:43 +0000 (15:36 -0400)]
lib: Document allocfree mempools
Josef 'Jeff' Sipek [Tue, 19 Jun 2018 18:04:43 +0000 (14:04 -0400)]
lib: Document alloconly mempools
Josef 'Jeff' Sipek [Fri, 29 Jun 2018 20:17:40 +0000 (16:17 -0400)]
lib: mempool - Further reduce test code duplication
We have to use a macro because we need to pass a type as an argument.
Josef 'Jeff' Sipek [Thu, 28 Jun 2018 17:07:48 +0000 (13:07 -0400)]
lib: mempool - Reduce test code duplication
The 32 and 64 bit versions of the tests were identical.
Josef 'Jeff' Sipek [Thu, 28 Jun 2018 15:13:43 +0000 (11:13 -0400)]
lib: mempool - Generalize the test
Instead of hardcoding what appear to be arbitrary constants, use expressions
based on UINT{16,32,64}_MAX.
Stephan Bosch [Thu, 31 May 2018 21:59:50 +0000 (23:59 +0200)]
lib: str-sanitize: Use uni_utf8_data_truncate().
Stephan Bosch [Thu, 31 May 2018 22:02:53 +0000 (00:02 +0200)]
lib: Add str_truncate_utf8().
It works similar to str_truncate(), but it makes sure the truncated string
remains valid UTF-8.
Stephan Bosch [Thu, 31 May 2018 22:02:16 +0000 (00:02 +0200)]
lib: unichar: Add uni_utf8_data_truncate().
Returns the size of the data when truncated to be less than or equal to
a specified size, making sure UTF-8 character boundaries are respected.
Stephan Bosch [Wed, 20 Jun 2018 12:01:18 +0000 (14:01 +0200)]
lib-smtp: server: Make sure conn->state.data_failed is only set when no previous BDAT/BURL is pending.
Otherwise, the server would sometimes send 503 error for the first BDAT/BURL
command, while a subsequent command was actually failing earlier than the
initial one completed. Additionally, this caused a panic crash.
Panic was:
submission(stephan)<8353><C+7QBfysKluhIAAAmoV78g>: Panic: Input stream /home/stephan/Maildir/cur/
1517515808 .M176007P2993.johanna,S=1903,W=1956:2,DFS unexpectedly has references
Timo Sirainen [Tue, 12 Jun 2018 17:49:59 +0000 (20:49 +0300)]
lib-smtp: Allocate ORCPT addr_type from given memory pool, not data stack
This could have caused crashes when parsing ORCPT.
Stephan Bosch [Sat, 26 May 2018 12:49:01 +0000 (14:49 +0200)]
lib-smtp: client: Avoid sending an XCLIENT command longer than 512 bytes.
Send several separate XCLIENT commands instead. This way, it complies with the
base SMTP line length limit and with Postfix' original specification for the
XCLIENT command.
With the XCLIENT fields that Dovecot currently uses, this is very unlikely to
happen. Still, this needs to be fixed to make things reliable.
Stephan Bosch [Sun, 27 May 2018 09:30:06 +0000 (11:30 +0200)]
lib-smtp: client: Do not start authentication before initial XCLIENT gets reply.
Stephan Bosch [Sat, 26 May 2018 13:44:43 +0000 (15:44 +0200)]
lib-smtp: server: Provide full proxy data to the conn_proxy_data_updated() callback.
Before, it would only provide the fields that were updated, meaning that some
fields would remain unset, which caused problems for LMTP when more than one
XCLIENT command was sent or the ADDR field was not specified.
Stephan Bosch [Sat, 17 Mar 2018 23:57:36 +0000 (00:57 +0100)]
lib-smtp: Add test-smtp-payload, test-smtp-submit, test-smtp-client-errors, and test-smtp-server-errors to `make check`.
Stephan Bosch [Sat, 17 Mar 2018 23:53:14 +0000 (00:53 +0100)]
lib-http: Add test-http-payload, test-http-client-errors, and test-http-server-errors to `make check`.
Stephan Bosch [Sun, 18 Mar 2018 00:25:42 +0000 (01:25 +0100)]
lib-http: test-http-client-errors: Make the reconnect failure test less time-sensitive.
Easily breaks in Valgrind.
Stephan Bosch [Sat, 17 Mar 2018 23:46:32 +0000 (00:46 +0100)]
lib-smtp: test-smtp-payload: Terminate the test if it is hanging for some reason.
Stephan Bosch [Sat, 17 Mar 2018 23:34:22 +0000 (00:34 +0100)]
lib-smtp: test-smtp-client-errors: Terminate the test if it is hanging for some reason.
Stephan Bosch [Thu, 28 Dec 2017 15:33:49 +0000 (16:33 +0100)]
lib-http: test-http-client-errors: Terminate the test if it is hanging for some reason.
Stephan Bosch [Fri, 9 Feb 2018 22:58:51 +0000 (23:58 +0100)]
lib-http: test-http-payload: Add SSL tests.
Stephan Bosch [Fri, 9 Feb 2018 21:09:27 +0000 (22:09 +0100)]
lib-smtp: test-smtp-payload: Add SSL tests.
Stephan Bosch [Fri, 9 Feb 2018 23:00:17 +0000 (00:00 +0100)]
lib-http: test-http-payload: Ignore SIGPIPE.
Stephan Bosch [Fri, 9 Feb 2018 21:09:47 +0000 (22:09 +0100)]
lib-smtp: test-smtp-payload: Ignore SIGPIPE.
Stephan Bosch [Fri, 9 Feb 2018 21:27:00 +0000 (22:27 +0100)]
lib-http: server: Allow creating server with custom SSL settings.
Normally, the settings are obtained through lib-master, but that is not
really suitable for the test suite.
Stephan Bosch [Fri, 9 Feb 2018 21:06:49 +0000 (22:06 +0100)]
lib-smtp: server: Allow creating server with custom SSL settings.
Normally, the settings are obtained through lib-master, but that is not
really suitable for the test suite.
Stephan Bosch [Sat, 17 Mar 2018 20:08:09 +0000 (21:08 +0100)]
lib-smtp: client: Amend connection debug message with source ip:port.
Helps matching debug logs between client and server.
Stephan Bosch [Sat, 17 Mar 2018 17:10:04 +0000 (18:10 +0100)]
lib-smtp: test-smtp-payload: Keep the number of pending transactions constant.
Before, a window was used.
Stephan Bosch [Sat, 17 Mar 2018 17:05:01 +0000 (18:05 +0100)]
lib-smtp: test-smtp-payload: Make proper definition for the maximum number of parallel transactions.
Stephan Bosch [Sat, 10 Feb 2018 01:20:31 +0000 (02:20 +0100)]
lib-http: test-http-payload: Add test for exchanging payload with unknown size.
This will force using the chunked transfer encoding.
Stephan Bosch [Sat, 17 Mar 2018 20:34:11 +0000 (21:34 +0100)]
lib-http: test-http-payload: server: Fix asynchronous listening.
The listening socket was blocking and the io handler only accepted one connection per run.
Stephan Bosch [Sat, 17 Mar 2018 13:14:03 +0000 (14:14 +0100)]
lib-smtp: test-smtp-payload: server: Fix asynchronous listening.
The listening socket was blocking and the io handler only accepted one connection per run.
Stephan Bosch [Fri, 9 Feb 2018 21:04:23 +0000 (22:04 +0100)]
lib-ssl-iostream: Add support for creating server and client test SSL settings.
This is useful for building test cases with SSL support.
Timo Sirainen [Fri, 16 Feb 2018 12:33:33 +0000 (14:33 +0200)]
lib: Fix compiler warning when arc4random_buf() is used for random_fill()
Stephan Bosch [Thu, 15 Feb 2018 22:41:25 +0000 (23:41 +0100)]
lib-mail: message-parser: Fixed Clang 6.0 compiler warning.
Warning was:
index-mail.c:1182:3: warning: arithmetic on a null pointer treated as a cast
from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic]
message_parser_parse_body(data->parser_ctx,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../src/lib-mail/message-parser.h:95:28: note: expanded from macro
'message_parser_parse_body'
(void *)((char *)context + CALLBACK_TYPECHECK(callback, \
~~~~~~~~~~~~~~~ ^
Aki Tuomi [Wed, 16 Jan 2019 16:28:57 +0000 (18:28 +0200)]
auth: Do not import empty certificate username
Aki Tuomi [Wed, 16 Jan 2019 16:24:20 +0000 (18:24 +0200)]
auth: Fail authentication if certificate username was unexpectedly missing
Aki Tuomi [Tue, 15 Jan 2019 15:36:37 +0000 (17:36 +0200)]
login-common: Ensure we get username from certificate
Timo Sirainen [Thu, 26 Apr 2018 20:05:21 +0000 (23:05 +0300)]
lib-storage: Fix event leak when failing to create storage
Aki Tuomi [Thu, 6 Sep 2018 06:36:07 +0000 (09:36 +0300)]
driver-sqlite: Fix event usage in driver_sqlite_exec
Broken in
850f874971a7afa4f1f7b47df37fca082dc415a1
Timo Sirainen [Fri, 23 Nov 2018 08:12:27 +0000 (10:12 +0200)]
Update NEWS to v2.3.4
Timo Sirainen [Mon, 14 May 2018 18:33:53 +0000 (21:33 +0300)]
doveadm force-resync: Add -f parameter to fsck index while opening it
This probably should be done by default, but for now keep it optional
just in case there are any bugs in the fsck implementation.
Timo Sirainen [Mon, 14 May 2018 18:31:59 +0000 (21:31 +0300)]
lib-storage: Add MAILBOX_FLAG_FSCK to fsck index immediately after opening it
This can be used to fix a broken index that is causing mailbox_open() to
fail.
Josef 'Jeff' Sipek [Wed, 19 Sep 2018 12:50:26 +0000 (15:50 +0300)]
dbox: cache pop3 order and uidl when saving mails
Josef 'Jeff' Sipek [Wed, 19 Sep 2018 12:49:56 +0000 (15:49 +0300)]
lib-storage/index: Add a helper to cache pop3 order and uidl
Josef 'Jeff' Sipek [Thu, 20 Sep 2018 10:32:46 +0000 (06:32 -0400)]
global: Use uint32_t for pop3 order
Stephan Bosch [Thu, 25 Oct 2018 11:35:52 +0000 (13:35 +0200)]
lib: uri-util: Add tests for URI character escape functions.
Stephan Bosch [Thu, 25 Oct 2018 11:34:52 +0000 (13:34 +0200)]
lib: uri-util: Add functions for escaping (almost) all reserved URI characters.
Stephan Bosch [Wed, 5 Sep 2018 19:56:42 +0000 (21:56 +0200)]
lib-storage: Change default postmaster_address setting to "postmaster@<user domain or server hostname>".
The former "postmaster@<user domain>" default would only yield a valid
postmaster address when there is a domain part in the username. The new default
uses a conditional variable expansion choose "%d" when it is not empty and the
new "%{hostname}" otherwise.
Stephan Bosch [Wed, 5 Sep 2018 19:24:15 +0000 (21:24 +0200)]
lib-storage: mail-user: Add "%{hostname}" variable expansion.
Stephan Bosch [Wed, 5 Sep 2018 19:23:05 +0000 (21:23 +0200)]
lib-storage: mail-user: Add convenience functions for obtaining postmaster address.
Stephan Bosch [Wed, 5 Sep 2018 19:11:15 +0000 (21:11 +0200)]
lib-storage: Move postmaster_address setting from mail_storage_settings to mail_user_settings.
Aki Tuomi [Mon, 29 Oct 2018 08:43:10 +0000 (10:43 +0200)]
auth: test-lua - Add test to ensure that values are not converted to number by mistake
Aki Tuomi [Mon, 29 Oct 2018 08:42:36 +0000 (10:42 +0200)]
auth: test-lua - Fix unit test to handle errors
Aki Tuomi [Mon, 29 Oct 2018 12:43:11 +0000 (14:43 +0200)]
auth: test-lua - Fix inconsistent whitespace
Aki Tuomi [Mon, 29 Oct 2018 07:52:37 +0000 (09:52 +0200)]
auth: db-lua - Use lua_type to detect type
Using lua_isnumber to detect numbers also considers
convertible strings as numbers.
Aki Tuomi [Mon, 29 Oct 2018 07:50:33 +0000 (09:50 +0200)]
auth: Store password with auth_set_field in Lua passdb
Makes caching work for passwords
Aki Tuomi [Mon, 29 Oct 2018 07:49:48 +0000 (09:49 +0200)]
auth: Use default scheme in Lua passdb lookup
Fixes a null pointer crash.
Aki Tuomi [Thu, 25 Oct 2018 10:50:36 +0000 (13:50 +0300)]
lib-lua: Use source instead of short_src
short_src is a limited value, and also an byte array
instead of a pointer so it should not be returned.
Found by coverity.
Aki Tuomi [Wed, 7 Nov 2018 07:51:50 +0000 (09:51 +0200)]
lib: Add unit test for event duration
Make sure event duration is non-zero when used without
ioloop.
Aki Tuomi [Tue, 6 Nov 2018 19:00:47 +0000 (21:00 +0200)]
lib-lua: Fix sizeof usage for struct event* storage
Found by coverity
Aki Tuomi [Fri, 19 Oct 2018 10:54:50 +0000 (13:54 +0300)]
lib-lua: Make sure events get right file:line information
Aki Tuomi [Fri, 19 Oct 2018 10:54:34 +0000 (13:54 +0300)]
mail-lua: Fix argument number checking for mailbox#sync
Aki Tuomi [Fri, 19 Oct 2018 06:39:39 +0000 (09:39 +0300)]
push-notification-driver-lua: Perform garbage collection after transaction
Ensure Lua releases resources here.
Aki Tuomi [Mon, 15 Oct 2018 11:46:30 +0000 (14:46 +0300)]
push-notification-driver-ox: Convert to event based logging
Also fixes the logging to be standard
Aki Tuomi [Mon, 15 Oct 2018 09:20:20 +0000 (12:20 +0300)]
push-notification-driver-lua: Add events
Aki Tuomi [Mon, 15 Oct 2018 09:04:19 +0000 (12:04 +0300)]
push-notification: Emit event on transaction end
Aki Tuomi [Mon, 15 Oct 2018 09:03:58 +0000 (12:03 +0300)]
push-notification: Add event to push notification transaction
Aki Tuomi [Mon, 15 Oct 2018 08:55:41 +0000 (11:55 +0300)]
push-notification: Add event category
Aki Tuomi [Fri, 19 Oct 2018 08:36:09 +0000 (11:36 +0300)]
lib-lua: Move __gc metamethod for event to userdata
Compability for lua 5.1
Aki Tuomi [Thu, 18 Oct 2018 08:37:00 +0000 (11:37 +0300)]
mail-lua: Check number of arguments
Aki Tuomi [Thu, 18 Oct 2018 09:04:41 +0000 (12:04 +0300)]
lib-lua: Add DLUA_REQUIRE_ARGS(s,x) and DLUA_REQUIRE_ARGS_IN(s,x,y)
First form requires that x arguments are provided for dlua script s.
Second form requires that at least x and at most y arguments are provided
for dlua script s
Automatically returns luaL_error.
Aki Tuomi [Tue, 16 Oct 2018 08:35:45 +0000 (11:35 +0300)]
mail-lua: Make flags optional for mailbox#sync
Aki Tuomi [Tue, 16 Oct 2018 08:34:23 +0000 (11:34 +0300)]
mail-lua: Make flags optional for user#mailbox
Aki Tuomi [Tue, 16 Oct 2018 07:13:27 +0000 (10:13 +0300)]
mail-lua: Change mailbox#status API to varargs
It's much easier to use this way
Aki Tuomi [Thu, 18 Oct 2018 09:31:27 +0000 (12:31 +0300)]
lib-lua: Check number of arguments
Aki Tuomi [Mon, 30 Jul 2018 10:12:47 +0000 (13:12 +0300)]
lib-lua: Add flag manipulation functions
Aki Tuomi [Thu, 11 Oct 2018 16:50:06 +0000 (19:50 +0300)]
lib-lua: Add test for event framework
Aki Tuomi [Thu, 11 Oct 2018 16:10:17 +0000 (19:10 +0300)]
lib-lua: Add event interface
Aki Tuomi [Thu, 11 Oct 2018 14:06:00 +0000 (17:06 +0300)]
lib-lua: Add events to scripts
Aki Tuomi [Wed, 17 Oct 2018 16:44:31 +0000 (19:44 +0300)]
lib-master: Fix test-event-stats
New stats uses gettimeofday that generated unpredictable values
for this test.
Aki Tuomi [Wed, 17 Oct 2018 09:47:37 +0000 (12:47 +0300)]
lib: event - Stop exporting ioloop time
It is not needed by stats process.
Aki Tuomi [Tue, 16 Oct 2018 06:03:05 +0000 (09:03 +0300)]
stats: Use duration field from events
Aki Tuomi [Tue, 16 Oct 2018 05:52:49 +0000 (08:52 +0300)]
lib: event - Record real duration
The old code only measured difference between successive
ioloop_time updates. The new code uses gettimeofday to
get current real time, making measurements accurate.
Aki Tuomi [Tue, 16 Oct 2018 05:17:27 +0000 (08:17 +0300)]
lib: event - Duplicate source_filename
Prevents crash on event leak when plugin that caused the leak
is unloaded.
Aki Tuomi [Tue, 16 Oct 2018 13:11:23 +0000 (16:11 +0300)]
lib: event - Rename tv_created as tv_created_ioloop
Aki Tuomi [Wed, 3 Oct 2018 09:00:55 +0000 (12:00 +0300)]
push-notification: Resolve confusion about msg->seq
It's not the same seq what the mail has, but a sequence that
is used to find out UID for saved mails. So rename it to
save_idx and treat it accordingly. Note that save_idx is 0
based, and mail sequence is 1 based.
Aki Tuomi [Fri, 28 Sep 2018 10:30:51 +0000 (13:30 +0300)]
push-notification-driver-lua: Include date from MessageAppend
Aki Tuomi [Fri, 28 Sep 2018 10:30:01 +0000 (13:30 +0300)]
push-notification-event-messageappend: Include date information parsed from headers
Consistency with MessageNew
Aki Tuomi [Fri, 28 Sep 2018 10:01:58 +0000 (13:01 +0300)]
push-notification: Make sure txn messages are unique
save_count is not reliable as it's not incremented for events like
flag changes.
Aki Tuomi [Thu, 27 Sep 2018 06:54:10 +0000 (09:54 +0300)]
push-notification-driver-lua: Always use DLUA_LOG_LABEL
Aki Tuomi [Thu, 27 Sep 2018 06:52:59 +0000 (09:52 +0300)]
push-notification-driver-lua: Properly register all events
Aki Tuomi [Tue, 25 Sep 2018 12:49:21 +0000 (15:49 +0300)]
mail-lua: Fix gc code to push key first then value
Otherwise it uses nil as key, which makes no sense and leads to eventual crash.
Aki Tuomi [Tue, 25 Sep 2018 11:09:55 +0000 (14:09 +0300)]
push-notification-driver-lua: tx begin pushed mail user not username
Aki Tuomi [Tue, 25 Sep 2018 11:09:28 +0000 (14:09 +0300)]
push-notification-driver-lua: Do not push user again
User is already pushed in tx begin, and can be stored there into the context.
Aki Tuomi [Tue, 25 Sep 2018 11:08:59 +0000 (14:08 +0300)]
push-notification-driver-lua: Move event push earlier
Simplifies code