]>
git.ipfire.org Git - thirdparty/dovecot/core.git/log
Stephan Bosch [Tue, 24 Mar 2020 19:51:24 +0000 (20:51 +0100)]
lib-smtp: Reformat smtp-syntax.c.
Stephan Bosch [Tue, 24 Mar 2020 19:45:21 +0000 (20:45 +0100)]
lib-smtp: Reformat smtp-syntax.h.
Aki Tuomi [Wed, 13 May 2020 07:52:50 +0000 (10:52 +0300)]
auth: test-mech - Remove auth-token-secret.dat after test suite
Aki Tuomi [Tue, 12 May 2020 06:48:06 +0000 (09:48 +0300)]
auth: mech-digest-md5 - Do not read past buffer on right trim
If the string does not have comma at the end, do not progress
the pointer past buffer end.
Aki Tuomi [Tue, 12 May 2020 06:22:20 +0000 (09:22 +0300)]
auth: test-mech - Fix memory leaks
Forgotten in
f6bb82a222e7973e9f9b7056dfe015fe3d8632f7
Timo Sirainen [Mon, 11 May 2020 14:25:41 +0000 (17:25 +0300)]
lib-index: Index rebuilding lost fields in cache
Regression caused by
5f6d2134690e4b84d38d556e3086668e32f30b50
Timo Sirainen [Mon, 11 May 2020 14:23:19 +0000 (17:23 +0300)]
lib-index: Fix setting initial last_used for fields in mail_[always_]cache_fields
These fields had last_used=0 until the field was accessed. If cache was
purged before this access, the field was dropped. Fixed by assuming
(last_used=0, decision!=NO) is still the first time the field is being
used. This also causes it to trigger mail_cache_decision_changed event.
Timo Sirainen [Tue, 12 May 2020 08:23:23 +0000 (11:23 +0300)]
lib-index: mail_cache_decision_add() - Add priv helper variable
Timo Sirainen [Tue, 12 May 2020 08:20:57 +0000 (11:20 +0300)]
lib-index: Make mail_cache_decision_to_string() public
Timo Sirainen [Fri, 24 Apr 2020 14:17:46 +0000 (17:17 +0300)]
auth: auth_request_finished event - policy_result=delayed didn't work
It was returned as "ok" instead of "delayed".
Stephan Bosch [Fri, 8 May 2020 14:18:29 +0000 (16:18 +0200)]
lib-http: test-http-client-errors: "reply payload" test - Make server announce that connection is closed.
This prevents race condition between connection closure and client trying to reuse the connection.
Stephan Bosch [Fri, 8 May 2020 14:22:48 +0000 (16:22 +0200)]
lib-http: test-http-client-errors: "reply payload" test - Fix name of server context struct.
Aki Tuomi [Thu, 7 May 2020 10:57:14 +0000 (13:57 +0300)]
auth: test-mech - Rewrote test
Aki Tuomi [Fri, 8 May 2020 10:12:39 +0000 (13:12 +0300)]
auth: test-mock - Add credentials lookup support
Aki Tuomi [Fri, 8 May 2020 10:08:19 +0000 (13:08 +0300)]
auth: test - Export passdb mock settings
Aki Tuomi [Thu, 7 May 2020 11:15:14 +0000 (14:15 +0300)]
auth: Move auth_request_fail_on_nuls to auth-request.c
Where is belongs to
Aki Tuomi [Wed, 6 May 2020 10:47:36 +0000 (13:47 +0300)]
lib-sasl: dsasl-client - Check for NULs in server response
If server response unexpectedly contains embedded NULs, fail
authentication.
Aki Tuomi [Wed, 6 May 2020 10:12:33 +0000 (13:12 +0300)]
auth: mech - Remove redundant NUL checks
Partially reverts
ce7a61301cb233647c447dd917d5df1184d02317
The check is moved to higher up in call chain.
Aki Tuomi [Wed, 6 May 2020 10:07:01 +0000 (13:07 +0300)]
auth: mech - Add MECH_SEC_ALLOW_NULS flag
Prevent embedded NULs for any mechs that do not have this flag
Aki Tuomi [Thu, 7 May 2020 08:09:00 +0000 (11:09 +0300)]
auth: test-mech - Use auth_request_initial/continue testing
This way the embedded nul checks actually get executed.
Aki Tuomi [Fri, 8 May 2020 10:08:42 +0000 (13:08 +0300)]
auth: oauth2 - Set username after parsing
Otherwise we might mistakenly set username despite the
token being malformed.
Timo Sirainen [Thu, 16 Apr 2020 17:17:11 +0000 (20:17 +0300)]
lib-fs: Don't hide errors when iteration calls fs_set_error() multiple times
The last error is returned by fs_iter_deinit(). The other errors are
logged directly.
Stephan Bosch [Wed, 6 May 2020 00:04:31 +0000 (02:04 +0200)]
lib-http: http-server-response - Fix dead assignment in http_server_response_send_real().
Found by Clang scan-build.
Stephan Bosch [Wed, 6 May 2020 00:00:48 +0000 (02:00 +0200)]
lib-http: test-http-client-errors: Emit error for unexpected request payload in "retry payload" test.
Stephan Bosch [Tue, 5 May 2020 23:53:39 +0000 (01:53 +0200)]
lib-http: test-http-client-errors - Correct response payload length in "retry payload" test.
Stephan Bosch [Tue, 5 May 2020 23:52:12 +0000 (01:52 +0200)]
lib-http: test-http-client-errors - Emit an error message for bad responses.
Makes debugging issues with this unit test easier.
Markus Valentin [Wed, 6 May 2020 08:34:26 +0000 (10:34 +0200)]
auth: Remove the check for NULs in mech-rpa
It was wrongly added for rpa, as it's a binary protocol.
Stephan Bosch [Mon, 4 May 2020 12:51:29 +0000 (14:51 +0200)]
lib-http: test-http-payload - Increase client progress timeout to 30 s.
This makes the SSL test a little less brittle.
Stephan Bosch [Wed, 29 Apr 2020 20:23:44 +0000 (22:23 +0200)]
lib-http: http-server-ostream - Remove dangerous assertions in http_server_ostream_wait_begin().
Stephan Bosch [Wed, 29 Apr 2020 15:45:21 +0000 (17:45 +0200)]
lib-http: http-server-connection - Fix result of http_server_connection_next_response().
Return _OUTPUT_BLOCKED only when the output fd is blocked.
Stephan Bosch [Wed, 29 Apr 2020 15:45:06 +0000 (17:45 +0200)]
lib-http: http-client-connection - Avoid calling http_client_request_send_more() directly.
Get it called from http_client_connection_output() later.
Stephan Bosch [Tue, 28 Apr 2020 21:59:39 +0000 (23:59 +0200)]
lib-http: test-http-client-errors - Make "retry payload" test more reliable.
Stephan Bosch [Tue, 28 Apr 2020 17:28:58 +0000 (19:28 +0200)]
lib-http: http-client-request - Fix return value of http_client_request_send*().
Make sure 1 is returned when all that can be sent is sent. It must not return 0
when the payload input stream is blocking.
Stephan Bosch [Tue, 28 Apr 2020 17:28:48 +0000 (19:28 +0200)]
lib-http: http-server-response - Fix return value of http_server_response_send*().
Make sure 1 is returned when all that can be sent is sent. It must not return 0
when the payload input stream is blocking or when the payload output stream
buffer has no data to be sent.
Stephan Bosch [Wed, 29 Apr 2020 07:51:55 +0000 (09:51 +0200)]
lib: ostream-wrapper - Return flush status from o_stream_wrapper_continue().
Timo Sirainen [Thu, 31 Oct 2019 13:56:58 +0000 (15:56 +0200)]
lib: connection_input_resume() - Set added IO as having pending input
This makes sense, because when the connection is halted it might already
have input pending in the istream. So doing this always automatically
can prevent unexpected hangs. It shouldn't be harmful to do this even if
there's no input pending.
Timo Sirainen [Mon, 27 Apr 2020 11:42:59 +0000 (14:42 +0300)]
lmtp: Don't add "detail" field to events if it's empty
Timo Sirainen [Mon, 27 Apr 2020 10:29:19 +0000 (13:29 +0300)]
lda: Add protocol=lda to the root lda event
Timo Sirainen [Sun, 26 Apr 2020 18:42:51 +0000 (21:42 +0300)]
lib-smtp: Fix adding "protocol" field to smtp_server_* events
The server connection always had its own parent event instead of using
smtp_server.event.
Stephan Bosch [Wed, 15 Apr 2020 19:08:23 +0000 (21:08 +0200)]
lib-lda: mail-deliver - Add "error" field to the mail_delivery_finished event.
Stephan Bosch [Wed, 15 Apr 2020 22:04:02 +0000 (00:04 +0200)]
lib-lda: mail-deliver - Add MAIL_DELIVER_ERROR_REJECTED.
This is not used yet, but useful for future expansion.
Stephan Bosch [Wed, 15 Apr 2020 18:43:13 +0000 (20:43 +0200)]
lib-lda: mail-deliver - Move common part of the error handling to mail_deliver() itself.
Before, much of that was handled by the respective callers (LDA and LMTP).
Stephan Bosch [Wed, 15 Apr 2020 19:01:39 +0000 (21:01 +0200)]
lda: main - Rename error variables in lda_do_deliver().
Stephan Bosch [Wed, 15 Apr 2020 18:47:11 +0000 (20:47 +0200)]
lmtp: lmtp-local - Perform actual (default) delivery in a separate function.
Stephan Bosch [Mon, 27 Apr 2020 22:15:00 +0000 (00:15 +0200)]
lib-lda: mail-deliver - Properly parse Message-ID header.
Stephan Bosch [Tue, 18 Feb 2020 22:30:29 +0000 (23:30 +0100)]
lib-storage: mail - Add mail_get_message_id().
It is a convenience function that reads and parses the Message-ID.
Aki Tuomi [Mon, 20 Apr 2020 19:59:14 +0000 (22:59 +0300)]
lib-ssl-iostream: Indicate that password might be wrong when decrypting key
Aki Tuomi [Mon, 20 Apr 2020 08:11:28 +0000 (11:11 +0300)]
lib-ssl-iostream: Copy key password correctly
OpenSSL failed to decrypt key because the password context
was copied instead of the password.
Broken in
e98de01b564
Timo Sirainen [Sat, 25 Apr 2020 09:30:50 +0000 (12:30 +0300)]
auth: policy - Fix crash with auth_policy_check_after_auth=no and delay_until
The auth policy lookup context must not be allocated from stack, because it
is used in a timeout created by delay_until.
Fixes:
Panic: file auth-request.c: line 292 (auth_request_success_continue): assertion failed: (request->state == AUTH_REQUEST_STATE_MECH_CONTINUE)
Timo Sirainen [Tue, 14 Apr 2020 13:56:15 +0000 (16:56 +0300)]
doveadm: Cork the print ostream immediately after creating
This avoids making many tiny write()s to stdout.
Josef 'Jeff' Sipek [Tue, 21 Apr 2020 17:26:06 +0000 (13:26 -0400)]
stats: Rename 'name' to 'metric_name' in metric { } blocks
There was a decent amount of confusion about what what the 'name' setting
meant. In short,
metric foo {
...
}
was equivalent to:
metric {
name = foo
...
}
Unfortunately, this was often misunderstood as "the name of the *event* we
are interested in". To avoid this confusion, we rename the setting to
'metric_name'. So, from now on, if you want to specify the name inside the
metric block (instead of before the '{'), you must use:
metric {
metric_name = fo
...
}
Timo Sirainen [Wed, 20 Feb 2019 12:04:04 +0000 (14:04 +0200)]
lib-master: master_service_ssl_settings_get() - assert that SSL settings actually exist
Stephan Bosch [Fri, 24 Apr 2020 22:25:40 +0000 (00:25 +0200)]
lib-http: test-http-client-errors - Add tests for retrying requests with payload.
Stephan Bosch [Fri, 24 Apr 2020 22:25:07 +0000 (00:25 +0200)]
lib-http: test-http-client-errors - Add support for server connection init/deinit functions.
Stephan Bosch [Thu, 23 Apr 2020 11:08:08 +0000 (13:08 +0200)]
lib-http: test-http-payload - Add support for testing with small TCP socket buffers.
Stephan Bosch [Thu, 23 Apr 2020 11:03:37 +0000 (13:03 +0200)]
lib-http: test-http-payload - Initialize common client and server settings at one place.
Stephan Bosch [Thu, 23 Apr 2020 21:41:49 +0000 (23:41 +0200)]
lib-http: http-server-connection - Return 0 from flush callback when there is more payload to be sent.
Stephan Bosch [Fri, 24 Apr 2020 20:36:15 +0000 (22:36 +0200)]
lib-http: http-server-response - Make return value of http_server_response_send*() indicate whether all is sent.
Stephan Bosch [Thu, 23 Apr 2020 13:21:06 +0000 (15:21 +0200)]
lib-http: http-server-ostream - Handle finished request as a separate event.
While waiting in the flush ioloop, the request will not be destroyed, in which
case the ioloop will potentially never end. This is fixed by notifying the
wrapper output stream about the parent output stream going away, which
interrupts the ioloop in the process.
Stephan Bosch [Thu, 23 Apr 2020 13:18:53 +0000 (15:18 +0200)]
lib-http: http-server-ostream - Make sure request payload input stream is destroyed before blocking.
Stephan Bosch [Thu, 31 May 2018 18:56:53 +0000 (20:56 +0200)]
lib-http: http-server-response - Fix sending payload input streams that are seeked beyond 0.
Stephan Bosch [Fri, 24 Apr 2020 21:12:51 +0000 (23:12 +0200)]
lib-http: http-client-request - Properly reset payload state upon retry/redirect.
Stephan Bosch [Fri, 24 Apr 2020 21:02:28 +0000 (23:02 +0200)]
lib-http: http-client-request - Put shared code from http_client_request_resubmit/redirect() in new function.
Stephan Bosch [Fri, 24 Apr 2020 23:32:11 +0000 (01:32 +0200)]
lib-http: http-client-connection - Return 0 from flush callback when there is more payload to be sent.
Stephan Bosch [Sat, 25 Apr 2020 15:55:56 +0000 (17:55 +0200)]
lib-http: http-client-connection - Set output flush pending when http_client_request_send() returns 0.
Stephan Bosch [Fri, 24 Apr 2020 23:31:14 +0000 (01:31 +0200)]
lib-http: http-client-request - Make return value of http_client_request_send*() indicate whether all is sent.
Stephan Bosch [Sat, 25 Apr 2020 15:43:11 +0000 (17:43 +0200)]
lib-http: http-client-connection - Remove useless cork/uncork from http_client_connection_continue_request().
Stephan Bosch [Fri, 24 Apr 2020 20:26:26 +0000 (22:26 +0200)]
lib-http: http-client-connection - Fix race condition between finishing output stream and response.
Stephan Bosch [Thu, 31 May 2018 18:57:41 +0000 (20:57 +0200)]
lib-http: http-client-request - Fix sending payload input streams that are seeked beyond 0.
Stephan Bosch [Thu, 23 Apr 2020 13:16:03 +0000 (15:16 +0200)]
lib: ostream-wrapper - Allow parent output being closed in wrapper_ostream_continue().
This happens when wrapper_ostream_output_destroyed() is called while waiting in
flush wait loop.
Stephan Bosch [Thu, 23 Apr 2020 09:36:30 +0000 (11:36 +0200)]
lib: ostream-wrapper - Properly manage parent output events for blocking operation.
The problem was exposed by a panic occurring in src/lib-http/test-http-payload unit test:
Panic: file ostream-wrapper.c: line 291 (wrapper_ostream_flush_wait): assertion failed: (io_loop_have_ios(ioloop) || io_loop_have_immediate_timeouts(ioloop))
Stephan Bosch [Mon, 6 Apr 2020 21:26:36 +0000 (23:26 +0200)]
lib-http: Reformat test-http-client-errors.c.
Stephan Bosch [Wed, 4 Apr 2018 11:27:53 +0000 (13:27 +0200)]
lib-http: Reformat test-http-payload.c.
Stephan Bosch [Tue, 20 Mar 2018 19:59:32 +0000 (20:59 +0100)]
lib-http: Reformat http-client-request.c.
Aki Tuomi [Mon, 27 Apr 2020 05:08:06 +0000 (08:08 +0300)]
lib-ssl-iostream: Add missing set name to ssl_proxy_ctx_get_pkey_ec_curve_name
It was forgotten in
934a5e7cdb3105a07e2b1dec5916f4abfb3ee2a1
Timo Sirainen [Sun, 26 Apr 2020 18:21:21 +0000 (21:21 +0300)]
dict: Add "user" field to dict_server_* events if it's not empty
Timo Sirainen [Sun, 26 Apr 2020 18:17:53 +0000 (21:17 +0300)]
lib-dict: Add "user" field to dict_* events if it's not empty
Stephan Bosch [Mon, 20 Apr 2020 22:16:05 +0000 (00:16 +0200)]
lib-http: test-http-payload - Fix dead assignments.
Found by Clang scan-build.
Stephan Bosch [Sat, 25 Apr 2020 11:24:59 +0000 (13:24 +0200)]
lib-http: test-http-payload - Remove useless and confusing break statements.
Stephan Bosch [Mon, 20 Apr 2020 22:13:16 +0000 (00:13 +0200)]
lib: ostream-wrapper - Fix dead assignments.
Found by Clang scan-build.
Markus Valentin [Thu, 2 Apr 2020 15:21:22 +0000 (17:21 +0200)]
auth: Add tests for some auth-mechanisms
This adds tests for many auth-mechanisms and checks for empty
inputs as well as for some broken input combinations.
Markus Valentin [Tue, 7 Apr 2020 10:56:46 +0000 (12:56 +0200)]
auth: mech-otp: Add mech_otp_deinit and call it in main_deinit
This change make sure the otp_lock_table is destroyed on deinit.
Markus Valentin [Wed, 1 Apr 2020 08:42:56 +0000 (10:42 +0200)]
lib-test: test-common: Add test_assert_strcmp_idx macro
This change allows to use test_assert_strcmp_idx to identify failing
strcmp tests when running a barrage of tests as in loop.
Markus Valentin [Thu, 2 Apr 2020 06:38:32 +0000 (08:38 +0200)]
auth: Extract private header from mech-digest-md5
This is needed to allow testing of the mech-digest-md5 mechanism.
Markus Valentin [Tue, 31 Mar 2020 12:57:38 +0000 (14:57 +0200)]
auth: Move auths array from static source to extern in header
This is needed for better testability of auth-mechanisms.
Markus Valentin [Fri, 27 Mar 2020 12:59:44 +0000 (13:59 +0100)]
auth: Use stats from auth_settings to check wether stats should be used
This allows to run unit-tests without the need to setup stats.
Markus Valentin [Fri, 27 Mar 2020 10:05:22 +0000 (11:05 +0100)]
auth: Introduce several callbacks in auth-request-handler
This adds three callbacks and their default implementations. This
change is meant to decouple the code for better testability of
auth-mechanims.
Markus Valentin [Fri, 27 Mar 2020 10:04:20 +0000 (11:04 +0100)]
auth: Extract auth-request-handler struct definition to private header
Markus Valentin [Thu, 26 Mar 2020 14:26:54 +0000 (15:26 +0100)]
auth: Add checks for NULs for different auth-mechanisms
This change adds a check to for NULs in the authentication
input in different auth mechanisms. For this purpose the different
mechanisms use the newly introduced auth_request_fail_on_nuls
function.
Markus Valentin [Wed, 25 Mar 2020 12:48:13 +0000 (13:48 +0100)]
auth: Fail authentication if username/password contains NULs
In mech-plain and mech-dovecot-token the number of NULs splitting the
fields could have been higher then expected. This change ensures that if
there are more then the expected amount of NULs the authentication will
fail.
Aki Tuomi [Mon, 20 Apr 2020 11:57:07 +0000 (14:57 +0300)]
lib-smtp: smtp-client-connection - Try all IPs when connecting to remote host
Aki Tuomi [Mon, 20 Apr 2020 19:35:55 +0000 (22:35 +0300)]
submission: Use dns-client
Timo Sirainen [Mon, 20 Apr 2020 18:45:06 +0000 (21:45 +0300)]
lib-master, global: master_service_init_log() - Remove prefix parameter
Generate the prefix automatically from the configured service name.
Timo Sirainen [Mon, 20 Apr 2020 18:41:39 +0000 (21:41 +0300)]
global: Use master_service_init_log_with_prefix() where explicit prefix is wanted
Timo Sirainen [Mon, 20 Apr 2020 18:41:05 +0000 (21:41 +0300)]
lib-master: Add master_service_init_log_with_prefix()
Timo Sirainen [Mon, 20 Apr 2020 18:32:13 +0000 (21:32 +0300)]
indexer-worker: Add PID to log prefix
Timo Sirainen [Mon, 20 Apr 2020 18:32:32 +0000 (21:32 +0300)]
global: Use master_service_init_log_with_pid() where possible
Timo Sirainen [Mon, 20 Apr 2020 18:28:40 +0000 (21:28 +0300)]
lib-master: Add master_service_init_log_with_pid()
Timo Sirainen [Tue, 14 Apr 2020 16:37:02 +0000 (19:37 +0300)]
lib-master: Use service name from master for log prefixes and for service:<name> category
This makes it easier to differentiate between different services using the
same executable. Especially auth vs auth-worker events which might
otherwise be the same except for the service:<name> category.
Timo Sirainen [Tue, 14 Apr 2020 16:26:46 +0000 (19:26 +0300)]
master: Add SERVICE_NAME=<name> environment to child service processes