2019-02-25 13:21:31 +0200 Timo Sirainen (513208660) Released v2.3.5. M NEWS M configure.ac 2019-02-25 20:55:03 +0200 Timo Sirainen (cb6af3a04) fs-posix: fs_read_stream() - Don't close file's fd This is especially important with newly created files, because they may still be accessed after reading. The next file access attempt after fs_read_stream() might cause the file to be recreated and crash. Fixes: Panic: file fs-posix.c: line 252 (fs_posix_create): assertion failed: (file->temp_path == NULL) M src/lib-fs/fs-posix.c 2019-02-19 10:49:37 +0200 Timo Sirainen (8cfb03a1f) lib: test-istream-seekable - Add asserts to make sure blocking state changes at EOF M src/lib/test-istream-seekable.c 2019-02-19 10:22:43 +0200 Timo Sirainen (ba43795f2) lib-storage: mail_get_*stream*() - Assert that returned streams are blocking Several callers already rely on them being blocking. Making these asserts explicit makes sure that any bugs are caught early. M src/lib-storage/mail.c 2019-02-19 10:17:45 +0200 Timo Sirainen (c71f089f5) lib: istream-seekable - Change stream to be blocking=TRUE after reaching EOF After EOF is reached, the stream is now fully read into file or memory. read()s can no longer return 0, so blocking=TRUE can be used. Some callers were reusing the seekable stream in places that required blocking=TRUE. Fixes at least with imapsieve vnd.dovecot report extension: Panic: file ostream.c: line 427 (o_stream_nsend_istream): assertion failed: (instream->blocking) M src/lib/istream-seekable.c 2019-02-19 11:31:45 +0100 Stephan Bosch (a57998e76) lib-ssl-iostream: iostream-ssl-test - Update the test certificate to have very long expiry period. The old certificate expired after one year, which causes all kinds of unit test failures. M src/lib-ssl-iostream/iostream-ssl-test.c 2018-08-30 16:40:16 +0300 Timo Sirainen (28caca174) lib-http: Add assert to make sure http_client_init_shared(NULL, NULL) isn't called This should make scan-build happy. M src/lib-http/http-client.c 2018-12-27 14:13:15 +0100 Stephan Bosch (511f513f6) lib-smtp: client: Move connection to TRANSACTION state immediately when a transaction is started. Before, it waited until the actual start handler was called from timeout, but that causes a race condition with mtp_client_connection_abort_transaction(), which in turn causes an assert panic. Panic was: Panic: file smtp-client-connection.c: line 2153 (smtp_client_connection_abort_transaction): assertion failed: (conn->state != SMTP_CLIENT_CONNECTION_STATE_READY) M src/lib-smtp/smtp-client-connection.c 2018-11-11 20:41:18 +0100 Stephan Bosch (cd7ea3c82) lib-smtp: client: Properly reset connection state upon reconnect. M src/lib-smtp/smtp-client-connection.c 2018-11-11 20:32:09 +0100 Stephan Bosch (615d91af7) lib-smtp: client: connection: Prevent timeout leak for transaction start. Perform timeout management in a single place. Also, always start the next transaction only through a timeout. M src/lib-smtp/smtp-client-connection.c 2019-01-14 14:37:03 +0200 Aki Tuomi (808f0731c) m4: Fix moduledir behaviour This is mainly a fix for plugins that depend on dovecot.m4 M configure.ac M m4/dovecot.m4 2018-06-19 15:30:36 +0300 Phil Carmody (b5a86f084) m4/dovecot.m4: rename valgrind output file to hide it from certain tests Some lib-http tests use readdir() to create test cases, and sometimes object to the contents of test.out.$$. However, as lib-http is also sensitive to certain characters in the filenames of the files it uses, we can hide the valgrind output by chosing its filename to exclude it from the lib_http tests. Non-initial '~' is not known to cause any issues for either the shell or any known operating system, so is the safest of lib-http's 'dodgy' characters to use as the separator. Signed-off-by: Phil Carmody M m4/dovecot.m4 2018-08-29 14:57:45 +0300 Phil Carmody (a8d087136) m4/dovecot.m4 - Apply DRY principle to test output filename Define the name we will use for the file once, then just use that variable instead of using explicit repeatition. Signed-off-by: Phil Carmody M m4/dovecot.m4 2018-06-04 19:58:23 +0300 Phil Carmody (764ef7e00) m4/dovecot.m4: run-test.sh - disable valgrind for individual tests OpenSSL doesn't like valgrind on my setup, so permit a local instalation to have a list of excluded binaries that won't use valgrind in make check. Signed-off-by: Phil Carmody M m4/dovecot.m4 2018-06-19 13:29:46 +0300 Phil Carmody (e1e7ff077) lib-http: increase pool sizes in tests Pool growth messages spam the test output, just dive in with a slightly larger default to shut them up. Only affects these individual tests, not any other users of the library. Signed-off-by: Phil Carmody M src/lib-http/test-http-payload.c M src/lib-http/test-http-server-errors.c 2018-06-19 13:28:12 +0300 Phil Carmody (18b8e66b9) lib-http: change default client/server pool sizes when using SSL SSL carries a lot of state with it, so just start with a bigger pool if we know we're using it. Signed-off-by: Phil Carmody M src/lib-http/http-client.c M src/lib-http/http-server.c 2018-06-14 08:51:37 +0300 Phil Carmody (4db5e9398) lib-http: harden payload tests against dodgy filenames Tests use files from readdir() as input, but do no sanitation of the names, and therefore things like editor temp files can cause havoc with the HTTP request parser. The solution is to trap dodgy characters in the filenames, and ignore those files. Initially, trap HTTP's "unsafe" and "reserved" characters. Signed-off-by: Phil Carmody M src/lib-http/test-http-payload.c 2019-01-07 15:35:07 +0100 Stephan Bosch (690b2c968) lib-mail: ostream-dot - Add unit test for parent stream buffer being almost full. M src/lib-mail/test-ostream-dot.c 2018-12-15 16:32:22 +0200 Timo Sirainen (cc1c3fb1e) lib-mail: ostream-dot - Add asserts to make sure max_bytes doesn't underflow M src/lib-mail/ostream-dot.c 2018-12-15 16:24:42 +0200 Timo Sirainen (3df4e47db) lib-mail: ostream-dot - Fix potential assert-crash when parent stream buffer gets full If max_bytes=1, the (max_bytes-2) calculation brings it to (size_t)-1. This causes too much data to be sent to the parent stream, which then returns a partial write and causes an assert-crash. The final chunk calculation doesn't need the -2 check, because additional bytes aren't inserted at that point. Fixes: Panic: file ostream-dot.c: line 208 (o_stream_dot_sendv): assertion failed: ((size_t)ret == sent + added) M src/lib-mail/ostream-dot.c 2018-02-20 12:04:13 +0200 Aki Tuomi (848d08733) lib: Fix buffer code to satisfy static analyzers M src/lib/buffer.c 2018-02-08 11:56:08 +0200 Aki Tuomi (c6ec64a05) lib: randgen - Init seed to 0 Satisfies static analyzer, the seed is guaranteed to get filled with random data. M src/lib/randgen.c 2018-02-08 11:45:20 +0200 Aki Tuomi (94dc9b097) trash: Use TRASH_USER_CONTEXT_REQUIRE Satisfies static analyzer M src/plugins/trash/trash-plugin.c 2018-01-30 14:14:42 +0200 Phil Carmody (8463321f5) lib/randgen - warn when DOVECOT_SRAND is not able to be used As suggested by Jeff, it's friendly to warn if we're unable to act upon the request for reproduceable random numbers because we're not built for that. Note, this deliberately permits a blank string, so that you can silence the warning by prefixing a command with an empty DOVECOT_SRAND= which is taken as an explicit attempt to disable use of the feature. Signed-off-by: Phil Carmody M src/lib/randgen.c 2017-12-11 14:03:13 +0200 Phil Carmody (00a398525) lib/lib-test: restore DOVECOT_SRAND feature in DEBUG builds Add a deterministic PRNG, an ability to force its use, and an ability to re-use the same sequence later. Since proper random numbers have been forced into use, making reproducable tests isn't quite as easy as it used to be, it's 3 steps rather than 2. When seeing an intermittent test failure: - rerun the tests with environmental variable DOVECOT_SRAND=kiss - upon seeing a new failure case, note the seed logged at the failure - debug using DOVECOT_SRAND= In non-DEBUG builds, there's no trace of this code, and the randomisation that is an inherent part of many tests remains non-reproduceable. Works with all of the RNG preferences, getrandom/urandom/arc4. Signed-off-by: Phil Carmody M src/lib-test/test-common.c M src/lib/randgen.c M src/lib/randgen.h 2018-12-03 18:45:43 +0100 Stephan Bosch (b8cc5abe0) lib-smtp: client: Make sending the XCLIENT command(s) always implicit and do it only once. For most servers, XCLIENT changes the ip:port identity of the client, causing it to lose privileges to send more XCLIENT commands. For long XCLIENT commands split in a series of XCLIENT commands, the ip:port parameters were sent last already, so that did not cause problems even before this change. However, the old code assumed it could update XCLIENT fields later on, which is often not possible. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-connection.h M src/lib-smtp/smtp-client-private.h M src/submission/submission-backend-relay.c 2018-12-03 18:45:43 +0100 Stephan Bosch (0932c42a7) submission: relay backend: Don't bother updating the protocol in proxy data. Old SMTP clients cannot use the submission service, since these cannot perform the required authentication. M src/submission/submission-backend-relay.c 2018-12-03 18:45:42 +0100 Stephan Bosch (fdc3046b9) submission: Move client_create_backend_default() after smtp_server_connection_login() in client_create(). This way, the created default backend can use the HELO data provided to smtp_server_connection_login(). M src/submission/submission-client.c 2018-12-03 18:45:42 +0100 Stephan Bosch (c02fdbb83) lib-smtp: client: Allow deferring sending the XCLIENT command until authentication or first mail transaction. This allows updating the proxy data until the XCLIENT command actually needs to be sent. For submission, this means that later EHLO domain changes can still be accounted for. This change makes the simplifications in subsequent changes easier. M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client.h 2018-12-03 18:45:41 +0100 Stephan Bosch (3a08f5c05) lib-smtp: client: Merge smtp_client_connection_init_xclient() into smtp_client_connection_authenticate(). M src/lib-smtp/smtp-client-connection.c 2018-12-03 18:45:40 +0100 Stephan Bosch (945214b32) lib-smtp: client: Move smtp_client_connection_send_xclient() before smtp_client_connection_authenticate(). Keeps ordering of functions logical for next changes. M src/lib-smtp/smtp-client-connection.c 2018-12-03 18:45:40 +0100 Stephan Bosch (0d883b2cc) submission: relay backend: Provide data for the HELO and PROTO XCLIENT fields to the relay connection. M src/submission/submission-backend-relay.c 2018-12-03 18:45:39 +0100 Stephan Bosch (be6f4099a) lib-smtp: server: Use the HELO domain provided to smtp_server_connection_login() immediately. Before, it was only used when no new HELO/EHLO command was issued before MAIL. M src/lib-smtp/smtp-server-cmd-mail.c M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-private.h 2018-12-03 18:45:39 +0100 Stephan Bosch (da2b4d7d5) lib-smtp: client: Remove proxy_data parameter from smtp_client_connection_send_xclient(). Use smtp_client_connection_update_proxy_data() to change fields in the proxy data recorded in the client. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-connection.h M src/submission/submission-backend-relay.c 2018-12-03 18:45:38 +0100 Stephan Bosch (f69d83143) lib-smtp: client: Add smtp_client_connection_update_proxy_data(). Allows updating the proxy data after creation of the connection. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-connection.h 2018-12-03 18:45:38 +0100 Stephan Bosch (98679b003) lib-smtp: client: Make smtp_client_connection_send_xclient() return void. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-connection.h M src/submission/submission-backend-relay.c 2018-12-03 18:45:37 +0100 Stephan Bosch (d4d719f8a) lib-smtp: client: Copy proxy data from settings using the new smtp_proxy_data_merge() functioṅ. M src/lib-smtp/smtp-client-connection.c 2018-12-03 18:45:36 +0100 Stephan Bosch (1128d1574) lib-smtp: common: Add smtp_proxy_data_merge(). M src/lib-smtp/smtp-common.c M src/lib-smtp/smtp-common.h 2018-12-03 18:45:35 +0100 Stephan Bosch (51e1340e3) lib-smtp: client: Drop smtp_client_command_mail_submit_after(). It is not used. M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-command.h 2018-12-03 18:45:24 +0100 Stephan Bosch (f758ca68f) lib-smtp: client: connection: Fix copying of PROTO XCLIENT field in proxy data. M src/lib-smtp/smtp-client-connection.c 2018-12-03 18:45:17 +0100 Stephan Bosch (11de7fcbe) lib-smtp: syntax: Fix smtp_ehlo_line_parse() to also record the last parameter. M src/lib-smtp/smtp-syntax.c 2018-11-09 13:03:43 +0200 Timo Sirainen (54e41f5cb) submission: Install header files This allows creating external submission plugins. M src/submission/Makefile.am 2018-10-31 17:19:42 +0200 Timo Sirainen (3bef9e55e) lib-fs: If fs_get_metadata() isn't implemented, return internal metadata anyway The metadata is sometimes used for transferring internal metadata within the files. This metadata isn't stored to disk. So even if the fs driver doesn't support metadata at all, it should still be possible to get/set the internal metadata. Setting it was already possible, but getting wasn't. M src/lib-fs/fs-api.c 2018-11-02 10:39:17 +0100 Stephan Bosch (88b909cbf) submission: relay backend: Forward a (possibly multi-line) 421 reply from relay server to the client. Before, it substituted a generic 421 error reply, which is far less helpful. M src/submission/submission-backend-relay.c 2018-11-02 10:37:22 +0100 Stephan Bosch (8b60a188f) submission: client: Properly handle a multi-line reason string in client_disconnect(). Pass the multi-line string to smtp_server_connection_terminate(), yet log it as a single line. M src/submission/submission-client.c 2018-11-02 10:26:53 +0100 Stephan Bosch (cb4aae7dd) lib-smtp: server: connection: Properly handle a multi-line reason in smtp_server_connection_terminate(). M src/lib-smtp/smtp-server-connection.c 2018-11-02 10:43:11 +0100 Stephan Bosch (c4fd34ba9) lib-smtp: server: connection: Properly handle a multi-line reason in smtp_server_connection_disconnect(). Convert it to a single line string. M src/lib-smtp/smtp-server-connection.c 2018-11-02 10:23:42 +0100 Stephan Bosch (673327ca7) lib-smtp: server: connection: Add smtp_server_connection_reply_lines(). This function immediately sends a reply on the connection with the indicated status, enhanced code and text lines. M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-private.h 2018-11-02 10:17:30 +0100 Stephan Bosch (4a6cdec31) lib-smtp: server: connection: Add debug messages for protocol elements sent outside the normal reply API. M src/lib-smtp/smtp-server-connection.c 2018-11-02 10:14:57 +0100 Stephan Bosch (7b724a029) lib-smtp: reply: Add smtp_reply_get_text_lines_omit_prefix(). This returns a string array of the lines in the reply, omitting the prefix (the first word), which is usually a "" value. M src/lib-smtp/smtp-reply.c M src/lib-smtp/smtp-reply.h 2018-11-02 10:11:35 +0100 Stephan Bosch (064e379ad) lib-smtp: reply: Make parsing enhanced status codes available as a separate function. M src/lib-smtp/smtp-reply-parser.c M src/lib-smtp/smtp-reply-parser.h 2018-11-02 10:12:20 +0100 Stephan Bosch (b8ebcd650) lib: strfuncs: Add t_str_oneline(). This puts the string on a single line by replacing all newlines with spaces and dropping any carriage returns M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2018-11-02 10:08:26 +0100 Stephan Bosch (03e2a66ad) lib-smtp: client: transaction: Hold a reference to the transaction while calling the RCPT command callback. This fixes memory problems when the callback inadvertently gets the transaction destroyed. M src/lib-smtp/smtp-client-transaction.c 2018-11-01 01:14:50 +0100 Stephan Bosch (2d16e2ed5) lib-smtp: server: recipient: Hold a reference to the recipient while calling a non-destroy hook. Prevents memory problems when the hook inadvertently gets the recipient destroyed. Unlike the server command, this is not strictly necessary for the recipient object, but we add this anyway to prevent future problems when the recipient implementation becomes more complex (e.g. with additional hooks). M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-recipient.c 2018-11-01 00:58:47 +0100 Stephan Bosch (04c9d141d) lib-smtp: server: recipient: Prevent reference counting from within destroy hook. M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-recipient.c 2018-11-01 01:25:10 +0100 Stephan Bosch (ce9373c8d) lib-smtp: server: recipient: Add reference counting. Unlike the server command, this is not strictly necessary for the recipient object, but we add this anyway to prevent future problems when the recipient implementation becomes more complex. M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-recipient.c 2018-11-01 00:12:03 +0100 Stephan Bosch (43fa7cdef) lib-smtp: server: Make sure command object is not used after it is destroyed in hook. M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-private.h 2018-11-01 01:40:10 +0100 Stephan Bosch (c76bb01ce) lib-smtp: server: command: Hold connection reference while calling replied hook. M src/lib-smtp/smtp-server-command.c 2018-11-01 00:44:10 +0100 Stephan Bosch (f4116a486) lib-smtp: server: command: Move core of smtp_server_command_submit_reply() into a separate function. Makes the next changes easier. M src/lib-smtp/smtp-server-command.c 2018-11-01 00:39:21 +0100 Stephan Bosch (c45761a4d) lib-smtp: server: command: Hold a reference to the command while calling a non-destroy hook. Prevents memory problems when the hook inadvertently gets the command destroyed. M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server-private.h 2018-11-01 00:27:50 +0100 Stephan Bosch (48dba2d13) lib-smtp: server: command: Prevent reference counting from within destroy hook. M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server-private.h 2018-11-01 22:22:34 +0100 Stephan Bosch (352703891) lib-smtp: Consistently use signed integer for reference counters. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-server-private.h 2018-10-30 09:53:07 +0100 Stephan Bosch (00493144c) submission: relay backend: Add assertion in backend_relay_handle_relay_reply() to address compiler warning. Assert that the error message is assinged when the result is FALSE. M src/submission/submission-backend-relay.c 2018-10-30 09:57:31 +0100 Stephan Bosch (aeb96b2c1) submission: relay backend: In backend_relay_handle_relay_reply(): Only determine error detail when it is used. M src/submission/submission-backend-relay.c 2018-10-29 01:36:43 +0100 Stephan Bosch (9bc54d9cd) submission: Make include directory available to external plugins. M dovecot-config.in.in M m4/dovecot.m4 2018-10-25 23:50:55 +0200 Stephan Bosch (5c0cc0210) submission: relay backend: Allow creating the client transaction with specific flags. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h 2018-10-18 02:15:07 +0200 Stephan Bosch (3a9aefff5) lib-smtp: client: Allow enabling the LMTP per-RCPT DATA reply behavior for ESMTP transactions. This is non-standard. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-client-transaction.h M src/lib-smtp/smtp-submit.c M src/lib-smtp/test-smtp-client-errors.c M src/lib-smtp/test-smtp-payload.c M src/lmtp/lmtp-proxy.c M src/submission/submission-backend-relay.c 2018-10-27 12:20:01 +0200 Stephan Bosch (0df4aa4e9) submission: Add support for module contexts to backend. M src/submission/submission-backend.c M src/submission/submission-backend.h 2018-10-27 11:56:59 +0200 Stephan Bosch (d538e88c0) submission: Allocate each backend on its own pool. This allows allocating per-backend module data. M src/submission/submission-backend-relay.c M src/submission/submission-backend.c M src/submission/submission-backend.h 2018-10-26 21:00:00 +0200 Stephan Bosch (9989814e4) submission: Add support for modifying the transaction path and parameters in the trans_start backend vfunc. To keep the changes limited to a particular backend, the server transaction cannot be modified. Also, creating a mock server transaction and passing it on is not a good idea, since it is not a simple container struct. M src/submission/submission-backend-relay.c M src/submission/submission-backend.c M src/submission/submission-backend.h 2018-10-26 17:00:32 +0200 Stephan Bosch (7ec923c74) submission: Add backend flag indicating whether the backend is ready. This flag is set just before the ready() vfunc is called. M src/submission/submission-backend.c M src/submission/submission-backend.h 2018-10-18 23:35:05 +0200 Stephan Bosch (88a15ca2f) submission: Add backend vfunc called when the backend is ready. For a relay backend, this means that the connection is fully connected and handshaked. For any backend it means the capabilities are known (and passed as a parameter to the ready function). M src/submission/submission-backend.c M src/submission/submission-backend.h 2018-10-25 23:50:22 +0200 Stephan Bosch (f9eb4572c) lib-smtp: params: Explicitly allow smtp_params_*_add_extra() value parameter to be NULL. M src/lib-smtp/smtp-params.h 2018-10-17 01:34:54 +0200 Stephan Bosch (c04e36ae1) submission: relay backend: Allow recording extra (non-standard) capabilities. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h 2018-10-16 23:58:23 +0200 Stephan Bosch (6b49a299c) submission: relay backend: Provide access to the client connection and transaction for plugins. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c M src/submission/submission-client.h 2018-10-17 00:59:02 +0200 Stephan Bosch (e559e8207) lib-smtp: client: Add support for recording extra (non-standard) capabilities from server. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-connection.h M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client.c M src/lib-smtp/smtp-client.h M src/lib-smtp/smtp-common.h 2018-10-17 01:05:07 +0200 Stephan Bosch (7d2ffc678) lib-smtp: client: connection: Consolidate capability data into a struct. Allows clearing it reliably. M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-private.h 2018-10-26 22:26:53 +0200 Stephan Bosch (00640bd83) submission: Clarify the behavior of command handlers and the requirements for overriding them. M src/submission/submission-backend.h M src/submission/submission-client.h 2018-10-25 21:02:46 +0200 Stephan Bosch (48dd6d5b3) submission: Use the new smtp_server_cmd_noop_reply_success() function. M src/submission/submission-backend-relay.c 2018-03-12 02:59:28 +0100 Stephan Bosch (343d00daa) lmtp: local: Use the new smtp_server_cmd_rcpt_reply_success() function. M src/lmtp/lmtp-local.c 2018-10-25 20:29:30 +0200 Stephan Bosch (5acc9d5dd) lib-smtp: server: NOOP command: Implement smtp_server_cmd_noop_reply_success() for sending default success reply. M src/lib-smtp/smtp-server-cmd-noop.c M src/lib-smtp/smtp-server.h 2018-10-25 20:38:26 +0200 Stephan Bosch (039673b55) lib-smtp: server: RSET command: Implement smtp_server_cmd_rset_reply_success() for sending default success reply. M src/lib-smtp/smtp-server-cmd-rset.c M src/lib-smtp/smtp-server.h 2018-03-12 01:03:24 +0100 Stephan Bosch (cc446d240) lib-smtp: server: RCPT command: Implement smtp_server_cmd_rcpt_reply_success() for sending default success reply. M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server.h 2018-03-12 01:01:46 +0100 Stephan Bosch (8201b5e4b) lib-smtp: server: MAIL command: Implement smtp_server_cmd_mail_reply_success() for sending default success reply. M src/lib-smtp/smtp-server-cmd-mail.c M src/lib-smtp/smtp-server.h 2018-10-28 12:08:50 +0100 Stephan Bosch (7770b655a) submission: relay backend: Always reset the trans_started flag upon trans_free(). M src/submission/submission-backend-relay.c 2018-10-28 12:08:13 +0100 Stephan Bosch (fb410a48d) submission: backend: Properly reset the trans_started flag upon trans_free(). M src/submission/submission-backend.c 2018-10-19 17:39:36 +0200 Stephan Bosch (025c10a95) doc: example-config: Document the new submission_backend_capabilities setting. M doc/example-config/conf.d/20-submission.conf 2018-10-29 17:27:17 +0100 Stephan Bosch (a76252030) submission,submission-login: Implicitly enable CHUNKING when submission_backend_capabilities setting includes BINARYMIME. BINARYMIME requires CHUNKING support and we should not expect administrators to always be aware of that fact. M src/submission-login/client.c M src/submission/submission-client.c 2018-10-19 17:12:10 +0200 Stephan Bosch (f69da23f5) submission: relay backend: VRFY command: Avoid forwarding 500 and 502 replies back to client. These are in fact non-standard for VRFY and indicate that VRFY support is disabled, which is not allowed by the specification. Instead, we now substitute the default 252 response. M src/submission/submission-backend-relay.c 2018-10-19 17:02:08 +0200 Stephan Bosch (325c32c7b) lib-smtp: server: VRFY command: Implement smtp_server_cmd_reply_default() for sending default reply. M src/lib-smtp/smtp-server-cmd-vrfy.c M src/lib-smtp/smtp-server.h 2018-10-19 16:42:41 +0200 Stephan Bosch (eb62300ff) submission,submission-login: Omit listing VRFY capability if the backend provides no explicit support. M src/submission-login/client-authenticate.c M src/submission/submission-client.c M src/submission/submission-commands.c 2018-10-19 11:15:50 +0200 Stephan Bosch (37c38c6b7) submission-login: Use the submission_backend_capabilities setting to compose the EHLO reply when configured. This way, the EHLO response prior to AUTH will better match the EHLO response after AUTH. M src/submission-login/client-authenticate.c M src/submission-login/client.c M src/submission-login/client.h M src/submission-login/submission-login-settings.c M src/submission-login/submission-login-settings.h 2018-10-19 11:24:35 +0200 Stephan Bosch (11994647a) submission-login: Add the VRFY capability to the EHLO reply. The post-login service does it too. M src/submission-login/client-authenticate.c 2018-10-19 00:35:53 +0200 Stephan Bosch (e2d3eb0a8) submission: relay backend: Fix non-transaction commands to work when submission_backend_capabilities is configured. When submission_backend_capabilities is configured, the backend is not started until the first transaction is started. But for commands that should work outside the transaction, the backend should also be started, which was not the case before this fix. M src/submission/submission-backend.c 2018-10-19 00:01:40 +0200 Stephan Bosch (2e2ec7f7c) submission: backends: Set the started flag before calling the backend start vfunc. This prevents recursive mishaps. M src/submission/submission-backend.c 2018-10-18 13:55:53 +0300 Timo Sirainen (c4c5af0f6) lib-fts: test-fts-tokenizer: Verify fts_tokenizer_create() return value M src/lib-fts/test-fts-tokenizer.c 2018-10-12 09:45:42 +0200 Stephan Bosch (8cf4fdbf1) submission: relay backend: Handle the LMTP per-RCPT DATA reply behavior when enabled. Without this change, enabling the per-RCPT DATA reply behavior on the server side will not have the desired effect. M src/submission/submission-backend-relay.c 2018-10-18 01:39:05 +0200 Stephan Bosch (fcdd8e67b) submission: relay backend: Log an error when relayed commands fail with connection-related errors. Errors sent by the remote server are handled by the command reply handler and are logged using i_info() where relevant. M src/submission/submission-backend-relay.c 2018-10-12 10:34:21 +0200 Stephan Bosch (5cca9b095) submission: relay backend: Fix comment in RCPT command code. M src/submission/submission-backend-relay.c 2018-10-12 09:42:29 +0200 Stephan Bosch (959f3b23a) submission: recipient: Add field for associating backend context. M src/submission/submission-recipient.h 2018-10-12 09:34:56 +0200 Stephan Bosch (31755e300) lmtp: DATA command: Assert that the server transaction flags are correct for LMTP. M src/lmtp/commands.c 2018-10-06 11:21:35 +0200 Stephan Bosch (26af7752e) lib-smtp: server: Allow enabling the LMTP per-RCPT DATA reply behavior for ESMTP transactions. This is non-standard. M src/lib-smtp/smtp-server-cmd-data.c M src/lib-smtp/smtp-server-cmd-mail.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-transaction.c M src/lib-smtp/smtp-server.h M src/submission/submission-backend-relay.c 2018-10-12 09:23:27 +0200 Stephan Bosch (87f60ed53) submission: relay backend: Do not close the client connection for failure in a non-default backend. Adjusts the backend API to remember the failure until the present transaction is reset. In the mean time, any commands issued to the backend are failed immediately. In contrast, failure on the default backend will cause the client connection to be closed, like before. M src/submission/submission-backend-relay.c M src/submission/submission-backend.c M src/submission/submission-backend.h 2018-10-12 10:01:12 +0200 Stephan Bosch (7907039e8) submission: relay backend: Use (potentially) modified reply after backend_relay_handle_relay_reply(). Before, it sometimes still referred to the original reply struct from the client callback. M src/submission/submission-backend-relay.c 2018-10-12 10:07:14 +0200 Stephan Bosch (1204808c8) submission: relay backend: Use smtp_reply_is_success() to evaluate reply form relay. Before, it evaluated the reply status directly. M src/submission/submission-backend-relay.c 2018-10-14 14:23:32 +0200 Stephan Bosch (774da4899) lib-smtp: server: Add smtp_server_command_get_reply_count(). Returns the number of replies expected to the command. M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server.h 2018-10-14 13:45:56 +0200 Stephan Bosch (ea2e602ee) lib-smtp: client: Make smtp_client_transaction_unref(NULL) a no-op. M src/lib-smtp/smtp-client-transaction.c 2018-10-14 13:43:42 +0200 Stephan Bosch (3332e1f4d) lib-smtp: client: Make smtp_client_transaction_destroy(NULL) a no-op. M src/lib-smtp/smtp-client-transaction.c 2018-10-11 00:50:26 +0200 Stephan Bosch (e0b70e837) submission: Allocate recipients for the client transaction on the server recipient pool. M src/submission/submission-backend-relay.c 2018-10-11 00:49:44 +0200 Stephan Bosch (7157254ff) lmtp: proxy: Allocate recipients for the client transaction on the server recipient pool. M src/lmtp/lmtp-proxy.c 2018-10-11 00:49:33 +0200 Stephan Bosch (007772051) lib-smtp: client: transaction: Add alternative function for adding a recipient on an application-provided pool. This allows modifying the recipient object beyond approval. Before, it was always moved to the transaction pool, thereby invalidating the original returned pointer. This way, the data_calback and context can be set at a later time, e.g. when the DATA command is being processed. This makes a choice between LMTP-style and SMTP-style replies to the DATA command a bit easier to handle. Also, the recipient is entirely allocated on a single pool between the client and server side, which should improve memory consumption a little. As a bonus, this removes the need to have dummy DATA callbacks. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-client-transaction.h 2018-10-12 10:42:55 +0200 Stephan Bosch (2517541f0) lib-smtp: client: transaction: Fix and amend a few comments in the header. M src/lib-smtp/smtp-client-transaction.h 2018-10-12 09:24:06 +0200 Stephan Bosch (2605acd5f) lib-smtp: client: Remove unused "failed" field from struct smtp_client_transaction_mail. M src/lib-smtp/smtp-client-private.h 2018-10-14 22:34:50 +0200 Stephan Bosch (053d53d0b) submission: Fix starting secondary backends created before the server-side transaction is fully created. Record an array of those backends and start them once the transaction is created. Before, this was implemented using the array of approved recipients (which each point to their backend). However, this does not work, since there can be no approved recipients when there is no server-side transaction yet. M src/submission/submission-backend.c M src/submission/submission-client.c M src/submission/submission-client.h 2018-10-14 23:00:11 +0200 Stephan Bosch (e66444352) submission: relay backend: Properly manage the trans_started flag. Sometimes it was not set at all. This didn't lead to problems in most cases, but this was at least confusing while debugging. Also, the flag is set before the client transaction is actually started, making sure (future) recursive problems will not occur. M src/submission/submission-backend-relay.c 2018-10-14 22:48:58 +0200 Stephan Bosch (26f4ccf8b) submission: relay backend: Set the immediate for the client transaction no matter where it is created. Forgot a few instances. M src/submission/submission-backend-relay.c 2018-10-14 22:42:36 +0200 Stephan Bosch (4e6966a4f) submission: RCPT command: Move starting the backend transaction from submission-commands.c to submission-backend.c. This way, the transaction is only started from RCPT when the backend needs it at this point. M src/submission/submission-backend.c M src/submission/submission-commands.c 2018-09-23 19:53:07 +0200 Stephan Bosch (599845b68) submission: relay backend: Add support for relaying to a unix socket. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h 2018-09-23 19:43:05 +0200 Stephan Bosch (deb8c48b9) lib-smtp: client: Allow connecting to SMTP/LMTP services offered through unix sockets. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-connection.h M src/lib-smtp/smtp-client-private.h 2018-09-23 19:32:11 +0200 Stephan Bosch (28a96e0e4) lib-smtp: client: Move creation of connection object to a separate function. M src/lib-smtp/smtp-client-connection.c 2018-10-07 18:37:48 +0200 Stephan Bosch (1504d725c) lib-smtp: server: Record the associated server command in the recipient object. This avoids the need to do that in application code. M src/lib-smtp/smtp-server-cmd-data.c M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-recipient.c M src/lib-smtp/smtp-server-transaction.c M src/lib-smtp/smtp-server.h M src/lmtp/lmtp-common.c M src/lmtp/lmtp-common.h M src/lmtp/lmtp-local.c M src/lmtp/lmtp-proxy.c 2018-10-07 21:24:43 +0200 Stephan Bosch (2678b9678) submission: Use the recipient index in the server recipient object rather than the submission recipient. M src/submission/submission-recipient.c M src/submission/submission-recipient.h 2018-10-07 21:23:44 +0200 Stephan Bosch (9bd0a3890) lmtp: Use the recipient index in the server recipient object rather than the lmtp recipient. M src/lmtp/lmtp-common.c M src/lmtp/lmtp-common.h M src/lmtp/lmtp-local.c M src/lmtp/lmtp-proxy.c 2018-10-07 19:44:40 +0200 Stephan Bosch (afbe1bdc4) submission: Use the path in the server recipient object rather than the submission recipient. It is recorded reliably on a pool from the start now M src/submission/submission-recipient.c M src/submission/submission-recipient.h 2018-10-07 19:47:59 +0200 Stephan Bosch (5eea7de82) lmtp: Use the path in the server recipient object rather than the lmtp recipient. It is recorded reliably on a pool from the start now. M src/lmtp/lmtp-common.c M src/lmtp/lmtp-common.h M src/lmtp/lmtp-local.c M src/lmtp/lmtp-proxy.c 2018-10-07 17:47:29 +0200 Stephan Bosch (5c39ef588) submission: Start using the new lib-smtp/server recipient pool. M src/submission/submission-backend-relay.c M src/submission/submission-backend.c M src/submission/submission-backend.h M src/submission/submission-client.c M src/submission/submission-client.h M src/submission/submission-commands.c M src/submission/submission-commands.h M src/submission/submission-recipient.c M src/submission/submission-recipient.h 2018-10-07 22:32:38 +0200 Stephan Bosch (728dd5a94) lmtp: Start using the new lib-smtp/server recipient pool. M src/lmtp/lmtp-common.h M src/lmtp/lmtp-local.c M src/lmtp/lmtp-proxy.c 2018-10-07 21:37:00 +0200 Stephan Bosch (de44662ed) lib-smtp: server: Create the definitive recipient object right at the reception of the RCPT command. Before, it first allocated stuff on the command pool, which gets freed when the RCPT command finishes. Allocating the recipient data on its own pool from the start considerably simplifies the code and prevents very nasty bugs. M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server.h M src/lib-smtp/test-smtp-payload.c M src/lib-smtp/test-smtp-server-errors.c M src/lmtp/commands.c M src/lmtp/commands.h M src/lmtp/lmtp-common.c M src/lmtp/lmtp-common.h M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h M src/submission/submission-backend-relay.c M src/submission/submission-backend.c M src/submission/submission-backend.h M src/submission/submission-client.h M src/submission/submission-commands.c M src/submission/submission-commands.h 2018-10-07 21:13:44 +0200 Stephan Bosch (f8fc07fb0) lib-smtp: server: Record the index in the list of approved recipients in the recipient object. This avoids the need to do that in application code. M src/lib-smtp/smtp-server-transaction.c M src/lib-smtp/smtp-server.h 2018-10-07 20:42:20 +0200 Stephan Bosch (964ab70fa) lib-smtp: server: Add hooks API for recipient. M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-recipient.c M src/lib-smtp/smtp-server.h 2018-10-07 20:34:12 +0200 Stephan Bosch (6c939b142) lib-smtp: server: Allocate each recipient on its own pool. This way, the application can associate data with the recipient, which implicitly goes away either when the transaction is finished or the recipient is denied. M src/lib-smtp/Makefile.am M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server-private.h A src/lib-smtp/smtp-server-recipient.c M src/lib-smtp/smtp-server-transaction.c M src/lib-smtp/smtp-server.h 2018-10-08 01:09:26 +0200 Stephan Bosch (eca454196) submission: Rename struct smtp_server_recipient *trcpt variables to *rcpt. M src/submission/submission-commands.c M src/submission/submission-recipient.c M src/submission/submission-recipient.h 2018-10-08 00:44:28 +0200 Stephan Bosch (7d88326dc) submission: Rename struct submission_recipient *rcpt variables to *srcpt. M src/submission/submission-client.h M src/submission/submission-commands.c M src/submission/submission-commands.h M src/submission/submission-recipient.c M src/submission/submission-recipient.h 2018-10-07 23:53:11 +0200 Stephan Bosch (201fe17d5) lmtp: Rename struct smtp_server_recipient *trcpt variables to *rcpt. M src/lmtp/lmtp-common.c M src/lmtp/lmtp-common.h M src/lmtp/lmtp-local.c M src/lmtp/lmtp-proxy.c 2018-03-12 01:22:34 +0100 Stephan Bosch (29901fb32) lmtp: local: Rename struct lmtp_local_recipient *rcpt variables to *llrcpt. M src/lmtp/lmtp-local.c 2018-03-12 01:12:30 +0100 Stephan Bosch (d8f8f1342) lmtp: proxy: Rename struct lmtp_proxy_recipient *rcpt variables to *lprcpt. M src/lmtp/lmtp-proxy.c 2018-10-07 23:08:37 +0200 Stephan Bosch (6e27dce08) lmtp: common: Rename struct lmtp_recipient *rcpt variables to *lrcpt. M src/lmtp/lmtp-common.c M src/lmtp/lmtp-common.h 2018-03-12 03:12:44 +0100 Stephan Bosch (a2abf87cd) lmtp: local: Do not use array_idx() to obtain transaction recipient from lib-smtp. It is already available in struct lmtp_recipient. Also, this call was very ugly. M src/lmtp/lmtp-local.c 2018-10-07 18:17:28 +0200 Stephan Bosch (0de66ec4e) lmtp: Reformat commands.h. M src/lmtp/commands.h 2018-10-05 00:26:56 +0200 Stephan Bosch (ee006535a) submission: client: Add API for adding extra (non-standard) capabilities. M src/submission/submission-client.c M src/submission/submission-client.h M src/submission/submission-commands.c 2018-10-05 00:26:03 +0200 Stephan Bosch (946a45a94) lib-smtp: syntax: Add verification functions for EHLO keywords and parameters. M src/lib-smtp/smtp-syntax.c M src/lib-smtp/smtp-syntax.h 2018-09-25 02:18:24 +0200 Stephan Bosch (9be9d7338) submission: Add support for module contexts to recipient. M src/submission/submission-recipient.c M src/submission/submission-recipient.h 2018-05-13 11:33:03 +0200 Stephan Bosch (3672ffa8e) submission: Add support for module contexts to client. M src/submission/submission-client.c M src/submission/submission-client.h 2018-09-16 21:47:10 +0200 Stephan Bosch (b8998f060) submission: Implement client vfuncs for transaction start and free. M src/submission/submission-client.c M src/submission/submission-client.h 2018-09-15 21:47:42 +0200 Stephan Bosch (83d37361d) submission: Implement client vfuncs for all normal SMTP commands. M src/submission/submission-client.c M src/submission/submission-client.h M src/submission/submission-commands.c M src/submission/submission-commands.h 2018-05-13 11:15:59 +0200 Stephan Bosch (c1e5881c2) submission: Implement basic client vfuncs. Currently, only client_destroy can be overriden. M src/submission/submission-client.c M src/submission/submission-client.h 2018-09-25 02:11:46 +0200 Stephan Bosch (a9116f626) submission: Allocate each recipient object on its own pool. This allows allocating per recipient module data. M src/submission/submission-recipient.c M src/submission/submission-recipient.h 2018-09-25 01:53:02 +0200 Stephan Bosch (bb708b562) submission: Provide ephemeral pool for transaction state. M src/submission/submission-client.c M src/submission/submission-client.h 2018-09-16 21:15:20 +0200 Stephan Bosch (ea39afc26) submission: Allocate client on alloconly mempool. M src/submission/submission-client.c M src/submission/submission-client.h 2018-09-13 23:30:26 +0200 Stephan Bosch (53421a654) lib-smtp: server: Add proper infrastructure for adding custom MAIL/RCPT command parameters. M src/lib-smtp/smtp-server-cmd-mail.c M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server.h 2018-09-16 22:07:16 +0200 Stephan Bosch (f716c910a) lib-smtp: params: Add functions for dropping extra MAIL/RCPT parameters. M src/lib-smtp/smtp-params.c M src/lib-smtp/smtp-params.h 2018-10-03 22:05:10 +0200 Stephan Bosch (7fc7f0bc0) lib-smtp: params: Add functions for adding extra MAIL/RCPT parameters. M src/lib-smtp/smtp-params.c M src/lib-smtp/smtp-params.h 2018-09-13 22:48:51 +0200 Stephan Bosch (d9b1b659d) lib-smtp: params: Allow only specific custom parameter extensions, rather than any parameter. Before the choice was between allowing any extension or none. M src/lib-smtp/smtp-params.c M src/lib-smtp/smtp-params.h M src/lib-smtp/smtp-server-cmd-mail.c M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server.c M src/lib-smtp/smtp-server.h M src/lib-smtp/test-smtp-params.c 2018-09-16 21:55:58 +0200 Stephan Bosch (2038f7938) lib-smtp: params: Fix segfault occurring in smtp_param_write() when param->value == NULL. M src/lib-smtp/smtp-params.c 2018-09-29 04:42:27 +0200 Stephan Bosch (acd09d8e6) submission: relay backend: Use SMTP client transaction API, rather than relaying individual commands. M src/submission/submission-backend-relay.c 2018-10-01 00:28:06 +0200 Stephan Bosch (c61148ebe) lib-smtp: client: transaction: Add option to submit commands immediately, rather than queueing them on a zero timeout. Also, allow interleaving other unrelated (non-transaction) commands. This is made possible by not locking/plugging the command pipeline. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-client-transaction.h 2018-09-29 18:28:29 +0200 Stephan Bosch (773ab6e70) lib-smtp: client: Fully disconnect the connection upon failure before triggering failure callbacks. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client-transaction.c 2018-09-30 00:37:10 +0200 Stephan Bosch (158a93857) lib-smtp: client: transaction: Add support for aborting a pending RCPT command. M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-client-transaction.h 2018-09-30 00:35:26 +0200 Stephan Bosch (de456551b) lib-smtp: client: transaction: Add support for aborting a pending MAIL command. M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-client-transaction.h 2018-09-28 17:59:53 +0200 Stephan Bosch (87ac47c5d) lib-smtp: client: transaction: Add support for creating an empty transaction (without MAIL FROM data). M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-client-transaction.h 2018-09-28 15:44:55 +0200 Stephan Bosch (29fe17d51) lib-smtp: client: transaction: Add support for pipelining more than a single MAIL command. M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-client-transaction.h 2018-09-28 02:10:41 +0200 Stephan Bosch (e14794f37) lib-smtp: client: transaction: Add infrastructure for pipelining more than a single MAIL command. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client-transaction.c 2018-09-28 13:39:44 +0200 Stephan Bosch (f103dff51) lib-smtp: client: transaction: Rename mail_from_callback/mail_from_context to mail_callback/mail_context. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-client-transaction.h 2018-09-30 11:50:02 +0200 Stephan Bosch (5f9be113a) lib-smtp: client: transaction: Use linked lists rather than arrays for recipients. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client-transaction.c 2018-09-21 00:55:51 +0200 Stephan Bosch (f290899b4) lib-smtp: client: transaction: Add support for ending the transaction in a graceful RSET command. Allows running the pending transaction until RSET, without abruptly aborting it or issuing a DATA command. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-client-transaction.h 2018-09-30 23:56:57 +0200 Stephan Bosch (4ba57a4b9) lib-smtp: client: transaction: Move initiation of command submission to a central position. M src/lib-smtp/smtp-client-transaction.c 2018-09-28 13:28:50 +0200 Stephan Bosch (2c58103a9) lib-smtp: client: transaction: Perform pipeline plug handling just once at top-level in smtp_client_transaction_submit_more(). M src/lib-smtp/smtp-client-transaction.c 2018-09-28 13:17:30 +0200 Stephan Bosch (60ceb9f1c) lib-smtp: client: transaction: Annotate sub-parts of smtp_client_transaction_send_more() with comments. M src/lib-smtp/smtp-client-transaction.c 2018-09-30 23:35:58 +0200 Stephan Bosch (142cd3710) lib-smtp: client: transaction: Move smtp_client_transaction_submit_more(). M src/lib-smtp/smtp-client-transaction.c 2018-10-02 04:28:10 +0200 Stephan Bosch (d335022bc) lib-smtp: client: transaction: Move initiation of command submission after starting the transaction timeout. This is a precaution against the emergence of segfaults when command submission somehow terminates the transaction in a future version (actually, a segfault did emerge in an earlier version of this set of changes). Also it is a cosmetic change: putting the most important act at the end of the function makes more sense in this case. M src/lib-smtp/smtp-client-transaction.c 2018-09-28 13:08:46 +0200 Stephan Bosch (4cbc847a4) lib-smtp: client: transaction: Rename smtp_client_transaction_send_rcpts() to smtp_client_transaction_submit_more(). M src/lib-smtp/smtp-client-transaction.c 2018-10-01 23:26:18 +0200 Stephan Bosch (9dc98bc24) lib-smtp: client: transaction: Move the code executed at the completion of the transaction to a separate shared function. The transaction is complete when all RCPT replies are received and either a DATA or a RSET command is submitted. M src/lib-smtp/smtp-client-transaction.c 2018-10-02 21:44:48 +0200 Stephan Bosch (b8e97b6d7) lib-smtp: client: transaction: Don't trigger next transaction unless all RCPT replies are received and DATA is submitted. Triggering the next transaction when DATA submitted while not all RCPT replies are received (as it was before) is problematic when commands are submitted immediately by the transaction (which is added in a later commit). M src/lib-smtp/smtp-client-transaction.c 2018-09-29 20:43:20 +0200 Stephan Bosch (dbbf717ec) lib-smtp: client: transaction: Prevent calling callbacks after smtp_client_transaction_destroy(). M src/lib-smtp/smtp-client-transaction.c 2018-09-29 21:09:57 +0200 Stephan Bosch (c0d517b31) lib-smtp: client: transaction: Annotate sub-parts of smtp_client_transaction_fail_reply() with comments. M src/lib-smtp/smtp-client-transaction.c 2018-09-29 21:07:50 +0200 Stephan Bosch (1c2ff5938) lib-smtp: client: transaction: Add debug message for when smtp_client_transaction_abort() is called during smtp_client_transaction_fail*(). M src/lib-smtp/smtp-client-transaction.c 2018-09-29 13:19:53 +0200 Stephan Bosch (1b81cf3cf) lib-smtp: client: transaction: Make sure the transaction is finished/aborted after smtp_client_connection_destroy(). Otherwise, the transaction could be dereferenced several times too often. M src/lib-smtp/smtp-client-transaction.c 2018-10-02 00:04:44 +0200 Stephan Bosch (e8e3cfa75) lib-smtp: client: connection: Add debug messages for transaction handling. M src/lib-smtp/smtp-client-connection.c 2018-09-29 00:21:05 +0200 Stephan Bosch (98946ec76) lib-smtp: server: RCPT command: Improve replacement of (forwarded) specific error reply with generic state error. Predictable transaction state errors were not always replaced reliably when commands were pipelined, leading to a mix of proxy and remote errors. M src/lib-smtp/smtp-server-cmd-rcpt.c 2018-09-29 00:20:50 +0200 Stephan Bosch (84b4c8b73) lib-smtp: server: MAIL command: Improve replacement of (forwarded) specific error reply with generic state error. Predictable transaction state errors were not always replaced reliably when commands were pipelined, leading to a mix of proxy and remote errors. M src/lib-smtp/smtp-server-cmd-mail.c 2018-09-29 00:19:05 +0200 Stephan Bosch (cc8a27bb4) lib-smtp: server: Add ability to determine whether command reply was created using smtp_server_reply_create_forward(). M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-reply.c M src/lib-smtp/smtp-server.h 2018-09-27 22:16:56 +0200 Stephan Bosch (31a0528c1) lib-smtp: server: MAIL command: Reliably start the transaction when several MAIL commands are pipelined. M src/lib-smtp/smtp-server-cmd-mail.c 2018-09-29 20:54:03 +0200 Stephan Bosch (bd8ee0b86) lib-smtp: client: Properly manage command timeout during transaction. M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-connection.c 2018-09-29 15:31:58 +0200 Stephan Bosch (56e3227cc) lib-smtp: client: transaction: Set the number of expected DATA replies > 1 only for LMTP. This was already OK for when all recipients were added at the time the data command was to be sent. However, for more dynamic transactions involving pipelining, this was not handled correctly. M src/lib-smtp/smtp-client-transaction.c 2018-09-29 15:31:14 +0200 Stephan Bosch (2858e16dd) lib-smtp: client: Clear command callback early to prevent mishaps. M src/lib-smtp/smtp-client-command.c 2018-09-29 20:39:28 +0200 Stephan Bosch (639692a98) lib-smtp: client: Add smtp_client_command_drop_callback(). M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-private.h 2018-09-29 20:38:44 +0200 Stephan Bosch (025f75285) lib-smtp: client: Fix memory issue caused when reconnecting. M src/lib-smtp/smtp-client-connection.c M src/lib/connection.c 2018-09-20 22:33:23 +0300 Phil Carmody (2687917d5) lib-fts: replace repeated explicit hex utf8 with cleaner macro in tokeniser test utf8 is too line-noisy, this improves readability. Signed-off-by: Phil Carmody M src/lib-fts/test-fts-tokenizer.c 2018-05-16 18:08:01 +0300 Phil Carmody (a0fc10ba3) lib-fts: tokenizer-generic - tr29 explicit-prefix parsing Similar logic to before - any wordlike sequence that ends with a * is considered a prefix search, and immediately begins a new token. Signed-off-by: Phil Carmody M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/test-fts-tokenizer.c 2018-04-28 15:33:28 +0300 Phil Carmody (4ae7e343d) lib-fts: test-fts-tokenizer - explicit-prefix tests Note that the special handling of '*' only kicks in when in "search" and "explicitprefix" mode (as passed in through the settings), and currently, only for the simple mode, not tr29. Signed-off-by: Phil Carmody M src/lib-fts/test-fts-tokenizer.c 2018-05-16 17:57:14 +0300 Phil Carmody (6e545c501) lib-fts: tokenizer-generic - simple explicit prefix search logic Logic is that words followed by a '*' create a prefix search token. A new token is begun immediately after that. So "foo*bar" is 2 tokens "foo*" and "bar", when in explicit prefix search tokenisation mode. Only active in 'simple', not 'tr29'. Signed-off-by: Phil Carmody M src/lib-fts/fts-common.h M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer-generic.c 2018-05-16 17:37:29 +0300 Phil Carmody (64baaac55) lib-fts: tokenizer-generic - add more history to break detection For example, going from non-word to non-word is a different type of break (not really a break) from the transition from a word to a non-word. Presently, that distinction isn't needed, but it will be for explicit prefix searches. Make the tok parameter const too, whilst there. Signed-off-by: Phil Carmody M src/lib-fts/fts-tokenizer-generic.c 2018-05-16 16:32:35 +0300 Phil Carmody (1bc83feaf) lib-fts: tokenizer-generic - recognise request for explicit prefix searching Just store a flag in the tokenizer when the setting is seen, nothing more. Signed-off-by: Phil Carmody M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer-generic.c 2018-04-28 12:30:49 +0300 Phil Carmody (3a35b9c67) lib-fts/test-fts-tokenizer - have different possible test inputs Signed-off-by: Phil Carmody M src/lib-fts/test-fts-tokenizer.c 2018-05-11 13:34:40 +0300 Phil Carmody (6d292e2a1) lib-fts: generic simple tokeniser - distinguish "letters" from non-"letters" prev_type is only compared against SINGLE_QUOTE, so there will be no behavioural differences. However, maintaining the state that we've just seen something we are prepared to search for (very loosely, a "letter") rather than something that we threw away (word breaks) will be important when it comes to explicit prefix query parsing. Signed-off-by: Phil Carmody M src/lib-fts/fts-tokenizer-generic.c 2018-05-16 17:11:27 +0300 Phil Carmody (075746288) lib-fts: tokenizer-generic - move related helpers together in file They're logically related, and not specifically simple or tr29 related, so keep them together, so either tokeniser can use them. Cosmetic only, no functional changes. Signed-off-by: Phil Carmody M src/lib-fts/fts-tokenizer-generic.c 2018-05-16 17:04:35 +0300 Phil Carmody (2449c3311) lib-fts: tokenizer-generic - move state history setting into helper We can read the value directly, but for encapsulation it's best to do the shifting of the token type history into a helper in a similar way as how it is done for tr29 tokenising. Signed-off-by: Phil Carmody M src/lib-fts/fts-tokenizer-generic.c 2018-04-28 15:46:54 +0300 Phil Carmody (f87e656ba) lib-fts/fts-tokenizer-generic - rename more state variables - cosmetic No need for a suffix now we've renamed the type variables. Patch best viewed with: git show --color-words='[[:alnum:]_]+' Unfortunately this is very churny, but there are no functional changes. Signed-off-by: Phil Carmody M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer-generic.c 2018-04-28 15:38:06 +0300 Phil Carmody (fcfc2adf2) lib-fts/fts-tokenizer-generic - rename state variables - cosmetic These contain types, not letters, no functional changes. Signed-off-by: Phil Carmody M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer-generic.c 2018-04-26 16:57:11 +0300 Phil Carmody (a12124c12) lib-fts/fts-tokeniser-generic: move to container_of() for type-safety Signed-off-by: Phil Carmody M src/lib-fts/fts-tokenizer-generic.c 2018-09-15 18:15:36 +0200 Stephan Bosch (afe275f02) submission: backends: Add trans_start() and trans_free() vfuncs. These are called when the SMTP transaction is started and freed respectively. M src/submission/submission-backend.c M src/submission/submission-backend.h M src/submission/submission-client.c M src/submission/submission-commands.c 2018-09-15 18:04:33 +0200 Stephan Bosch (d61d01615) submission: Record backend used for each recipient. This is a preparation for plugins overriding the default backend for a recipient. M src/submission/submission-backend.c M src/submission/submission-backend.h M src/submission/submission-client.c M src/submission/submission-client.h M src/submission/submission-commands.c M src/submission/submission-recipient.c M src/submission/submission-recipient.h 2018-09-15 17:33:03 +0200 Stephan Bosch (1e42c123e) submission: Record main backend for the transaction. This is a preparation for plugins overriding the default backend for a transaction. M src/submission/submission-backend.c M src/submission/submission-client.h M src/submission/submission-commands.c 2018-10-04 21:56:20 +0200 Stephan Bosch (d6299811e) submission: DATA command: Pass the total size of the data stream to the backend. M src/submission/submission-backend-relay.c M src/submission/submission-backend.c M src/submission/submission-backend.h M src/submission/submission-commands.c 2018-10-04 21:01:44 +0200 Stephan Bosch (b8297f4e9) submission: DATA command: Obtain the size of the buffered data from the stream position rather than using i_stream_get_size(). M src/submission/submission-commands.c 2018-09-15 16:01:59 +0200 Stephan Bosch (9c18f8f35) submission: relay backend: Use backend-specific settings rather than the generic submission service settings. This way, several relay backends can be operated together with different settings. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c 2018-09-15 15:46:34 +0200 Stephan Bosch (0f6823a93) submission: relay backend: Make struct submission_backend_relay private. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h 2018-09-15 15:29:40 +0200 Stephan Bosch (59fcfb6da) submission: relay backend: Turn client_proxy_create() into a proper backend constructor. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c M src/submission/submission-client.h 2018-09-15 15:13:32 +0200 Stephan Bosch (17673c8ba) submission: relay backend: Turn client_get_max_mail_size() into a relay backend vfunc. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c 2018-09-15 14:44:41 +0200 Stephan Bosch (0e9ae1d77) submission: relay backend: Turn client_proxy_input_pre/post() into relay backend vfuncs. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c 2018-09-15 14:35:10 +0200 Stephan Bosch (9f0ecc5db) submission: relay backend: Turn client_proxy_start() into a relay backend vfunc. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c 2018-09-15 14:25:38 +0200 Stephan Bosch (554ef3864) submission: relay backend: Turn client_proxy_destroy() into a relay backend vfunc. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c 2018-09-15 13:53:07 +0200 Stephan Bosch (877917d90) submission: relay backend: Turn SMTP command functions into relay backend vfuncs. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-commands.c 2018-09-15 14:08:57 +0200 Stephan Bosch (4eb24edcc) submission: client: Create default backend in a separate function. M src/submission/submission-backend.c M src/submission/submission-client.c M src/submission/submission-client.h 2018-09-15 13:02:50 +0200 Stephan Bosch (543b5df06) submission: Define generic backend API. M src/submission/Makefile.am A src/submission/submission-backend.c M src/submission/submission-backend.h M src/submission/submission-client.c M src/submission/submission-client.h 2018-10-04 01:37:24 +0200 Stephan Bosch (7d9135587) submission: Add submission_backend_capabilities setting. This can be used to specify which capabilities the (relay) backend supports, avoiding the need to query the backend explicitly before the EHLO reply is sent to the client. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c M src/submission/submission-client.h M src/submission/submission-commands.c M src/submission/submission-settings.c M src/submission/submission-settings.h 2018-10-04 21:39:58 +0200 Stephan Bosch (5404598cd) submission: commands: Expect connection setup errors from relaying commands. Subsequent changes remove the guarantee that the connection is setup successfuly (to gain EHLO capabilities) before commands are submitted. This means that the callbacks from commands can thereafter return connection setup errors as well. M src/submission/submission-backend-relay.c 2018-09-26 21:44:35 +0200 Stephan Bosch (0bf65f74a) lib-smtp: client: Use the new smtp_capability_find_by_name() function. M src/lib-smtp/smtp-client-connection.c 2018-09-26 21:36:01 +0200 Stephan Bosch (f01f739ba) lib-smtp: client: Document the forced_capabilities setting. M src/lib-smtp/smtp-client.h 2018-09-26 21:32:45 +0200 Stephan Bosch (984193119) lib-smtp: Add utility function for finding capabilities by name. M src/lib-smtp/smtp-common.c M src/lib-smtp/smtp-common.h 2018-09-15 15:02:20 +0200 Stephan Bosch (61dc9570e) submission: client: Simplifly calculation of max mail size. M src/submission/submission-client.c 2018-09-15 13:17:11 +0200 Stephan Bosch (3bf48cb7c) submission: Record accepted recipients in the client object. Allows associating context with recipients in future changes. M src/submission/Makefile.am M src/submission/submission-client.c M src/submission/submission-client.h M src/submission/submission-commands.c A src/submission/submission-recipient.c A src/submission/submission-recipient.h 2018-07-15 22:37:13 +0200 Stephan Bosch (640d87e05) submission: Reformat submission-backend-relay.c. M src/submission/submission-backend-relay.c 2018-07-15 21:42:17 +0200 Stephan Bosch (0532a68b1) submission: relay backend: Change almost all occurrences of 'proxy' to 'relay'. This makes the naming consistent with the name of the backend. Only the lib-smtp proxy_data is not renamed. M src/submission/submission-backend-relay.c 2018-07-15 21:27:48 +0200 Stephan Bosch (161979d77) submission: relay backend: Rename client_command_handle_proxy_reply() to backend_relay_handle_relay_reply(). Also make it accept the backend rather than the client struct. M src/submission/submission-backend-relay.c M src/submission/submission-commands.h 2018-07-15 20:56:47 +0200 Stephan Bosch (195b1df4a) submission: relay backend: Rename *_proxy_cb() to *_callback(). M src/submission/submission-backend-relay.c 2018-07-15 21:10:39 +0200 Stephan Bosch (28e2f2401) submission: relay backend: Add 'relay_' prefix to command functions and structs. M src/submission/submission-backend-relay.c 2018-07-15 20:35:45 +0200 Stephan Bosch (a8a4903e0) submission: relay backend: Use pointer to backend rather than client in command contexts. M src/submission/submission-backend-relay.c 2018-07-15 20:49:05 +0200 Stephan Bosch (6c5a5e82c) submission: Move relay-related client fields to separate backend struct. M src/submission/Makefile.am M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h A src/submission/submission-backend.h M src/submission/submission-client.h M src/submission/submission-commands.c 2018-09-02 17:10:19 +0200 Stephan Bosch (275b6a786) submission: Move client_proxy_get_max_mail_size() to submission-backend-relay.c. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c 2018-09-02 16:05:28 +0200 Stephan Bosch (7d11f8903) submission: Move client_proxy_input_pre/post() to submission-backend-relay.c. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c 2018-09-02 15:29:24 +0200 Stephan Bosch (646f09315) submission: Move client_proxy_destroy() to submission-backend-relay.c. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c 2018-07-15 22:02:37 +0200 Stephan Bosch (4b54307fb) submission: Move client_proxy_create() to submission-backend-relay.c. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c 2018-09-01 16:40:10 +0200 Stephan Bosch (453b47c59) submission: Move client_proxy_start() to submission-backend-relay.c. M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-client.c 2018-09-02 17:04:14 +0200 Stephan Bosch (46d8457c6) submission: Split off obtaining the relay connection capabilities into a separate function. M src/submission/submission-client.c 2018-09-02 15:44:33 +0200 Stephan Bosch (8c319c7a4) submission: Split off corking and uncorking the relay connection in a separate function. M src/submission/submission-client.c 2018-09-02 15:10:08 +0200 Stephan Bosch (e7617d8ff) submission: Split off closing the relay connection in a separate function. M src/submission/submission-client.c 2018-09-01 15:51:01 +0200 Stephan Bosch (8d8725937) submission: Split off starting the relay connection in a separate function. M src/submission/submission-client.c 2018-07-15 19:54:06 +0200 Stephan Bosch (84191f491) submission: Remove client_proxy_is_disconnected(). It is not used anywhere. M src/submission/submission-client.c M src/submission/submission-client.h 2018-07-15 19:52:41 +0200 Stephan Bosch (a47cf1f11) submission: Remove client_proxy_is_ready(). It is not used anywhere. M src/submission/submission-client.c M src/submission/submission-client.h 2018-08-30 00:26:03 +0200 Stephan Bosch (85f0f33c5) submission: Move relay part of QUIT command to submission-backend-relay.c. M src/submission/Makefile.am D src/submission/cmd-quit.c M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-commands.h 2018-08-30 00:21:59 +0200 Stephan Bosch (310f56832) submission: Move generic part of QUIT command to submission-commands.c. M src/submission/cmd-quit.c M src/submission/submission-commands.c 2018-07-15 19:06:34 +0200 Stephan Bosch (a9a0f6ace) submission: Move relay part of NOOP command to submission-backend-relay.c. M src/submission/Makefile.am D src/submission/cmd-noop.c M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-commands.h 2018-08-29 23:51:09 +0200 Stephan Bosch (726c88353) submission: Move generic part of NOOP command to submission-commands.c. M src/submission/cmd-noop.c M src/submission/submission-commands.c 2018-09-10 01:07:58 +0200 Stephan Bosch (f53bb2ac1) submission: Move relay part of VRFY command to submission-backend-relay.c. M src/submission/Makefile.am D src/submission/cmd-vrfy.c M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-commands.h 2018-08-29 23:37:25 +0200 Stephan Bosch (47bb64135) submission: Move generic part of VRFY command to submission-commands.c. M src/submission/cmd-vrfy.c M src/submission/submission-commands.c 2018-07-15 19:38:11 +0200 Stephan Bosch (5168a6838) submission: Move BURL command implementation to submission-commands.c. M src/submission/Makefile.am D src/submission/cmd-data.c M src/submission/submission-commands.c 2018-07-15 19:03:09 +0200 Stephan Bosch (2dbb36ce5) submission: Move relay part of DATA command to submission-backend-relay.c. M src/submission/cmd-data.c M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-commands.h 2018-08-30 00:59:50 +0200 Stephan Bosch (d616e0edb) submission: Move generic part of DATA command to submission-commands.c. M src/submission/cmd-data.c M src/submission/submission-commands.c 2018-07-15 19:00:11 +0200 Stephan Bosch (353f551eb) submission: Move relay part of RSET command to submission-backend-relay.c. M src/submission/Makefile.am D src/submission/cmd-rset.c M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-commands.h 2018-08-29 23:33:11 +0200 Stephan Bosch (85ad60b78) submission: Move generic part of RSET command to submission-commands.c. M src/submission/cmd-rset.c M src/submission/submission-commands.c 2018-08-29 22:45:00 +0200 Stephan Bosch (52da00861) submission: Move relay part of RCPT command to submission-backend-relay.c. M src/submission/Makefile.am D src/submission/cmd-rcpt.c M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-commands.h 2018-08-29 23:30:31 +0200 Stephan Bosch (76f7ac4d5) submission: Move generic part of RCPT command to submission-commands.c. M src/submission/cmd-rcpt.c M src/submission/submission-commands.c 2018-07-15 18:57:26 +0200 Stephan Bosch (aaedb98d6) submission: Move relay part of MAIL command to submission-backend-relay.c. M src/submission/Makefile.am D src/submission/cmd-mail.c M src/submission/submission-backend-relay.c M src/submission/submission-backend-relay.h M src/submission/submission-commands.h 2018-08-29 23:25:32 +0200 Stephan Bosch (f65b6d84a) submission: Move generic part of MAIL command to submission-commands.c. M src/submission/cmd-mail.c M src/submission/submission-commands.c 2018-07-15 18:54:00 +0200 Stephan Bosch (baa1ecb27) submission: Move relay part of HELO/EHLO command to submission-backend-relay.c. M src/submission/Makefile.am D src/submission/cmd-helo.c M src/submission/submission-backend-relay.c A src/submission/submission-backend-relay.h M src/submission/submission-commands.c M src/submission/submission-commands.h 2018-09-01 13:34:53 +0200 Stephan Bosch (61eaa9823) submission: Move generic part of HELO/EHLO command to submission-commands.c. M src/submission/cmd-helo.c M src/submission/submission-commands.c 2018-08-30 00:18:40 +0200 Stephan Bosch (0a408b1e4) submission: Split the QUIT command into a generic part and a part related to relaying to an MTA. M src/submission/cmd-quit.c M src/submission/submission-commands.h 2018-08-29 23:43:43 +0200 Stephan Bosch (c6efca708) submission: Split the NOOP command into a generic part and a part related to relaying to an MTA. M src/submission/cmd-noop.c M src/submission/submission-commands.h 2018-08-29 22:37:27 +0200 Stephan Bosch (743c5e716) submission: Split the VRFY command into a generic part and a part related to relaying to an MTA. M src/submission/cmd-vrfy.c M src/submission/submission-commands.h 2018-08-28 01:58:58 +0200 Stephan Bosch (d574b79d2) submission: Split the DATA command into a generic part and a part related to relaying to an MTA. M src/submission/cmd-data.c M src/submission/submission-commands.h 2018-08-29 22:30:51 +0200 Stephan Bosch (60f68f6db) submission: Split the RSET command into a generic part and a part related to relaying to an MTA. M src/submission/cmd-rset.c M src/submission/submission-commands.h 2018-08-29 22:27:12 +0200 Stephan Bosch (20f1717ae) submission: Split the RCPT command into a generic part and a part related to relaying to an MTA. M src/submission/cmd-rcpt.c M src/submission/submission-commands.h 2018-08-29 22:25:18 +0200 Stephan Bosch (62edb8ef8) submission: Split the MAIL command into a generic part and a part related to relaying to an MTA. M src/submission/cmd-mail.c M src/submission/submission-commands.h 2018-09-01 13:30:34 +0200 Stephan Bosch (f6a03d196) submission: Split the EHLO command into a generic part and a part related to relaying to an MTA. M src/submission/cmd-helo.c M src/submission/submission-commands.h 2018-08-27 20:15:40 +0200 Stephan Bosch (2e3ba497e) submission: Move submission_helo_reply_submit() from cmd-helo.c to submission-commands.c. M src/submission/cmd-helo.c M src/submission/submission-commands.c 2018-08-27 19:46:21 +0200 Stephan Bosch (54ebd8cf5) submission: Make HELO/EHLO reply submission a separate public function. M src/submission/cmd-helo.c M src/submission/submission-commands.h 2018-07-15 19:10:36 +0200 Stephan Bosch (186c8b0c7) submission: Move client_command_handle_proxy_reply() to submission-backend-relay.c. M src/submission/Makefile.am A src/submission/submission-backend-relay.c M src/submission/submission-commands.c 2018-09-15 18:33:30 +0200 Stephan Bosch (abb0ef1f5) submission: client: Remove spurious forward declaration of "struct client_command_context". M src/submission/submission-client.h 2018-09-15 21:06:07 +0200 Stephan Bosch (56117870f) lib-smtp: client: Add forward declaration for struct smtp_client_settings in smtp-client-connection.h. M src/lib-smtp/smtp-client-connection.h 2018-09-12 21:21:09 +0200 Stephan Bosch (88f0f045d) lib-smtp: server: Drop pending commands and transaction at disconnect rather than destroy. This makes sure the conn_trans_free() connection callback is called before th conn_disconnect() callback. This makes more sense than the other way around, which instead would be a likely cause for mishaps causing segfaults and the like. M src/lib-smtp/smtp-server-connection.c 2018-09-02 23:26:21 +0200 Stephan Bosch (8195dee0a) lib-smtp: server: Add callback for transaction start. M src/lib-smtp/smtp-server-cmd-mail.c M src/lib-smtp/smtp-server.h 2018-07-18 00:51:56 +0200 Stephan Bosch (a877a6897) lib-smtp: server: Change command hooks API to allow many parallel hooks with individual context. This e.g. allows many server plugins to hook into command execution without interfering with eachother. M src/lib-smtp/smtp-server-cmd-auth.c M src/lib-smtp/smtp-server-cmd-data.c M src/lib-smtp/smtp-server-cmd-helo.c M src/lib-smtp/smtp-server-cmd-mail.c M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server-cmd-rset.c M src/lib-smtp/smtp-server-cmd-starttls.c M src/lib-smtp/smtp-server-cmd-xclient.c M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server.h M src/lib-smtp/test-smtp-server-errors.c M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-proxy.c M src/submission-login/submission-proxy.c M src/submission/cmd-data.c M src/submission/cmd-helo.c M src/submission/cmd-mail.c M src/submission/cmd-noop.c M src/submission/cmd-quit.c M src/submission/cmd-rcpt.c M src/submission/cmd-rset.c M src/submission/cmd-vrfy.c 2019-01-16 01:00:22 +0200 Timo Sirainen (f53edc22e) LAYOUT=index: Fix rebuilding mailbox list index on force-resync The if-check was a bit confusing because have_backend==TRUE means that there the mailbox list index is only an index, while have_backend==FALSE means that the mailbox list index is the only source for the list of mailboxes (= list index is the backend). M src/lib-storage/list/mailbox-list-index.c 2019-01-07 20:08:26 +0200 Aki Tuomi (647dfe014) push-notification-driver-lua: Request flags and keywords M src/plugins/push-notification/push-notification-driver-lua.c 2019-01-07 19:54:56 +0200 Aki Tuomi (a869cbebc) push-notification-driver-lua: Fix comment typo M src/plugins/push-notification/push-notification-driver-lua.c 2019-01-07 20:01:21 +0200 Aki Tuomi (16ec8eb61) push-notification-driver-lua: Add keywords and flags to MessageAppend event M src/plugins/push-notification/push-notification-driver-lua.c 2019-01-07 19:49:20 +0200 Aki Tuomi (982c77d2d) push-notification-driver-lua: Add keywords and flags to MessageNew event M src/plugins/push-notification/push-notification-driver-lua.c 2019-01-07 19:48:11 +0200 Aki Tuomi (e0236ca0f) push-notification-driver-lua: Rename keywords_set and keywors_clear to keywords This is more concince since these are the keywords being operated on. M src/plugins/push-notification/push-notification-driver-lua.c 2019-01-07 19:47:14 +0200 Aki Tuomi (7e839e003) push-notification-driver-lua: Push keywords in helper function M src/plugins/push-notification/push-notification-driver-lua.c 2019-01-07 19:42:39 +0200 Aki Tuomi (142e3e5cc) push-notification-driver-lua: Push mail flags as array of flags M src/plugins/push-notification/push-notification-driver-lua.c 2019-01-07 20:00:07 +0200 Aki Tuomi (5695b91a1) push-notification: Add flags and keywords to MessageAppend event M src/plugins/push-notification/push-notification-event-messageappend.c M src/plugins/push-notification/push-notification-event-messageappend.h 2019-01-07 19:33:28 +0200 Aki Tuomi (13ef953f4) push-notification: Add flags and keywords to MessageNew event M src/plugins/push-notification/push-notification-event-message-common.h M src/plugins/push-notification/push-notification-event-messagenew.c M src/plugins/push-notification/push-notification-event-messagenew.h 2019-01-11 09:55:25 +0200 Aki Tuomi (c3e95b3e9) m4: Remove unneeded else case from want_lz4 This causes extraneous code in configure causing it to fail M m4/want_lz4.m4 2019-01-11 09:37:51 +0200 Aki Tuomi (aed205056) m4: Replace some if tests with AS_IF Fixes configure on older systems M m4/want_bzlib.m4 M m4/want_lz4.m4 M m4/want_lzma.m4 2019-01-11 09:37:42 +0200 Aki Tuomi (81541bd24) m4: Remove stray comma from want_lua.m4 M m4/want_lua.m4 2019-01-11 09:37:02 +0200 Aki Tuomi (8ba7c1a3d) m4: Remove stray AC_ARG_WITH from arc4random.m4 M m4/arc4random.m4 2018-12-12 16:21:29 +0200 Sergey Kitov (17b269483) log: Use failure context log_prefix when available as prefix for error. Current behaviour hides log prefix when seeing errors via doveadm log errors, this commit will fix it. M src/log/log-connection.c 2018-12-13 11:30:06 +0200 Martti Rannanjärvi (c42b1d687) auth: Fix auth-policy log-only warning whitespace M src/auth/auth-policy.c 2018-12-04 13:42:44 +0200 Aki Tuomi (8157ce4fa) auth: Add auth_policy_log_only setting When auth_policy_log_only=yes, only log what would have been done. M src/auth/auth-policy.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-settings.h 2018-12-04 13:42:04 +0200 Aki Tuomi (825c47c1e) auth: Treat all negative responses from policy servers as drops Otherwise negative responses that are not -1 are considered as success, which is wrong. M src/auth/auth-request.c 2018-12-04 13:41:20 +0200 Aki Tuomi (54105bdf6) auth: Log policy decisions clearly M src/auth/auth-request.c 2018-12-11 20:28:33 +0200 Timo Sirainen (1eeb837f5) lib-storage: Fix mail_get_headers() API comment M src/lib-storage/mail-storage.h 2018-12-04 11:19:23 +0200 Timo Sirainen (b96cc9928) lib-storage: Fix error handling if mailbox list index refresh fails The caller expects the error to be in mail_storage, not mailbox_list. M src/lib-storage/list/mailbox-list-index-status.c 2018-12-03 15:43:06 +0200 Timo Sirainen (1f9bb8878) maildir: Don't crash with zlib plugin when saving is aborted The ostream can be finished even if the saving had already failed. It gets deleted anyway. Fixes: Panic: file ostream-zlib.c: line 37 (o_stream_zlib_close): assertion failed: (zstream->ostream.finished || zstream->ostream.ostream.stream_errno != 0 || zstream->ostream.error_handling_disabled) M src/lib-storage/index/maildir/maildir-save.c 2018-12-03 15:59:13 +0200 Timo Sirainen (d83ff884d) login-proxy: Fix potential crash for delayed disconnects This happens only with login_proxy_max_disconnect_delay. Fixes: Panic: file ioloop.c: line 86 (io_add): assertion failed: (fd >= 0) M src/login-common/login-proxy.c 2018-12-04 00:16:47 +0100 Stephan Bosch (5494f652d) lib-smtp: client: Prevent sending an empty XCLIENT command when the first parameter is long. M src/lib-smtp/smtp-client-connection.c 2018-11-29 13:12:28 +0200 Aki Tuomi (facfea299) lib: event - Add event_set_log_prefix_callback Fetch prefix using a callback. M src/lib/event-log.c M src/lib/lib-event-private.h M src/lib/lib-event.c M src/lib/lib-event.h M src/lib/test-event-log.c 2018-11-29 16:28:23 +0200 Timo Sirainen (ecfce734f) lib: Fix failure_context.log_prefix_type_pos handling The log type string was inserted into wrong location if there were multiple log prefixes. M src/lib/failures.c 2018-11-28 14:13:54 +0200 Timo Sirainen (2afabefe0) lib-storage: Remove MAILBOX_FEATURE_QRESYNC This is an imap-specific feature, which doesn't need to be visible in the lib-storage layer. M src/imap/imap-client.c M src/lib-storage/mail-storage.h 2018-11-28 14:12:57 +0200 Timo Sirainen (a4cee4ff2) imap: Add support for ENABLE extensions Based on patch by Aki Tuomi M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-feature.c M src/imap/imap-feature.h M src/imap/main.c 2018-11-28 14:02:44 +0200 Timo Sirainen (c20a65bf3) imap: Change state import/export to use full feature string names Single letter IDs wouldn't allow extensions. M src/imap/imap-state.c 2018-11-29 10:01:36 +0200 Timo Sirainen (1631bb342) imap: Add client_enabled_features() This simplifies the following commits. M src/imap/imap-client.c M src/imap/imap-client.h 2018-11-28 13:19:02 +0200 Timo Sirainen (c3538af44) imap: Cleanup - Change client_enable() to return void Nothing cares about its return value. With the current features it's not even possible to fail. Possibly mailbox_enable() should be also changed to return void in the future. M src/imap/cmd-enable.c M src/imap/cmd-select.c M src/imap/cmd-store.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-fetch.c M src/imap/imap-search.c M src/imap/imap-status.c 2018-11-28 13:17:39 +0200 Timo Sirainen (b64faf8ac) imap: Add and use imap_feature_lookup() This simplifies the following commits. M src/imap/Makefile.am M src/imap/cmd-enable.c A src/imap/imap-feature.c A src/imap/imap-feature.h 2018-11-28 12:50:51 +0200 Timo Sirainen (bdd22275b) imap: Add and use client_enabled_mailbox_features() This simplifies the following commits. M src/imap/cmd-notify.c M src/imap/cmd-select.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands-util.c M src/imap/imap-state.c M src/imap/imap-status.c 2018-11-28 12:48:47 +0200 Timo Sirainen (24dfb1808) imap: Cleanup - don't avoid calling mailbox_enable(box, 0) This simplifies the following changes. mailbox_enable() is an efficient function and it doesn't mind being called with features=0 parameter. M src/imap/cmd-notify.c M src/imap/cmd-select.c M src/imap/imap-commands-util.c M src/imap/imap-state.c M src/imap/imap-status.c 2018-11-28 12:44:48 +0200 Timo Sirainen (b4f8a6c2c) imap: Add and use client_has_enabled() wrapper This simplifies the following commits. M src/imap/cmd-fetch.c M src/imap/cmd-select.c M src/imap/cmd-store.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-notify.c M src/imap/imap-state.c M src/imap/imap-sync.c 2018-11-28 12:42:55 +0200 Timo Sirainen (e40ceb2d4) imap: client_enable() API change - enable features one at a time This simplifies the following commits. M src/imap/cmd-enable.c M src/imap/imap-client.c M src/imap/imap-client.h 2018-11-28 12:26:33 +0200 Timo Sirainen (bbae1b376) imap: Access enabled features via new imap_client_feature_* variables This simplifies the following commits. M src/imap/cmd-enable.c M src/imap/cmd-fetch.c M src/imap/cmd-select.c M src/imap/cmd-store.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-fetch.c M src/imap/imap-notify.c M src/imap/imap-search.c M src/imap/imap-state.c M src/imap/imap-status.c M src/imap/imap-sync.c 2018-11-29 10:19:38 +0200 Aki Tuomi (184165f59) m4: dovecot.m4 - Bump serial M m4/dovecot.m4 2018-11-26 12:45:52 +0200 Aki Tuomi (3ecf90cb8) m4: dovecot.m4 - Improve CC_CLANG M m4/dovecot.m4 2018-11-26 12:38:25 +0200 Aki Tuomi (f72561fcd) m4: dovecot.m4 - Call CC_CLANG before DC_DOVECOT_CFLAGS So we know if we are using clang compiler M m4/dovecot.m4 2018-11-24 20:35:53 +0200 Aki Tuomi (2d2c5be30) dovecot.m4: Preserve original CFLAGS/LDFLAGS Correct flags are detected during configure, so avoid overwriting them here by accident. M m4/dovecot.m4 2018-11-24 20:09:26 +0200 Aki Tuomi (069c86d9a) dovecot.m4: Use _DC_EOF instead of EOF Avoids messing with other scripts M m4/dovecot.m4 2018-11-24 20:08:51 +0200 Aki Tuomi (d87ed6e35) dovecot.m4: Use AS_IF macro instead of if It's safer with m4 M m4/dovecot.m4 2018-11-24 19:59:04 +0200 Aki Tuomi (57d05a297) dovecot.m4: Call DC_DOVECOT_CFLAGS and HARDENING earlier Before SUBST M m4/dovecot.m4 2018-11-24 19:58:18 +0200 Aki Tuomi (83bd255b0) dovecot.m4: Rename DOVECOT_CFLAGS function to DC_DOVECOT_CFLAGS Avoid conflict with variable of same name M configure.ac M m4/dovecot.m4 2018-11-24 19:57:00 +0200 Aki Tuomi (128c67aeb) dovecot.m4: Use dnl instead of hash for comments M m4/dovecot.m4 2018-11-24 10:20:54 +0200 Aki Tuomi (8ec36ce9e) configure: Use DC_DOVECOT_HARDENING M configure.ac 2018-11-24 10:15:04 +0200 Aki Tuomi (4695c87f7) dovecot.m4: Add DC_DOVECOT_HARDENING to check hardening options M m4/dovecot.m4 2018-11-24 10:11:55 +0200 Aki Tuomi (6cd4e6bb1) m4: Move various compiler and linker checks to dovecot.m4 We don't want to distribute CFLAGS or LDFLAGS that break compiler, due to lack of support. D m4/cc_clang.m4 D m4/cc_fortify.m4 D m4/cc_pie.m4 D m4/cc_retpoline.m4 D m4/cc_stack_protector.m4 D m4/cflags.m4 M m4/dovecot.m4 D m4/ld_relro.m4 D m4/ld_whole_archive.m4 D m4/warnings.m4 2018-11-23 15:34:51 +0200 Aki Tuomi (322022a76) lib-master: test-event-stats - Use PRIu64 format Forgotten in e16ba6f M src/lib-master/test-event-stats.c 2018-11-23 15:33:20 +0200 Aki Tuomi (81f60ae2f) lib-master: test-event-stats - Include signal.h Forgotten in e16ba6f M src/lib-master/test-event-stats.c 2018-10-18 15:25:53 +0200 Stephan Bosch (6afb6ee66) lib-master: test-event-stats: Properly ensure cleanup of all files generated by tests. M src/lib-master/test-event-stats.c 2018-10-18 15:09:51 +0200 Stephan Bosch (248cb8b90) lib-master: test-event-stats: Move launch_test_stats() to a more logical place. M src/lib-master/test-event-stats.c 2018-10-18 15:11:55 +0200 Stephan Bosch (b7aebfc8e) lib-master: Create local .gitignore file for potential test output junk. A src/lib-master/.gitignore 2018-10-18 12:35:22 +0300 Timo Sirainen (38e9eb09a) fts: Fix search query generation when one language ignores a token The search query was changed to "NOT ALL", even though other languages used the token. M src/plugins/fts/fts-search-args.c 2018-08-26 15:16:17 +0200 Stephan Bosch (cf82a5d28) lib-smtp: client: Fix potential segfault occurring after receiving RCPT reply. Could occur when RCPT reply is received befor DATA command is sent in LMTP session. Problem found by Coverity. M src/lib-smtp/smtp-client-transaction.c 2018-08-15 22:34:19 +0200 Stephan Bosch (baa5f18fe) lib-smtp: test-smtp-client-errors: Add tests for transaction timeouts. M src/lib-smtp/test-smtp-client-errors.c 2018-08-16 00:50:12 +0200 Stephan Bosch (9bdd12659) lib-smtp: client: Add debug message for the moment when all RCPT replies are received. This helps in debugging transaction state transition problems. M src/lib-smtp/smtp-client-transaction.c 2018-08-16 00:42:50 +0200 Stephan Bosch (e3abd5319) lib-smtp: client: Fix transaction state transition for the DATA command. It progressed to the DATA state too early. By the looks of things, this only affected the correctness of error and debug messages. It does not affect the transaction itself. M src/lib-smtp/smtp-client-transaction.c 2018-08-16 00:28:51 +0200 Stephan Bosch (3d932fea9) lib-smtp: client: Fix segmentation fault occurring at transaction timeout. In the DATA command callback trans->cmd_data can be NULL when the command is aborted from smtp_client_transaction_fail_reply(). M src/lib-smtp/smtp-client-transaction.c 2018-08-15 22:39:58 +0200 Stephan Bosch (4df412f8a) lib-smtp: client: transaction: Prevent early transaction abort in smtp_client_transaction_fail_reply(). Can happen in one of the command callbacks of aborted commands. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client-transaction.c 2018-08-16 08:48:43 +0200 Stephan Bosch (20345147c) lib-smtp: Remove trailing whitespace in smtp-cient-transaction.c. M src/lib-smtp/smtp-client-transaction.c 2018-08-16 08:47:37 +0200 Stephan Bosch (2a0c1c6f5) lib-smtp: Remove trailing whitespace in test-smtp-client-errors.c. M src/lib-smtp/test-smtp-client-errors.c 2018-08-13 11:25:04 +0300 Martti Rannanjärvi (3d1ed9b9f) lib-smtp: Read input before exiting in sendmail-exit-1.sh This avoids a Broken pipe error that fails the unit test this script belongs to. M src/lib-smtp/test-bin/sendmail-exit-1.sh 2018-08-09 09:21:09 +0300 Aki Tuomi (51e14c73a) lib-smtp: Include test-bin in dist M src/lib-smtp/Makefile.am 2018-08-09 12:38:43 +0300 Aki Tuomi (00d005272) lib-test: Warn if test_run or test_run_named result is not used Ensures hopefully that unit tests do not succeed when they fail due to wrong exit code. M src/lib-test/test-common.h 2018-08-09 12:44:22 +0300 Aki Tuomi (314aba4a1) global: Ensure unit tests return value M src/lib-http/test-http-client-errors.c M src/lib-http/test-http-payload.c M src/lib-http/test-http-server-errors.c M src/lib-smtp/test-smtp-client-errors.c M src/lib-smtp/test-smtp-payload.c M src/lib-smtp/test-smtp-server-errors.c M src/lib-smtp/test-smtp-submit.c 2018-07-06 11:22:46 +0300 Timo Sirainen (b06b56413) lib-auth: Fix reconnect timeout leak at deinit M src/lib-auth/auth-server-connection.c 2018-07-06 15:07:32 +0200 Stephan Bosch (6465c3d90) lib-http: client: Notify host object about submission of request before submitting the request to the queue. This makes sure the host idle timeout is stopped before the request is submitted and the host object's refresh function is called. If the idle timeout is still running at that point, the refresh function will return success without performing a lookup, which can lead to a panic. Panic was: Panic: file ./http-client-private.h: line 672 (http_client_host_get_ip): assertion failed: (idx < host->shared->ips_count) M src/lib-http/http-client-host.c 2018-07-02 23:59:50 +0200 Stephan Bosch (e5f9dfa31) lib-http: client: Reset ips count to zero before DNS lookup. M src/lib-http/http-client-host.c 2018-07-05 10:50:32 -0400 Josef 'Jeff' Sipek (236216158) lib: mempool - Remove unnecessary check The previous commit guarantees that we always have one of _ILP32 and _LP64 defined so we don't have to check ourselves. M src/lib/test-mempool.c 2018-07-05 10:48:49 -0400 Josef 'Jeff' Sipek (6338778f7) lib: Make sure exactly one of _ILP32 and _LP64 is defined at all times These defines are very common, but not universal. For example, clang on illumos and FreeBSD always defines one of them, while 32-bit Ubuntu 16.04 doesn't define either. M src/lib/compat.h 2018-06-21 09:45:03 -0400 Josef 'Jeff' Sipek (f1a2d99c0) lib: mempool - Improve p_realloc() panic message Most importantly, this differentiates it from the panic message that p_malloc() prints. M src/lib/mempool.h M src/lib/test-mempool.c 2018-06-20 12:24:34 -0400 Josef 'Jeff' Sipek (52954b8a2) lib: mempool - Centralize p_free() NULL pointer check This changes the behavior of p_free(pool, some_null_pointer) slightly. datastack mempools: Previously, the datastack frame id was checked regardless of whether or not the pointer was NULL. Now, only non-NULL pointers perform this check. system mempools: Previously, the process would SIGSEGV if a NULL pointer was freed in a debug binary on a system with malloc_usable_size(). Now, no SIGSEGV occurs. allocfree, alloconly, and unsafe datastack: No change in behavior. M src/lib/mempool-allocfree.c M src/lib/mempool.h 2018-06-20 11:47:26 -0400 Josef 'Jeff' Sipek (b8fd8bf76) lib: mempool - Centralize p_realloc() NULL pointer check Instead of each mempool implementation having to check the pointer passed in for being NULL, we can check that the sizes are within the required bounds in p_realloc(). M src/lib/mempool-allocfree.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.h 2018-06-20 11:42:28 -0400 Josef 'Jeff' Sipek (361119589) lib: mempool - Centralize p_{m,re}alloc() size checks Instead of each mempool implementation having to check the allocation sizes for sanity, we can check that the sizes are within the required bounds in p_malloc() and p_realloc(). Since p_malloc() and p_realloc() are static inlines, some consumers will see a little bit of growth in binary size, but others will be able to optimize the check away at compile time. M src/lib/mempool-allocfree.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.h 2018-06-22 16:51:40 -0400 Josef 'Jeff' Sipek (f4cac7d8e) lib: mempool - Define a global max allocation size supported by all pools Instead of relying on each mempool implementation to define its own limits and checks, this commit defines a generic one that's sufficient to make any mempool present or future happy. M src/lib/mempool-allocfree.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mempool.h M src/lib/test-mempool-allocfree.c M src/lib/test-mempool-alloconly.c M src/lib/test-mempool.c 2018-06-22 17:28:24 -0400 Josef 'Jeff' Sipek (0a3e10c6f) lib: mempool-allocfree: Remove unused #define This define was never actually used. M src/lib/mempool-allocfree.c 2018-06-20 11:18:32 -0400 Josef 'Jeff' Sipek (b7e85ed18) lib: mempool-datastack - Use container_of instead of casts M src/lib/mempool-datastack.c 2018-06-20 11:18:13 -0400 Josef 'Jeff' Sipek (a47129e81) lib: mempool-alloconly - Use container_of instead of casts M src/lib/mempool-alloconly.c 2018-06-20 10:35:15 -0400 Josef 'Jeff' Sipek (b6864a359) 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. M src/lib/mempool-alloconly.c 2018-06-20 10:55:53 -0400 Josef 'Jeff' Sipek (19d270a92) lib: Document the unsafe datastack mempool M src/lib/mempool-unsafe-datastack.c 2018-06-19 16:08:40 -0400 Josef 'Jeff' Sipek (592652d87) lib: Document the system mempool M src/lib/mempool-system.c 2018-06-20 07:50:38 -0400 Josef 'Jeff' Sipek (d82132c3a) lib: Document datastack mempools M src/lib/mempool-datastack.c 2018-06-19 15:36:43 -0400 Josef 'Jeff' Sipek (1c8eec973) lib: Document allocfree mempools M src/lib/mempool-allocfree.c 2018-06-19 14:04:43 -0400 Josef 'Jeff' Sipek (d463e8b4d) lib: Document alloconly mempools M src/lib/mempool-alloconly.c 2018-06-29 16:17:40 -0400 Josef 'Jeff' Sipek (49ed566ed) lib: mempool - Further reduce test code duplication We have to use a macro because we need to pass a type as an argument. M src/lib/test-mempool.c 2018-06-28 13:07:48 -0400 Josef 'Jeff' Sipek (4d0b93d5e) lib: mempool - Reduce test code duplication The 32 and 64 bit versions of the tests were identical. M src/lib/test-mempool.c 2018-06-28 11:13:43 -0400 Josef 'Jeff' Sipek (4f92bf25c) lib: mempool - Generalize the test Instead of hardcoding what appear to be arbitrary constants, use expressions based on UINT{16,32,64}_MAX. M src/lib/test-mempool.c 2018-05-31 23:59:50 +0200 Stephan Bosch (409c2870a) lib: str-sanitize: Use uni_utf8_data_truncate(). M src/lib/str-sanitize.c 2018-06-01 00:02:53 +0200 Stephan Bosch (f9b58a2ee) lib: Add str_truncate_utf8(). It works similar to str_truncate(), but it makes sure the truncated string remains valid UTF-8. M src/lib/str.c M src/lib/str.h M src/lib/test-str.c 2018-06-01 00:02:16 +0200 Stephan Bosch (46e2d311c) 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. M src/lib/unichar.c M src/lib/unichar.h 2018-06-20 14:01:18 +0200 Stephan Bosch (38efac5f2) 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>: Panic: Input stream /home/stephan/Maildir/cur/1517515808.M176007P2993.johanna,S=1903,W=1956:2,DFS unexpectedly has references M src/lib-smtp/smtp-server-cmd-data.c M src/lib-smtp/smtp-server-private.h 2018-06-12 20:49:59 +0300 Timo Sirainen (46df948df) lib-smtp: Allocate ORCPT addr_type from given memory pool, not data stack This could have caused crashes when parsing ORCPT. M src/lib-smtp/smtp-params.c 2018-05-26 14:49:01 +0200 Stephan Bosch (5b7f38df2) 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. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-private.h 2018-05-27 11:30:06 +0200 Stephan Bosch (a51ee7b98) lib-smtp: client: Do not start authentication before initial XCLIENT gets reply. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-connection.h 2018-05-26 15:44:43 +0200 Stephan Bosch (0860c893d) 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. M src/lib-smtp/smtp-server-connection.c 2018-03-18 00:57:36 +0100 Stephan Bosch (d219bf98b) lib-smtp: Add test-smtp-payload, test-smtp-submit, test-smtp-client-errors, and test-smtp-server-errors to `make check`. M src/lib-smtp/Makefile.am 2018-03-18 00:53:14 +0100 Stephan Bosch (267a54ba5) lib-http: Add test-http-payload, test-http-client-errors, and test-http-server-errors to `make check`. M src/lib-http/Makefile.am 2018-03-18 01:25:42 +0100 Stephan Bosch (8c4ad1451) lib-http: test-http-client-errors: Make the reconnect failure test less time-sensitive. Easily breaks in Valgrind. M src/lib-http/test-http-client-errors.c 2018-03-18 00:46:32 +0100 Stephan Bosch (66447e451) lib-smtp: test-smtp-payload: Terminate the test if it is hanging for some reason. M src/lib-smtp/test-smtp-payload.c 2018-03-18 00:34:22 +0100 Stephan Bosch (fd52ec26f) lib-smtp: test-smtp-client-errors: Terminate the test if it is hanging for some reason. M src/lib-smtp/test-smtp-client-errors.c 2017-12-28 16:33:49 +0100 Stephan Bosch (fc5a5613c) lib-http: test-http-client-errors: Terminate the test if it is hanging for some reason. M src/lib-http/test-http-client-errors.c 2018-02-09 23:58:51 +0100 Stephan Bosch (f490b39cf) lib-http: test-http-payload: Add SSL tests. M src/lib-http/Makefile.am M src/lib-http/test-http-payload.c 2018-02-09 22:09:27 +0100 Stephan Bosch (8ff38cfdb) lib-smtp: test-smtp-payload: Add SSL tests. M src/lib-smtp/Makefile.am M src/lib-smtp/test-smtp-payload.c 2018-02-10 00:00:17 +0100 Stephan Bosch (754d79d31) lib-http: test-http-payload: Ignore SIGPIPE. M src/lib-http/test-http-payload.c 2018-02-09 22:09:47 +0100 Stephan Bosch (5819d7789) lib-smtp: test-smtp-payload: Ignore SIGPIPE. M src/lib-smtp/test-smtp-payload.c 2018-02-09 22:27:00 +0100 Stephan Bosch (674b0a15f) 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. M src/lib-http/http-server-connection.c M src/lib-http/http-server-private.h M src/lib-http/http-server.c M src/lib-http/http-server.h 2018-02-09 22:06:49 +0100 Stephan Bosch (1d341c782) 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. M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server.c M src/lib-smtp/smtp-server.h 2018-03-17 21:08:09 +0100 Stephan Bosch (3d3166cde) lib-smtp: client: Amend connection debug message with source ip:port. Helps matching debug logs between client and server. M src/lib-smtp/smtp-client-connection.c 2018-03-17 18:10:04 +0100 Stephan Bosch (510923a05) lib-smtp: test-smtp-payload: Keep the number of pending transactions constant. Before, a window was used. M src/lib-smtp/test-smtp-payload.c 2018-03-17 18:05:01 +0100 Stephan Bosch (93c58a231) lib-smtp: test-smtp-payload: Make proper definition for the maximum number of parallel transactions. M src/lib-smtp/test-smtp-payload.c 2018-02-10 02:20:31 +0100 Stephan Bosch (17cbf4daa) lib-http: test-http-payload: Add test for exchanging payload with unknown size. This will force using the chunked transfer encoding. M src/lib-http/test-http-payload.c 2018-03-17 21:34:11 +0100 Stephan Bosch (8df31c7cb) lib-http: test-http-payload: server: Fix asynchronous listening. The listening socket was blocking and the io handler only accepted one connection per run. M src/lib-http/test-http-payload.c 2018-03-17 14:14:03 +0100 Stephan Bosch (f1bbf3b66) lib-smtp: test-smtp-payload: server: Fix asynchronous listening. The listening socket was blocking and the io handler only accepted one connection per run. M src/lib-smtp/test-smtp-payload.c 2018-02-09 22:04:23 +0100 Stephan Bosch (7c9940739) lib-ssl-iostream: Add support for creating server and client test SSL settings. This is useful for building test cases with SSL support. M src/lib-ssl-iostream/Makefile.am A src/lib-ssl-iostream/iostream-ssl-test.c A src/lib-ssl-iostream/iostream-ssl-test.h 2018-02-16 14:33:33 +0200 Timo Sirainen (1daa759ea) lib: Fix compiler warning when arc4random_buf() is used for random_fill() M src/lib/randgen.c 2018-02-15 23:41:25 +0100 Stephan Bosch (60159147e) 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, \ ~~~~~~~~~~~~~~~ ^ M src/lib-mail/message-parser.h 2019-01-16 18:28:57 +0200 Aki Tuomi (79b652fff) auth: Do not import empty certificate username M src/auth/auth-request.c 2019-01-16 18:24:20 +0200 Aki Tuomi (61471a5c4) auth: Fail authentication if certificate username was unexpectedly missing M src/auth/auth-request-handler.c 2019-01-15 17:36:37 +0200 Aki Tuomi (eb1fa103d) login-common: Ensure we get username from certificate M src/login-common/sasl-server.c 2018-04-26 23:05:21 +0300 Timo Sirainen (9b00b5267) lib-storage: Fix event leak when failing to create storage M src/lib-storage/mail-storage.c 2018-09-06 09:36:07 +0300 Aki Tuomi (aa5c05ebd) driver-sqlite: Fix event usage in driver_sqlite_exec Broken in 850f874971a7afa4f1f7b47df37fca082dc415a1 M src/lib-sql/driver-sqlite.c 2018-11-23 10:12:27 +0200 Timo Sirainen (605155905) Update NEWS to v2.3.4 M NEWS 2018-05-14 21:33:53 +0300 Timo Sirainen (1f50bc87b) 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. M src/doveadm/doveadm-mail.c 2018-05-14 21:31:59 +0300 Timo Sirainen (689c5171f) 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. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage.h 2018-09-19 15:50:26 +0300 Josef 'Jeff' Sipek (71fa7e35b) dbox: cache pop3 order and uidl when saving mails M src/lib-storage/index/dbox-common/dbox-save.c 2018-09-19 15:49:56 +0300 Josef 'Jeff' Sipek (8c14347a6) lib-storage/index: Add a helper to cache pop3 order and uidl M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2018-09-20 06:32:46 -0400 Josef 'Jeff' Sipek (63fd16b20) global: Use uint32_t for pop3 order M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/lib-storage/mail-storage-private.h 2018-10-25 13:35:52 +0200 Stephan Bosch (9971d4dea) lib: uri-util: Add tests for URI character escape functions. M src/lib/test-uri.c 2018-10-25 13:34:52 +0200 Stephan Bosch (cc8d26ae5) lib: uri-util: Add functions for escaping (almost) all reserved URI characters. M src/lib/uri-util.c M src/lib/uri-util.h 2018-09-05 21:56:42 +0200 Stephan Bosch (05a09c72c) lib-storage: Change default postmaster_address setting to "postmaster@". The former "postmaster@" 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. M src/lib-storage/mail-storage-settings.c 2018-09-05 21:24:15 +0200 Stephan Bosch (f6d7cc624) lib-storage: mail-user: Add "%{hostname}" variable expansion. M src/lib-storage/mail-user.c 2018-09-05 21:23:05 +0200 Stephan Bosch (0ed00c242) lib-storage: mail-user: Add convenience functions for obtaining postmaster address. M src/lib-lda/mail-send.c M src/lib-storage/mail-user.h 2018-09-05 21:11:15 +0200 Stephan Bosch (7693c72cc) lib-storage: Move postmaster_address setting from mail_storage_settings to mail_user_settings. M src/lib-lda/mail-send.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2018-10-29 10:43:10 +0200 Aki Tuomi (fbb65caff) auth: test-lua - Add test to ensure that values are not converted to number by mistake M src/auth/test-lua.c 2018-10-29 10:42:36 +0200 Aki Tuomi (9d8d0023a) auth: test-lua - Fix unit test to handle errors M src/auth/test-lua.c 2018-10-29 14:43:11 +0200 Aki Tuomi (3ddb79f4a) auth: test-lua - Fix inconsistent whitespace M src/auth/test-lua.c 2018-10-29 09:52:37 +0200 Aki Tuomi (024f084bf) auth: db-lua - Use lua_type to detect type Using lua_isnumber to detect numbers also considers convertible strings as numbers. M src/auth/db-lua.c 2018-10-29 09:50:33 +0200 Aki Tuomi (ccf095d7d) auth: Store password with auth_set_field in Lua passdb Makes caching work for passwords M src/auth/passdb-lua.c 2018-10-29 09:49:48 +0200 Aki Tuomi (d0f05791f) auth: Use default scheme in Lua passdb lookup Fixes a null pointer crash. M src/auth/passdb-lua.c 2018-10-25 13:50:36 +0300 Aki Tuomi (f56569b09) 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. M src/lib-lua/dlua-dovecot.c 2018-11-07 09:51:50 +0200 Aki Tuomi (1b2997bf8) lib: Add unit test for event duration Make sure event duration is non-zero when used without ioloop. M src/lib/test-event-log.c 2018-11-06 21:00:47 +0200 Aki Tuomi (346816e21) lib-lua: Fix sizeof usage for struct event* storage Found by coverity M src/lib-lua/dlua-dovecot.c 2018-10-19 13:54:50 +0300 Aki Tuomi (88f1bcd00) lib-lua: Make sure events get right file:line information M src/lib-lua/dlua-dovecot.c 2018-10-19 13:54:34 +0300 Aki Tuomi (cd3fbf184) mail-lua: Fix argument number checking for mailbox#sync M src/plugins/mail-lua/mail-storage-lua.c 2018-10-19 09:39:39 +0300 Aki Tuomi (61e5157f4) push-notification-driver-lua: Perform garbage collection after transaction Ensure Lua releases resources here. M src/plugins/push-notification/push-notification-driver-lua.c 2018-10-15 14:46:30 +0300 Aki Tuomi (91733d7cb) push-notification-driver-ox: Convert to event based logging Also fixes the logging to be standard M src/plugins/push-notification/push-notification-driver-ox.c 2018-10-15 12:20:20 +0300 Aki Tuomi (711543f3b) push-notification-driver-lua: Add events M src/plugins/push-notification/push-notification-driver-lua.c 2018-10-15 12:04:19 +0300 Aki Tuomi (81e373908) push-notification: Emit event on transaction end M src/plugins/push-notification/push-notification-plugin.c 2018-10-15 12:03:58 +0300 Aki Tuomi (9c8e4a803) push-notification: Add event to push notification transaction M src/plugins/push-notification/push-notification-drivers.h M src/plugins/push-notification/push-notification-plugin.c 2018-10-15 11:55:41 +0300 Aki Tuomi (611fefa13) push-notification: Add event category M src/plugins/push-notification/push-notification-plugin.c M src/plugins/push-notification/push-notification-plugin.h 2018-10-19 11:36:09 +0300 Aki Tuomi (5882adaf2) lib-lua: Move __gc metamethod for event to userdata Compability for lua 5.1 M src/lib-lua/dlua-dovecot.c 2018-10-18 11:37:00 +0300 Aki Tuomi (6f6a198cc) mail-lua: Check number of arguments M src/plugins/mail-lua/mail-storage-lua.c 2018-10-18 12:04:41 +0300 Aki Tuomi (1f50a25f2) 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. M src/lib-lua/dlua-script-private.h 2018-10-16 11:35:45 +0300 Aki Tuomi (8157ddd56) mail-lua: Make flags optional for mailbox#sync M src/plugins/mail-lua/mail-storage-lua.c 2018-10-16 11:34:23 +0300 Aki Tuomi (521e75bf5) mail-lua: Make flags optional for user#mailbox M src/plugins/mail-lua/mail-storage-lua.c 2018-10-16 10:13:27 +0300 Aki Tuomi (cfa7b7931) mail-lua: Change mailbox#status API to varargs It's much easier to use this way M src/plugins/mail-lua/mail-storage-lua.c 2018-10-18 12:31:27 +0300 Aki Tuomi (a413353de) lib-lua: Check number of arguments M src/lib-lua/dlua-dovecot.c 2018-07-30 13:12:47 +0300 Aki Tuomi (26e4335f3) lib-lua: Add flag manipulation functions M src/lib-lua/dlua-dovecot.c M src/lib-lua/test-lua.c 2018-10-11 19:50:06 +0300 Aki Tuomi (f69a59490) lib-lua: Add test for event framework M src/lib-lua/test-lua.c 2018-10-11 19:10:17 +0300 Aki Tuomi (320e018f7) lib-lua: Add event interface M src/lib-lua/dlua-dovecot.c M src/lib-lua/dlua-script.h 2018-10-11 17:06:00 +0300 Aki Tuomi (62f9070b5) lib-lua: Add events to scripts M src/auth/passdb-lua.c M src/auth/test-lua.c M src/auth/userdb-lua.c M src/lib-lua/dlua-script-private.h M src/lib-lua/dlua-script.c M src/lib-lua/dlua-script.h M src/lib-lua/test-lua.c M src/plugins/mail-lua/mail-lua-plugin.c M src/plugins/push-notification/push-notification-driver-lua.c 2018-10-17 19:44:31 +0300 Aki Tuomi (eaa928afb) lib-master: Fix test-event-stats New stats uses gettimeofday that generated unpredictable values for this test. M src/lib-master/test-event-stats.c 2018-10-17 12:47:37 +0300 Aki Tuomi (ba2c6ce98) lib: event - Stop exporting ioloop time It is not needed by stats process. M src/lib/lib-event.c 2018-10-16 09:03:05 +0300 Aki Tuomi (ca75a52a3) stats: Use duration field from events M src/stats/stats-metrics.c 2018-10-16 08:52:49 +0300 Aki Tuomi (db2855a40) 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. M src/lib/lib-event-private.h M src/lib/lib-event.c M src/lib/lib-event.h 2018-10-16 08:17:27 +0300 Aki Tuomi (f71759d69) lib: event - Duplicate source_filename Prevents crash on event leak when plugin that caused the leak is unloaded. M src/lib/lib-event.c 2018-10-16 16:11:23 +0300 Aki Tuomi (7f9fc27eb) lib: event - Rename tv_created as tv_created_ioloop M src/lib-master/stats-client.c M src/lib/lib-event-private.h M src/lib/lib-event.c 2018-10-03 12:00:55 +0300 Aki Tuomi (0e5c2b0eb) 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. M src/plugins/push-notification/push-notification-txn-msg.c M src/plugins/push-notification/push-notification-txn-msg.h 2018-09-28 13:30:51 +0300 Aki Tuomi (4bf330c1c) push-notification-driver-lua: Include date from MessageAppend M src/plugins/push-notification/push-notification-driver-lua.c 2018-09-28 13:30:01 +0300 Aki Tuomi (e06531816) push-notification-event-messageappend: Include date information parsed from headers Consistency with MessageNew M src/plugins/push-notification/push-notification-event-messageappend.c M src/plugins/push-notification/push-notification-event-messageappend.h 2018-09-28 13:01:58 +0300 Aki Tuomi (516ce4691) push-notification: Make sure txn messages are unique save_count is not reliable as it's not incremented for events like flag changes. M src/plugins/push-notification/push-notification-txn-msg.c 2018-09-27 09:54:10 +0300 Aki Tuomi (6591240bf) push-notification-driver-lua: Always use DLUA_LOG_LABEL M src/plugins/push-notification/push-notification-driver-lua.c 2018-09-27 09:52:59 +0300 Aki Tuomi (9dc83a038) push-notification-driver-lua: Properly register all events M src/plugins/push-notification/push-notification-driver-lua.c 2018-09-25 15:49:21 +0300 Aki Tuomi (ecc1be7bb) 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. M src/plugins/mail-lua/mail-storage-lua.c 2018-09-25 14:09:55 +0300 Aki Tuomi (c698ce9c2) push-notification-driver-lua: tx begin pushed mail user not username M src/plugins/push-notification/push-notification-driver-lua.c 2018-09-25 14:09:28 +0300 Aki Tuomi (fb04cd2a6) push-notification-driver-lua: Do not push user again User is already pushed in tx begin, and can be stored there into the context. M src/plugins/push-notification/push-notification-driver-lua.c 2018-09-25 14:08:59 +0300 Aki Tuomi (74b6336fe) push-notification-driver-lua: Move event push earlier Simplifies code M src/plugins/push-notification/push-notification-driver-lua.c 2018-09-25 12:24:02 +0300 Aki Tuomi (0603d1477) mail-lua: Add deinit_pre function M src/plugins/mail-lua/mail-lua-plugin.c 2018-09-24 15:29:12 +0300 Aki Tuomi (d686d75ce) push-notification-driver-lua: Reference mail user only if initialization is successful Will cause assert-crash otherwise if initialization fails M src/plugins/push-notification/push-notification-driver-lua.c 2018-09-24 15:24:19 +0300 Aki Tuomi (37f5981c0) push-notification-driver-lua: Fix symbol names M src/plugins/push-notification/push-notification-driver-lua.c 2018-09-24 15:23:59 +0300 Aki Tuomi (f208ab22e) mail-lua: Deinit script after others Some other plugin might need Lua for deinit M src/plugins/mail-lua/mail-lua-plugin.c 2018-09-24 14:46:19 +0300 Aki Tuomi (ffeab3977) push-notification-driver-lua: Use Lua references for context M src/plugins/push-notification/push-notification-driver-lua.c 2018-09-24 15:07:26 +0300 Aki Tuomi (e62027424) mail-lua: Implement mail_lua_plugin_get_script It was forgotten in 950c7e06dbf7f1cd696653af95b8c0053a9e86da M src/plugins/mail-lua/mail-lua-plugin.c 2018-05-22 09:23:32 +0300 Aki Tuomi (db64babda) auth: db-lua - Remove unnecessary pushnil usage lua_pushstring is NULL-safe M src/auth/db-lua.c 2018-03-14 19:42:42 +0200 Aki Tuomi (2e787e1e3) push-notification: Add lua driver M src/plugins/push-notification/Makefile.am A src/plugins/push-notification/push-notification-driver-lua.c 2018-03-14 19:07:53 +0200 Aki Tuomi (92fbe5111) mail-lua: Add Lua support plugin for mail storage M configure.ac M src/plugins/Makefile.am A src/plugins/mail-lua/Makefile.am A src/plugins/mail-lua/mail-lua-plugin.c A src/plugins/mail-lua/mail-lua-plugin.h A src/plugins/mail-lua/mail-storage-lua.c A src/plugins/mail-lua/mail-storage-lua.h 2018-03-14 18:49:50 +0200 Aki Tuomi (9184e0ead) lib-lua: Add lua_pushboolean helper to push real booleans Makes boolean handling in dovecot code slightly easier M src/auth/db-lua.c M src/lib-lua/dlua-script-private.h M src/lib-lua/dlua-script.c 2018-03-14 20:05:29 +0200 Aki Tuomi (0812e54db) push-notification: Fix mailbox unsubscribe event Subscribe should be FALSE here. M src/plugins/push-notification/push-notification-event-mailboxunsubscribe.c 2018-08-26 21:53:56 -0600 Michael M Slusarz (319ebf06a) push-notification: Fix initializing push notification mailbox triggers None of the mailbox triggers were working, since the transaction was not being correctly initialized. M src/plugins/push-notification/push-notification-plugin.c 2018-08-29 17:27:58 +0300 Martti Rannanjärvi (652fe8eba) dns: Remove duplicate event_unref() in dns_client_input_args() The event is unreffed at the end of the function also. M src/dns/dns-client.c 2018-08-29 17:22:22 +0300 Martti Rannanjärvi (960b43f0d) dns: Return the lookup error string to the querier M src/dns/dns-client.c 2018-08-29 13:40:33 +0300 Martti Rannanjärvi (29ea6202b) lib-dns: Set error_r in dns_client_connect() on failure M src/lib-dns/dns-lookup.c 2018-08-29 13:23:55 +0300 Martti Rannanjärvi (f23f59f63) lib-dns: Remove DNS from the log messages now that it's in the prefix M src/lib-dns/dns-lookup.c 2018-08-29 13:21:23 +0300 Martti Rannanjärvi (b713cf58f) lib-dns: Use dns(host): prefix instead of just host: in event M src/lib-dns/dns-lookup.c 2018-08-29 11:04:10 +0300 Martti Rannanjärvi (9867ac5ad) lib: Use basename of unix socket path as event log prefix This is to make the prefix consistent with other unix socket loggings in Dovecot. M src/lib/connection.c 2018-08-27 10:35:47 +0300 Timo Sirainen (1b2cc46c2) lib: connection - Clarify logging of incoming connections Don't log "Client connected" for both incoming and outgoing connections. M src/lib/connection.c 2018-08-27 10:33:54 +0300 Timo Sirainen (beb765c6c) lib: connection - Remove dead code connection_client_connected() can only be called for clients. There was already an assert for it. M src/lib/connection.c 2018-09-19 12:41:39 +0300 Timo Sirainen (734562e96) global: Don't try to send stats from unit tests M src/director/director-test.c M src/lib-smtp/test-smtp-submit.c M src/plugins/mail-crypt/test-mail-key.c 2018-09-11 11:21:36 +0300 Martti Rannanjärvi (c71040bfe) driver-sqlite: Fix crash and event leak in driver_sqlite_query_s() M src/lib-sql/driver-sqlite.c 2018-09-10 12:19:29 +0300 Martti Rannanjärvi (81e676523) driver-sqlite: Assign db in driver_sqlite_exec() This fixes a crash. M src/lib-sql/driver-sqlite.c 2018-09-13 13:01:52 +0300 Martti Rannanjärvi (071c4b1e1) lib-sql: Fix wrong sql_query_finished_event() success parameter use M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c 2018-09-13 12:36:20 +0300 Martti Rannanjärvi (b1941c4d2) driver-sqlite: Don't give false out of memory errors Only log error from sqlite3_errmsg() when connected to the db, since otherwise dovecot logs false "out of memory" errors. M src/lib-sql/driver-sqlite.c 2018-09-12 10:19:16 +0300 Aki Tuomi (bab965cea) driver-sqlite: Add error to sql_query_finished event on error M src/lib-sql/driver-sqlite.c 2018-09-12 10:18:48 +0300 Aki Tuomi (b093c4bb8) driver-pgsql: Add error to sql_query_finished if it fails M src/lib-sql/driver-pgsql.c 2018-09-12 10:17:49 +0300 Aki Tuomi (b8d3831a1) driver-cassandra: Add error to sql_query_finished event on error M src/lib-sql/driver-cassandra.c 2018-09-05 13:20:02 +0300 Aki Tuomi (944e03666) lib-sql: Do not create event for old drivers They can't use it anyways M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c 2018-09-05 08:34:28 +0300 Aki Tuomi (97fefd4e2) driver-sqlpool: Only strdup error on error Satisfies static analyzers M src/lib-sql/driver-sqlpool.c 2018-09-04 20:30:12 +0300 Aki Tuomi (e3e47b70a) driver-sqlite: Document why rollback is called when commit fails M src/lib-sql/driver-sqlite.c 2018-09-02 19:14:17 +0300 Aki Tuomi (5d6e10b8e) driver-cassandra: Add events M src/lib-sql/driver-cassandra.c 2018-09-01 13:50:27 +0300 Aki Tuomi (1d4045613) driver-pgsql: Add events M src/lib-sql/driver-pgsql.c 2018-08-31 13:30:11 +0300 Aki Tuomi (7adb29763) driver-sqlite: Add events M src/lib-sql/driver-sqlite.c 2018-08-31 09:45:59 +0300 Aki Tuomi (3b28c5934) driver-mysql: Add events M src/lib-sql/driver-mysql.c 2018-08-31 09:31:48 +0300 Aki Tuomi (8ce12f90c) driver-sqlpool: Add events M src/lib-sql/driver-sqlpool.c 2018-08-30 14:23:10 +0300 Aki Tuomi (5c98b165a) lib-sql: Add events M src/lib-sql/sql-api-private.h M src/lib-sql/sql-api.c M src/lib-sql/sql-api.h 2018-09-03 13:59:41 +0300 Aki Tuomi (19b80941c) auth: Use sql_init_full M src/auth/db-sql.c 2018-09-04 09:31:25 +0300 Aki Tuomi (0dc7ed074) global: Replace sql_db_cache_new with sql_db_cache_new2 M src/lib-dict-backend/dict-sql.c M src/lib-sql/sql-db-cache.c M src/lib-sql/sql-db-cache.h 2018-09-03 14:13:55 +0300 Aki Tuomi (d459545bd) dict-sql: Use sql_db_cache_new2 M src/lib-dict-backend/dict-sql.c 2018-09-03 14:12:05 +0300 Aki Tuomi (95b6a4ee2) lib-sql: Add sql_db_cache_new2 that uses the new sql_init_full initializer M src/lib-sql/sql-db-cache.c M src/lib-sql/sql-db-cache.h 2018-09-02 18:45:14 +0300 Aki Tuomi (2b19af27d) driver-cassandra: Add init_full M src/lib-sql/driver-cassandra.c 2018-09-02 18:39:47 +0300 Aki Tuomi (4910d6a7b) driver-cassandra: Return error from connection string parser M src/lib-sql/driver-cassandra.c 2018-09-04 09:43:32 +0300 Aki Tuomi (056f0a091) driver-cassandra: Add driver_cassandra_free M src/lib-sql/driver-cassandra.c 2018-09-01 13:43:19 +0300 Aki Tuomi (1f75cca53) driver-pgsql: Add init_full M src/lib-sql/driver-pgsql.c 2018-09-04 09:39:06 +0300 Aki Tuomi (7760d1db4) driver-pgsql: Add driver_pgsql_free M src/lib-sql/driver-pgsql.c 2018-08-31 13:29:56 +0300 Aki Tuomi (71ad28987) driver-sqlite: Add init_full M src/lib-sql/driver-sqlite.c 2018-09-03 12:17:40 +0300 Aki Tuomi (c59b7e50b) driver-mysql: Add init_full M src/lib-sql/driver-mysql.c 2018-08-31 14:07:44 +0300 Aki Tuomi (a44ee862c) driver-mysql: Allocate mysql connection ourselves This allows reusing the same mysql object on reconnect, and simplifies cleanup in case initialization fails. M src/lib-sql/driver-mysql.c 2018-09-03 12:15:55 +0300 Aki Tuomi (13dc4321d) driver-mysql: Return error in connection string parser M src/lib-sql/driver-mysql.c 2018-08-30 14:17:13 +0300 Aki Tuomi (74434f07b) driver-sqlpool: Add driver_sqlpool_init_full Needed by SQL API change M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api-private.h 2018-08-31 12:43:11 +0300 Aki Tuomi (4b7ffac08) driver-sqlpool: Use init_full when available M src/lib-sql/driver-sqlpool.c 2018-08-30 14:18:41 +0300 Aki Tuomi (21f2c88f1) lib-sql: Add init_full vfunction M src/lib-sql/sql-api-private.h M src/lib-sql/sql-api.c M src/lib-sql/sql-api.h 2018-08-31 13:07:03 +0300 Aki Tuomi (b5b574346) driver-sqlite: Whitespace fix M src/lib-sql/driver-sqlite.c 2018-08-31 09:20:16 +0300 Aki Tuomi (198bb843d) auth: Add db_ prefix to sql in db-sql Prevents clash with lib-sql M src/auth/db-sql.c M src/auth/db-sql.h M src/auth/passdb-sql.c M src/auth/userdb-sql.c 2018-09-11 11:42:46 +0300 Martti Rannanjärvi (3b74c0f17) util: Fix compile with tcpwrap M src/util/tcpwrap.c 2018-09-07 11:19:43 +0300 Timo Sirainen (5305707ac) stats: Wait for clients to disconnect at shutdown M src/stats/main.c 2018-09-06 17:04:00 +0300 Timo Sirainen (c3953cb2c) global: Replace MASTER_SERVICE_FLAG_SEND_STATS with _DONT_SEND_STATS Most services want to send statistics, so it's better to reverse the flag behavior. Mark the few services that don't want stats with MASTER_SERVICE_FLAG_DONT_SEND_STATS. M src/anvil/main.c M src/config/doveconf.c M src/config/main.c M src/dns/dns-client.c M src/doveadm/main.c M src/imap/main.c M src/indexer/indexer-worker.c M src/lib-master/master-service-settings.c M src/lib-master/master-service.c M src/lib-master/master-service.h M src/lmtp/main.c M src/log/main.c M src/master/main.c M src/old-stats/main.c M src/pop3/main.c M src/stats/main.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap.c 2018-09-06 19:48:09 +0300 Timo Sirainen (c4efa892f) master: Start service processes only after adding all service listeners Otherwise the processes could try to connect to services that aren't being listened on, causing errors. Especially stats-writer socket needs to be available early on. M src/master/service-monitor.c 2018-09-05 12:25:56 +0300 Martti Rannanjärvi (9b32699fe) lib: Test event category parent matching M src/lib/test-event-filter.c 2018-08-31 13:04:53 +0300 Timo Sirainen (477c598ee) lib: Fix matching parent categories in event filter So far this hasn't caused problems, because parent events had been using parent categories. However, if the parent category wasn't used by an event or its parents, an event filter wouldn't have matched it. M src/lib/event-filter.c 2018-08-29 22:09:57 +0300 Timo Sirainen (a02fa57ff) lib-master, master: Initialize stats-client via environment variables That way it's initialized before settings are read, and it can catch events earlier. It also doesn't require all services to read settings if they otherwise don't need them. M src/lib-master/master-interface.h M src/lib-master/master-service-settings.c M src/lib-master/master-service.c M src/master/service-process.c 2018-08-29 20:43:22 +0300 Timo Sirainen (bba9258c7) dns: Fix duration field in dns_worker_request_finished event M src/dns/dns-client.c 2018-08-29 15:15:30 +0300 Phil Carmody (ac9c36633) lib-dns - struct member cleanup in dns_lookup The index was never used anyway. Now we're using an alloconly pool, there's no need for the dns_lookup to keep a freeable pointer to the fields also int result. Signed-off-by: Phil Carmody M src/lib-dns/dns-lookup.c 2018-08-28 09:45:58 +0300 Aki Tuomi (e0a7db08a) lib-http: test-http-client-errors - Skip VERSION line in DNS reply Otherwise we send extraneous results causing SIGPIPE crash. Broken in ddb9ead03f4cc7a2c61094e50803e07dfd590cb5 M src/lib-http/test-http-client-errors.c 2018-08-27 14:16:46 +0300 Aki Tuomi (041fb1c8b) lib-dns: Always use dns_lookup_free Ensures that all resources get free'd in single place, Fixes memory leak and event double-unref. Broken in 9ee82e3f660e6e072532283cad8668a578ac137d M src/lib-dns/dns-lookup.c 2018-08-27 14:15:54 +0300 Aki Tuomi (85d533708) lib-dns: Always allocate lookup Simplifies next change M src/lib-dns/dns-lookup.c 2018-08-27 14:14:50 +0300 Aki Tuomi (265c492fa) lib-dns: Use pooled memory with dns lookups Simplifies memory management M src/lib-dns/dns-lookup.c 2018-08-24 11:42:56 +0300 Aki Tuomi (df17f0508) lib-dns: Remove useless code Found by scan-build M src/lib-dns/dns-lookup.c 2018-08-17 14:27:52 +0300 Aki Tuomi (14d0377b8) lib-http: Hook lib-http event to connection event M src/lib-http/http-client-connection.c 2018-08-17 11:33:18 +0300 Aki Tuomi (a18527cae) dns, lib-dns: Move to protocol v1.0 M src/dns/dns-client.c M src/lib-dns/dns-lookup.c M src/lib-http/test-http-client-errors.c M src/lib-smtp/test-smtp-client-errors.c 2018-07-31 12:51:54 +0300 Aki Tuomi (546417a35) dns: Add event support M src/dns/dns-client.c 2018-08-16 10:32:38 +0300 Aki Tuomi (083d3306e) dns: Use connection.c This enables processing multiple requests at a time. M src/dns/dns-client.c 2018-08-02 17:22:51 +0300 Aki Tuomi (a478e3016) lib: connection - Add and fix logging M src/lib/connection.c 2018-08-02 17:22:37 +0300 Aki Tuomi (f30740657) lib: connection - Add event support M src/lib/connection.c M src/lib/connection.h 2018-07-31 12:52:19 +0300 Aki Tuomi (59ad417cc) lib-dns: Add event support M src/lib-dns/dns-lookup.c M src/lib-dns/dns-lookup.h 2018-07-31 12:45:17 +0300 Aki Tuomi (b950c5aa4) lib-dns: Move calling callback to separate function Simplifies next commit M src/lib-dns/dns-lookup.c 2018-08-17 14:36:13 +0300 Aki Tuomi (09c974db1) lib-dns: Initialize lookup earlier M src/lib-dns/dns-lookup.c 2018-08-17 10:55:39 +0300 Aki Tuomi (5d36bcd46) lib-dns: Compose final command in dns_client_lookup_common Makes logging easier M src/lib-dns/dns-lookup.c 2018-08-16 15:24:30 +0300 Aki Tuomi (267979db5) lib-dns: Use connection with dns-client M src/lib-dns/dns-lookup.c 2018-08-17 10:39:05 +0300 Aki Tuomi (e8845407b) lib: lib-event - Add inc_int to passthrough events Was forgotten in 12927b843387b2a93fcf1d2e05df7c79af06e567 M src/lib/lib-event.c M src/lib/lib-event.h 2018-08-23 14:58:44 +0300 Aki Tuomi (2b2cf4b34) lib: Make io_loop_move_*(NULL) no-op M src/lib/ioloop.c 2018-08-28 12:00:54 +0300 Martti Rannanjärvi (8777bde15) lib: Use i_asserts() for NULL-checks in test_event_filter_inc_int() This is so scan-build doesn't explore the assertations not holding and create noise with that. M src/lib/test-event-filter.c 2018-08-27 14:36:33 +0300 Martti Rannanjärvi (07fa01b8c) lib: Add test for event_inc_int() M src/lib/test-event-filter.c 2018-08-16 12:27:06 +0300 Timo Sirainen (682fce2e3) lib: test-event-filter - Test overriding parent fields M src/lib/test-event-filter.c 2018-08-16 12:17:38 +0300 Timo Sirainen (dc2539081) lib: Add event_field_clear() to allow clearing parent event's fields M src/lib/Makefile.am M src/lib/event-filter.c M src/lib/lib-event.c M src/lib/lib-event.h A src/lib/test-event-filter.c M src/lib/test-lib.inc 2018-08-15 16:33:49 +0300 Timo Sirainen (4436d8610) lib: Add event_inc_int() This can be useful when updating counter fields. M src/lib/lib-event.c M src/lib/lib-event.h 2018-07-31 08:23:49 +0300 Martti Rannanjärvi (5a13a07c3) lib: Add test for stats_dist_get_variance() M src/lib/test-stats-dist.c 2018-08-20 13:56:40 +0300 Martti Rannanjärvi (2067c3bad) lib,stats,dict: Make stats_dist_get_avg() return double M src/dict/main.c M src/lib/stats-dist.c M src/lib/stats-dist.h M src/lib/test-stats-dist.c M src/stats/client-reader.c 2018-09-11 10:10:13 +0300 Timo Sirainen (9cf456574) man, doveadm: Rename "mailbox cache compress" to "mailbox cache purge" The "compress" word makes it sound like e.g. zlib compression. The "purge" word is used for a similar behavior with mdbox purging. M doc/man/doveadm-mailbox.1.in M src/doveadm/doveadm-mail-mailbox-cache.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2018-04-29 13:45:05 +0300 Timo Sirainen (ab8954239) doveadm: Add mailbox cache compress M doc/man/doveadm-mailbox.1.in M src/doveadm/doveadm-mail-mailbox-cache.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2018-04-29 13:44:59 +0300 Timo Sirainen (000e3a5ee) lib-index: Add mail_cache_compress_forced() M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache.h 2018-09-19 12:34:57 +0300 Aki Tuomi (57ac37188) doveadm-auth-server: Fix cmd_list output to use JSON Fixes output for HTTP client M src/doveadm/doveadm-auth-server.c 2018-09-19 12:27:50 +0300 Aki Tuomi (7bebfb03f) doveadm-auth-server: Do not use i_fatal on user listing error Breaks error reporting to HTTP client M src/doveadm/doveadm-auth-server.c 2018-09-14 13:19:16 +0300 Timo Sirainen (385745317) dict-client: Avoid excessive CPU usage while waiting commands to finish client_dict_add_timeout() adds the timeout thinking that the dict no longer has any work to do, so it can be freed soon. However, if other work is added before that, the timeout just keeps getting called over and over again. This is especially bad with the default idle timeout of 0. M src/lib-dict/dict-client.c 2018-07-06 13:12:51 +0300 Timo Sirainen (a7276f21c) login-proxy: Fix logging reason when kicking non-logged in connections Use the same reason as for logged in connections. M src/login-common/login-proxy.c 2018-08-06 12:39:25 +0300 Timo Sirainen (06cb4a068) imap: Fix command ambiguity checking with special plugins If the tagged line is already sent, that command can't result in ambiguity anymore. A cleaner fix would be to add a new _WAIT_SYNC_OUTPUT state, but that requires all the existing code to understand that new state correctly, so it has a higher chance of breaking something. So at least for now don't add it. M src/imap/imap-client.c 2018-09-13 09:16:41 +0200 Stephan Bosch (7fe29d2d8) lib-http: test-http-client-errors: Address another reliability issue in "peer reuse failure" test. M src/lib-http/test-http-client-errors.c 2018-09-13 20:44:22 +0200 Stephan Bosch (5671fef86) lib-http: response: Add convenience functions for status evaluation. M src/lib-http/http-response.h 2018-08-13 19:23:31 +0200 Stephan Bosch (2c4895101) lib-http: test-http-client-errors: Make "peer reuse failure" test reliable. It was highly timing-sensitive, since it required a particular error status to be returned. Sometimes, it would yield a different error based on a slightly different order of events, making the test fail. Such failures aren't relevant though, since this regression test is about triggering a segfault that used to occur. M src/lib-http/test-http-client-errors.c 2018-08-08 12:33:20 +0300 Aki Tuomi (cdd0fd729) auth: mycrypt - include crypt.h Fixes crypt usage on glibc-2.28 Reported by Reuben Farrelly Patch provided by Thore Bödecker M configure.ac M src/auth/mycrypt.c 2018-10-02 10:22:11 +0300 Timo Sirainen (c860364a2) lib-master: ipc-client: Don't free command too early When multiple replies were received by IPC only the final reply should free the command. This may have caused e.g. "doveadm proxy list" to crash. Broken by 435f0545b200767c25a5daee17cd6b4998d03710 M src/lib-master/ipc-client.c 2018-07-05 14:55:38 +0300 Timo Sirainen (f427f061c) director: Allow fully freeing user while waiting for IPC kick to finish director_user_move_free() will now just free the IPC command, so this isn't a problem anymore. M src/director/director.c 2018-07-05 14:53:02 +0300 Timo Sirainen (96efffe56) director: Fix crash when user kill times out before IPC finishes Abort the IPC kick command when freeing kill context so the IPC callback won't be called. M src/director/director.c M src/director/director.h 2018-07-05 14:42:30 +0300 Timo Sirainen (2c37ca274) lib-master: ipc-client: Support aborting commands M src/lib-master/ipc-client.c M src/lib-master/ipc-client.h 2018-07-05 14:41:38 +0300 Timo Sirainen (f5222c92b) lib-master: ipc-client: Cleanup - avoid extra return in the function Simplifies the following commit. M src/lib-master/ipc-client.c 2018-07-05 14:38:51 +0300 Timo Sirainen (eaa02f0df) lib-master: ipc-client: Never call callback directly from ipc_client_cmd() This may simplify the calling code, especially after the following commit that returns the command pointer. M src/lib-master/ipc-client.c 2018-07-05 14:35:51 +0300 Timo Sirainen (9a7449a37) lib-master: ipc-client: Split code to ipc_client_abort_commands() M src/lib-master/ipc-client.c 2018-07-05 14:25:46 +0300 Timo Sirainen (d4ded251e) lib-master: ipc-client: Use linked list of commads instead of array Needed for the following commit that returns the command pointer. M src/lib-master/ipc-client.c 2018-07-05 13:40:43 +0300 Timo Sirainen (eaafe510f) lib-master: ipc-client: Don't call callback twice if IPC proxy sends invalid input ipc_client_disconnect() called it once, and the second time was done with the cmds[0] that was already removed from the array. M src/lib-master/ipc-client.c 2018-09-05 19:34:20 +0300 Aki Tuomi (97e3086ee) pop3: Do not expunge \Deleted mails without QUIT Prevents loss of email if connection is unexpectedly terminated. M src/pop3/pop3-client.h M src/pop3/pop3-commands.c 2018-04-26 21:07:31 +0300 Timo Sirainen (e151b99c1) cassandra: Add proper log levels to logged messages If logging to "internal handler", i.e. to log process, write the log prefix that includes the log level. This way Cassandra's trace/debug/info messages won't end up in error log. M src/lib-sql/driver-cassandra.c 2018-04-26 21:07:22 +0300 Timo Sirainen (4988ce7dd) lib: Add i_failure_handler_is_internal() M src/lib/failures.c M src/lib/failures.h 2018-06-20 12:40:37 +0200 Stephan Bosch (4fcd4e8fa) lib-storage: fail storage: Allocate event for mailbox. Absence of event causes segfault when event logging is performed for the mailbox. M src/lib-storage/fail-mailbox.c 2018-10-01 11:02:58 +0300 Sergey Kitov (1eb02621f) lib-master: Unit test for sending events to stats. M src/lib-master/Makefile.am A src/lib-master/test-event-stats.c 2018-09-26 12:25:59 +0200 Stephan Bosch (c4f8ab036) lib-smtp: client: Make the initialization of the connection after SSL handshake reliable. Before, the connection was not guaranteed to be fully initialized after the SSL handshake. The problem would occur when the handshake finished while writing the SSL output stream. In a similar HTTP client issue, this caused a segfault. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-private.h 2018-09-26 00:26:32 +0200 Stephan Bosch (1b5e38152) lib-http: client: Fix segfault by making the initialization of the connection after SSL handshake reliable. Before, the connection was not guaranteed to be fully initialized after the SSL handshake. The problem would occur when the handshake finished while writing the SSL output stream. M src/lib-http/http-client-connection.c 2018-08-23 20:29:58 +0300 Aki Tuomi (0ec71156a) submission: Reorder initialization code login_set socket paths get invalidated when master_service_init_finish is called, so we need to run the code that uses them before this. M src/submission/main.c 2018-08-23 19:15:50 +0300 Aki Tuomi (1e7869f5c) lib-smtp: Increase memory pool initial sizes This reduces malloc traffic M src/lib-http/test-http-client-errors.c M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-reply-parser.c M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-transaction.c 2018-06-20 00:22:47 +0200 Stephan Bosch (255d1aec8) lib-smtp: server: Fix memory leak occurring when an error occurs early for BDAT/BURL. M src/lib-smtp/smtp-server-cmd-data.c M src/lib-smtp/smtp-server-connection.c 2018-06-20 15:54:21 +0200 Stephan Bosch (f7b79bb68) lib-smtp: server: connection: Rely on i_stream_destroy(NULL) being a no-op. M src/lib-smtp/smtp-server-connection.c 2018-06-20 00:31:43 +0200 Stephan Bosch (385198f3f) lib-smtp: server: Restructure reference counting of BDAT/BURL chain stream. It is now dereferenced directly, rather than via a local variable; thereby making sure it is reset to NULL. M src/lib-smtp/smtp-server-cmd-data.c 2018-06-29 14:37:36 +0300 Timo Sirainen (110d5f086) director: Fix assert-crash when doveadm disconnects immediately after sending command Any command that requires a ring sync should cause the doveadm connection to wait until the ring is synced. However, if the disconnection happened early enough the connection is deinitialized before the ring sync is finished. Fixes: Panic: file doveadm-connection.c: line 1097 (doveadm_connection_deinit): assertion failed: (conn->to_ring_sync_abort == NULL) M src/director/doveadm-connection.c 2018-09-19 11:32:08 +0300 Timo Sirainen (d5ab2c08d) director: Add assert to make sure doveadm connection's IO isn't added multiple times M src/director/doveadm-connection.c 2018-09-07 20:04:48 +0300 Timo Sirainen (0c8cee931) doveadm: Make sure to stop running commands requiring synced ring when ring is no longer synced A command could desync the ring, and no more commands should be run afterwards. This also fixes a bug where a command that desyncs the ring is supposed to wait for the ring being synced before returning OK, but returns it immediately instead. M src/director/doveadm-connection.c M src/director/doveadm-connection.h M src/director/main.c 2018-01-03 15:54:15 +0200 Phil Carmody (52dc695d7) lib/printf-format-fix: fix rejection of "%.0f" as a valid string Sometimes you want to calculate in floats, but don't want the decimals printed. Signed-off-by: Phil Carmody M src/lib/printf-format-fix.c M src/lib/test-printf-format-fix.c 2018-09-19 22:26:08 +0200 Stephan Bosch (560523194) lib-smtp: reply-parser: Fix closing the text_lines array with NULL sentinel. For (EHLO) replies with more than 7 lines, the text_lines array of the reply did not end in NULL, causing a segfault. M src/lib-smtp/smtp-reply-parser.c 2018-09-13 15:30:22 +0300 Timo Sirainen (51b6d5b70) lib: i_zero*() - Give compiler error if it's wrongly used on an array M src/lib/macros.h 2018-09-13 15:29:45 +0300 Timo Sirainen (1af8cda81) lib-master, auth: Fix clearing memory It doesn't look like these being wrong were causing any bugs. M src/auth/password-scheme-sodium.c M src/lib-master/master-service-haproxy.c 2018-09-11 15:54:39 +0300 Timo Sirainen (3afbb0624) doveadm stats dump: Fix potentially not writing all stats output It depended on whether uninitialized stack memory was 0 or not. M src/doveadm/doveadm-stats.c 2018-08-17 11:34:02 +0300 Timo Sirainen (7596390c0) lib: Mark signal waiting IO as "never wait alone" This signal is being automatically moved to nested ioloops. It can't be the only IO being waited, since there's no code that simply wants to wait for a signal. M src/lib/lib-signals.c 2018-08-17 11:33:17 +0300 Timo Sirainen (ca4ab3eb5) lib: ioloop-epoll/kqueue: Remove now unnecessary infinite wait check. The previous change adds this globally to io_loop_run_get_wait_time(). M src/lib/ioloop-epoll.c M src/lib/ioloop-kqueue.c 2018-08-17 11:32:10 +0300 Timo Sirainen (a5ad7e316) lib: Add io_set_never_wait_alone() If ioloop is run without any timeouts and without IOs that don't have this flag, assert-crash rather than going to infinite wait. M src/lib/ioloop-private.h M src/lib/ioloop.c M src/lib/ioloop.h 2018-08-17 11:29:30 +0300 Timo Sirainen (3f5062970) lib: Add and use io_loop_run_get_wait_time() This is going to be called just before running an ioloop iteration. The next commit improves its behavior. M src/lib/ioloop-epoll.c M src/lib/ioloop-kqueue.c M src/lib/ioloop-poll.c M src/lib/ioloop-private.h M src/lib/ioloop-select.c M src/lib/ioloop.c 2018-09-07 10:43:43 -0400 Josef 'Jeff' Sipek (1705fbf2a) lib-storage: Don't try to deserialize bodystructure if we already have it Fixes: Panic: file message-part-data.c: line 37 (message_part_data_is_plain_7bit): assertion failed: (data != NULL) M src/lib-storage/index/index-mail.c 2018-09-06 11:07:22 -0400 Josef 'Jeff' Sipek (acc24c1aa) lib-storage: Simplify an assertion condition Since the i_assert() is guarded by a check for save_bodystructure_header being true, the whole condition can be simplified. M src/lib-storage/index/index-mail-headers.c 2018-09-06 11:06:17 -0400 Josef 'Jeff' Sipek (bc6904ecf) lib-storage: Don't try to process header if we haven't parsed the body structure Fixes: Panic: file index-mail-headers.c: line 294 (index_mail_parse_header): assertion failed: (part != NULL) M src/lib-storage/index/index-mail-headers.c 2018-08-31 15:06:09 +0300 Timo Sirainen (cebd034a4) lib: Move log type to be written before appended log prefix This changes the logging format back to how it used to be before the event logging changes. M src/lib/event-log.c M src/lib/lib-event.h M src/lib/test-event-log.c 2018-08-31 15:03:37 +0300 Timo Sirainen (f85e0e01b) lib: Add failure_context.log_prefix_type_pos If non-zero, this specifies where the log type (e.g. "Info: ") is written within the log prefix. By default it's appended. M src/lib/failures.c M src/lib/failures.h 2018-08-31 15:01:38 +0300 Timo Sirainen (027a1b94c) lib, log: Add log prefix length to internal logging protocol This way log process knows which part of the text is the log prefix, and which part is the logged text. M src/lib/failures.c M src/lib/failures.h M src/log/log-connection.c 2018-08-31 14:57:13 +0300 Timo Sirainen (5fc5933a6) log: Move data stack frame allocation to parent function This simplifies the next commit, which requires data stack nearly always when logging. The data stack frames are cheap enough that we don't really need to optimize for avoiding the cases when they're not needed. M src/log/log-connection.c 2018-08-31 14:54:18 +0300 Timo Sirainen (801965494) log: Avoid unnecessary global log prefix changes If the context specifies a log prefix, the global prefix isn't going to be used. M src/log/log-connection.c 2018-08-31 14:50:52 +0300 Timo Sirainen (f39897d77) lib: failures - Use common log_prefix_add() for default and syslog formatters M src/lib/failures.c 2018-08-28 12:45:23 +0300 Timo Sirainen (46cbad31a) lib: Add unit test for event log prefix handling Some of the tests are commented out until they're fixed in a following commit. M src/lib/Makefile.am A src/lib/test-event-log.c M src/lib/test-lib.inc 2018-08-31 14:30:21 +0300 Timo Sirainen (4e21dd19e) lib: failures - Move adding LF from default_format() to default_write() This makes it similar to internal_format/write() M src/lib/failures.c 2018-08-31 14:21:06 +0300 Timo Sirainen (182bfc315) lib: Move failure handler structs and typedefs to failures-private.h Also change the function typedefs to be non-pointers, like they usually are in Dovecot code. M src/lib/Makefile.am A src/lib/failures-private.h M src/lib/failures.c 2018-08-31 14:19:32 +0300 Timo Sirainen (da355a28a) lib: Make failure handler variables static M src/lib/failures.c 2018-08-31 14:18:34 +0300 Timo Sirainen (fe68833ac) lib: Rename handler_config variable to failure_handler It's a global variable, so it needs to have a proper prefix. M src/lib/failures.c 2018-06-14 15:54:03 +0300 Sergey Kitov (3fd0d3a87) lib: Implement vfuncs for logging to stderr M src/lib/failures.c 2018-06-14 15:49:41 +0300 Sergey Kitov (4bea16a9b) lib: Implement vfuncs for logging to syslog M src/lib/failures.c 2018-08-05 04:00:17 +0300 Sergey Kitov (baa175b7b) lib: Implement vfuncs for logging to default location and common failure logging handling M src/lib/failures.c 2018-06-12 15:56:46 +0300 Sergey Kitov (521a9dbd0) lib: Introduce abstraction for failure logging implementations. M src/lib/failures.c 2018-09-03 14:15:07 +0300 Timo Sirainen (bc2ea7e11) lib-master: Fix crash when stats events are merged all the way to the root M src/lib-master/stats-client.c 2018-09-03 13:14:39 +0300 Timo Sirainen (9c19112bf) lib-master: stats_event_get_merged() - Remove unnecessary variable assignment Fixes scan-build complaint. M src/lib-master/stats-client.c 2018-01-16 12:51:53 +0200 Sergey Kitov (ef94f15e7) lib-master: stats_event_write use BEGIN only when event and parent_event create timestamps differ M src/lib-master/stats-client.c 2018-02-26 16:33:19 +0200 Sergey Kitov (b3a24f90a) lib: Add some event handling functions. event_has_all_categories() - checks if given event contains all the categories of an another event. event_has_all_fields() - checks if given event contains all the fields of an another event. event_dup() - duplicates an event. event_copy_categories_fields() - copies all categories and fields from source to dest. M src/lib/lib-event.c M src/lib/lib-event.h 2018-09-06 03:40:55 +0200 Stephan Bosch (fc6bf8dda) lib-http: client: peer: Log the number of pending connections consistently in relevant debug messages. Use the same style everywhere and log it where it makes sense. M src/lib-http/http-client-peer.c 2018-09-06 03:33:59 +0200 Stephan Bosch (2e410c7ca) lib-http: client: peer: Maintain a list of connections pending on behalf of a peer. Before, pending connections were only listed in the peer pool. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2018-09-06 03:23:26 +0200 Stephan Bosch (0c5dea54e) lib-http: client: connection: Unlist the connection as pending immediately in http_client_connection_failure(). M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c 2018-09-06 01:57:43 +0200 Stephan Bosch (1d3b102d7) lib-http: client: connection: Remove the connection from the peer pool pending list in a separate function. M src/lib-http/http-client-connection.c 2018-09-06 15:22:30 +0200 Stephan Bosch (2335b9914) lib-http: client: peer: Notify all peers in a peer pool about a successful connection. This allows peers for which the last connection attempt failed (which was not the last pending attempt in the pool) to try again. This solves a problem that could potentially cause a hang with multiple parallel clients creating serveral new connections at once. M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2018-09-06 16:03:58 +0200 Stephan Bosch (2ec17d0da) lib-http: client: peer: Add debug message for http_client_peer_connection_failure(). M src/lib-http/http-client-peer.c 2018-09-06 15:56:44 +0200 Stephan Bosch (71dbd9d36) lib-http: client: peer: Clarify debug message in http_client_peer_connection_failed_pool(). M src/lib-http/http-client-peer.c 2018-09-06 15:54:02 +0200 Stephan Bosch (24b39e688) lib-http: client: peer: Log debug message before calling peer pool in http_client_peer_connection_success(). M src/lib-http/http-client-peer.c 2018-09-06 15:50:36 +0200 Stephan Bosch (cc9319180) lib-http: client: peer: Rename http_client_peer_connection_failed_any() to http_client_peer_connection_failed_pool(). M src/lib-http/http-client-peer.c 2018-09-06 03:11:18 +0200 Stephan Bosch (bb60be8b6) lib-http: client: peer: Always run http_client_queue_connection_failure() upon definitive connection failure. The recorded peer->connecting flag was highly unreliable in a scenario involving starting parallel connections. This way, the linked queues can update their state accordingly. Also, this will not cause empty queues to initiate new connection, because empty queues will do nothing after updating the connection state. This problem caused a client ioloop hang in high-load conditions. M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2018-09-06 14:57:28 +0200 Stephan Bosch (085bde985) lib-http: client: peer: Move http_client_peer_connection_failure(). M src/lib-http/http-client-peer.c 2018-09-06 03:02:16 +0200 Stephan Bosch (d73d9f72c) lib-http: client: queue: Do not fail claimed requests unless the queue is being destroyed. Before, connection failure would also abort requests already being sent on another connection, which is premature at best. M src/lib-http/http-client-queue.c 2018-09-06 02:57:24 +0200 Stephan Bosch (e33d14e1f) lib-http: client: queue: Fix the number of pending requests listed in http_client_queue_connection_failure() debug message. M src/lib-http/http-client-queue.c 2018-09-06 02:51:09 +0200 Stephan Bosch (a2f5b4314) lib-http: client: peer: Determine number of pending peers in http_client_peer_shared_connection_failure() itself. Before, the number of pending peers was a parameter, but that was only for a single peer pool. This is wrong, since the one peer can have many different pools (depending on how many clients with incompatible configs share this peer). M src/lib-http/http-client-peer.c 2018-09-06 14:49:59 +0200 Stephan Bosch (41925f3e2) lib-http: client: peer: Notify definitive connection failure only within a peer pool. Other peer pools have different configuration, which may actually succeed and will arrive at this point when their own connections fail anyway. M src/lib-http/http-client-peer.c 2018-07-24 14:47:47 +0300 Aki Tuomi (51693ff9e) quota: Mark noenforcing quotas with unlimited quota This allows quota to be properly updated for unenforced quotas so they can be used for tracking only. This fixes issue where using noenforcing would not update quota during mail save, but requires a manual quota update. M src/plugins/quota/quota.c 2018-07-24 14:38:18 +0300 Aki Tuomi (9c1ceb88d) quota: Cleanup - Move enforce checking out of quota_root_visible() Non-enforcing quota roots need to be visible even when enforcing quotas, otherwise we cannot update them. M src/plugins/quota/quota.c 2018-08-27 15:06:44 +0300 Timo Sirainen (7057aa9de) fts: Optimize replacing NULs in header M src/plugins/fts/fts-build-mail.c 2018-08-23 14:33:59 +0300 Timo Sirainen (a318cf4ac) fts: Fix indexing mails with NULs in headers After the first NUL all the rest of the string was converted to spaces. This was broken already in the initial commit that attempted to fix this: 4d27f95c76bd008bb38f9c442567046da2b6ce14 M src/plugins/fts/fts-build-mail.c 2018-08-20 12:51:28 +0300 Timo Sirainen (41ecdb63f) lib-index: mail_cache_lookup_headers() - Allow using datastack pool This fixes assert caused by 53712af0e7f357e7279d9ff03831428aae85aa45: Panic: pool_data_stack_realloc(): stack frame changed M src/lib-index/mail-cache-lookup.c 2018-08-17 14:39:41 +0300 Timo Sirainen (6df4f4432) lib-storage: Fix NUL handling in mail_get_first_header*(), mail_get_headers*() These functions return NUL-terminated values, so they got truncated whenever a header value contained a NUL. Fix this by converting NULs to unicode replacement characters in the output. M src/lib-storage/index/index-mail-headers.c 2018-08-17 14:33:50 +0300 Timo Sirainen (ce57fab52) lib-mail: Make message_header_strdup() public Also move it to a better file. M src/lib-mail/message-header-parser.c M src/lib-mail/message-header-parser.h M src/lib-mail/message-part-data.c 2018-08-17 20:16:29 +0300 Timo Sirainen (4e2d0eed9) lib-mail: Cleanup - Rename internal hdr_strdup() to message_header_strdup() M src/lib-mail/message-part-data.c 2018-08-17 14:12:25 +0300 Timo Sirainen (ddfd59e78) lib-mail: rfc822-parser - Handle \ in quoted-string and domain-literal It was already handled in comments. Previously this caused the strings and domain-literals to be truncated at that position. M src/lib-mail/rfc822-parser.c M src/lib-mail/test-message-address.c 2018-08-17 13:42:35 +0300 Timo Sirainen (c56f8e22b) lib-mail: test-message-address - Test NULs in display-name M src/lib-mail/test-message-address.c 2018-05-04 19:53:27 +0300 Timo Sirainen (7d4c43875) lib-mail: Change MESSAGE_ADDRESS_PARSE_FLAG_NON_STRICT_DOTS to _FLAG_STRICT_DOTS Generally we want it to be enabled everywhere, so it's easier to just enable it by default. (This is kept as a separate commit from the previous one so it'll be easy to revert this in case we actually don't want this to be the default.) M src/lib-mail/message-address.c M src/lib-mail/message-address.h M src/lib-mail/test-message-address.c 2018-05-04 19:49:57 +0300 Timo Sirainen (2a867dc39) lib-mail: Add MESSAGE_ADDRESS_PARSE_FLAG_NON_STRICT_DOTS This code is somewhat copy&pasted from parse_local_part() in Pigeonhole. M src/lib-mail/message-address.c M src/lib-mail/message-address.h M src/lib-mail/test-message-address.c 2018-05-04 19:31:26 +0300 Timo Sirainen (3b34f177b) lib-mail: message_address_parse() - Change fill_missing parameter to flags This change allows adding more flags. The API is also backwards compatible in a way that the old FALSE/TRUE values still map to compatible 0/1 flags. M src/doveadm/doveadm-mail-fetch.c M src/lib-lda/mail-deliver.c M src/lib-mail/message-address.c M src/lib-mail/message-address.h M src/lib-mail/message-part-data.c M src/lib-mail/test-message-address.c M src/lib-smtp/smtp-params.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort.c M src/lib-storage/mail-storage-settings.c M src/plugins/fts/fts-build-mail.c 2018-05-04 19:21:52 +0300 Timo Sirainen (2f2d9930d) lib-mail: Fix rfc822_parse_dot_atom() to reject if dot isn't followed by atom M src/lib-mail/rfc822-parser.c M src/lib-mail/test-rfc822-parser.c 2018-04-25 14:19:27 +0300 Timo Sirainen (8fd288a82) lib-mail: Remove MESSAGE_HEADER_REPLACE_NULS_WITH_0x80 flag As mentioned in previous commit, 0x80 isn't valid UTF-8 and we shouldn't encourage using it. This implementation also can't be easily changed to use unicode replacement character without larger changes to istream-nonuls. Reverts 95fba2c295bb84639dc64ca5c9f2ccb9edc00ba7. M src/lib-mail/message-header-parser.c M src/lib-mail/message-header-parser.h 2018-04-25 14:17:34 +0300 Timo Sirainen (a5875be4f) lib-mail: Change NUL -> 0x80 replacement to use unicode replacement char instead Using 0x80 produces invalid UTF-8 output, which we should avoid. Some places in Dovecot code already requires that input is valid UTF-8, so it's also safer and easier to use the unicode replacement character. Fixes: Panic: file fts-tokenizer-generic.c: line 210 (fts_tokenizer_generic_simple_next): assertion failed: (char_size > 0) M src/lib-mail/message-part-data.c M src/lib-mail/rfc2231-parser.h M src/lib-mail/rfc822-parser.h M src/lib-mail/test-message-address.c M src/lib-mail/test-rfc2231-parser.c 2018-04-25 14:11:43 +0300 Timo Sirainen (0771805e6) lib-mail: Change rfc822_parser_context.nul_replacement_char to string M src/lib-mail/message-address.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/rfc822-parser.h M src/lib-mail/test-rfc822-parser.c 2018-04-24 18:01:03 +0300 Timo Sirainen (a86d32d49) lib-mail: message_part_*_parse_from_header() - Replace NULs with 0x80 This avoids truncation of Content-*, Subject, Message-ID, In-Reply-To and Date headers in IMAP ENVELOPE, BODY and BODYSTRUCTURE replies. Of course, NULs in headers are violating RFCs already, so the previous behavior wasn't really wrong either. M src/lib-mail/message-part-data.c 2018-04-21 16:21:33 +0300 Timo Sirainen (6ddeb520f) lib: Mark str_append_n() deprecated It was almost always used wrongly. Most of the time str_append_data() should have been used instead. str_append_max() has the old functionality. M src/lib/str.h 2018-04-21 16:19:43 +0300 Timo Sirainen (21dfb293b) lib: Add ATTR_DEPRECATED macro M src/lib/compat.h M src/lib/macros.h 2018-04-21 16:17:03 +0300 Timo Sirainen (265ee27f3) global: Replace str_append_n() with str_append_max() M src/config/doveconf.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/lib/failures.c M src/lib/var-expand.c 2018-04-21 16:07:21 +0300 Timo Sirainen (265bdb725) lib-fts: fts-tokenizer-address - Cleanup NUL handling in parent_data The end result is anyway that the token will be truncated at the first NUL. This change just makes the code a bit more understandable on where the truncation will happen. M src/lib-fts/fts-tokenizer-address.c 2018-04-21 15:44:11 +0300 Timo Sirainen (b608e0b18) lib: str_append_[tab]unescaped(): Don't truncate input at NULs For str_append_tabunescaped() the input is supposed to have NULs already escaped though, so it was truncating only with invalid input. M src/lib/strescape.c 2018-04-21 15:24:28 +0300 Timo Sirainen (5b426a25f) global: Replace str_append_n() with str_append_data() wherever possible It shouldn't be possible for input to have NULs in any of these places. This makes the extra NUL-check in str_append_n() unnecessary. M src/auth/auth-cache.c M src/auth/db-dict-cache-key.c M src/auth/db-ldap.c M src/auth/password-scheme-md5crypt.c M src/config/config-parser.c M src/config/doveconf.c M src/lib-dict-backend/dict-ldap.c M src/lib-dict/dict.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis.c M src/lib-fts/fts-tokenizer-address.c M src/lib-http/http-auth.c M src/lib-http/http-header-parser.c M src/lib-http/http-parser.c M src/lib-http/http-url.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-url.c M src/lib-imap/imap-utf7.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-snippet.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-istream-qp-encoder.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-parser.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-smtp/smtp-address.c M src/lib-smtp/smtp-parser.c M src/lib-smtp/smtp-reply-parser.c M src/lib-smtp/smtp-server-reply.c M src/lib-smtp/smtp-syntax.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-tree.c M src/lib/failures.c M src/lib/file-dotlock.c M src/lib/istream.c M src/lib/str-sanitize.c M src/lib/strescape.c M src/lib/test-path-util.c M src/lib/uri-util.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2018-04-21 16:11:48 +0300 Timo Sirainen (68087f1cd) lib: Add str_append_max() It's otherwise the same as str_append_n(), except it takes const char* as input instead of const void*. This, as well as its name, should make it less likely to be used wrong when the input may legitimately have NULs. The unit test is changed from str_append_n() to str_append_max(), because str_append_n() will be deprecated. M src/lib/str.c M src/lib/str.h M src/lib/test-str.c 2018-04-21 16:10:03 +0300 Timo Sirainen (228e04c2d) lib: Improve str_append_n() comment M src/lib/str.h 2018-04-11 14:41:45 +0300 Sergey Kitov (e1e9ff101) lib-mail: Add MESSAGE_HEADER_REPLACE_NULS_WITH_0x80 flag The flag signals that input stream for message_parse_header() should replace 0x0 symbols with 0x80. M src/lib-mail/message-header-parser.c M src/lib-mail/message-header-parser.h 2018-04-21 16:47:16 +0300 Timo Sirainen (ce7821c83) lib-mail: rfc2231_parse() - Replace NULs with 0x80 Instead of truncating the strings at NULs. M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc2231-parser.h M src/lib-mail/test-rfc2231-parser.c 2018-04-21 16:34:05 +0300 Timo Sirainen (102735b46) lib-mail: message_address_parse*() - Replace NULs with 0x80 Instead of truncating the strings at NULs. M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2018-04-21 16:27:21 +0300 Timo Sirainen (87945a069) lib-mail: rfc822-parser: Add nul_replacement_char M src/lib-mail/rfc822-parser.c M src/lib-mail/rfc822-parser.h M src/lib-mail/test-rfc822-parser.c 2018-04-21 13:46:21 +0300 Timo Sirainen (641f00230) lib-mail: rfc822-parser: Strip away folding whitespace from comments M src/lib-mail/rfc822-parser.c M src/lib-mail/test-rfc822-parser.c 2018-04-21 13:28:34 +0300 Timo Sirainen (5ee789654) lib-mail: rfc822-parser: Improve domain-literal parsing Strip away folding whitespace. Treat any extra '[' as an error. M src/lib-mail/rfc822-parser.c M src/lib-mail/test-rfc822-parser.c 2018-04-21 13:05:49 +0300 Timo Sirainen (c98c10e35) lib-mail: rfc822-parser: Don't allow preserving escaped [CR]LF It's not valid to have "\" or "\", so the old behavior isn't really wrong either. However, rfc822_parse_quoted_string() callers are more likely to expect that the output won't contain any [CR]LF so this new behavior is a bit better. M src/lib-mail/rfc822-parser.c M src/lib-mail/test-rfc822-parser.c 2018-04-21 12:47:22 +0300 Timo Sirainen (6cc952b1a) lib-mail: Change rfc822_parse_content_param() API to allow NULs in value This was the only function in rfc822-parser.h that wasn't NUL-safe. This won't fix anything, but it makes the rfc822-parser.h API fully consistent with the NUL handling. Normally rfc2231_parse() should be called instead of calling rfc822_parse_content_param() directly, so this shouldn't break any plugins. M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/rfc822-parser.h M src/lib-mail/test-rfc822-parser.c 2018-04-21 16:05:16 +0300 Timo Sirainen (888cfdcd9) fts-squat: Fix truncating headers at NULs while indexing M src/plugins/fts-squat/fts-backend-squat.c 2018-04-21 16:03:42 +0300 Timo Sirainen (60f04b922) login-common: Consistently truncate client SASL input at first NUL The input is supposed to be base64-encoded, so there's no need to support actual NUL characters. The previous code truncated at NULs, but could have kept appending more data to the value. This could have produced somewhat random results. M src/login-common/client-common-auth.c 2018-04-21 15:58:15 +0300 Timo Sirainen (7ec04b02f) lib-master, util: Consistently truncate tabescaped input at the first NUL The NULs are supposed to come tab-escaped, so there's no need to support actual NUL characters. The previous code truncated at NULs, but could have kept appending more data to the value. This could have produced somewhat random results. M src/lib-master/master-login.c M src/util/script-login.c 2018-04-21 15:53:42 +0300 Timo Sirainen (f97e899f0) config: Consistently truncate value at the first NUL in value input file When value contained " (7d4c537da) dict-fs/memcached-ascii/redis: Consistently truncate value at NULs The dict API currently doesn't support NULs in values, so they have to be truncated. However, previously they were truncated at NULs, but more data may have still been appended to the value. This could have produced somewhat random results. M src/lib-dict-extra/dict-fs.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-redis.c 2018-04-21 15:47:23 +0300 Timo Sirainen (7ca38609f) auth: checkpassword - Fail if input from script contains NULs Previously the input was just silently truncated at NULs. M src/auth/db-checkpassword.c 2018-04-21 15:42:53 +0300 Timo Sirainen (84336f316) doveadm: Fix table printer to not truncate output at NULs M src/doveadm/doveadm-print-table.c 2018-04-21 15:41:44 +0300 Timo Sirainen (6b166eac6) doveadm dump: Don't truncate dovecot.index.cache values at NULs M src/doveadm/doveadm-dump-index.c 2018-04-21 14:56:43 +0300 Timo Sirainen (69bb57299) lib-mail: rfc822-parser: Don't truncate comment/quoted-string/domain-literal at NUL The other tokens couldn't have contained NULs in the first place. M src/lib-mail/rfc822-parser.c 2018-04-21 14:53:25 +0300 Timo Sirainen (3a4767cc5) lib-mail: message_snippet_generate() - Ignore NULs without shrinking snippet size Previously the NULs also weren't in the snippet content, but they were included in the snippet size. M src/lib-mail/message-snippet.c M src/lib-mail/test-message-snippet.c 2018-04-21 14:31:08 +0300 Timo Sirainen (28399e8ab) lib-storage: Fix truncating header values at NUL when adding to cache For example FETCH BODY.PEEK[HEADER.FIELDS (Subject)] could have returned the NUL on the first fetch when the mail wasn't in dovecot.index.cache, but the second FETCH would have returned it truncated at the NUL. M src/lib-storage/index/index-mail-headers.c 2018-05-27 15:42:26 +0300 Timo Sirainen (ebc4904b5) lib: Fix filtering by event name in log_core_filter event->sending_name was already cleared by the time it was checked, so any event:* filters never matched. M src/lib/event-log.c 2018-08-20 18:07:30 -0400 Josef 'Jeff' Sipek (3c094b488) master: Wait 1 second for SIGQUITs to get handled The delay (previously 100ms, now 1s) is intended to delay our exit enough so that the child processes have a chance to receive & handle the SIGQUITs we just sent. If we don't wait long enough, it is possible that we'll get restarted before our children had the chance to stop listening on their sockets and we'll hit "address already in use" type errors. Increasing the delay does not fix the issue, but it masks it better. M src/master/service-monitor.c 2018-05-18 17:04:36 +0300 Timo Sirainen (87ea7c341) *-login: Fix non-global ssl=no configuration For example local 127.0.0.2 { ssl=no } wasn't working. M src/login-common/client-common.c 2018-06-28 11:51:22 +0300 Timo Sirainen (ade6a4888) dict-file: If write failed, file was left locked M src/lib-dict/dict-file.c 2018-06-28 11:50:36 +0300 Timo Sirainen (48b7e308c) dict-file: Fix memory leak when file is recreated during lock wait M src/lib-dict/dict-file.c 2018-06-27 18:28:23 +0300 Timo Sirainen (449826e05) lda: Deinitialize cleanly if user doesn't exist in userdb M src/lda/main.c 2018-06-27 18:24:06 +0300 Timo Sirainen (af55d18cf) lda: Deinitialize cleanly if mail delivery fails M src/lda/main.c 2018-06-27 18:22:01 +0300 Timo Sirainen (505491dd9) lda: Cleanup - move code to lda_deliver() function No functional changes. M src/lda/main.c 2018-06-27 18:17:23 +0300 Timo Sirainen (fd03ef391) lda: Cleanup - reorder code Makes the next commit cleaner. M src/lda/main.c 2018-06-27 13:22:03 +0300 Timo Sirainen (f39064b4e) lib-storage: Fix memory leak in mail_storage_set_internal_error() M src/lib-storage/mail-storage.c 2018-06-19 17:42:55 +0300 Timo Sirainen (c888490ab) lib: Fix memory leak at deinit if log_core_filter is set M src/lib/lib-event.c 2018-06-13 20:09:32 +0300 Timo Sirainen (be4e0a59d) doveadm dump: Fix dumping "vsize" header in dovecot.index It was trying to print it as the "vsize" header in dovecot.list.index. This caused confusing output, as well as potentially accessing memory out of bounds. M src/doveadm/doveadm-dump-index.c 2018-06-13 20:08:08 +0300 Timo Sirainen (79031678f) doveadm log find: Fix memory leak M src/doveadm/doveadm-log.c 2018-06-13 20:07:52 +0300 Timo Sirainen (266e4ec74) doveadm user: Fix memory leak M src/doveadm/doveadm-auth.c 2018-06-13 20:07:28 +0300 Timo Sirainen (843850634) dsync: Fix memory leak - unreference iostreams at deinit Only some of the code paths need unreferencing, so also add a reference to the other code paths. M src/doveadm/doveadm-dsync.c 2018-06-13 20:06:11 +0300 Timo Sirainen (2a43107d3) dsync: ibc - reference iostreams internally This makes it clearer who needs to reference and unreference the streams. M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-ibc-stream.c 2018-06-13 00:58:55 +0300 Timo Sirainen (a6f1fe574) lib-master: Allow calling master_service_deinit() without _init_finish() M src/lib-master/master-service-private.h M src/lib-master/master-service.c 2018-06-12 22:05:52 +0300 Timo Sirainen (733c581f5) lib: restrict-access: Free chroot_dir at deinit M src/lib/lib.c M src/lib/restrict-access.c M src/lib/restrict-access.h 2018-06-12 22:05:35 +0300 Timo Sirainen (d05d508f8) lib: Free global_event_stack array at deinit M src/lib/lib-event.c 2018-06-12 18:01:21 +0300 Timo Sirainen (beb958d4e) virtual: Fix memory leak when selecting mailboxes with '-' or /metadata M src/plugins/virtual/virtual-config.c 2018-06-12 17:23:35 +0300 Timo Sirainen (74c793987) mail-crypt-acl: Fix memory leak when updating ACLs M src/plugins/mail-crypt/mail-crypt-acl-plugin.c 2018-06-12 17:08:04 +0300 Timo Sirainen (9140a1019) lib-dcrypt, mail-crypt: Fix leaking memory when using non-global keys The users' private keys had one reference too much. Because of key cache, most likely the keys were leaked only once at deinit. Changed the i_stream_create_decrypt_callback() API so that it allows the callback to create the key itself without having to store it anywhere. In this case the key was already added to cache, which increased its refcount. So an alternative fix would have been to simply unreferenced the key before returning it. It's a bit ugly though to rely on such caches, since without the cache the code would be buggy. M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/istream-decrypt.h M src/plugins/mail-crypt/fs-crypt-common.c M src/plugins/mail-crypt/mail-crypt-plugin.c 2018-06-12 16:56:51 +0300 Timo Sirainen (e9e2cda1b) mail-crypt: Fix memory leak in "doveadm mailbox cryptokey generate" M src/plugins/mail-crypt/doveadm-mail-crypt.c 2018-06-12 16:49:36 +0300 Timo Sirainen (06ce32610) lib-smtp: server: Fix memory leak when handling BDAT command M src/lib-smtp/smtp-command-parser.c 2018-06-12 16:45:26 +0300 Timo Sirainen (de33a4c9d) imapc: Fix leaking memory when sending imapc commands after authentication failure M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/plugins/quota/quota-imapc.c 2018-08-06 11:34:35 +0300 Aki Tuomi (ba6572fb9) lib: test-strfuncs - Rename test i_strbegins to str_begins Matches the real name M src/lib/test-strfuncs.c 2018-08-06 11:36:41 +0300 Aki Tuomi (186ac8b2b) doveconf: Fix compiler nit Ensure secret_r cannot be NULL unless none was found. M src/config/doveconf.c 2018-08-14 15:25:40 +0300 Aki Tuomi (0b1ee350d) doveconf: Improve secret hiding Hide with more wide filtering. M src/config/doveconf.c 2018-08-14 15:24:56 +0300 Aki Tuomi (b338b75ba) doveconf: Use key_ends_with to compare suffixes Fixes key hiding. Broken in 1518e085 M src/config/doveconf.c 2018-08-01 08:47:34 +0300 Aki Tuomi (b11b13f22) doveconf: Do not skip over secrets when hiding them All candidates for hiding need to be considered, otherwise it might skip over some of them and leave them unhidden. M src/config/doveconf.c 2018-05-30 14:10:41 +0300 Aki Tuomi (fad5aac94) doveconf: Hide URL userpart M src/config/doveconf.c 2018-06-19 14:26:29 +0300 Aki Tuomi (020515c85) doveconf: Add find_next_secret Find start of possible next secret, and return what the found secret was. Makes next commit easier. M src/config/doveconf.c 2018-05-09 10:19:02 +0300 Aki Tuomi (f0a6ae939) config: Fix crash in doveconf -n when hiding sensitive information Broken by fc02343f M src/config/doveconf.c 2018-05-09 10:18:39 +0300 Aki Tuomi (6f56eb2a0) lib: Add str_append_escaped and use it with str_escape M src/lib/strescape.c M src/lib/strescape.h 2018-04-12 16:07:31 +0300 Timo Sirainen (858dac8ca) doveconf: Fix infinite loop when hiding sensitive information For example with "nopassword=y". Broken in fc02343fd81a6fab272ac0366b15fc60ec44a8b6 M src/config/doveconf.c 2018-03-12 09:11:53 +0200 Aki Tuomi (cbe7865b6) config: Hide more sensitive information Hide parts of values where we can see a key that has word key, secret or pass as prefix and is a key-value pair separated by =. M src/config/doveconf.c 2018-03-12 09:11:14 +0200 Aki Tuomi (2d3d46947) config: Move sensitive value hiding to own function Simplifies next change M src/config/doveconf.c 2018-03-10 18:20:32 +0200 Aki Tuomi (eccbd98df) lib: Add str_nescape For partial escaping M src/lib/strescape.c M src/lib/strescape.h M src/lib/test-strescape.c 2018-03-10 17:56:33 +0200 Aki Tuomi (02c1f0e53) lib: Add i_strstr_arr for searching string for multiple needles M src/lib/strfuncs.c M src/lib/strfuncs.h 2018-03-09 17:09:28 +0200 Aki Tuomi (1b87d57c3) man: doveconf - Document -P flag M doc/man/doveconf.1.in 2018-05-28 10:32:21 +0300 Timo Sirainen (c19fcb889) imap: Fix assert-crash when client is disconnected during a long COPY/MOVE Similar fix than 481992bfe2740bdec70fcd7366dea50ed9128966 Fixes: Panic: file cmd-copy.c: line 50 (fetch_and_copy): assertion failed: (o_stream_is_corked(client->output)) M src/imap/cmd-copy.c 2017-12-15 00:44:51 +0200 Phil Carmody (08d35272c) lib/data-stack - in panic scenarios, use the panic memory buffer Signed-off-by: Phil Carmody M src/lib/data-stack.c 2017-12-15 00:35:39 +0200 Phil Carmody (a58d5b080) lib/datastack - remove useless thing It was useless. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2016-07-21 08:32:52 -0600 Timo Sirainen (fea6c3e11) lib-storage: Deduplicate headers in struct mailbox_header_lookup_ctx This might slightly improve performance. M src/lib-storage/mailbox-header.c 2018-07-31 17:40:08 -0600 Michael M Slusarz (bcd48b208) man: Add missing commands to doveadm M doc/man/doveadm.1.in 2018-06-30 10:13:10 -0400 Josef 'Jeff' Sipek (47418f3ab) global: Start relying on event_set_forced_debug(e, FALSE) being a no-op Converted using the following semantic patch: @@ expression event; expression cond; @@ - if (cond) { - event_set_forced_debug(event, ( - TRUE | - cond ) - ); - } + event_set_forced_debug(event, cond); M src/auth/auth-client-connection.c M src/auth/auth-request.c M src/auth/auth.c M src/imap-urlauth/imap-urlauth-client.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-storage/mail-storage-service.c M src/login-common/main.c 2018-06-30 10:08:27 -0400 Josef 'Jeff' Sipek (c5dc248e7) lib: Change event_set_forced_debug(e, FALSE) to be a no-op M src/lib/event-log.c M src/lib/event-log.h 2018-06-30 10:06:04 -0400 Josef 'Jeff' Sipek (ff4ab7caa) lib: Add event_unset_forced_debug() M src/lib/event-log.c M src/lib/event-log.h 2018-06-27 17:16:24 +0300 Timo Sirainen (48e3a1954) lib-storage: Initialize reset_id in index_index_copy_cache Makes valgrind happy with clang's optimizations. M src/lib-storage/index/index-rebuild.c 2018-06-20 10:49:46 +0300 Timo Sirainen (d03413efb) lmtp, submission: Remove extra spaces from "state = X" in disconnect log line Other Dovecot log messages don't have spaces in key=value. M src/lmtp/client.c M src/submission/submission-client.c 2018-06-11 14:22:38 +0300 Aki Tuomi (944e0e801) doveadm-dict: Initialize set variable in cmd_dict_init Makes valgrind happy with clang's optimizations M src/doveadm/doveadm-dict.c 2018-06-11 14:06:20 +0300 Aki Tuomi (1b34e02e1) doveadm-dict: Remove spurious `key =` debug logging Was added in 42db3821 M src/doveadm/doveadm-dict.c 2018-07-31 12:40:28 +0300 Timo Sirainen (ee194004b) lib-dict-backend: Fix linking order for test-dict-sql M src/lib-dict-backend/Makefile.am 2018-05-25 14:44:10 +0300 Timo Sirainen (d82d80113) lib-dict-backend: Fix building --with-cdb --without-shared-libs M src/lib-dict-backend/Makefile.am 2018-05-22 10:24:33 +0300 Timo Sirainen (241cee9c8) log: Fix the default prefix "listen_fd(123): foo" is better than "listen_fd 14foo" M src/log/log-connection.c 2018-05-20 15:56:51 +0300 Timo Sirainen (fcc1bf46f) lib-index: fsck: Fix small log offsets to file's correct header size Use the file's actual current header size, not MAIL_TRANSACTION_LOG_HEADER_MIN_SIZE, which is nowadays smaller. This resulted in unnecessary errors like: Corrupted transaction log file ...: Invalid min_file_offset: ..., min_file_offset (24) < hdr_size (40) M src/lib-index/mail-index-fsck.c 2018-05-20 15:55:03 +0300 Timo Sirainen (79168d056) lib-index: fsck: Don't change log_file_tail_offset=0 M src/lib-index/mail-index-fsck.c 2018-04-22 13:11:16 +0300 Timo Sirainen (d54b20562) imap-hibernate: Log error when connect(imap-master) fails It was previously logged only with info-level. M src/imap-hibernate/imap-client.c 2018-05-21 01:30:36 +0300 Timo Sirainen (a098ab8f9) lib-index: Remove #if'ed out code Originally added by 0b2d4626c6fb4e40bc81c56d8227191f3c7e1ea3. Possibly accidentally. M src/lib-index/mail-index-sync-ext.c 2018-06-28 00:34:14 +0300 Martti Rannanjärvi (9fbab16a9) indexer: Don't log error when getting path to nonexistent mailbox fails M src/indexer/master-connection.c 2018-06-28 00:05:26 +0300 Martti Rannanjärvi (cf471fd4d) indexer: Don't log mailbox was deleted under us error M src/indexer/master-connection.c 2018-06-27 23:58:11 +0300 Martti Rannanjärvi (43d1451ed) indexer: Don't log error when mailbox was not found M src/indexer/master-connection.c 2018-06-27 17:19:38 +0300 Martti Rannanjärvi (cc92bce8d) fts-solr: Properly URL encode quotes for empty string Invalid URL encoding of empty string made Solr server give 400 Bad Request HTTP responses for searches like SEARCH HEADER FROM "". M src/plugins/fts-solr/fts-backend-solr.c 2018-06-27 17:27:15 +0300 Martti Rannanjärvi (280c8a52b) fts-solr: Fix default_ns parameter parsing This version makes it possible to specify a value to the setting as well. M src/plugins/fts-solr/fts-solr-plugin.c 2018-06-26 12:38:50 +0300 Martti Rannanjärvi (ec4592e61) fts-solr: Append '/' to URL path when missing in configuration This fixes a crash when url parameter has empty path like http://localhost:8080 instead of http://localhost:8080/ and makes using url like http://localhost:8080/solr behave the same as http://localhost:8080/solr/ M src/plugins/fts-solr/solr-connection.c 2018-07-31 08:45:29 +0300 Aki Tuomi (f88610824) lib-master: Copy ssl_curve_list setting Otherwise it won't get used. Broken in 30dca95419 M src/lib-master/master-service-ssl-settings.c 2018-07-31 12:26:35 +0300 Aki Tuomi (b9cf3d7cc) lib-ssl-iostream: Remove unused DH members These are not being used anywhere. M src/lib-ssl-iostream/iostream-openssl.h 2018-07-30 20:26:19 +0300 Aki Tuomi (a43b54fe9) lib-ssl-iostream: Make DH parameters optional Since a lot of connections use elliptic curve Diffie-Hellman these days, make it possible to use dovecot without providing Diffie-Hellman parameters. This reduces setup cost as the parameters do not need to be generated, which can be a time consuming task. M src/lib-master/master-service-ssl-settings.c M src/lib-ssl-iostream/iostream-openssl-context.c 2018-07-09 11:39:59 +0300 Timo Sirainen (920369da7) m4, quota: Support rquota using libtirpc M m4/quota.m4 M src/plugins/quota/Makefile.am 2018-07-09 11:33:23 +0300 Timo Sirainen (75a4b80f7) m4: Enable rquota only if rpc/rpc.h exists It's been removed in glibc 2.26 M m4/quota.m4 2018-06-27 09:10:39 +0300 Aki Tuomi (4b13e3ead) lib-ssl-iostream: Turn on SSL_OP_SINGLE_DH_USE Improves forward secrecy in case a DH cipher is used. M src/lib-ssl-iostream/iostream-openssl-context.c 2018-06-13 17:26:57 +0300 Timo Sirainen (b25ab36ca) lib: Assert-crash if duplicate event categories are tried to be registered M src/lib/lib-event.c 2018-06-21 22:55:50 +0200 Stephan Bosch (31ab72c49) lib-smtp: server: data command: Hold a reference to the connection while handling input. Makes sure connection object remains available while command is handled. Fixes a valgrind error reported for accessing the connection object after it is freed, which happens for the destroy debug message of the command (even when debugging is not enabled). M src/lib-smtp/smtp-server-cmd-data.c 2018-06-21 22:51:26 +0200 Stephan Bosch (eff8c5ebf) lib-smtp: server: data command: Dereference command at single place during input handling. M src/lib-smtp/smtp-server-cmd-data.c 2018-06-26 13:18:20 +0300 Aki Tuomi (5a460b7ee) lib-storage: Turn on debug early if MAIL_STORAGE_SERVICE_FLAG_DEBUG set M src/lib-storage/mail-storage-service.c 2018-06-26 13:22:20 +0300 Aki Tuomi (08b76654d) lib-storage: Use provided flags in mail_storage_service_first_init M src/lib-storage/mail-storage-service.c 2018-06-26 13:18:00 +0300 Aki Tuomi (d87ce31b6) lib-storage: Fix MAIL_STORAGE_SERVICE_FLAG_DEBUG work again M src/lib-storage/mail-storage-service.c 2018-05-23 14:39:44 +0300 Sergey Kitov (d3afdadc8) auth: pass overriden auth_debug setting to auth process M src/auth/auth-request.c 2018-03-20 11:22:43 +0200 Sergey Kitov (b1a34a6d4) lib-storage: Replace "if(mail_debug)" with "if(event_want_debug_log)" M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-storage.c 2018-03-20 11:20:44 +0200 Sergey Kitov (f4922ff56) plugins: replace "if(mail_debug){i_debug}" with "e_debug" M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-storage.c M src/plugins/apparmor/apparmor-plugin.c M src/plugins/charset-alias/charset-alias-plugin.c M src/plugins/expire/expire-plugin.c M src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-storage.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/mail-crypt/mail-crypt-plugin.c M src/plugins/mail-crypt/mail-crypt-userenv.c M src/plugins/mail-filter/mail-filter-plugin.c M src/plugins/notify-status/notify-status-plugin.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/push-notification/push-notification-drivers.c M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/quota-storage.c M src/plugins/replication/replication-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-storage.c M src/plugins/welcome/welcome-plugin.c 2018-03-20 11:05:13 +0200 Sergey Kitov (1fa6289e1) lib-storage: Replace "if(mail_debug){i_debug}" "e_debug" M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c 2018-05-24 15:18:30 +0300 Sergey Kitov (4b2389fa1) lib-storage: Force mail_storage_service_user event debug when mail_debug=yes M src/lib-storage/mail-storage-service.c 2018-03-20 10:51:21 +0200 Sergey Kitov (4bf907ebf) lda & lib-lda: "if(mail_debug){i_debug}" with "e_debug" M src/lda/main.c M src/lib-lda/mail-send.c 2018-03-20 10:49:08 +0200 Sergey Kitov (92b4d9440) indexer: Replace "if(mail_debug){i_debug}" with "e_debug" M src/indexer/master-connection.c 2018-03-20 10:46:19 +0200 Sergey Kitov (79ecdaea8) imap: Replace "if(mail_debug){i_debug}" with "e_debug" M src/imap/cmd-urlfetch.c M src/imap/imap-client-hibernate.c M src/imap/imap-master-client.c M src/imap/imap-state.c 2018-03-20 10:17:27 +0200 Sergey Kitov (aef4bf628) lib-imap-urlauth & imap-urlauth: replace "if(mail_debug){i_debug}" with "e_debug(client->event)" M src/imap-urlauth/imap-urlauth-client.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c 2018-03-20 09:52:38 +0200 Sergey Kitov (9db0b7b12) imap-urlauth: Add event with "imap-urlauth" category to struct client of imap-urlauth M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-client.h 2018-03-20 09:05:26 +0200 Sergey Kitov (b103d44fc) global: Replace check for auth_debug with event_want_debug_log in doveadm-auth::auth_connected() These functions will create event with "auth" category and unref it in the end. M src/doveadm/doveadm-auth.c 2018-03-19 16:10:49 +0200 Sergey Kitov (aa509b955) global: Replace "if(auth_debug){i_debug(...)}" with e_debug(event, ...) event is one of: global auth::auth_event, auth_client_connection->event, auth_request->event, login-common::event_auth. These event have category "auth". M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c M src/auth/auth-request.c M src/auth/auth-token.c M src/auth/userdb-ldap.c M src/login-common/client-common-auth.c 2018-03-19 14:50:31 +0200 Sergey Kitov (c0c8e87ff) global: Remove unnecessary checks for mail_debug and auth_request->debug These checks are performed before calling auth_request_log_debug() and push_notification_driver_debug(), while the same checks are performed inside of these functions, and they return without doing anything. M src/auth/db-oauth2.c M src/auth/userdb-prefetch.c M src/plugins/push-notification/push-notification-driver-ox.c 2018-03-19 13:53:33 +0200 Sergey Kitov (3bbc48ee8) auth: Add event with category "auth" to struct auth_request. M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h 2018-03-19 12:16:23 +0200 Sergey Kitov (b2f113588) auth: Add event with category "auth" to struct auth_client_connection. M src/auth/auth-client-connection.c M src/auth/auth-client-connection.h 2018-03-19 11:44:59 +0200 Sergey Kitov (c903a54fb) login-common: Add global event_auth with "auth" category. M src/login-common/login-common.h M src/login-common/main.c 2018-03-19 11:20:58 +0200 Sergey Kitov (c99dc72e2) lib: Add event_want_debug and event_want_debug_log macros M src/lib/event-log.c M src/lib/event-log.h 2018-03-19 11:14:22 +0200 Sergey Kitov (39f0972a3) auth: Add global auth_event with category "auth". M src/auth/auth-common.h M src/auth/auth.c 2018-05-24 21:43:42 -0600 Michael Slusarz (516d9657a) push-notification: Add SSL support for OX driver M src/plugins/push-notification/Makefile.am M src/plugins/push-notification/push-notification-driver-ox.c 2018-07-31 16:32:48 -0600 Michael M Slusarz (4d4b1f2a8) config: generation of clean config should copy sensitive data Add -P parameter to the CLI warning doveconf example M src/config/old-set-parser.c 2018-05-11 09:19:21 +0300 Phil Carmody (899807f46) lib: bits - macros to simplify expressions when using -Wstrict-bool To be strict-bool compliant, your expressions need to be a bit verbose, these might simplify things. There are presently over 400 instances matching HAS_NO_BITS(), and nearly 1300 instances matching HAS_ANY_BITS(), so it's a very common pattern. Signed-off-by: Phil Carmody M src/lib/bits.h M src/lib/test-bits.c 2018-05-11 10:53:46 -0400 Josef 'Jeff' Sipek (6bda3e3fa) lib-storage: Harden check for imapdir list name Comparing char pointers to determine string equality is asking for trouble. Use strcmp() instead. M src/lib-storage/list/mailbox-list-maildir.c 2018-05-11 10:41:01 -0400 Josef 'Jeff' Sipek (3c6030bfc) auth: Use PRIuUOFF_t to print process VSZ limit This doesn't change the behavior, but it makes it more obviously correct. M src/auth/passdb-cache.c 2018-05-11 10:38:32 -0400 Josef 'Jeff' Sipek (c9bda0efc) auth: Avoid comparison of ints of different signs on FreeBSD For legacy reasons, rlim_t on FreeBSD is defined as int64_t. M src/auth/passdb-cache.c 2018-05-11 10:50:16 -0400 Josef 'Jeff' Sipek (3b117f83f) lib-storage: Return correct root path for PATH_TYPE_ALT_MAILBOX mailbox_list_set_get_root_path(..., MAILBOX_LIST_PATH_TYPE_ALT_MAILBOX, ...) must return one of three values: 1. if there is no alt storage, return NULL 2. if there is alt storage and MAILBOXDIR is set, return ${alt_dir}/${mailbox_dir_name} 3. if there is alt storage but MAILBOXDIR is not set, return ${alt_dir} Case number 3 was broken, and it mistakenly returned ${root_dir} - in other words, it behaved as MAILBOX_LIST_PATH_TYPE_MAILBOX. This correction changes the behavior, but this shouldn't cause incompatibilities since: 1. it affects only storages that support alternate storage 2. it affects only configurations that use empty MAILBOXDIR The only storage that supports alternate storage setting is dbox but dbox defaults to MAILBOXDIR=mailboxes. Additionally, it appears to be impossible to override it to an empty string (setting it to an empty strings causes dbox to override it with the default - "mailboxes"). Therefore, nobody should be affected by this change. M src/lib-storage/mailbox-list.c 2018-04-24 17:22:00 +0300 Timo Sirainen (9113edbed) doveadm stats dump: Add stddev field Include it in default output as well. M src/doveadm/Makefile.am M src/doveadm/doveadm-stats.c 2018-04-24 16:29:49 +0300 Timo Sirainen (c7c7cd410) doveadm stats dump: Add -f parameter This allows specifying which fields are wanted to be dumped. M src/doveadm/doveadm-stats.c 2018-04-24 17:32:21 +0300 Timo Sirainen (023a023d7) stats: Support dumping any given percentile M src/stats/client-reader.c 2018-04-24 09:52:32 +0300 Timo Sirainen (d2ec5072a) stats: Support dumping variance M src/stats/client-reader.c 2018-03-25 19:54:48 +0300 Aki Tuomi (03a166b2c) lib: Add test for rng M src/lib/Makefile.am M src/lib/test-lib.inc A src/lib/test-random.c 2018-03-25 21:04:49 +0300 Aki Tuomi (4bd4daca2) lib: stats-dist - Add accessor for samples M src/lib/stats-dist.c M src/lib/stats-dist.h 2018-03-25 19:59:15 +0300 Aki Tuomi (4720956fe) lib: stats-dist - Add variance M src/lib/stats-dist.c M src/lib/stats-dist.h 2018-03-25 19:49:13 +0300 Aki Tuomi (75c248efb) lib: rand - Fix potential modulo bias M src/lib/rand.c 2018-04-26 21:35:15 +0300 Timo Sirainen (8c6c5abc4) example-config: Add log_debug and log_core_filter M doc/example-config/conf.d/10-logging.conf 2018-04-16 15:00:27 +0300 Timo Sirainen (f82f62442) lib-master: Add improved log filter parsing It now supports parenthesis to perform ANDs within a query. For example: "(ruleA1 ruleA2) ruleB (ruleC1 ruleC2 ruleC3)" has 3 ORed rules. Rules can contain: - event: - source:[:] - field:= can be used multiple times - cat[egory]: can be used multiple times For example: event:http_request_finished (cat:error cat:storage) This matches either the "http_request_finished" named event, or alternatively any error event that belongs to "storage" category. M src/lib-master/master-service-settings.c 2018-04-26 21:29:23 +0300 Timo Sirainen (82ab59cc0) lib: Event filter - Source line number 0 now means "any" M src/lib/event-filter.c 2018-04-26 21:21:40 +0300 Timo Sirainen (ec36bacc3) lib: Event filter - Support wildcards in event names This allows for example log_debug=event:* M src/lib/event-filter.c M src/lib/event-filter.h 2018-05-24 14:55:59 +0300 Martti Rannanjärvi (728fa5d61) lib-master: Move const char *error declaration inside ifdef HAVE_SSL This is so you can compile dovecot without ssl. M src/lib-master/master-service.c 2018-04-11 15:27:42 +0300 Aki Tuomi (1c717024b) lib-master: Add own boolean for SSL module loading want_ssl_settings isn't reliable enough. M src/lib-master/master-service-private.h M src/lib-master/master-service.c 2018-04-10 16:00:38 +0300 Aki Tuomi (946dd1bf6) lib-master: Do not attempt to load SSL module if no SSL support is compiled in Fixes imap-login: Error: imap-login(init): Fatal: Cannot load SSL module: SSL support not compiled in Broken in 754896551f0422cda5d78500b26700eec5343c5b Found by bjornar M src/lib-master/master-service.c 2018-02-27 10:45:26 +0100 Stephan Bosch (3bb4224d1) lib-http: client: Fix request statistics text to properly report send attempts. If the request was first sent in the same ioloop cycle in which the text is generated, the text would claim it was not sent at all yet. With this commit the text now explicitly makes the distinction between request attempts and actual send attempts. The number of attempts is increased at each retry, while the send attempts are increased each time the request is actually being sent to a server. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2018-02-17 14:28:48 -0500 codarrenvelvindron (9a90f5a2a) configure: Add spectre variant 2 mitigations --enable-hardening adds -mfunction-return=thunk and -mindirect-branch=thunk compiler options if supported. M configure.ac A m4/cc_retpoline.m4 2018-02-22 15:55:20 +0200 Timo Sirainen (1333d1d42) imapc: Avoid duplicate FETCH BODY.PEEK[] when mail is already expunged When the first FETCH (e.g. as part of mail_prefetch()) indicated that the mail is already expunged, there's no need to do it again. M src/lib-storage/index/imapc/imapc-mail.c 2018-02-13 09:14:37 +0200 Aki Tuomi (589156cae) lib: Fix usec comparison in timeout_update_next When tv_usec is exactly 1000000, call to kevent() will fail because tv_sec does not get incremented. Found by Adrian Gonzalez M src/lib/ioloop.c 2018-05-21 01:42:27 +0300 Timo Sirainen (978fa8c66) lib: Fix ioloop-poll and ioloop-select to work with io_add_istream() M src/lib/ioloop-poll.c M src/lib/ioloop-select.c 2018-04-16 15:22:41 +0300 Timo Sirainen (da5f06dd9) lib-storage: Add mail_storage.event and use it wherever possible M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/test-mail-storage.c 2018-05-20 21:32:12 +0300 Timo Sirainen (b689d7111) auth: Fix assert-crash if auth client sends 0 as ID This could be triggered by anyone having (local) write access to the auth socket. M src/auth/auth-request-handler.c 2018-07-24 15:00:19 +0300 Timo Sirainen (cebf45d73) lib-imap: Remove content_subtype==NULL checks This can never happen after the previous commit. This also changes the BODYSTRUCTURE output for invalid Content-Types, but since they're invalid anyway it doesn't really matter what the output is. M src/lib-imap/imap-bodystructure.c 2018-07-24 14:55:25 +0300 Timo Sirainen (8ad6de3dc) lib-mail: If message_part_data.content_type is set, make sure content_subtype isn't NULL This fixes a crash in index_mail_find_first_text_mime_part() where snippet generation assumed that content_subtype isn't NULL. M src/lib-mail/message-part-data.c 2018-07-25 13:17:45 +0300 Timo Sirainen (11fb30857) lib-storage: Fix bodystructure parsing crash if header is parsed twice The second parsing will recreate the parser_ctx, discarding the old parsed message_part.data for the header. On the second parsing save_bodystructure_header=FALSE so the message_part.data isn't filled for the header. Later on the bodystructure parsing assumes the data is set, and crashes. This only happened with mail_attachment_detection_options=add-flags-on-save and Sieve script that first accessed a non-cached header and then used the "body" extension. Fixes segfault and also: Panic: file imap-bodystructure.c: line 116 (part_write_body_multipart): assertion failed: (part->data != NULL) M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2018-07-25 13:17:05 +0300 Timo Sirainen (b9dbe12ba) lib-mail: Add asserts to message_part_*() to make sure part->data isn't NULL This makes it easier to debug the crashes than just having a segfault. M src/lib-mail/message-part-data.c 2018-06-20 08:52:52 +0300 Aki Tuomi (d4e4240cb) lib-ssl-iostream: Enable partial writes and moving buffers Dovecot is able to provide same content to SSL_write, and can also take care of consuming written data from the buffer. Fixes SSL_write failed:error:1409F07F:SSL routines:SSL3_WRITE_PENDING:bad write retry M src/lib-ssl-iostream/iostream-openssl-context.c 2018-06-26 22:33:33 +0300 Timo Sirainen (13b36eb23) quota-clone: Fix assert-crash at deinit if quota_clone update fails The timeout isn't removed on failure, so it crashed with: Panic: file quota-clone-plugin.c: line 257 (quota_clone_mail_user_deinit_pre): assertion failed: (quser->to_quota_flush == NULL) M src/plugins/quota-clone/quota-clone-plugin.c 2018-06-19 15:46:41 +0300 Timo Sirainen (ea26c32b7) quota-clone: Send quota clone data to dict asynchronously Based on patch by Michael Slusarz M src/plugins/quota-clone/quota-clone-plugin.c 2018-06-19 15:00:02 +0300 Timo Sirainen (4e5e57d01) quota-clone: Move state tracking to user context This way there's no need to do multiple flushes when e.g. multiple mailboxes change. The flush had to be removed from close(), because the code path recurses: * mailbox_transaction_commit() when mail is saved * quota_count() starts counting the quota, which opens and closes mailbox * quota_clone_mailbox_close() attempts to flush quota, which again recurses into quota_count(), which returns 0 for the quota value. Based on patch by Michael Slusarz M src/plugins/quota-clone/quota-clone-plugin.c 2018-06-19 14:12:45 +0300 Timo Sirainen (311728518) quota: Add quota_root_iter_init_user() M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2018-05-28 12:57:03 +0300 Aki Tuomi (924fca6a4) quota-clone: Fix CONTEXT_REQUIRE use Fixes Panic: Module context quota_clone_user_module missing Broken in 7f7e7c16d956de8e92376a0633ca6e4cb85e8d84 M src/plugins/quota-clone/quota-clone-plugin.c 2018-06-25 13:13:43 +0300 Aki Tuomi (0d8506363) virtual: Clamp backend uids to available uids in virtual_get_virtual_uids M src/plugins/virtual/virtual-storage.c 2018-05-24 12:48:58 +0000 Aki Tuomi (237217ef1) acl: Fix return value of acl_attribute_get_acl If matching acl entry is not found, it must return 0 and not 1 because it did not find anything. Fixes dsync: Panic: file mailbox-attribute.c: line 362 (mailbox_attribute_get_stream): assertion failed: (value_r->value != NULL || value_r->value_stream != NULL) Broken in 37c72fa0cd3f1d74d79b64afb3fb6da5ffd4fe3a Found by @dl8bh M src/plugins/acl/acl-attributes.c 2018-05-30 00:38:45 +0300 Timo Sirainen (ed1e20155) man: doveadm-search-query.7 - Add sequence-set and update UID M doc/man/doveadm-search-query.7 2018-04-16 10:38:21 -0600 Michael Slusarz (f1c9aab97) last-login: Remove superfluous semicolon M src/plugins/last-login/last-login-plugin.c 2018-04-16 10:37:32 -0600 Michael Slusarz (32ceb4a7b) last-login: Username is already output as part of log prefix M src/plugins/last-login/last-login-plugin.c 2018-05-20 18:20:47 +0300 Timo Sirainen (170bd2673) director: Make sure host's last_updown_change never shrinks. Otherwise the ring might get into a loop where two HOST updates keep fighting each others. This could probably happen if one update comes at "desynced" state and other one in non-desynced state. I'm not entirely sure if this is fixing such a loop or not, but it at least shouldn't hurt. M src/director/director-connection.c 2018-06-25 14:04:31 +0300 Aki Tuomi (c65501c62) lib: event-filter - Increase initial allocation Reduces reallocations on startup. M src/lib/event-filter.c 2018-06-26 13:45:54 +0300 Timo Sirainen (9bcbd7c55) lib-http: Add/fix default value comments in http_client_settings M src/lib-http/http-client.h 2018-03-20 18:14:39 +0100 Stephan Bosch (3611b0413) lib-http: server: Properly handle corrupt payload while finishing a request. The HTTP_REQUEST_PARSE_ERROR_BROKEN_REQUEST was not handled, causing an assertion panic. This situation occurred when the chunked transfer encoding was invalid. M src/lib-http/http-server-connection.c 2018-03-20 18:10:42 +0100 Stephan Bosch (5f54a3ae0) lib-http: server: Properly handle payload stream errors while finishing a request. Errors from the (chunked) payload stream would cause assertion panics at that point. M src/lib-http/http-server-connection.c 2018-03-20 18:04:36 +0100 Stephan Bosch (7644d4ef6) lib-http: server: Allow resubmitting a response, as long as it is not sent yet. M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c 2018-05-23 15:14:50 +0300 Timo Sirainen (7e5171207) lib-master: If stats process wants no events, send nothing to it Instead of sending everything to it.. M src/lib-master/stats-client.c 2018-06-08 23:17:04 +0300 Timo Sirainen (5e6b52393) lib: istream-try - Don't assert-crash with empty parent istream Fixes: Panic: file istream.c: line 327 (i_stream_read_memarea): assertion failed: (stream->eof) M src/lib/istream-try.c M src/lib/test-istream-try.c 2018-05-29 10:29:50 +0300 Hannu Ylitalo (beebf64fe) dovecot.service: Update LimitNOFILE=65535 Current value of 8192 is too low for most production setups and it needs to be changed every time something is deployed. Setting the default to 65535 is enough for most production environments so this would be one task less when deploying a production platform. M dovecot.service.in 2018-04-23 15:05:06 +0300 Timo Sirainen (ba1c32cdd) doveadm save: Fix using (b547590da) dsync: Set brain->failed to TRUE when UIDVALIDITY changes This happens if UIDVALIDITY changes during stateful sync. Fixes Panic: doveadm: file dsync-brain-mailbox.c: line 377 (dsync_brain_sync_mailbox_deinit): assertion failed: (brain->failed) M src/doveadm/dsync/dsync-brain-mailbox.c 2018-07-02 11:52:14 +0100 Paul Howarth (64f446438) lib-compression: Fix assert-crash in test suite on 32bit systems Fix compilation warnings in test-compression.c due to mismatches between size_t and uoff_t, which then manifests in assert-crashes running the test suite on 32bit systems. M src/lib-compression/test-compression.c 2018-07-06 11:25:07 +0300 Timo Sirainen (81e5ec150) lib-ssl-iostream: Shutdown connection cleanly whenever i/ostream is destroyed Do this while both istream and ostream still exist. Fixes crash where openssl_iostream_destroy() attempts to flush the shutdown, but ssl_input is NULL and it crashes. M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c 2018-07-06 11:24:41 +0300 Timo Sirainen (9dba039be) lib-ssl-iostream: Split code to openssl_iostream_shutdown() M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h 2018-06-12 16:07:25 +0300 Timo Sirainen (4436b0fc0) lib-storage: Fix memory leak when mail_storage_service_next() is called multiple times dsync uses it twice for the same mail_storage_service_user. M src/lib-storage/mail-storage-service.c 2018-06-18 13:15:55 +0300 Timo Sirainen (68ba703ac) lib-imap-client: Fix crash when ostream output blocks before connection finishes It's possible that ostream tries to add IO_WRITE callback before imapc_connection_connected() callback is called. Fixes: Panic: io_add(0x2) called twice fd=15, callback=0x... -> 0x... M src/lib-imap-client/imapc-connection.c 2018-06-18 19:13:30 +0300 Timo Sirainen (bb336da16) imapc: Don't trust mail stream to have correct CRLFs It's not that expensive to just recalculate them. If they're not correct in the stream, it can result in e.g. truncated emails due to wrong virtual_size being used in body_size calculation. The wrong CRLFs can especially happen if plugins modify the stream in istream_opened() hook. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2018-06-16 19:58:57 +0300 Timo Sirainen (a4a1c8424) lib-imap-client: Remove assert from imapc_client_mailbox_reconnect It's possible for the assert to trigger if there are multiple reconnections. imapc_connection_can_reconnect() checks a bit later whether the reconnection can still be done. M src/lib-imap-client/imapc-client.c 2018-06-16 19:40:34 +0300 Timo Sirainen (6a20890a4) imapc: Fix assert-crash if syncing adds delayed expunges, but fails afterwards Fixes: 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)) M src/lib-storage/index/imapc/imapc-sync.c 2018-06-16 19:37:27 +0300 Timo Sirainen (b352767f8) imapc: Fix potential assert-crash when reconnecting during syncing Fixes: 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)) M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c 2018-06-16 15:56:26 +0300 Timo Sirainen (56b939c19) imapc: Fix assert-crash when reconnecting during initial FETCH finds expunges The initial FETCH is automatically retried on failure, but the FETCH state wasn't reset during the reconnection. Fixes: 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)) M src/lib-storage/index/imapc/imapc-storage.c 2018-06-16 15:09:53 +0300 Timo Sirainen (7a52620e0) imapc: Fix assert-crash when reconnecting expunges newly added messages The initial FETCH 1:* during reconnection may notice some messages that are missing and tries to expunge them. But those messages could still be in delayed_sync_trans, and currently lib-index doesn't support expunging anything but the latest mail from a transaction. Fixes: Panic: file mail-index-transaction-update.c: line 337 (mail_index_expunge_last_append): assertion failed: (seq == t->last_new_seq) M src/lib-storage/index/imapc/imapc-mailbox.c 2018-06-16 15:08:26 +0300 Timo Sirainen (7c58144cb) imapc: Move expunging from index to imapc_mailbox_index_expunge() M src/lib-storage/index/imapc/imapc-mailbox.c 2018-06-04 19:16:04 +0300 Timo Sirainen (42625103e) lib-storage: Set index_mail_data.body_size if it can be calculated easily Probably doesn't help with anything currently, but makes the code more consistent in how it works. M src/lib-storage/index/index-mail.c 2018-05-31 16:52:54 +0300 Timo Sirainen (440645ada) imapc: Don't use RFC822.SIZE values for message body size calculation If the RFC822.SIZE doesn't match the exact stream size, the body size calculation will become wrong. The only downside to this patch is that now the body size will need to be calculated by parsing the stream, but there shouldn't be any need to do that unless the body was already FETCHed, so it shouldn't cause any extra IMAP traffic. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2018-06-04 19:03:20 +0300 Timo Sirainen (69b714836) lib-storage: Move code to index_mail_try_set_body_size() This also adds a check to make sure virtual_size is set. With the current caller it was already guaranteed to be set. M src/lib-storage/index/index-mail.c 2018-05-31 16:49:34 +0300 Timo Sirainen (764e86b8b) lib-storage: Don't set virtual_size from index record if it's already set The existing virtual_size may be a correct one, while the one in the index may be wrong. This will be an especially important fix with the next commit, because it would make the existing inexact_total_sizes=FALSE wrong. M src/lib-storage/index/index-mail.c 2018-06-04 19:37:15 +0300 Timo Sirainen (6dc1296d0) lib-storage: Don't enforce creation of vsize header. It's useful for caching quota=count and for STATUS (X-SIZE). If neither is used the header shouldn't be created and kept up-to-date. If the header is enabled, it also triggers creation of per-email vsize records. M src/lib-storage/index/index-mailbox-size.c 2018-06-19 12:33:49 +0300 Timo Sirainen (6eb02203a) imapc: Fix handling UIDVALIDITY changes Index was being correctly reset, but the transaction was rolled back. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2018-06-19 12:31:43 +0300 Timo Sirainen (ada9a6b35) lib-index: Make sure error is set on sync & commit failures This avoids "BUG: Unknown internal index error" after view is marked inconsistent or after index is deleted. M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction.c 2018-06-18 17:03:01 +0300 Timo Sirainen (9fdfc0359) lib: When log writing keeps returning EAGAIN, change process title only once Otherwise each call will use up data stack memory. M src/lib/failures.c 2018-06-18 16:19:55 +0300 Timo Sirainen (98d021781) lib: If log write returns EAGAIN, use poll() instead of ioloop for waiting As explained in 861d40b9aebabccae7d48e49a18cbc631ab1fefe commit message, ioloop can call various callbacks and it can also recurse back to error logging. Using poll() directly is safer. M src/lib/failures.c 2018-06-18 16:07:30 +0300 Timo Sirainen (c39d796ba) lib: Revert earlier "log write is blocking" handling change 1) It was buggy, because it set O_NONBLOCK rather than removing it. 2) fd flags are shared across all the processes using the fd. We can't reliably implement the process title update, because some processes are blocking on the log write() before they change the process title. Reverts 861d40b9aebabccae7d48e49a18cbc631ab1fefe M src/lib/failures.c 2018-05-03 15:22:09 +0300 Timo Sirainen (cb1b482a4) fs-posix: mkdir missing directory if it's changed by FS_METADATA_WRITE_FNAME The temp file is created to the initial directory. If the directory is changed by FS_METADATA_WRITE_FNAME, the new destination directory didn't necessarily exist. If the link() or rename() fails with ENOENT, try to mkdir the missing directories. M src/lib-fs/fs-posix.c 2018-02-25 19:13:18 +0100 Stephan Bosch (3a8cf378c) lib: iostream-pump: Make iostream_pump_unref() implementation match other similar code. This also means that iostream_pump_unref(NULL) is now a no-op. M src/lib/iostream-pump.c M src/lib/iostream-pump.h 2018-05-25 11:07:38 -0400 Josef 'Jeff' Sipek (0f972d2b1) lib-fs: fs_unlock(NULL) should be a no-op M src/lib-fs/fs-api.c 2018-05-25 11:03:25 -0400 Josef 'Jeff' Sipek (60627f9f1) global: start relying on fs_iter_deinit(NULL) being a no-op M src/lib-dict-extra/dict-fs.c 2018-05-25 11:02:56 -0400 Josef 'Jeff' Sipek (5f12eca8d) lib-fs: fs_iter_deinit(NULL) should be a no-op M src/lib-fs/fs-api.c 2018-05-25 10:53:54 -0400 Josef 'Jeff' Sipek (8e68c0cac) global: start relying on fs_deinit(NULL) and fs_unref(NULL) being no-ops Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - fs_unref(&E); - } + fs_unref(&E); @@ expression E; @@ - if (E != NULL) { - fs_deinit(&E); - } + fs_deinit(&E); M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/plugins/fs-compress/fs-compress.c M src/plugins/mail-crypt/fs-crypt-common.c 2018-05-25 10:48:29 -0400 Josef 'Jeff' Sipek (f72bc8eb7) lib-fs: fs_unref(NULL) should be a no-op M src/lib-fs/fs-api.c 2018-05-25 10:38:36 -0400 Josef 'Jeff' Sipek (018d23e16) global: start relying on fs_file_close(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - fs_file_close(E); - } + fs_file_close(E); M src/lib-fs/fs-metawrap.c M src/plugins/fs-compress/fs-compress.c M src/plugins/mail-crypt/fs-crypt-common.c 2018-05-25 10:35:35 -0400 Josef 'Jeff' Sipek (6394956f7) lib-fs: fs_file_close(NULL) should be a no-op M src/lib-fs/fs-api.c 2018-05-25 10:31:27 -0400 Josef 'Jeff' Sipek (873ec0391) global: start relying on fs_file_deinit(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - fs_file_deinit(&E); - } + fs_file_deinit(&E); M src/doveadm/doveadm-fs.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-sis-queue.c M src/plugins/fs-compress/fs-compress.c M src/plugins/mail-crypt/fs-crypt-common.c 2018-05-25 10:18:34 -0400 Josef 'Jeff' Sipek (a9ec4cdac) lib-fs: fs_file_deinit(NULL) should be a no-op M src/lib-fs/fs-api.c 2018-01-31 19:48:49 +0200 Aki Tuomi (1e2e986e4) lib-imap: imap_match_deinit(NULL) should be a no-op M src/lib-imap/imap-match.c 2018-05-25 19:13:30 -0400 Josef 'Jeff' Sipek (8201a540b) global: start relying on http_client_request_abort(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - http_client_request_abort(&E); - } + http_client_request_abort(&E); M src/auth/auth-policy.c M src/lib-http/http-client-connection.c M src/lib-oauth2/oauth2.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts/fts-parser-tika.c 2018-05-25 19:11:35 -0400 Josef 'Jeff' Sipek (6332c5972) lib-http: http_client_request_abort(NULL) should be a no-op M src/lib-http/http-client-request.c 2018-06-07 14:20:33 +0300 Timo Sirainen (3468508c8) imap: Finish client ostream at disconnect With IMAP COMPRESS this sends the EOF marker, indicating cleanly closed connection. M src/imap/imap-client.c 2018-03-04 20:09:21 +0200 Aki Tuomi (7d90b8f27) lib-lua: Remove script from linked list on destroy Otherwise it might cause a crash M src/lib-lua/dlua-script.c 2018-04-17 12:20:26 +0300 Aki Tuomi (ff5fb6e3d) lib-ssl-iostream: Fix boolean misuse in SSL_CTX_set_ecdh_auto usage f8aaa6e63a56085f61f128838ad7a3aa080d9d5b introduced warnings on gcc M src/lib-ssl-iostream/iostream-openssl-context.c 2018-06-12 15:31:35 +0300 Timo Sirainen (84f32ea22) global: Fix str_begins() usage I messed up their cherry-pick merging. M src/lib-fs/fs-posix.c M src/lib-program-client/program-client.c 2018-03-07 18:56:00 +0100 Stephan Bosch (39805c39b) lda: Fix error message for invalid -r parameter to mention `-r' rather than `-a'. M src/lda/main.c 2018-03-07 18:54:38 +0100 Stephan Bosch (7838684b5) lda: Add -r parameter to usage help message. M src/lda/main.c 2018-05-03 18:33:25 +0300 Timo Sirainen (907f0bdd1) fts: When indexing virtual mailbox, index each real mailbox entirely Index all the unindexed messages in them at once, instead of jumping between real mailboxes and indexing them in small pieces. M src/plugins/fts/fts-storage.c 2018-05-03 18:33:00 +0300 Timo Sirainen (99d2ff981) fts: Indexing virtual mailbox didn't always index the last mails M src/plugins/fts/fts-storage.c 2018-05-03 18:30:51 +0300 Timo Sirainen (b4956dbc1) fts: Make sure indexing virtual mailbox doesn't recurse and index mail multiple times M src/plugins/fts/fts-storage.c 2018-06-08 19:56:01 +0300 Timo Sirainen (f769a22d4) doveadm: Fix compiler warning M src/doveadm/client-connection-tcp.c 2018-05-17 18:35:04 +0300 Timo Sirainen (0db446f13) lib-master: postlogin: Don't unreference already closed login-connection If the login-connection was already closed, this caused too many unreferences. Fixes: Panic: file master-login.c: line 544 (master_login_conn_unref): assertion failed: (conn->clients == NULL) M src/lib-master/master-login.c 2018-05-04 15:27:14 +0300 Timo Sirainen (4c7f044d8) auth: Improve auth-master connections' error logging Include connect and handshake times in the error message. M src/auth/auth-master-connection.c M src/auth/auth-master-connection.h M src/auth/auth-request-handler.c 2018-05-04 14:14:35 +0300 Timo Sirainen (e8cddebde) lib-master: Add auth connect & handshake times to master_login_auth_request errors M src/lib-master/master-login-auth.c 2018-05-04 14:10:49 +0300 Timo Sirainen (9d00608a6) lib-master: Add request time also for internal failure error messages M src/lib-master/master-login-auth.c 2018-05-04 14:03:46 +0300 Timo Sirainen (207dcaf69) lib-master: Use more exact timestamp in master_login_auth_request failures M src/lib-master/master-login-auth.c 2018-05-04 13:56:45 +0300 Timo Sirainen (5da2d47ca) lib-master: Improve error logging for master_auth_connection failures M src/lib-master/master-auth.c 2018-05-04 13:42:23 +0300 Timo Sirainen (e2250ad44) lib-master: Improve error logging for post-login script failures M src/lib-master/master-login.c M src/lib-master/master-login.h 2018-05-04 13:23:07 +0300 Timo Sirainen (082f6f244) lib-master: Improve error logging when master_login_connection gets disconnected M src/lib-master/master-login.c M src/lib-master/master-login.h 2018-05-04 13:07:50 +0300 Timo Sirainen (54c421010) lib-master: Keep linked list of master_login_clients per connection This allows improving logging on connection errors. M src/lib-master/master-login.c M src/lib-master/master-login.h 2018-04-13 16:14:18 +0300 Timo Sirainen (f37d91677) lib-master: If connect() to backend UNIX socket is retried, log a warning For example if imap-login process needs to retry before it successfully connects to imap process's socket, a warning is logged. This warning is important because it means that the imap-login process may have been sleeping up to 0.5 seconds and causing all the other connections to hang during it. It would be better to make this retrying asynchronous, but before spending time on doing that, lets see if this warning is ever even being logged. M src/lib-master/master-auth.c 2018-04-13 16:12:27 +0300 Timo Sirainen (7cf910e89) lib-master: Add how long request took for "Internal auth failure" errors M src/lib-master/master-login-auth.c 2018-01-11 15:35:42 +0200 Phil Carmody (1367401f9) global - migrate more complicated strncmp expressions to str_begins Simplify a bunch of verbose var=strlen(); strncmp(,,var) calls. Fortunately, all of these examples use the length variable, so no "unused value" warnings occur. --- 8< --- strncmp2.cocci --- @@ expression e1, e2; identifier i2; @@ i2 = strlen(e2) ... - strncmp(e1, e2, i2) == 0 + str_begins(e1, e2) @@ expression e1, e2; identifier i2; @@ i2 = strlen(e2) ... - strncmp(e1, e2, i2) != 0 + !str_begins(e1, e2) @@ expression e1, e2; identifier i1; @@ i1 = strlen(e1) ... - strncmp(e1, e2, i1) == 0 + str_begins(e2, e1) @@ expression e1, e2; identifier i1; @@ i1 = strlen(e1) ... - strncmp(e1, e2, i1) != 0 + !str_begins(e2, e1) --- 8< --------------------- Signed-off-by: Phil Carmody M src/auth/auth-cache.c M src/config/old-set-parser.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-mail.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/imap/cmd-notify.c M src/imap/cmd-rename.c M src/imap/imap-notify.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-search-mime.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/mailbox-list.c 2018-01-11 15:20:09 +0200 Phil Carmody (d026e2d2e) global - migrate from strncmp to str_begins Simplify a bunch of verbose strncmp(,,strlen()) calls. --- 8< --- strncmp.cocci --- @@ expression e1, e2; @@ - strncmp(e1, e2, strlen(e2)) == 0 + str_begins(e1, e2) @@ expression e1, e2; @@ - strncmp(e1, e2, strlen(e2)) != 0 + !str_begins(e1, e2) @@ expression e1, e2; @@ - strncmp(e1, e2, strlen(e1)) == 0 + str_begins(e2, e1) @@ expression e1, e2; @@ - strncmp(e1, e2, strlen(e1)) != 0 + !str_begins(e2, e1) --- 8< --------------------- Signed-off-by: Phil Carmody M src/doveadm/doveadm-dict.c M src/imap-hibernate/imap-client.c M src/imap-login/imap-proxy.c M src/lib-dict-backend/dict-cdb.c M src/lib-dict-extra/dict-fs.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dict/dict.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-imap-storage/imap-metadata.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/index-search-mime.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-attribute.h M src/lib-storage/mailbox-list.c M src/lib/mempool-alloconly.c M src/lib/test-strfuncs.c M src/master/main.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-attributes.c M src/plugins/imap-acl/imap-acl-plugin.c 2018-01-11 15:03:36 +0200 Phil Carmody (9be765076) global - migrate strncmp literals to str_begins Simplify a bunch of strncmp(,,number) calls. git ls-files \*.[ch] | xargs perl -p -i -e 's/strncmp\((.*?), ?(\".*?\"), ?(\d+)\) == 0/str_begins($1, $2)/g' git ls-files \*.[ch] | xargs perl -p -i -e 's/strncmp\((.*?), ?(\".*?\"), ?(\d+)\) != 0/!str_begins($1, $2)/g' I ran a longer script to verify that all of the string literals and the length matched. They didn't: $ git grep strncmp | perl -ne 'print if(m/strncmp\([^,]*,\s*"(.*?)",\s*(\d+)/ and ($s=$1,$t=$2,$s=~s/\\[tn]/#/g,length($s)) != $t)' src/auth/db-oauth2.c: if (strncmp(field, "oauth2:", 8) == 0 && With the new functions, that kind of typo is impossible. Signed-off-by: Phil Carmody M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c M src/auth/auth-request.c M src/auth/auth-worker-server.c M src/auth/db-ldap.c M src/auth/db-oauth2.c M src/auth/main.c M src/auth/mech-oauth2.c M src/auth/mech-otp.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-checkpassword.c M src/auth/passdb-lua.c M src/auth/passdb-pam.c M src/auth/passdb-vpopmail.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-lua.c M src/auth/userdb-passwd-file.c M src/auth/userdb-vpopmail.c M src/config/config-connection.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/director/login-connection.c M src/dns/dns-client.c M src/doveadm/client-connection-tcp.c M src/doveadm/doveadm-auth-server.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-oldstats.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-zlib.c M src/doveadm/server-connection.c M src/imap-hibernate/imap-client.c M src/imap-login/imap-proxy.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-notify.c M src/imap/imap-fetch-body.c M src/imap/imap-sync.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dict-backend/dict-sql-settings.c M src/lib-dict/dict-client.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-posix.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap/imap-base-subject.c M src/lib-index/mail-index.c M src/lib-mail/test-message-header-encode.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service.c M src/lib-program-client/program-client.c M src/lib-settings/settings-parser.c M src/lib-smtp/test-smtp-client-errors.c M src/lib-sql/driver-pgsql.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/lib-storage/test-mail-storage.c M src/lib/iostream-rawlog.c M src/lib/module-dir.c M src/lib/test-str-sanitize.c M src/lib/unlink-directory.c M src/log/log-connection.c M src/login-common/client-common-auth.c M src/login-common/sasl-server.c M src/master/main.c M src/old-stats/client-export.c M src/old-stats/mail-session.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/fs-compress/fs-compress.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-indexer.c M src/plugins/old-stats/mail-stats-fill.c M src/plugins/quota/quota-status.c M src/plugins/quota/quota-util.c M src/plugins/quota/quota.c M src/pop3-login/pop3-proxy.c M src/util/script.c 2017-02-02 14:27:58 +0200 Phil Carmody (ad6c57faf) lib: strfuncs - string match length and prefix checking helpers strncmp(input, "literal", 7) is an idiom used everywhere, but leaves room for human error in calculating the length. strncmp(input, "literal", strlen("literal")) is an idiom also used everywhere, but is both verbose and might be inefficient on some legacy or ultralightweight compilers. The old techniques are presumed to be optimal code-wise, but are verbose (and, containing redundancy, they leave room for human error), so make the macro fall back onto this operation, simply avoiding the redundancy/verbosity. The macro expansion does not multiply evaluate any of its parameters, so should be safe even in the strangest of situations. Signed-off-by: Phil Carmody M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2018-06-05 20:28:45 +0300 Timo Sirainen (d7b27d1c7) doveadm: Simplify destroying ioloop using o_stream_switch_ioloop_to() M src/doveadm/client-connection-http.c M src/doveadm/client-connection-tcp.c 2018-06-05 20:23:52 +0300 Timo Sirainen (9db5a1d01) doveadm-server: Fix hang when sending a lot of output to clients Nowadays ostream adds its io to the stream's specified ioloop, not to current ioloop. M src/doveadm/client-connection-tcp.c 2018-04-06 17:57:30 +0200 Fabian Freyer (fefa9c470) lib-storage: reintroduce mail_index_set_fsync_mode This patch fixes a regression introduced in 638600575ee95f2513c683ef09cb188f76eacd22 where mail_fsync=always would not be honoured, leading to fatal "nfs flush requires mail_fsync=always" errors. M src/lib-storage/index/index-storage.c 2018-04-29 12:17:45 +0300 Timo Sirainen (21aa3158b) lib: event_add_str() - Ignore calls when value is NULL Alternative could be to assert-crash instead. But perhaps this makes it easier to use and avoids unnecessary assert-crashes? M src/lib/lib-event.c 2018-05-18 15:56:15 +0200 Stephan Bosch (ca66aa9ed) lib-http: client: Drop the ioloop switch callback before freeing the global client context. This removes the possibility of recursion when the client context object somehow triggers an ioloop switch (e.g., when debug logging starts blocking at that inopportune moment). M src/lib-http/http-client.c 2018-05-18 12:47:02 +0300 Timo Sirainen (a6ab92792) lib: Fix potential crashes when writing to log fails with EAGAIN The ioloop may nowadays call ioloop context switch callbacks. Since log writing can happen just about anywhere, the callbacks may be confused and cause crashes or other weird behavior. Even if the callbacks aren't called, all the extra code in ioloop can cause potential problems. Especially any error logging in it wouldn't work properly since it would just recurse back. So replace the ioloop code with just setting the log fd to be blocking until the write succeeds. This commit also removes comments about writes to a blocking terminal fd causing EAGAINs. This seems unlikely. Probably I was just somehow confused when originally seeing it and writing the code. If it actually does happen now, it's still not breaking anything, but it could get into a busy-loop of write()s constantly returning EAGAIN until they succeed. M src/lib/failures.c 2018-03-12 13:58:02 +0200 Timo Sirainen (19985774b) lib-ssl-iostream: Fix potential crash if istream is destroyed before ostream This happened if o_stream_destroy() triggered flush, which attempted to read from the ssl_io->ssl_input. If the istream-ssl was already destroyed, it was NULL and that caused a crash. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c 2018-04-24 11:46:21 +0300 Aki Tuomi (45bda1946) systemd: Indicate where changes should be made M dovecot.service.in 2018-04-24 11:45:36 +0300 Aki Tuomi (4a87bf15b) systemd: Increase file descriptors by default M dovecot.service.in 2018-04-24 11:45:07 +0300 Aki Tuomi (5eae0e4df) systemd: Allow writing to home by default M dovecot.service.in 2018-04-24 11:44:33 +0300 Aki Tuomi (8f0265f98) systemd: Remove NoNewPrivileges and CAP_BOUNDING_SET These break sieve by preventing SUID binary as sendmail_path. M dovecot.service.in 2018-06-05 13:57:26 +0300 Timo Sirainen (6472b5cc0) lib-compression: Use i_stream_nonseekable_try_seek() instead of reimplementing it M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-compression/test-compression.c 2018-06-05 13:53:51 +0300 Timo Sirainen (70aaf84c3) lib-compression: Use i_stream_default_stat() instead of reimplementing it M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-compression/test-compression.c 2018-06-05 14:22:08 +0300 Timo Sirainen (7866c3ecf) lib-compression: deflate ostream - Use Z_FINISH on final flush Nowadays we have o_stream_finish(), so we can differentiate between intermediate flush and final flush. Using this allows istream-zlib to cleanly see that the stream ends. M src/lib-compression/ostream-zlib.c M src/lib-compression/test-compression.c 2018-06-05 13:34:47 +0300 Timo Sirainen (bd7afb3d1) lib: i_stream_default_stat() - Get seekable streams' sizes by reading the stream After the stream size is found, seek back to original offset. M src/lib/istream-private.h M src/lib/istream.c 2018-06-05 13:34:02 +0300 Timo Sirainen (3e626387c) lib-dcrypt: istream-decrypt - Add support for seeking M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/test-stream.c 2018-06-05 13:25:30 +0300 Timo Sirainen (86536a2f7) lib: Add i_stream_nonseekable_try_seek() This can be used by istreams to more easily implement seeking backwards when it has to be done by first seeking back to offset 0 and reading from there. M src/lib/istream-private.h M src/lib/istream.c 2018-05-29 11:53:15 +0300 Aki Tuomi (8e9693f17) pop3c: Ensure pop3c index directory is autocreated Otherwise we might think that the box has been unexpectedly autodeleted and pop3_migration will fail. Broken by 91ee70ed04d33fecd7fc94621f236013d520d7b3 M src/lib-storage/index/pop3c/pop3c-storage.c 2018-05-21 19:38:29 +0300 Aki Tuomi (755a4fe7c) lib-storage: maildir - Remove unnecessary variable M src/lib-storage/index/maildir/maildir-save.c 2018-05-21 14:31:58 +0300 Aki Tuomi (c1dc49287) lib-storage: maildir - Use index keywords only when saving mail This fixes mail attachment keywords to work with maildir too. M src/lib-storage/index/maildir/maildir-save.c 2018-05-21 14:28:03 +0300 Aki Tuomi (59eb90663) lib-storage: maildir - Use array code for keywords when saving mail This is safer alternative and makes following change easier. M src/lib-storage/index/maildir/maildir-save.c 2018-05-18 10:24:46 +0200 Stephan Bosch (e3dc64746) lib-smtp: client: Fix assertion panic occurring when DATA dot stream cannot be finished immediately. If o_stream_finish() returns 0, o_stream_send_istream() would be called again later which causes the panic. Instead, it should only call o_stream_finish() or o_stream_flush() again to finish the last bit of the output. Panic was: Panic: file ostream.c: line 394 (o_stream_send_istream): assertion failed: (!_outstream->finished) M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-private.h 2018-05-27 15:48:42 +0300 Timo Sirainen (07660d37a) imap: Log unhibernation debug message only with mail_debug=yes M src/imap/imap-state.c 2018-05-23 17:13:23 +0300 Timo Sirainen (637b84dbd) doveadm director: Remove unnecessary extra newlines from output M src/doveadm/doveadm-director.c 2018-04-16 16:29:38 +0300 Timo Sirainen (d2eaf7ac7) lib-ssl-iostream: Make ssl_iostream_unref() private M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.h 2018-04-16 16:28:24 +0300 Timo Sirainen (1ea1304a2) global: Replace ssl_iostream_unref() with ssl_iostream_destroy() Destroying performs cleanups correctly. M src/doveadm/server-connection.c M src/lib-http/http-client-connection.c M src/lib-http/http-server-connection.c M src/lib-imap-client/imapc-connection.c M src/lib-smtp/smtp-client-connection.c M src/lib-storage/index/pop3c/pop3c-client.c 2018-04-17 15:58:58 +0300 Aki Tuomi (e165a7553) lib-ssl-iostream: Do not handshake further if we are destroying M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h 2018-03-10 17:06:03 +0200 Aki Tuomi (2f13abc3d) lib-ssl-iostream: Correctly build certificate chains Prevents sending extraneous certificates when using alternative certs. Reported by John Fawcett and Peter Linss . M m4/ssl.m4 M src/lib-ssl-iostream/iostream-openssl-context.c 2018-01-09 16:01:42 -0500 Timo Sirainen (3a6537d59) imap-login: Simplify ID handling code M src/imap-login/imap-login-cmd-id.c 2017-06-14 10:46:53 +0300 Timo Sirainen (82875d3a0) imap-login: Rewrite ID parameter handling to be less fragile There's no longer two places that need to be kept in sync. M src/imap-login/imap-login-cmd-id.c 2017-06-14 10:34:57 +0300 Timo Sirainen (994202f32) imap-login: Move ID command handling to its own file. M src/imap-login/Makefile.am M src/imap-login/imap-login-client.c M src/imap-login/imap-login-client.h A src/imap-login/imap-login-cmd-id.c 2018-05-12 13:11:59 +0200 Stephan Bosch (618b7e0da) submission: Perform variable substitution for the submission_relay_rawlog_dir setting. M src/submission/submission-settings.c 2018-05-12 12:20:08 +0200 Stephan Bosch (71375e3d5) submission: Add support for making server rawlogs using the rawlog_dir setting. Similar services like pop3 and imap already support this setting, but for submission this was omitted. M src/submission/submission-client.c M src/submission/submission-settings.c M src/submission/submission-settings.h 2018-05-12 13:33:20 +0200 Stephan Bosch (6d4f512aa) submission: Substitute variables in settings. M src/submission/main.c 2018-05-14 22:41:29 +0200 Stephan Bosch (3e3f82d39) submission: Move assignment of verbose_proctitle. Makes it more consistent with other services like imap. M src/submission/main.c 2018-05-14 23:56:21 +0200 Stephan Bosch (9b99269a5) lmtp: Fix segfault occurring when a user turns out to be over quota at DATA transfer. The LMTP recipient context was not updated with the final recipient address when the RCPT command was accepted. This left a dangling struct smtp_address pointer which triggered the segfault when used. M src/lmtp/lmtp-common.c 2018-04-17 12:11:05 +0300 Aki Tuomi (c560ada9b) auth: test - make sure memory gets free'd M src/auth/test-auth.h M src/auth/test-lua.c M src/auth/test-main.c M src/auth/test-mock.c 2018-04-17 10:55:53 +0300 Aki Tuomi (b264fa336) auth: Add test for lua password verify M src/auth/test-lua.c M src/auth/test-main.c 2018-04-12 13:39:58 +0300 Aki Tuomi (6f96dd4d4) auth: db-lua - Add password_verify to auth request Allows verifying passwords with dovecot when necessary M src/auth/db-lua.c 2018-04-11 12:39:51 +0300 Aki Tuomi (47c7e193d) auth: db-lua - Expose some auth request members These are particularly useful for finding out if user has already been authenticated. M src/auth/db-lua.c 2018-04-11 12:29:41 +0300 Aki Tuomi (29c3c0d18) auth: db-lua - Remove extra space from log_error This makes it possible to use the log_error method. Broken in 9698cd24 M src/auth/db-lua.c 2018-03-26 00:52:06 -0400 Bill Cole (a37bae913) Fix arc4random build checks The configure script checks for arc4random() but the actual code uses arc4random_buf(). This breaks for FreeBSD <8.0 and MacOS X <10.7, which have the former but not the latter. This change (and an autoreconf run) solves the problem at the cost of not using the available ARC4 implementation. M m4/arc4random.m4 2018-03-26 11:27:45 -0400 Josef 'Jeff' Sipek (c1ca27048) lib: Simplify murmurhash3 LP64 vs. IPL32 test vectors M src/lib/test-murmurhash3.c 2018-03-26 10:34:25 -0400 Josef 'Jeff' Sipek (05808c7ce) lib: murmurhash3 produces bytes (not uint32_t's) M src/lib/murmurhash3.c M src/lib/test-murmurhash3.c 2018-03-28 09:11:55 +0300 Aki Tuomi (0313b5f1d) lib-http: test-http-client - Only load existing CAs Otherwise the SSL tests do not properly work. Fixes Error: HTTP Request failed: Couldn't initialize SSL context: Can't load CA certs from directory /etc/ssl/certs: error:02001002:system library:fopen:No such file or directory: fopen('/etc/pki/tls/cert.pem','r'), error:2006D080:BIO routines:BIO_new_file:no such file, error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib M src/lib-http/test-http-client.c 2018-03-27 10:31:53 +0300 Aki Tuomi (edbed11e3) lib-http: test-http-client - Test against missing SAN name Add test to make sure http client validates and ignores missing subjectAltName in cert, when not validating names. M src/lib-http/test-http-client.c 2018-03-27 10:20:54 +0300 Aki Tuomi (b2bae0783) lib-ssl-iostream: Do not skip cert name check if invalid cert is allowed Caller should be responsible for ignoring this error, not us. All the locations calling here are dealing this correctly. M src/lib-ssl-iostream/iostream-openssl.c 2018-03-27 10:29:49 +0300 Aki Tuomi (9422fd782) lib-ssl-iostream: Fix missing altName handling in openssl_cert_match_name If name is not found in subjectAltNames, report it as error. Fixes Panic: file iostream-openssl-common.c: line 177 (openssl_cert_match_name): assertion failed: (*reason_r != NULL) M src/lib-ssl-iostream/iostream-openssl-common.c 2018-05-23 15:54:53 +0200 Stephan Bosch (8b052f502) lib-smtp: server: Fix the enforcement of the maximum DATA command message size. The global setting from the server object was used, rather than the per-connection setting. The latter is usually the one that is properly set, while the global server setting is left at zero. For LMTP this meant that the 40 Mb implicit limit was still in force. M src/lib-smtp/smtp-server-connection.c 2018-04-07 01:09:12 +0200 Stephan Bosch (bfd112eb8) submission: Truly enforce a configurable message size limit (default 40 MB). Before, it was only checking a provided SIZE parameter to the MAIL command and not the size of the actually submitted message. M src/submission/submission-client.c M src/submission/submission-settings.c 2018-04-07 01:08:34 +0200 Stephan Bosch (d5ee437f0) lmtp: Explicitly disable message size limit enforcement. M src/lmtp/client.c 2018-04-07 01:08:11 +0200 Stephan Bosch (8f863c4b7) submission: Actively enforce message size limit while copying message data. M src/submission/cmd-data.c 2018-04-07 01:06:13 +0200 Stephan Bosch (0d4842809) lmtp: Actively enforce message size limit while copying message data. This is actually currently not relevant to LMTP, but for future implementation this code is added here already. M src/lmtp/commands.c 2018-04-07 01:05:15 +0200 Stephan Bosch (e34b3445b) lib-smtp: server: Implement enforcement of maximum message size. M src/lib-smtp/smtp-server-cmd-data.c M src/lib-smtp/smtp-server-cmd-helo.c M src/lib-smtp/smtp-server-cmd-mail.c M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server.c M src/lib-smtp/smtp-server.h 2018-04-07 01:03:58 +0200 Stephan Bosch (61e6108ec) lib-smtp: command parser: Provide more details in command data size limit error. M src/lib-smtp/smtp-command-parser.c 2018-04-07 01:00:46 +0200 Stephan Bosch (8b684fefc) configure: Create a definition for UOFF_T_MAX. M configure.ac A m4/uoff_t_max.m4 2018-04-05 00:34:49 +0200 Stephan Bosch (18d4bda11) lib-smtp: server: Fix error message logged for errors occurring in data wrapper stream during DATA transfer. Used the connection stream rather than the data stream to obtain the error. Obviously, there is no error on the low-level connection when there is a data istream (e.g. message size) error. M src/lib-smtp/smtp-server-cmd-data.c 2018-05-11 19:26:45 +0200 Stephan Bosch (94d99972a) lib-smtp: server: DATA command: Restore input handling upon failure. Fixes command hanging upon failure during data transfer. M src/lib-smtp/smtp-server-cmd-data.c 2018-03-17 18:00:54 +0100 Stephan Bosch (0d48dd64f) lib-smtp: client: Increase the default BDAT chunk size. Reduces the number of roundtrips and keeps the TCP window filled better. The default is now based on the NET_BLOCK_SIZE definition. M src/lib-smtp/smtp-client.h 2018-05-22 09:42:00 +0200 Stephan Bosch (1fca10509) lib: Define NET_BLOCK_SIZE. This defines the default size for data blocks transferred over the network. It should be large enough to guarantee filling up the TCP window (for efficiency), while still preventing sending much data while the peer has already rejected the rest of the transfer. M src/lib/compat.h 2018-04-27 02:39:10 +0300 Timo Sirainen (4f4c87bc1) lib: Fix returning error from unlink_directory() On non-ENOENT errors it was returning 1 instead of -1. M src/lib/unlink-directory.c 2018-05-12 12:15:07 +0200 Stephan Bosch (2d207d296) lmtp: Properly apply the login_greeting setting. It got ignored during migration of lmtp service to lib-smtp. M src/lmtp/client.c 2018-05-12 12:27:37 +0200 Stephan Bosch (49d5b83a1) lmtp: proxy: Add support for making proxy client rawlogs using the lmtp_proxy_rawlog_dir setting. M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2018-05-12 12:18:27 +0200 Stephan Bosch (915792e6d) lmtp: Add support for making server rawlogs using the lmtp_rawlog_dir setting. M src/lmtp/client.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2018-04-12 13:19:02 +0300 Aki Tuomi (bad6d9e6c) lib-ssl-iostream: Fix boolean misuse in SSL_CTX_set_ecdh_auto usage Fixes compiler nit on clang M src/lib-ssl-iostream/iostream-openssl-context.c 2018-03-20 12:21:33 +0200 Kadlecsik József (5231b55f3) lib-ssl-iostream: Fix openssl compatibility issue introduced in OpenSSL 1.0.2f Fixes dovecot: imap-login: Debug: SSL error: SSL_read() failed: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init M src/lib-ssl-iostream/iostream-openssl.c 2018-05-26 13:12:26 +0200 Stephan Bosch (c130ab7a6) lda: Allow -f sender to omit domain. Several people complained about the original enforcement of the presence of a domain (added for v2.3.0) to be too restrictive. Apparently, this legitimately happens with bounce messages on certain platforms. M src/lda/main.c 2018-05-24 01:32:40 +0300 Timo Sirainen (49544d7bb) cassandra: Fix empty binary parameters with prepared statements Fixes: Panic: Trying to allocate 0 bytes M src/lib-sql/driver-cassandra.c 2018-05-22 16:06:15 +0300 Timo Sirainen (7f198c367) fs-posix: Support FS_METADATA_WRITE_FNAME for fs_copy() M src/lib-fs/fs-posix.c M src/lib-fs/test-fs-posix.c 2018-05-22 10:59:11 +0300 Timo Sirainen (3596d2753) man: doveadm-mailbox.1.in - Fix doveadm-search-query(7) section M doc/man/doveadm-mailbox.1.in 2018-05-14 15:46:01 +0300 Timo Sirainen (fdf0ed9ca) fs-posix: Fix fs_iter_next() to return any kinds of files. Only regular files and symlinks were returned. It should return everything else as well (fifos, sockets, devices). M src/lib-fs/fs-posix.c 2018-05-17 16:29:28 +0300 Timo Sirainen (685606282) cassandra: Fix consistency=quorum to work Previously it could have been used by setting "consistency=", but this was an accident. M src/lib-sql/driver-cassandra.c 2018-05-03 17:06:04 +0300 Timo Sirainen (bbe09dffc) cassandra: Use fallback_consistency on more types of errors This could allow for example read_consistency=local-quorum with read_fallback_consistency=quorum, so most of the time the reads are from local datacenter, but in case it has problems you can switch to other datacenters. M src/lib-sql/driver-cassandra.c 2018-05-03 16:58:21 +0300 Timo Sirainen (313b5f5c5) cassandra: Cleanup - Move code to query_error_want_fallback() This allows extending it more easily. M src/lib-sql/driver-cassandra.c 2018-05-15 17:50:27 +0300 Timo Sirainen (b6c7cd53e) fs-posix: Strip trailing "/" from filenames This is mainly because "doveadm fs delete -R" adds it to indicate to the fs-driver that the whole directory is wanted to be deleted. This change fixes fs-posix to work with NFS, where otherwise unlink("symlink-to-dir/") fails with ENOTDIR. Without NFS the same call succeeds. M src/lib-fs/fs-posix.c 2018-04-08 11:28:19 +0200 Stephan Bosch (9dbc51e77) lda: Allow empty envelope sender. Fix by Martin Waschbüsch. M src/lda/main.c 2018-04-08 11:19:18 +0200 Stephan Bosch (2a23e1dcc) lda: Reformatted main.c. M src/lda/main.c 2018-04-23 18:15:51 -0400 Josef 'Jeff' Sipek (f505ba280) mdbox: Assume that empty uid maps found during sync are harmless Instead of failing the sync and causing index rebuild, just skip over the empty uid maps. Chances are that they these records came from various plugins that create fake mails. M src/lib-storage/index/dbox-multi/mdbox-sync.c 2018-04-13 13:33:56 +0300 Timo Sirainen (ced066a3a) po3pc: Handle unexpected server disconnections without assert-crash Fixes: Panic: file pop3c-client.c: line 308 (pop3c_client_wait_one): assertion failed: (client->fd != -1 || client->state == POP3C_CLIENT_STATE_CONNECTING) M src/lib-storage/index/pop3c/pop3c-client.c 2018-03-29 14:24:11 -0400 Timo Sirainen (08e32bfc8) fs-posix: Fix iterating nonexistent symlinks when readdir() returns DT_UNKNOWN This especially broke "doveadm fs delete -R" when the symlink destination was deleted before the symlink. M src/lib-fs/fs-posix.c 2018-04-26 09:48:39 +0300 Sergey Kitov (d51c4d527) plugins/old-stats: Remove restrict_access_set_dumpable calls from process_io_open(). proc_io_fd is opened in preinit(), while process have root access, so restrict_access_set_dumpable() calls are not needed. M src/plugins/old-stats/mail-stats-fill.c 2018-04-18 13:30:50 +0300 Sergey Kitov (7c5a38b48) lib: Call module's preinit function, when loading M src/lib/module-dir.c 2018-03-09 15:17:29 +0200 Sergey Kitov (9cacf5506) plugins/old-stats: Add old-stats preinit() which opens mail stats io. M src/plugins/old-stats/mail-stats-fill.c M src/plugins/old-stats/mail-stats.h M src/plugins/old-stats/stats-plugin.c M src/plugins/old-stats/stats-plugin.h 2018-04-26 19:38:55 +0300 Timo Sirainen (b7a6241ca) lib-fs: fs-posix - Add accurate-mtime parameter This is mainly useful for testing to find out whether one file was created after another. M src/lib-fs/fs-posix.c 2018-04-26 18:23:54 +0300 Timo Sirainen (2c0c4ca00) lib-fs: Update FS_METADATA_WRITE_FNAME comment M src/lib-fs/fs-api.h 2018-04-26 18:14:27 +0300 Timo Sirainen (4c36f8fa9) lib-fs: fs-posix - FS_METADATA_WRITE_FNAME replaces the full path This is how all the other fs drivers work, although the macro name is a bit confusing. M src/lib-fs/fs-posix.c M src/lib-fs/test-fs-posix.c 2018-04-26 18:14:46 +0300 Timo Sirainen (ee71a8109) lib-fs: fs-metawrap - Pass FS_METADATA_WRITE_FNAME through to parent fs fs-metawrap in the middle pervented the renaming from working. M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-test.c M src/lib-fs/test-fs-metawrap.c 2018-04-26 16:42:40 +0300 Timo Sirainen (749288665) lib-storage: Remove mail_attachment_detection_options=add-flags-on-fetch parsing It wasn't actually used yet. M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2018-04-26 16:41:55 +0300 Timo Sirainen (5e8fa3b90) lib-storage: Fail if mail_attachment_detection_options has invalid options M src/lib-storage/mail-storage-settings.c 2018-04-19 16:38:22 +0300 Timo Sirainen (798fe5eb1) lib-storage: Set $Has[No]Attachment earlier among other cached data M src/lib-storage/index/index-mail.c M src/lib-storage/mail-storage.c 2018-04-29 12:31:23 +0300 Timo Sirainen (cc6d5085a) lib-index: mail_index_sync_map() - Don't try to-resync extension updates This was done to call extension record sync handlers, but the previous commit removes them. Fixes a problem where obsolete cache offsets were used in some situations: - Some cache updates are from external transactions and some are from non-external transactions. This is because cache offset updates are being added by whatever the parent index transaction is. - When mail_index_sync_map() is mapping MAIL_INDEX_SYNC_HANDLER_FILE, it has already synced the map. But it's calling mail_index_sync_record() for non-external transactions to call expunge handlers and extension update handlers. It's calling the regular mail_index_sync_record() to do this work. - But mail_index_sync_record() is actually still updating the map. So now mail_index_sync_record() is called for all non-external cache updates, but not for external cache updates! And since these are somewhat randomly either external or non-external, the end result is that the cache offset may be obsolete. M src/lib-index/mail-index-sync-update.c 2018-04-29 12:23:49 +0300 Timo Sirainen (273054cb0) lib-index: Remove extension record sync handlers This is no longer used by anything, and it makes the fix in the following commit much easier. This was originally added in 6a19e109ee8c5a6f688da83a86a7f6abeb71abdd to allow dovecot.index.cache updating to hook into updating cache offsets to link cache records together. This was reimplemented in a different way in 131b073bdc3650083b00616dc778dd3017c2bbb5 M src/lib-index/mail-index-private.h M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index.c 2018-04-25 15:23:35 +0300 Timo Sirainen (3246adaba) lib: uni_utf8_get_valid_data() - Add ATTR_WARN_UNUSED_RESULT Ignoring the return value most likely leads to buggy code, so make sure it's checked. M src/lib/unichar.h 2018-04-25 15:22:37 +0300 Timo Sirainen (fac3484be) lib-storage: Don't ignore uni_utf8_get_valid_data() return value It's not supposed to happen, so call i_unreached() M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c 2018-04-25 15:20:58 +0300 Timo Sirainen (a3503eb62) lib-fts: Minor fix to randomness test in test-fts-tokenizer If the random input was entirely valid UTF-8, the input was truncated to empty. M src/lib-fts/test-fts-tokenizer.c 2018-04-25 15:17:53 +0300 Timo Sirainen (9521a4e87) fts: Fix indexing input that contains NULs Any message_block that contained NULs, but otherwise was valid UTF-8, was simply dropped. M src/plugins/fts/fts-parser.c 2018-04-12 14:27:50 +0300 Timo Sirainen (9002dc87f) lib-smtp: Fix empty address parsing sret wasn't initialized, which could have randomly caused "Path only consists of source route" error with empty addresses. Broken by 81c8955e3d1475c6ab1892b1d3edf91126683fda M src/lib-smtp/smtp-address.c 2018-04-08 15:53:37 +0200 Stephan Bosch (7bad32c8a) submission: Add workarounds for well-known MAIL and RCPT command syntax deviations. This adds a new `submission_client_workarounds' setting that works analogous to the `imap_client_workarounds' setting. Workarounds: - whitespace-before-path: Allow one or more spaces or tabs between `MAIL FROM:' and path and between `RCPT TO:' and path. - mailbox-for-path: Allow using bare Mailbox syntax (i.e., without <...>) instead of full path syntax. M doc/example-config/conf.d/20-submission.conf M src/submission/submission-client.c M src/submission/submission-settings.c M src/submission/submission-settings.h 2018-04-08 15:03:00 +0200 Stephan Bosch (921cd33c6) lib-smtp: test-smtp-server-errors: Add tests for RCPT command workarounds. M src/lib-smtp/test-smtp-server-errors.c 2018-04-08 14:59:17 +0200 Stephan Bosch (1efbd1289) lib-smtp: test-smtp-server-errors: Add tests for MAIL command workarounds. M src/lib-smtp/test-smtp-server-errors.c 2018-04-08 14:40:12 +0200 Stephan Bosch (a425b5f82) lib-smtp: test-smtp-server-errors: Add tests for bad RCPT command syntax. M src/lib-smtp/test-smtp-server-errors.c 2018-04-08 14:07:50 +0200 Stephan Bosch (479d716f2) lib-smtp: test-smtp-server-errors: Add tests for bad MAIL command syntax. M src/lib-smtp/test-smtp-server-errors.c 2018-04-08 15:31:37 +0200 Stephan Bosch (044a32cef) lib-smtp: test-smtp-server-errors: Implicitly stop server when all expected client connections are closed. M src/lib-smtp/test-smtp-server-errors.c 2018-04-08 15:28:59 +0200 Stephan Bosch (cc1252b84) lib-smtp: test-smtp-server-errors: Add more debug messages for the server. M src/lib-smtp/test-smtp-server-errors.c 2018-04-08 15:20:22 +0200 Stephan Bosch (a936583f5) lib-smtp: test-smtp-server-errors: Make detection of early termination of child processes part of each test. M src/lib-smtp/test-smtp-server-errors.c 2018-04-08 15:24:02 +0200 Stephan Bosch (d45a77f39) lib-smtp: test-smtp-server-errors: Add log prefixes for client and server. Makes it easier to distinguish which process is sending a log message while debugging. M src/lib-smtp/test-smtp-server-errors.c 2018-04-08 15:16:05 +0200 Stephan Bosch (adfadd207) lib-smtp: test-smtp-server-errors: Add support for client-side connection context data. M src/lib-smtp/test-smtp-server-errors.c 2018-04-10 03:12:41 +0200 Stephan Bosch (4cb2b08f8) lib-smtp: test-smtp-server-errors: Use o_stream_nsend*() rather than o_stream_send*(). The result is not checked anyway. M src/lib-smtp/test-smtp-server-errors.c 2018-04-08 12:25:49 +0200 Stephan Bosch (78101f0b4) lib-smtp: server: Add workarounds for well-known MAIL and RCPT command syntax deviations. M src/lib-smtp/smtp-server-cmd-mail.c M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server.c M src/lib-smtp/smtp-server.h 2018-04-08 12:13:16 +0200 Stephan Bosch (0f73d2443) lib-smtp: address parser: Do not allow source route for path with omitted brackets. Parse it strictly as a Mailbox, which makes more sense. M src/lib-smtp/smtp-address.c M src/lib-smtp/test-smtp-address.c 2018-04-14 02:05:51 +0200 Stephan Bosch (2f86f050a) lib: Implement str_sanitize_utf8(). Unlike str_sanitize(), this function truncates strings based on a UTF8 code point limit rather than a maximum size in bytes. Also, the Unicode replacement character is used to mark invalid/control characters and an ellipsis character is used to indicate the string truncation. For the normal str_sanitize() this is done using a question mark and triple dots respectively. M src/lib/str-sanitize.c M src/lib/str-sanitize.h M src/lib/test-str-sanitize.c 2018-04-17 21:31:38 +0200 Stephan Bosch (bfc72f9d2) lib: unichar: Add Horizontal Ellipsis character. M src/lib/unichar.h 2018-04-26 13:18:01 +0300 Martti Rannanjärvi (ed33a45fd) .gitignore: Ignore doc/man/doveadm-rebuild.1 M .gitignore 2018-04-12 14:09:10 +0300 Aki Tuomi (63f60a620) doveadm: Add rebuild attachments command Goes thru given mails and resets the attachment indicator. M doc/man/Makefile.am A doc/man/doveadm-rebuild.1.in M src/doveadm/Makefile.am A src/doveadm/doveadm-mail-rebuild.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2018-04-12 14:07:54 +0300 Aki Tuomi (5a5cd70a8) lib-storage: Parse mail parts in mail_set_attachment_keywords if not present M src/lib-storage/mail.c 2018-04-19 10:19:15 +0300 Aki Tuomi (86e5047a0) lib-storage: Add error reporting to mail_set_attachment_keywords M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail.c 2018-04-25 11:04:08 +0300 Aki Tuomi (093c2bd2a) doveadm: mailbox cache decisions - Fatally fail if fields are missing M src/doveadm/doveadm-mail-mailbox-cache.c 2018-04-25 10:56:04 +0300 Aki Tuomi (69072fe4b) man: Document doveadm mailbox cache commands M doc/man/doveadm-mailbox.1.in 2018-04-13 13:28:47 +0300 Aki Tuomi (3fd124cb7) doveadm: Add mailbox cache manipulation commands This allows changing cache decisions and dropping cache pointer for wanted mails. M src/doveadm/Makefile.am A src/doveadm/doveadm-mail-mailbox-cache.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2018-04-14 14:31:44 +0300 Aki Tuomi (8be73775b) doveadm-mail: Handle field conversion to short opt better Convert non-string types as well M src/doveadm/doveadm-mail.c 2018-04-24 18:50:38 +0300 Timo Sirainen (424ffa182) dsync: If lock file can't be created because home is missing, mkdir the home M src/doveadm/dsync/dsync-brain.c 2018-04-24 18:47:28 +0300 Timo Sirainen (320168246) lib-storage: Add mail_user_home_mkdir() M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2018-04-12 16:13:08 +0200 Stephan Bosch (5f5b5097e) lib-mail: message-address: Make the parser allow paths that omit `<' and `>'. This is a syntax violation, but we allow it to account for a rather wide selection of software that does not follow the standards. M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2018-04-12 21:27:32 +0200 Stephan Bosch (206660e59) lib-mail: message-address: Make parser properly reject paths with spurious trailing characters. M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2018-04-12 22:16:54 +0200 Stephan Bosch (2f25c1390) lib-mail: message-address: Make sure incomplete paths are rejected by parser. M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2018-04-12 21:59:40 +0200 Stephan Bosch (48470164f) lib-mail: message-address: Require paths with an invalid source route to have at least a proper `:'. Otherwise, the parser would allow a bare domain. M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2018-04-12 20:29:36 +0200 Stephan Bosch (9684507e8) lib-mail: message-address: Properly deinit RFC822 parser in message_address_parse_path(). M src/lib-mail/message-address.c 2018-04-12 20:54:50 +0200 Stephan Bosch (55fd5fe1f) lib-mail: test-message-address: Add test for parsing empty path. M src/lib-mail/test-message-address.c 2018-04-12 23:01:03 +0200 Stephan Bosch (2e1682d44) lib-mail: test-message-address: Use i_memdup() rather than explicit malloc(), memcpy(). M src/lib-mail/test-message-address.c 2018-04-12 22:58:16 +0200 Stephan Bosch (ee1e41607) lib: Added i_memdup(). M src/lib/imem.c M src/lib/imem.h 2018-04-16 14:01:37 +0300 Timo Sirainen (f26570f17) lib-master: Add log_core_filter setting to core dump on matching filter M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h 2018-04-16 14:00:51 +0300 Timo Sirainen (edddfbd94) lib: Add global core filter, which allows core dumping on matching events M src/lib/event-log.c M src/lib/event-log.h 2018-04-16 13:48:38 +0300 Timo Sirainen (8bb5f946c) lib: Add log types as event categories This allows using debug, info, warning, error, fatal and panic as categories. M src/lib-master/stats-client.c M src/lib/event-filter.c M src/lib/event-filter.h M src/lib/event-log.c M src/stats/client-writer.c M src/stats/stats-metrics.c M src/stats/stats-metrics.h 2018-04-16 13:39:17 +0300 Timo Sirainen (15e4f2b2b) 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. M src/lib-master/stats-client.c M src/stats/client-writer.c 2018-04-16 13:32:47 +0300 Timo Sirainen (a95134b47) 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. M src/lib-master/master-service-settings.c 2018-04-16 13:32:15 +0300 Timo Sirainen (0aeb68b1c) lib-master: Cleanup - Add new helper function for parsing log filter settings M src/lib-master/master-service-settings.c 2018-04-16 13:31:03 +0300 Timo Sirainen (bae0b5317) 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. M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-master/master-service.c 2018-04-17 15:46:41 +0300 Timo Sirainen (06855565c) 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. M src/lib-storage/index/imapc/imapc-mailbox.c 2018-03-13 16:36:44 +0200 Sergey Kitov (54f4dfbf7) 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. M src/lib-mail/mail-html2text.c 2018-04-06 15:48:02 +0300 Sergey Kitov (3341cfd97) lib-mail: Fix include guards for istream-nonuls.h M src/lib-mail/istream-nonuls.h 2018-04-11 15:11:23 +0300 Aki Tuomi (6f74c7382) 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. M src/lib-program-client/test-program-client-local.c 2018-02-01 09:19:10 +0200 Aki Tuomi (ba095d224) lib-ssl-iostream: Fix premature NULL deref Broken in 4836d541b1c1354073e068aabe5cd92aa67fe61d Found by coverity M src/lib-ssl-iostream/iostream-ssl.c 2018-04-10 02:41:44 +0200 Stephan Bosch (ba275209e) lib-mail: message-address: Fix address parser to properly reject angle-addr without `>'. M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2018-04-10 02:36:44 +0200 Stephan Bosch (dab43eda9) 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 == '<') M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2018-02-19 13:21:25 +0200 Timo Sirainen (044876914) lib-storage: Assert unique_root_dir is set with MAIL_STORAGE_CLASS_FLAG_UNIQUE_ROOT M src/lib-storage/mail-storage.c 2018-02-19 13:22:02 +0200 Timo Sirainen (8d5faabfd) 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(). M src/lib-storage/index/shared/shared-storage.c 2018-03-12 15:29:48 +0200 Timo Sirainen (12c4e52b5) 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 M src/lib-storage/index/imapc/imapc-mailbox.c 2018-02-17 21:51:00 +0100 Stephan Bosch (463362ac2) lib-dcrypt: Reformatted test-stream.c. M src/lib-dcrypt/test-stream.c 2018-02-17 21:43:06 +0100 Stephan Bosch (81bcc3084) lib-dcrypt: Reformatted test-crypto.c. M src/lib-dcrypt/test-crypto.c 2018-02-17 21:10:17 +0100 Stephan Bosch (0f8fd4252) lib-dcrypt: Reformatted ostream-encrypt.h. M src/lib-dcrypt/ostream-encrypt.h 2018-02-17 21:09:16 +0100 Stephan Bosch (1a61c6610) lib-dcryp: Reformatted ostream-encrypt.c. M src/lib-dcrypt/ostream-encrypt.c 2018-02-17 20:49:14 +0100 Stephan Bosch (42c0f0e94) lib-dcrypt: Reformatted istream-decrypt.h. M src/lib-dcrypt/istream-decrypt.h 2018-02-17 20:47:19 +0100 Stephan Bosch (29dff4e30) lib-dcrypt: Reformatted istream-decrypt.c. M src/lib-dcrypt/istream-decrypt.c 2018-02-17 20:24:42 +0100 Stephan Bosch (5139e7def) lib-dcrypt: Reformatted dcrypt-private.h. M src/lib-dcrypt/dcrypt-private.h 2018-02-17 20:15:24 +0100 Stephan Bosch (56e36839d) lib-dcrypt: Reformatted dcrypt-openssl.c. M src/lib-dcrypt/dcrypt-openssl.c 2018-02-17 19:19:22 +0100 Stephan Bosch (9c41bf04d) lib-dcrypt: Reformatted dcrypt-iostream.h. M src/lib-dcrypt/dcrypt-iostream.h 2018-02-17 19:18:28 +0100 Stephan Bosch (329f2e069) lib-dcrypt: Reformatted dcrypt-gnutls.c. M src/lib-dcrypt/dcrypt-gnutls.c 2018-02-17 19:01:48 +0100 Stephan Bosch (79bf20c7e) lib-dcrypt: Reformatted dcrypt.h. M src/lib-dcrypt/dcrypt.h 2018-02-17 18:53:19 +0100 Stephan Bosch (2265e47ef) lib-drypt: Reformatted dcrypt.c. M src/lib-dcrypt/dcrypt.c 2018-03-06 23:11:32 +0100 Stephan Bosch (bc7f0da3c) 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. M src/lib-storage/Makefile.am M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2018-03-06 21:43:22 +0100 Stephan Bosch (5bfc88376) 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. M src/lib-lda/mail-deliver.c M src/lib-smtp/smtp-address.c M src/lib-smtp/smtp-address.h M src/lib-smtp/smtp-params.c 2018-02-15 17:50:43 +0200 Martti Rannanjärvi (b0379686e) lib-master: Don't dup errors to service->set_pool in master_service_settings_read Use t_strdup() instead. M src/lib-master/master-service-settings.c 2018-01-12 15:28:52 +0200 Martti Rannanjärvi (503ac5e23) 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. M src/lib-master/master-service-settings.c 2018-02-28 19:16:36 +0100 Stephan Bosch (44419807d) 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. M src/lmtp/lmtp-proxy.c 2018-02-28 10:22:33 +0100 Stephan Bosch (40efd2329) 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. M src/lmtp/lmtp-proxy.c 2018-02-28 18:58:42 +0100 Stephan Bosch (da761519c) login-common: Use client SSL certificate and key settings from lib-master. M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/login-settings.h 2018-02-28 18:14:33 +0100 Stephan Bosch (48c6552ae) lib-master: Initialize key and certificate for client SSL settings. This uses the ssl_client_cert and ssl_client_key settings. M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h 2018-02-28 19:01:17 +0100 Stephan Bosch (c6eaa00c0) login-common: Remove unused ssl_require_crl setting. M src/login-common/login-settings.c M src/login-common/login-settings.h 2018-03-10 19:13:24 +0100 Stephan Bosch (f4000dd82) 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. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-connection.h 2018-03-10 19:07:26 +0100 Stephan Bosch (92a5be28e) lib-smtp: client: smtp_client_connection_create(): ATTR_NULL() pointed to wrong parameter. M src/lib-smtp/smtp-client-connection.h 2018-03-10 19:05:40 +0100 Stephan Bosch (5c04ad2fd) lib-smtp: client: connection: Perform IP lookup in a separate function. M src/lib-smtp/smtp-client-connection.c 2018-03-10 19:22:19 +0100 Stephan Bosch (2a24666d4) lib: net: Avoid comparing the content of unassigned IPs in net_ip_cmp(). M src/lib/net.c 2018-02-27 22:56:20 +0100 Stephan Bosch (849e6363a) 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. M src/lmtp/lmtp-proxy.c 2018-02-27 21:58:17 +0100 Stephan Bosch (fce763804) lib-smtp: client: Add support for connecting from an explicit source IP. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client.c M src/lib-smtp/smtp-client.h 2018-02-27 21:56:55 +0100 Stephan Bosch (763b1fe19) lib: connection: Added support for connecting from an explicit source IP. M src/lib/connection.c M src/lib/connection.h 2018-04-09 16:41:19 +0300 Timo Sirainen (b01048358) imapc: Fix crash when handling empty mailboxes. Broken by c05b4ac76c4c6012958f1cc37e2fccf7a7d31c33 M src/lib-storage/index/imapc/imapc-mailbox.c 2018-03-25 23:15:58 +0300 Timo Sirainen (6d1388880) 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)) M src/lib-storage/index/imapc/imapc-mailbox.c 2018-04-11 14:19:06 +0300 Timo Sirainen (4e881e9ee) 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. M src/lib-storage/index/imapc/imapc-storage.c 2018-02-27 12:26:09 +0200 Timo Sirainen (d2d399fa3) imapc: Fix crash when untagged FETCH reply doesn't have key-value pairs The last key with the missing value is just silently ignored. M src/lib-storage/index/imapc/imapc-mailbox.c 2018-03-26 00:01:26 +0300 Timo Sirainen (188cc2cde) 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) M src/lib-storage/index/imapc/imapc-mailbox.c 2018-03-16 13:40:26 +0200 Aki Tuomi (c8efc7e50) istream-seekable: Record stream size in stat Otherwise the size is shown 0 M src/lib/istream-seekable.c 2018-03-16 13:39:40 +0200 Aki Tuomi (36025085b) 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)) M src/lib-storage/index/istream-mail.c 2018-03-27 16:12:46 +0300 Aki Tuomi (92b59eaeb) login-common: Indicate TLS secured transport on proxied TLS too M src/login-common/sasl-server.c 2018-03-15 22:36:45 +0100 Stephan Bosch (89db074a7) lib-smtp: test-smtp-server-errors: Add test for DATA command erroneously used with BODY=BINARYMIME. M src/lib-smtp/test-smtp-server-errors.c 2018-03-15 22:34:34 +0100 Stephan Bosch (346e837b4) lib-smtp: test-smtp-server-errors: Add tests for missing MAIL and RCPT commands before DATA command. M src/lib-smtp/test-smtp-server-errors.c 2018-03-15 22:36:16 +0100 Stephan Bosch (431ab66c5) lib-smtp: server: Check that BINARYMIME is not used without CHUNKING. M src/lib-smtp/smtp-server-cmd-data.c 2018-03-14 01:54:20 +0100 Stephan Bosch (1801a0494) submission: Add 8BITMIME and BINARYMIME back to supported capabilities. These are supported when the backend provides support. These were erroneously disabled earlier by 3bf0c0e211ba1e4ee9977a9dfea32e14ebc50aab. M src/submission/submission-common.h 2018-03-21 11:29:26 +0200 Arkadiusz Miśkiewicz (33ec2f44b) lib-master: Fix dns_wildcard_match usage Broken by 446c0b02a7802b676e893ccc4934fc7318d950ea M src/lib-master/master-service-settings-cache.c 2018-03-19 11:34:49 +0200 Aki Tuomi (29dff4512) NEWS: Update to 2.3.0.1 M NEWS 2018-03-12 14:50:32 +0200 Aki Tuomi (857df38db) lib-dcrypt: test-stream - Ensure more is read when buffer becomes empty M src/lib-dcrypt/test-stream.c 2018-03-12 14:48:41 +0200 Aki Tuomi (3e12b7187) 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 M src/lib-dcrypt/istream-decrypt.c 2018-03-15 13:19:53 +0200 Timo Sirainen (28cbdea85) 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" M src/lib-storage/index/imapc/imapc-mail-fetch.c 2018-03-15 12:20:14 +0200 Timo Sirainen (5ecfbaee5) 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. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2018-03-01 12:17:16 +0200 Timo Sirainen (597512ddc) 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. M src/lib-storage/index/dbox-single/sdbox-save.c 2018-03-07 11:24:30 +0200 Timo Sirainen (b2c7388a2) notify: Fix crash if NO_NOTIFY transaction is rolled back during commit Fixes: Panic: no notify_mail_txn found M src/plugins/notify/notify-storage.c 2018-03-06 15:15:01 +0200 Aki Tuomi (e8826dcf3) lib-master: Correctly match when local_name has multiple names Reported by J. Nick Koston M src/lib-master/master-service-settings-cache.c 2018-03-06 10:33:27 +0200 Aki Tuomi (eee017f9b) lib-master: Reply from config process is tabescaped Found by J. Nick Koston M src/lib-master/master-service-settings-cache.c 2018-03-10 19:43:27 +0200 Aki Tuomi (8aaf3826c) config: tabescape local name and service M src/config/config-connection.c 2018-03-06 10:31:51 +0200 Aki Tuomi (ab1a8581f) config: Make local_name comparison faster Based on patch by J. Nick Koston M src/config/config-filter.c 2018-03-12 15:06:13 +0200 Timo Sirainen (134e7d2a6) 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" M src/lib-storage/index/imapc/imapc-mailbox.c 2018-03-09 16:09:16 +0100 Stephan Bosch (c4688bd12) 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. M src/lmtp/client.c M src/lmtp/lmtp-proxy.c 2018-02-27 23:13:33 +0100 Stephan Bosch (954d65a35) 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. M src/lmtp/lmtp-proxy.c 2018-03-09 16:03:23 +0100 Stephan Bosch (73654d4e9) 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. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client.c M src/lib-smtp/smtp-client.h 2018-03-09 16:01:50 +0100 Stephan Bosch (32b2ef232) lib-smtp: params: Make ORCPT parameter available separately if hidden capability is enabled. M src/lib-smtp/smtp-common.h M src/lib-smtp/smtp-params.c 2018-03-09 15:47:06 +0100 Stephan Bosch (8abbd4ad3) lib-smtp: common: Use the BIT() macro for defining the capability flags. M src/lib-smtp/smtp-common.h 2017-12-24 14:35:15 +0100 Stephan Bosch (b4534c9f0) 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. M src/lib-smtp/smtp-client-connection.c 2017-12-01 13:46:10 +0200 Aki Tuomi (af014a893) auth: Include tls=true/false in policy server request M src/auth/auth-policy.c 2017-12-01 13:30:43 +0200 Aki Tuomi (b06ad24cb) auth: Support secured=tls M src/auth/auth-request-var-expand.c M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/test-auth-request-var-expand.c 2017-12-11 11:16:02 +0200 Aki Tuomi (b205e8519) login-common: Pass SSL protocol details to auth M src/login-common/sasl-server.c 2017-12-01 13:16:34 +0200 Aki Tuomi (192a9908d) login-common: Indicate TLS encryption if haproxy says it was M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2017-12-11 11:08:08 +0200 Aki Tuomi (b7fafd613) lib-auth: Include ssl protocol details in request when present M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h 2017-12-01 13:16:07 +0200 Aki Tuomi (3dffa06b4) lib-auth: Add AUTH_REQUEST_FLAG_TLS Indicates whether connection is over TLS encryption. M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h 2017-12-11 11:00:41 +0200 Aki Tuomi (8230e3df4) lib-ssl-iostream: Add accessors for additional SSL protocol details This is needed in order to send these details as fields to auth process M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-12-13 09:52:16 +0200 Aki Tuomi (36b9d01cf) m4: Check for SSL_CIPHER_get_kx_nid M m4/ssl.m4 2018-01-11 16:10:48 +0200 Aki Tuomi (19ccc8658) auth: Ensure crypt schemes match with samples M src/auth/password-scheme-crypt.c 2018-01-11 15:22:30 +0200 Aki Tuomi (50d398fc6) auth: Fix crypt scheme detection Broken by 1ebb6094e5105ba7ef521a0177c42d3ea81243f0 M src/auth/password-scheme-crypt.c 2018-02-08 15:45:55 +0200 Aki Tuomi (8b9b3d48c) auth: Support standard auth variables in LDAP subqueries M src/auth/db-ldap.c 2018-01-28 21:39:07 +0100 Stephan Bosch (a61c327be) 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. M src/lib-http/http-client-request.c 2018-01-20 18:48:00 +0100 Stephan Bosch (1ab6917df) lib-http: test-http-payload: Initialize http_context in test_client_create_clients(). Fixes complaint from scan-build. M src/lib-http/test-http-payload.c 2018-01-20 16:48:03 +0100 Stephan Bosch (1acfddc13) lib-smtp: address: Remove useless local variable initialization in smtp_address_clone(). Fixes complaint from scan-build. M src/lib-smtp/smtp-address.c 2018-02-08 13:27:25 +0200 Timo Sirainen (036defc8f) 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. M src/lib-http/http-client-connection.c 2018-03-08 14:10:42 +0200 Timo Sirainen (dc030eac6) lib: Remove ostream.get_used_size() Removes backwards compatibility. M src/lib/ostream-private.h M src/lib/ostream.c 2018-03-08 14:08:50 +0200 Timo Sirainen (1ea0f535f) 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. M src/lib-test/test-ostream.c 2018-03-08 14:08:43 +0200 Timo Sirainen (f6a49ec42) 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. M src/lib/ostream-buffer.c 2018-03-08 14:07:34 +0200 Timo Sirainen (884e2a16f) 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. M src/lib/ostream-file.c 2018-02-24 22:04:49 +0200 Timo Sirainen (25c0f5136) 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. M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lz4.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c 2018-02-24 22:04:27 +0200 Timo Sirainen (159d7780c) lib-ssl-iostream: Implement the new ostream.get_buffer_used/avail_size() APIs M src/lib-ssl-iostream/ostream-openssl.c 2018-02-24 22:04:11 +0200 Timo Sirainen (7b4f32ab7) lib: ostream-multiplex - Implement the new get_buffer_used/avail_size() APIs M src/lib/ostream-multiplex.c 2018-02-26 15:17:36 +0200 Timo Sirainen (d941f9c24) 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. M src/lib/Makefile.am D src/lib/ostream-escaped.c D src/lib/ostream-escaped.h M src/lib/test-lib.inc D src/lib/test-ostream-escaped.c 2018-02-24 22:03:10 +0200 Timo Sirainen (dafdbfdbc) lib: Change/clarify o_stream_get_buffer_used/avail_size() APIs ostream.get_used_size() is deprecated and replaced by get_buffer_used_size() and get_buffer_avail_size(). M src/lib/ostream-private.h M src/lib/ostream.c M src/lib/ostream.h 2018-01-20 15:44:56 +0200 Aki Tuomi (976105f17) auth: db-lua - Do not assert-crash if given parameter was not auth_request Use luaL_error instead that will back out more gracefully. Fixes Panic: file db-lua.c: line 279 (auth_lua_check_auth_request): assertion failed: (lua_istable(script->L, arg)) M src/auth/db-lua.c 2018-01-20 20:33:01 +0200 Aki Tuomi (cca32a311) auth: db-lua - Use luaL_error correctly M src/auth/db-lua.c 2017-06-08 12:18:30 +0300 Aki Tuomi (5403eb2c1) lib-auth: Require being connected before adding requests M src/lib-auth/auth-server-connection.c M src/lib-auth/auth-server-connection.h 2017-06-05 12:44:06 +0300 Aki Tuomi (6e1e25eb9) lib-auth: Prevent double-disconnect When disconnecting, it's possible that disconnect gets called twice by some callback, so protect it with a boolean. Fixes Panic: file hash.c: line 152 (hash_table_clear): assertion failed: (table->frozen == 0) M src/lib-auth/auth-server-connection.c M src/lib-auth/auth-server-connection.h 2018-03-06 22:11:34 +0100 Stephan Bosch (c3df1c9ef) lib-lda: Do not convert "From:" message address to STMP address, just to make a string for logging. This leads to problems when the message address (RFC5322) has UTF-8 code points in the local part, which is (currently) allowed for message addresses, but not for SMTP addresses (RFC5321). M src/lib-lda/mail-deliver.c 2018-03-06 13:27:17 +0200 Martti Rannanjärvi (2677b2c91) master: Strip '\n' from suid_dumpable read buffer before str_to_uint() M src/master/service-process.c 2018-03-01 18:38:43 +0200 Timo Sirainen (f6b8fa45a) master: Improve "core not dumped" error messages with Linux Recommend setting /proc/fs/suid_dumpable to 2 and /proc/sys/kernel/core_pattern to absolute path, if they already aren't. M src/master/common.h M src/master/main.c M src/master/service-process.c 2018-03-01 18:37:43 +0200 Timo Sirainen (ab1b7f2c5) master: Add explanation URL to "core dumps disabled" and "core not dumped" errors M src/master/service-process.c 2018-02-19 19:22:42 +0200 Aki Tuomi (b194576cd) global: Use unix_socket capability in connection.c This is more reliably way to correctly create input stream with unix socket capability for passing fd's around M src/imap-hibernate/imap-hibernate-client.c M src/imap/imap-master-client.c 2018-02-19 19:09:46 +0200 Aki Tuomi (2a2cdd98b) lib: connection - only switch created iostreams Fixes imap-hibernate: Fatal: master: service(imap-hibernate): child killed with signal 11 (core dumps disabled) Broken in 086b73efd1a5812a64acc951366a499d325509a6 M src/lib/connection.c 2018-01-28 00:14:21 +0100 Stephan Bosch (689971234) submission: Properly handle omission of required authentication for relay connection. Particularly, do not forward the 530 error to the client. Instead, log the problem and close the client connection with an internal error. M src/submission/submission-commands.c 2018-01-28 00:10:11 +0100 Stephan Bosch (f199f594a) lib-smtp: server: Fix overwriting a previously submitted reply. The submitted flag was not reset, nor was the replies_submitted counter decreased. This caused assertion failures. M src/lib-smtp/smtp-server-reply.c 2018-03-05 21:02:49 +0100 Stephan Bosch (e7482beba) submission: Limit the set of capabilities to those that are actually supported. Particularly, the XCLIENT capability was inappropriately enabled when the backend MTA announced support. XCLIENT is not supported by Dovecot post-login. M src/submission/submission-client.c M src/submission/submission-common.h 2018-03-01 14:53:11 +0100 Stephan Bosch (46cae2d2d) lib-smtp: server: Only accept XCLIENT command when the XCLIENT capability is active. Report "502 Unsupported command" otherwise. Before, it would complain about the client not being trusted, which is confusing. M src/lib-smtp/smtp-server-cmd-xclient.c M src/lmtp/client.c M src/submission-login/client.c 2018-03-01 14:52:06 +0100 Stephan Bosch (34f492adf) lib-smtp: client: Make clear that XCLIENT is not sent if the server has no support. M src/lib-smtp/smtp-client-connection.c 2017-12-23 22:51:37 +0100 Stephan Bosch (57d3c493a) lib-smtp: client: Add assertion to smtp_client_command_write(). Makes sure it is not used after the command is submitted. M src/lib-smtp/smtp-client-command.c 2017-12-23 22:49:57 +0100 Stephan Bosch (ee9ceafb2) lib-smtp: client: Fix smtp_client_command_name_equals() to work properly after the command is submitted. At command submission, CRLF is appended to command data. This messed up the name comparison. This in turn caused a spurious QUIT command to be sent to the server at connection close. M src/lib-smtp/smtp-client-command.c 2017-12-23 22:14:16 +0100 Stephan Bosch (18f762ed7) lib-smtp: client: Make smtp_client_connection_commands_abort() more reliable by copying the command lists. Copy the current lists of queued and waiting commands and reference each command before calling smtp_client_command_abort(). Aborting one command can cause other dependent commands to be aborted (in a transaction or from submission service), which could have caused trouble in this function. M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-private.h 2017-12-23 22:04:13 +0100 Stephan Bosch (0ac8caa0e) lib-smtp: client: Make smtp_client_connection_commands_fail_reply() more reliable by copying the command lists. Copy the current lists of queued and waiting commands and reference each command before calling smtp_client_command_fail_reply(). Failing one command can cause other dependent commands to be aborted (in a transaction or from submission service), which could have caused trouble in this function. Problems would likely occur at connection disconnect. M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-private.h 2018-02-01 23:04:12 +0200 Timo Sirainen (3d61168a1) dsync: Log a warning if copying a mail fails unexpectedly Don't log a warning if it happens because the source message was expunged. That's an expected failure. M src/doveadm/dsync/dsync-mailbox-import.c 2018-03-07 15:14:52 +0100 Stephan Bosch (f431eff6b) submission-login: Only send HELO domain to post-login service when it is valid. M src/submission-login/client-authenticate.c 2018-03-07 15:03:42 +0100 Stephan Bosch (d70971de9) lib-smtp: server: Fix application of pre-login HELO domain when no post-login HELO is issued. The substituted domain was not marked as valid, which caused the HELO field of the produced received line to be set to 'unknown'. M src/lib-smtp/smtp-server-cmd-mail.c 2018-03-04 23:43:55 +0100 Stephan Bosch (ab4b3fd00) lib-smtp: server: RCPT command: Make sure conn->state.pending_rcpt_cmds cannot decrement through zero. Added assertion. M src/lib-smtp/smtp-server-cmd-rcpt.c 2018-03-04 23:42:45 +0100 Stephan Bosch (f0908f013) lib-smtp: server: MAIL command: Make sure conn->state.pending_mail_cmds cannot decrement through zero. Added assertion. M src/lib-smtp/smtp-server-cmd-mail.c 2018-03-04 23:35:53 +0100 Stephan Bosch (0f9b9561c) lib-smtp: server: Fix double decrement of RCPT pending counter upon error. The pending counter was sometimes decremented twice in specific error conditions, leading to an assert panic in the DATA command. This was caused by some dead code. If the MAIL command failed in a pipeline before the RCPT command, the assert was triggered. Panic was: Panic: file smtp-server-cmd-data.c: line 354 (cmd_data_start): assertion failed: (conn->state.pending_mail_cmds == 0 && conn->state.pending_rcpt_cmds == 0) M src/lib-smtp/smtp-server-cmd-rcpt.c 2018-02-01 00:14:55 +0100 Stephan Bosch (61f649746) lib-lda: Parse Return-Path header using RFC5322 (IMF) "path" syntax, rather than RFC5321 (SMTP) "Path" syntax. SMTP does not allow white space, which causes all kinds of trouble when the address is parsed from a header field. M src/lib-lda/mail-deliver.c 2018-02-01 00:08:40 +0100 Stephan Bosch (435e4ffe5) lib-mail: message-address: Add support for parsing RFC5322 "path" syntax. This is either a single angle-addr or just <>. This path syntax differs from the RFC5321 "Path" syntax in that it allows whitespace, which is very important when it is parsed from a header. M src/lib-mail/message-address.c M src/lib-mail/message-address.h M src/lib-mail/test-message-address.c 2018-03-12 12:42:46 +0200 Ville Savolainen (db0373bfb) Fixup "lib-mail: message_address_write() - don't crash with NULL address" Remove content that did not belong to 9f2fe2782224266bf2a403f430de011cf3b9da9d M src/lib-mail/message-address.c 2018-02-02 18:07:43 +0200 Timo Sirainen (6418419ec) lib-storage: Fix mailbox rename checking child mailbox name lengths It was supposed to prevent allowing renames that would cause any child mailbox name to be too long. However, the check wasn't working. M src/lib-storage/mail-storage.c 2018-03-01 17:59:34 +0200 Timo Sirainen (59eb3b664) lib-storage: Fix memory leak when search accessed headers but found no mails For example fetching headers with UID FETCH for a nonexistent UID. M src/lib-storage/index/index-mail.c 2018-03-01 17:55:50 +0200 Timo Sirainen (5d3a81e1b) lib-storage: Code cleanup - remove unnecessary temporary variable M src/lib-storage/index/index-mail.c 2018-01-29 08:43:05 -0500 Josef 'Jeff' Sipek (8c6e305ad) global: start relying on file_lock_free(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - file_lock_free(&E); - } + file_lock_free(&E); M src/lib-index/mail-cache.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/mail-autoexpunge.c M src/lib/file-lock.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c 2018-01-29 08:41:03 -0500 Josef 'Jeff' Sipek (e1d3ec5f9) global: start relying on mailbox_header_lookup_unref(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - mailbox_header_lookup_unref(&E); - } + mailbox_header_lookup_unref(&E); M src/doveadm/doveadm-mail-iter.c M src/doveadm/dsync/dsync-mailbox-export.c M src/imap/imap-fetch.c M src/lib-imap-storage/imap-msgpart.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-search.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/virtual/virtual-mail.c 2018-01-29 08:40:27 -0500 Josef 'Jeff' Sipek (4db31f1f4) lib-storage: mailbox_header_lookup_unref(NULL) should be a no-op M src/lib-storage/mailbox-header.c 2018-01-29 08:38:45 -0500 Josef 'Jeff' Sipek (27aed64c7) lib-mail: start relying on mail_html2text_deinit(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - mail_html2text_deinit(&E); - } + mail_html2text_deinit(&E); M src/lib-mail/message-snippet.c 2018-01-29 08:38:16 -0500 Josef 'Jeff' Sipek (9c22e26cf) lib-mail: mail_html2text_deinit(NULL) should be a no-op M src/lib-mail/mail-html2text.c 2017-11-09 10:37:34 -0500 Josef 'Jeff' Sipek (f5ab340f1) global: start relying on ssl_iostream_destroy(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - ssl_iostream_destroy(&E); - } + ssl_iostream_destroy(&E); M src/doveadm/client-connection-tcp.c M src/doveadm/doveadm-dsync.c M src/lib-smtp/smtp-server-connection.c M src/login-common/client-common.c M src/login-common/login-proxy.c 2017-11-09 10:39:25 -0500 Josef 'Jeff' Sipek (ba110cd15) ssl-iostream: ssl_iostream_destroy(NULL) should be a no-op M src/lib-ssl-iostream/iostream-ssl.c 2017-11-09 10:34:21 -0500 Josef 'Jeff' Sipek (90c587569) global: start relying on iostream_proxy_unref(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - iostream_proxy_unref(&E); - } + iostream_proxy_unref(&E); M src/login-common/client-common.c M src/login-common/login-proxy.c 2017-11-09 10:36:02 -0500 Josef 'Jeff' Sipek (431971ab7) lib: iostream_proxy_unref(NULL) should be a no-op M src/lib/iostream-proxy.c 2017-11-09 10:30:51 -0500 Josef 'Jeff' Sipek (e741abe85) global: start relying on str_free(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - str_free(&E); - } + str_free(&E); M src/imap/imap-fetch.c M src/lib-fs/fs-metawrap.c M src/lib-fts/fts-filter.c M src/lib-http/http-client-request.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/index-search-mime.c M src/lib/istream.c M src/login-common/client-common.c M src/plugins/acl/acl-attributes.c M src/plugins/fts-solr/fts-backend-solr.c 2017-11-09 10:32:32 -0500 Josef 'Jeff' Sipek (a7e32badb) lib: str_free(NULL) should be a no-op M src/lib/str.c 2018-02-19 13:27:39 +0100 Stephan Bosch (f904b00fb) lib-http: client: Add event fields for the number of bytes sent and received for each request in the last attempt. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2018-02-19 13:24:57 +0100 Stephan Bosch (bac5c5855) lib-http: response parser: Record input stream offset for the start of the last parsed response. M src/lib-http/http-response-parser.c M src/lib-http/http-response-parser.h 2018-02-19 13:20:11 +0100 Stephan Bosch (074fb5a42) lib-http: message parsers: Record beginning of parsed data. M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c 2018-01-21 15:46:49 +0100 Stephan Bosch (457bd50cd) lib-http: client: Trigger special events when a request is finished, retried or redirected. M src/lib-http/http-client-request.c 2018-01-21 16:19:41 +0100 Stephan Bosch (187dd208c) lib-http: client: Record last status code in the request object. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2018-01-21 16:08:55 +0100 Stephan Bosch (6d1afbe24) lib-http: client: Reset redirect counter when the request is retried. The absence of this reset caused problems when there was a redirect limit and the request was retried, in which case the limit is reached too soon. M src/lib-http/http-client-request.c 2018-01-21 16:06:19 +0100 Stephan Bosch (0333014cd) lib-http: client: Add "host" and "port" fields to request event. M src/lib-http/http-client-request.c 2018-01-21 16:00:31 +0100 Stephan Bosch (ba02f29f9) lib-http: client: Use the new http_url_get_port*() functions. M src/lib-http/http-client-request.c 2018-01-21 15:54:18 +0100 Stephan Bosch (71c28aac4) lib-http: url: Add functions that obtain the effective port for the URL. When no port is set for the URL, it is set to 0. These functions substitute the applicable default. M src/lib-http/http-url.h 2018-01-21 15:50:37 +0100 Stephan Bosch (fb954a8f5) lib-http: Create http-common.h, which contains global definitions shared by client and server. Currently contains only the default HTTP port definitions that used to be private to the client. M src/lib-http/Makefile.am M src/lib-http/http-client-private.h M src/lib-http/http-client.c M src/lib-http/http-client.h A src/lib-http/http-common.h M src/lib-http/http-server.h 2018-02-23 21:09:42 +0100 Stephan Bosch (c2de71917) lmtp: proxy: Do not forward 421 reply (server shutdown) from backend. This closes the LMTP connection implicitly. Instead, translate it into a 451 4.4.0 response, just like all the other connection-related failures. M src/lmtp/lmtp-proxy.c 2018-02-23 20:49:48 +0100 Stephan Bosch (6fb19467c) lib-smtp: client: transaction: Better document the failure handling for incomplete transactions. M src/lib-smtp/smtp-client-transaction.h 2018-02-23 20:43:50 +0100 Stephan Bosch (82dd7ce14) lib-smtp: client: transaction: Don't call the DATA callbacks upon failure until the transaction is complete. The transaction is not complete until smtp_client_transaction_send() is called. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client-transaction.c 2018-02-23 18:21:49 +0100 Stephan Bosch (f9ef860a3) lib-smtp: client: transaction: Properly advance the transaction to the DATA state once the DATA command is to be sent. M src/lib-smtp/smtp-client-transaction.c 2018-02-23 18:16:57 +0100 Stephan Bosch (d3334edc2) lib-smtp: client: transaction: Use the correct callback for finish timeout. M src/lib-smtp/smtp-client-transaction.c 2018-02-07 16:31:12 +0200 Timo Sirainen (3d2dd93d0) global: Set extra_groups=$default_internal_group for various services Services with user=$default_internal_user are expected to already set the group properly. This change is adding the group for mail processes. M src/doveadm/doveadm-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap/imap-settings.c M src/indexer/indexer-worker-settings.c M src/lmtp/lmtp-settings.c M src/pop3/pop3-settings.c M src/submission/submission-settings.c 2018-02-07 16:00:46 +0200 Timo Sirainen (12896fac9) lib: restrict_access_by_env() - Preserve RESTRICT_SETEXTRAGROUPS if root isn't dropped This way service { extra_groups } is preserved for the whole duration of the process lifetime (e.g. lmtp, doveadm) M src/lib/restrict-access.c 2018-02-07 13:06:06 +0200 Timo Sirainen (86e748326) imap-hibernate: Change imap-hibernate default socket permissions to allow default_internal_group It would be enough to allow only imap processes access to it, but it shouldn't really harm to allow other processes access to it also. M src/imap-hibernate/imap-hibernate-settings.c 2018-02-07 13:05:09 +0200 Timo Sirainen (cc84498d3) stats: Change stats-writer default socket permissions to allow default_internal_group It's important that all dovecot processes can send statistics to the stats process. M src/stats/stats-settings.c 2018-02-07 13:04:03 +0200 Timo Sirainen (51cc5e29c) dict: Change dict and dict-async default socket permissions to allow default_internal_group Many mail processes need to talk to dict. This makes it easier to enable dict without having to configure permissions. M src/dict/dict-settings.c 2018-02-07 13:03:23 +0200 Timo Sirainen (5cf6951e3) master: Add default_internal_group setting, defaulting to "dovecot" It's expected that this is the primary group of the default_internal_user. This group will be used to provide access to sockets that are generally required by all Dovecot processes, but aren't safe enough to be allowed completely open access from untrusted processes. M src/master/master-settings.c M src/master/master-settings.h 2018-02-16 00:44:07 +0100 Stephan Bosch (eaff427e5) lib-smtp: server: Remove inappropriate assert from MAIL command. When the MAIL command is next to reply, it is possible to have RCPT commands that are still pending. M src/lib-smtp/smtp-server-cmd-mail.c 2018-02-17 15:02:53 +0100 Stephan Bosch (2164b0f0a) lib-http: client: Simplified return code handling in http_client_request_send_real(). M src/lib-http/http-client-request.c 2018-02-17 14:54:47 +0100 Stephan Bosch (42d59cb71) lib-http: client: Make sure output is used only when valid in http_client_request_send_real(). M src/lib-http/http-client-request.c 2018-02-17 12:03:41 +0100 Stephan Bosch (98728242f) lib-http: client: Uncork and flush the output stream explicitly after continuing request payload. This allows detecting any output stream errors. M src/lib-http/http-client-connection.c 2018-02-17 15:17:06 +0100 Stephan Bosch (e1c3c7107) lib-http: client: Hold reference to the connection while continuing request payload. Subsequent changes may cause the connection to be destroyed while sending. M src/lib-http/http-client-connection.c 2018-02-17 12:01:47 +0100 Stephan Bosch (c742c97d1) lib-http: client: Continue sending request payload in a separate function. M src/lib-http/http-client-connection.c 2018-02-17 15:08:44 +0100 Stephan Bosch (c13f150f6) lib-http: client: Hold reference to the connection while sending the next request. Subsequent changes may cause the connection to be destroyed while sending. M src/lib-http/http-client-connection.c 2018-02-17 11:32:37 +0100 Stephan Bosch (38d87d024) lib-http: client: Perform output stream error handling in one place. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2018-02-17 11:10:05 +0100 Stephan Bosch (1aa3d3851) lib-http: client: Make http_client_connection_lost() available outside http-client-connection.c. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h 2018-02-17 11:08:20 +0100 Stephan Bosch (a3bf9c8ac) lib-http: client: Handle output stream errors in a separate function. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h 2018-02-17 01:25:50 +0100 Stephan Bosch (979d0f237) lib-http: client: Flush and check output for errors after uncorking. Otherwise, a disconnection event may be missed. M src/lib-http/http-client-request.c 2018-02-17 15:37:20 +0100 Stephan Bosch (0c89791ae) lib-http: server: Simplified return code handling in http_server_response_send_real(). M src/lib-http/http-server-response.c 2018-02-17 15:29:20 +0100 Stephan Bosch (e68885782) lib-http: server: Make sure output is used only when valid in http_server_response_send_real(). This avoids the need to hold a reference to it. M src/lib-http/http-server-response.c 2018-02-17 01:26:02 +0100 Stephan Bosch (8acedb011) lib-http: server: Perform output stream error handling in one place. M src/lib-http/http-server-connection.c M src/lib-http/http-server-private.h M src/lib-http/http-server-response.c 2018-02-17 14:44:49 +0100 Stephan Bosch (5bf01fc9d) lib-http: server: Flush and check output for errors after uncorking. Otherwise, a disconnection event may be missed. M src/lib-http/http-server-response.c 2018-02-17 14:28:36 +0100 Stephan Bosch (aeadb8e4b) lib-http: server: Handle output stream errors in a separate function. M src/lib-http/http-server-connection.c M src/lib-http/http-server-private.h 2018-02-17 10:26:30 +0100 Stephan Bosch (27d3781aa) lib-smtp: client: Uncork and flush the output stream explicitly after sending commands. This allows detecting any output stream errors. M src/lib-smtp/smtp-client-connection.c 2018-02-17 01:46:15 +0100 Stephan Bosch (3fd43b094) lib-smtp: client: Perform output stream error handling in one place. M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-private.h 2018-02-16 23:49:31 +0100 Stephan Bosch (d6f83e187) lib-smtp: client: Flush and check output for errors after uncorking. Otherwise, a disconnection event may be missed. M src/lib-smtp/smtp-client-connection.c 2018-02-16 23:40:29 +0100 Stephan Bosch (3a6c4f95a) lib-smtp: client: Handle output stream errors in a separate function. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-private.h 2018-02-17 01:46:25 +0100 Stephan Bosch (141e29982) lib-smtp: server: Perform output stream error handling in one place. M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-reply.c 2018-02-17 10:37:55 +0100 Stephan Bosch (c116e38a0) lib-smtp: server: Remove undefined smtp_server_reply_send_more() from smtp-server-private.h. M src/lib-smtp/smtp-server-private.h 2018-02-16 10:05:26 +0100 Stephan Bosch (4a823265d) lib-smtp: server: Flush and check output for errors after uncorking. Otherwise, a disconnection event may be missed. M src/lib-smtp/smtp-server-connection.c 2018-02-16 10:13:35 +0100 Stephan Bosch (a7bff44c8) lib-smtp: server: STARTTLS command: Properly handle output stream flush error. M src/lib-smtp/smtp-server-cmd-starttls.c 2018-02-16 10:11:01 +0100 Stephan Bosch (cc09ce430) lib-smtp: server: Handle output stream errors in a separate function. M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-private.h 2018-02-16 09:34:48 +0100 Stephan Bosch (9646fef92) lib-smtp: server: Use the stream_errno to evaluate output stream errors. Code was using global errno. M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-reply.c 2018-02-16 14:26:11 +0200 Timo Sirainen (b44d1a08c) lib: Add o_stream_uncork_flush() to both uncork and flush M src/lib/ostream.h 2018-02-07 16:48:28 +0200 Timo Sirainen (a062bf63d) ipc: Change ipc socket's owner to $default_internal_user This is mainly used by director process, which runs as $default_internal_user. This setting change is always required for director installations. Also the ipc process itself is already running as $default_internal_user so this should be a rather safe change. M src/ipc/ipc-settings.c 2018-03-06 12:14:25 +0200 Timo Sirainen (9f2fe2782) lib-mail: message_address_write() - don't crash with NULL address message_address_parse() can return NULL on empty address, so writing it should produce empty address as well. Broken by 15581297511b658a29c707c6031a258bab7bf1a5 M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2018-01-06 21:22:11 +0200 Timo Sirainen (d9846c932) ostream-zlib: Ignore missing finish if parent stream is ignoring errors This fixes panic with imap_zlib plugin when client enables the IMAP COMPRESS extension and disconnects: Panic: file ostream-zlib.c: line 36 (o_stream_zlib_close): assertion failed: (zstream->ostream.finished || zstream->ostream.ostream.stream_errno != 0) M src/lib-compression/ostream-zlib.c 2018-01-06 22:11:30 +0200 Timo Sirainen (76838b866) doveadm dump: Fix imapzlib to handle input traffic This has been broken with newer Dovecot versions for a while now. M src/doveadm/doveadm-zlib.c 2018-01-24 14:48:36 +0200 Aki Tuomi (dbc6de355) lib-storage: Rename .vsize.lock file to dovecot-vsize.lock .vsize.lock can break maildir++ because it looks like a maildir folder, so rename it to dovecot-vsize.lock. Introduced in 9963bef6 M src/lib-storage/index/index-mailbox-size.c M src/plugins/quota/quota-storage.c 2017-12-07 11:34:57 +0200 Sergey Kitov (0fe4a1ddf) lib: array_idx_modifiable changed not to allocate space. M src/lib/array.c M src/lib/array.h 2017-12-07 11:00:50 +0200 Sergey Kitov (053041e71) global: Change calls to array_idx_modifiable to array_idx_get_space. Only calls that require space allocation are to be changed. M src/auth/main.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-transaction-update.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib/hash2.c M src/lib/ioloop-epoll.c M src/lib/module-context.h 2017-12-07 10:51:27 +0200 Sergey Kitov (b3cd198c5) lib: array_idx_get_space is defined as alias to array_idx_modifiable M src/lib/array.h 2018-02-09 23:57:29 +0100 Stephan Bosch (9d91b7ed5) lib-http: server: Recreate connection IO after streams change. M src/lib-http/http-server-connection.c 2018-02-09 23:56:55 +0100 Stephan Bosch (eb35204a8) lib-http: client: Recreate connection IO after streams change. M src/lib-http/http-client-connection.c 2018-02-10 00:07:37 +0100 Stephan Bosch (4a17af3f7) lib-smtp: server: Recreate connection IO after streams change. M src/lib-smtp/smtp-server-connection.c 2018-02-10 10:29:44 +0100 Stephan Bosch (8df7b1fbc) lib-http: server: Use the new connection_input_halt/resume() functions. M src/lib-http/http-server-connection.c 2018-02-10 10:27:19 +0100 Stephan Bosch (a0b53dc85) lib-http: client: Use the new connection_input_halt/resume() functions. M src/lib-http/http-client-connection.c 2018-02-10 10:07:28 +0100 Stephan Bosch (c786a720c) lib-smtp: server: Use the new connection_input_halt/resume() functions. M src/lib-smtp/smtp-server-connection.c 2018-02-10 10:01:20 +0100 Stephan Bosch (758b6496f) lib-smtp: client: Use the new connection_input_halt/resume() functions. M src/lib-smtp/smtp-client-connection.c 2018-02-09 17:24:28 +0100 Stephan Bosch (6d4e1c7ab) lib-ssl-iostream: ostream-openssl: Fix behavior of o_stream_flush() so that 1 is only returned when buffer is empty. M src/lib-ssl-iostream/ostream-openssl.c 2018-02-15 15:47:48 +0100 Stephan Bosch (7b652dc1e) lib-ssl-iostream: ostream-openssl: Create local variable for sstream->ssl_io->plain_output in o_stream_ssl_flush(). M src/lib-ssl-iostream/ostream-openssl.c 2018-02-10 09:55:43 +0100 Stephan Bosch (f1d116e1f) lib: connection: Add connection_input_halt() and connection_input_resume(). These are convenience functions that remove and add conn->io respectively. M src/lib/connection.c M src/lib/connection.h 2018-02-10 09:37:32 +0100 Stephan Bosch (99ef56d40) lib-smtp: client: Moved smtp_client_init_ssl_ctx() from smtp-client.h to smtp-client-private.h. M src/lib-smtp/smtp-client-private.h M src/lib-smtp/smtp-client.h 2018-02-10 10:46:45 +0100 Stephan Bosch (de7ac2ee8) lib-http: client: Use conn->conn.ioloop rather than cctx->ioloop in connection. This leads to somewhat simpler code, and makes having connections on different ioloops easier in the future. M src/lib-http/http-client-connection.c 2018-02-10 10:20:18 +0100 Stephan Bosch (241d9352a) lib: connection: Record the ioloop the connection was last switched to. M src/lib/connection.c M src/lib/connection.h 2018-02-10 10:53:00 +0100 Stephan Bosch (7372d2b2f) lib-http: client: Move connection to shared context's ioloop, rather than the current_ioloop. This is an omission. M src/lib-http/http-client-connection.c 2018-01-29 19:10:38 +0100 Stephan Bosch (648a82367) doveadm: dsync: Switch ioloop for input/output streams while making TCP connection. This task is performed in a sub-ioloop, and when returning from that ioloop, the output stream would sometimes still have an object on the sub-ioloop that was just destroyed. M src/doveadm/doveadm-dsync.c 2018-01-29 18:28:25 +0100 Stephan Bosch (76f7e777d) lib-ssl-iostream: openssl: Make verbose logging robust against i_debug() writing to stream itself. In dsync, i_debug() is overridden to write to the SSL stream itself through a multiplexed data stream. So, during the i_debug() call all kinds of things can happen to the persisted error string in the stream, which caused problems. M src/lib-ssl-iostream/iostream-openssl.c 2018-01-16 02:02:11 +0100 Stephan Bosch (080415ce4) lib-http: client: Make sure all ioloop objects are created on the ioloop that the client/context is switched to. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2018-01-17 00:37:37 +0100 Stephan Bosch (083d7e26b) lib-dns: Allow setting the ioloop that the dns_lookup/dns_client is started on. M src/lib-dns/dns-lookup.c M src/lib-dns/dns-lookup.h 2018-01-17 02:50:05 +0100 Stephan Bosch (43b57457c) lib: connection: Allow switching to a specific ioloop. M src/lib/connection.c M src/lib/connection.h 2018-01-17 02:49:44 +0100 Stephan Bosch (860ba28cf) lib: ostream: Allow switching to a specific ioloop. M src/lib-ssl-iostream/ostream-openssl.c M src/lib/ostream-file.c M src/lib/ostream-private.h M src/lib/ostream.c M src/lib/ostream.h 2018-01-17 02:48:43 +0100 Stephan Bosch (e364ae8bd) lib: istream: Allow switching to a specific ioloop. M src/lib-http/http-server-request.c M src/lib/istream-multiplex.c M src/lib/istream-private.h M src/lib/istream-timeout.c M src/lib/istream.c M src/lib/istream.h 2018-01-24 23:02:03 +0100 Stephan Bosch (0cb6dc4e6) lib: iostream: Record the ioloop that the iostream was last switched to. M src/lib/iostream-private.h M src/lib/iostream.c M src/lib/istream.c M src/lib/ostream.c 2018-01-16 19:37:46 +0100 Stephan Bosch (f6ab416bb) lib: ioloop: Add functions for adding/moving timeouts and ios to a specific ioloop. M src/lib/ioloop.c M src/lib/ioloop.h 2018-01-03 02:11:19 +0100 Stephan Bosch (995c19778) lib-http: test-http-client: Free the ssl_iostream_context cache. M src/lib-http/test-http-client.c 2017-12-29 03:19:34 +0100 Stephan Bosch (46f463558) lib-http: test-http-payload: Added test with clients using shared global context. M src/lib-http/test-http-payload.c 2017-12-29 01:17:15 +0100 Stephan Bosch (08e718826) lib-http: client: Implicitly switch ioloop for global shared client context. If the new ioloop is NULL, close the shared client context. In that case all shared hosts, peers and idle connetions are closed and destroyed. The context just remains as a container for settings and shared context. This is only allowed when there are no clients left. M src/lib-http/http-client.c 2017-12-29 02:15:06 +0100 Stephan Bosch (39b0a7bb1) lib-http: client: Use merged DNS settings from all clients connected to a shared context for DNS lookups. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c 2017-12-29 01:47:16 +0100 Stephan Bosch (56c77bb54) lib-http: client: Base forcing shared context debug logging on the settings of the context itself and each associated client. M src/lib-http/http-client.c 2017-12-29 00:48:32 +0100 Stephan Bosch (4307246c8) lib-http: client: Register client objects in the associated client shared context. M src/lib-http/http-client-private.h M src/lib-http/http-client.c 2017-12-29 00:30:27 +0100 Stephan Bosch (96215d67d) lib-http: client: Call switching ioloop for shared peer from shared client context. Before, it was called from the client peer. M src/lib-http/http-client-peer.c M src/lib-http/http-client.c 2017-12-29 01:05:21 +0100 Stephan Bosch (8570767d0) lib-http: client: Set req->client to NULL once the request is destroyed. The http_client_request_destroy() function does not free the request immediately, as long as it is still referenced. It can still be referenced by a connection that has sent it and is waiting for a reply (payload). In the mean time the actual client can be gone, so we want to make sure nothing is pointing to that anymore. This change adds a few extra assertions to make sure nothing tries to use a NULL client later on. Some direct references to req->client are replaced with a local client variable if there is one. M src/lib-http/http-client-request.c 2017-12-29 00:21:01 +0100 Stephan Bosch (f43229fe8) lib-http: client: Merge socket buffer size settings with settings from shared context. While using the default global context, per-client socket buffer size settings were ignored. M src/lib-http/http-client.c 2017-12-29 00:16:30 +0100 Stephan Bosch (a26745123) lib-http: client: Merge max_idle_time_msecs setting with setting from shared context. While using the default global context, per-client max_idle_time_msecs setting was ignored. M src/lib-http/http-client.c 2017-12-29 16:19:53 +0200 Aki Tuomi (ff5d02182) doveadm: Unref header search context after use Fixes memory leak, found by valgrind M src/doveadm/doveadm-mail-iter.c 2018-02-08 15:34:53 +0200 Aki Tuomi (1e5e3a186) config: Fix ssl_params.dat conversion warning The command is dhparam, not dh. M src/config/old-set-parser.c 2017-12-22 18:58:11 +0200 Timo Sirainen (3bad86a13) global: Call rfc822_parser_deinit() wherever possible M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/message-address.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-data.c M src/lib-mail/message-search.c M src/lib-mail/test-rfc2231-parser.c M src/lib-mail/test-rfc822-parser.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-parser-script.c 2018-01-09 11:33:59 -0500 Timo Sirainen (eb7965367) lib-mail: Refactor code to make the next commit smaller M src/lib-mail/message-address.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c 2017-12-22 18:56:53 +0200 Timo Sirainen (a8459287b) lib-mail: Add rfc822_parser_deinit() It's not a strict requirement to call this, but it assert-crashes if the state isn't valid. M src/lib-mail/rfc822-parser.h 2017-12-22 18:42:53 +0200 Timo Sirainen (afc789bdd) lib-mail: Make sure parsers don't accidentally go much beyond end pointer M src/lib-mail/message-address.c M src/lib-mail/message-date.c M src/lib-mail/message-part-data.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c 2017-12-22 18:36:55 +0200 Timo Sirainen (497f356f6) lib-mail: Fix out-of-bounds read when parsing an invalid email address The included unit test doesn't fail, but running it with valgrind shows "Invalid read of size 1" error. Broken in d6737a17a27402e7a262f7ba8a2ed588d576f23c Discovered by Aleksandar Nikolic of Cisco Talos M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2017-12-22 18:36:09 +0200 Timo Sirainen (d297bf096) lib-mail: test-message-address - Add TEST_MESSAGE_ADDRESS_FLAG_SKIP_LIST flag This commit just adds the flag and sets it to 0 for all existing tests. M src/lib-mail/test-message-address.c 2017-12-22 18:31:52 +0200 Timo Sirainen (8ef7b26cd) lib-mail: rfc822-parser - Add asserts to make sure parser state is correct M src/lib-mail/rfc822-parser.c 2018-02-19 14:19:08 +0200 Aki Tuomi (f69c32877) lib-dns: Move before lib-master M src/Makefile.am 2018-02-26 12:53:19 +0200 Aki Tuomi (1fa0faa7d) lib-master: Fix dns_match_wildcard result value check It returns 0, not TRUE. M src/lib-master/master-service-settings-cache.c 2018-02-23 15:31:11 +0200 Aki Tuomi (807eadc92) lib-master: Check local_name only if both filter and input have it Broken in cedc777a1acf830af4cf0b6e9b0f343c81e20adc M src/lib-master/master-service-settings-cache.c 2017-11-30 20:52:11 +0200 Aki Tuomi (50bedd4a9) login-common: Enable config filtering by local name Prevents servername misuse. M src/login-common/login-settings.c 2017-11-30 15:47:25 +0200 Aki Tuomi (d93e71ad6) lib-master: Support validating config filters against requests Validation will sanitize the input request and drop any fields that have no filter in config. E.g. if you have a local block with name, and nothing else, then lip/rip will be dropped from the request. M src/lib-master/Makefile.am M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings-cache.h M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-master/test-master-service-settings-cache.c 2017-11-30 15:46:52 +0200 Aki Tuomi (424ca441b) config: Add command to request all filters M src/config/config-connection.c 2017-11-30 15:46:40 +0200 Aki Tuomi (aea4efba7) config: Add config_filter_get_all Returns all filters M src/config/config-filter.c M src/config/config-filter.h 2018-03-05 14:55:04 +0200 Martti Rannanjärvi (9e1d3abab) charset-alias: Don't return value from void functions M src/plugins/charset-alias/charset-alias-plugin.c 2018-02-14 01:30:14 +0100 Stephan Bosch (2d19ab14f) lib-smtp: server: Fix reporting of XCLIENT capability in EHLO response. The trusted connection check logic was inverted. M src/lib-smtp/smtp-server-reply.c 2018-02-14 22:20:20 +0100 Stephan Bosch (5062b1895) lib-smtp: server: Fix segfault occurring when XCLIENT command is handled. Occurs only when the application (in this case LMTP) has a conn_proxy_data_updated() callback. The context parameter was the struct smtp_server_connection object itself, rather than the application context. This caused the connection object to be overwritten. M src/lib-smtp/smtp-server-connection.c 2018-02-13 20:42:30 +0100 Stephan Bosch (b2177e00e) lib-smtp: server: Fix segfault occurring during XCLIENT when no extension fields are configured. M src/lib-smtp/smtp-server-cmd-xclient.c 2018-02-13 21:19:18 +0100 Stephan Bosch (e3da84043) lib-imap-storage: imap-msgpart-url: Perform the check for a proper messagepart URL in imap_msgpart_url_create(). Before, this was an assert in imap_msgpart_url_create(). The actual check was performed only in imap_msgpart_url_parse(), meaning that imap_msgpart_url_create() would fail with an assertion when provided with an inappropriate URL. This surfaced as a problem for the submission BURL command. M src/lib-imap-storage/imap-msgpart-url.c 2018-02-25 09:35:43 +0200 Aki Tuomi (7c4fa81fb) m4: Use -U and -D in cc_fortify Not just -D. This is to test the same thing that gets used. M m4/cc_fortify.m4 2018-02-25 09:35:19 +0200 Aki Tuomi (37b3c51f5) m4: Remove pthread from tests M m4/cc_fortify.m4 M m4/cc_pie.m4 M m4/cc_stack_protector.m4 2018-02-08 17:19:24 +0200 Timo Sirainen (6e2ea69b4) replication: Don't trigger replication on changes not visible to dsync For example if there's a write to .cache file, it doesn't require replication. M src/plugins/replication/replication-plugin.c 2018-02-08 17:17:59 +0200 Timo Sirainen (3aa47de4a) lib-storage: Replace mail_transaction_commit_changes.changed with changes_mask This allows better finding out what changed in the transaction. M src/lib-storage/index/index-transaction.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/mail-storage.h M src/plugins/replication/replication-plugin.c 2018-02-08 17:14:53 +0200 Timo Sirainen (c837fee81) lib-storage: Include mail-index.h from mail-storage.h This makes it a bit more acceptable to use mail-index.h API, without having to go through the lib-storage layer. This is also needed by the next patch to avoid duplicating the same enum in both lib-index and lib-storage layer. M src/imap-urlauth/Makefile.am M src/lib-imap-urlauth/Makefile.am M src/lib-storage/mail-storage.h M src/plugins/imap-quota/Makefile.am M src/pop3/Makefile.am 2018-02-08 17:00:38 +0200 Timo Sirainen (ced0220a7) lib-storage: Remove mailbox_transaction_context.nontransactional_changes Nothing cares about them. It was only set for POP3 UIDL change with Maildir. In theory dsync replication would want to replicate such a change, but it doesn't actually support changing UIDLs for existing mails. Other mailbox formats don't support it anyway. M src/lib-storage/index/index-transaction.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/mail-storage-private.h 2018-02-08 16:53:15 +0200 Timo Sirainen (d4706609e) lib-index: Add mail_index_transaction_commit_result.changes_mask This can be used to determine what type of changes were committed in a transaction. M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index.h 2018-02-08 16:50:58 +0200 Timo Sirainen (c7eaa1987) lib-index: Cleanup - return bool in log_append_keyword_updates() Simplifies the next commit. M src/lib-index/mail-index-transaction-export.c 2018-01-13 11:53:43 +0100 Stephan Bosch (999789eb1) lmtp: local: Don't deliver more than once to the same recipient. Duplicate RCPT TO commands for local recipients are now mostly ignored, by repeating the reply for the first instance of that RCPT TO command. M src/lmtp/lmtp-common.c M src/lmtp/lmtp-common.h M src/lmtp/lmtp-local.c 2018-01-13 13:34:47 +0100 Stephan Bosch (2374eae04) lmtp: Add recipient type to struct lmtp_recipient. M src/lmtp/lmtp-common.c M src/lmtp/lmtp-common.h M src/lmtp/lmtp-local.c M src/lmtp/lmtp-proxy.c 2018-01-13 13:25:01 +0100 Stephan Bosch (e365ad475) lmtp: Move common recipient handling code to separate file. M src/lmtp/Makefile.am M src/lmtp/client.h A src/lmtp/lmtp-common.c A src/lmtp/lmtp-common.h M src/lmtp/lmtp-local.c M src/lmtp/lmtp-proxy.c 2018-01-13 13:10:53 +0100 Stephan Bosch (7a291da08) lib-smtp: server: Use smtp_server_reply_submit_duplicate() in smtp_server_reply_allv(). This is more efficient, since it doesn't need to compose new content for each reply. M src/lib-smtp/smtp-server-reply.c 2018-01-13 13:08:53 +0100 Stephan Bosch (0ec0a3fae) lib-smtp: server: Add function that allows submitting duplicate replies. The smtp_server_reply_submit_duplicate() function submits a new reply at the specified index with content duplicated from an existing earlier reply. M src/lib-smtp/smtp-server-reply.c M src/lib-smtp/smtp-server.h 2018-01-13 13:03:48 +0100 Stephan Bosch (62a8c3750) lib-smtp: server: Move allocation of command replies to a separate function. M src/lib-smtp/smtp-server-reply.c 2018-01-13 12:43:08 +0100 Stephan Bosch (06d4b7aac) lib-smtp: server: Put reply content in a separate struct. This allows duplicate replies to share content for a multi-reply command. M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-reply.c 2018-01-13 12:56:59 +0100 Stephan Bosch (c6c10f271) lib-smtp: server: Allow part of the replies to be already sent in smtp_server_reply_allv(). This is not something observed to happen in existing code, but it is best to deal with this properly, as it could happen in the future. M src/lib-smtp/smtp-server-reply.c 2018-01-13 12:26:57 +0100 Stephan Bosch (7bab02676) lib-smtp: server: transaction: Add function that finds duplicate recipients. Duplicate means that both the path and parameters are equal. M src/lib-smtp/smtp-server-transaction.c M src/lib-smtp/smtp-server.h 2018-01-13 12:20:34 +0100 Stephan Bosch (e9afe2849) lib-smtp: server: Add RCPT parameters directly in smtp_server_transaction_add_rcpt(). This makes more sense. Before, these were added to the recipient in smtp-server-cmd-rcpt.c, after the recipient was added. M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-transaction.c 2018-01-13 11:52:31 +0100 Stephan Bosch (af7fec168) lib-smtp: params: Add function that allows checking whether RCPT parameters are equal. M src/lib-smtp/smtp-params.c M src/lib-smtp/smtp-params.h 2018-01-13 12:07:46 +0100 Stephan Bosch (7eb098b89) lib-smtp: params: Add functions to evaluate any extra (non-standard) MAIL and RCPT parameters. These allow looking up the parameter based on its name. M src/lib-smtp/smtp-params.c M src/lib-smtp/smtp-params.h 2018-01-13 11:51:24 +0100 Stephan Bosch (52d91963a) lib-smtp: address: Consistently allow address values to be NULL. If the address pointer is NULL or the localpart field is NULL or empty, it signifies that it is the NULL address "<>". In the case of smtp_address_equals(), this also likely fixes crashes at places where it may be used to compare "<>". M src/lib-smtp/smtp-address.c M src/lib-smtp/smtp-address.h M src/lib-smtp/test-smtp-address.c 2018-01-13 11:59:54 +0100 Stephan Bosch (9d589f8b0) lib-smtp: address: Rename 'poo' to 'pool' in declaration of smtp_address_detail_parse(). M src/lib-smtp/smtp-address.h 2017-12-14 11:44:52 +0200 Martti Rannanjärvi (8c077aa6d) quota: Warn when quota check is blocked by background quota calculation This was previously double logged as "Quota transaction has failed earlier" error. M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2018-01-10 15:45:51 +0200 Martti Rannanjärvi (185c9075e) quota: Remove "Failed to set quota transaction limits" error This error adds nothing that helps the user to debug a problem. M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2017-12-14 12:47:00 +0200 Martti Rannanjärvi (f478857ee) quota-count: Remove extra "quota-count failed:" from error_r M src/plugins/quota/quota-count.c 2018-02-28 15:09:02 +0200 Timo Sirainen (a5518a4fe) example-config: Add mail_attachment_detection_options M doc/example-config/conf.d/10-mail.conf 2018-02-16 16:03:46 +0200 Timo Sirainen (3087e07a6) doveadm sync/backup: Don't override BROKENCHAR if it's already set This allows migrating invalid mailbox names by specifying BROKENCHAR. Previously it would always try to use \003 control character, which isn't valid character in mailbox names so the mailbox creation would fail. M src/doveadm/doveadm-dsync.c 2018-02-26 18:20:30 +0200 Aki Tuomi (481a6a11e) notify: Ignore flag and keywords update during saving They are part of the saving event M src/plugins/notify/notify-plugin.c 2018-01-11 13:38:14 -0500 Timo Sirainen (1c3b6f922) *-login: Fix clients linked list corruption with SSL connections This could have resulted in infinite loops or some of the clients being skipped for some operations. M src/login-common/client-common.c 2018-01-23 10:51:26 +0200 Aki Tuomi (74ef8506d) push-notification: PUSH_NOTIFICATION_USER_CONTEXT is now required Satisfies static analyzers M src/plugins/push-notification/push-notification-plugin.c 2018-01-23 10:49:40 +0200 Aki Tuomi (76f93fb0e) fts-lucene: Add and use FTS_LUCENE_USER_CONTEXT_REQUIRE Satisfies static analyzers M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/fts-lucene-plugin.h 2018-01-23 10:47:49 +0200 Aki Tuomi (595bb8680) welcome: WELCOME_CONTEXT is now required Satisfies static analyzers M src/plugins/welcome/welcome-plugin.c 2018-01-23 10:46:30 +0200 Aki Tuomi (3ae3e7f92) expire: DOVEADM_EXPIRE_MAIL_CMD_CONTEXT is now required Satisfied static analyzers M src/plugins/expire/doveadm-expire.c 2018-01-23 10:44:02 +0200 Aki Tuomi (b230128c7) virtual: Contexts are now required or checked Satisfies static analyzers M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2018-01-23 10:41:35 +0200 Aki Tuomi (fe1ec4bcd) quota: Add and use QUOTA_USER_CONTEXT_REQUIRE Satisfies static analyzers M src/plugins/quota/quota-plugin.h M src/plugins/quota/quota-storage.c 2018-01-23 10:40:23 +0200 Aki Tuomi (019febbd4) imap-zlib: Context is now required Satisfies static analyzers M src/plugins/imap-zlib/imap-zlib-plugin.c 2018-01-23 10:39:30 +0200 Aki Tuomi (ae5c5eaf9) lazy-expunge: Fix context checking Was not done properly in 462a3d92adcde4bfa9a575875bd8ae740b89ce9e M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2018-01-22 14:04:47 +0200 Aki Tuomi (cc90fd9ca) mail-crypt: Add and use MAIL_CRYPT_USER_CONTEXT_REQUIRE Satisfies static analyzers M src/plugins/mail-crypt/mail-crypt-plugin.c 2018-01-22 14:02:39 +0200 Aki Tuomi (358b6630d) fts-solr: Add and use FTS_SOLR_USER_CONTEXT_REQUIRE Satisfies static analyzers M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/fts-solr-plugin.h 2018-01-23 11:37:41 +0200 Aki Tuomi (11133c3ed) acl: Fix ACL_CONTEXT check Was incorrect in 3131b3878de3245db7552234e66d437e8fde9351 M src/plugins/acl/acl-mailbox.c 2018-01-23 10:38:41 +0200 Aki Tuomi (7536e28ad) acl: Add and use ACL_USER_CONTEXT_REQUIRE Satisfies static analyzers M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-plugin.h M src/plugins/acl/doveadm-acl.c 2018-01-22 14:00:37 +0200 Aki Tuomi (86f3bd939) acl: Add and use ACL_LIST_CONTEXT_REQUIRE Satisfies static analyzers M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.h 2018-01-22 13:57:12 +0200 Aki Tuomi (75f6ed7d0) lib-storage: imapc - Ensure search ctx is not NULL Satisfies static analyzers M src/lib-storage/index/imapc/imapc-search.c 2018-01-22 13:54:58 +0200 Aki Tuomi (603cac0df) lib-storage: Add and use MAIL_STORAGE_CONTEXT_REQUIRE Satisfies static analyzers M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage-private.h 2018-01-22 13:52:37 +0200 Aki Tuomi (f6a72b464) lib-storage: Add and use MAIL_THREAD_CONTEXT_REQUIRE Satisfies static analyzers M src/lib-storage/index/index-thread.c 2018-01-22 13:50:37 +0200 Aki Tuomi (850a34d95) lib-index: Add and use CACHE_TRANS_CONTEXT_REQUIRE Satisfies static analyzers M src/lib-index/mail-cache-transaction.c 2018-01-22 09:38:26 +0200 Aki Tuomi (37aed1ab5) lib-storage: Add and use INDEX_LIST_CONTEXT_REQUIRE Satisfies static analyzers M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/list/mailbox-list-notify-tree.c 2018-01-20 20:42:02 +0200 Aki Tuomi (8fc876d9e) mail-log: Contexts are now required or checked Satisfies static analyzers M src/plugins/mail-log/mail-log-plugin.c 2018-01-19 10:27:09 +0200 Aki Tuomi (511fba2e5) old-stats-plugin: Fix context requirements Fixes Panic: Module context stats_storage_module missing Broken by 6afdf0b6fce26c5492d5e56f6f16fb8a4d869566 M src/plugins/old-stats/stats-plugin.c 2018-01-18 15:29:42 +0200 Aki Tuomi (6ff57044c) pop3-migration-plugin: Fix context requirements Fixes Panic: Module context pop3_migration_storage_module missing Broken by a8703ce24540b7efaa51a8c7d3c72e72727f9789 M src/plugins/pop3-migration/pop3-migration-plugin.c 2018-01-17 12:15:16 +0200 Aki Tuomi (bdf19e15b) last-login: Contexts are now required or checked Satisfies static analyzers M src/plugins/last-login/last-login-plugin.c 2018-01-17 12:14:22 +0200 Aki Tuomi (19b633012) mail-crypt: Contexts are now required or checked Satisfies static analyzers M src/plugins/mail-crypt/mail-crypt-acl-plugin.c M src/plugins/mail-crypt/mail-crypt-plugin.c 2018-01-17 10:28:48 +0200 Aki Tuomi (4efb529ed) old-stats: Contexts are now required or checked Satisfies static analyzers M src/plugins/old-stats/mail-stats-connection.c M src/plugins/old-stats/stats-plugin.c M src/plugins/old-stats/stats-plugin.h 2018-01-17 10:23:05 +0200 Aki Tuomi (afba4cf10) quota-clone: Contexts are now required or checked Satisfies static analyzers M src/plugins/quota-clone/quota-clone-plugin.c 2018-01-17 10:21:52 +0200 Aki Tuomi (f81b6623c) zlib: Contexts are now required or checked Satisfies static analyzers M src/plugins/zlib/zlib-plugin.c 2018-01-17 10:10:41 +0200 Aki Tuomi (f96ddb379) mailbox-alias: Contexts are now required or checked Satisfies static analyzers M src/plugins/mailbox-alias/mailbox-alias-plugin.c 2018-01-17 10:07:37 +0200 Aki Tuomi (9cc36d00c) mail-filter: Contexts are now required or checked Satisfies static analyzers M src/plugins/mail-filter/mail-filter-plugin.c 2018-01-17 10:06:25 +0200 Aki Tuomi (0333ab0d6) notify: Contexts are now required or checked Satisfied static analyzers M src/plugins/notify/notify-storage.c 2018-01-17 09:31:44 +0200 Aki Tuomi (c0ffd5259) pop3-migration: Contexts are now required or checked Satisfies static analyzers M src/plugins/pop3-migration/pop3-migration-plugin.c 2018-01-14 20:40:11 +0200 Aki Tuomi (3c18b2025) quota: Contexts are now required or checked Satisfied static analyzers M src/plugins/quota/quota-storage.c 2018-01-14 20:33:48 +0200 Aki Tuomi (86c945529) apparmor: Ensure auser is not NULL Satisfies static analyzers M src/plugins/apparmor/apparmor-plugin.c 2018-01-14 20:25:16 +0200 Aki Tuomi (fc4557f7f) lazy-expunge: Contexts are now required or checked Satisfied static analyzers M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2018-01-14 20:18:45 +0200 Aki Tuomi (18e78d322) fts: Contexts are now required or checked Satisfied static analyzer M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-user.c 2018-01-14 20:08:11 +0200 Aki Tuomi (a9c19bb91) snarf: If sstorage is NULL, do not allocate box Old code would continue if sstorage was NULL. Found by static analyzer M src/plugins/snarf/snarf-plugin.c 2018-01-14 20:07:31 +0200 Aki Tuomi (5f6be61dd) snarf: Contexts are now required or checked Satisfies static analyzers M src/plugins/snarf/snarf-plugin.c 2018-01-14 20:00:04 +0200 Aki Tuomi (1e9fdc8bb) expire: Contexts are now required or checked Satisfied static analyzers M src/plugins/expire/expire-plugin.c 2018-01-14 19:57:16 +0200 Aki Tuomi (e16d51458) trash: Ensure quser is not NULL Satisfies static analyzers M src/plugins/trash/trash-plugin.c 2018-01-14 19:56:19 +0200 Aki Tuomi (d5975daef) acl: Contexts are now required or checked Satisfies static analyzers M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.h M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c 2018-01-14 19:46:13 +0200 Aki Tuomi (fa4ab3937) replication: Check ruser for NULL Satisfies static analyzers M src/plugins/replication/replication-plugin.c 2018-01-14 19:43:39 +0200 Aki Tuomi (6b4986702) imap-old-stats-plugins: Check suser for NULL Satisfies static analyzers M src/plugins/imap-old-stats/imap-stats-plugin.c 2018-01-17 12:25:18 +0200 Aki Tuomi (42f95f63b) lib-sql: SQL_DB_CACHE_CONTEXT now requires context Satisfies static analyzers M src/lib-sql/sql-db-cache.c 2018-01-17 09:29:23 +0200 Aki Tuomi (f553314ac) lib-storage: MBOX_LIST_CONTEXT now requires context Satisfies static analyzers M src/lib-storage/index/mbox/mbox-storage.c 2018-01-17 09:29:53 +0200 Aki Tuomi (1fad1b8c3) lib-storage: INDEX_LIST_STORAGE_CONTEXT now requires context Satisfies static analyzers M src/lib-storage/list/mailbox-list-index-storage.h 2018-01-17 09:25:26 +0200 Aki Tuomi (4adaae0c7) lib-storage: INDEX_STORAGE_CONTEXT now requires context Satisfies static analyzers M src/lib-storage/index/index-storage.h 2018-01-17 12:24:21 +0200 Aki Tuomi (04bdefa1a) lib-lda: Require context in mail-deliver Satisfies static analyzers M src/lib-lda/mail-deliver.c 2018-01-12 15:10:48 +0200 Aki Tuomi (bf055b4cb) lib: Add MODULE_CONTEXT_REQUIRE This will panic instead of return NULL. Should satisfy static analyzers when used. M src/lib/module-context.h 2018-02-18 18:07:16 -0500 Josef 'Jeff' Sipek (4d90f3fb2) lib-storage: Generate snippet while saving new mails M src/lib-storage/index/index-mail-headers.c 2018-02-19 15:43:31 +0200 Timo Sirainen (a1e1240aa) lib-storage: Make index_mail_want_cache() global M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2018-02-18 18:06:48 -0500 Josef 'Jeff' Sipek (994ecfe78) lib-storage: move snippet generation to mail-save-finish This is necessary because some storage backends (most notably sdbox) do not allow getting the mail stream before the mail is fully written out. (See written_to_disk in sdbox-file.h.) If we could avoid getting the stream to generate a snippet we could leave this where it is. M src/lib-storage/index/index-mail.c 2018-02-19 15:38:13 +0200 Timo Sirainen (424753d9d) doveadm dump: Show body.snippet in human-readable form M src/doveadm/doveadm-dump-index.c 2018-02-15 18:16:15 +0200 Timo Sirainen (f30a85a71) imap: Don't set storage callbacks before namespaces are created This fixes sending untagged OK/NO notifications from storage (e.g. lock waits/override notifications). It was broken by e031d9aaae59a9f79710dc1138b76b69272615a3 M src/imap/imap-client.c 2018-02-15 18:15:16 +0200 Timo Sirainen (4cf9cf959) imap: Add client_create_finish() to finish namespace creation. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-master-client.c M src/imap/main.c 2018-02-15 18:13:20 +0200 Timo Sirainen (084a6f8e6) imap: When running standalone, delay initializing namespaces until PREAUTH is sent Most importantly this makes the code paths similar for standalone and non-standalone clients, which is needed by the following commits. M src/imap/main.c 2017-12-13 19:05:30 +0200 Martti Rannanjärvi (a9eca13a1) global: Flip MAIL_STORAGE_SERVICE_FLAG_DISALLOW_ROOT to ..._ALLOW_ROOT M src/imap-urlauth/imap-urlauth-worker.c M src/imap/main.c M src/indexer/indexer-worker.c M src/lda/main.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lmtp/main.c M src/plugins/quota/quota-status.c M src/pop3/main.c M src/submission/main.c M src/util/script-login.c 2017-09-29 14:16:52 +0300 Martti Rannanjärvi (9057b2f75) lib-storage: Flip disallow_root in service_drop_privileges() M src/lib-storage/mail-storage-service.c 2017-09-29 13:47:22 +0300 Martti Rannanjärvi (63ef06755) master: Flip disallow_root in drop_privileges() M src/master/service-process.c 2017-09-29 13:40:12 +0300 Martti Rannanjärvi (f6a3f3eb8) lib: Add restrict_access_flags enum to use with restrict_access[_by_env]() Swap parameter locations in the functions to make sure plugins are updated to use the new api. M src/anvil/main.c M src/auth/main.c M src/config/main.c M src/dict/main.c M src/director/main.c M src/dns/dns-client.c M src/doveadm/main.c M src/imap-hibernate/main.c M src/indexer/indexer-worker.c M src/indexer/indexer.c M src/ipc/main.c M src/lib-program-client/program-client-local.c M src/lib-storage/mail-storage-service.c M src/lib/restrict-access.c M src/lib/restrict-access.h M src/lmtp/main.c M src/log/main.c M src/login-common/main.c M src/master/service-process.c M src/old-stats/main.c M src/plugins/quota/quota-status.c M src/replication/aggregator/aggregator.c M src/replication/replicator/replicator.c M src/stats/main.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap.c 2017-12-18 11:35:27 +0200 Martti Rannanjärvi (aeddc84b6) lib: Flip drop_setuid_root in restrict_access_settings M src/lib-storage/mail-storage-service.c M src/lib/restrict-access.c M src/lib/restrict-access.h 2017-12-18 12:44:14 +0200 Martti Rannanjärvi (f7d20995c) lib-program-client: Remove extra drop_setuid_root flag copy M src/lib-program-client/program-client-local.c 2018-02-19 14:44:04 +0200 Timo Sirainen (9a2898fb8) lib-storage: Unless LAYOUT=index, don't rebuild list index on missing INBOX M src/lib-storage/list/mailbox-list-index.c 2018-02-19 12:54:53 +0200 Timo Sirainen (a82c0f030) lib-storage: mailbox_list_index_handle_corruption() - Lock mailbox list while rebuilding This guards against simultaneous mailbox create/delete/rename. M src/lib-storage/list/mailbox-list-index.c 2018-02-19 12:53:46 +0200 Timo Sirainen (a8bd6c9e9) lib-storage: mailbox_list_index_handle_corruption() - Move actual handling to its own function M src/lib-storage/list/mailbox-list-index.c 2018-02-19 09:57:17 +0200 Aki Tuomi (d9a1a7cbe) lib-ssl-iostream: Use SSL_CTX_set_ecdh_auto macro This macro is same for 1.0.2 and 1.1.0 and libressl. M src/lib-ssl-iostream/iostream-openssl-context.c 2018-02-18 18:11:18 +0200 Aki Tuomi (0de790596) imap: If snippet is not available return NIL M src/imap/imap-fetch-body.c 2018-02-18 00:53:12 +0200 Timo Sirainen (9e1a3a76d) imap: Fix FETCH SNIPPET 1) _BUFFERED flag wasn't set, which caused a missing space before the "SNIPPET". 2) It caused \Seen flag to be added to the mail M src/imap/imap-fetch-body.c 2018-02-16 14:49:59 +0200 Timo Sirainen (2f8165728) imap: Don't enforce sending SNIPPET reply as literal Also change it to use "cur_str" since the reply is never very long. M src/imap/imap-fetch-body.c 2018-02-16 14:46:36 +0200 Timo Sirainen (bb80752f8) imap: Add parenthesis to FETCH SNIPPET (FUZZY text) response Otherwise it violates the RFC 3501 text about FETCH responses. M src/imap/imap-fetch-body.c 2018-02-16 16:59:35 +0200 Martti Rannanjärvi (96d1d2d8d) charset-alias: Fix keyvalues iteration charset-alias-plugin.c:113:27: error: comparison between pointer and zero character constant [-Werror=pointer-compare] for (i = 0; keyvalues[i] != '\0'; i++) { ^~ charset-alias-plugin.c:113:14: note: did you mean to dereference the pointer? for (i = 0; keyvalues[i] != '\0'; i++) { M src/plugins/charset-alias/charset-alias-plugin.c 2018-02-16 16:53:04 +0200 Martti Rannanjärvi (c2a0b6170) charset-alias: Cleanup whitespace Remove \r from end of lines and remove trailing whitespace. M src/plugins/Makefile.am M src/plugins/charset-alias/Makefile.am M src/plugins/charset-alias/charset-alias-plugin.c M src/plugins/charset-alias/charset-alias-plugin.h 2018-01-24 19:36:22 -0500 Hideo Yoshizane (6791b1e85) charset-alias-plugin M configure.ac M src/plugins/Makefile.am A src/plugins/charset-alias/Makefile.am A src/plugins/charset-alias/charset-alias-plugin.c A src/plugins/charset-alias/charset-alias-plugin.h 2018-01-31 10:27:54 +0100 Stephan Bosch (254cae66e) lmtp: local: Use recipient index in lmtp_local_rcpt_reply_overquota(). When used during the DATA command, it should send a reply for the correct recipient. During the RCPT command there is only one reply due. Added assert that checks this. M src/lmtp/lmtp-local.c 2018-01-31 10:34:11 +0100 Stephan Bosch (c81bd718b) lmtp: local: Add explicit cmd parameter to lmtp_local_rcpt_reply_overquota(). Using the RCPT cmd is only valid for the RCPT command and not when quota excess is detected during DATA. That would cause a segmentation fault, since rcpt->rcpt.rcpt_cmd == NULL. M src/lmtp/lmtp-local.c 2018-01-31 10:30:23 +0100 Stephan Bosch (a2c36f57a) lmtp: local: Make local variable for rcpt->rcpt.rcpt_cmd in lmtp_local_rcpt_check_quota(). M src/lmtp/lmtp-local.c 2018-01-17 21:26:44 +0100 Stephan Bosch (abc7aab27) lmtp: local: Fix segfault occurring when quota is exceeded. M src/lmtp/lmtp-local.c 2018-01-25 22:24:05 +0100 Stephan Bosch (e0285e56f) lib-smtp: client: Fix ignoring invalid certificate from server. Although it initially allowed the invalid certificate, it would still fail later on while reading/writing the SSL streams. M src/lib-smtp/smtp-client-connection.c 2018-02-12 12:28:37 +0200 Aki Tuomi (e15a37fda) auth: Set correct context type when bypassing reporting in auth_success Broken in 41ff6e6a4a085786d4c15a58c7c50a28e2110c3f M src/auth/auth-request.c 2018-02-06 09:48:11 +0200 Aki Tuomi (d3a3654dc) auth: Add policy check configuration options Allows disabling before/after auth checks, or reporting. M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-settings.h 2018-02-05 14:26:15 +0200 Aki Tuomi (e0b3e89dc) auth: Use correct username is auth policy requests When doing master authentication as first, use the username of the user, not master user, for policy lookup. M src/auth/auth-policy.c M src/auth/auth-settings.c 2018-02-08 02:26:23 +0200 Timo Sirainen (4bbad8a8a) lib-ssl-iostream: Assert-crash if input stream has IO already set M src/lib-ssl-iostream/iostream-openssl.c 2018-02-08 02:22:18 +0200 Timo Sirainen (abf71b6ab) lib: Add i_stream_get_root_io() and use it to deduplicate code M src/lib/istream-private.h M src/lib/istream.c 2018-02-08 10:53:50 +0200 Timo Sirainen (8bcd5e5cb) lib-smtp: Recreate connection IO after streams change This fixes hangs after STARTTLS. Originally by Stephan Bosch M src/lib-smtp/smtp-client-connection.c 2018-02-08 10:52:57 +0200 Timo Sirainen (962e5953d) lib: Add connection_streams_changed() Originally by Stephan Bosch M src/lib/connection.c M src/lib/connection.h 2018-02-08 02:38:23 +0200 Timo Sirainen (186a3319e) doveadm: client: Set IO only after enabling SSL io_add_istream() needs to be used with the SSL istream, otherwise it can cause hangs. M src/doveadm/server-connection.c 2018-02-08 02:28:54 +0200 Timo Sirainen (b4e076dba) lib-imap-client: Fix IO after enabling SSL io_add_istream() needs to be used with the SSL istream, otherwise it can cause hangs. M src/lib-imap-client/imapc-connection.c 2018-02-06 15:12:26 +0200 Timo Sirainen (0b2363a89) replication: Don't send notification for changes done by dsync transactions M src/plugins/replication/replication-plugin.c 2018-02-06 15:10:48 +0200 Timo Sirainen (ea2dbaa29) lib-storage: Set mailbox_transaction_context.flags earlier Set it in index_transaction_init() so plugins' transaction_begin() methods see it after calling super.transaction_begin(). M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage.c 2018-02-08 13:04:48 +0200 Aki Tuomi (977a292de) old-stats: Set process dumpable during stats gathering /proc/self/io is not accessible otherwise M src/plugins/old-stats/mail-stats-fill.c 2018-02-08 13:03:37 +0200 Aki Tuomi (07e126638) lib: Add restrict_access_get/set_dumpable M src/lib/restrict-access.c M src/lib/restrict-access.h 2018-02-08 13:01:50 +0200 Aki Tuomi (52d6f2db8) lib: Clarify restrict_access_allow_coredumps M src/lib/restrict-access.h 2018-02-07 16:17:13 +0200 Timo Sirainen (fbc2195f3) lib-index: Fix assert-crash with lock_method=dotlock The dotlock wasn't deleted in all code paths. Fix this by simplifying the unlocking to be done the same way with and without dotlock. Fixes: Panic: file mail-cache.c: line 624 (mail_cache_lock_file): assertion failed: (cache->dotlock == NULL) M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache.c 2018-01-09 15:37:25 -0500 Timo Sirainen (36c2a2f7e) lib-storage: Lock mailbox_list for mailbox create/delete/rename This is only required for mailbox creation to fix a race condition with LAYOUT=index: If INBOX doesn't exist it will rescan the mailboxes to find out if there are any missing ones. If INBOX creation isn't locked, it's possible that the first process hasn't finished creating INBOX before the second process find it and attempts to open it. The delete and rename locking are probably useful to guard against race conditions when clients intentionally issues create/delete/rename commands concurrently. M src/lib-storage/mail-storage.c 2018-01-09 15:36:58 -0500 Timo Sirainen (72b239b16) lib-storage: Add mailbox_list_[un]lock() M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2018-01-09 15:35:13 -0500 Timo Sirainen (1ccc5eb7f) lib-storage: mailbox_delete() - Fix cleanup in error handling If removing index deletion mark failed, box->deleting wasn't set to FALSE and the mailbox was left opened. M src/lib-storage/mail-storage.c 2018-01-09 15:33:26 -0500 Timo Sirainen (3ce6458ce) lib-storage: mailbox_rename() - Use source storage for errors It was documented to use source storage for errors, but some of the errors were set to destination storage. M src/lib-storage/mail-storage.c 2018-02-06 18:01:04 +0200 Timo Sirainen (0deeb8555) lib-storage: mail_storage_lock_create() - add support for dotlocks M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-user.c 2018-02-06 17:49:15 +0200 Timo Sirainen (e5b99149c) lib-storage: Change mail_user_lock_file_create() to use mail_storage_lock_create() M src/lib-storage/mail-user.c 2018-02-06 17:47:37 +0200 Timo Sirainen (f3065275d) lib-storage: Add mail_storage_lock_create() This is split off of mailbox_lock_file_create(). M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2018-02-06 17:35:18 +0200 Timo Sirainen (6b49608a2) lib: Add file_lock_from_dotlock() The dotlock creation requires various settings, so the file-lock.h API can't easily be used to create it. But once created, it's simpler to keep all lock types in the same struct file_lock, which can be unlocked/freed once finished. M src/lib/file-lock.c M src/lib/file-lock.h 2017-12-26 00:38:58 +0100 Stephan Bosch (4517f6335) lib-smtp: server: Fix assertion failure occurring for a second failed BDAT/BURL command. Assertion was: Panic: file smtp-server-cmd-data.c: line 420 (smtp_server_connection_data_chunk_init): assertion failed: (data_cmd->chunk_first) M src/lib-smtp/smtp-server-cmd-data.c 2017-12-27 14:38:41 +0100 Stephan Bosch (d5ed3c4f0) submission: EHLO command: Remove obsolete pending_ehlo handling. This was used to wait with sending an EHLO reply until the proxy connection to the relay server completes. The previous commit made this functionality obsolete, since command input handling is blocked entirely until the proxy connection is ready. M src/submission/cmd-helo.c M src/submission/submission-client.h 2017-12-27 14:36:10 +0100 Stephan Bosch (ffd0514cb) submission: Block server input handling until proxy connection to relay server completes. This makes sure we are aware of the full extent of the backend server's capabilities, before we start handling commands. Before, only EHLO commands were blocked this way, but this did not account for MAIL/RCPT parameters, which are equally dependent. Fixes problems with clients that send no EHLO after AUTH, like Thunderbird. M src/submission/submission-client.c 2017-12-27 17:02:12 +0100 Stephan Bosch (8eb9c8954) lib-smtp: server: Add APIs for halting and resuming connection command handling. Also adds function to start the connection in a pending (halted) state. This way the greeting can already be sent (over SSL if needed), while deferring command handling until some external activity is completed. M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server.h 2017-12-27 16:31:12 +0100 Stephan Bosch (52bf7c543) lib-smtp: server: Prevent calling smtp_server_connection_login() after smtp_server_connection_start(). Added assertion. M src/lib-smtp/smtp-server-connection.c 2017-12-27 16:22:22 +0100 Stephan Bosch (2dc83a5a7) lib-smtp: server: Protect smpt_server_connection_start() from being called multiple times. M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-private.h 2017-12-27 16:18:16 +0100 Stephan Bosch (67c804150) lib-smtp: server: Delay handling initial input (from login service) until after smtp_server_connection_start(). Instead, it is now handled in normal io callback. M src/lib-smtp/smtp-server-connection.c 2017-12-27 15:56:03 +0100 Stephan Bosch (dbd340384) lib-smtp: server: Remove implicit smtp_server_connection_start() from smtp_server_connection_login(). M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server.h M src/submission/submission-client.c 2017-12-27 15:59:23 +0100 Stephan Bosch (04676afab) lib-smtp: server: Moved smtp_server_connection_start() after smtp_server_connection_login(). Also fixes an indent problem in the header comment implicitly. M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server.h 2017-12-27 15:52:13 +0100 Stephan Bosch (4f9715726) lib-smtp: server: Moved ssl_start argument from smtp_server_connection_start() to smtp_server_connection_create(). This frees smtp_server_connection_start() for general use. M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server.h M src/lib-smtp/test-smtp-payload.c M src/lib-smtp/test-smtp-server-errors.c M src/lmtp/client.c M src/submission-login/client.c M src/submission/submission-client.c 2018-02-06 12:37:34 +0200 Timo Sirainen (20a8237da) fs-posix: Fix iterating directories when readdir() returns DT_UNKNOWN Files were iterated correctly, but directories weren't. This mainly broke directory iteration with NFS when nordirplus mount option was used. M src/lib-fs/fs-posix.c 2018-02-05 22:21:13 +0200 Timo Sirainen (4031a87e9) fts: Don't reindex FTS mails if .cache file is deleted This means that if fts is enabled, "doveadm index" no longer adds mails to dovecot.index.cache if it's deleted. However, it was rarely used for that purpose. More likely due to a corrupted cache file all the mails were unnecessarily being opened and reindexed. M src/plugins/fts/fts-storage.c 2018-02-07 15:28:45 +0200 Timo Sirainen (f0abd0151) cassandra: Make sure timestamp is always logged (if set) with debug_queries=y It wasn't logged in some code paths. M src/lib-sql/driver-cassandra.c 2018-02-07 15:27:07 +0200 Timo Sirainen (bf54fe6f9) cassandra: Fix setting timestamp for transaction queries with v3 protocol It was working for prepared statements, but not for non-prepared statements. M src/lib-sql/driver-cassandra.c 2018-02-05 23:54:33 +0200 Timo Sirainen (abb1f862f) fts: Fix searching headers with TEXT/BODY TEXT is searching headers and BODY is searching MIME headers. Those headers were indexed with data language, so search must also include data language when looking up words. We'll just include the data language for all searches now, so it should always work correctly. M src/plugins/fts/fts-user.c 2018-02-05 23:51:51 +0200 Timo Sirainen (2778da25a) fts: Fix searching SEARCH_HEADER_ADDRESS/COMPRESS_LWSP These are "non-language" headers that are being searched, so they need to be searched using data language. M src/plugins/fts/fts-search-args.c 2018-01-12 21:03:41 +0100 Stephan Bosch (6f13a900c) lib-http: queue: Update the correct timout while dropping a request from the delay queue. The absolute request timeout rather than the delay timeout was updated for the removal of the request from the delay queue. M src/lib-http/http-client-queue.c 2018-02-06 15:50:19 +0100 Stephan Bosch (a2577af86) lib: time-util: Fix timeval_cmp_margin() to correctly handle a margin crossing the second boundary. The timeval_cmp_margin() function incorrectly assumed that the margin is irrelevent when the tv_sec values are different. M src/lib/test-time-util.c M src/lib/time-util.c 2018-02-06 16:51:23 +0100 Stephan Bosch (7dc18d39a) lib: test-time-util: Put all test data for timeval_cmp() test in a single struct array. M src/lib/test-time-util.c 2018-01-27 23:20:08 +0100 Stephan Bosch (daaf2a696) submission: Add settings that configure the connect and command reply timeouts. M src/submission/submission-client.c M src/submission/submission-settings.c M src/submission/submission-settings.h 2018-01-19 23:32:31 +0100 Stephan Bosch (aab5da63d) lib-smtp: client: Assign only connection settings during connection initialization. Due to some copy-paste mistake, some global client settings were assigned instead. M src/lib-smtp/smtp-client-connection.c 2018-01-19 23:31:05 +0100 Stephan Bosch (520f5469b) lib-smtp: client: Always use per-connection settings in connection. Some part of the connection code referred to global client settings. M src/lib-smtp/smtp-client-connection.c 2018-01-19 16:05:18 +0100 Stephan Bosch (b75ddaf75) lib-smtp: client: Properly allow per-connection SSL configuration. Although this was already partially possible, the connection was still always using the global client SSL context. M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-private.h 2018-01-19 14:44:50 +0100 Stephan Bosch (046fc74b3) lib-smtp: client: Fix segfault occurring in connection when SSL certificate is invalid. The connection is using its own local SSL settings to determine whether an invalid certificate is allowed. However, these local settings were not properly initialized. M src/lib-smtp/smtp-client-connection.c 2018-01-22 18:51:21 +0100 Stephan Bosch (66f8ac510) submission: Enable verbose reporting of relay server certificate problems. M src/submission/submission-client.c 2018-01-29 09:55:51 -0500 Josef 'Jeff' Sipek (88305837a) imap: Iterate over ns settings when deciding to add SPECIAL-USE capability To determine whether we should add the SPECIAL-USE capability to the OK response to LOGIN, we have to iterate over namespace and mailbox *settings* since the namespaces haven't been set up yet. M src/imap/imap-client.c 2018-01-25 12:27:41 +0200 Timo Sirainen (5fe57f396) lib-storage: Fix adding body.snippet to cache Unless body.snippet was in mail_always_cache_fields, it didn't get added to the cache file. M src/lib-storage/index/index-mail.c 2018-01-25 12:35:51 +0200 Timo Sirainen (587facb5c) lib-storage: Add comment to how mail_cache_field_can/want_add() is used M src/lib-storage/index/index-mail.c 2018-01-25 12:35:35 +0200 Timo Sirainen (97ccc47ec) lib-index: Update comments for mail_cache_decision_*() M src/lib-index/mail-cache-private.h 2018-01-05 09:51:00 +0200 Aki Tuomi (83b1300b9) lib-mail: mail-html2text - Validate UCS4 codepoint Fixes: Panic: file unichar.c: line 160 (uni_ucs4_to_utf8_c): assertion failed: (uni_is_valid_ucs4(chr)) M src/lib-mail/mail-html2text.c M src/lib-mail/test-mail-html2text.c 2018-01-31 22:14:49 +0100 Stephan Bosch (5b2169951) lib-imap-urlauth: Fix segfault occurring when userid part is missing for "user+" or "submit+" URLAUTH access. M src/lib-imap-urlauth/imap-urlauth.c 2017-12-23 23:49:02 +0100 Stephan Bosch (163ad616e) submission-login: Fail CLIENT_AUTH_RESULT_MECH_SSL_REQUIRED authentication result with 523 5.7.10 error. Defined in RFC5248, Section 2.4. M src/submission-login/client-authenticate.c 2017-12-27 15:18:14 +0100 Stephan Bosch (028fa1775) submission: BURL command: Return more appropriate 554 5.7.14 error when BURL/URLAUTH is not configured. Defined in RFC5248, Section 2.4. M src/submission/cmd-data.c 2018-01-08 11:38:37 +0200 Sergey Kitov (6dfadcd06) lib-imap-client: continue imapc operation on parsing errors. M src/lib-imap-client/imapc-connection.c 2017-11-11 10:07:42 +0200 Aki Tuomi (39f339f79) lib-storage: Set keyword based on attachment presence when saving If attachment is detected, use $HasAttachment, if not use $HasNoAttachment M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mail.c 2017-11-20 10:09:23 +0200 Aki Tuomi (08a89a646) lib-storage: Add attachment detection settings M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2017-11-10 14:32:44 +0200 Aki Tuomi (ce0a94fd3) lib-mail: Add message_part_has_attachment M src/lib-mail/message-part-data.c M src/lib-mail/message-part-data.h 2018-01-28 11:44:26 +0100 Stephan Bosch (79ed2b3cb) lib-smtp: client: Fix timeout leak sometimes occurring at unexpected remote disconnect. While disconnected, newly submitted commands are queued, yet scheduled for immediate failure. The timeout used for that was not cleaned up. M src/lib-smtp/smtp-client-connection.c 2017-12-27 12:05:50 +0200 Timo Sirainen (082a99e39) dovecot-config: Update lib-stats directory to lib-old-stats M dovecot-config.in.in 2017-12-23 19:40:09 +0100 Stephan Bosch (16a10546b) submission-login: Fixed handling of ssl=required for trusted connections. Normally, SSL is not required for trusted connections (e.g. localhost), but submission-login did not follow this standard. M src/submission-login/client.c 2017-12-24 15:12:36 +0100 Stephan Bosch (3d71010cf) submission: Restructure handling of QUIT command. - Avoid explicitly proxying QUIT command when the proxy connection is not ready: in that case the SMTP client connection will just send QUIT if appropriate, without waiting for reply. - Add timeout for proxied QUIT command, so that there are no problems when the relay server hangs after QUIT (addresses FIXME). M src/submission/cmd-quit.c M src/submission/submission-client.c M src/submission/submission-client.h M src/submission/submission-common.h 2017-12-24 14:52:07 +0100 Stephan Bosch (d99860b40) submission: Dropped unused field from struct client. M src/submission/submission-client.h 2017-12-24 12:17:48 +0100 Stephan Bosch (7a1eb3d24) submission-login: Fix pipelining of commands beyond AUTH. The master_data_prefix was initialized wrong; it omitted the expected '\0' byte after the helo field. M src/submission-login/client-authenticate.c 2017-12-24 12:15:29 +0100 Stephan Bosch (1ab2e30e9) submission: Initialize proxy connection before starting the SMTP server connection. The smtp_server_connection_login() function gets pre-login connection data from login service, which can contain commands. The execution of commands expects the proxy connection object to be initialized. M src/submission/submission-client.c 2018-01-26 20:37:32 +0100 Stephan Bosch (cdeb715d7) lib-program-client: Make an explicit enum for the exit code. Before, the meaning of the code was confusing, since the actual program returns a different set of values. M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.c 2018-01-20 21:32:07 +0100 Stephan Bosch (c8f94f5cc) lib-program-client: local: Add test for big data I/O. M src/lib-program-client/test-program-client-local.c 2018-01-24 01:17:59 +0100 Stephan Bosch (009cc18b7) lib-program-client: Document the purpose of the use_dotstream setting. M src/lib-program-client/program-client.h 2018-01-23 21:14:18 +0100 Stephan Bosch (b6f7d7833) lib-program-client: Add comments to program_input/program_output functions. M src/lib-program-client/program-client.c 2018-01-22 23:43:18 +0100 Stephan Bosch (fcc204af5) lib-program-client: Flush/finish the output stream after o_stream_send_istream(). There may still be data in the output stream buffer. Failing to flush this leads to truncated output. For the output towards the program o_stream_finish() is used, since there may be an ostream_dot in between (or something else for future features). M src/lib-program-client/program-client.c 2018-01-24 01:09:16 +0100 Stephan Bosch (dd1570448) lib-program-client: remote: Don't change exit_code in program_client_remote_disconnect() when program_input is already NULL. When the program_input is NULL, the stream is finished, meaning that the exit_code is set based on the return code. There can be a program_input for remote streams, even when the program produces no output. M src/lib-program-client/program-client-remote.c 2018-01-23 21:38:27 +0100 Stephan Bosch (c37e0424b) lib-program-client: Simplify cleanup of dot input stream in program_client_program_input(). M src/lib-program-client/program-client.c 2018-01-23 21:24:35 +0100 Stephan Bosch (2c572e480) lib-program-client: Restructure reading input from program to simplify handling of dot input stream. M src/lib-program-client/program-client.c 2018-01-22 23:25:34 +0100 Stephan Bosch (2bfc6ba71) lib-program-client: Use reliable means of checking for input stream EOF. M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.c 2018-01-24 21:48:07 +0100 Stephan Bosch (4dc9b016b) lib-program-client: Remove check for -2 returned from i_stream_read_more(). The stream must have space for at least 1 byte. M src/lib-program-client/program-client.c 2018-01-23 22:16:26 +0100 Stephan Bosch (505bb8dd3) lib-program-client: Remove useless stream eof check. It also looks to be problematic. M src/lib-program-client/program-client.c 2018-01-04 12:44:16 -0500 Josef 'Jeff' Sipek (23a46b915) imap: support for FETCH SNIPPET M configure.ac M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h 2018-01-22 13:33:29 +0200 Timo Sirainen (bc78d9e57) imapc: Fix deleting mailbox Broken by f8f30bd27e41e1041a8de0b97f35d7d75e0a412e M src/lib-storage/index/imapc/imapc-sync.c 2018-01-26 10:55:54 +0200 Aki Tuomi (6910b6969) lib-auth: Remove request after abort Otherwise the request will still stay in hash table and get dereferenced when all requests are aborted causing an attempt to access free'd memory. Found by Apollon Oikonomopoulos Broken in 1a29ed2f96da1be22fa5a4d96c7583aa81b8b060 M src/lib-auth/auth-client-request.c M src/lib-auth/auth-server-connection.c M src/lib-auth/auth-server-connection.h 2017-12-18 16:50:51 +0200 Timo Sirainen (77fe38480) lib-auth: Fix memory leak in auth_client_request_abort() This caused memory leaks when authentication was aborted. For example with IMAP: a AUTHENTICATE PLAIN * Broken by 9137c55411aa39d41c1e705ddc34d5bd26c65021 M src/lib-auth/auth-client-request.c 2018-01-24 18:01:48 +0200 Timo Sirainen (87dc9b69f) lib-index: Write forced cache decision changes immediately to cache file When mail_always/never_cache_fields doesn't match the current caching decisions in the cache file, write the updated decisions to the file. M src/lib-index/mail-cache-fields.c 2018-01-24 18:01:23 +0200 Timo Sirainen (d5a4d84db) lib-index: Code cleanup for reading caching decisions No functional changes. M src/lib-index/mail-cache-fields.c 2018-01-24 17:58:57 +0200 Timo Sirainen (865a7496b) lib-index: Finish fixing removal of forced cache decisions from existing cache files 6ef2504d020461b0f480766c41596595a4300023 didn't fix it for already known fields. M src/lib-index/mail-cache-fields.c 2018-01-23 00:04:28 +0200 Timo Sirainen (1e06000a1) lib-index: Fix removal of forced cache decisions from existing cache files The forced-flags are written to the cache file when the file is created. They were also read back, and the force-flag was preserved even when the configuration was removed. M src/lib-index/mail-cache-fields.c 2018-01-22 17:38:32 +0200 Timo Sirainen (faf444016) lib-index: Fix adding forced cache decisions to existing cache files If a field already existed in the cache file, the cache decision from the file was always used. This caused force-decisions to be ignored. M src/lib-index/mail-cache-fields.c 2018-01-08 15:08:10 +0200 Aki Tuomi (7b5357ea1) auth: passdb-cache - Verify credentials with worker when enabled M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-settings.h M src/auth/passdb-cache.c 2018-01-08 15:00:17 +0200 Aki Tuomi (6dddb5759) auth: Expose auth_request_verify_plain_callback_finish M src/auth/auth-request.c M src/auth/auth-request.h 2018-01-08 15:09:28 +0200 Aki Tuomi (c6efaa471) auth-worker: Support PASSW request This will attempt to verify given credentials. M src/auth/auth-worker-client.c 2018-01-08 14:52:10 +0200 Aki Tuomi (ff17366f9) auth-worker: Add auth_worker_auth_request_new Replaces worker_auth_request_new, moves in check for username and service. Simplifies code. M src/auth/auth-worker-client.c M src/auth/auth-worker-client.h 2018-01-02 12:33:50 +0200 Aki Tuomi (f6ff6151e) auth: passdb-blocking - Expose passdb_blocking_auth_worker_reply_parse Enables sharing code with passdb cache M src/auth/passdb-blocking.c M src/auth/passdb-blocking.h 2018-01-16 18:17:00 +0200 Timo Sirainen (1272b52e1) imapc: Fix imap_features=no-msn-updates to not fail on SELECT The initial EXISTS reply shouldn't be ignored, only the following ones. M src/lib-storage/index/imapc/imapc-mailbox.c 2017-12-25 11:10:19 +0200 Timo Sirainen (19dd64eb2) imapc: Add imapc_features=no-msn-updates This is a stricter version of fetch-msn-workarounds. The MSNs aren't trusted at all. This means any new untagged EXISTS and EXPUNGE replies are ignored, as well as untagged FETCH replies that don't include UID. A potential downside with this feature is that UID FETCH/STORE commands sent to expunged messages will likely fail without the IMAP client being notified of the EXPUNGEs. New mails are also not noticed, so this should be used only when it's known that the clients don't keep the connection open for long. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h 2017-12-25 16:11:26 +0200 Timo Sirainen (9c7ec3fa6) imapc: Fix sending initial FETCH after reconnection SELECTs mailbox Move sending the FETCH when the SELECT returns tagged OK reply instead of delaying it until mailbox is next synced. Most importantly this allows sending the FETCH before any retried commands that are also sent after SELECT receives tagged reply. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/imapc/imapc-sync.h 2017-12-25 22:48:00 +0200 Timo Sirainen (b5265b4a3) imapc: gmail-migration: Fetch X-GM-MSGID for new mails as well I'm not sure why it was originally restricted only for the initial FETCH. Fetching GUIDs for new mails can be just as useful. M src/lib-storage/index/imapc/imapc-mailbox.c 2017-12-25 20:21:40 +0200 Timo Sirainen (ddd79dd91) imapc: Move imapc_mailbox_fetch_state*() to imapc-mailbox.c Mainly to make the next commit smaller. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2017-12-25 19:19:09 +0200 Timo Sirainen (f3ccac7b4) imapc: Handle untagged UIDVALIDITY immediately This is part of the changes to fix mailbox resyncing after reconnect. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-sync.c 2017-12-25 19:34:31 +0200 Timo Sirainen (33b25be1b) imapc: If mailbox select fails, rollback any changes done to it Required by the following changes that start adding changes immediately after SELECT. If the initial syncing doesn't finish successfully, these changes need to be reverted. M src/lib-storage/index/imapc/imapc-mailbox.c 2017-12-25 19:33:33 +0200 Timo Sirainen (ce651ecc1) imapc: Keep "selected" state TRUE only while mailbox is successfully SELECTed M src/lib-storage/index/imapc/imapc-storage.c 2018-01-17 15:05:38 +0200 Timo Sirainen (88e551a4b) imapc: Fix leaking mail_index_view on delayed expunge handling Fixes: Panic: Leaked view for index (in-memory index): Opened in imapc-mailbox.c:47 M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-sync.c 2018-01-17 15:03:06 +0200 Timo Sirainen (41093d6fd) lib-imap-client: Avoid "Unknown tag" errors for aborted commands If mailbox is closed before all command replies were received, the commands were aborted but they'll still receive the replies from server. Remember the aborted commands' tag numbers so they can be ignored. M src/lib-imap-client/imapc-connection.c 2018-01-17 15:02:09 +0200 Timo Sirainen (f98b9b4cd) lib-imap-client: Fix reason text when unselecting mailbox aborts commands M src/lib-imap-client/imapc-connection.c 2017-12-25 21:31:05 +0200 Timo Sirainen (1421648d2) lib-imap-client: Add asserts for reconnect_command_count M src/lib-imap-client/imapc-connection.c 2017-12-25 21:29:06 +0200 Timo Sirainen (5044de006) lib-imap-client: Delay sending more commands while SELECT is running M src/lib-imap-client/imapc-connection.c 2017-12-25 18:49:15 +0200 Timo Sirainen (d405b0214) lib-imap-client: After reconnection send retried commands last Previously only SELECT was sent before others. This allows sending more commands on reconnection before the retried commands. M src/lib-imap-client/imapc-connection.c 2018-01-03 19:46:58 +0100 Stephan Bosch (bdfa22623) auth: client protocol: Recognize empty initial response field as an absent initial response for older clients. Particularly, Exim sends an empty initial response field in the AUTH request for an authentication command that has no initial response. Originally, Dovecot allowed this, but this was recently changed so that the EXTERNAL SASL mechanism works properly from ManageSieve. This commit makes it allowed again for older authentication clients to send an empty initial response field for an authentication command that has no initial response part. Sending '=' for an empty initial response is still allowed in general. M src/auth/auth-request-handler.c 2018-01-03 19:26:33 +0100 Stephan Bosch (1bc0a2012) auth: client protocol: Record minor version for authentication client connection. M src/auth/auth-client-connection.c M src/auth/auth-client-connection.h 2017-12-18 15:21:44 +0200 Timo Sirainen (e42d46d3a) global: Rename timing API to stats-dist API The API wasn't really about timings specifically, but about statistics in general. The new stats service was already using it for tracking statistics for non-timing related numbers. M src/dict/dict-commands.c M src/dict/dict-commands.h M src/dict/main.c M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib/Makefile.am A src/lib/stats-dist.c A src/lib/stats-dist.h M src/lib/test-lib.inc A src/lib/test-stats-dist.c D src/lib/test-timing.c D src/lib/timing.c D src/lib/timing.h M src/stats/client-reader.c M src/stats/stats-metrics.c M src/stats/stats-metrics.h 2017-12-12 15:21:17 +0200 Phil Carmody (ccd2f7b04) lib/timing - helper for arbitrary percentiles Replace fixed 95th %-ile helper with request for arbitrary percentiles, or even arbitrary fractions of the range. Signed-off-by: Phil Carmody M src/lib/timing.c M src/lib/timing.h 2017-12-28 13:53:14 +0200 Jarkko Mourujärvi (9e61bf469) doveconf: add hostname to output M src/config/doveconf.c 2017-12-28 10:47:28 +0200 Aki Tuomi (fce72ce5a) lib-http: Only depend on iostream openssl lib if building with openssl Fixes build without openssl M src/lib-http/Makefile.am 2017-12-25 18:24:35 +0200 Timo Sirainen (5a69ecf5a) lib-storage: mail_storage_set_index_error() - handle NULL index error This avoids assert-crashing later on in mail*_get_last_internal_error(). This could potentially be an assert instead of setting it as "BUG", but it looks like there are various code paths in lib-index that return -1 without setting an error. (That's to avoid duplicate error logging, although it could now be fixed with mail_index_set_error_nolog().) M src/lib-storage/mail-storage.c 2017-12-25 18:18:14 +0200 Timo Sirainen (8e4c41cde) lib-storage: Set index error on transaction commit() callback The commit callback is setting errors to storage. However, it's being called from mail_index_transaction_commit() whose callers are expecting the error to be in index. If that index error was attempted to be used, it could have been wrong or NULL. Fix this by setting the same storage error also to the index. M src/lib-storage/index/index-transaction.c 2017-12-25 18:17:57 +0200 Timo Sirainen (46105d626) lib-index: Add mail_index_set_error_nolog() M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c 2017-12-28 14:10:23 +0200 Timo Sirainen (8fe22c910) dsync: Add per-mailbox sync lock that is always used. Both importing and exporting gets the lock before they even sync the mailbox. The lock is kept until the import/export finishes. This guarantees that no matter how dsync is run, two dsyncs can't be working on the same mailbox at the same time. This lock is in addition to the optional per-user lock enabled by the -l parameter. If the -l parameter is used, the same lock timeout is used for the per-mailbox lock. Otherwise 30s timeout is used. This should help to avoid email duplication when replication is enabled for public namespaces, and maybe in some other rare situations as well. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-mailbox.c M src/doveadm/dsync/dsync-mailbox.h 2017-12-28 19:40:29 +0200 Timo Sirainen (e35a625b4) lib: Make file_lock_free(NULL) no-op M src/lib/file-lock.c 2017-12-28 10:27:27 +0200 Timo Sirainen (478f25379) dsync: Add debug logging for .dovecot-sync.lock locking/unlocking M src/doveadm/dsync/dsync-brain.c 2018-01-01 20:57:51 +0100 Stephan Bosch (393bfbea8) Updated copyright notices to include the year 2018. M doc/man/doveadm-acl.1.in M doc/man/doveadm-altmove.1.in M doc/man/doveadm-auth.1.in M doc/man/doveadm-batch.1.in M doc/man/doveadm-deduplicate.1.in M doc/man/doveadm-director.1.in M doc/man/doveadm-dump.1.in M doc/man/doveadm-exec.1.in M doc/man/doveadm-expunge.1.in M doc/man/doveadm-fetch.1.in M doc/man/doveadm-flags.1.in M doc/man/doveadm-force-resync.1.in M doc/man/doveadm-fs.1.in M doc/man/doveadm-fts.1.in M doc/man/doveadm-help.1.in M doc/man/doveadm-import.1.in M doc/man/doveadm-index.1.in M doc/man/doveadm-instance.1.in M doc/man/doveadm-kick.1.in M doc/man/doveadm-log.1.in M doc/man/doveadm-mailbox-cryptokey.1.in M doc/man/doveadm-mailbox.1.in M doc/man/doveadm-move.1.in M doc/man/doveadm-penalty.1.in M doc/man/doveadm-proxy.1.in M doc/man/doveadm-purge.1.in M doc/man/doveadm-pw.1.in M doc/man/doveadm-quota.1.in M doc/man/doveadm-replicator.1.in M doc/man/doveadm-save.1.in M doc/man/doveadm-search-query.7 M doc/man/doveadm-search.1.in M doc/man/doveadm-stats.1.in M doc/man/doveadm-sync.1.in M doc/man/doveadm-user.1.in M doc/man/doveadm-who.1.in M doc/man/doveadm.1.in M doc/man/doveconf.1.in M doc/man/dovecot-lda.1.in M doc/man/dovecot.1.in M src/anvil/anvil-connection.c M src/anvil/anvil-settings.c M src/anvil/connect-limit.c M src/anvil/main.c M src/anvil/penalty.c M src/anvil/test-penalty.c M src/auth/auth-cache.c M src/auth/auth-client-connection.c M src/auth/auth-fields.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-policy.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request-stats.c M src/auth/auth-request-var-expand.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-stats.c M src/auth/auth-token.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-checkpassword.c M src/auth/db-dict-cache-key.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-lua.c M src/auth/db-oauth2.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-dovecot-token.c M src/auth/mech-external.c M src/auth/mech-oauth2.c M src/auth/mech-plain-common.c M src/auth/mech-plain.c M src/auth/mech.c M src/auth/mycrypt.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-dict.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-lua.c M src/auth/passdb-oauth2.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-template.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme-pbkdf2.c M src/auth/password-scheme-rpa.c M src/auth/password-scheme-sodium.c M src/auth/password-scheme.c M src/auth/test-auth-cache.c M src/auth/test-auth-request-var-expand.c M src/auth/test-auth.h M src/auth/test-db-dict.c M src/auth/test-libpassword.c M src/auth/test-lua.c M src/auth/test-main.c M src/auth/test-mock.c M src/auth/test-username-filter.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-lua.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-template.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/config-settings.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-settings.c M src/dict/main.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-request.c M src/director/director-settings.c M src/director/director-test.c M src/director/director.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/main.c M src/director/notify-connection.c M src/director/test-user-directory.c M src/director/user-directory.c M src/dns/dns-client-settings.c M src/dns/dns-client.c M src/doveadm/client-connection-http.c M src/doveadm/client-connection-tcp.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth-server.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-dict.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-dump-dcrypt-file.c M src/doveadm/doveadm-dump-dcrypt-key.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-fs.c M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-batch.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-flags.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-save.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-mutf7.c M src/doveadm/doveadm-oldstats.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-formatted.c M src/doveadm/doveadm-print-json.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-pw.c M src/doveadm/doveadm-replicator.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-zlib.c M src/doveadm/doveadm.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-deserializer.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-state.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox.c M src/doveadm/dsync/dsync-serializer.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/doveadm/test-doveadm-util.c M src/imap-hibernate/imap-client.c M src/imap-hibernate/imap-hibernate-client.c M src/imap-hibernate/imap-hibernate-settings.c M src/imap-hibernate/imap-master-connection.c M src/imap-hibernate/main.c M src/imap-login/client-authenticate.c M src/imap-login/imap-login-client.c M src/imap-login/imap-login-commands.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-proxy.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-login-settings.c M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-append.c M src/imap/cmd-cancelupdate.c M src/imap/cmd-capability.c M src/imap/cmd-check.c M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-enable.c M src/imap/cmd-examine.c M src/imap/cmd-expunge.c M src/imap/cmd-fetch.c M src/imap/cmd-genurlauth.c M src/imap/cmd-getmetadata.c M src/imap/cmd-id.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-logout.c M src/imap/cmd-lsub.c M src/imap/cmd-namespace.c M src/imap/cmd-noop.c M src/imap/cmd-notify.c M src/imap/cmd-rename.c M src/imap/cmd-resetkey.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-setmetadata.c M src/imap/cmd-sort.c M src/imap/cmd-status.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/cmd-unselect.c M src/imap/cmd-unsubscribe.c M src/imap/cmd-urlfetch.c M src/imap/cmd-x-cancel.c M src/imap/cmd-x-state.c M src/imap/imap-client-hibernate.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-list.c M src/imap/imap-master-client.c M src/imap/imap-notify.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/imap-state.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/imap/main.c M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-settings.c M src/indexer/indexer-worker-settings.c M src/indexer/indexer-worker.c M src/indexer/indexer.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/indexer/worker-pool.c M src/ipc/client.c M src/ipc/ipc-connection.c M src/ipc/ipc-group.c M src/ipc/ipc-settings.c M src/ipc/main.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8-only.c M src/lib-charset/charset-utf8.c M src/lib-charset/test-charset.c M src/lib-compression/compression.c M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lz4.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c M src/lib-compression/test-compression.c M src/lib-dcrypt/dcrypt-gnutls.c M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c M src/lib-dict-backend/dict-cdb.c M src/lib-dict-backend/dict-db.c M src/lib-dict-backend/dict-ldap-settings.c M src/lib-dict-backend/dict-ldap.c M src/lib-dict-backend/dict-sql-settings.c M src/lib-dict-backend/dict-sql.c M src/lib-dict-backend/test-dict-sql.c M src/lib-dict-extra/dict-fs.c M src/lib-dict-extra/dict-register.c M src/lib-dict/dict-client.c M src/lib-dict/dict-fail.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-transaction-memory.c M src/lib-dict/dict.c M src/lib-dict/test-dict-client.c M src/lib-dict/test-dict.c M src/lib-dns/dns-lookup.c M src/lib-dns/dns-util.c M src/lib-dns/test-dns-util.c M src/lib-fs/fs-api.c M src/lib-fs/fs-dict.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-test-async.c M src/lib-fs/fs-test.c M src/lib-fs/fs-wrapper.c M src/lib-fs/istream-fs-file.c M src/lib-fs/istream-fs-stats.c M src/lib-fs/istream-metawrap.c M src/lib-fs/ostream-cmp.c M src/lib-fs/ostream-metawrap.c M src/lib-fs/test-fs-metawrap.c M src/lib-fs/test-fs-posix.c M src/lib-fts/fts-filter-common.c M src/lib-fts/fts-filter-contractions.c M src/lib-fts/fts-filter-english-possessive.c M src/lib-fts/fts-filter-lowercase.c M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-icu.c M src/lib-fts/fts-language.c M src/lib-fts/fts-library.c M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-common.c M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/fts-tokenizer.c M src/lib-fts/test-fts-filter.c M src/lib-fts/test-fts-icu.c M src/lib-fts/test-fts-language.c M src/lib-fts/test-fts-tokenizer.c M src/lib-http/http-auth.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-date.c M src/lib-http/http-header-parser.c M src/lib-http/http-header.c M src/lib-http/http-message-parser.c M src/lib-http/http-parser.c M src/lib-http/http-request-parser.c M src/lib-http/http-request.c M src/lib-http/http-response-parser.c M src/lib-http/http-response.c M src/lib-http/http-server-connection.c M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c M src/lib-http/http-server.c M src/lib-http/http-transfer-chunked.c M src/lib-http/http-url.c M src/lib-http/test-http-auth.c M src/lib-http/test-http-client-errors.c M src/lib-http/test-http-client.c M src/lib-http/test-http-date.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-payload.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-server-errors.c M src/lib-http/test-http-server.c M src/lib-http/test-http-transfer.c M src/lib-http/test-http-url.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-msgmap.c M src/lib-imap-client/test-imapc-client.c M src/lib-imap-storage/imap-metadata.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap/imap-arg.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-keepalive.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-seqset.c M src/lib-imap/imap-url.c M src/lib-imap/imap-utf7.c M src/lib-imap/imap-util.c M src/lib-imap/test-imap-bodystructure.c M src/lib-imap/test-imap-envelope.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-quote.c M src/lib-imap/test-imap-url.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-dummy-view.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-index-map.c M src/lib-index/test-mail-index-modseq.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-file.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/lda-settings.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-ldap/ldap-client.c M src/lib-ldap/ldap-compare.c M src/lib-ldap/ldap-connection-pool.c M src/lib-ldap/ldap-connection.c M src/lib-ldap/ldap-entry.c M src/lib-ldap/ldap-iterator.c M src/lib-ldap/ldap-search.c M src/lib-lua/dlua-compat.c M src/lib-lua/dlua-dovecot.c M src/lib-lua/dlua-script.c M src/lib-lua/test-lua.c M src/lib-mail/istream-attachment-connector.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-nonuls.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/istream-qp-encoder.c M src/lib-mail/mail-html2text.c M src/lib-mail/mail-user-hash.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-binary-part.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-hash.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-data.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-part.c M src/lib-mail/message-search.c M src/lib-mail/message-size.c M src/lib-mail/message-snippet.c M src/lib-mail/ostream-dot.c M src/lib-mail/qp-decoder.c M src/lib-mail/qp-encoder.c M src/lib-mail/quoted-printable.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-istream-binary-converter.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-istream-qp-encoder.c M src/lib-mail/test-mail-html2text.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-hash.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-message-part.c M src/lib-mail/test-message-search.c M src/lib-mail/test-message-snippet.c M src/lib-mail/test-ostream-dot.c M src/lib-mail/test-qp-decoder.c M src/lib-mail/test-qp-encoder.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-mail/test-rfc822-parser.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-auth.c M src/lib-master/master-instance.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-haproxy.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl.c M src/lib-master/master-service.c M src/lib-master/stats-client.c M src/lib-master/syslog-util.c M src/lib-master/test-master-service-settings-cache.c M src/lib-oauth2/oauth2-introspect.c M src/lib-oauth2/oauth2-private.h M src/lib-oauth2/oauth2-refresh.c M src/lib-oauth2/oauth2-token-validate.c M src/lib-oauth2/oauth2.c M src/lib-oauth2/oauth2.h M src/lib-old-stats/stats-connection.c M src/lib-old-stats/stats-parser.c M src/lib-old-stats/stats.c M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.c M src/lib-program-client/program-client.h M src/lib-program-client/test-program-client-local.c M src/lib-program-client/test-program-client-net.c M src/lib-program-client/test-program-client-unix.c M src/lib-sasl/dsasl-client.c M src/lib-sasl/mech-external.c M src/lib-sasl/mech-login.c M src/lib-sasl/mech-oauthbearer.c M src/lib-sasl/mech-plain.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-settings/test-settings-parser.c M src/lib-smtp/smtp-address.c M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-connection.c M src/lib-smtp/smtp-client-transaction.c M src/lib-smtp/smtp-client.c M src/lib-smtp/smtp-command-parser.c M src/lib-smtp/smtp-common.c M src/lib-smtp/smtp-params.c M src/lib-smtp/smtp-parser.c M src/lib-smtp/smtp-reply-parser.c M src/lib-smtp/smtp-reply.c M src/lib-smtp/smtp-server-cmd-auth.c M src/lib-smtp/smtp-server-cmd-data.c M src/lib-smtp/smtp-server-cmd-helo.c M src/lib-smtp/smtp-server-cmd-mail.c M src/lib-smtp/smtp-server-cmd-noop.c M src/lib-smtp/smtp-server-cmd-quit.c M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server-cmd-rset.c M src/lib-smtp/smtp-server-cmd-starttls.c M src/lib-smtp/smtp-server-cmd-vrfy.c M src/lib-smtp/smtp-server-cmd-xclient.c M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server-reply.c M src/lib-smtp/smtp-server-transaction.c M src/lib-smtp/smtp-server.c M src/lib-smtp/smtp-submit-settings.c M src/lib-smtp/smtp-submit.c M src/lib-smtp/smtp-syntax.c M src/lib-smtp/test-smtp-address.c M src/lib-smtp/test-smtp-client-errors.c M src/lib-smtp/test-smtp-command-parser.c M src/lib-smtp/test-smtp-params.c M src/lib-smtp/test-smtp-payload.c M src/lib-smtp/test-smtp-reply-parser.c M src/lib-smtp/test-smtp-server-errors.c M src/lib-smtp/test-smtp-submit.c M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/driver-test.c M src/lib-sql/sql-api.c M src/lib-sql/sql-db-cache.c M src/lib-ssl-iostream/dovecot-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl-context-cache.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-storage/fail-mail-storage.c M src/lib-storage/fail-mail.c M src/lib-storage/fail-mailbox.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-pop3-uidl.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search-mime.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-md5-all.c M src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync-update.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-notify-tree.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-autoexpunge.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-duplicate.c M src/lib-storage/mail-error.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-args-cmdline.c M src/lib-storage/mail-search-args-imap.c M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-mime-build.c M src/lib-storage/mail-search-mime-register.c M src/lib-storage/mail-search-mime.c M src/lib-storage/mail-search-parser-cmdline.c M src/lib-storage/mail-search-parser-imap.c M src/lib-storage/mail-search-parser.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-register.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-thread.c M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/lib-storage/mailbox-attribute-internal.c M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-header.c M src/lib-storage/mailbox-keywords.c M src/lib-storage/mailbox-list-notify.c M src/lib-storage/mailbox-list-register.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-recent-flags.c M src/lib-storage/mailbox-search-result.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/mailbox-watch.c M src/lib-storage/test-mail-search-args-imap.c M src/lib-storage/test-mail-search-args-simplify.c M src/lib-storage/test-mail-storage.c M src/lib-storage/test-mailbox-get.c M src/lib-test/test-common.c M src/lib-test/test-istream.c M src/lib-test/test-ostream.c M src/lib/aqueue.c M src/lib/array.c M src/lib/askpass.c M src/lib/backtrace-string.c M src/lib/base32.c M src/lib/base64.c M src/lib/bits.c M src/lib/bloomfilter.c M src/lib/bsearch-insert-pos.c M src/lib/buffer.c M src/lib/child-wait.c M src/lib/compat.c M src/lib/connection.c M src/lib/crc32.c M src/lib/data-stack.c M src/lib/eacces-error.c M src/lib/env-util.c M src/lib/event-filter.c M src/lib/event-log.c M src/lib/execv-const.c M src/lib/failures.c M src/lib/fd-util.c M src/lib/fdatasync-path.c M src/lib/fdpass.c M src/lib/file-cache.c M src/lib/file-copy.c M src/lib/file-create-locked.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/guid.c M src/lib/hash-format.c M src/lib/hash-method.c M src/lib/hash.c M src/lib/hash2.c M src/lib/hex-binary.c M src/lib/hex-dec.c M src/lib/home-expand.c M src/lib/hook-build.c M src/lib/hook-build.h M src/lib/hostpid.c M src/lib/imem.c M src/lib/ioloop-epoll.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/iostream-proxy.c M src/lib/iostream-proxy.h M src/lib/iostream-pump.c M src/lib/iostream-pump.h M src/lib/iostream-rawlog.c M src/lib/iostream-temp.c M src/lib/iostream.c M src/lib/ipwd.c M src/lib/iso8601-date.c M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/istream-callback.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-failure-at.c M src/lib/istream-file.c M src/lib/istream-hash.c M src/lib/istream-jsonstr.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-multiplex.c M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream-tee.c M src/lib/istream-timeout.c M src/lib/istream-try.c M src/lib/istream-unix.c M src/lib/istream.c M src/lib/json-parser.c M src/lib/json-tree.c M src/lib/lib-event.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/log-throttle.c M src/lib/memarea.c M src/lib/mempool-allocfree.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mkdir-parents.c M src/lib/mmap-anon.c M src/lib/mmap-util.c M src/lib/module-dir.c M src/lib/mountpoint.c M src/lib/net.c M src/lib/nfs-workarounds.c M src/lib/numpack.c M src/lib/ostream-buffer.c M src/lib/ostream-escaped.c M src/lib/ostream-failure-at.c M src/lib/ostream-file.c M src/lib/ostream-hash.c M src/lib/ostream-multiplex.c M src/lib/ostream-null.c M src/lib/ostream-rawlog.c M src/lib/ostream-unix.c M src/lib/ostream.c M src/lib/path-util.c M src/lib/pkcs5.c M src/lib/primes.c M src/lib/printf-format-fix.c M src/lib/priorityq.c M src/lib/process-title.c M src/lib/rand.c M src/lib/randgen.c M src/lib/read-full.c M src/lib/restrict-access.c M src/lib/restrict-process-size.c M src/lib/safe-memset.c M src/lib/safe-mkdir.c M src/lib/safe-mkstemp.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/sort.c M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str-table.c M src/lib/str.c M src/lib/strescape.c M src/lib/strfuncs.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/test-base32.c M src/lib/test-base64.c M src/lib/test-bits.c M src/lib/test-bloomfilter.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-buffer.c M src/lib/test-crc32.c M src/lib/test-data-stack.c M src/lib/test-failures.c M src/lib/test-file-create-locked.c M src/lib/test-guid.c M src/lib/test-hash-format.c M src/lib/test-hash-method.c M src/lib/test-hash.c M src/lib/test-hex-binary.c M src/lib/test-hmac.c M src/lib/test-imem.c M src/lib/test-ioloop.c M src/lib/test-iostream-proxy.c M src/lib/test-iostream-pump.c M src/lib/test-iostream-temp.c M src/lib/test-iso8601-date.c M src/lib/test-istream-base64-decoder.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-chain.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-failure-at.c M src/lib/test-istream-jsonstr.c M src/lib/test-istream-multiplex.c M src/lib/test-istream-seekable.c M src/lib/test-istream-sized.c M src/lib/test-istream-tee.c M src/lib/test-istream-try.c M src/lib/test-istream-unix.c M src/lib/test-istream.c M src/lib/test-json-parser.c M src/lib/test-json-tree.c M src/lib/test-lib-signals.c M src/lib/test-lib.c M src/lib/test-llist.c M src/lib/test-log-throttle.c M src/lib/test-malloc-overflow.c M src/lib/test-memarea.c M src/lib/test-mempool-allocfree.c M src/lib/test-mempool-alloconly.c M src/lib/test-mempool.c M src/lib/test-multiplex.c M src/lib/test-murmurhash3.c M src/lib/test-net.c M src/lib/test-numpack.c M src/lib/test-ostream-buffer.c M src/lib/test-ostream-escaped.c M src/lib/test-ostream-failure-at.c M src/lib/test-ostream-file.c M src/lib/test-ostream-multiplex.c M src/lib/test-path-util.c M src/lib/test-pkcs5.c M src/lib/test-primes.c M src/lib/test-printf-format-fix.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-str-find.c M src/lib/test-str-sanitize.c M src/lib/test-str-table.c M src/lib/test-str.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-strnum.c M src/lib/test-time-util.c M src/lib/test-timing.c M src/lib/test-unichar.c M src/lib/test-uri.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/test-wildcard-match.c M src/lib/time-util.c M src/lib/timing.c M src/lib/unichar.c M src/lib/unix-socket-create.c M src/lib/unlink-directory.c M src/lib/unlink-old-files.c M src/lib/uri-util.c M src/lib/utc-mktime.c M src/lib/utc-offset.c M src/lib/var-expand-if.c M src/lib/var-expand.c M src/lib/write-full.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c M src/log/doveadm-connection.c M src/log/log-connection.c M src/log/log-error-buffer.c M src/log/log-settings.c M src/log/main.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/master/capabilities-posix.c M src/master/dup2-array.c M src/master/main.c M src/master/master-client.c M src/master/master-settings.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/master/service-process.c M src/master/service.c M src/old-stats/client-export.c M src/old-stats/client-reset.c M src/old-stats/client.c M src/old-stats/fifo-input-connection.c M src/old-stats/global-memory.c M src/old-stats/mail-command.c M src/old-stats/mail-domain.c M src/old-stats/mail-ip.c M src/old-stats/mail-session.c M src/old-stats/mail-stats.c M src/old-stats/mail-user.c M src/old-stats/main.c M src/old-stats/stats-carbon.c M src/old-stats/stats-settings.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile-update.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-global-file.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c M src/plugins/acl/doveadm-acl.c M src/plugins/apparmor/apparmor-plugin.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fs-compress/fs-compress.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search-args.c M src/plugins/fts/fts-search-serialize.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-user.c M src/plugins/fts/xml2text.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-old-stats/imap-stats-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/last-login/last-login-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mail-crypt/doveadm-mail-crypt.c M src/plugins/mail-crypt/fs-crypt-common.c M src/plugins/mail-crypt/fs-crypt-settings.c M src/plugins/mail-crypt/fs-crypt.c M src/plugins/mail-crypt/fs-mail-crypt.c M src/plugins/mail-crypt/mail-crypt-acl-plugin.c M src/plugins/mail-crypt/mail-crypt-global-key.c M src/plugins/mail-crypt/mail-crypt-key.c M src/plugins/mail-crypt/mail-crypt-plugin.c M src/plugins/mail-crypt/mail-crypt-pluginenv.c M src/plugins/mail-crypt/mail-crypt-userenv.c M src/plugins/mail-crypt/test-mail-global-key.c M src/plugins/mail-crypt/test-mail-key.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/mail-filter-plugin.c M src/plugins/mail-filter/ostream-ext-filter.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/mailbox-alias/mailbox-alias-plugin.c M src/plugins/notify-status/notify-status-plugin.c M src/plugins/notify/notify-plugin.c M src/plugins/notify/notify-storage.c M src/plugins/old-stats/mail-stats-connection.c M src/plugins/old-stats/mail-stats-fill.c M src/plugins/old-stats/mail-stats.c M src/plugins/old-stats/stats-plugin.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/pop3-migration/test-pop3-migration-plugin.c M src/plugins/push-notification/push-notification-driver-dlog.c M src/plugins/push-notification/push-notification-driver-ox.c M src/plugins/push-notification/push-notification-drivers.c M src/plugins/push-notification/push-notification-drivers.h M src/plugins/push-notification/push-notification-event-flagsclear.c M src/plugins/push-notification/push-notification-event-flagsclear.h M src/plugins/push-notification/push-notification-event-flagsset.c M src/plugins/push-notification/push-notification-event-flagsset.h M src/plugins/push-notification/push-notification-event-mailboxcreate.c M src/plugins/push-notification/push-notification-event-mailboxcreate.h M src/plugins/push-notification/push-notification-event-mailboxdelete.c M src/plugins/push-notification/push-notification-event-mailboxdelete.h M src/plugins/push-notification/push-notification-event-mailboxrename.c M src/plugins/push-notification/push-notification-event-mailboxrename.h M src/plugins/push-notification/push-notification-event-mailboxsubscribe.c M src/plugins/push-notification/push-notification-event-mailboxsubscribe.h M src/plugins/push-notification/push-notification-event-mailboxunsubscribe.c M src/plugins/push-notification/push-notification-event-mailboxunsubscribe.h M src/plugins/push-notification/push-notification-event-message-common.h M src/plugins/push-notification/push-notification-event-messageappend.c M src/plugins/push-notification/push-notification-event-messageappend.h M src/plugins/push-notification/push-notification-event-messageexpunge.c M src/plugins/push-notification/push-notification-event-messageexpunge.h M src/plugins/push-notification/push-notification-event-messagenew.c M src/plugins/push-notification/push-notification-event-messagenew.h M src/plugins/push-notification/push-notification-event-messageread.c M src/plugins/push-notification/push-notification-event-messageread.h M src/plugins/push-notification/push-notification-event-messagetrash.c M src/plugins/push-notification/push-notification-event-messagetrash.h M src/plugins/push-notification/push-notification-events-rfc5423.c M src/plugins/push-notification/push-notification-events-rfc5423.h M src/plugins/push-notification/push-notification-events.c M src/plugins/push-notification/push-notification-events.h M src/plugins/push-notification/push-notification-plugin.c M src/plugins/push-notification/push-notification-plugin.h M src/plugins/push-notification/push-notification-triggers.c M src/plugins/push-notification/push-notification-triggers.h M src/plugins/push-notification/push-notification-txn-mbox.c M src/plugins/push-notification/push-notification-txn-mbox.h M src/plugins/push-notification/push-notification-txn-msg.c M src/plugins/push-notification/push-notification-txn-msg.h M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-imapc.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-status-settings.c M src/plugins/quota/quota-status.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota-util.c M src/plugins/quota/quota.c M src/plugins/quota/test-quota-util.c M src/plugins/replication/replication-plugin.c M src/plugins/snarf/snarf-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/var-expand-crypt/test-var-expand-crypt.c M src/plugins/var-expand-crypt/var-expand-crypt-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/plugins/welcome/welcome-plugin.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/pop3-login-settings.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/replication/aggregator/aggregator-settings.c M src/replication/aggregator/aggregator.c M src/replication/aggregator/notify-connection.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/dsync-client.c M src/replication/replicator/notify-connection.c M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue-auth.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-settings.c M src/replication/replicator/replicator.c M src/stats/client-reader.c M src/stats/client-writer.c M src/stats/main.c M src/stats/stats-event-category.c M src/stats/stats-metrics.c M src/stats/stats-settings.c M src/submission-login/client-authenticate.c M src/submission-login/client.c M src/submission-login/submission-login-settings.c M src/submission-login/submission-proxy.c M src/submission/cmd-data.c M src/submission/cmd-helo.c M src/submission/cmd-mail.c M src/submission/cmd-noop.c M src/submission/cmd-quit.c M src/submission/cmd-rcpt.c M src/submission/cmd-rset.c M src/submission/cmd-vrfy.c M src/submission/main.c M src/submission/submission-client.c M src/submission/submission-commands.c M src/submission/submission-settings.c M src/util/gdbhelper.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap-settings.c M src/util/tcpwrap.c 2017-12-22 15:12:30 +0200 Timo Sirainen (6f9ffa758) doveadm dump: Add "multiplex" dump type This allows dumping all channels from istream-multiplex stream. M src/doveadm/doveadm-dump.c 2017-12-22 15:11:45 +0200 Timo Sirainen (baf3b9be9) doveadm dump: Allow doveadm_cmd_dump.test() to be NULL This means that there's no auto-detection for the dump type. M src/doveadm/doveadm-dump.c 2017-12-22 15:10:00 +0200 Timo Sirainen (4fcc78432) lib: istream-multiplex - Return error if the last packet wasn't fully read M src/lib/istream-multiplex.c 2017-12-22 15:07:28 +0200 Timo Sirainen (1082d0bd0) doveadm: Fix potential crash or reading garbage from doveadm-server The connection's input buffer may have been reallocated or otherwise moved while checking for log input. M src/doveadm/server-connection.c 2017-12-22 13:36:32 +0200 Timo Sirainen (5bb288821) doveadm: Don't connect to stats-writer for the "quick init" commands M src/doveadm/doveadm.c 2017-12-22 13:20:41 +0200 Timo Sirainen (1d8edec1f) lib-master: Add master_service_init_stats_client() This allows initializing the stats client after master_service_init() if necessary. M src/lib-master/master-service-settings.c M src/lib-master/master-service.c M src/lib-master/master-service.h 2017-12-22 13:27:48 +0200 Timo Sirainen (aa572aa74) lib-master: Hide connect(stats-writer) errors when running via CLI Only hide errors that occur if the stats process isn't running, i.e. when socket isn't found or there's no listener. This way e.g. permission errors are still logged, which points to a wrong configuration. M src/lib-master/master-service-settings.c M src/lib-master/stats-client.c M src/lib-master/stats-client.h 2017-12-22 13:34:45 +0200 Aki Tuomi (7b1c74874) auth: Fix password and scheme handling in Lua db This was only partially fixed in c86575ac9776d0995355d03719c82e7ceac802e6 M src/auth/db-lua.c M src/auth/passdb-lua.c 2017-12-22 09:42:50 +0200 Timo Sirainen (c0e0c9769) imap-old-stats plugin: Finish renaming the plugin The init functions and dependency were named wrong, so it didn't work. M src/plugins/imap-old-stats/imap-stats-plugin.c M src/plugins/imap-old-stats/imap-stats-plugin.h 2017-12-22 09:37:53 +0200 Timo Sirainen (73c823e0c) m4: Fix detecting libsodium to use LIBS instead of LDFLAGS Patch by Eray Aslan M m4/want_sodium.m4 2017-12-22 09:36:48 +0200 Timo Sirainen (88a301536) m4: Avoid _FORTIFY_SOURCE redefinition warnings Some source based distros like Gentoo already enable -D_FORTIFY_SOURCE=2 by default resulting in the following warnings during build: :0:0: warning: "_FORTIFY_SOURCE" redefined : note: this is the location of the previous definition Patch by Eray Aslan M m4/cc_fortify.m4 2017-12-22 09:59:27 +0200 Timo Sirainen (20b273fb5) example-config: Fix postmaster_address comment The default value was wrong. M doc/example-config/conf.d/15-lda.conf 2017-12-22 11:25:06 +0200 Timo Sirainen (8fe339187) doveadm-server: Fix potential hangs with SSL connections M src/doveadm/client-connection-tcp.c 2017-12-18 21:58:16 +0200 Timo Sirainen (23ff476d9) auth: Don't include LIBSODIUM_LIBS in dependencies Put it into AUTH_LIBS among other libraries that are used by auth. M m4/want_sodium.m4 M src/auth/Makefile.am 2017-12-21 23:09:13 +0100 Stephan Bosch (70b97d678) lib-smtp: server: STARTTLS command: Call smtp_server_connection_set_ssl_streams() after calling the conn_start_tls() connection callback. This is called instead smtp_server_connection_set_streams(), so that the connection is now marked as SSL-secured. This fixes a submission-login bug that prevented client login when ssl=required. M src/lib-smtp/smtp-server-cmd-starttls.c 2017-12-21 23:07:10 +0100 Stephan Bosch (7237272b0) lib-smtp: server: Add smtp_server_connection_set_ssl_streams(). It wraps smtp_server_connection_set_streams() and additionally marks the connection as SSL-secured. M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server.h 2017-12-21 23:00:18 +0100 Stephan Bosch (6438494e2) lib-smtp: server: Change conn_start_tls() connection callback to return a success status. M src/lib-smtp/smtp-server-cmd-starttls.c M src/lib-smtp/smtp-server.h M src/submission-login/client.c 2017-12-19 00:29:03 +0200 Timo Sirainen (7923e2c54) man: Update version number to v2.3 M doc/man/doveadm-acl.1.in M doc/man/doveadm-altmove.1.in M doc/man/doveadm-auth.1.in M doc/man/doveadm-batch.1.in M doc/man/doveadm-deduplicate.1.in M doc/man/doveadm-director.1.in M doc/man/doveadm-dump.1.in M doc/man/doveadm-exec.1.in M doc/man/doveadm-expunge.1.in M doc/man/doveadm-fetch.1.in M doc/man/doveadm-flags.1.in M doc/man/doveadm-force-resync.1.in M doc/man/doveadm-fs.1.in M doc/man/doveadm-fts.1.in M doc/man/doveadm-help.1.in M doc/man/doveadm-import.1.in M doc/man/doveadm-index.1.in M doc/man/doveadm-instance.1.in M doc/man/doveadm-kick.1.in M doc/man/doveadm-log.1.in M doc/man/doveadm-mailbox-cryptokey.1.in M doc/man/doveadm-mailbox.1.in M doc/man/doveadm-move.1.in M doc/man/doveadm-penalty.1.in M doc/man/doveadm-proxy.1.in M doc/man/doveadm-purge.1.in M doc/man/doveadm-pw.1.in M doc/man/doveadm-quota.1.in M doc/man/doveadm-replicator.1.in M doc/man/doveadm-save.1.in M doc/man/doveadm-search-query.7 M doc/man/doveadm-search.1.in M doc/man/doveadm-stats.1.in M doc/man/doveadm-sync.1.in M doc/man/doveadm-user.1.in M doc/man/doveadm-who.1.in M doc/man/doveadm.1.in M doc/man/doveconf.1.in M doc/man/dovecot-lda.1.in M doc/man/dovecot.1.in 2017-12-18 16:45:23 +0100 Stephan Bosch (28fede787) lib-smtp: server: Fixed assertion in smtp_server_connection_next_reply() checking whether command is fully replied. It did not handle LMTP DATA/BDAT command correctly, for which there can be multiple replies. This fixes mixing local/remote recipients in LMTP, which used to crash: Panic: file smtp-server-connection.c: line 610 (smtp_server_connection_next_reply): assertion failed: (cmd->state == SMTP_SERVER_COMMAND_STATE_READY_TO_REPLY && smtp_server_command_is_replied(cmd)) M src/lib-smtp/smtp-server-connection.c 2017-12-18 19:28:10 +0100 Stephan Bosch (cfb605f89) lib-smtp: server: Fix compile error in smtp-server-cmd-helo.c. Error was: "smtp-server-cmd-helo.c", line 140: void function cannot return value M src/lib-smtp/smtp-server-cmd-helo.c 2017-12-18 15:20:07 +0100 Stephan Bosch (97fad7a94) lib-smtp: command parser: Fix error recovery. Input characters were not skipped upon error, meaning that error recovery would encounter these again. This would make the parser parse the same data over and over again, yielding the same error. This in turn caused the SMTP server application to hang in an infinite input loop, submitting error replies in the process, thereby filling up the process memory until exhaustion. Problem seen in submission service, but LMTP is also affected. M src/lib-smtp/smtp-command-parser.c 2017-12-18 14:08:16 +0200 Timo Sirainen (a72c75064) lib-smtp: server: Fix panic when disconnecting client aborting commands This happened at least if the relay server simply disconnected without sending any output. Fixes: Panic: file submission-commands.c: line 39: unreached M src/submission/submission-commands.c 2017-12-18 14:04:48 +0200 Timo Sirainen (aa7058315) lib-smtp: smtp_server_connection_pending_command_data() - don't crash if smtp_parser is NULL M src/lib-smtp/smtp-server-connection.c 2017-12-18 13:16:09 +0100 Stephan Bosch (b1e79edd1) doc: example-config: Properly document SSL configuration for submission relay server. M doc/example-config/conf.d/20-submission.conf 2017-12-18 12:08:43 +0200 Timo Sirainen (c9d1ad790) submission: Fix memory leaks at deinit when submission_relay_host setting is missing M src/submission/main.c 2017-12-18 12:06:43 +0200 Timo Sirainen (f8d6f8d9c) lib-smtp: server: Fix panic when io_remove() is called too late With submission-login the conn_disconnect() callback ends up in login-common's client_disconnect(), which closes the file descriptor. The io_remove() was done afterwards, which caused a crash: submission-login: Panic: epoll_ctl(del, 18) failed: Bad file descriptor M src/lib-smtp/smtp-server-connection.c 2017-12-18 12:05:59 +0200 Timo Sirainen (2814b4731) lib-smtp: server: Fix infinite loop when client disconnects in initial state M src/lib-smtp/smtp-command-parser.c M src/lib-smtp/smtp-command-parser.h M src/lib-smtp/test-smtp-command-parser.c 2017-12-18 12:48:07 +0200 Timo Sirainen (9b375f535) old-stats plugin: Rename stats_* settings to old_stats_* M src/plugins/old-stats/stats-plugin.c 2017-12-18 12:47:47 +0200 Timo Sirainen (de6d2161a) auth: Install stats plugin to old-stats/ Fixes using auth_stats=yes M src/auth/Makefile.am 2017-12-17 20:41:52 +0200 Timo Sirainen (52e8bf347) lib: Fix using appended log prefixes for events when full prefix isn't replaced M src/lib/event-log.c 2017-12-17 20:39:39 +0200 Timo Sirainen (1a5b03701) lib: Fix using failure_context.log_prefix with internal log process communication M src/lib/failures.c 2017-12-17 20:38:38 +0200 Timo Sirainen (bf882696e) log: Add "disable log prefix" flag to log lines M src/lib/failures.c M src/lib/failures.h M src/log/log-connection.c 2017-12-17 20:35:58 +0200 Timo Sirainen (c2c58ed42) lib: Add event_send() M src/lib/lib-event-private.h M src/lib/lib-event.c 2017-12-17 20:35:42 +0200 Timo Sirainen (642f2bbc5) lib: Rename event_send() to event_vsend() M src/lib/event-log.c M src/lib/lib-event-private.h M src/lib/lib-event.c 2017-12-15 23:28:58 +0100 Stephan Bosch (4e29b62d6) lmtp: local: Properly handle a user being over quota. Recent changes caused quota enforcement to be ineffective. M src/lmtp/lmtp-local.c 2017-12-15 21:31:44 +0100 Stephan Bosch (8d7c24743) lmtp: local: Make sure pending recipient is always destroyed. Before, the recipient was not freed when the server/connection ended prematurely. M src/lmtp/lmtp-local.c 2017-12-14 23:00:00 +0200 Timo Sirainen (c9f90d9eb) login-proxy: Add back support for ssl_client_cert/key Forgot to add these while rewriting login-proxy to use lib-ssl-iostream. M src/login-common/login-proxy.c 2017-12-14 22:59:30 +0200 Timo Sirainen (024ca279d) lib-ssl-iostream: If allow_invalid_cert=TRUE, skip verifying hostname M src/lib-ssl-iostream/iostream-openssl.c 2017-12-15 14:42:54 +0200 Timo Sirainen (552d37ca8) lib-master: Fix master_service_ssl_settings_to_iostream_set() for client settings ssl_verify_client_cert setting applies only to server side. For client side we always verify the SSL certificate validity. M src/lib-master/master-service-ssl-settings.c 2017-12-15 14:11:37 +0200 Timo Sirainen (88dac1aac) lib-http: Add http_client_init_private() This allows creating a HTTP client without a shared context, in case it's needed for some reason. M src/lib-http/http-client.c M src/lib-http/http-client.h 2017-12-15 14:10:43 +0200 Timo Sirainen (00ef90726) lib-http: Change http_client_init() to use the global shared client context This is most likely what is usually wanted. M src/lib-http/http-client.c M src/lib-http/http-client.h 2017-12-15 14:08:20 +0200 Timo Sirainen (a9f37034e) lib-http: Add http_client_get_global_context() M src/lib-http/http-client.c M src/lib-http/http-client.h 2017-12-14 21:49:08 +0200 Timo Sirainen (993b1b96f) fts: Code cleanup M src/plugins/fts/fts-build-mail.c 2017-12-14 21:42:45 +0200 Timo Sirainen (3813ebcae) fts: Don't try to retry parsing if indexing already fails M src/plugins/fts/fts-build-mail.c 2017-12-14 21:39:08 +0200 Timo Sirainen (d7c139d9a) fts: Use consistent naming for retriable_err_msg It's only for retriable errors, not errors in general M src/plugins/fts/fts-build-mail.c 2017-12-14 21:34:31 +0200 Timo Sirainen (d8ebe885f) fts: Make sure may_need_retry is reset between attempts. It wasn't if the second attempt failed early. M src/plugins/fts/fts-build-mail.c 2017-12-14 21:26:28 +0200 Timo Sirainen (f4c18fa75) fts: Add assert to make sure fts_parser.deinit() returns retriable_error_msg when needed M src/plugins/fts/fts-parser.c 2017-12-14 21:25:54 +0200 Timo Sirainen (fc2b89b11) fts: fts-parser-tika - Add assert to make sure retriable_error_msg is set M src/plugins/fts/fts-parser-tika.c 2017-12-14 21:25:14 +0200 Timo Sirainen (cbe118de8) fts: fts-parser-script - Fix deinit return value M src/plugins/fts/fts-parser-script.c 2017-12-14 21:23:30 +0200 Timo Sirainen (07bfc948f) fts: fts-parser-html - Fix deinit return value M src/plugins/fts/fts-parser-html.c 2017-12-14 21:53:14 +0200 Timo Sirainen (76f255362) fts: fts_parser_deinit() - Fix default return value M src/plugins/fts/fts-parser.c 2017-12-14 21:24:10 +0200 Timo Sirainen (8c93c82c9) fts: Add comment to fts_parser_deinit() describing its API M src/plugins/fts/fts-parser.h 2017-12-14 10:31:26 +0200 Timo Sirainen (ec61c407c) lib: Fix static analyzer warning about uninitialized va_list M src/lib/lib-event.c 2017-12-14 12:01:33 +0200 Timo Sirainen (3b4d14637) lib-storage: Delay error handing for invalid postmaster_address setting M src/lib-lda/mail-send.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2017-12-14 20:56:36 +0200 Timo Sirainen (117ae1417) cassandra: Fix crash when using prepared statements Broken by cae3c6903c10682429f9849ab1a25093e3f538e4 M src/lib-sql/driver-cassandra.c 2017-12-14 23:10:22 +0200 Timo Sirainen (a074b1e40) *-login: Avoid unnecessary "OK Waiting for authentication process to respond" These happened with SSL connections when the process was starting up. The ssl-istream was triggering the IO callback, which was thinking that the client was sending a command. If this happened early on before auth process connection was finished, this caused several unnecessary notifications to the client. M src/login-common/client-common.c 2017-12-14 23:23:13 +0200 Timo Sirainen (99a6ea3fc) global: Finish fixing oldstats plugin/service rename M src/old-stats/stats-settings.c M src/plugins/old-stats/mail-stats.c M src/plugins/old-stats/stats-plugin.h 2017-12-14 21:50:58 +0100 Stephan Bosch (3c8a16354) lib-http: client: Check whether client is running in a wait loop with the correct condition. This used to check client->ioloop != NULL, but now it should check client->waiting. Previous commit (e8a1b62fe4a81b211dcccd1a58b44f254074eab6) omitted a few instances where this should have been changed. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2017-12-14 10:46:39 +0100 Stephan Bosch (21bc26166) lda: Do not replace the NULL sender with a default address. Only do this substitution locally where a NULL sender would cause problems, not everywhere else. This e.g. causes problems when determining whether to send a rejection somewhere; attempts would be made to mail . Also other envelope-based (Sieve) tests would get confused. M src/lda/main.c 2017-12-14 10:42:07 +0100 Stephan Bosch (a1f1ff107) lib-lda: Properly check whether MAIL FROM is the NULL sender <>. There's a function for that, since comparison with NULL pointer is not sufficient. M src/lib-lda/mail-deliver.c 2017-12-13 20:53:09 +0200 Timo Sirainen (e36634029) lib-master: stats-client - Fix reconnection if handshake wait fails Fixes: Warning: Timeout leak: 0x5555556ac8d0 (stats-client.c:132) M src/lib-master/stats-client.c 2017-12-14 13:02:10 +0100 Stephan Bosch (a46221f25) submission-login: Fix another NULL dereference occurring at an invalid reply from the backend server. The text variable was still being used when it could be NULL. Made the offending code dependent on the reply validity check. Problem found by Coverity. M src/submission-login/submission-proxy.c 2017-12-14 14:13:11 +0200 Timo Sirainen (7a8063142) oldstats plugin: Fix init/deinit function names M src/plugins/old-stats/stats-plugin.c 2017-12-14 02:11:28 +0200 Timo Sirainen (75aaa1aba) lib-storage: mailbox_list_index - Don't overwrite INBOX's flags with prefix/INBOX's This made the real INBOX appear as if it was \NoSelect M src/lib-storage/list/mailbox-list-index-sync.c 2017-12-14 02:10:27 +0200 Timo Sirainen (6081f6a51) lib-storage: mailbox_list_index - indentation cleanup M src/lib-storage/list/mailbox-list-index-sync.c 2017-12-14 01:39:32 +0200 Timo Sirainen (65492363f) lib-storage: mailbox_list_index - List prefix/INBOX if it necessary M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index.h 2017-12-14 01:36:50 +0200 Timo Sirainen (874dc8408) LAYOUT=fs: Fix listing prefix/INBOX Removed some confusing special case code that didn't seem to work very well. Implemented this now properly so that prefix/INBOX is listed as \NoSelect mailbox whenever it has children. It's not actually possible to differentiate between INBOX and prefix/INBOX in the storage for a inbox=yes namespace, because they both are converted into the same storage_name=INBOX. M src/lib-storage/list/mailbox-list-fs-iter.c 2017-12-14 01:34:25 +0200 Timo Sirainen (141aa0e60) LAYOUT=fs: List INBOX as \NoInferiors when necessary M src/lib-storage/list/mailbox-list-fs-iter.c 2017-12-14 01:31:10 +0200 Timo Sirainen (f7dd04ec9) LAYOUT=index: List INBOX as \NoInferiors when necessary M src/lib-storage/list/mailbox-list-index-iter.c 2017-12-14 01:23:45 +0200 Timo Sirainen (38e602683) LAYOUT=Maildir++: List INBOX as \NoInferiors when necessary M src/lib-storage/list/mailbox-list-maildir-iter.c 2017-12-14 01:23:01 +0200 Timo Sirainen (9a2149ccc) lib-storage: Add mail_namespace_is_inbox_noinferiors() M src/lib-storage/mail-namespace.h 2017-12-08 16:14:11 +0200 Timo Sirainen (50ba09cd2) imapc: Don't skip listing "INBOX" when INBOX/ namespace prefix is used. The INBOX was still listed as part of the autocreated mailboxes, unless MAILBOX_LIST_ITER_NO_AUTO_BOXES was used. M src/lib-storage/index/imapc/imapc-list.c 2017-12-13 19:11:02 +0200 Timo Sirainen (673ee24d1) lib: mempool-allocfree - make static analyzer happier with pool clearing It was thinking that already freed memory was being accessed. M src/lib/mempool-allocfree.c 2017-12-13 20:55:59 +0200 Timo Sirainen (11d4b189a) dbox: Fix creating dbox-alt-root symlink when mail root directory doesn't exist Broken by 74664ac6dcf88cfc2ae6378c87c20ba694385a23 M src/lib-storage/index/dbox-common/dbox-storage.c 2017-12-13 21:52:41 +0100 Stephan Bosch (af7956fbd) lib-http: client: peer: Properly handle claiming an existing connection. If no other connections were being created, request handling was not restarted. This problem sometimes caused the client to hang. Fixed by calling http_client_peer_connection_success() upon claiming an existing connection. M src/lib-http/http-client-peer.c 2017-12-13 18:16:07 +0100 Stephan Bosch (20138b8f1) lib-http: test-http-payload: Terminate the test if it is hanging for some reason. M src/lib-http/test-http-payload.c 2017-12-13 17:27:10 +0100 Stephan Bosch (b7f1ebf92) lib-http: test-http-payload: Amend shared client tests to do both download and echo tests. Also, the original download tests were named wrong. M src/lib-http/test-http-payload.c 2017-12-13 17:29:09 +0100 Stephan Bosch (c9f7a211d) lib-http: test-http-payload: Fixed indent problems. M src/lib-http/test-http-payload.c 2017-12-13 14:44:01 +0200 Timo Sirainen (f46a703b2) doveadm stats dump: Add -r parameter to reset stats after dumping M src/doveadm/doveadm-stats.c 2017-12-13 14:43:43 +0200 Timo Sirainen (9c675f5e2) stats: Add DUMP-RESET command to reset stats after dumping them M src/stats/client-reader.c M src/stats/stats-metrics.c M src/stats/stats-metrics.h 2017-12-12 21:38:46 +0200 Timo Sirainen (74664ac6d) lib-storage: Delay creating mail root directory until it's necessary M src/lib-storage/mail-storage.c 2017-12-12 21:36:07 +0200 Timo Sirainen (d95773f27) lib-storage: Make sure index root is created when it's the same as root directory This is required by the following commit. M src/lib-storage/mailbox-list.c 2017-08-09 20:06:00 +0200 Stephan Bosch (e8a1b62fe) lib-http: client: Made http_client record the current ioloop it is switched to. This prevents http_client_wait() from switching the client to an ioloop it was never explicitly switched to. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2017-12-13 14:19:41 +0200 Timo Sirainen (481992bfe) imap: Fix o_stream_is_corked() assert check All the callers cork the stream, so this can only mean that the corking failed because the connection was already closed. Continue handling the input anyway. Fixes: Panic: file imap-client.c: line 1236 (client_handle_input): assertion failed: (o_stream_is_corked(client->output)) M src/imap/imap-client.c 2017-12-13 15:48:17 +0200 Timo Sirainen (a8200366c) LAYOUT=index: Fix crash in doveadm force-resync if storage doesn't implement list_index_rebuild() Broken by recent changes. M src/lib-storage/list/mailbox-list-index-backend.c 2017-12-12 18:10:40 +0200 Timo Sirainen (f54470684) LAYOUT=index: Fix updating STATUS changes in mailbox list index Mailbox list index backend code was overriding sync_init and sync_deinit methods, which STATUS handling had already already overridden. They both used the same super struct, so STATUS's sync_* were never called. M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-storage.h M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2017-12-13 15:54:40 +0200 Timo Sirainen (583c5314e) lib-master: Fix logging "Expected FILTER" error M src/lib-master/stats-client.c 2017-12-13 15:54:11 +0200 Timo Sirainen (db2d8dff7) stats: Fix logging unknown client command error M src/stats/client-writer.c 2017-12-13 14:37:59 +0200 Martti Rannanjärvi (0e8ff50d2) .gitignore: Ignore src/old-stats/old-stats M .gitignore 2017-12-04 23:39:41 +0200 Timo Sirainen (324f41beb) lib-http: Add named event: http_request_finished M src/lib-http/http-client-request.c 2017-12-04 21:56:29 +0200 Timo Sirainen (285f3c4cf) doveadm: Add new "stats dump" command M src/doveadm/Makefile.am M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h A src/doveadm/doveadm-stats.c 2017-12-04 21:23:44 +0200 Timo Sirainen (838d6a475) global: Enable MASTER_SERVICE_FLAG_SEND_STATS for mail processes M src/doveadm/doveadm.c M src/doveadm/main.c M src/imap/main.c M src/indexer/indexer-worker.c M src/lmtp/main.c M src/pop3/main.c 2017-12-04 20:39:05 +0200 Timo Sirainen (15dd18994) lib: connection - When receiving invalid VERSION line, log the line contents M src/lib/connection.c 2017-12-04 20:33:58 +0200 Timo Sirainen (2fb27941f) log: Fix restoring global log prefix It was allocated from data stack, which was freed by master_service_init_finish(). This may have caused wrong prefix to be used for log's internal error messages, or restoring the global log prefix could have crashed: Panic: file strfuncs.c: line 147 (t_noalloc_strdup_vprintf): assertion failed: ((unsigned int)ret == *size_r-1) M src/log/log-connection.h M src/log/main.c 2017-12-08 00:15:40 +0200 Timo Sirainen (36409af77) lib-http: client: Replace http_*_debug() with e_debug() M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2017-12-04 12:58:47 +0200 Timo Sirainen (39018a601) lib-http: client: Remove redundant debug logging checks M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2017-12-04 12:35:46 +0200 Timo Sirainen (2d1ad5742) lib-http: client: Add support for event API M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2017-12-04 12:27:00 +0200 Timo Sirainen (a79ae29fa) lib-http: Cleanup - Add name parameter to http_client_host_create() M src/lib-http/http-client-host.c 2017-12-03 19:31:20 +0200 Timo Sirainen (b254b8ec1) lib-fs: Replace i_error() calls with e_error() M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2017-12-03 19:26:11 +0200 Timo Sirainen (fc59aba4b) lib-fs: Add fs_file/iter_init_with_event() Use the event for logging critical errors M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-sis-common.c 2017-12-04 15:06:36 +0200 Timo Sirainen (6d1218e68) lib-fs: Add fs_file/iter_init_parent() M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-wrapper.c M src/plugins/fs-compress/fs-compress.c M src/plugins/mail-crypt/fs-crypt-common.c 2017-12-04 14:55:01 +0200 Timo Sirainen (4110f968c) lib-fs: Set fs_iter.flags immediately in fs_iter_init() This way backends don't need to set it. M src/lib-fs/fs-api.c M src/lib-fs/fs-dict.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-test.c M src/lib-fs/fs-wrapper.c 2017-12-04 14:53:37 +0200 Timo Sirainen (4d71d712b) lib-fs: Split allocation from fs.iter_init() to a separate fs.iter_alloc() M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-dict.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-test.c M src/lib-fs/fs-wrapper.c M src/lib-fs/fs-wrapper.h M src/plugins/fs-compress/fs-compress.c M src/plugins/mail-crypt/fs-crypt.c M src/plugins/mail-crypt/fs-mail-crypt.c 2017-12-04 14:43:53 +0200 Timo Sirainen (86ad48a2e) lib-fs: Split allocation from fs.file_init() to a separate fs.file_alloc() M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-dict.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-test.c M src/plugins/fs-compress/fs-compress.c M src/plugins/mail-crypt/fs-crypt-common.c M src/plugins/mail-crypt/fs-crypt.c M src/plugins/mail-crypt/fs-mail-crypt.c 2017-11-23 17:46:23 +0100 Timo Sirainen (b63e20ea9) lib-master: Add stats-client Enable it if MASTER_SERVICE_FLAG_SEND_STATS is set M src/lib-master/Makefile.am M src/lib-master/master-service-private.h M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-master/master-service.c M src/lib-master/master-service.h A src/lib-master/stats-client.c A src/lib-master/stats-client.h M src/lib/lib-event-private.h 2017-11-22 17:36:09 +0100 Timo Sirainen (e9068f1c3) stats: Add new stats service M configure.ac M src/Makefile.am A src/stats/Makefile.am A src/stats/client-reader.c A src/stats/client-reader.h A src/stats/client-writer.c A src/stats/client-writer.h A src/stats/main.c A src/stats/stats-event-category.c A src/stats/stats-event-category.h A src/stats/stats-metrics.c A src/stats/stats-metrics.h A src/stats/stats-settings.c A src/stats/stats-settings.h 2017-11-21 18:22:38 +0100 Timo Sirainen (9c9d84213) imap: Add imap_command_finished event. This can be used to get per-command statistics. M src/imap/imap-client.c 2017-11-21 16:05:30 +0100 Timo Sirainen (1c02804cd) imap: Add client_command_context.event and use it as global event while running M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c M src/imap/imap-notify.c M src/imap/imap-state.c 2017-11-21 15:33:59 +0100 Timo Sirainen (fcad7b5f8) imap: Add client.event and use it as mail_*user's parent event M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-common.h M src/imap/main.c 2017-11-21 13:13:49 +0100 Timo Sirainen (ceac664d4) lib-index: mail_index_set_error() - log error using index's event M src/lib-index/mail-index.c 2017-11-21 13:13:40 +0100 Timo Sirainen (82d158d37) lib-index: Add mail_index.event M src/doveadm/doveadm-dump-index.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-alloc-cache.h M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c M src/lib-index/mail-index.h M src/lib-index/test-mail-index-modseq.c M src/lib-index/test-mail-transaction-log-file.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-storage.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/mail-storage.c M src/lib-storage/test-mail-search-args-simplify.c 2017-11-21 13:03:03 +0100 Timo Sirainen (6610dc505) lib-storage: mail_storage_set_critical() - log error using user's event Fix test-storage unit test to also initialize mail_user.event so it won't crash. M src/lib-storage/mail-storage.c M src/lib-storage/test-mail-storage.c 2017-11-21 12:59:40 +0100 Timo Sirainen (c499c40ca) lib-storage: Add mail.event M src/lib-storage/index/index-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2017-11-21 12:51:10 +0100 Timo Sirainen (b644a77b0) lib-storage: Add mailbox.event M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2017-11-20 19:33:40 +0100 Timo Sirainen (677cc0d62) lib-storage: Add mail_user.event and give parent event in mail_user_alloc*() M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2017-11-20 17:26:42 +0100 Timo Sirainen (d2729522f) lib-storage: Add mail_storage_service_user.event and use it as the global event The event is set in the same place as where the user's default logging prefix is changed. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2017-11-22 15:41:51 +0100 Timo Sirainen (1fd856f11) lib-master: Add log_debug setting lib-master understands only the global log_debug setting, which is passed to it via environment from master process, or alternatively via doveconf when executing standalone programs. Any per-user log_debug settings need to be handled explicitly elsewhere. M src/lib-master/master-interface.h M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-master/master-service.c M src/master/service-process.c 2017-11-22 14:51:47 +0100 Timo Sirainen (c6ab22366) lib: Add event filtering to debug logging M src/lib/event-log.c M src/lib/event-log.h M src/lib/lib-event-private.h M src/lib/lib-event.c 2017-11-22 13:55:51 +0100 Timo Sirainen (918384d45) lib: Add event filter This currently supports matching events by: * name * source file:line * categories * key=value fields M src/lib/Makefile.am A src/lib/event-filter.c A src/lib/event-filter.h M src/lib/lib-event.c M src/lib/lib.c 2017-12-04 21:20:49 +0200 Timo Sirainen (53ea4ad7b) lib: Add event_import() and event_export() M src/lib/lib-event-private.h M src/lib/lib-event.c 2017-10-23 11:18:59 +0300 Timo Sirainen (b8a1347a9) lib: Add event API The events are hierarchical and the child events inherit the parents' fields. The events will be attached to "objects", which gives them some context. For example each mail user, mailbox and mail will have its own event. The events can also have a log prefix, so logging events to e.g. mail will always log a consistent prefix that identifies which mail is being logged about. The events will also be used for statistics. Typically this is done by logging a debug event, which contains fields that are interesting for statistics. The interesting events will have a name, which can be used to identify them when configuring which statistics are wanted to be tracked. It's possible to also track events that have no name, but that requires using the source code's filename:line as the event name. That of course may change between releases, so it's not very reliable. M src/lib/Makefile.am A src/lib/event-log.c A src/lib/event-log.h A src/lib/lib-event-private.h A src/lib/lib-event.c A src/lib/lib-event.h M src/lib/lib.c M src/lib/lib.h 2017-11-17 12:37:15 +0200 Timo Sirainen (982c30abd) lib: Add failure_context.log_prefix to override the default M src/lib/failures.c M src/lib/failures.h 2017-11-13 16:08:15 +0200 Timo Sirainen (8009758e9) lib: Add i_log_typev() M src/lib/failures.c M src/lib/failures.h 2017-12-12 01:04:29 +0200 Timo Sirainen (4b51ecbac) lib: ioloop.h - improve ioloop context comments M src/lib/ioloop.h 2017-12-12 01:20:52 +0200 Timo Sirainen (c4995cea8) lib-storage: Remove mail_storage_service_io_deactivate() We now require that ioloop context is always properly deactivated, so there's no need for the function. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2017-12-12 01:19:04 +0200 Timo Sirainen (64c7bca60) imap, pop3: Remove unnecessary call to mail_storage_service_io_deactivate() The context is automatically deactivated when service user is freed. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/main.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-client.h 2017-12-12 01:17:22 +0200 Timo Sirainen (cafe72dae) lib-storage: mail_storage_service_io_[de]activate_user() - [de]activate the whole ioloop context M src/lib-storage/mail-storage-service.c 2017-12-12 01:33:08 +0200 Timo Sirainen (b758c6027) lib-storage: mail_storage_service_user_unref() - deactivate user before removing callbacks Otherwise the next commit won't work correctly. M src/lib-storage/mail-storage-service.c 2017-12-12 01:12:43 +0200 Timo Sirainen (0f8663fcd) lib-storage: Create ioloop context regardless of logging settings This will be needed by the following commits. M src/lib-storage/mail-storage-service.c 2017-12-12 01:04:06 +0200 Timo Sirainen (391fa1126) lib: io_loop_context_deactivate() - Assert that given context is currently active M src/lib/ioloop.c 2017-12-12 01:02:27 +0200 Timo Sirainen (76da9d599) lib: io_loop_context_new() - deactivate old context Since it changes the current context, it needs to deactivate the old one. M src/lib/ioloop.c 2017-12-12 01:01:33 +0200 Timo Sirainen (1da9355e6) lib: io_loop_destroy() - Assert-crash if ioloop contet is still set It may be too late to try to deactivate it at that point, so it points to a bug. M src/lib/ioloop.c 2017-12-12 00:50:36 +0200 Timo Sirainen (7446aaf9c) lib: Move io_loop_context_[de]activate() to be public M src/lib/ioloop-private.h M src/lib/ioloop.h 2017-12-08 00:54:51 +0200 Timo Sirainen (92fc2c856) lib: timing - Allow changing sample buffer size M src/lib/timing.c M src/lib/timing.h 2017-11-21 14:46:30 +0100 Timo Sirainen (6ef83bcdc) global: Renamed stats plugin and service to old-stats M configure.ac M src/Makefile.am M src/auth/Makefile.am M src/auth/auth-request-stats.c M src/doveadm/Makefile.am M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h R096 src/doveadm/doveadm-stats.c src/doveadm/doveadm-oldstats.c M src/doveadm/doveadm.c R079 src/lib-stats/Makefile.am src/lib-old-stats/Makefile.am R100 src/lib-stats/stats-connection.c src/lib-old-stats/stats-connection.c R100 src/lib-stats/stats-connection.h src/lib-old-stats/stats-connection.h R100 src/lib-stats/stats-parser.c src/lib-old-stats/stats-parser.c R100 src/lib-stats/stats-parser.h src/lib-old-stats/stats-parser.h R100 src/lib-stats/stats.c src/lib-old-stats/stats.c R100 src/lib-stats/stats.h src/lib-old-stats/stats.h R071 src/stats/Makefile.am src/old-stats/Makefile.am R100 src/stats/client-export.c src/old-stats/client-export.c R100 src/stats/client-export.h src/old-stats/client-export.h R100 src/stats/client-reset.c src/old-stats/client-reset.c R100 src/stats/client-reset.h src/old-stats/client-reset.h R100 src/stats/client.c src/old-stats/client.c R100 src/stats/client.h src/old-stats/client.h R100 src/stats/fifo-input-connection.c src/old-stats/fifo-input-connection.c R100 src/stats/fifo-input-connection.h src/old-stats/fifo-input-connection.h R100 src/stats/global-memory.c src/old-stats/global-memory.c R100 src/stats/global-memory.h src/old-stats/global-memory.h R100 src/stats/mail-command.c src/old-stats/mail-command.c R100 src/stats/mail-command.h src/old-stats/mail-command.h R100 src/stats/mail-domain.c src/old-stats/mail-domain.c R100 src/stats/mail-domain.h src/old-stats/mail-domain.h R100 src/stats/mail-ip.c src/old-stats/mail-ip.c R100 src/stats/mail-ip.h src/old-stats/mail-ip.h R100 src/stats/mail-session.c src/old-stats/mail-session.c R100 src/stats/mail-session.h src/old-stats/mail-session.h R100 src/stats/mail-stats.c src/old-stats/mail-stats.c R100 src/stats/mail-stats.h src/old-stats/mail-stats.h R100 src/stats/mail-user.c src/old-stats/mail-user.c R100 src/stats/mail-user.h src/old-stats/mail-user.h R098 src/stats/main.c src/old-stats/main.c R100 src/stats/stats-carbon.c src/old-stats/stats-carbon.c R100 src/stats/stats-carbon.h src/old-stats/stats-carbon.h R050 src/stats/stats-settings.c src/old-stats/stats-settings.c R067 src/stats/stats-settings.h src/old-stats/stats-settings.h M src/plugins/Makefile.am R055 src/plugins/imap-stats/Makefile.am src/plugins/imap-old-stats/Makefile.am R100 src/plugins/imap-stats/imap-stats-plugin.c src/plugins/imap-old-stats/imap-stats-plugin.c R100 src/plugins/imap-stats/imap-stats-plugin.h src/plugins/imap-old-stats/imap-stats-plugin.h A src/plugins/old-stats/Makefile.am R100 src/plugins/stats/mail-stats-connection.c src/plugins/old-stats/mail-stats-connection.c R100 src/plugins/stats/mail-stats-connection.h src/plugins/old-stats/mail-stats-connection.h R100 src/plugins/stats/mail-stats-fill.c src/plugins/old-stats/mail-stats-fill.c R100 src/plugins/stats/mail-stats.c src/plugins/old-stats/mail-stats.c R100 src/plugins/stats/mail-stats.h src/plugins/old-stats/mail-stats.h R099 src/plugins/stats/stats-plugin.c src/plugins/old-stats/stats-plugin.c R100 src/plugins/stats/stats-plugin.h src/plugins/old-stats/stats-plugin.h D src/plugins/stats/Makefile.am 2017-12-12 12:41:29 -0500 Josef 'Jeff' Sipek (0cce67356) submission: remove unnecessary casts Casting from a void * to any pointer type is automatic and doesn't require an explicit cast. M src/submission/cmd-data.c M src/submission/cmd-helo.c M src/submission/cmd-mail.c M src/submission/cmd-noop.c M src/submission/cmd-quit.c M src/submission/cmd-rcpt.c M src/submission/cmd-rset.c M src/submission/cmd-vrfy.c M src/submission/submission-client.c 2017-12-12 11:55:15 -0500 Josef 'Jeff' Sipek (c4588e66e) submission-login: use container_of instead of casts M src/submission-login/client-authenticate.c M src/submission-login/client.c M src/submission-login/submission-proxy.c 2017-12-12 11:26:21 -0500 Josef 'Jeff' Sipek (0afd9a9ac) submission-login: remove unnecessary casts Casting from a void * to any pointer type is automatic and doesn't require an explicit cast. M src/submission-login/client-authenticate.c M src/submission-login/client.c M src/submission-login/submission-proxy.c 2017-12-12 11:18:10 -0500 Josef 'Jeff' Sipek (c5e46dba1) global: drop unnecessary parens in &(foo) This makes the code more consistent since most of the repo uses the no-parens style. These inconsistencies were found using `git grep '(&([^*]'` and any use of the parens in macros was ignored for safety reasons. M src/auth/auth-policy.c M src/doveadm/doveadm-cmd.c M src/lib-dcrypt/dcrypt-gnutls.c M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/ostream-encrypt.c M src/lib-dict-backend/dict-ldap.c M src/lib-ldap/ldap-connection.c M src/lib-ldap/ldap-entry.c M src/lib-ldap/ldap-iterator.c M src/lib-ldap/ldap-search.c 2017-12-12 11:10:15 -0500 Josef 'Jeff' Sipek (4afd5b656) global: io_remove*(NULL) is a no-op M src/lib-ldap/ldap-connection.c M src/lib-master/master-service.c 2017-11-27 14:11:40 -0500 Josef 'Jeff' Sipek (d90a92448) global: timeout_remove(NULL) is a no-op M src/dict/dict-connection.c M src/director/user-directory.c M src/imap/imap-notify.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-queue.c M src/lib-imap-client/imapc-connection.c M src/lib-ldap/ldap-connection.c M src/lib-master/anvil-client.c M src/lib-master/master-service.c M src/lib-sql/driver-pgsql.c M src/plugins/fts-lucene/lucene-wrapper.cc 2017-12-13 10:50:38 +0200 Aki Tuomi (47758f933) m4: Fix sodium checks Make sure it actually has password checking function M m4/want_sodium.m4 2017-12-12 21:53:42 +0100 Stephan Bosch (82bddf836) submission-login: Added default listener for secure submission on port 465 (submissions). This is analogous to pop3s and imaps. Efforts to standardize the use of this port are almost finished: https://datatracker.ietf.org/doc/draft-ietf-uta-email-deep/ M src/submission-login/submission-login-settings.c 2017-12-12 21:46:53 +0100 Stephan Bosch (4a1af46c8) submission-login: Fix NULL dereference occurring at an invalid reply from the backend server. Problem found by Coverity. M src/submission-login/submission-proxy.c 2017-12-12 12:18:06 -0500 Josef 'Jeff' Sipek (836ed7eb3) lib-smtp: fix uoff_t vs. size_t confusion M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-server-cmd-data.c M src/lib-smtp/test-smtp-payload.c 2017-12-12 16:07:52 +0200 Sergey Kitov (e7e3f4055) plugins/fts: Return back comment about Server Error. M src/plugins/fts/fts-parser-tika.c 2017-12-12 16:06:14 +0200 Sergey Kitov (71b43772a) plugins/fts: Retry all 5xx tika http statuses, not only 500 M src/plugins/fts/fts-parser-tika.c 2017-12-12 08:56:31 -0500 Josef 'Jeff' Sipek (70a88f28a) director: avoid comparison between signed and unsigned ints M src/director/director-connection.c 2017-12-12 08:55:58 -0500 Josef 'Jeff' Sipek (2e758d161) submission: use correct format string for printing uoff_t M src/submission/cmd-helo.c 2017-12-11 14:18:20 +0100 Stephan Bosch (5af1ff01b) Update README regarding supported RFCs. Some were missing and new ones are added by the recent lib-smtp and submission service changes. M README.md 2017-12-11 18:07:35 +0200 Timo Sirainen (f2cd173a0) config: Add a warning comment to the generated all-settings.c M src/config/settings-get.pl 2017-12-11 20:29:29 +0100 Stephan Bosch (0a6796cac) doc: example-config: Fix installation of the example configuration for the submission service. Forgot to add it to Makefile.am. M doc/example-config/conf.d/Makefile.am 2017-12-11 15:55:32 +0100 Stephan Bosch (b1aac3a1d) lmtp: Fix segfault occurring in client_read_settings(). This problem is caused by recent changes. The code attempts to access client->conn to obtain connection security info, which is not yet assigned at that point. It is doubtful whether assigning those security flags is useful at that stage, but it now uses the ssl flag from the master_service_connection instead. M src/lmtp/client.c 2017-12-11 15:53:45 +0100 Stephan Bosch (823802b00) lmtp: Removed useless ssl_start parameter for client_create(). The same information is already contained in the conn parameter. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/main.c 2017-11-11 14:20:59 +0100 Stephan Bosch (2cbbe9b48) Implemented SMTP submission proxy service. M .gitignore M TODO M configure.ac M doc/example-config/conf.d/10-director.conf M doc/example-config/conf.d/10-master.conf M doc/example-config/conf.d/10-ssl.conf A doc/example-config/conf.d/20-submission.conf M doc/example-config/dovecot.conf M src/Makefile.am A src/submission-login/Makefile.am A src/submission-login/client-authenticate.c A src/submission-login/client-authenticate.h A src/submission-login/client.c A src/submission-login/client.h A src/submission-login/submission-login-settings.c A src/submission-login/submission-login-settings.h A src/submission-login/submission-proxy.c A src/submission-login/submission-proxy.h A src/submission/Makefile.am A src/submission/cmd-data.c A src/submission/cmd-helo.c A src/submission/cmd-mail.c A src/submission/cmd-noop.c A src/submission/cmd-quit.c A src/submission/cmd-rcpt.c A src/submission/cmd-rset.c A src/submission/cmd-vrfy.c A src/submission/main.c A src/submission/submission-client.c A src/submission/submission-client.h A src/submission/submission-commands.c A src/submission/submission-commands.h A src/submission/submission-common.h A src/submission/submission-settings.c A src/submission/submission-settings.h 2017-12-09 02:09:35 +0100 Stephan Bosch (211caf3c2) lib-storage: mail-user: Added more information about the client connection. Submission service will need it to pass to the backend MTA in XCLIENT and for creating the "Received:" header. M src/imap/main.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lib-storage/mail-user.h M src/lmtp/client.c M src/lmtp/lmtp-local.c M src/pop3/main.c 2017-12-09 02:34:52 +0100 Stephan Bosch (e213fe0f4) lib-master: master-auth: Pass more information about the user connection to the backend in struct master_auth_request. Adds remote and local ports and security information about the connection. This changes the master-auth protocol incompatibly, so the major version is updated. M src/lib-master/master-auth.h M src/login-common/sasl-server.c 2017-12-09 02:33:16 +0100 Stephan Bosch (9666d130b) login-common: Added flag to client that indicates whether connection is secured using SSL specifically. M src/login-common/client-common.c M src/login-common/client-common.h 2017-12-09 01:52:28 +0100 Stephan Bosch (ff4ba036f) lib-storage: mail-user: Changed mail_user_set_vars() to accept struct mail_user_connection_data, rather than individual fields. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2017-12-09 01:29:06 +0100 Stephan Bosch (60670187b) lib-storage: Moved connection information in struct mail_user into separate struct mail_user_connection_data. M src/imap/cmd-idle.c M src/imap/imap-client-hibernate.c M src/imap/main.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h M src/plugins/stats/mail-stats-connection.c M src/pop3/main.c 2017-12-09 01:11:53 +0100 Stephan Bosch (2ded32b16) imap: cmd-idle: Created local variable for client in idle_add_keepalive_timeout(). M src/imap/cmd-idle.c 2017-12-09 01:04:48 +0100 Stephan Bosch (8c1199cac) imap: imap-client-hibernate: Created local variable for mail_user in imap_hibernate_write_cmd(). M src/imap/imap-client-hibernate.c 2016-09-26 09:25:32 +0200 Stephan Bosch (f1edf7f20) imap-urlauth: Allow connections from services other than IMAP. The imap-urlauth service detects the new submission service and assigns the appropriate privileges. The dovecot-token authentication mechanism provides information on which service connected to it. M src/auth/mech-dovecot-token.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-client.h M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap-urlauth/imap-urlauth.c M src/imap/imap-client.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-connection.h M src/lib-imap-urlauth/imap-urlauth-private.h M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap-urlauth/imap-urlauth.h 2017-11-10 17:18:28 +0100 Stephan Bosch (dfafc4ac8) login-common: Added client_disconnect(), which allows explicitly disconnecting the client before it is destroyed. This is sometimes needed to make sure the SSL layer is closed properly before destroying the underlying connection. M src/login-common/client-common.c M src/login-common/client-common.h 2016-09-26 19:12:19 +0200 Stephan Bosch (a1852ab4c) login-common: Added support for login services that handle their own input io. M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h 2017-12-10 11:28:44 +0100 Stephan Bosch (4dd460cf1) lib-smtp: server: Added max_recipients setting, which enforces a recipient limit per-transaction. M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server-connection.c M src/lib-smtp/smtp-server.c M src/lib-smtp/smtp-server.h M src/lib-smtp/test-smtp-server-errors.c 2017-12-10 11:26:10 +0100 Stephan Bosch (6d76b99eb) lib-smtp: server: transaction: Added smtp_server_transaction_rcpt_count(). M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-transaction.c 2017-12-11 02:19:52 +0100 Stephan Bosch (1f4f829f8) lib-smtp: server: DATA/BDAT command: Make sure chunk stream is dereferenced early. The submission BURL command - which uses part of the same code - runs into trouble otherwise. This could also be an actual istream reference leak outside BURL, but that is not confirmed. M src/lib-smtp/smtp-server-cmd-data.c 2017-12-10 11:32:28 +0100 Stephan Bosch (090abb197) lib-smtp: server: DATA command: Continue processing connection input once DATA reply is submitted. Fixes a potential connection hang. M src/lib-smtp/smtp-server-cmd-data.c 2017-12-10 11:31:24 +0100 Stephan Bosch (e69ac57b1) lib-smtp: server: command: Added smtp_server_command_input_unlock(). Allows unlock input for a command that was earlier locked with smtp_server_command_input_lock(). M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server.h 2017-12-11 10:33:09 +0100 Stephan Bosch (237ff492d) lib-smtp: server: DATA command: Make sure there is a transaction in smtp_server_connection_data_check_state() before using it. This fixes a potential NULL dereference. Found by Coverity. M src/lib-smtp/smtp-server-cmd-data.c 2017-12-11 10:37:58 +0100 Stephan Bosch (eda1c4f68) lib-smtp: server: DATA command: Fixed check for valid recipients in smtp_server_connection_data_check_state(). Can only decide whether we have valid recipients once there are no more pending RCPT commands. M src/lib-smtp/smtp-server-cmd-data.c 2017-12-11 04:18:54 +0100 Stephan Bosch (479f238c9) lib-smtp: server: Removed inappropriate NULL check in smtp_server_connection_send_replies(). Caller holds a reference, so it can never be NULL. Found by Coverity. M src/lib-smtp/smtp-server-connection.c 2017-12-11 10:41:53 +0100 Stephan Bosch (c13d3128f) lib-smtp: server: Remove useless o_stream_flush() in smtp_server_connection_disconnect(). This is already performed implicitly by o_stream_uncork(). Fixes a problem found by Coverity. M src/lib-smtp/smtp-server-connection.c 2017-12-10 20:00:21 +0200 Timo Sirainen (21138be49) lib-test: istream-test - Don't modify existing snapshots' memareas At least with --enable-devel-checks this caused istream-sized unit test to randomly panic: Panic: file istream.c: line 279 (i_stream_read): assertion failed: (memcmp(prev_buf, prev_data + prev_skip, prev_pos - prev_skip) == 0) M src/lib-test/test-istream.c 2017-12-11 12:59:58 +0100 Stephan Bosch (ea4a85f58) lib-http: client: Cleaned up initialization of client settings. There were checks for the client context not being NULL, which makes no sense anymore, since a private context is always created when none is provided. Problem reported by Coverity. M src/lib-http/http-client.c 2017-12-05 17:05:27 +0200 Aki Tuomi (66bdf53db) lib: test-var-expand - Ensure var_get_key_range_full handles nested ifs correctly M src/lib/test-var-expand.c 2017-12-01 19:46:58 +0200 Aki Tuomi (f5d1cfca5) lib: var-expand - handle \{ and \} correctly Do not treat these as embedded braces M src/lib/var-expand.c 2017-12-01 14:53:46 +0200 Aki Tuomi (20a8a1265) lib: Support nested keys in var_get_key_range_full Fixes problems with %{if...} failed: if: requires four or five parameters, got 1 M src/lib/var-expand.c 2017-12-11 12:52:38 +0200 Martti Rannanjärvi (53e4a0d5c) auth: Debug log an LDAP request result only once M src/auth/db-ldap.c M src/auth/db-ldap.h 2017-12-11 12:47:32 +0200 Martti Rannanjärvi (5ced9eb9e) auth: Have ldap_request instead of auth_request in db_ldap_result_iterate_context This makes it easier to access ldap_request where needed later. M src/auth/db-ldap.c 2017-10-09 13:57:12 +0300 Sergey Kitov (dc1e69cd9) fts: fts_parser_tika replace empty path with "/" indexing doesn't crash if fts_tika = http://host:port setting is missing trailing '/' M src/plugins/fts/fts-parser-tika.c 2017-10-09 13:53:42 +0300 Sergey Kitov (8e1eaf849) fts: Retry indexing for tika backend in case of internal server error M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-parser.h 2017-10-09 13:13:05 +0300 Sergey Kitov (72d301f57) fts: Extend parser's deinit function interface with retriable_err_msg_r parameter the new parameter will be set to a error string in case indexing may need retrying, so it will be logged later when decision about retry will be made. M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-parser.h 2017-10-09 11:23:54 +0300 Sergey Kitov (43f4e550e) fts: Parser move try_init arguments to a single structure parser_context. M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-parser.h M src/plugins/fts/xml2text.c 2017-11-27 14:19:34 +0200 Martti Rannanjärvi (d4002fe1f) global: Use mail_set_critical() and mailbox_set_critical() if possible Replace calls to mail_storage_set_critical() with mail_set_critical() or mailbox_set_critical() in places where mailbox or mail are easily available. M src/imap/cmd-append.c M src/imap/imap-fetch-body.c M src/lib-imap-storage/imap-msgpart.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-recent-flags.c M src/plugins/acl/acl-mailbox.c M src/plugins/fts/fts-storage.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/mailbox-alias/mailbox-alias-plugin.c M src/plugins/quota/quota-storage.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-storage.c M src/plugins/zlib/zlib-plugin.c 2017-11-27 14:09:21 +0200 Martti Rannanjärvi (1260d509f) lib-storage: Take mail_save_context parameter in save_check_write_error() This is in order to use mail_set_critical() in the function later. M src/lib-storage/index/index-attachment.c 2017-11-27 13:52:07 +0200 Martti Rannanjärvi (0060557e0) quota: Take mailbox as parameter in quota_set_storage_error() This is to start using mailbox_set_critical() later. M src/plugins/quota/quota-storage.c 2017-11-29 15:46:34 +0200 Martti Rannanjärvi (804bca734) lib-ssl-iostream: Use SSL_CTX_set_min_proto_version if available M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c 2017-11-07 14:47:01 +0200 Martti Rannanjärvi (a3a483da7) m4: Add SSL_CTX_set_min_proto_version detection M m4/ssl.m4 2017-11-28 12:02:08 +0200 Martti Rannanjärvi (976dee538) Replace ssl_protocols config option with ssl_min_protocol Default to TLSv1. M doc/example-config/conf.d/10-ssl.conf M src/config/old-set-parser.c M src/lib-ldap/ldap-connection.c M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h M src/lib-master/master-service-ssl.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-11-20 13:40:03 +0200 Aki Tuomi (e4f8e7a2f) lib-storage: mailbox-list-iter - Refresh subscriptions before setting flags This happens when list patterns match the namespace prefix, but mailbox_list_ns_match_patterns() returns FALSE. And one of the ways for that to happen is if namespace has alias_for set. M src/lib-storage/list/mailbox-list-iter.c 2017-11-20 10:40:52 +0200 Aki Tuomi (a612b56da) lib-storage: mailbox-tree - Ensure tree is not NULL M src/lib-storage/mailbox-tree.c 2017-11-06 21:54:00 +0100 Stephan Bosch (b8b2cc4e5) lmtp: Changed message data handling to use iostream-temp. The existing code predates iostream-temp. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c 2017-10-10 01:04:50 +0200 Stephan Bosch (1aae941fa) lmtp: Removed structural comments that are now useless. M src/lmtp/client.c M src/lmtp/commands.c 2017-10-10 01:03:02 +0200 Stephan Bosch (88201d844) lmtp: client: Made client_remote_id() static. M src/lmtp/client.c M src/lmtp/client.h 2016-11-23 10:43:53 +0100 Stephan Bosch (b73539ef2) lmtp: Ported to use lib-smtp/server. Implicitly fixes handling of multi-line replies from proxy backend. Implicitly adds support for mixing local and proxy recipients. Implicitly adds support for SMTP CHUNKING. RCPT failures are reported back to the client immediately, rather than waiting for the DATA command. M TODO M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/commands.h M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h M src/lmtp/main.c M src/lmtp/main.h 2017-11-11 10:20:05 +0100 Stephan Bosch (b85d7b856) lib-smtp: Created test-smtp-server-errors, which tests the server's error handling. M src/lib-smtp/Makefile.am A src/lib-smtp/test-smtp-server-errors.c 2017-11-11 10:30:14 +0100 Stephan Bosch (8620dc793) lib-smtp: Created test-smtp-payload, which tests client<->server payload exchange. M src/lib-smtp/Makefile.am A src/lib-smtp/test-smtp-payload.c 2016-11-06 22:46:31 +0100 Stephan Bosch (56dd928c1) lib-smtp: Implemented SMTP server. M src/lib-smtp/Makefile.am A src/lib-smtp/smtp-server-cmd-auth.c A src/lib-smtp/smtp-server-cmd-data.c A src/lib-smtp/smtp-server-cmd-helo.c A src/lib-smtp/smtp-server-cmd-mail.c A src/lib-smtp/smtp-server-cmd-noop.c A src/lib-smtp/smtp-server-cmd-quit.c A src/lib-smtp/smtp-server-cmd-rcpt.c A src/lib-smtp/smtp-server-cmd-rset.c A src/lib-smtp/smtp-server-cmd-starttls.c A src/lib-smtp/smtp-server-cmd-vrfy.c A src/lib-smtp/smtp-server-cmd-xclient.c A src/lib-smtp/smtp-server-command.c A src/lib-smtp/smtp-server-connection.c A src/lib-smtp/smtp-server-private.h A src/lib-smtp/smtp-server-reply.c A src/lib-smtp/smtp-server-transaction.c A src/lib-smtp/smtp-server.c A src/lib-smtp/smtp-server.h 2016-11-06 22:36:57 +0100 Stephan Bosch (8141e6524) lib-smtp: Implemented SMTP command parser. M src/lib-smtp/Makefile.am A src/lib-smtp/smtp-command-parser.c A src/lib-smtp/smtp-command-parser.h A src/lib-smtp/smtp-command.h A src/lib-smtp/test-smtp-command-parser.c 2017-11-19 22:57:12 +0100 Stephan Bosch (a4985564b) lib: istream-failure-at: Allow setting the the stream_errno to something other than EIO. M src/lib-fs/fs-randomfail.c M src/lib-smtp/test-smtp-client-errors.c M src/lib/istream-failure-at.c M src/lib/istream-failure-at.h M src/lib/test-iostream-pump.c M src/lib/test-istream-failure-at.c 2017-10-31 01:12:44 +0100 Stephan Bosch (3f2f5e035) lmtp: proxy: Restructured proxy so that it has direct access to struct client. This avoids the hassle of initializing using struct lmtp_proxy_settings and uselessly reallocating stuff that is already persisted in struct client. Moved the proxy from alloconly pool to default pool in the process. The amount of allocated stuff will diminish further in subsequent commits. M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-10-30 23:28:35 +0100 Stephan Bosch (8e32a7fe1) lmtp: proxy: Renamed pool to auth_pool in lmtp_proxy_rcpt() for clarity. M src/lmtp/lmtp-proxy.c 2017-10-30 21:09:25 +0100 Stephan Bosch (47af8777e) lmtp: proxy: Made struct lmtp_proxy_rcpt_settings private. M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-10-30 20:50:28 +0100 Stephan Bosch (0e0ce848d) lmtp: proxy: Merged lmtp_proxy_add_rcpt() into lmtp_proxy_rcpt(). M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-10-30 20:44:09 +0100 Stephan Bosch (11bb1153a) lmtp: proxy: Made lmtp_proxy_mail_from() private. M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-10-30 20:41:03 +0100 Stephan Bosch (dd34d6bf5) lmtp: proxy: Made lmtp_proxy_init() private. M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-10-30 01:24:37 +0100 Stephan Bosch (f0a4f00d0) lmtp: commands: Created local variable for client->dot_input in client_input_data_handle(). M src/lmtp/commands.c 2017-10-30 01:19:18 +0100 Stephan Bosch (7bb879354) lmtp: commands: Renamed client_input_add() to cmd_data_input_add(). M src/lmtp/commands.c 2017-10-30 01:17:21 +0100 Stephan Bosch (d8720e440) lmtp: commands: Renamed client_input_add_file() to cmd_data_input_add_file(). M src/lmtp/commands.c 2017-10-30 01:13:33 +0100 Stephan Bosch (d41037c2b) lmtp: commands: Renamed client_get_input() to cmd_data_get_input(). M src/lmtp/commands.c 2017-10-23 00:36:16 +0200 Stephan Bosch (755372f8e) lmtp: local: Renamed error variables in lmtp_local_rcpt_check_quota() to match other code. M src/lmtp/lmtp-local.c 2017-10-30 02:00:38 +0100 Stephan Bosch (252a2911d) lmtp: local: Allocate recipients on the default pool, rather than the client state pool. This prevents the pool from growing potentially indefinitely with failed recipients. M src/lmtp/lmtp-local.c 2017-10-22 23:29:21 +0200 Stephan Bosch (2b7d6fbaa) lmtp: Split off local delivery in a struct separate from the client. This mimics proxy delivery, making the implementation better structured. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-11-26 21:29:10 +0100 Stephan Bosch (4bc2df905) lmtp: local: Renamed local variable "dest_user" to "rcpt_user" in lmtp_local_deliver(). This matches the rcpt_user field in struct mail_deliver_context. M src/lmtp/lmtp-local.c 2017-09-19 03:56:39 +0200 Stephan Bosch (28585a427) lmtp: local: Created local variable for service_user in lmtp_local_deliver(). M src/lmtp/lmtp-local.c 2017-09-19 03:53:45 +0200 Stephan Bosch (cfc330f2c) lmtp: local: Renamed trans variable in lmtp_local_open_raw_mail(). Preparation for new trans parameter. M src/lmtp/lmtp-local.c 2017-09-19 03:33:12 +0200 Stephan Bosch (dafe33069) lmtp: local: Renamed client_deliver_to_rcpts() to lmtp_local_deliver_to_rcpts(). M src/lmtp/lmtp-local.c 2017-09-19 02:07:22 +0200 Stephan Bosch (ce7a45d15) lmtp: client: Dropped useless rcpt_idx state. Recent refactoring made it obsolete. M src/lmtp/client.h M src/lmtp/lmtp-local.c 2017-09-19 00:29:02 +0200 Stephan Bosch (6fe14de90) lmtp: local: Always handle sending of error replies inside lmtp_rcpt_to_is_over_quota(). Code was confusing. M src/lmtp/lmtp-local.c 2017-09-19 03:40:56 +0200 Stephan Bosch (d5ddc86fb) lmtp: local: Renamed cmd_rcpt_finish() to lmtp_local_rcpt_anvil_finish(). M src/lmtp/lmtp-local.c 2017-09-19 03:29:03 +0200 Stephan Bosch (eb61a9ec4) lmtp: local: Renamed rcpt_anvil_lookup_callback() to lmtp_local_rcpt_anvil_cb(). M src/lmtp/lmtp-local.c 2017-09-18 23:16:21 +0200 Stephan Bosch (bc1306f12) lmtp: commands: Moved RCPT command handling relating to local recipients to lmtp-local.c. M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-09-18 22:51:30 +0200 Stephan Bosch (70dfae6db) lmtp: client: Moved recipient deinitialization to lmtp-local.c. M src/lmtp/client.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-09-19 03:21:39 +0200 Stephan Bosch (fd3bad187) lmtp: local: Renamed lmtp_rcpt_to_is_over_quota() to lmtp_local_rcpt_check_quota(). M src/lmtp/lmtp-local.c 2017-09-19 01:33:28 +0200 Stephan Bosch (8a68f5bb8) lmtp: local: Renamed client_input_data_write_local() to lmtp_local_data(). M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-09-19 01:07:17 +0200 Stephan Bosch (d14a89631) lmtp: local: Renamed client_open_raw_mail() to lmtp_local_open_raw_mail(). M src/lmtp/lmtp-local.c 2017-09-19 00:59:27 +0200 Stephan Bosch (e5f4eb147) lmtp: local: Renamed client_deliver() to lmtp_local_deliver(). M src/lmtp/lmtp-local.c 2017-09-18 22:40:41 +0200 Stephan Bosch (95b2dd305) lmtp: local: Renamed client_rcpt_anvil_disconnect() to lmtp_local_rcpt_anvil_disconnect(). M src/lmtp/client.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-10-30 23:06:50 +0100 Stephan Bosch (652962cb6) lmtp: proxy: Changed return type of lmtp_proxy_rcpt() from bool to int. M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-09-18 22:32:43 +0200 Stephan Bosch (e4161404d) lmtp: proxy: Renamed client_proxy_rcpt() to lmtp_proxy_rcpt(). M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-09-18 22:29:29 +0200 Stephan Bosch (2f73bf148) lmtp: proxy: Renamed client_proxy_is_ourself() to lmtp_proxy_is_ourself(). M src/lmtp/lmtp-proxy.c 2017-09-18 22:27:41 +0200 Stephan Bosch (582f781ce) lmtp: proxy: Renamed client_proxy_rcpt_parse_fields() to lmtp_proxy_rcpt_parse_fields(). M src/lmtp/lmtp-proxy.c 2017-09-18 22:04:58 +0200 Stephan Bosch (447ae13a8) lmtp: Renamed struct mail_recipient to struct lmtp_recipient. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-10-31 02:37:40 +0100 Stephan Bosch (bb0a27c17) lmtp: proxy: Added structural comments. M src/lmtp/lmtp-proxy.c 2017-09-18 21:14:05 +0200 Stephan Bosch (1c1396ed2) lmtp: local: Added structural comments. M src/lmtp/lmtp-local.c 2017-09-17 14:28:33 +0200 Stephan Bosch (ebdfdb765) lmtp: commands: Added structural comments. M src/lmtp/commands.c 2016-11-23 10:43:53 +0100 Stephan Bosch (124a7f9f3) lmtp: proxy: Removed dns_client_socket_path from struct lmtp_proxy_settings. It is globally accessible. M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-10-10 00:36:37 +0200 Stephan Bosch (3a1c07860) lmtp: client: Moved soon-to-be-obsolete output handling functions to end of the file. M src/lmtp/client.c M src/lmtp/client.h 2017-09-17 19:03:06 +0200 Stephan Bosch (eac03bb79) lmtp: client: Moved soon-to-be-obsolete input handling functions to end of the file. M src/lmtp/client.c M src/lmtp/client.h 2017-09-17 18:39:08 +0200 Stephan Bosch (27d541423) lmtp: client: Moved client_state_reset(). M src/lmtp/client.c 2017-10-31 02:20:44 +0100 Stephan Bosch (a33e180a6) lmtp: proxy: Moved lmtp_proxy_connection_finish(). M src/lmtp/lmtp-proxy.c 2016-11-23 10:58:02 +0100 Stephan Bosch (1b8cec404) lmtp: proxy: Moved lmtp_proxy_rcpt_cb(). M src/lmtp/lmtp-proxy.c 2017-10-31 02:29:54 +0100 Stephan Bosch (b6e6966a2) lmtp: proxy: Moved lmtp_proxy_add_rcpt(). M src/lmtp/lmtp-proxy.c 2017-10-31 02:27:47 +0100 Stephan Bosch (122323b8d) lmtp: proxy: Moved lmtp_proxy_data_cb(). M src/lmtp/lmtp-proxy.c 2017-10-31 02:26:12 +0100 Stephan Bosch (65ff3f6ac) lmtp: proxy: Moved lmtp_proxy_data_dummy_cb(). M src/lmtp/lmtp-proxy.c 2016-11-06 17:34:25 +0100 Stephan Bosch (5f2855fe6) lmtp: Moved code relating to proxy from commands.c to lmtp-proxy.c. M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-09-17 11:40:53 +0200 Stephan Bosch (cbd1d1a19) lmtp: Moved client_input_data_write_local() from commands.c to lmtp-local.c. M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-09-17 11:13:17 +0200 Stephan Bosch (e3d554ca3) lmtp: Moved client_open_raw_mail() from commands.c to lmtp-local.c. M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-09-18 23:48:51 +0200 Stephan Bosch (420dc25a3) lmtp: Moved client_rcpt_fail_all() from commands.c to lmtp-local.c. M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-09-17 10:52:43 +0200 Stephan Bosch (fb2e20a30) lmtp: Moved client_deliver_to_rcpts() from commands.c to lmtp-local.c. M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-09-17 10:29:15 +0200 Stephan Bosch (4c10d203d) lmtp: Moved client_deliver() from commands.c to lmtp-local.c. M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-09-17 02:57:29 +0200 Stephan Bosch (a3259cc32) lmtp: Moved rcpt_anvil_lookup_callback() from commands.c to lmtp-local.c. M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-09-17 02:11:58 +0200 Stephan Bosch (1d2e367e1) lmtp: Moved cmd_rcpt_finish() from commands.c to lmtp-local.c. M src/lmtp/commands.c M src/lmtp/lmtp-local.c M src/lmtp/lmtp-local.h 2017-09-17 00:07:34 +0200 Stephan Bosch (0029bf606) lmtp: Moved client_rcpt_anvil_disconnect() from client.c to lmtp-local.c. M src/lmtp/Makefile.am M src/lmtp/client.c M src/lmtp/client.h A src/lmtp/lmtp-local.c A src/lmtp/lmtp-local.h 2016-11-23 10:22:21 +0100 Stephan Bosch (4df5abb02) lmtp: Moved lmtp_anvil_init() from commands.c to main.c. It fits better there. M src/lmtp/commands.c M src/lmtp/main.c M src/lmtp/main.h 2017-10-10 02:53:56 +0200 Stephan Bosch (24afb81b5) lmtp: client: Use client_remote_id() to construct proctitle. M src/lmtp/client.c 2017-10-10 00:19:02 +0200 Stephan Bosch (0807987e8) lmtp: client: Moved client_remote_id(). M src/lmtp/client.c 2017-10-10 02:36:34 +0200 Stephan Bosch (942b4f454) lmtp: client: Restructured client_state_set() to match imap_refresh_proctitle(). M src/lmtp/client.c 2017-10-10 02:21:34 +0200 Stephan Bosch (7affd5e5e) lmtp: client: Restructured handling of verbose_proctitle setting. M src/lmtp/client.c 2017-12-05 14:49:17 +0100 Stephan Bosch (8b41f8f92) lib-smtp: common: Added support for having custom fields in struct smtp_proxy_data. M src/lib-smtp/smtp-common.h 2017-12-04 11:01:31 +0200 Aki Tuomi (4a31bc036) pop3: Include mail user variables in logout format M src/pop3/pop3-client.c 2017-12-04 11:01:05 +0200 Aki Tuomi (ee1950c7d) imap: Include mail user variables in logout format M src/imap/imap-client.c 2017-12-05 23:49:27 +0200 Aki Tuomi (857a9e1f1) lib: var-expand - Add table size and merge utility functions M src/lib/test-var-expand.c M src/lib/var-expand.c M src/lib/var-expand.h 2017-12-07 01:44:56 +0100 Stephan Bosch (5644698fc) lib-http: test-http-payload: Added tests for running multiple clients in parallel with shared context. M src/lib-http/test-http-payload.c 2017-12-06 23:43:18 +0100 Stephan Bosch (58e3ba776) lib-http: test-http-payload: Added support for running multiple parallel clients. M src/lib-http/test-http-payload.c 2016-12-18 19:45:32 +0100 Stephan Bosch (6776cc851) lib-http: client: Amended the top comment explaining the structure of the HTTP client. M src/lib-http/http-client.c 2016-12-04 21:54:02 +0100 Stephan Bosch (fd30e54bd) lib-http: client: Added identifier to client log messages. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2017-09-27 19:21:40 +0200 Stephan Bosch (faa4f87ec) lib-http: test-http-client: Run several clients simultaneously. M src/lib-http/test-http-client.c 2017-09-27 19:21:24 +0200 Stephan Bosch (27a2e59ea) lib-http: client: shared context: Allow sharing peer state between clients. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2016-12-18 19:27:05 +0100 Stephan Bosch (0a3bccd23) lib-http: client: peer: Moved http_client_peer_reset_backoff_timer() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-18 19:16:31 +0100 Stephan Bosch (49088f457) lib-http: client: peer: Moved http_client_peer_increase_backoff_timer() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-18 19:15:04 +0100 Stephan Bosch (aa65356a0) lib-http: client: peer: Moved http_client_peer_start_backoff_timer() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-18 19:13:00 +0100 Stephan Bosch (4a9bd6a85) lib-http: client: peer: Moved http_client_peer_connect_backoff() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-05 00:37:27 +0100 Stephan Bosch (01cfa2ea0) lib-http: client: peer: Moved http_client_peer_get() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-18 18:50:31 +0100 Stephan Bosch (9e1f10306) lib-http: client: peer: Moved http_client_peer_drop() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-18 18:46:01 +0100 Stephan Bosch (5a8d6f8db) lib-http: client: peer: Moved http_client_peer_close() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-18 18:44:05 +0100 Stephan Bosch (0dfe37d8e) lib-http: client: peer: Moved http_client_peer_unref() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-18 18:42:50 +0100 Stephan Bosch (1be73c463) lib-http: client: peer: Moved http_client_peer_ref() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-18 18:41:37 +0100 Stephan Bosch (4e629672b) lib-http: client: peer: Moved http_client_peer_disconnect() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-18 18:40:19 +0100 Stephan Bosch (90fa7fd47) lib-http: client: peer: Moved http_client_peer_create() function. This is a preparation for a subsequent change. M src/lib-http/http-client-peer.c 2016-12-04 00:11:46 +0100 Stephan Bosch (e48102389) lib-http: client: shared context: Allow sharing host lookups between clients. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client.c 2016-12-04 12:51:02 +0100 Stephan Bosch (2300bdf14) lib-http: client: host: Moved http_client_host_submit_request() function. This is a preparation for a subsequent change. M src/lib-http/http-client-host.c 2016-12-04 12:40:29 +0100 Stephan Bosch (fbe111ce6) lib-http: client: host: Moved http_client_host_check_idle() function. This is a preparation for a subsequent change. M src/lib-http/http-client-host.c 2016-11-30 02:04:11 +0100 Stephan Bosch (23fe024e1) lib-http: client: Avoid direct access to host object members from queue. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c 2016-11-29 19:29:25 +0100 Stephan Bosch (20493a543) lib-http: client: Moved connection pool handling from peer to separate object. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2016-11-29 18:13:30 +0100 Stephan Bosch (9fe6a5587) lib-http: client: Moved connection list from client to shared context. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c 2016-11-29 16:17:59 +0100 Stephan Bosch (fab1a1c57) lib-http: client: Created basic shared context between clients. In this basic form it only shares default settings. M src/lib-http/http-client-private.h M src/lib-http/http-client.c M src/lib-http/http-client.h 2016-12-04 19:35:30 +0100 Stephan Bosch (63a1359e6) lib-http: client: Cosmetic changes to http-client-private.h. M src/lib-http/http-client-private.h 2016-12-04 16:00:49 +0100 Stephan Bosch (3ad0a46f4) lib-http: client: Simplified initiation of connection setup upon request submission. M src/lib-http/http-client-host.c M src/lib-http/http-client-queue.c 2016-12-04 12:03:18 +0100 Stephan Bosch (8149ed57a) lib-http: client: Created separate http_client_queue_get() function. Before, this was combined in http_client_queue_create() which caused a large code block to be indentet. Separating creation and obtaining the current instance makes the code cleaner. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c 2016-11-29 17:22:41 +0100 Stephan Bosch (d67f004eb) lib-http: client: Fixed whitespace in the top comment explaining the structure of the HTTP client. M src/lib-http/http-client.c 2017-12-07 09:48:51 +0200 Aki Tuomi (cae3c6903) driver-cassandra: Free statement pool on update Otherwise the pool memory will leak. This was happening with non-prepared statements when version was older than 4. M src/lib-sql/driver-cassandra.c 2017-12-07 08:20:02 +0200 Aki Tuomi (7cc5fcc85) lib-http: test-http-client - conditionally depend on openssl Fixes compiling without openssl, broken by c45da70c M src/lib-http/test-http-client.c 2017-12-06 17:41:14 +0200 Martti Rannanjärvi (80064363a) auth: passdb-ldap - Fix AUTH_LOG_MSG_PASSWORD_MISMATCH use in logging M src/auth/passdb-ldap.c 2017-04-04 12:40:10 +0300 Aki Tuomi (ab5c28d09) auth: Fix 'Password mismatch' casing consistency M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-scram-sha1.c M src/auth/passdb-ldap.c M src/auth/passdb-pam.c M src/auth/password-scheme.c M src/auth/password-scheme.h 2017-11-28 11:39:52 +0200 Aki Tuomi (6699d5ab6) auth: Fix auth_request_is_disabled_master_user I assumed that lack of passdb means master authentication, but e.g. gssapi does not require a passdb. Instead, check that if requested_login_uset is non-null then check passdb is non-null too. Fixes auth: Panic: file auth-request.c: line 716 (auth_request_is_disabled_master_user): assertion failed: (request->requested_login_user != NULL) M src/auth/auth-request.c 2017-12-04 17:55:15 +0200 Aki Tuomi (bfbd10067) doveadm-pw: Use CRYPT instead of CRAM-MD5 by default This is when generating new passwords. M src/doveadm/doveadm-pw.c 2017-12-04 18:39:24 +0200 Aki Tuomi (4bed0c5f9) auth: Use bcrypt as default scheme for CRYPT scheme Only changes the type of password which is generated by default, password verification is not changed. M src/auth/password-scheme-crypt.c 2017-12-04 18:38:36 +0200 Aki Tuomi (cfb22f2f9) auth: Rename CRYPT scheme to DES-CRYPT M src/auth/password-scheme-crypt.c M src/auth/test-libpassword.c 2017-11-29 15:20:29 +0200 Timo Sirainen (12a1ee081) lib-storage: Log an error when mailbox list index is rebuilt due to header fsck flag M src/lib-storage/list/mailbox-list-index.c 2017-11-29 15:14:02 +0200 Timo Sirainen (b42817ce1) lib-storage: Rebuild list index when doing doveadm force-resync M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/mail-storage-private.h 2017-11-29 14:51:02 +0200 Timo Sirainen (8049d5792) LAYOUT=index: Rebuild list index if INBOX is missing on inbox=yes namespace This avoids having to manually rebuild the list index afterwards if it becomes lost. M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/mail-storage-private.h 2017-11-29 14:36:25 +0200 Timo Sirainen (82d1fe3d5) lib-storage: Rename mail_storage.list_index_corrupted() to list_index_rebuild() Also add a new parameter to it to specify the rebuild reason. M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/mail-storage-private.h 2017-11-29 14:38:38 +0200 Timo Sirainen (2303cd3c6) lib-storage: Remove obsolete comment M src/lib-storage/list/mailbox-list-index.c 2017-11-30 12:52:23 +0200 Aki Tuomi (05b5b75e7) auth: passdb-lua - Fix mistake in nopassword handling If nopassword is given, check that password is not set. Previous code did the opposite. Fixes Info: lua(): nopassword given and password is not empty M src/auth/passdb-lua.c 2017-12-04 19:05:55 +0200 Aki Tuomi (208b68bb9) auth: Set cache key for lua auth database M src/auth/db-lua.h M src/auth/passdb-lua.c M src/auth/userdb-lua.c 2017-12-01 20:51:44 +0200 Martti Rannanjärvi (c9a7c4d24) lib: murmurhash3 - Fix Aki's email address M src/lib/murmurhash3.c 2017-12-01 18:15:18 +0200 Martti Rannanjärvi (035123383) lib: Add fall through comments to murmurhash3.c to fix gcc-7 warnings M src/lib/murmurhash3.c 2017-12-01 11:53:50 +0200 Aki Tuomi (aa6cd0d62) lib: murmurhash3 - Fix 128 bit hash on 32 bit systems M src/lib/murmurhash3.c 2017-11-27 18:26:00 +0200 Timo Sirainen (aa3998718) doveadm-server: Switch to TCP connection's ioloop while sending logs to remote Fixes: Warning: I/O leak: 0x558d7c074ed0 (ostream-file.c:349, fd 16) Panic: file ioloop.c: line 127 (io_remove_full): assertion failed: (io->callback != NULL) M src/doveadm/client-connection-tcp.c 2017-11-29 16:29:17 +0200 Aki Tuomi (a8cad1250) lib: randgen - Fallback to /dev/urandom in case getrandom does not work In some operating systems getrandom is defined, but not implemented, if this happens, fallback into using /dev/urandom. M src/lib/randgen.c 2017-11-27 13:46:40 +0200 Aki Tuomi (44d29bbfa) lib: Add bloom filter support M src/lib/Makefile.am A src/lib/bloomfilter.c A src/lib/bloomfilter.h A src/lib/test-bloomfilter.c M src/lib/test-lib.inc 2017-11-27 13:46:17 +0200 Aki Tuomi (f6de86ea2) lib: Add murmurhash3 support Needed for bloom filters M src/lib/Makefile.am A src/lib/murmurhash3.c A src/lib/murmurhash3.h M src/lib/test-lib.inc A src/lib/test-murmurhash3.c 2017-11-27 13:45:56 +0200 Aki Tuomi (f1577719e) lib: bits - add circular rotation functions M src/lib/bits.h M src/lib/test-bits.c 2017-11-21 13:27:18 +0200 Sergey Kitov (df65573ad) lib: Call prctl(PR_SET_DUMPABLE) only when PR_SET_DUMPABLE env variable is set M src/lib/restrict-access.c 2017-11-22 11:34:47 +0200 Sergey Kitov (f5cc54027) lib: Add logging of prctl(PR_SET_DUMPABLE) failure. M src/lib/restrict-access.c 2017-11-29 09:00:08 +0200 Aki Tuomi (df0eef65a) auth: test-lua - fix memory leaks M src/auth/test-lua.c 2017-11-28 01:04:53 +0100 Stephan Bosch (80bd4f851) lib-smtp: client: Fixed sending payload with unknown size using the CHUNKING capability. M src/lib-smtp/smtp-client-command.c 2017-11-28 01:03:48 +0100 Stephan Bosch (11142fd53) lib-smtp: client: command: Implemented callback that is called when command is fully sent. M src/lib-smtp/smtp-client-command.c M src/lib-smtp/smtp-client-command.h M src/lib-smtp/smtp-client-private.h 2017-11-27 21:03:52 +0100 Stephan Bosch (1fc55bfb5) lib-smtp: client: transaction: Fix adding a recipient while the transaction is already failed. This did not always trigger an immediate callback. M src/lib-smtp/smtp-client-transaction.c 2017-11-28 21:15:17 +0200 Aki Tuomi (ecfca41e9) auth: test-lua - zero out auth settings in test Otherwise valgrind complains M src/auth/test-lua.c 2017-11-28 19:01:19 +0200 Timo Sirainen (4ccb61822) director: Fix logging disconnection error reasons The previous commit set errno=0, which weren't logged. If error string is provided, it doesn't matter what the errno is set (as long as it's not 0), so we'll just use EINVAL. M src/director/director-connection.c 2017-11-28 13:45:42 +0200 Timo Sirainen (acc6105bd) lib: mempool-alloconly - Make sure calloc() size isn't above SSIZE_T_MAX This avoids valgrind warnings when running unit tests: Argument 'nmemb' of function calloc has a fishy (possibly negative) value: -9223372036854775808 M src/lib/mempool-alloconly.c 2017-11-28 16:51:46 +0200 Aki Tuomi (04e49d622) auth: userdb-lua - Fix typo in logging M src/auth/userdb-lua.c 2017-11-28 16:51:06 +0200 Aki Tuomi (e99ddf2f3) auth: userdb-lua - Log error if lookup fails Previously the error would just be discarded. M src/auth/userdb-lua.c 2017-11-28 16:50:13 +0200 Aki Tuomi (c86575ac9) auth: db-lua - Fix password scheme handling It was left as NULL and had misleading name in some of the handler functions causing assert-crash. M src/auth/db-lua.c 2017-11-28 16:48:19 +0200 Aki Tuomi (c2cda3fae) auth: db-lua - fix auth request registration It was registered in wrong manner so one could not easily extend it with passdb and userdb subtables. The change itself was to change the object to a table, and register the actual pointer as light userdata under index 'item', and the passdb and userdb tables similarly with 'item' in each holding the pointer to request. M src/auth/db-lua.c 2017-11-28 13:44:06 +0200 Aki Tuomi (6dd6dac82) auth: db-lua - Do not assume params is always present for passdb/userdb field lookup M src/auth/db-lua.c 2017-11-28 16:07:12 +0200 Timo Sirainen (c8d80ba71) lib: Fix mempool unit tests to pass with 32bit OSes malloc(SSIZE_T_MAX) actually succeeds there, so we can't test it. M src/lib/test-mempool-allocfree.c M src/lib/test-mempool-alloconly.c 2017-11-17 11:37:45 -0500 Josef 'Jeff' Sipek (08259c1f2) lib: rename bswap_*() to i_bswap() M src/lib/byteorder.h M src/lib/test-byteorder.c 2017-11-28 15:06:27 +0200 Timo Sirainen (1a85ac6b4) director: Log connection stats for all types of disconnections M src/director/director-connection.c 2017-11-28 14:57:27 +0200 Timo Sirainen (43edd1078) director: Log whether connection is synced when it's being disconnected. M src/director/director-connection.c 2017-11-28 13:10:35 +0200 Timo Sirainen (0bd3eb7c8) director: Fix crash when handling expired USER timestamps. The fix in 154f91726624265fce15097eb4bbbf6e55f8c477 wasn't complete. M src/director/director-connection.c 2017-11-24 13:22:19 +0200 Aki Tuomi (a4fa5676a) password-scheme-sodium: ARGON2I - print errno on failure M src/auth/password-scheme-sodium.c 2017-11-24 13:18:16 +0200 Aki Tuomi (66db268d5) password-scheme-sodium: Support ARGON2ID when available M src/auth/password-scheme-sodium.c M src/auth/test-libpassword.c 2017-11-24 12:50:00 +0200 Aki Tuomi (243701508) password-scheme-sodium: rename ARGON2 to ARGON2I M src/auth/password-scheme-sodium.c M src/auth/test-libpassword.c 2017-11-24 12:47:58 +0200 Aki Tuomi (1806d8fcb) password-scheme-sodium: Call sodium_init to improve performance M src/auth/password-scheme-sodium.c 2017-10-28 20:58:58 +0200 Frank Denis (b2c5e11c7) configure: --with-sodium doesn't add support for scrypt (for now, at least) M configure.ac 2017-11-27 18:34:49 +0200 Timo Sirainen (3c1077b11) doveadm-server: Fix potential dsync-server panic at deinit If the ostream is still used (e.g. for logging) after dsync is finished, it crashed with: Panic: file ostream.c: line 276 (o_stream_sendv_int): assertion failed: (!_stream->finished) M src/doveadm/doveadm-dsync.c 2017-11-25 15:57:16 +0100 Stephan Bosch (981f260cf) pop3-login: Properly recognize an empty SASL initial response. Pass only the empty string to the auth service and not "=". M src/pop3-login/client-authenticate.c 2017-11-25 15:55:41 +0100 Stephan Bosch (ad3e5fb08) imap-login: Properly recognize an empty SASL initial response. Pass only the empty string to the auth service and not "=". M src/imap-login/client-authenticate.c 2017-11-25 15:28:32 +0100 Stephan Bosch (e4b72bd73) auth: Properly recognize an empty initial SASL response. It was erroneously handled as an absent initial response. Restructured the code for clarity and changed the comments: '=' should not be passed to SASL layer at all. M src/auth/auth-request-handler.c 2017-11-25 18:13:04 +0100 Stephan Bosch (451698c60) lib: strfuncs: Fixed value of uchar_empty_ptr not to be NULL. M src/lib/strfuncs.c 2017-11-27 21:11:30 +0100 Stephan Bosch (76553b164) lmtp: proxy: Fix connection settings comparison in lmtp_proxy_get_connection() when hostip field is set. The IP in the hostip field overrides the host setting, which broke the comparison. M src/lmtp/lmtp-proxy.c 2017-11-27 15:17:52 +0200 Timo Sirainen (e4a7dbe5e) lib: mempool-alloconly - Cleanly fail allocations just below SSIZE_T_MAX Previously it would have assert-crashed in nearest_power(). M src/lib/mempool-alloconly.c 2017-11-27 15:14:36 +0200 Timo Sirainen (ba1a5db87) lib: Use test_expect_fatal_string() for all fatal unit tests M src/lib/test-array.c M src/lib/test-data-stack.c M src/lib/test-malloc-overflow.c M src/lib/test-mempool-allocfree.c M src/lib/test-mempool-alloconly.c M src/lib/test-mempool.c M src/lib/test-printf-format-fix.c 2017-11-27 15:12:45 +0200 Timo Sirainen (a7d1bd5be) lib: Fix mempool-alloconly & mempool-allocfree unit tests The "physically impossible size" test was supposed to test calloc()==NULL failure, but in reality it was triggering asserts before that. M src/lib/test-mempool-allocfree.c M src/lib/test-mempool-alloconly.c 2017-11-27 15:11:40 +0200 Timo Sirainen (ac72c147a) lib: mempool-allocfree - If calloc() fails, include "Out of memory" in the log line M src/lib/mempool-allocfree.c 2017-11-27 14:48:25 +0200 Timo Sirainen (f2969642c) lib: Fix logging panic message if data stack canary corruption is detected The previous code just recursed into the same canary corruption check and didn't end up logging anything. M src/lib/data-stack.c 2017-11-27 14:42:36 +0200 Timo Sirainen (86ec22553) lib: Make sure panics/fatals don't recurse into loops M src/lib/failures.c 2017-11-27 14:24:41 +0200 Timo Sirainen (37bf0a205) lib-test: Add test_expect_fatal_string() M src/lib-test/test-common.c M src/lib-test/test-common.h 2017-11-27 14:23:39 +0200 Timo Sirainen (a9a421035) lib-test: Cleanup - Move expected_error_str check to its own function M src/lib-test/test-common.c 2017-11-21 22:13:17 +0200 Aki Tuomi (86ad48745) lib-dcrypt: test-crypto and test-stream need lib-ssl-iostream.a fully Otherwise the .so file cannot be loaded due to missing symbols M src/lib-dcrypt/Makefile.am 2017-11-21 22:12:56 +0200 Aki Tuomi (a40a4775e) login-common: Do not link lib-ssl-iostream.la twice It's already in libdovecot.la M src/login-common/Makefile.am 2017-11-24 08:51:14 +0200 Aki Tuomi (83b6900e5) configure: Detect --whole-archive in linker M configure.ac A m4/ld_whole_archive.m4 2017-11-24 09:00:24 +0200 Aki Tuomi (dbb1816a7) m4: Use CC, not CXX in ld_relro M m4/ld_relro.m4 2017-11-27 17:42:14 +0200 Timo Sirainen (24ede7e56) replicator: Keep user referenced while dsync is running Fixes a crash when user is removed with "doveadm replicator remove" while dsync is still running. M src/replication/replicator/replicator-brain.c 2017-11-27 17:42:06 +0200 Timo Sirainen (9b2129d5b) replicator: Add refcounting to user M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-queue.h 2017-11-27 01:38:09 +0100 Stephan Bosch (e40c4caaf) lmtp: proxy: Fixed use of hostip field after changing the implementation to use lib-smtp/client broke it. Proxy was erroneously doing DNS queries while hostip field was returned from passdb. M src/lmtp/lmtp-proxy.c 2017-11-27 11:45:05 +0100 Stephan Bosch (933602635) lmtp: proxy: Fixed proxying reply from backend server. It contained an additional CRLF, which caused problems. M src/lmtp/lmtp-proxy.c 2017-11-27 11:44:23 +0100 Stephan Bosch (57b18ecb6) lib-smtp: Implemented function to write an SMTP reply as a single line. Needed for proxying in current LMTP code. M src/lib-smtp/smtp-reply.c M src/lib-smtp/smtp-reply.h 2017-11-27 14:57:09 +0200 Aki Tuomi (c0660f13a) configure: Fix Lua conditionals M configure.ac M m4/want_lua.m4 M src/auth/Makefile.am M src/auth/test-lua.c M src/lib-lua/Makefile.am 2017-11-27 14:56:07 +0200 Aki Tuomi (d5b03874c) configure: Drop LuaJIT support Does not work with our custom allocator M configure.ac M m4/want_lua.m4 2017-11-27 12:32:54 +0200 Aki Tuomi (6b98c595a) lib: mempool-allocfree - include overhead in size check Found by valgrind M src/lib/mempool-allocfree.c 2017-11-27 11:58:39 +0200 Timo Sirainen (b2117031b) director: Fix logging of uninitialized PONG buffer size PONG always has 0 or 2 parameters. The easiest fix here is to just not even try to support 1 parameter. M src/director/director-connection.c 2017-11-27 00:54:56 +0100 Stephan Bosch (606ce50a4) lib-smtp: client: Fixed cleanup of untriggered transaction timeout. M src/lib-smtp/smtp-client-transaction.c 2017-11-26 23:00:30 +0200 Timo Sirainen (769f5c2d6) director: Fix delayed request count in ps title after request timeouts The timeouts weren't shrinking the delayed request count. This didn't cause any other problems. M src/director/director-request.c 2017-11-25 01:59:47 +0200 Timo Sirainen (e4e8301f2) lib-program-client: Ignore ostream error handling M src/lib-program-client/program-client.c 2017-10-29 18:36:25 +0100 Stephan Bosch (9051b704c) lib-smtp: Implemented test suite for client errors. M src/lib-smtp/Makefile.am A src/lib-smtp/test-smtp-client-errors.c 2017-11-05 21:51:02 +0100 Stephan Bosch (6f0862951) lib-test: Reset expected errors state at each test. M src/lib-test/test-common.c 2017-11-08 01:51:19 +0100 Stephan Bosch (9e33e0ae1) lib-lda: Added support for message submission with SSL. M src/lib-lda/Makefile.am M src/lib-lda/mail-send.c 2017-05-07 14:58:05 +0200 Stephan Bosch (ac8f4f30d) lib-smtp: smtp-submit: Added SSL support. M src/lib-lda/mail-send.c M src/lib-smtp/smtp-submit-settings.c M src/lib-smtp/smtp-submit-settings.h M src/lib-smtp/smtp-submit.c M src/lib-smtp/smtp-submit.h M src/lib-smtp/test-smtp-submit.c 2017-09-16 20:10:39 +0200 Stephan Bosch (eea481b79) lib-smtp: smtp-submit: Use mail_debug setting to enable debug logging. When sendmail is used, this logs program_client debug messages. When SMTP is used (submission_host), this logs smtp_client debug messages. M src/lib-smtp/smtp-submit-settings.c M src/lib-smtp/smtp-submit-settings.h M src/lib-smtp/smtp-submit.c M src/lib-smtp/test-smtp-submit.c 2017-09-16 20:09:22 +0200 Stephan Bosch (bce4997c6) lib-smtp: Dropped old lmtp-client. It is now unused. M src/lib-smtp/Makefile.am D src/lib-smtp/lmtp-client.c D src/lib-smtp/lmtp-client.h 2017-01-22 15:27:29 +0100 Stephan Bosch (09cd81709) lmtp: proxy: Changed implemention to use lib-smtp/smtp-client. M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-01-22 15:26:32 +0100 Stephan Bosch (7c8257bb0) lib-smtp: smtp-submit: Changed submission_host implementation to use lib-smtp/smtp-client. M src/lib-lda/mail-send.c M src/lib-smtp/smtp-submit.c M src/lib-smtp/smtp-submit.h M src/lib-smtp/test-smtp-submit.c 2017-11-20 23:30:37 +0100 Stephan Bosch (70eaddb11) lib-smtp: smtp-submit: Small whitespace fix. M src/lib-smtp/test-smtp-submit.c 2017-11-04 14:38:39 +0100 Stephan Bosch (211fdbe70) lib-smtp: smtp-submit: Remove erroneously copy-pasted FIXMEs. M src/lib-smtp/test-smtp-submit.c 2016-11-06 22:15:45 +0100 Stephan Bosch (b38889445) lib-smtp: Implemented SMTP client. M src/lib-smtp/Makefile.am A src/lib-smtp/smtp-client-command.c A src/lib-smtp/smtp-client-command.h A src/lib-smtp/smtp-client-connection.c A src/lib-smtp/smtp-client-connection.h A src/lib-smtp/smtp-client-private.h A src/lib-smtp/smtp-client-transaction.c A src/lib-smtp/smtp-client-transaction.h A src/lib-smtp/smtp-client.c A src/lib-smtp/smtp-client.h M src/lib-smtp/smtp-common.h 2016-11-06 22:00:08 +0100 Stephan Bosch (a8433392e) lib-smtp: Implemented SMTP command reply parser. M src/lib-smtp/Makefile.am A src/lib-smtp/smtp-reply-parser.c A src/lib-smtp/smtp-reply-parser.h A src/lib-smtp/smtp-reply.c A src/lib-smtp/smtp-reply.h A src/lib-smtp/test-smtp-reply-parser.c 2017-10-18 01:03:03 +0200 Stephan Bosch (ad8d2060a) lmtp: commands: Grouped deliver context field assignments by topic in client_deliver(). M src/lmtp/commands.c 2016-11-06 19:09:30 +0100 Stephan Bosch (de0971aff) lib-lda: Added SMTP parameter fields to struct mail_deliver_context. This moves the original recipient field inside the SMTP parameters. This also affects both lda and lmtp. Changes are applied there accordingly. M src/lda/main.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h M src/lmtp/client.h M src/lmtp/commands.c 2016-11-06 21:39:07 +0100 Stephan Bosch (39bf54004) lib-smtp: Implemented parsing, manipulation, and encoding for SMTP command parameters. M src/lib-smtp/Makefile.am A src/lib-smtp/smtp-common.c A src/lib-smtp/smtp-common.h A src/lib-smtp/smtp-params.c A src/lib-smtp/smtp-params.h A src/lib-smtp/test-smtp-params.c 2016-11-06 21:29:59 +0100 Stephan Bosch (3e2f71514) lib-smtp: Implemented parsing and encoding for common SMTP syntax elements. M src/lib-smtp/Makefile.am A src/lib-smtp/smtp-syntax.c A src/lib-smtp/smtp-syntax.h 2016-11-06 13:45:57 +0100 Stephan Bosch (c66368748) lib-lda: mail-send: Changed recipient argument type of mail_send_rejection() to struct smtp_address. M src/lda/main.c M src/lib-lda/mail-send.c M src/lib-lda/mail-send.h 2017-10-29 23:39:55 +0100 Stephan Bosch (ca3aed470) lib-mail: message-address: Dropped message_detail_address_parse(), since it is no longer used. M src/lib-mail/message-address.c M src/lib-mail/message-address.h M src/lib-mail/test-message-address.c 2017-10-29 23:41:44 +0100 Stephan Bosch (52f611288) plugins/quota: quota-status service: Changed recipient address parsing to use lib-smtp. M src/plugins/quota/Makefile.am M src/plugins/quota/quota-status.c 2016-11-05 14:47:53 +0100 Stephan Bosch (3d7828efd) lib-lda: Changed struct mail_deliver_context address fields to use the new struct smtp_address type. M src/lda/Makefile.am M src/lda/main.c M src/lib-lda/Makefile.am M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h M src/lib-lda/mail-send.c M src/lmtp/client.h M src/lmtp/commands.c 2016-11-04 18:35:59 +0100 Stephan Bosch (033c07cfd) lda: Renamed variables and parameters for consistency with lib-smtp. M src/lda/main.c 2016-11-03 00:20:55 +0100 Stephan Bosch (a77f136d3) lib-lda: Renamed struct mail_deliver_context fields for consistency with lib-smtp. New fields are added in subsequent commits. M src/lda/main.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h M src/lib-lda/mail-send.c M src/lmtp/commands.c 2016-11-04 18:16:52 +0100 Stephan Bosch (d13bee3f3) lmtp: Removed lmtp_address_translate setting. It is assumed not to be used. M src/lmtp/commands.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2017-11-05 02:00:43 +0100 Stephan Bosch (fbad2d107) lib-mail: message-address: Added convenience functions that convert (single) addresses to string. M src/lib-mail/message-address.c M src/lib-mail/message-address.h 2017-10-19 15:20:04 +0200 Stephan Bosch (cc77c1cfe) lib-mail: message-address: Added functions to initialize a struct message_address. M src/lib-mail/Makefile.am M src/lib-mail/message-address.c M src/lib-mail/message-address.h 2017-10-29 23:37:47 +0100 Stephan Bosch (61ae3dd36) lib-smtp: address: Created SMTP address detail parsing function from message_detail_address_parse(). M src/lib-smtp/smtp-address.c M src/lib-smtp/smtp-address.h M src/lib-smtp/test-smtp-address.c 2016-11-06 21:15:41 +0100 Stephan Bosch (03f08e4ab) lib-smtp: Implemented parsing, manipulation and encoding of SMTP addresses. M src/lib-smtp/Makefile.am A src/lib-smtp/smtp-address.c A src/lib-smtp/smtp-address.h A src/lib-smtp/test-smtp-address.c 2016-11-06 21:08:11 +0100 Stephan Bosch (93bedc855) lib-smtp: Implemented generic parser for basic SMTP data items. M src/lib-smtp/Makefile.am A src/lib-smtp/smtp-parser.c A src/lib-smtp/smtp-parser.h 2017-10-27 19:43:43 +0200 Stephan Bosch (4b9e7a875) lib: connection: Added means to initialize connection to just be added to the connection list. M src/lib/connection.c M src/lib/connection.h 2017-10-19 14:04:20 +0200 Stephan Bosch (e98ba66a8) lib-storage: Make parsed postmaster_address available in mail_storage_settings->parsed_postmaster_address. M src/config/Makefile.am M src/lib-lda/mail-send.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/plugins/mail-crypt/test-mail-key.c 2017-10-21 13:13:00 +0200 Stephan Bosch (3c0032978) lib-settings: Added support for running checks after variable expansion. M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h 2017-11-22 21:02:07 +0100 Stephan Bosch (6ee910623) lmtp: Accept XCLIENT ADDR field IPv6 address both with and without "IPV6:" prefix. This is the format that Postfix actually prescribes. The new lib-smtp will add the prefix by default. M src/lmtp/commands.c 2017-11-20 01:26:21 +0100 Stephan Bosch (9ab7221da) lib: llist: Fixed setting (after)->next->prev in DLLIST2_INSERT_AFTER_FULL. This function was not yet used, so the problem did not affect existing code. M src/lib/llist.h 2017-02-26 03:19:51 +0000 Josh Soref (29357a858) lib-settings: Fix spelling of 'expanded' M src/lib-master/master-service-settings.c M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h 2017-11-26 02:11:57 +0200 Timo Sirainen (68953330a) imap: Make sure command handlers are called with ostream corked This wasn't done when client input was continued. If COPY/MOVE was called there, it crashed with: Panic: file cmd-copy.c: line 50 (fetch_and_copy): assertion failed: (o_stream_is_corked(client->output)) M src/imap/imap-client.c 2017-11-26 12:33:33 +0200 Timo Sirainen (f0a21708f) director: DIRECTOR-LIST - Return results sorted by host M src/director/doveadm-connection.c 2017-11-26 12:26:27 +0200 Timo Sirainen (27f553b28) director: DIRECTOR-LIST - Move connection/host output to their own functions M src/director/doveadm-connection.c 2017-11-26 12:36:54 +0200 Timo Sirainen (6e54fd2be) director: Make director_host_cmp_p() public M src/director/director-host.c M src/director/director-host.h 2017-11-24 18:46:19 +0200 Timo Sirainen (91b0bd6e7) director: Improve PING/PONG timeout errors and add new warnings Log a warning if PING-PONG takes over 5 secs in total, or also if the recipient notices that the PING took >= 5 seconds to receive. M src/director/director-connection.c 2017-11-24 18:22:04 +0200 Timo Sirainen (2adcf55dd) director: Add director_ping_idle/max_timeout setting. director_ping_idle_timeout is used when there's otherwise no input coming from the connection. Changed its default from 10 secs to 30 secs. director_ping_max_timeout is used when the other director keeps sending input, but among it is no PONG reply. M src/director/director-connection.c M src/director/director-settings.c M src/director/director-settings.h 2017-11-24 18:18:45 +0200 Timo Sirainen (8506e63fd) director: Log exactly how long PING was waited on before it timed out. M src/director/director-connection.c 2017-11-26 12:20:26 +0200 Timo Sirainen (193a587e5) director: DIRECTOR-LIST - Add "ring " prefix to self's status This is to make it a bit easier to understand the difference between a connection's "handshaking" state vs. "ring handshaking" state. M src/director/doveadm-connection.c 2017-11-26 12:19:36 +0200 Timo Sirainen (5cdaaf2ec) director: DIRECTOR-LIST - Show number of USERs sent/received in "handshaking" state M src/director/director-connection.c M src/director/director-connection.h M src/director/doveadm-connection.c 2017-11-26 12:13:35 +0200 Timo Sirainen (e5ef6fa61) director: Include number of users sent in handshake in disconnection log lines M src/director/director-connection.c 2017-11-26 03:45:00 +0200 Timo Sirainen (dd19de9b6) director: Show number of incoming USERs/sec in ps title M src/director/director-connection.c M src/director/director.h M src/director/main.c 2017-11-25 23:28:12 +0200 Timo Sirainen (58a102564) director: Include number of USERs received in disconnection log lines Separate handshake and refresh USERs. M src/director/director-connection.c 2017-11-25 10:01:31 +0200 Timo Sirainen (14660f677) director: Don't send USERs in handshake that were already sent between handshake If the user was refreshed since the handshake was started, it means that the same user was already sent to the other side (added to the stream immediately after it was received/handled). There's no need to send it again. This fixes a potentally infinite handshake when users are rapidly changing and the handshake iterator never sees the end of the list. (Each refreshed user is moved to the end of the list, so handshaking can keep sending the same user over and over again.) M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c M src/director/test-user-directory.c M src/director/user-directory.c M src/director/user-directory.h 2017-11-25 10:05:27 +0200 Timo Sirainen (efd72f055) director: Delay sorting users until there are no more user iterators This shouldn't have normally happened. Only when an outgoing handshake was going on at the same time as a) another outgoing handshake was going on, or b) doveadm was doing HOST-RESET-USERS M src/director/user-directory.c 2017-11-26 01:31:08 +0200 Timo Sirainen (edaa9f5c3) director: Avoid USER loops with >1s ring latency also with old directors Do this by ignoring USER refreshes that were already updated recently. The "recently" is calculated by director_user_expire/4 seconds ago, but with an upper limit of 15 secs. This means that the USER loops can now only exist if the director ring latency is above 15 seconds. (Once all directors in the ring are running the new version, there's no looping at any latency.) M src/director/director-connection.c 2017-11-26 01:19:35 +0200 Timo Sirainen (b3e36790c) director: Avoid USER loops when ring latency is over 1 second Do this by adding a timestamp parameter to USER events. This way if it takes over 1 second for the USER event to traverse the ring, it won't get into an infinite loop getting the user updated over and over again. M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/director/user-directory.h 2017-11-26 01:14:01 +0200 Timo Sirainen (05b7b8f14) director: Replace USER command during handshake with "U" This clearly differentiates the two commands and allows extending the USER command with new parameters without mixing it up with the handshake-USER. M src/director/director-connection.c M src/director/director.h 2017-11-26 01:06:43 +0200 Timo Sirainen (154f91726) director: Ignore refresh requests for already expired user timestamps M src/director/director-connection.c 2017-11-17 13:24:59 +0200 Timo Sirainen (94fb15fff) director: Keep users unsorted during handshake and sort them at the end This is simpler and sometimes more efficient than the current way of immediately inserting the users to the correct place in the linked list. This is especially useful if handshaking is mixed with regular USER updates, because each switch between them required walking the linked list backwards to find the proper insert position. It's not a big problem if the users list is temporarily unordered. It mainly means that some of the users won't be expired as early as they should have. M src/director/director-connection.c M src/director/user-directory.c 2017-11-17 18:53:18 +0200 Timo Sirainen (0e94f6c27) director: Make sure users are sorted after unfinished handshake The users were sorted after the handshake was finished, but if the connection was closed before that hapepned, the users were left unsorted. This could have caused the users to not expire early enough. M src/director/director-connection.c 2017-11-17 14:56:20 +0200 Timo Sirainen (04c8a9554) director: Make sure user's timestamp isn't set to future The sending director could have the system clock slightly in the future. M src/director/director-connection.c 2017-11-21 23:07:56 +0200 Aki Tuomi (c147bff81) global: Use t_buffer_create sed -i -e 's/buffer_create_dynamic(pool_datastack_create(), */t_buffer_create(/g' M src/auth/auth-policy.c M src/auth/auth-request-handler.c M src/auth/auth-request-stats.c M src/auth/db-checkpassword.c M src/auth/password-scheme-scram.c M src/auth/password-scheme.c M src/config/old-set-parser.c M src/doveadm/client-connection-tcp.c M src/doveadm/doveadm-fs.c M src/doveadm/dsync/dsync-mailbox-state.c M src/imap-login/client-authenticate.c M src/lib-compression/test-compression.c M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/ostream-encrypt.c M src/lib-dcrypt/test-crypto.c M src/lib-dict-backend/dict-sql.c M src/lib-imap-client/imapc-connection.c M src/lib-imap/imap-url.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-transaction-log-file.c M src/lib-mail/test-istream-binary-converter.c M src/lib-mail/test-ostream-dot.c M src/lib-mail/test-quoted-printable.c M src/lib-master/master-auth.c M src/lib-sql/driver-test.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/mail-search.c M src/lib/base32.c M src/lib/base64.c M src/lib/hash-method.c M src/lib/hmac.c M src/lib/pkcs5.h M src/lib/test-buffer.c M src/lib/test-hex-binary.c M src/lib/test-iostream-pump.c M src/lib/test-numpack.c M src/lib/test-ostream-failure-at.c M src/login-common/client-common.c M src/login-common/sasl-server.c M src/plugins/acl/acl-cache.c M src/plugins/fts-lucene/Snowball.cc M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/mail-crypt/mail-crypt-global-key.c M src/plugins/mail-crypt/test-mail-global-key.c M src/plugins/mail-crypt/test-mail-key.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/stats/mail-stats-connection.c M src/plugins/virtual/virtual-sync.c M src/pop3-login/client-authenticate.c M src/stats/mail-command.c M src/stats/mail-session.c M src/stats/mail-user.c M src/util/script.c 2017-11-21 22:57:30 +0200 Aki Tuomi (4d0200e20) lib: buffer - Add t_buffer_create Helper for making a datastack buffer M src/lib/buffer.h 2017-11-24 12:31:22 +0200 Timo Sirainen (06ff86fc9) lib-storage: Fix sorting mails with the same primary sort key The sorting order may have been wrong when there was a combination of: * Messages were sorted by a string (e.g. Subject) * Some messages had the same sort key (e.g. same base subject) * Within the messages with the same sort key, some of the messages already had the "sort-*" index number in Dovecot indexes, but some of them didn't. The result was that Dovecot found that the two messages had exactly the same sort key. It should have continued with the secondary sort key (e.g. message sequence number), but it didn't. M src/lib-storage/index/index-sort-string.c 2017-11-08 15:42:32 +0200 Aki Tuomi (9698cd243) auth: Add lua passdb/userdb support M src/auth/Makefile.am M src/auth/auth-request-var-expand.h A src/auth/db-lua.c A src/auth/db-lua.h A src/auth/passdb-lua.c M src/auth/passdb.c M src/auth/test-auth.h A src/auth/test-lua.c M src/auth/test-main.c M src/auth/test-mock.c A src/auth/userdb-lua.c M src/auth/userdb.c M src/lib-lua/dlua-script-private.h 2017-11-11 11:55:21 +0200 Aki Tuomi (e88e76e78) lib-lua: Add lua helper library Provides a base lua library for lua extensibility M configure.ac M src/Makefile.am A src/lib-lua/Makefile.am A src/lib-lua/dlua-compat.c A src/lib-lua/dlua-dovecot.c A src/lib-lua/dlua-script-private.h A src/lib-lua/dlua-script.c A src/lib-lua/dlua-script.h A src/lib-lua/test-lua.c 2017-11-08 14:09:26 +0200 Aki Tuomi (feaa7d395) configure: Detect lua M configure.ac A m4/want_lua.m4 2017-11-15 19:13:39 +0200 Aki Tuomi (38f53f9d3) auth: Add accessor for userdb-template fields It's needed in lua M src/auth/userdb-template.c M src/auth/userdb-template.h 2017-11-08 13:30:24 +0200 Aki Tuomi (8734467f3) mempool-allocfree: Add linked-list malloc allocation This is useful when you want to actually free memory from pool too M src/lib/Makefile.am A src/lib/mempool-allocfree.c M src/lib/mempool.h M src/lib/test-lib.inc A src/lib/test-mempool-allocfree.c 2017-11-24 09:52:24 +0200 Aki Tuomi (2945c7c61) stats: Do not log errors if /proc/self/io is not accessible Some security options, used notably in docker, can prevent access to this file even from root, so do not log errors if the error is EACCES. M src/plugins/stats/mail-stats-fill.c 2017-11-20 09:46:48 -0500 Josef 'Jeff' Sipek (4ee65ee39) lib: test-path-util - whitespace & coding style cleanup in create_links() M src/lib/test-path-util.c 2017-11-22 10:49:49 +0200 Aki Tuomi (2bd58dc6e) auth: Check that key is not empty in passdb or userdb template Prevents nasty crash later on if template has 'key = value' dovecot: auth: Panic: file auth-request.c: line 1746 (auth_request_set_field): assertion failed: (*name != '\0') M src/auth/passdb-template.c M src/auth/userdb-template.c 2017-11-22 12:16:46 +0200 Timo Sirainen (4e3b79ac7) lib-storage: Add mailbox_set_critical() and mail_set_critical() These add the mailbox vname and mail UID to the log prefix and then call mail_storage_set_critical(). M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2017-11-22 12:02:11 +0200 Timo Sirainen (9f1038760) login-proxy: Fix hang in outgoing SSL connections The handshaking needs to be started explicitly. M src/login-common/login-proxy.c 2017-11-21 16:52:24 +0200 Timo Sirainen (5783df913) login-proxy: Log connection errors using IP, not hostname The hostname can point to multiple IPs or there can be some other mismatch. Logging the IP instead shows exactly what is happening. M src/login-common/login-proxy.c 2017-11-20 21:17:24 +0100 Stephan Bosch (89155c663) lib: path-util: Improved conditional expressions in path_normalize() to match the earlier adjusted assertions. Added some more assertions in the process to make sure subtractions are always valid. M src/lib/path-util.c 2017-11-20 15:53:55 +0200 Timo Sirainen (71acd1d08) lib: Improve test-path-util unit test to catch off-by-one memory allocation errors M src/lib/test-path-util.c 2017-11-20 16:01:25 +0200 Aki Tuomi (569b5022d) lib: path-util - Allocate more space earlier Fixes assert crash in path_normalize when termination needs to happen at asize boundary. Panic: file path-util.c: line 93 (path_normalize): assertion failed: ((size_t)((npath_pos - npath) + 1) < asize) M src/lib/path-util.c 2017-11-20 17:56:52 +0200 Martti Rannanjärvi (82e776175) lib-storage: Add a fall through comment to fix gcc-7 warning M src/lib-storage/mailbox-list.c 2017-11-20 17:03:47 +0200 Timo Sirainen (7f42dc942) mdbox: Fix rebuilding when dovecot.map.index is missing map/ref extension The rebuild kept just repeatedly failing with: Error: mdbox map .../dovecot.map.index corrupted: missing map extension M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2017-11-18 23:14:25 +0200 Timo Sirainen (eaebd98a2) lib-storage: Fix mailbox_create_missing_dir() with storages that have no mail root dir The mailbox still exists even if the mail root directory doesn't, so there's no point in even trying to stat() it. M src/lib-storage/mail-storage.c 2017-11-18 23:10:47 +0200 Timo Sirainen (3fdbff368) lib-storage: Make sure mailbox autocreation doesn't get into infinite loop If mailbox_create() -> mailbox_open() fails with MAIL_ERROR_NOTFOUND, it would have looped back to mailbox_create() and continued this until running out of stack. M src/lib-storage/mail-storage.c 2017-11-18 18:57:51 +0200 Timo Sirainen (638600575) lib-storage: Add INDEXCACHE= to mail_location This allows configuring a different directory for dovecot.index.cache files than the rest of the index files. M src/lib-storage/index/index-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2017-11-20 14:28:40 +0200 Timo Sirainen (da613017f) lib-storage: mailbox_rename() - Improve debug logging when namespaces are incompatible M src/lib-storage/mail-storage.c 2017-11-18 18:12:10 +0200 Timo Sirainen (72af6886c) lib-index: Add mail_index_set_cache_dir() to change .cache's directory M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c M src/lib-index/mail-index.h 2017-11-18 18:03:55 +0200 Timo Sirainen (2608ab449) lib-index: Add mail_cache_open_or_create_path() This allows moving cache file to another directory. M src/lib-index/mail-cache.c M src/lib-index/mail-cache.h 2017-11-18 00:44:12 +0200 Timo Sirainen (ca0cfbcd1) virtual: Fix crash when saving to virtual mailbox whose physical box doesn't exist For example if using "!foo" in dovecot-virtual and "foo" doesn't exist, it crashed. Now it gives a nice error message instead. M src/plugins/virtual/virtual-storage.c 2017-11-18 19:06:55 +0100 Stephan Bosch (1c8b68cab) lib: path-util: Made assertions in path_normalize() more reliable and less confusing to static analyzer. M src/lib/path-util.c 2017-11-17 22:37:00 +0200 Timo Sirainen (d7a2f56cd) lib: path-util - Add more code paths to test in path_normalize() M src/lib/test-path-util.c 2017-11-17 21:44:50 +0200 Timo Sirainen (489af46c6) virtual: Wrap mail.get_binary_stream() to fix it Fixes using FETCH BINARY[..] with virtual mailboxes crashing with: Panic: file index-mail-binary.c: line 585 (index_mail_get_binary_stream): assertion failed: (mail->data.stream != NULL) M src/plugins/virtual/virtual-mail.c 2017-11-17 20:56:28 +0200 Timo Sirainen (948dccd80) quota: Fix error handling if maildirsize rewrite fails after recalculation error could have been left uninitialized, potentially causing a crash. M src/plugins/quota/quota-maildir.c 2017-11-17 20:55:55 +0200 Timo Sirainen (1f8e934c6) fts-lucene: Fix potential memory leak M src/plugins/fts-lucene/lucene-wrapper.cc 2017-11-17 20:53:41 +0200 Timo Sirainen (bcf23eed0) lib-dcrypt: test-stream - Make static analyzer happier Without this clang thinks it's possible that siz>sizeof(payload). M src/lib-dcrypt/test-stream.c 2017-11-15 14:29:59 +0200 Aki Tuomi (c560fa078) doveadm-auth-server: Further fix json problems Remove excess comma from start, forgotten in 3e06a782584ea2c4ae2a8cb0451e9952f05f9dc8 M src/doveadm/doveadm-auth-server.c 2017-11-09 15:33:52 +0200 Timo Sirainen (6d548041b) lib-charset: Compile charset-utf8-only code always Mainly so that this code always gets compiled, so any bugs are found. M src/lib-charset/charset-utf8-only.c 2017-11-09 15:18:29 +0200 Timo Sirainen (9c675d5e5) lib-charset: Allow plugins to replace charset_* functions They just need to point charset_utf8_vfuncs to their own implementation. M src/lib-charset/Makefile.am M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8-only.c A src/lib-charset/charset-utf8-private.h M src/lib-charset/charset-utf8.c 2017-11-09 15:12:05 +0200 Timo Sirainen (5b9bacdb8) lib-charset: Move non-iconv UTF-8 only translation code to its own file M src/lib-charset/Makefile.am A src/lib-charset/charset-utf8-only.c M src/lib-charset/charset-utf8.c 2017-11-16 13:27:23 +0200 Aki Tuomi (abd2ac9eb) mail-crypt: Do not free global keys if no error has occured M src/plugins/mail-crypt/mail-crypt-pluginenv.c 2017-11-16 00:53:34 +0200 Timo Sirainen (d59673943) director: Make sure a missing right-side connection is always reconnected This code shouldn't be needed, but add it just to be sure. M src/director/director.c 2017-11-16 00:44:17 +0200 Timo Sirainen (3a7a8b368) director: Reconnect after detecting a write failure to director If disconnection is detected during write failure, or "Output buffer full" occurs, the connection is disconnected. However, if this was the right side connection, it wasn't automatically reconnected to. This left the ring nonworking. M src/director/director-connection.c 2017-11-15 12:57:34 +0200 Timo Sirainen (0a222deff) global: Replace o_stream_ignore_last_errors() with o_stream_abort() wherever possible M src/lib-fs/fs-api.c M src/lib-mail/test-istream-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/list/subscription-file.c M src/plugins/fts-squat/squat-uidlist.c 2017-11-15 12:49:48 +0200 Timo Sirainen (7660a5183) lib: Add o_stream_abort() M src/lib/ostream.c M src/lib/ostream.h 2017-11-15 12:51:12 +0200 Timo Sirainen (7112c5ac6) lib-smtp: Remove unnecessary o_stream_ignore_last_errors() call The stream is already marked with o_stream_set_no_error_handling(TRUE). M src/lib-smtp/smtp-submit.c 2017-11-02 10:07:39 -0400 Josef 'Jeff' Sipek (8528048c7) lib-storage: Fix MAILBOX_LIST_INDEX_HIERARHCY_SEP spelling Original work by @jsoref M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index.h 2017-11-08 14:40:14 +0200 Timo Sirainen (b8f02c99e) doveadm: client - Cleanup: Simplify the input loop M src/doveadm/server-connection.c 2017-11-08 14:39:06 +0200 Timo Sirainen (4a913ff77) doveadm: client - Cleanup: Remove unnecessary stream_errno check M src/doveadm/server-connection.c 2017-11-09 16:17:26 +0200 Timo Sirainen (73d539741) doveadm: client - Cleanup: Remove unnecessary code indentation M src/doveadm/server-connection.c 2017-11-08 14:35:31 +0200 Timo Sirainen (9f869f9ab) doveadm: client - Cleanup: Handle input NULL first M src/doveadm/server-connection.c 2017-11-09 16:18:13 +0200 Timo Sirainen (20638158a) doveadm: client - Cleanup: Set authenticate_sent in a more proper location M src/doveadm/server-connection.c 2017-11-08 14:32:25 +0200 Timo Sirainen (fd91d0e92) doveadm: client - Cleanup: Don't check authenticate_sent twice M src/doveadm/server-connection.c 2017-11-08 14:20:49 +0200 Timo Sirainen (b52b16e9b) doveadm: client - Read any pipelined replies after authentication reply This practically shouldn't happen. M src/doveadm/server-connection.c 2017-11-08 14:17:04 +0200 Timo Sirainen (1a492d1e2) doveadm: client - Cleanup: Read server input only once in the input handler M src/doveadm/server-connection.c 2017-11-08 14:11:51 +0200 Timo Sirainen (8a6710d67) doveadm: client - Fail if server sends more than one VERSION reply in handshake M src/doveadm/server-connection.c 2017-11-15 16:12:15 +0200 Timo Sirainen (04d4432f5) *-login: Close SSL connections cleanly Don't close the socket before SSL "close notify" is sent. M src/login-common/client-common.c 2017-11-15 15:53:03 +0200 Timo Sirainen (4c5c19b3b) lib-imap: imap_envelope_parse() - remove unnecessary data stack frame imap_envelope_parse_args() isn't using data stack at all, so this unnecessarily complicates the code. It also prevents using datastack-pool as the pool parameter. M src/lib-imap/imap-envelope.c 2017-11-15 09:22:34 +0200 Aki Tuomi (dc8dc2ec4) lib-storage: mailbox-list-index - disable if MAILBOX_LIST_PROP_NO_LIST_INDEX set M src/lib-storage/list/mailbox-list-index.c 2017-11-13 15:28:08 +0200 Aki Tuomi (18b3f4706) lib-storage: imapc - use MAILBOX_LIST_PROP_NO_LIST_INDEX mailbox list index does not work with imapc, so disable it. Panic: file mail-storage.c: line 1858 (mailbox_get_metadata): assertion failed: ((items & MAILBOX_METADATA_GUID) == 0 || !guid_128_is_empty(metadata_r->guid)) M src/lib-storage/index/imapc/imapc-list.c 2017-11-15 09:16:12 +0200 Aki Tuomi (9d41eb0da) lib-storage: mailbox-list-none - use MAILBOX_LIST_PROP_NO_LIST_INDEX flag M src/lib-storage/list/mailbox-list-none.c 2017-11-13 15:27:07 +0200 Aki Tuomi (ba0b86cc4) lib-storage: Add MAILBOX_LIST_PROP_NO_LIST_INDEX If set, disables mailbox list index for the given list. M src/lib-storage/mailbox-list.h 2017-11-15 10:28:37 +0200 Aki Tuomi (3e06a7825) doveadm-auth-server: Send comma only if we are sending field too Fixes json output M src/doveadm/doveadm-auth-server.c 2017-11-14 13:49:22 +0200 Martti Rannanjärvi (8b478435d) lib-master: Drop support for SSL_TXT_SSLV2 in master-service-ssl-settings.c OpenSSL headers are not included in master-service-ssl-settings.c, so the check for SSL_TXT_SSLV2 is broken at the moment, and the feature is not worth supporting since SSLv2 is obsolete. M src/lib-master/master-service-ssl-settings.c 2017-11-15 06:13:30 +0200 Martti Rannanjärvi (6f4c61d8c) m4: Refuse to build with OpenSSL version < 1.0.1 M m4/ssl.m4 2017-11-14 20:14:09 +0200 Timo Sirainen (a0876e2be) lib: Add unit test for dec2str_buf() M src/lib/test-strfuncs.c 2017-11-14 16:51:37 +0200 Timo Sirainen (e1abe6d11) auth: Remove userdb nss Its original purpose was because getpwnam() couldn't differentiate between "user doesn't exist" and "temporary error", but this was solved by using getpwnam_r() instead. So all userdb nss users should be able to safely switch to userdb passwd. M src/auth/Makefile.am D src/auth/userdb-nss.c M src/auth/userdb.c 2017-11-14 00:09:10 +0200 Timo Sirainen (d43692611) imap: SELECT/EXAMINE - Send * OK [CLOSED] before tagged BAD parameters reply M src/imap/cmd-select.c 2017-11-09 16:30:34 +0200 Timo Sirainen (488bdf71b) man: doveadm proxy -a parameter doesn't support TCP sockets M doc/man/doveadm-proxy.1.in 2017-11-09 07:08:24 +0100 Simon Frankenberger (f987ef063) fts-solr: Explicitly ask for XML responses With recent solr versions (7.0+) the default response writer changed from XML to JSON. This commit sets the "wt" query parameter for all requests, so that the right response type is written. M src/plugins/fts-solr/fts-backend-solr.c 2017-11-09 10:52:12 -0500 Josef 'Jeff' Sipek (2b55fff01) lib: fix illumos build issue The recent performance improvements to the net_addr2ip() code broke build on illumos which has a 's_addr' #define in netinit/in.h. M src/lib/net.c 2017-11-10 10:34:09 +0200 Martti Rannanjärvi (f4bc02a62) quota: Exit with EX_TEMPFAIL when doveadm quota get encounters an error M src/plugins/quota/doveadm-quota.c 2017-11-03 08:38:39 -0400 Josef 'Jeff' Sipek (f4169072a) lib: use temp var in i_stream_unref for clarity M src/lib/istream.c 2017-11-09 12:24:16 +0200 Timo Sirainen (b97e952db) director: Fix director_max_parallel_moves/kicks type Should be uint, not time. M src/director/director-settings.c 2017-11-08 16:03:17 +0200 Timo Sirainen (f7292478c) doveadm: client - Fix connecting to UNIX sockets that don't need authentication Trying to access doveadm UNIX socket that didn't require authentication failed with: Error: doveadm server sent invalid handshake: ... M src/doveadm/server-connection.c 2017-11-08 16:01:11 +0200 Timo Sirainen (d85b09627) doveadm: client - Cleanup: Rename handshaked to authenticate_sent This better describes what it does. M src/doveadm/server-connection.c 2017-11-03 17:29:37 +0200 Martti Rannanjärvi (93b8808c9) quota: Include mailbox name in quota_transaction_set_limits() error_r M src/plugins/quota/quota.c 2017-11-03 16:17:44 +0200 Martti Rannanjärvi (12d7f667b) quota: Prefix quota errors with backend name in quota_get_resource() Remove quota backend name error_r prefixing from get_resource() vfuncs. M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-imapc.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota.c 2017-11-02 14:02:15 +0200 Martti Rannanjärvi (4f52de745) quota: Add error_result_r parameter to quota_count() M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-private.h 2017-11-02 12:11:20 +0200 Martti Rannanjärvi (7ee626fd3) quota: Add QUOTA_GET_RESULT_BACKGROUND_CALC enum value M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.h 2017-11-02 12:04:46 +0200 Martti Rannanjärvi (b14f93ea4) quota: Add QUOTA_ALLOC_RESULT_BACKGROUND_CALC enum value M src/plugins/quota/quota-status.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2017-11-02 11:37:08 +0200 Martti Rannanjärvi (1379bb74c) quota: Return quota_get_result from quota_backend_vfuncs.get_resource() Add a QUOTA_UNKNOWN_RESOURCE_ERROR_STRING for returning error_r with QUOTA_GET_RESULT_UNKNOWN_RESOURCE. Forbid backends from returning QUOTA_GET_RESULT_UNLIMITED in quota_get_resource() with an i_panic(). M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-imapc.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2017-11-02 10:39:18 +0200 Martti Rannanjärvi (c975f4c0c) quota: Add error_result_r parameter to quota_transaction_set_limits() M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2017-11-02 16:20:39 +0200 Martti Rannanjärvi (e78fe2531) quota: Make quota_get_result errors <= QUOTA_GET_RESULT_INTERNAL_ERROR Reorder the enum to make a shortcut for distinguishing errors. M src/plugins/quota/quota.h 2017-11-02 16:30:31 +0200 Martti Rannanjärvi (995c0a88e) quota-dict: Cleanup dict_quota_get_resource() whitespace M src/plugins/quota/quota-dict.c 2017-09-20 12:32:40 +0300 Martti Rannanjärvi (bb11a1957) quota-clone: Rename ret_bytes and ret_count to bytes_res and count_res This is because the variables do not contain the actual quota resource values but whether the lookup was successful. M src/plugins/quota-clone/quota-clone-plugin.c 2017-11-06 21:00:57 +0200 Timo Sirainen (07ca0c75d) lib: test-istream-jsonstr - Improve unit test M src/lib/test-istream-jsonstr.c 2017-11-08 14:06:00 +0200 Timo Sirainen (40b50a274) doveadm-server: Fix protocol handshake order With version 1.1 protocol, server sent the authentication "+" or "-" line before the VERSION. doveadm client accepts the VERSION reply either before or after, so this change doesn't break it. It makes the protocol cleaner though. Based on patch by Manuel Mausz M src/doveadm/client-connection-tcp.c 2017-11-08 14:04:12 +0200 Timo Sirainen (4addf3fa0) doveadm-server: Add client_connection_tcp.preauthenticated M src/doveadm/client-connection-tcp.c 2017-11-08 02:31:03 +0200 Timo Sirainen (b722fa7ac) lib-ssl-iostream: Simplify ssl_iostream_settings_equals() M src/lib-ssl-iostream/iostream-ssl.c 2017-11-07 17:36:05 +0200 Timo Sirainen (74c369c05) director: Add director_max_parallel_moves/kicks settings The director_max_parallel_moves setting controls the default limit, which can still be increased by explicitly using the doveadm director flush --max-parallel" parameter. M src/director/director-settings.c M src/director/director-settings.h M src/director/doveadm-connection.c 2017-11-03 13:26:52 +0200 Aki Tuomi (c33930073) lib: istream-jsonstr - Properly handle unicode input Treat surrogates correctly, do not accept invalid codepoints M src/lib/istream-jsonstr.c M src/lib/json-parser.c M src/lib/test-istream-jsonstr.c 2017-11-03 13:23:15 +0200 Aki Tuomi (d9d28856f) lib: istream-jsonstr - Move length check to unescape M src/lib/istream-jsonstr.c 2017-11-06 14:40:08 +0200 Aki Tuomi (c980536af) lib: json-parser - check for valid hex in unicode escape M src/lib/json-parser.c M src/lib/test-json-parser.c 2017-11-03 09:50:40 +0200 Aki Tuomi (32bd32dcc) lib: json-parser - Insert properly escaped unicode M src/lib/json-parser.c M src/lib/json-parser.h M src/lib/test-json-parser.c 2017-11-07 18:28:37 +0200 Timo Sirainen (2ede3b415) configure: Fix writing LIBDOVECOT[_DEPS] in dovecot-config It needs to be in a single line or DC_DOVECOT's greping doesn't work correctly. M configure.ac 2017-11-06 10:36:07 +0200 Aki Tuomi (16a5712c1) director: Limit max kicking count M src/director/doveadm-connection.c M src/director/doveadm-connection.h M src/director/main.c 2017-11-07 14:34:32 +0200 Aki Tuomi (3e0c0a269) director: Add kick_callback to director This callback gets called whenever director has performed a kick. M src/director/director.c M src/director/director.h M src/director/main.c 2017-10-27 16:45:16 +0300 Timo Sirainen (296acbadd) *-login: Add login_proxy_notify_path setting to configure proxy-notify path A single FIFO can be a bottleneck, so this could be set to e.g.: login_proxy_notify_path = proxy-notify%1R{pid} or: login_proxy_notify_path = proxy-notify%10N{pid} M src/login-common/login-settings.c M src/login-common/login-settings.h M src/login-common/main.c 2017-10-27 16:24:54 +0300 Timo Sirainen (9dd8a7597) director: Allow proxy-notify to optionally be a socket Dovecot isn't using this currently, but it can be useful if external services want to send notifications. M src/director/main.c M src/director/notify-connection.c M src/director/notify-connection.h 2017-10-27 16:20:15 +0300 Timo Sirainen (57d65ae19) director: Support multiple proxy-notify connections M src/director/main.c M src/director/notify-connection.c M src/director/notify-connection.h 2017-11-07 03:57:49 +0200 Martti Rannanjärvi (d32f4c43d) quota-fs: Make it possible to set the mount= parameter Also free root->storage_mount_path before copying the given parameter in order not to leak memory when there are duplicate mount= parameters. M src/plugins/quota/quota-fs.c 2017-11-07 01:33:57 +0200 Timo Sirainen (84703c2f1) log: Fix log reopening on SIGUSR1 M src/log/main.c 2017-11-07 01:11:33 +0200 Timo Sirainen (9c04998b7) lib-ssl-iostream: Remove obsolete ssl_iostream_context_deinit() M src/lib-ssl-iostream/iostream-ssl.h 2017-11-05 18:35:57 +0200 Timo Sirainen (ebcf7d6c9) global: Replace ssl_iostream_context_init_client() with ssl_iostream_client_context_cache_get() M src/doveadm/doveadm-dsync.c M src/lib-http/http-client.c M src/lib-imap-client/imapc-client.c M src/lib-storage/index/pop3c/pop3c-client.c 2017-11-05 18:34:48 +0200 Timo Sirainen (b583cc2e5) lib-ssl-iostream: Call ssl_iostream_context_cache_free() automatically at exit M src/lib-ssl-iostream/iostream-ssl.c 2017-11-02 23:36:57 +0200 Timo Sirainen (8d9f11a45) lib: Remove net_transmit() Its API was confusing, and it's no longer used anywhere. M src/lib/net.c M src/lib/net.h 2017-11-01 01:51:14 +0200 Timo Sirainen (71bd935db) login-common: Remove ssl-proxy code M src/login-common/Makefile.am D src/login-common/ssl-proxy-gnutls.c D src/login-common/ssl-proxy-openssl.c D src/login-common/ssl-proxy.c D src/login-common/ssl-proxy.h 2017-11-01 01:49:57 +0200 Timo Sirainen (3e06f836c) login-common: Stop using ssl-proxy entirely M src/login-common/client-common.c M src/login-common/main.c 2017-11-01 01:49:04 +0200 Timo Sirainen (06704acb3) *-login: Remove unnecessary ssl-proxy.h include M src/imap-login/imap-login-client.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c 2017-11-01 01:47:54 +0200 Timo Sirainen (4635b36b0) login-common: Call io_stream_ssl_global_init() early M src/login-common/login-common.h M src/login-common/main.c 2017-11-01 01:27:36 +0200 Timo Sirainen (feb8f7b94) login-common: Use lib-ssl-iostream for incoming SSL/TLS connections M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2017-11-01 01:40:23 +0200 Timo Sirainen (15aa67e8a) lib-ssl-iostream: Add io_stream_ssl_global_init() M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-11-01 01:38:19 +0200 Timo Sirainen (74b7b25c4) lib-ssl-iostream: io_stream_create_ssl_client() - Move code to set verify_remote_cert=TRUE Enable it in the generic SSL code instead of OpenSSL-specific code. M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-ssl.c 2017-11-01 01:21:38 +0200 Timo Sirainen (d920a34df) *-login: Use io_add_istream() instead of io_add() M src/imap-login/imap-login-client.c M src/imap-urlauth/imap-urlauth-login.c M src/pop3-login/client.c 2017-11-01 22:48:55 +0200 Timo Sirainen (025618004) login-common: Change process title to show different connection types Separate pre-login connections, proxy connections and post-login TLS proxies. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/login-proxy.c M src/login-common/login-proxy.h M src/login-common/main.c 2017-11-01 22:40:58 +0200 Timo Sirainen (a7efba62b) login-common: Destroy all fd proxies at deinit. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/main.c 2017-11-01 02:19:51 +0200 Timo Sirainen (87dbf3e85) login-common: Implement post-login proxying and use it with SSL connections Note: This temporarily breaks the SSL connections a bit. If post-login process disconnects the client, it's not noticed by the login process. Client connections are noticed by the post-login though. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2017-11-01 01:06:05 +0200 Timo Sirainen (be6e55ff7) login-common: client_alloc() - remove unnecessary ssl parameter M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/main.c 2017-11-01 01:03:31 +0200 Timo Sirainen (9b450c91e) login-common: Use client_init_ssl() to initialize all SSL connections M src/login-common/main.c 2017-11-01 00:59:54 +0200 Timo Sirainen (b1485f269) login-common: Extract SSL/TLS initialization into client_init_ssl() M src/login-common/client-common.c M src/login-common/client-common.h 2017-11-01 00:49:53 +0200 Timo Sirainen (66ea9eaaa) login-common: Split client_create() to client_alloc() and client_init() client_unref() can be used to free an allocated client that hasn't been fully created. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/main.c 2017-11-02 01:05:01 +0200 Timo Sirainen (14a07d2bb) lib-ssl-iostream: Add TLS SNI callback and a way to change SSL context M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-11-01 00:18:23 +0200 Timo Sirainen (6315f87da) lib-ssl-iostream: ssl_iostream_cert_match_name() - add reason_r parameter The callers were also changed to add the reason to error messages. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-11-01 00:12:24 +0200 Timo Sirainen (bbafd34da) lib-ssl-iostream: openssl_cert_match_name() - add reason_r parameter The returned string explains what exactly matched or why nothing matched. M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/login-common/ssl-proxy-openssl.c 2017-11-01 00:08:26 +0200 Timo Sirainen (18344a653) lib-ssl-iostream: ssl_iostream_cert_match_name() - Change to return bool The return value makes much more sense as a boolean TRUE/FALSE than 0/-1. M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h M src/login-common/ssl-proxy-openssl.c 2017-10-31 19:34:05 +0200 Timo Sirainen (58c2ffe05) login-proxy: Use lib-ssl-iostream for outgoing SSL/TLS connections M src/login-common/login-proxy.c M src/login-common/main.c 2017-11-01 00:35:33 +0200 Timo Sirainen (b5af146ec) lib-master: master_service_ssl_settings_to_iostream_set() - add client/server parameter M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h 2017-10-31 23:24:17 +0200 Timo Sirainen (8ca7d305e) lib-master: master_service_ssl_settings_to_iostream_set() - reorder assignments Keep them in the same order as the fields in struct ssl_iostream_settings, so it's easier to verify whether all fields are listed. M src/lib-master/master-service-ssl-settings.c 2017-10-31 23:23:10 +0200 Timo Sirainen (30c5c1fc3) lib-master: master_service_ssl_settings_to_iostream_set() - add ssl_require_crl M src/lib-master/master-service-ssl-settings.c 2017-10-31 18:57:29 +0200 Timo Sirainen (75eb71389) lib-master: master_service_ssl_settings_to_iostream_set() - don't go through master_service It's more useful to convert any master_service_ssl_settings struct. M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h 2017-11-01 00:26:02 +0200 Timo Sirainen (6d4fb028a) lib-master: Add ssl_client_ca_file & _dir to master_service_ssl_settings M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h 2017-11-02 01:04:00 +0200 Timo Sirainen (86cc86047) lib-ssl-iostream: Add ssl_iostream_context cache This can be used to easily get a shared ssl_iostream_context for either server or client. There's no upper size limit for the cache. M src/lib-ssl-iostream/Makefile.am A src/lib-ssl-iostream/iostream-ssl-context-cache.c M src/lib-ssl-iostream/iostream-ssl.h 2017-11-05 18:30:42 +0200 Timo Sirainen (85a594cdf) lib-ssl-iostream: Add ssl_iostream_settings_drop_stream_only() M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c 2017-11-05 18:29:13 +0200 Timo Sirainen (1c1896564) lib-ssl-iostream: Add ssl_iostream_settings_equals() M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c 2017-10-31 18:43:22 +0200 Timo Sirainen (3c376d8f5) lib-ssl-iostream: Keep ssl_iostream_context referenced while it has streams M src/lib-ssl-iostream/iostream-openssl.c 2017-10-31 18:41:47 +0200 Timo Sirainen (96359599b) lib-ssl-iostream: Add refcounting to ssl_iostream_context M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-10-31 18:39:39 +0200 Timo Sirainen (15d19d6e4) global: Rename ssl_iostream_context_deinit() to ssl_iostream_context_unref() M src/doveadm/doveadm-dsync.c M src/lib-http/http-client.c M src/lib-http/http-server.c M src/lib-imap-client/imapc-client.c M src/lib-master/master-service-ssl.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h M src/lib-storage/index/pop3c/pop3c-client.c 2017-10-30 16:55:43 +0200 Timo Sirainen (319bc5ff4) lib-ssl-iostream: Change ssl_iostream_context.set to not be a pointer It's just unnecessary memory usage. M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h 2017-10-31 18:19:33 +0200 Timo Sirainen (25aa88dd9) lib-ssl-iostream: ssl_iostream_settings_dup() - rewrite using string offsets array This array will be useful for other purposes as well. M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-10-30 16:54:34 +0200 Timo Sirainen (cfa1edd02) lib-ssl-iostream: Add ssl_iostream_settings_init_from() This allows duplicating settings to an already existing struct without having to allocate it. M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-10-30 12:57:40 +0200 Timo Sirainen (e88f4d3dd) lib-ssl-iostream: ssl_iostream_settings_dup() - duplicate also dh M src/lib-ssl-iostream/iostream-ssl.c 2017-10-30 12:06:01 +0200 Timo Sirainen (4c21d44ce) lib-ssl-iostream: Add stream/context comments to all ssl_iostream_settings M src/lib-ssl-iostream/iostream-ssl.h 2017-10-30 00:44:41 +0200 Timo Sirainen (5f24bf9ba) login-proxy: Use iostream-proxy API to perform proxying M src/login-common/login-proxy.c 2017-10-30 00:59:01 +0200 Timo Sirainen (f8b6c3d6b) lib: Add o_stream_get_last_write_time() M src/lib/ostream-private.h M src/lib/ostream.c M src/lib/ostream.h 2017-10-30 00:49:15 +0200 Timo Sirainen (a215abacb) lib: Add i_stream_get_last_read_time() M src/lib/istream-private.h M src/lib/istream.c M src/lib/istream.h 2017-11-01 23:53:42 +0200 Timo Sirainen (1312cf655) login-proxy: Move client fd closing to client_unref() M src/login-common/client-common.c M src/login-common/login-proxy.c 2017-11-01 21:15:53 +0200 Timo Sirainen (86bca14f7) login-common: Move code in client_destroy_internal_failure() to its only caller No need to have a function that has only a single caller. M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h 2017-11-01 21:09:56 +0200 Timo Sirainen (1a1159e58) login-common: Avoid using client_destroy_success() when mail_max_userip_connections is reached This was currently the only way how data != NULL here. This change destroys ssl_proxy on client_destroy() instead of client_unref(), but that doesn't make much of a practical difference. This new behavior is a bit more correct though. M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h 2016-10-04 15:36:06 +0300 Aki Tuomi (8bcf6fd06) iostream-openssl: Refactor stream sync code When doing input or stream sync, specify the type of operation that we are doing to make sure we do IO correctly. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c 2017-11-05 18:07:28 +0200 Timo Sirainen (b4c64e78f) lib-ssl-iostream: Set error on clean connection closing during handshake. Set the error to "SSL connection closed during handshake". M src/lib-ssl-iostream/iostream-openssl.c 2017-11-05 18:06:10 +0200 Timo Sirainen (497cdac28) lib-ssl-iostream: Cleanup disconnection handling Avoid code duplication. Set error to "Connection closed" if there's no other error. M src/lib-ssl-iostream/iostream-openssl.c 2017-11-05 17:47:15 +0200 Timo Sirainen (6c30d94bf) doveadm: Remove dead code ret can never be >0 at this point. If there are any unexpected JSON elements, doveadm_http_server_json_parse_v1() returns -1. M src/doveadm/client-connection-http.c 2017-11-05 23:51:56 +0200 Timo Sirainen (88734aa94) director: Make sure HOST-RESET-USERS isn't used with max_moving_users=0 The reset command would just hang in that case. doveadm would never have sent this, so this is just an extra sanity check. M src/director/doveadm-connection.c 2017-11-05 23:27:36 +0200 Timo Sirainen (5754fa860) director: Show in process title how many users are being kicked. M src/director/director.c M src/director/director.h M src/director/main.c 2017-11-05 23:01:56 +0200 Timo Sirainen (4dc8d682c) director: Show in process title how many requests are being delayed. M src/director/director-request.c M src/director/director.h M src/director/main.c 2017-11-06 10:57:03 +0200 Timo Sirainen (6f20cb522) director: Log an error if login process sends unexpected reply to KICK* commands M src/director/director.c 2017-11-05 22:53:23 +0200 Timo Sirainen (2dfc39a56) director: Log whenever HOST-RESET-USERS is used M src/director/doveadm-connection.c 2017-11-05 22:38:27 +0200 Timo Sirainen (f534eb971) director: Include used CPU secs in director connection log messages It's counting the process's full CPU seconds used since the handshake started, so it's not specific to the connection itself. Still, this is likely to be very useful in debugging whether a slow handshake was due to CPU usage or something else. M src/director/director-connection.c 2017-11-05 22:37:27 +0200 Timo Sirainen (c83e45c82) director: Deduplicate code into director_connection_set_connected() M src/director/director-connection.c 2017-11-05 22:27:41 +0200 Timo Sirainen (ef996cb0e) director: Include peak output buffer size in director connection log messages M src/director/director-connection.c 2017-11-04 14:33:52 +0200 Timo Sirainen (18da63ba6) cassandra: Include the used timestamp in logged queries M src/lib-sql/driver-cassandra.c 2017-11-06 11:00:06 +0200 Timo Sirainen (125081bc1) cassandra: Rename cassandra_sql_statement.pending_timestamp to just timestamp M src/lib-sql/driver-cassandra.c 2017-11-06 18:59:34 +0200 Timo Sirainen (35e47c286) lib-storage: When copying mails, copy also empty cache fields This mainly means that it copies cache fields for nonexistent message headers. Those are still important, because otherwise Dovecot doesn't know whether they exist or not. M src/lib-storage/index/index-storage.c 2017-11-06 01:30:13 +0200 Timo Sirainen (ad394c531) director: Don't block too long when sending users during director handshake All the other work is blocked while the users are being sent. M src/director/director-connection.c 2017-07-26 18:34:59 +0900 Taizo Ito (ea1d2fc0e) auth: Disabling SMTP authentication in vpopmail users with NO_SMTP flag M src/auth/passdb-vpopmail.c 2017-11-05 21:36:55 +0200 Timo Sirainen (4039fdc26) lib: str_parse/to_*int*() - minor optimization M src/lib/strnum.c 2017-11-04 15:29:29 +0200 Timo Sirainen (6b740bf2d) director: Avoid str_printfa() in director_connection_send_users() Optimizes the CPU usage. M src/director/director-connection.c 2017-11-04 02:17:55 +0200 Timo Sirainen (7b3acba3f) director: Avoid str_printfa() in login_host_callback() Optimizes the CPU usage. M src/director/login-connection.c 2017-11-04 02:05:26 +0200 Timo Sirainen (1b418300c) director: Change request callback to take mail_host parameter This allows accessing the IP address both as struct and as string without any conversions. M src/director/director-request.c M src/director/director-request.h M src/director/login-connection.c 2017-11-04 01:59:27 +0200 Timo Sirainen (bd4bbe647) director: Use *_host.ip_str to avoid net_ip2addr() calls M src/director/director-connection.c M src/director/director-host.c M src/director/director.c M src/director/doveadm-connection.c M src/director/mail-host.c 2017-11-04 01:51:25 +0200 Timo Sirainen (b7650f081) director: Add director_host.ip_str This avoids having to use net_ip2addr() all the time to convert it into a string. M src/director/director-host.c M src/director/director-host.h 2017-11-04 01:49:29 +0200 Timo Sirainen (cfc891de6) director: Add mail_host.ip_str This avoids having to use net_ip2addr() all the time to convert it into a string. M src/director/mail-host.c M src/director/mail-host.h 2017-11-04 01:48:41 +0200 Timo Sirainen (e8d44b65a) director: Use t_strsplit_tabescaped_inplace() for director connection input M src/director/director-connection.c 2017-11-04 01:43:41 +0200 Timo Sirainen (1c0491ba0) lib: net_addr2ip() - Optimize for parsing IPv4 addresses M src/lib/net.c M src/lib/test-net.c 2017-11-04 01:42:37 +0200 Timo Sirainen (8e9616d70) lib: net_ip2addr() - Optimize by allocating destination memory immediately It doesn't really matter if we allocate a few extra bytes. M src/lib/net.c 2017-11-04 01:40:24 +0200 Timo Sirainen (b7b202953) lib: *_strsplit() - implement more efficient version for a single separator char M src/lib/strfuncs.c M src/lib/test-strfuncs.c 2017-11-05 21:30:30 +0200 Timo Sirainen (8587f4288) lib: test-strfuncs - Improve *_strsplit*() unit tests M src/lib/test-strfuncs.c 2017-11-04 01:39:38 +0200 Timo Sirainen (7de17a595) lib: Implement t_strsplit_tabescaped_inplace() This is a more efficient version of t_strsplit_tabescaped(), which modifies the input string instead of duplicating it. M src/lib/strescape.c M src/lib/strescape.h M src/lib/test-strescape.c 2017-11-05 21:14:41 +0200 Timo Sirainen (5d8ee65c0) lib: test-strescape - Refactor the unit test to use an array of tests M src/lib/test-strescape.c 2017-11-04 01:37:19 +0200 Timo Sirainen (4ec55911f) lib: t_strsplit_tabescaped() - don't create unnecessary data stack mempool unsafe_data_stack_pool is more efficient to use M src/lib/strescape.c 2017-11-04 01:35:44 +0200 Timo Sirainen (60212a51e) lib: str_tabunescape() - optimize initial escape char lookup strchr() is faster than looping ourself. M src/lib/strescape.c 2017-11-04 01:34:02 +0200 Timo Sirainen (27006b322) director: Don't recreate timeout on every user lookup Recreate it only when the timeout should change. M src/director/user-directory.c 2017-11-05 23:11:25 +0200 Timo Sirainen (7d8c1ba76) director: Fix off-by-one when checking if user weakness is stuck When the weakness was exactly at the second, the weakness wasn't detected and the next expiration timeout was removed entirely. This shouldn't have caused any bigger problems, because another user lookup on the following second would have then detected the weakness, removed the user and restored the next expiration timeout. M src/director/user-directory.c 2017-11-05 17:49:52 +0200 Timo Sirainen (872c2b120) mbox: Add assert to make static analyzer happier M src/lib-storage/index/mbox/mbox-save.c 2017-11-05 17:46:03 +0200 Timo Sirainen (58336fc49) lib-http: Remove dead code This code branch became dead after 22ee6e1e6193299034ab99f77a650290de2fd6ca M src/lib-http/http-transfer-chunked.c 2017-11-03 17:28:57 +0200 Aki Tuomi (a6366f3b2) lib-ssl-iostream: Fix alt cert support It was only partially implemented in 0577701d04beea222fc49a7318851ddcea3b99d3 M src/lib-ssl-iostream/iostream-openssl-context.c 2017-11-02 00:00:00 +0200 Timo Sirainen (ba55ec8fd) lib: istream - Avoid panic in snapshot() with nonpersistent buffers M src/lib/istream.c 2017-11-02 22:57:00 +0200 Timo Sirainen (30517c760) lib: istream - Don't leak snapshot memory if close() triggers a read Also move the line_str freeing just before stream is freed. That didn't cause any known memory leaks though. M src/lib/istream.c 2017-11-02 23:24:38 +0200 Timo Sirainen (81a99eefd) lib: istream-jsonstr - Fix potential infinite loop if parent stream's max_buffer_size is tiny M src/lib/istream-jsonstr.c 2017-11-02 23:22:14 +0200 Timo Sirainen (22ee6e1e6) global: i_stream_read_memarea() - Remove impossible ret==-2 checks If the stream's buffer is empty, i_stream_read_memarea() would have already assert-crashed at this point. M src/lib-http/http-transfer-chunked.c M src/lib-mail/istream-dot.c M src/lib/istream-crlf.c 2017-11-02 23:01:20 +0200 Timo Sirainen (7f4bcbb9f) imap, pop3: Don't access login_set.*_socket_path after they're freed from data stack Call master_login_init() before master_service_init_finish(), which frees all the data stack done in initialization. This didn't normally cause any visible problems, because data stack wasn't currently being used in a way that the strings were invalidated. However, it was causing failures if --enable-devel-checks was used. M src/imap/main.c M src/pop3/main.c 2017-11-02 15:45:09 +0200 Aki Tuomi (63e9db4f9) config: Properly fix ssl-parameters.dat handling It was done only partially right in a70d867d1fe3584149811c65eb6213deb72be824 M src/config/config-request.c M src/config/config-request.h M src/config/doveconf.c 2017-11-01 21:44:54 +0200 Timo Sirainen (b83382498) login-common: client_unref() - always set client pointer to NULL This is the common coding practise elsewhere as well. M src/login-common/client-common.c 2017-11-01 21:44:23 +0200 Timo Sirainen (5885eec2e) pop3-login: Cleanup - uncork output unconditionally before client_unref() M src/pop3-login/client.c 2017-11-01 21:41:18 +0200 Timo Sirainen (a44e36b9c) login-common: Remove unnecessary client_ref/unref from STARTTLS handling There used to be code between them that could have destroyed the connection, but that was removed long time ago. M src/login-common/client-common.c 2017-10-31 23:51:53 +0200 Timo Sirainen (1b7459fda) doveadm: Send hostname without ":port" as TLS SNI name for outgoing SSL connections. M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-server.h M src/doveadm/server-connection.c 2017-11-02 12:00:42 +0200 Aki Tuomi (a70d867d1) config: Do not run ssl_dh check always Do it only when CONFIG_DUMP_FLAG_CHECK_SETTINGS is set. Fixes "Warning: You can generate it with: dd if=ssl-parameters.dat bs=1 skip=88..." M src/config/config-request.c 2017-07-03 11:17:16 +0300 Aki Tuomi (2644ab253) dict-redis: Include last_reply in communications failure error This way it's possible to determine what went wrong. M src/lib-dict/dict-redis.c 2016-06-24 12:09:31 +0300 Timo Sirainen (c75555254) dict-redis: Added support for authentication. Patch by David Zambonini M src/lib-dict/dict-redis.c 2017-11-02 01:34:11 +0200 Timo Sirainen (5aa1aa87a) lib: i_stream_w_buffer_realloc() - avoid passing NULL to memcpy() It happened only with size=0, so it shouldn't have mattered much. M src/lib/istream.c 2017-11-02 00:03:57 +0200 Timo Sirainen (d69c66d77) imap-proxy: Don't discard the first pipelined command after LOGIN M src/imap-login/imap-proxy.c 2017-11-01 19:10:19 +0200 Aki Tuomi (b1390ca0b) lib-storage: imapc - Fix spelling mistakes Original work by @jsoref M src/lib-storage/index/imapc/imapc-list.c 2017-11-01 19:10:07 +0200 Aki Tuomi (760357778) lib-fs: Fix spelling mistakes Original work by @jsoref M src/lib-fs/fs-api.c 2017-11-01 19:09:55 +0200 Aki Tuomi (9cc05eaa6) test-quota: Fix spelling mistakes Original work by @jsoref M src/plugins/quota/test-quota-util.c 2017-11-01 19:09:43 +0200 Aki Tuomi (a3e5780c9) lazy-expunge: Fix spelling mistakes Original work by @jsoref M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2017-11-01 19:09:28 +0200 Aki Tuomi (21bd3573f) plugin-fts: Fix spelling mistakes Original work by @jsoref M src/plugins/fts/fts-expunge-log.c 2017-11-01 19:09:15 +0200 Aki Tuomi (ed4bd0ef7) fts-squat: Fix spelling mistakes Original work by @jsoref M src/plugins/fts-squat/squat-trie.c 2017-11-01 19:09:04 +0200 Aki Tuomi (31281f7ff) imap: Fix spelling mistakes Original work by @jsoref M src/imap/cmd-urlfetch.c 2017-11-01 19:08:54 +0200 Aki Tuomi (688653dfb) director: Fix spelling mistakes Original work by @jsoref M src/director/director-connection.c 2017-11-01 19:08:40 +0200 Aki Tuomi (d47cf089b) mech-apop: Fix spelling mistake Original work by @jsoref M src/auth/mech-apop.c 2017-11-01 19:08:30 +0200 Aki Tuomi (b8909228f) man: Fix spelling mistakes Original work by @jsoref M doc/man/doveadm-replicator.1.in M doc/man/doveadm.1.in 2017-11-01 19:07:26 +0200 Aki Tuomi (19557f192) global: Fix spelling mistakes in comments Original work by @andreasschulze and @jsoref M doc/example-config/conf.d/20-pop3.conf M doc/example-config/conf.d/90-quota.conf M m4/notify.m4 M src/auth/auth-request-handler.c M src/auth/db-checkpassword.c M src/auth/db-passwd-file.c M src/auth/mech-gssapi.c M src/config/config-parser.c M src/director/director-connection.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-sort.c M src/lib-dcrypt/ostream-encrypt.c M src/lib-fs/fs-metawrap.c M src/lib-fts/fts-filter.h M src/lib-http/test-http-client-errors.c M src/lib-imap-client/imapc-connection.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-strmap.h M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.h M src/lib-mail/message-part-data.h M src/lib-ntlm/ntlm-des.c M src/lib-ntlm/ntlm-types.h M src/lib-otp/otp-hash.c M src/lib-settings/settings.c M src/lib-smtp/lmtp-client.h M src/lib-ssl-iostream/ostream-openssl.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-single/sdbox-file.h M src/lib-storage/index/index-search-mime.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/mailbox-attribute.c M src/lib/array.h M src/lib/buffer.c M src/lib/failures.c M src/lib/ioloop-epoll.c M src/lib/ioloop-kqueue.c M src/lib/istream.h M src/lib/net.h M src/lib/path-util.c M src/lib/sendfile-util.c M src/lib/seq-range-array.h M src/lib/wildcard-match.c M src/master/sd-daemon.h M src/master/service.h M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/fs-compress/fs-compress.c M src/plugins/mail-crypt/doveadm-mail-crypt.c M src/plugins/mail-crypt/fs-crypt-common.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/ostream-ext-filter.c M src/pop3/pop3-client.c 2017-11-01 18:04:57 +0200 Aki Tuomi (787bbd436) fts-lucene: Do not clobber return value Found by scanbuild M src/plugins/fts-lucene/fts-backend-lucene.c 2017-10-26 13:56:25 +0300 Timo Sirainen (2a550de68) director: Show each director connection in doveadm DIRECTOR-LIST Previously the host was shown only once, regardless of how many connections it had. This especially helps when there are just two directors, but also can be useful when showing incoming/outgoing connections that are still in handshaking phase. M src/director/doveadm-connection.c 2017-10-26 14:10:51 +0300 Timo Sirainen (cb3f509b9) doveadm director ring status: Add more fields related to connection status M src/director/doveadm-connection.c M src/doveadm/doveadm-director.c 2017-10-26 14:18:50 +0300 Timo Sirainen (3dc72a40e) director: Track show long the last ring sync took. M src/director/director-connection.c M src/director/director.c M src/director/director.h 2017-10-26 14:07:56 +0300 Timo Sirainen (f1551f4a5) director: Track connections' last ping time M src/director/director-connection.c M src/director/director-connection.h 2017-10-26 13:07:30 +0300 Timo Sirainen (56139ffc9) director: Add director_connection_get_status() Can be used to access connection-specific status information. M src/director/director-connection.c M src/director/director-connection.h 2017-10-26 13:02:32 +0300 Timo Sirainen (a1febfe04) director: Fix updating director connection's last_output timestamp It was previously updated only in ostream's flush callback, which was called only when there were a lot of output. This only caused the "last output" timestamp in disconnection log lines to be wrong. M src/director/director-connection.c 2017-10-26 12:44:34 +0300 Timo Sirainen (20b6e495f) doveadm director: Parse timestamp parameters with str_to_time() M src/doveadm/doveadm-director.c 2017-10-25 17:22:42 +0300 Timo Sirainen (1511fc56b) director: Close director connection immediately when output buffer is full Only the ostream was closed, which didn't actually cause the disconnection until the other side closed the connection. M src/director/director-connection.c 2017-10-25 17:18:03 +0300 Timo Sirainen (311cf367b) director: Add director_output_buffer_size setting This allows configuring the max buffer size for outgoing connections. Previously it was hardcoded to 10 MB, which wasn't necessarily enough for very busy directors. M src/director/director-connection.c M src/director/director-settings.c M src/director/director-settings.h 2017-10-31 23:37:44 +0200 Timo Sirainen (4584a0027) lib-ssl-iostream: Verify SSL server's hostname against cert if it's non-NULL The hostname verification was skipped when handshake-callback wasn't used. All of the existing code used the callback though, so this doesn't fix any bugs. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-10-31 19:49:56 +0200 Timo Sirainen (4cc68747a) lib-ssl-iostream: Fix checking cert validity when handshake callback isn't used M src/lib-ssl-iostream/iostream-openssl.c 2017-11-01 12:58:46 +0200 Timo Sirainen (d185226aa) lib-ssl-iostream: Split host to connected_host and sni_host Using the same variable for both was causing confusion. M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h 2017-09-22 11:38:10 +0300 Josef 'Jeff' Sipek (9a84b90d8) global: start relying on [io]_stream_close(NULL) being a no-op Cleanup performed with the following semantic patch (and a bit of hand-editing): @@ expression E; @@ - if (E != NULL) { - i_stream_close(E); - } + i_stream_close(E); @@ expression E; @@ - if (E != NULL) { - o_stream_close(E); - } + o_stream_close(E); M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c M src/lib-smtp/lmtp-client.c M src/lib/connection.c M src/lib/istream-seekable.c M src/lib/istream.c M src/lib/ostream.c M src/login-common/client-common.c M src/replication/aggregator/notify-connection.c 2017-09-22 11:29:35 +0300 Josef 'Jeff' Sipek (660ecbaf8) lib: [io]_stream_close(NULL) should be no-ops M src/lib/istream.c M src/lib/ostream.c 2017-11-01 14:40:51 +0200 Timo Sirainen (322400fb8) lib-index: Fix -Wstrict-bool warnings with --enable-devel-checks M src/lib-index/mail-index-sync-update.c 2017-10-27 21:20:36 +0300 Timo Sirainen (bcd286622) global: Use i_stream_read_memarea() wherever possible M src/lib-dcrypt/istream-decrypt.c M src/lib-fs/istream-metawrap.c M src/lib-http/http-transfer-chunked.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-nonuls.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/istream-qp-encoder.c M src/lib-program-client/program-client-remote.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-jsonstr.c M src/lib/istream-limit.c M src/lib/istream-multiplex.c M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream.c M src/plugins/mail-filter/istream-ext-filter.c 2017-10-27 21:32:10 +0300 Timo Sirainen (fa39c4275) lib: i_stream_compress() - assert-crash if trying to compress shared memarea The caller is always expected to check the refcount before calling this. M src/lib/istream.c 2017-10-27 21:22:04 +0300 Timo Sirainen (66967e15d) lib: i_stream_read() - Add buffer validity checks if DEBUG is enabled M src/lib/istream.c 2017-10-27 21:17:23 +0300 Timo Sirainen (e0fab1460) lib: i_stream_read() - Use snapshots This guarantees that data returned by i_stream_get_data() won't be freed until the next i_stream_read() returns >0. This is mainly important, because often the error handling for <=0 doesn't update the buffer pointers correctly and it leads to complicated bugs where already freed memory is attempted to be read (but never written). M src/lib/istream-private.h M src/lib/istream.c M src/lib/istream.h 2017-10-27 21:13:40 +0300 Timo Sirainen (25c833d3c) lib: Use ISTREAM_CREATE_FLAG_NOOP_SNAPSHOT where useful M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-data.c M src/lib/istream-tee.c 2017-10-27 21:13:20 +0300 Timo Sirainen (89a89730a) lib: Add ISTREAM_CREATE_FLAG_NOOP_SNAPSHOT flag M src/lib/istream-private.h M src/lib/istream.c 2017-10-27 21:08:26 +0300 Timo Sirainen (2974dca6b) global: Add flags parameter to i_stream_create() and set it to 0 This just changes the API - the following changes add the new flag. M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-dcrypt/istream-decrypt.c M src/lib-fs/istream-fs-file.c M src/lib-fs/istream-fs-stats.c M src/lib-fs/istream-metawrap.c M src/lib-http/http-server-request.c M src/lib-http/http-transfer-chunked.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-nonuls.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/istream-qp-encoder.c M src/lib-program-client/program-client-remote.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-test/test-istream.c M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/istream-callback.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-failure-at.c M src/lib/istream-file.c M src/lib/istream-hash.c M src/lib/istream-jsonstr.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-multiplex.c M src/lib/istream-private.h M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream-tee.c M src/lib/istream-timeout.c M src/lib/istream-try.c M src/lib/istream.c M src/plugins/mail-filter/istream-ext-filter.c 2017-10-27 21:28:51 +0300 Timo Sirainen (58e397e90) lib-ssl-iostream: Simplify istream-openssl Partially reverts 739125f23e3312045e620014812fe2249a309cc4. This is no longer needed because of the io_set_pending() changes. M src/lib-ssl-iostream/istream-openssl.c 2017-10-27 20:49:07 +0300 Timo Sirainen (ef4661aec) lib-compression: Use i_stream_try_alloc*() M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c 2017-10-27 20:45:41 +0300 Timo Sirainen (51d379cbc) lib: Add i_stream_try_alloc_avoid_compress() M src/lib/istream-private.h M src/lib/istream.c 2017-10-27 20:38:49 +0300 Timo Sirainen (e05039894) lib-compression: istream-lz4 - Use i_stream_alloc() M src/lib-compression/istream-lz4.c 2017-10-26 18:36:09 +0300 Timo Sirainen (f5d8e0549) lib-mail: istream-attachment-extractor - Don't modify buffer during failure If i_stream_read() returns -1 because the attachment file couldn't be created, don't add the trailing data to the main istream. It's not useful, and the following extra checks will cause it to assert-crash. M src/lib-mail/istream-attachment-extractor.c 2017-09-08 14:59:37 +0300 Timo Sirainen (d74c9f4bf) lib: istream-mmap - Use memarea API M src/lib/istream-mmap.c 2017-10-26 17:12:04 +0300 Timo Sirainen (448ab3576) lib: istream-seekable - Implement snapshot() M src/lib/istream-seekable.c 2017-10-26 16:37:49 +0300 Timo Sirainen (3e55775bc) lib: istream-seekable - Change to use i_stream_*alloc() This simplifies implementing the snapshotting. M src/lib/istream-seekable.c 2017-10-26 17:10:57 +0300 Timo Sirainen (3fe5eaeb3) lib: istream-seekable - Fix fd leak if initial temp file couldn't be read back That should normally never happen. M src/lib/istream-seekable.c 2017-10-26 15:17:04 +0300 Timo Sirainen (82ea464c1) lib: Add istream.snapshot() method for referencing the current memarea It will be used by following commits. M src/lib/istream-private.h M src/lib/istream.c 2017-10-26 15:22:26 +0300 Timo Sirainen (5181e190e) lib-test: istream-test - use memarea API M src/lib-test/test-istream.c 2017-09-08 14:25:41 +0300 Timo Sirainen (5ca745ae8) lib: Use memarea for default istream memory allocations. M src/lib/istream-private.h M src/lib/istream.c 2017-10-26 16:25:51 +0300 Timo Sirainen (54bd0fec0) global: Use i_stream_free_buffer() instead of freeing w_buffer directly M src/lib-http/http-transfer-chunked.c M src/lib-ssl-iostream/istream-openssl.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-multiplex.c M src/lib/istream.c 2017-10-26 16:24:50 +0300 Timo Sirainen (785ee8bec) lib: Add i_stream_free_buffer() to free i_stream_*alloc()ed memory M src/lib/istream-private.h M src/lib/istream.c 2017-09-08 13:33:27 +0300 Timo Sirainen (4c7d70440) lib: Add memarea API This can be used to create reference counted memory areas where a callback is called once the refcount drops to zero. M src/lib/Makefile.am A src/lib/memarea.c A src/lib/memarea.h M src/lib/test-lib.inc A src/lib/test-memarea.c 2017-10-26 14:56:26 +0300 Timo Sirainen (59a63791d) lib: istream-chain/concat cleanup - return early if no new data is read There's no need to change the buffer or other variables. This simplifies the following changes. This cleanup is identical for istream-concat and istream-chain. M src/lib/istream-chain.c M src/lib/istream-concat.c 2017-01-20 17:34:50 +0200 Timo Sirainen (fdf15b2c4) lib-mail: istream-header-filter - Fix header read() when max_buffer_size=0 If the buffer was too small to read anything into it, read_header() returned -2, but then it continued reading the header as if it was the body already. This should instead be an error situation - max buffer size just shouldn't be 0 at this point. This was originally changed in a72355fef49c512c13b7d8c3e07f4f76ebd57a10 as some kind of a workaround, but since then we implemented support for reading a mixed header/body in c2afdbf963d0564a542d71ca784deb0c2f7776d0. M src/lib-mail/istream-header-filter.c 2017-10-30 13:58:54 +0200 Timo Sirainen (a6657bc03) imap: Set max buffer size for CATENATE istream-chain This fixes a crash with mbox when nonexistent CATENATE URL is attempted to be used. The istream doesn't get any size, and istream-header-filter panics due to having reached the maximum buffer size (0), even though the stream is empty and there's nothing to read. M src/imap/cmd-append.c 2017-01-20 16:28:53 +0200 Timo Sirainen (d506fc38c) lib: Add assert to io_stream_ref() This makes an assert-crash likely to happen if iostream was already freed. M src/lib/iostream.c 2017-11-01 13:01:03 +0200 Timo Sirainen (97b6a92d5) doveadm: Ignore errors also on outgoing SSL connection ostreams Setting the errors as ignored on the plain ostream was done too late, so ssl ostream didn't inherit the error handling flag. M src/doveadm/server-connection.c 2017-10-30 00:30:13 +0200 Timo Sirainen (987c15a59) lib: iostream-proxy - Specify what failed in completion callback parameter M src/lib/iostream-proxy.c M src/lib/iostream-proxy.h M src/lib/test-iostream-proxy.c 2017-10-30 00:16:35 +0200 Timo Sirainen (39435f00a) lib: iostream-pump - Specify what failed in completion callback parameter This makes it easier for the caller to find out whether the failure was due to istream or ostream. M src/lib-http/http-server-request.c M src/lib/iostream-proxy.c M src/lib/iostream-pump.c M src/lib/iostream-pump.h M src/lib/test-iostream-pump.c 2017-10-29 23:53:16 +0200 Timo Sirainen (6ce52edd3) lib: iostream-proxy - Add iostream_proxy_is_waiting_output() M src/lib/iostream-proxy.c M src/lib/iostream-proxy.h 2017-10-29 23:53:00 +0200 Timo Sirainen (fe4a5467c) lib: iostream-pump - Add iostream_pump_is_waiting_output() M src/lib/iostream-pump.c M src/lib/iostream-pump.h 2017-10-30 01:07:36 +0200 Timo Sirainen (3bc5b80ae) lib: iostream-pump - Fix crash in iostream_pump_switch_ioloop() if io is NULL This would happen when the pump's ostream is full and it has stopped listening for input. M src/lib/iostream-pump.c 2017-10-29 23:28:38 +0200 Timo Sirainen (84b746f56) lib: iostream-pump - Cork the ostream when writing This reduces latency for TCP connections by disabling Nagle algorithm. M src/lib/iostream-pump.c M src/lib/test-iostream-pump.c 2017-10-31 20:05:19 +0200 Timo Sirainen (103e63c7d) doveadm-server: Deinitialize log proxying before closing SSL iostream Otherwise the SSL iostream destroying may trigger debug/error logging, which attempts to proxy logs when the stream is already closed. This caused a panic. M src/doveadm/client-connection-tcp.c 2017-10-31 19:24:21 +0200 Timo Sirainen (a36cac101) dbox: Don't finish dbox's ostream when mail is saved Fixes assert-crash when saving mail when using zlib plugin. M src/lib-storage/index/dbox-common/dbox-file.c 2017-10-31 17:27:05 +0200 Timo Sirainen (8e8b9d01d) lib-compression: Fix unit test to not crash M src/lib-compression/test-compression.c 2017-10-31 17:24:06 +0200 Timo Sirainen (6519bf9a2) lib-mail: ostream-dot - Set o_stream_set_finish_also_parent(FALSE) by default ostream-dot is always used inside another ostream to implement some kind of data escaping. The ostream-dot always has to be finished to write the "." line, but the caller never wants it to finish the parent stream. M src/lib-mail/ostream-dot.c 2017-10-31 17:20:22 +0200 Timo Sirainen (03e102ddc) lib-fs: fs-metawrap - Don't try to write to an already finished ostream Fixes a crash after recent changes when trying to write an empty file via fs-metawrap. M src/lib-fs/fs-metawrap.c 2017-10-31 17:09:47 +0200 Timo Sirainen (8a4a0ef82) lib: connection - Use o_stream_set_finish_via_child(FALSE) This allows o_stream_finish() calls on child streams without closing this parent stream. Since the stream has no error checking by default anyway, this allows the connection stream to be used more easily. M src/lib/connection.c 2017-10-31 17:07:44 +0200 Timo Sirainen (d6193a892) lib: Add o_stream_set_finish_also_parent() and _finish_via_child() These allow controlling on both directions whether o_stream_finish() should be finishing the parent stream. If either one is set to FALSE, the parent stream isn't finished. Which one of these to use depends on the situation. M src/lib/ostream-private.h M src/lib/ostream.c M src/lib/ostream.h 2017-10-31 15:05:01 +0200 Timo Sirainen (8109f3187) global: Use o_stream_flush_parent() M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lz4.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c M src/lib-dcrypt/ostream-encrypt.c M src/lib-mail/ostream-dot.c M src/lib/ostream-escaped.c M src/lib/ostream-failure-at.c M src/lib/ostream.c M src/plugins/mail-filter/ostream-ext-filter.c 2017-10-31 15:00:51 +0200 Timo Sirainen (5df4dbc38) lib: Add o_stream_flush_parent() M src/lib/ostream-private.h M src/lib/ostream.c 2017-10-31 17:42:15 +0200 Timo Sirainen (b9b86a27a) lib: istream-base64-encoder - Fix getting size for empty stream M src/lib/istream-base64-encoder.c M src/lib/test-istream-base64-encoder.c 2017-10-31 12:16:41 +0200 Aki Tuomi (f134770db) lib-master: Use skip_crl_check for ssl context M src/lib-master/master-service-ssl.c 2017-10-16 10:56:17 +0300 Aki Tuomi (754896551) lib-master: Load SSL module if wanted by service M src/lib-master/master-service.c M src/lib-master/master-service.h 2017-10-16 10:47:36 +0300 Aki Tuomi (30dca9541) lib-master: Add master_service_ssl_settings_to_iostream_set M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h 2017-10-31 10:10:39 +0200 Aki Tuomi (15707468f) lib-master: Support alternative cert in master_service_ssl_ctx_init M src/lib-master/master-service-ssl.c 2017-10-24 14:43:51 +0300 Aki Tuomi (98c2cac72) lib-ssl-iostream: Seed OpenSSL RNG earlier Make sure we give the RNG a chance to seed before we chroot. M src/lib-ssl-iostream/dovecot-openssl-common.c M src/lib-ssl-iostream/iostream-openssl.c 2017-09-07 10:19:36 +0300 Aki Tuomi (997b30e40) lib-ssl-iostream: Expose ssl_module_load We need to load SSL module before we chroot in login-common. M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2016-10-03 12:04:26 +0300 Aki Tuomi (c141f3682) lib-ssl-iostream: Use named initializers M src/lib-ssl-iostream/iostream-openssl.c 2016-09-26 13:55:17 +0300 Aki Tuomi (ca55f7e83) lib-ssl-iostream: Remove input_handler flag It is no longer needed after 87da941c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/istream-openssl.c 2016-09-26 13:52:33 +0300 Aki Tuomi (48e243933) lib-ssl-iostream: Add get_compression accessor This is needed by login-common M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2016-10-03 13:39:35 +0300 Aki Tuomi (1fea3af0b) lib-ssl-iostream: Close ostream before istream If i_stream is autoclose, then o_stream close will fail if done after i_stream close. M src/lib-ssl-iostream/iostream-openssl.c 2016-10-03 12:38:35 +0300 Aki Tuomi (978edad8f) lib-ssl-iostream: Allow skipping CRL check M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-ssl.h 2017-10-30 14:08:23 +0200 Aki Tuomi (0577701d0) lib-ssl-iostream: Add alternate certificate support M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-10-30 14:06:36 +0200 Aki Tuomi (9f7ba3807) global: Splice cert into separate struct from iostream_ssl_settings M src/auth/db-oauth2.c M src/lib-ldap/ldap-connection.c M src/lib-master/master-service-ssl.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2017-10-31 17:01:26 +0200 Timo Sirainen (c75fd9600) lib-fs: test-fs-posix - Fix checking whether unlink_directory() failed M src/lib-fs/test-fs-posix.c 2017-10-30 20:30:03 +0200 Aki Tuomi (65ef8330e) man: Update manpage for mailbox delete command M doc/man/doveadm-mailbox.1.in 2017-10-30 19:29:02 +0200 Martti Rannanjärvi (32c786578) lib: Don't use NEEDS_LOCAL_CREDS undefined M src/lib/net.c 2017-10-30 16:06:39 +0200 Timo Sirainen (1bc075e2e) global: Rename i_stream_is_eof() to i_stream_read_eof() This describes its behavior a bit better. M src/lib-compression/istream-zlib.c M src/lib-fs/fs-sis.c M src/lib-http/http-server-request.c M src/lib-oauth2/oauth2.c M src/lib-program-client/program-client.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/index-mail-binary.c M src/lib/istream.c M src/lib/istream.h 2017-10-30 16:11:43 +0200 Timo Sirainen (a05250bd5) global: Avoid i_stream_is_eof() where it's not necessary M src/lib-http/test-http-server-errors.c M src/lib-smtp/test-smtp-submit.c M src/lib/test-istream-chain.c M src/lib/test-istream-concat.c M src/lib/test-istream-seekable.c 2017-10-30 16:06:21 +0200 Timo Sirainen (6a170d6d7) lib: Improve i_stream_is_eof() comment M src/lib/istream.h 2017-10-30 16:01:31 +0200 Timo Sirainen (7b29ccd79) lib: Update struct istream comments M src/lib/istream.h 2017-10-30 16:00:13 +0200 Timo Sirainen (2a8454fe9) lib-http: If istream read fails, preserve the istream's full error message M src/lib-http/http-header-parser.c M src/lib-http/http-message-parser.c M src/lib-http/http-response-parser.c 2017-10-30 15:59:46 +0200 Timo Sirainen (f48fad971) lib-http: test-http-client-errors - fix typo in error message M src/lib-http/test-http-client-errors.c 2017-10-30 15:58:43 +0200 Timo Sirainen (53393ea8b) lib-http: Detect istream errors correctly. i_stream_is_eof() returns TRUE also when streams have an error, so all errors were logged the same as a regular disconnection. M src/lib-http/http-header-parser.c M src/lib-http/test-http-client-errors.c 2017-10-30 16:39:21 +0200 Martti Rannanjärvi (d61f31663) lib,lib-index: Use #ifdef with WORDS_BIGENDIAN Some were missing from the last change. M src/lib-index/mail-transaction-log-file.c M src/lib/byteorder.h M src/lib/sha1.c 2017-10-28 02:57:37 +0300 Timo Sirainen (5bc75087b) global: Remove explicit o_stream_flush() calls from ostream.close() methods It's now being done automatically. M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lz4.c M src/lib-compression/ostream-lzma.c M src/lib-fs/ostream-cmp.c M src/lib/ostream-file.c M src/lib/ostream-multiplex.c M src/lib/ostream-rawlog.c 2017-10-28 02:55:22 +0300 Timo Sirainen (5ec4fc44e) lib: Automatically flush ostream when it's closed Also verify that it unexpectedly didn't get fully flushed. M src/lib/ostream.c M src/lib/ostream.h 2017-10-28 02:45:58 +0300 Timo Sirainen (ec2c31007) mail-filter: ostream-ext-filter - Require o_stream_finish() to be called Similar to ostream-zlib. M src/plugins/mail-filter/ostream-ext-filter.c 2017-10-28 02:43:16 +0300 Timo Sirainen (a25833972) lib-mail: ostream-dot - Require o_stream_finish() to write the trailer Similar to ostream-zlib. M src/doveadm/server-connection.c M src/lib-mail/ostream-dot.c M src/lib-mail/test-ostream-dot.c M src/lib-program-client/program-client.c M src/lib-program-client/test-program-client-net.c 2017-10-28 02:35:58 +0300 Timo Sirainen (de535bbd1) lib: ostream-multiplex - Don't close parent streams at destroy The close() method is already called as needed. M src/lib/ostream-multiplex.c 2017-10-28 02:21:48 +0300 Timo Sirainen (6630a5734) lib-dcrypt: ostream-dcrypt - Require o_stream_finish() to write the trailer Similar to ostream-zlib. M src/lib-dcrypt/ostream-encrypt.c 2017-10-28 02:09:58 +0300 Timo Sirainen (6fb8641aa) lib-compression: ostream-zlib - Require o_stream_finish() to write the trailer It's now possible to call o_stream_flush() without the trailer getting written. It's also now required to call o_stream_finish() to write the trailer before closing the ostream. This guarantees that the caller checks that the trailer was successfully written. This isn't needed if the ostream already failed before writing the trailer. M src/lib-compression/ostream-zlib.c M src/lib-compression/test-compression.c 2017-10-28 02:07:32 +0300 Timo Sirainen (4805c8a7d) lib: Remove o_stream_nfinish() M src/lib/ostream.h 2017-10-28 02:06:56 +0300 Timo Sirainen (d1ba8ecbb) global: Replace o_stream_nfinish() with o_stream_flush() M src/auth/auth-worker-client.c M src/lib-auth/auth-master.c M src/lib-fs/fs-api.h M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/mbox/mbox-save.c M src/lib/iostream-rawlog.c M src/lmtp/commands.c 2017-10-28 01:55:12 +0300 Timo Sirainen (ad9afb646) global: Replace o_stream_nfinish() with o_stream_finish() whenever possible M src/doveadm/client-connection-http.c M src/doveadm/dsync/dsync-ibc-stream.c M src/lib-compression/test-compression.c M src/lib-dcrypt/test-stream.c M src/lib-dict/dict-file.c M src/lib-fs/fs-api.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-write.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/test-istream-attachment.c M src/lib-master/master-instance.c M src/lib-program-client/test-program-client-net.c M src/lib-program-client/test-program-client-unix.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-duplicate.c M src/lib/test-istream-multiplex.c M src/lib/test-multiplex.c M src/lib/test-ostream-buffer.c M src/lib/test-ostream-file.c M src/lib/test-ostream-multiplex.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile-update.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/replication/replicator/replicator-queue.c M src/util/rawlog.c 2017-10-28 01:15:14 +0300 Timo Sirainen (84717f00d) lib: Add o_stream_finish() This marks the ostream as fully finished, with no further writes coming to it. Otherwise it behaves like o_stream_flush(). The ostream.flush() methods are supposed to write their trailer (if the ostream has one) when they see that ostream.finished is set. These will be implemented by the following commits. M src/lib/ostream-private.h M src/lib/ostream.c M src/lib/ostream.h 2017-10-28 02:02:13 +0300 Timo Sirainen (34d5077c3) lib: o_stream_flush() - check for send overflows and reset error handling This begins the removal of o_stream_nfinish(). M src/lib/ostream.c M src/lib/ostream.h 2017-10-28 00:59:57 +0300 Timo Sirainen (b688884f2) lib: Remove o_stream_nflush() None of its previous callers were calling it correctly, so it's better to remove it entirely to avoid more of such wrong calls. M src/lib/ostream.c M src/lib/ostream.h 2017-10-28 00:54:37 +0300 Timo Sirainen (401b336c8) imap: Make sure long COPY commands send "* OK Hang in there" packets o_stream_nflush() already flushed the writes to kernel, and Linux should have sent them after 200ms delay, so this probably doesn't fix anything. Using uncork+cork is a bit clearer way to indicate that the data really is wanted to be sent now. M src/imap/cmd-copy.c 2017-10-28 00:48:01 +0300 Timo Sirainen (414bbc6df) lib-imap: When sending "+ OK" to client, uncork ostream immediately This makes sure that it's sent to the client as soon as possible. Also removed o_stream_nflush(), since uncorking does that already. If there is no corking, the "+ OK" was already attempted to be sent by the o_stream_nsend() call and a flush is unlikely to help. M src/lib-imap/imap-parser.c 2017-10-27 23:31:32 +0300 Timo Sirainen (f81141f5a) global: Remove unnecessary o_stream_nflush() calls The following o_stream_nfinish() or o_stream_uncork() calls it anyway. M src/imap/cmd-append.c M src/imap/cmd-setmetadata.c M src/imap/imap-client.c M src/lib-http/http-server-connection.c M src/lib-index/mail-index-write.c 2017-10-27 23:31:56 +0300 Timo Sirainen (23c8c511f) lib: o_stream_uncork() - call o_stream_nflush() instead of o_stream_flush() Otherwise flush errors may be unintentionally ignored. This change requires that all the o_stream_uncork() callers must call o_stream_nfinish() afterwards, unless the ostream is set to ignore errors. M src/lib/ostream-file.c M src/lib/ostream.c M src/lib/ostream.h 2017-10-28 00:13:28 +0300 Timo Sirainen (7e41ef20f) lib: test-ostream-* - Call o_stream_nfinish() after uncorking M src/lib/test-ostream-buffer.c M src/lib/test-ostream-file.c 2017-10-30 11:56:32 +0200 Aki Tuomi (2fc183541) configure: Add support for EXTRA_LDFLAGS M configure.ac 2017-10-30 11:19:17 +0200 Timo Sirainen (e01ebd51a) imapc: Add imapc_features=fetch-empty-is-expunged When FETCH returns an empty mail, the mail is assumed to be expunged. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h 2017-10-27 11:03:07 +0300 Martti Rannanjärvi (debc93e62) global: Use #ifdef instead of #if with WORDS_BIGENDIAN This is to not rely on undefined WORDS_BIGENDIAN being evaluated as 0. M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map.c M src/lib-index/mail-transaction-log-file.c M src/lib/byteorder.h M src/lib/sha1.c M src/lib/test-byteorder.c 2017-10-27 11:08:36 +0300 Martti Rannanjärvi (d534a96e0) lib/compat.h: Undefine WORDS_BIGENDIAN when it's defined as 0 M src/lib/compat.h 2017-10-27 11:02:25 +0300 Martti Rannanjärvi (e3504130f) m4: Use AC_C_BIGENDIAN instead of custom m4 M configure.ac D m4/endian.m4 2017-10-24 10:27:23 +0300 Martti Rannanjärvi (111673ed6) lib-storage: Replace DBOX_GUID_BIN_LEN with GUID_128_SIZE DBOX_GUID_BIN_LEN define was removed in 0c909e, replace the use with GUID_128_SIZE. M src/lib-storage/mail.c 2017-10-24 10:24:23 +0300 Martti Rannanjärvi (0c347e983) director: Don't use undefined DIRECTOR_CONNECTION_PING_TIMEOUT_MSECS M src/director/director-connection.c 2017-10-24 10:23:20 +0300 Martti Rannanjärvi (0a8db75f7) auth: Don't use undefined SASL_VERSION_MAJOR M src/auth/db-ldap.c 2017-10-28 15:21:29 +0300 Aki Tuomi (6fc40674e) global: Rename client_connection_type to doveadm_connection_type M src/doveadm/client-connection-http.c M src/doveadm/client-connection-private.h M src/doveadm/client-connection-tcp.c M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h M src/plugins/mail-crypt/doveadm-mail-crypt.c 2017-10-27 21:57:31 +0300 Aki Tuomi (2ba5e7dcc) doveadm: Rename client_connection_type to doveadm_client_connection_type Move it to doveadm.h to allow plugins use doveadm-cmd.h M src/doveadm/client-connection-private.h M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-kick.c M src/doveadm/doveadm.h 2017-10-27 22:06:28 +0300 Aki Tuomi (d29c67900) doveadm: Reorder includes This makes next commit possible M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-print-formatted.c M src/doveadm/doveadm-print-json.c M src/doveadm/doveadm-print-server.c M src/doveadm/main.c 2017-10-23 12:01:27 +0300 Timo Sirainen (d81702ddd) quota: Improve error messages M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2017-10-18 16:21:52 +0300 Timo Sirainen (39eefc53d) quota-fs: Default to quota API v2 if _LINUX_QUOTA_VERSION is undefined. glibc v2.25 drops v1 support in sys/quota.h and doesn't define _LINUX_QUOTA_VERSION. M src/plugins/quota/quota-fs.c 2017-10-17 15:44:38 +0200 Stephan Bosch (cf6131bda) doveadm-server: http: Properly implemented error handling for requests. M src/doveadm/client-connection-http.c 2017-10-17 18:03:59 +0200 Stephan Bosch (456e3b9c7) doveadm-server: http: Mark the HTTP request for connection closure right away. This means that the connection is closed once the request finishes. Before, each response did that individually. Once connection reuse is implemented/needed this can now be turned off at one place. M src/doveadm/client-connection-http.c 2017-10-11 00:57:08 +0200 Stephan Bosch (556a20280) doveadm-server: http: Restructured JSON parsing to improve code clarity. Made state machine more explicit and easier to understand. Also added more comments. M src/doveadm/client-connection-http.c 2017-10-16 23:27:45 +0200 Stephan Bosch (2511999c9) doveadm-server: http: Wrapped long code lines. M src/doveadm/client-connection-http.c 2017-10-11 00:10:38 +0200 Stephan Bosch (2341eb700) doveadm-server: http: Joined JSON parsing and handling in one function. M src/doveadm/client-connection-http.c 2017-10-10 23:51:57 +0200 Stephan Bosch (39e011148) doveadm-server: http: Split JSON handling into several sub-functions. M src/doveadm/client-connection-http.c 2017-10-08 13:27:26 +0200 Stephan Bosch (e97a359e4) doveadm-server: http: Split JSON parsing into several sub-functions. M src/doveadm/client-connection-http.c 2017-10-27 09:36:39 +0200 Stephan Bosch (2ccd63d6f) doveadm-server: http: Changed request parse error into an assertion. The condition can never occur when json-parser and the request parsing state machine are behaving correctly. At that point only an object key can be returned; the client cannot cause it to return anything else. M src/doveadm/client-connection-http.c 2017-10-10 20:28:00 +0200 Stephan Bosch (664503c58) doveadm-server: http: Moved doveadm_http_server_command_execute(). M src/doveadm/client-connection-http.c 2017-10-08 01:19:34 +0200 Stephan Bosch (ce916cf4c) doveadm-server: http: Renamed parse state enum. M src/doveadm/client-connection-http.c 2017-10-07 22:33:26 +0200 Stephan Bosch (457869440) doveadm-server: http: Split off request handling in separate struct, so that the connection can be reused. M src/doveadm/client-connection-http.c 2017-10-08 11:52:53 +0200 Stephan Bosch (14e38f290) doveadm-server: http: Added structural comments. M src/doveadm/client-connection-http.c 2017-10-08 11:44:40 +0200 Stephan Bosch (5927e94f4) doveadm-server: http: Moved doveadm_http_server_request_destroy(). M src/doveadm/client-connection-http.c 2017-10-07 19:11:04 +0200 Stephan Bosch (8bbeec794) doveadm-server: http: Moved doveadm_http_server_send_response(). M src/doveadm/client-connection-http.c 2017-10-07 19:08:03 +0200 Stephan Bosch (437eb0a37) doveadm-server: http: Moved connection-related code to the bottom of the file. M src/doveadm/client-connection-http.c 2017-10-07 18:52:57 +0200 Stephan Bosch (3dee11217) doveadm-server: http: Make http_server_set a local variable of doveadm_http_server_init(). M src/doveadm/client-connection-http.c 2017-10-07 18:47:53 +0200 Stephan Bosch (bcb83bf89) doveadm-server: http: Create the http_response once needed, not preemptively. M src/doveadm/client-connection-http.c 2017-10-07 18:31:44 +0200 Stephan Bosch (8b24f7bd7) doveadm-server: http: Split authentication into multiple functions. M src/doveadm/client-connection-http.c 2017-10-07 17:37:41 +0200 Stephan Bosch (f607f622e) doveadm-server: http: Renamed conn->http_server_request to conn->http_request. M src/doveadm/client-connection-http.c 2017-10-07 17:28:04 +0200 Stephan Bosch (1a7d36f61) doveadm-server: http: Removed http_request field from struct client_connection_http. Not useful to put it there. M src/doveadm/client-connection-http.c 2017-10-07 17:16:22 +0200 Stephan Bosch (2045a5dff) doveadm-server: http: Renamed conn->http_client to conn->http_conn. M src/doveadm/client-connection-http.c 2017-10-07 13:39:44 +0200 Stephan Bosch (80a225c0b) doveadm-server: Restructured client-connection code so that TCP and HTTP connection types are properly separated. M src/doveadm/client-connection-http.c M src/doveadm/client-connection-private.h M src/doveadm/client-connection-tcp.c M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/main.c 2017-10-07 17:07:58 +0200 Stephan Bosch (ee063d661) doveadm-server: http: Moved client_connection_destroy_http(). M src/doveadm/client-connection-http.c 2017-10-07 17:07:10 +0200 Stephan Bosch (e60c3e17c) doveadm-server: tcp: Renamed client_connection_create() to client_connection_tcp_create(). M src/doveadm/client-connection-tcp.c M src/doveadm/client-connection.h M src/doveadm/main.c 2017-10-07 17:06:09 +0200 Stephan Bosch (f300f9277) doveadm-server: http: Renamed client_connection_create_http() to client_connection_http_create(). M src/doveadm/client-connection-http.c M src/doveadm/client-connection.h M src/doveadm/main.c 2017-10-07 16:30:31 +0200 Stephan Bosch (4284e4925) doveadm-server: http: Renamed conn->client to conn->conn. M src/doveadm/client-connection-http.c 2017-10-07 16:57:45 +0200 Stephan Bosch (cd13c18ef) doveadm-server: tcp: Moved client_connection_destroy(). M src/doveadm/client-connection-tcp.c 2017-10-07 16:55:01 +0200 Stephan Bosch (57e356f69) doveadm-server: tcp: Cleaned up doveadm_server_log_handler(). M src/doveadm/client-connection-tcp.c 2017-10-07 16:48:14 +0200 Stephan Bosch (4e08875e5) doveadm-server: Moved common client code back from client-connection-tcp.c to client-connection.c. M src/doveadm/Makefile.am M src/doveadm/client-connection-private.h M src/doveadm/client-connection-tcp.c A src/doveadm/client-connection.c 2017-10-07 15:40:45 +0200 Stephan Bosch (c4292f96d) doveadm-server: Renamed client-connection.c to client-connection-tcp.c. Preparation for subsequent commits. M src/doveadm/Makefile.am R100 src/doveadm/client-connection.c src/doveadm/client-connection-tcp.c 2017-10-08 12:19:09 +0200 Stephan Bosch (e79e12174) doveadm-server: http: Changed index variables from size_t to unsigned int where size_t makes no sense. M src/doveadm/client-connection-http.c 2017-10-18 19:01:10 +0200 Stephan Bosch (9cc49c886) doveadm-server: http: Changed initialization of parameters in doveadm_http_handle_json_v1(). Use normal assignment, rather than memcpy(). This way, type checking is not skipped unnecessarily. M src/doveadm/client-connection-http.c 2017-10-08 12:04:11 +0200 Stephan Bosch (5381c92d0) doveadm-server: http: Use `ret' rather than `rc' as name for the local variable used for return values. M src/doveadm/client-connection-http.c 2017-10-07 12:36:34 +0200 Stephan Bosch (df45032f2) doveadm-server: http: Cleaned up code formatting. M src/doveadm/client-connection-http.c 2017-10-09 14:38:52 +0200 Stephan Bosch (a602aa85c) doveadm-server: http: Created local variable for conn->cmd_param->value.v_istream as an abbreviation. This is a preparation for subsequent commits. M src/doveadm/client-connection-http.c 2017-10-09 13:57:27 +0200 Stephan Bosch (4b2c68685) doveadm-server: http: Created local variable for conn->client.output as an abbreviation. This is a preparation for subsequent commits. M src/doveadm/client-connection-http.c 2017-10-09 14:35:30 +0200 Stephan Bosch (f17ff90e3) doveadm-server: http: Created local variable for conn->http_request as an abbreviation. This is a preparation for subsequent commits. M src/doveadm/client-connection-http.c 2017-10-09 14:13:37 +0200 Stephan Bosch (28d5207fb) doveadm-server: http: Created local variable for conn->http_response as an abbreviation. This also makes sure it is named consistently everywhere. This is a preparation for subsequent commits. M src/doveadm/client-connection-http.c 2017-10-09 13:43:42 +0200 Stephan Bosch (bf5c09951) doveadm-server: http: Created local variable for conn->http_server_request as an abbreviation. This also makes sure it is named consistently everywhere. This is a preparation for subsequent commits. M src/doveadm/client-connection-http.c 2017-10-07 12:48:38 +0200 Stephan Bosch (db4c6cc02) doveadm-server: http: Moved loop body in doveadm_http_server_read_request_v1() to separate function. M src/doveadm/client-connection-http.c 2017-10-10 15:58:33 +0200 Stephan Bosch (e16f28d4b) doveadm: mail: Removed redundant cur_username field from struct doveadm_mail_cmd_context. M src/doveadm/client-connection.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2017-10-10 19:12:52 +0200 Stephan Bosch (2ff59d50f) doveadm: mail: Removed redundant cur_client_ip field from struct doveadm_mail_cmd_context. M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2017-10-10 19:04:20 +0200 Stephan Bosch (a435fb28f) doveadm: mail: Removed struct doveadm_cmd_context function parameters that are now useless. It can be accessed from struct doveadm_mail_cmd_context. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2017-10-07 21:30:27 +0200 Stephan Bosch (1b58508a9) doveadm: Changed command contexts to contain the input, output, and connection type values directly. Before, it used a direct pointer to the connection. It used also flags to indicate the connection type, which is now consolidated in the connection type enum. M src/doveadm/client-connection-http.c M src/doveadm/client-connection-private.h M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/doveadm.c M src/plugins/mail-crypt/doveadm-mail-crypt.c 2017-10-17 16:16:22 +0200 Stephan Bosch (001b7ca6a) lib-http: server: Implemented http_server_request_fail_text(), which allows creating failure responses with verbose payload. M src/lib-http/http-server-request.c M src/lib-http/http-server.h 2017-10-17 16:04:38 +0200 Stephan Bosch (a5886aec8) lib-http: server: Allow determining at any time whether the connection will be closed after handling a request. Previously, this was only possible during response submission, which potentially requires making a `close' parameter available for any API function that submits a (failure) response. This would become very ugly and inflexible. M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c M src/lib-http/http-server.h 2017-10-17 16:35:06 +0200 Stephan Bosch (359947c28) lib-http: server: Set `Connection:' header in response to `close' when request contains the same. Before, it would set it to `Connection: keep-alive', which makes no sense. M src/lib-http/http-server-response.c 2017-10-17 16:28:06 +0200 Stephan Bosch (e2a5de324) lib-http: server: Make sure broken connection input always causes the connection to be closed after response. M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c 2017-10-20 11:04:41 +0300 Timo Sirainen (68969d3f5) maildir: Fix memory leak when mailbox opening fails M src/lib-storage/index/maildir/maildir-storage.c 2017-10-23 15:46:49 +0300 Aki Tuomi (0190b33c0) lib-fts: Fix test-fts-filter to use valid unicode M src/lib-fts/test-fts-filter.c 2017-10-20 15:15:35 +0300 Aki Tuomi (95f5b08fa) test-json-parser: Use idx to better identify failing case M src/lib/test-json-parser.c 2017-10-19 12:35:33 +0300 Aki Tuomi (a01faca54) test-json-parser: Update tests Now that we actually check for valid unicode, the tests need to have valid unicode and invalid unicode in correct places. M src/lib/json-parser.c M src/lib/test-json-parser.c 2017-10-20 14:10:41 +0300 Aki Tuomi (9b26e0815) test-unichar: Add test for surrogate handling M src/lib/test-unichar.c 2017-10-19 11:55:01 +0300 Aki Tuomi (e7e451b7d) test-unichar: Update test to conform RFC3629 M src/lib/test-unichar.c 2017-10-19 11:54:20 +0300 Aki Tuomi (dcd2bdbf7) unichar: Do not accept invalid ranges As per RFC3629 M src/lib/unichar.c 2017-10-20 14:36:32 +0300 Aki Tuomi (2f4060356) json-parser: Fix unicode parsing Check for surrogates and validate ucs4 codepoint. M src/lib/json-parser.c 2017-10-23 15:03:30 +0300 Aki Tuomi (c47167da2) unichar: Use surrogate macros in ucs4 validity check M src/lib/unichar.h 2017-10-20 14:10:26 +0300 Aki Tuomi (2bb5b6721) unichar: Add surrogate handling M src/lib/unichar.h 2017-10-20 13:14:02 +0300 Aki Tuomi (5fc1d7c7c) unichar: Add uni_is_valid_ucs4 M src/lib/unichar.h 2017-10-23 13:34:56 +0300 Timo Sirainen (f8cd64fc6) lib-master: Change instances.lock settings to make it less likely to fail With use_io_notify it's spending less time usleep()ing. Use also a slightly longer timeout just in case. If a lot of instances were started at the same time, some of them could have failed with: master: Error: file_dotlock_open(.../instances) failed: Resource temporarily unavailable M src/lib-master/master-instance.c 2017-10-19 14:39:01 +0300 Timo Sirainen (5b0b45ba0) lib-storage: Fix assert-crash when searching header and MIMEPART For now this is just a bit kludgy workaround. The proper fix requires larger changes, which aren't worth the effort right now. For example: doveadm fetch -u testuser uid MAILBOX inbox FROM foo MIMEPART FILENAME CONTAINS bar BODY baz Crashes with: Panic: file index-mail-headers.c: line 294 (index_mail_parse_header): assertion failed: (part != NULL) M src/lib-storage/index/index-search.c 2017-10-20 07:57:17 +0300 Martti Rannanjärvi (bf20e0e1a) quota-maildir: Don't deref NULL pointer on list deinit M src/plugins/quota/quota-maildir.c 2017-10-21 00:36:55 +0200 Stephan Bosch (9dd47ae5c) lmtp: Fixed passing SMTP submit settings to plugins. This caused Sieve to crash upon SMTP message submission; e.g., during redirect. M src/lmtp/commands.c 2017-10-19 13:05:41 +0300 Timo Sirainen (85174bd65) lib: printf_format_fix*() - Support '*' in precision We're commonly using "%.*s" M src/lib/printf-format-fix.c M src/lib/test-printf-format-fix.c 2017-10-19 13:02:34 +0300 Timo Sirainen (686a3be71) lib: printf_format_fix*() - Move minimum field width check to its own function M src/lib/printf-format-fix.c 2017-10-19 13:26:27 +0300 Timo Sirainen (92cb1ef4f) lib: printf_format_fix*() - Use the same 4 digits as maximum precision length I forgot the precision can also be used to truncate strings, not just specify the precision for floating point numbers. So it makes more sense that the limit is the same as for minimum field width. M src/lib/printf-format-fix.c M src/lib/test-printf-format-fix.c 2017-10-16 15:55:16 +0300 Martti Rannanjärvi (6d1372638) quota-maildir: Improve error_r strings M src/plugins/quota/quota-maildir.c 2017-10-16 14:50:34 +0300 Martti Rannanjärvi (9a603e865) quota-fs: Improve error_r strings M src/plugins/quota/quota-fs.c 2017-10-17 10:26:41 +0300 Martti Rannanjärvi (3f0ef4a28) quota-dirsize: Improve error_r strings M src/plugins/quota/quota-dirsize.c 2017-10-16 14:05:00 +0300 Martti Rannanjärvi (2b4e421b7) quota-dict: Improve error_r strings M src/plugins/quota/quota-dict.c 2017-10-17 11:57:29 +0300 Martti Rannanjärvi (d2cbbecf7) quota-count: Improve error_r strings M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-private.h 2017-10-16 09:58:24 +0300 Martti Rannanjärvi (b82a5c78f) quota-imapc: Improve error_r strings M src/plugins/quota/quota-imapc.c 2017-10-16 12:38:32 +0300 Martti Rannanjärvi (7b3b617e9) quota: Add error_r to update() of quota_backend_vfuncs M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-imapc.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2017-10-17 10:12:48 +0300 Martti Rannanjärvi (a525be16a) quota: Add error_r to get_resource() of quota_backend_vfuncs M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-imapc.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2017-10-16 12:18:53 +0300 Martti Rannanjärvi (e83a11eb1) quota: Add error_r parameter to init_limits() of quota_backend_vfuncs M src/plugins/quota/quota-imapc.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2017-09-20 09:31:40 +0300 Martti Rannanjärvi (cf4131887) quota: Add error_r to quota_get_resource() M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2017-10-06 23:45:41 +0300 Martti Rannanjärvi (efd291767) quota: Add error_r to quota_transaction_set_limits() M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2017-09-20 08:18:11 +0300 Martti Rannanjärvi (4b5c9cdb6) quota: Add error string to quota_set_storage_error() M src/plugins/quota/quota-storage.c 2017-10-06 23:35:34 +0300 Martti Rannanjärvi (b62139aae) quota: Add error_r to quota_settings->test_alloc() M src/plugins/quota/quota-private.h M src/plugins/quota/quota-status.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/quota/quota.h M src/plugins/trash/trash-plugin.c 2017-10-16 22:52:59 +0300 Martti Rannanjärvi (17ec7fd70) quota-maildir: Remove T_BEGIN..T_END blocks This is to enable using t_strdup_printf() with error_r later on. M src/plugins/quota/quota-maildir.c 2017-10-16 22:50:11 +0300 Martti Rannanjärvi (d77b5c30f) quota-fs: Remove T_BEGIN..T_END from fs_quota_get_resource() This is to enable using t_strdup_printf() with error_r later on. M src/plugins/quota/quota-fs.c 2017-10-16 22:47:14 +0300 Martti Rannanjärvi (90bca08ad) quota-dirsize: Remove T_BEGIN..T_END from dirsize_quota_get_resource() This is to enable using t_strdup_printf() with error_r later on. M src/plugins/quota/quota-dirsize.c 2017-10-16 22:35:31 +0300 Martti Rannanjärvi (572988271) quota-dict: Remove T_BEGIN..T_END blocks This is to enable using t_strdup_printf() with error_r later on. M src/plugins/quota/quota-dict.c 2017-10-17 16:05:47 +0300 Martti Rannanjärvi (5997118fa) quota: Initialize quota_backends with designated initializers M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-imapc.c M src/plugins/quota/quota-maildir.c 2017-10-19 15:39:28 +0300 Timo Sirainen (a8adad33c) auth: Fix %{ldap_dn} not to leak memory M src/auth/db-ldap.c 2017-10-19 12:28:38 +0300 Martti Rannanjärvi (f4d6aeaa4) acl: Don't deref a potentially uninitialized pointer in acl_global_file_read M src/plugins/acl/acl-global-file.c 2017-10-17 17:39:32 +0300 Timo Sirainen (c398eca6b) lib: printf_format_fix*() - Be over-strict in what format strings are allowed The checks could have been bypassed by some invalid format strings that were handled differently by the printf_format_fix*() code and libc. For example "%**%n" was passed through as ok, but glibc handled the %n in it. Found by cPanel Security Team. M src/lib/printf-format-fix.c M src/lib/test-printf-format-fix.c 2017-10-16 18:40:38 +0300 Aki Tuomi (32c261251) libpassword: Add unit tests M src/auth/Makefile.am A src/auth/test-libpassword.c 2017-10-16 16:42:43 +0300 Timo Sirainen (a647edfc2) auth: Fix compiling crypt-blowfish with i386 We're not going to support any assembly code, so remove BF_ASM entirely. M src/auth/crypt-blowfish.c 2017-10-17 03:19:19 +0200 Stephan Bosch (20939b554) doveadm-server: http: Fixed lingering connections after the request is sent. Turns out conn->http_client is already NULL while doveadm_http_server_connection_destroy() is called. This is because http_server_connection_unref() sets it to NULL; Fixed by removing useless HTTP connection reference. M src/doveadm/client-connection-http.c 2017-10-16 15:41:56 +0300 Timo Sirainen (344c44115) cassandra: Support "timestamp" type fields properly Fixes setting them with prepared statements. Reading them never worked earlier. M src/lib-sql/driver-cassandra.c 2017-10-16 15:12:12 +0300 Timo Sirainen (b6c9cc2bf) cassandra: Include "prepared" when logging about prepared statement queries Mainly useful for debugging/testing. M src/lib-sql/driver-cassandra.c 2017-10-16 14:49:56 +0300 Timo Sirainen (27688ec19) cassandra: Fix using bigint types with unprepared statements This reverts the code to not using the statements with binding at all. Alternative fix would be to start using explicit int32 or int64 parameter types, but that breaks backwards compatibility a bit. M src/lib-sql/driver-cassandra.c 2017-10-16 18:39:14 +0300 Aki Tuomi (42f8ce7c2) libpassword: Deinitialize hash iterator in password_scheme_detect Otherwise it will leak memory M src/auth/password-scheme.c 2017-08-22 16:29:25 +0300 Timo Sirainen (68c4b2cd6) ipc: Improve error logging when IPC server is disconnected M src/ipc/ipc-connection.c M src/ipc/ipc-connection.h M src/ipc/ipc-group.c 2017-10-16 13:34:35 +0300 Timo Sirainen (d816ebd09) lib-dict-backend: Fix linking test-dict-sql dict_drivers_register_builtin() wasn't found. M src/lib-dict-backend/Makefile.am 2017-10-10 15:04:28 +0300 Aki Tuomi (1ebb6094e) libpassword: Add BLF-CRYPT support independent of crypt M AUTHORS M src/auth/Makefile.am A src/auth/crypt-blowfish.c A src/auth/crypt-blowfish.h M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c 2017-10-10 14:24:44 +0300 Aki Tuomi (58d21a174) auth: Fix typo in blowfish name M src/auth/password-scheme-crypt.c M src/auth/password-scheme.h 2017-10-16 13:53:58 +0300 Timo Sirainen (0cf4f39f6) lib-fs: Fix fs_wrapper_write_stream_finish() to work with async parent fs This only became a problem with the previous fs-compress change. M src/lib-fs/fs-wrapper.c 2017-09-18 15:27:38 +0300 Aki Tuomi (b6fbc235f) login-common: Use HAproxy provided proxy.ssl information If the connection is proxied via system that can terminate ssl for us, such as HAproxy, use that information only. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2017-09-18 15:25:21 +0300 Aki Tuomi (b68b98e15) lib-master: Support HAproxy TLVs This allows passing in information about SSL and client certificate(s) and other information from haproxy. M src/lib-master/master-service-haproxy.c M src/lib-master/master-service.h 2017-10-03 11:15:54 +0300 Aki Tuomi (894610212) lib-master: Use pooled memory for haproxy M src/lib-master/master-service-haproxy.c 2017-09-18 15:21:04 +0300 Aki Tuomi (f43567aab) lib-master: Fix haproxy reading code to read data incrementally M src/lib-master/master-service-haproxy.c 2017-10-10 17:58:03 +0300 Aki Tuomi (0babe1cf4) libpassword: Add support for ARGON2 scheme M src/auth/Makefile.am A src/auth/password-scheme-sodium.c M src/auth/password-scheme.c M src/auth/password-scheme.h M src/doveadm/Makefile.am 2017-10-10 15:24:17 +0300 Aki Tuomi (626421c24) configure: Detect libsodium presence M configure.ac A m4/want_sodium.m4 2017-10-11 16:33:57 -0400 Josef 'Jeff' Sipek (ca5b42cad) acl plugin: avoid "'struct stat' declared inside parameter list" warning M src/plugins/acl/acl-api.h 2017-10-13 12:34:01 +0300 Timo Sirainen (7542b9c48) fs-compress: Allow compress level 0 to skip compression This can be useful when combined with the "maybe-" prefix, so Dovecot will support reading compressed files without creating new ones. M src/plugins/fs-compress/fs-compress.c 2017-10-10 17:40:04 -0400 Bill Cole <18053819+grumpybozo@users.noreply.github.com> (0fbce082b) Added "ULL" to the hex literals that needed it. On 32-bit platforms with older compilers (e.g. gcc 4.2 on MacOS 10.6 running on a 1st-gen Core Duo) a 'long' is 4 bytes and the compiler does not automatically use a 'long long' when needed, but instead generates an error. e.g.: libtool: compile: /usr/bin/g++-4.2 -DHAVE_CONFIG_H -I. -I../../.. -I../../../src/lib -I../../../src/lib-mail -I../../../src/lib-index -I../../../src/lib-storage -I../../../src/plugins/fts -I../../../src/doveadm -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/CLucene/ext -pipe -Os -arch i386 -D__STDC_LIMIT_MACROS -MT lucene-wrapper.lo -MD -MP -MF .deps/lucene-wrapper.Tpo -c lucene-wrapper.cc -fno-common -DPIC -o .libs/lucene-wrapper.o In file included from ../../../src/lib/lib.h:33, from lucene-wrapper.cc:4: ../../../src/lib/byteorder.h:94: error: integer constant is too large for ‘long’ type ../../../src/lib/byteorder.h:95: error: integer constant is too large for ‘long’ type ../../../src/lib/byteorder.h:96: error: integer constant is too large for ‘long’ type ../../../src/lib/byteorder.h:97: error: integer constant is too large for ‘long’ type make[4]: *** [lucene-wrapper.lo] Error 1 Adding the 'ULL' to the end of the 16-digit hex literals that are used to test the structure of 64-bit integers fixes this and avoids any problem which could arise from the compiler using a 32-bit type for those literals that could fit in 32 bites. M src/lib/byteorder.h 2017-10-14 12:54:18 +0300 Timo Sirainen (187fbf157) doveadm proxy: Don't crash if remote doesn't support log proxying M src/doveadm/server-connection.c 2017-10-09 16:37:08 +0300 Timo Sirainen (2ae85e9cc) lib-storage: Add settings to configure lib-index optimization parameters The defaults are expected to be pretty good, but these settings make it easier to test whether other values might be more optimal. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2017-10-09 15:37:51 +0300 Timo Sirainen (67bbcd664) lib-index: Add mail_index_cache_optimization_settings M src/doveadm/dsync/dsync-brain-mailbox.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index.c M src/lib-index/mail-index.h 2017-10-09 15:24:45 +0300 Timo Sirainen (3a7832916) lib-index: Add mail_index_base_optimization_settings M src/lib-index/mail-index-private.h M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index.c M src/lib-index/mail-index.h 2017-10-09 15:15:08 +0300 Timo Sirainen (7ce557e37) lib-index: Replace mail_index_set_log_rotation() with mail_index_set_optimization_settings() This allows more easily adding optimization-related settings. M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c M src/lib-storage/list/mailbox-list-index.c 2017-10-11 12:42:11 +0300 Aki Tuomi (90cc7e61b) lib-dict: Remove test_dict_sql It got accidentically added in 149299c7 M src/lib-dict/Makefile.am 2017-10-11 13:03:51 +0300 Timo Sirainen (61eec37dd) lib-master: Allow a second log initialization after settings have been read. This fixes logging with services that bypass the log service (lda or -L parameter). M src/lib-master/master-service.c 2017-10-06 18:33:24 +0300 Timo Sirainen (43b9125ad) fs-compress: Support reading uncompressed input by prefixing compression format with "maybe-" M src/plugins/fs-compress/fs-compress.c 2017-10-06 18:31:12 +0300 Timo Sirainen (e9fe799e2) lib: Add istream-try This can be used to automatically detect the underlying istream format from a given list of choices. M src/lib/Makefile.am A src/lib/istream-try.c A src/lib/istream-try.h A src/lib/test-istream-try.c M src/lib/test-lib.inc 2017-10-09 18:31:52 +0300 Timo Sirainen (f0910b5cd) lib: io_stream_set_error() - Allow one of the parameters to be the old error M src/lib/iostream.c 2017-10-04 21:45:18 +0300 Timo Sirainen (149299c7d) global: Use check-local in Makefile.am instead of overriding check directly This helps with dependency problems, like running "make check" in lib-storage without "make" first would try to compile the test programs too early and fail. M src/anvil/Makefile.am M src/auth/Makefile.am M src/director/Makefile.am M src/doveadm/Makefile.am M src/doveadm/dsync/Makefile.am M src/lib-charset/Makefile.am M src/lib-compression/Makefile.am M src/lib-dcrypt/Makefile.am M src/lib-dict-backend/Makefile.am M src/lib-dict/Makefile.am M src/lib-dns/Makefile.am M src/lib-fs/Makefile.am M src/lib-fts/Makefile.am M src/lib-http/Makefile.am M src/lib-imap-client/Makefile.am M src/lib-imap/Makefile.am M src/lib-index/Makefile.am M src/lib-ldap/Makefile.am M src/lib-mail/Makefile.am M src/lib-master/Makefile.am M src/lib-program-client/Makefile.am M src/lib-settings/Makefile.am M src/lib-smtp/Makefile.am M src/lib-storage/Makefile.am M src/lib/Makefile.am M src/plugins/mail-crypt/Makefile.am M src/plugins/pop3-migration/Makefile.am M src/plugins/quota/Makefile.am M src/plugins/var-expand-crypt/Makefile.am 2017-10-08 21:08:14 +0300 Timo Sirainen (3cd37f77d) lib-sql, lib-ldap: Fix link dependencies Fixes using the gold linker. M src/lib-ldap/Makefile.am M src/lib-sql/Makefile.am 2017-10-10 15:38:13 +0300 Timo Sirainen (6139e5f5c) lib: ostream-multiplex - ignore flush return value There's nothing that can be done about it at close() time. Silences static analyzer warnings. M src/lib/ostream-multiplex.c 2017-10-10 15:37:39 +0300 Timo Sirainen (95c4374dc) lib: ostream-multiplex - remove unnecessary flushes M src/lib/ostream-multiplex.c 2017-10-10 12:33:08 +0300 Timo Sirainen (f01fe9df4) lib: istream-multiplex - Minor optimization There's no need to find channel when we already know it. This also helps static analyzers to understand that req_channel can't be NULL. M src/lib/istream-multiplex.c 2017-10-06 09:02:49 +0300 Aki Tuomi (4e6865715) ostream-multiplex: Check flush return value M src/lib/ostream-multiplex.c 2017-10-06 08:58:16 +0300 Aki Tuomi (c31803dcb) global: Use i_close_fd instead of close Some were missed, found by coverity M src/lib-program-client/test-program-client-net.c M src/lib/test-iostream-proxy.c M src/master/sd-daemon.c M src/plugins/fts-squat/squat-test.c 2017-10-06 08:55:33 +0300 Aki Tuomi (16bb4836f) test-ostream-escaped: Check flush return value Found by coverity M src/lib/test-ostream-escaped.c 2017-10-06 08:54:38 +0300 Aki Tuomi (ca877eab4) doveadm-server: Remove flush before multiplex It's not really necessary, found by coverity M src/doveadm/client-connection.c 2017-10-06 08:52:18 +0300 Aki Tuomi (bc038dfe3) iostream-multiplex: Check return values in tests M src/lib/test-istream-multiplex.c M src/lib/test-multiplex.c M src/lib/test-ostream-multiplex.c 2017-10-06 08:46:00 +0300 Aki Tuomi (f85250d81) doveadm: Return after destroying connection Prevents NULL deferences, found by coverity. M src/doveadm/server-connection.c 2017-10-09 18:21:24 +0300 Aki Tuomi (2707567db) ostream-multiplex: Unreference stream parent Otherwise it won't get free'd. M src/lib/ostream-multiplex.c 2017-10-09 13:55:06 +0300 Timo Sirainen (59d3aed7a) doveadm: Add remote(host) prefix to all proxied logs M src/doveadm/server-connection.c 2017-10-09 14:28:17 +0300 Timo Sirainen (8a2df8a89) doveadm log test: Fix it to work again Broken by 719abeb2088987f213a33a7dd1fe78958beaef03 M src/doveadm/doveadm-log.c 2017-10-09 13:19:32 +0300 Timo Sirainen (0bb5678d8) lib: ostream-multiplex - set ostream_private.parent Unlike with istream-multiplex, there are no issues with I/Os. Only the parent stream will have the I/O. Using the default parent adds the missing methods that otherwise would have needed to be implemented: - cork - flush_pending - switch_ioloop M src/lib/ostream-multiplex.c 2017-10-09 13:14:23 +0300 Timo Sirainen (36aa1b351) lib: istream-multiplex - Forward i_stream_switch_ioloop() to parent Most istreams do this because istream_private.parent is set to the parent stream, but this can't be done with istream-multiplex. The main problem with attempting to do the same with istream-multiplex is that the different channels don't share the same I/O. Just because one channel received data doesn't mean that other channels received any data. (It would be possible to solve this by implementing a new method that allows overriding i_stream_set_io(), but I'm not sure if that's a good idea either.) M src/lib/istream-multiplex.c 2017-10-09 01:22:47 +0300 Timo Sirainen (f2de2be0e) acl: Fix compiler warning with -Wstrict-bool M src/plugins/acl/acl-backend-vfile.c 2017-10-06 12:47:06 +0300 Martti Rannanjärvi (795c4a5e5) doveadm-mail-crypt: Print existing folder key hash when aborting generate M src/plugins/mail-crypt/doveadm-mail-crypt.c 2017-10-06 16:55:28 +0300 Timo Sirainen (af1342870) acl: Fix checking create (k) permission in global acl-file Just because the global ACL file hasn't changed since it was last refreshed for another ACL object, it doesn't mean that those ACLs don't need to be applied to this ACL object. This didn't usually cause problems, because the initial ACL object refresh was always done due to local-path refresh returning "needs a refresh". The only exception was when acl_object_init_from_parent() was called, because it added an empty non-NULL validity for the local-path, so the "needs a refresh" wasn't returned. This happened only when trying to CREATE or RENAME mailbox under a parent where user didn't have create permissions. This affected only when using a single global acl-file, not when using global acl directory containing per-mailbox files. M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-global-file.c M src/plugins/acl/acl-global-file.h 2017-10-06 16:54:20 +0300 Timo Sirainen (f988345bc) acl: Cleanup - move code to a new acl_vfile_validity_has_changed() M src/plugins/acl/acl-backend-vfile.c 2017-10-06 16:44:01 +0300 Timo Sirainen (587cca00f) acl: Fix checking whether global acl-file has changed We always assumed that it was changed and re-read it. M src/plugins/acl/acl-global-file.c 2017-10-06 15:54:47 +0300 Timo Sirainen (6781f16b2) dict-sql: dict doesn't support NULL values, so convert SQL NULLs to "" M src/lib-dict-backend/dict-sql.c 2017-10-06 15:52:36 +0300 Timo Sirainen (0b307ab3d) lib-sql: Add comments about NULL values. M src/lib-sql/sql-api.h 2017-10-03 17:28:39 +0300 Martti Rannanjärvi (f89eb8f2c) global: Use PRIdTIME_T and PRIxTIME_T format specifiers M src/director/doveadm-connection.c M src/doveadm/dsync/dsync-ibc-stream.c M src/lib-stats/stats-parser.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/mail-search-mime.c M src/lib/iostream-rawlog.c M src/plugins/expire/doveadm-expire.c 2017-10-06 15:10:53 +0300 Martti Rannanjärvi (eb7f74b89) master,stats: Use time_t instead of unsigned long to count seconds M src/master/main.c M src/stats/mail-stats.c 2017-09-19 19:39:19 +0300 Martti Rannanjärvi (2f14f9b2d) m4: Add PRIdTIME_T and PRIxTIME_T format specifiers M configure.ac A m4/time_t.m4 D m4/time_t_signed.m4 2017-09-19 11:57:18 +0300 Martti Rannanjärvi (47a5a7e82) global: Use PRI* macros and %zu instead of casting M src/auth/passdb-cache.c M src/config/config-request.c M src/dict/main.c M src/director/main.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-stats.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-import.c M src/imap/cmd-select.c M src/imap/imap-client.c M src/imap/imap-fetch.c M src/imap/imap-search.c M src/imap/imap-state.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/lib-dict-backend/dict-sql.c M src/lib-dict/dict-client.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-transaction-log-file.c M src/lib-sql/driver-cassandra.c M src/lib-stats/stats-parser.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/mail-search-args-imap.c M src/lib-storage/mail-search-mime.c M src/lib/data-stack.c M src/master/service-process.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-util.c M src/plugins/quota/quota.c M src/plugins/trash/trash-plugin.c 2017-10-06 14:39:00 +0300 Timo Sirainen (c13ec2148) pop3: Expand settings to fix rawlog_dir Even if %variables weren't used in rawlog_dir, the path was always prefixed with "0". M src/pop3/main.c 2017-10-06 14:52:54 +0300 Timo Sirainen (078e0f0c5) lib-settings: Add assert to help static analyzer M src/lib-settings/settings-parser.c 2017-10-06 14:50:35 +0300 Timo Sirainen (5d7fe1420) mail-crypt: test-mail-key - Fix potential crash on a failed test Avoids "Uninitialized argument value" warning from static analyzer. M src/plugins/mail-crypt/test-mail-key.c 2017-10-06 14:48:37 +0300 Timo Sirainen (c77400ca3) lib: test-mempool-alloconly - help static analyzer understand that pool is non-NULL M src/lib/test-mempool-alloconly.c 2017-10-06 14:43:57 +0300 Timo Sirainen (b78f4649c) lib: istream-multiplex - remove dead assignment M src/lib/istream-multiplex.c 2017-10-06 11:07:23 +0300 Martti Rannanjärvi (d2f5bff15) doveadm-mail-crypt: Print existing userkey hash when aborting generate M src/plugins/mail-crypt/doveadm-mail-crypt.c 2017-10-04 09:01:43 -0400 Josef 'Jeff' Sipek (e5f373495) lib: don't use foo_real()-style symbols in a header file While there is precedent for symbols getting _real suffix to hide implementation details, all the existing symbols were static until the recent i_fd_close*() changes. This commit makes this true again. M src/lib/fd-util.c M src/lib/fd-util.h 2017-10-04 08:58:36 -0400 Josef 'Jeff' Sipek (713e3ec4d) lib: move i_fd_close*() to fd-util.[ch] M src/lib/fd-util.c M src/lib/fd-util.h M src/lib/lib.c M src/lib/macros.h 2017-10-04 08:52:13 -0400 Josef 'Jeff' Sipek (83b799ebd) lib: move fd_close_maybe_stdio() to fd-util.[ch] M src/lib/fd-util.c M src/lib/fd-util.h M src/lib/lib.c M src/lib/lib.h 2017-10-04 08:42:56 -0400 Josef 'Jeff' Sipek (184d3a07c) lib: move fd_set_nonblock() to fd-util.[ch] M src/lib/Makefile.am D src/lib/fd-set-nonblock.c D src/lib/fd-set-nonblock.h M src/lib/fd-util.c M src/lib/fd-util.h 2017-10-04 08:28:38 -0400 Josef 'Jeff' Sipek (fa26ad329) lib: move fd-close-on-exec.[ch] code into fd-util.[ch] M src/lib/Makefile.am D src/lib/fd-close-on-exec.h R100 src/lib/fd-close-on-exec.c src/lib/fd-util.c M src/lib/fd-util.h 2017-10-05 13:06:09 -0400 Josef 'Jeff' Sipek (1ef9fe877) global: stop including fd-set-nonblock.h & fd-close-on-exec.h directly M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-ibc-stream.c M src/imap-hibernate/imap-client.c M src/imap/main.c M src/lda/main.c M src/lib-imap-client/test-imapc-client.c M src/lib-master/master-login.c M src/lib-master/master-service.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/fd-set-nonblock.c M src/lib/ioloop-epoll.c M src/lib/ioloop-kqueue.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-kqueue.c M src/lib/istream.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/mmap-anon.c M src/lib/net.c M src/lib/randgen.c M src/lib/test-iostream-proxy.c M src/lib/test-iostream-pump.c M src/lib/test-istream-multiplex.c M src/lib/test-istream-unix.c M src/lib/test-multiplex.c M src/lib/test-ostream-multiplex.c M src/lmtp/main.c M src/login-common/login-proxy-state.c M src/master/dup2-array.c M src/master/main.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/replication/replication-plugin.c M src/util/rawlog.c 2017-10-05 13:05:20 -0400 Josef 'Jeff' Sipek (df6b9bbcd) lib: always include fd-close-on-exec.h & fd-set-nonblock.h via fd-util.h M src/lib/Makefile.am A src/lib/fd-util.h M src/lib/lib.h 2017-10-05 20:25:29 +0300 Timo Sirainen (c704b7fa1) lib: iostream-multiplex tests - Fix hangs by setting the pipe fds non-blocking M src/lib/test-istream-multiplex.c M src/lib/test-multiplex.c M src/lib/test-ostream-multiplex.c 2017-10-05 20:24:11 +0300 Timo Sirainen (c50acc554) lib: istream-multiplex - Minor code cleanup Avoid propagating the error twice, and avoid any confusion about what "got" actually contains. M src/lib/istream-multiplex.c 2017-10-04 21:13:13 +0300 Timo Sirainen (02b352f20) dict-ldap: Link directly to dict binary, unless --with-ldap=plugin was used This is similar to how authdb_ldap plugin is built. M m4/want_ldap.m4 M src/lib-dict-backend/Makefile.am M src/lib-dict-backend/dict-ldap-settings.c M src/lib-dict-backend/dict-ldap.c 2017-10-04 21:01:18 +0300 Timo Sirainen (2ce002148) dict-ldap: Move from plugins/dict-ldap to lib-dict-backend M configure.ac M src/lib-dict-backend/Makefile.am R100 src/plugins/dict-ldap/dict-ldap-settings.c src/lib-dict-backend/dict-ldap-settings.c R100 src/plugins/dict-ldap/dict-ldap-settings.h src/lib-dict-backend/dict-ldap-settings.h R100 src/plugins/dict-ldap/dict-ldap.c src/lib-dict-backend/dict-ldap.c M src/plugins/Makefile.am D src/plugins/dict-ldap/Makefile.am 2017-10-04 20:48:24 +0300 Timo Sirainen (490729624) lib-dict-backend: Build test-dict-sql even without "make check" There's no longer a dependency problem. M src/lib-dict-backend/Makefile.am 2017-10-04 20:46:10 +0300 Timo Sirainen (e5224c058) lib-dict: Move libdict_backend to lib-dict-backend M .gitignore M configure.ac M src/Makefile.am M src/dict/Makefile.am A src/lib-dict-backend/Makefile.am R100 src/lib-dict/dict-cdb.c src/lib-dict-backend/dict-cdb.c R100 src/lib-dict/dict-db.c src/lib-dict-backend/dict-db.c R100 src/lib-dict/dict-sql-private.h src/lib-dict-backend/dict-sql-private.h R100 src/lib-dict/dict-sql-settings.c src/lib-dict-backend/dict-sql-settings.c R100 src/lib-dict/dict-sql-settings.h src/lib-dict-backend/dict-sql-settings.h R100 src/lib-dict/dict-sql.c src/lib-dict-backend/dict-sql.c R100 src/lib-dict/dict-sql.h src/lib-dict-backend/dict-sql.h R100 src/lib-dict/dict.conf src/lib-dict-backend/dict.conf R100 src/lib-dict/test-dict-sql.c src/lib-dict-backend/test-dict-sql.c M src/lib-dict/Makefile.am M src/lib-dict/dict.c 2017-10-05 15:53:16 +0300 Aki Tuomi (29a2904f6) mail-crypt: Improve doveadm output M src/plugins/mail-crypt/doveadm-mail-crypt.c 2017-10-05 15:40:45 +0300 Aki Tuomi (1d2c599b0) mail-crypt: Fix key generation handling Userkey generation would not set all required fields. M src/plugins/mail-crypt/doveadm-mail-crypt.c 2017-10-05 12:34:10 +0300 Timo Sirainen (eb5809d06) director: When ring is synced, purge any pending "removed" directors This allows adding a director back to the ring without having to wait for 30 seconds. M src/director/director.c 2017-10-03 16:40:32 +0300 Timo Sirainen (de69258ce) director: Rename director_delayed_dir_remove_timeout() to director_hosts_purge_removed() This allows using it for other purposes without having a confusing name. M src/director/director.c 2017-10-05 16:12:38 +0300 Timo Sirainen (aa7e573b3) director: Fix potential panic when director is alone If director is alone and it can't connect to other directors, it might crash with: Panic: file director.c: line 318 (director_set_ring_synced): assertion failed: (!dir->ring_synced) M src/director/director.c 2017-10-05 13:42:07 +0300 Timo Sirainen (12c575315) global: Remove dead code Found with clang static analyzer. M src/auth/db-dict.c M src/auth/db-ldap.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/lib-http/http-client-peer.c M src/lib-http/test-http-server-errors.c M src/lib-ldap/ldap-connection.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/mail-search-mime.c M src/lib-storage/mail-search.c M src/lib/failures.c M src/lib/test-array.c M src/master/main.c 2017-10-05 13:39:49 +0300 Timo Sirainen (c97cf4867) dict-memcached: Response status may not be included in enum memcached_response This helps at least static analyzers figure out that other statuses are possible, although unexpected. M src/lib-dict/dict-memcached.c 2017-10-05 13:26:03 +0300 Timo Sirainen (a2f8919f2) lib-test: Use i_unreached() for marking unreachable code in test fatal handler This avoids a warning with static analyzer. M src/lib-test/test-common.c 2017-10-05 13:23:19 +0300 Timo Sirainen (52c3bd140) auth: LDAP request queue has no size limit anymore - remove dead code M src/auth/db-ldap.c 2017-10-05 13:17:59 +0300 Timo Sirainen (85cf1c27b) mbox: Remove unnecessary check from assert - move_diff is always negative here M src/lib-storage/index/mbox/mbox-sync.c 2017-10-05 13:14:55 +0300 Timo Sirainen (7f8033ffe) zlib: zlib_mailbox_open_input() can't fail - remove dead code M src/plugins/zlib/zlib-plugin.c 2017-10-05 13:02:21 +0300 Timo Sirainen (67445e2ac) lib-storage: imapc_mailbox_get_selected_status() can't fail - remove dead code M src/lib-storage/index/imapc/imapc-storage.c 2017-10-04 09:42:02 +0300 Aki Tuomi (740657494) doveadm-server: Use i_close_fd M src/doveadm/client-connection.c 2017-08-24 14:59:07 +0300 Aki Tuomi (c9dd53f71) doveadm: Deliver remote logs over doveadm socket M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/doveadm-util.c M src/doveadm/doveadm-util.h M src/doveadm/server-connection.c 2017-08-24 14:45:22 +0300 Aki Tuomi (ce7004127) doveadm: Refactor server/client code to support versioning properly This way we can distinguish between old and new server side M src/doveadm/client-connection.c M src/doveadm/doveadm-util.h M src/doveadm/server-connection.c 2017-09-12 13:43:30 +0300 Aki Tuomi (f78d021f3) doveadm-server: Refactor connection handshake and authentication Simplifies next change M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/doveadm-util.h M src/doveadm/server-connection.c 2017-08-22 10:14:22 +0300 Aki Tuomi (1de7b73a1) lib: Add multiplex stream support This allows having multiple channels of data in single stream. M src/lib/Makefile.am A src/lib/istream-multiplex.c A src/lib/istream-multiplex.h A src/lib/ostream-multiplex.c A src/lib/ostream-multiplex.h A src/lib/test-istream-multiplex.c M src/lib/test-lib.inc A src/lib/test-multiplex.c A src/lib/test-ostream-multiplex.c 2017-10-05 11:51:23 +0300 Timo Sirainen (b0421c739) director: Allow doveadm director ring remove for the same director Fixes: Panic: file doveadm-connection.c: line 859 (doveadm_connection_cmd_run): assertion failed: (conn->dir->right == NULL && conn->dir->left == NULL) M src/director/director.c 2017-10-05 11:49:31 +0300 Timo Sirainen (5c340190a) director: Don't crash on doveadm director ring remove for unknown director Ring syncing isn't started, so it shouldn't try to wait for ring sync. Fixes: Panic: file doveadm-connection.c: line 859 (doveadm_connection_cmd_run): assertion failed: (conn->dir->right == NULL && conn->dir->left == NULL) M src/director/doveadm-connection.c 2017-10-05 11:46:55 +0300 Timo Sirainen (312213260) director: Don't crash if DIRECTOR-REMOVE is received for itself This triggers the director removal from the ring, which causes the connection to be destroyed. But since we're still in the middle of handling the connection it needs refcounting. M src/director/director-connection.c 2017-10-04 15:11:18 +0300 Timo Sirainen (f36341446) lib: istream-file - set blocking=TRUE automatically for blocking sockets This fixes it to be correct with various doveadm commands. M src/lib/istream-file.c 2017-10-04 15:08:07 +0300 Timo Sirainen (03915cfec) lib: istream-file/unix - don't ignore EINTR for blocking istream reads Just fail the istream read entirely. Although there's a small possibility that this interrupt was unwanted and should be retried, it's more likely that a blocking istream is hanging and admin wants to stop the process. If the EINTR is ignored all the time, it's not possible to abort a blocking read with ^C or anything else than SIGKILL. M src/lib/istream-file.c M src/lib/istream-unix.c 2017-10-04 20:14:05 +0300 Timo Sirainen (874f31bbd) lib: test-istream-unix - Use i_stream_set_blocking() M src/lib/test-istream-unix.c 2017-10-04 20:13:49 +0300 Timo Sirainen (0b6924ad1) lib: Add i_stream_set_blocking() M src/lib/istream.c M src/lib/istream.h 2017-09-16 13:28:32 +0200 Stephan Bosch (47fa7b222) lib-smtp: smtp-submit: Made submission_timeout a setting rather than a function parameter. This makes it configurable. M src/lda/main.c M src/lib-lda/mail-deliver.h M src/lib-lda/mail-send.c M src/lib-smtp/smtp-submit-settings.c M src/lib-smtp/smtp-submit-settings.h M src/lib-smtp/smtp-submit.c M src/lib-smtp/smtp-submit.h M src/lib-smtp/test-smtp-submit.c M src/lmtp/commands.c 2017-09-15 01:46:38 +0200 Stephan Bosch (ebd21ab2c) lib-lda: Dropped now useless settings from lib-lda/lda-settings. These are now in lib-smtp/smtp-submit-settings. M src/lib-lda/lda-settings.c M src/lib-lda/lda-settings.h 2017-09-15 01:44:24 +0200 Stephan Bosch (1519df1d5) imap: Drop dependencies on lib-lda settings. Start using lib-smtp/smtp-submit-settings instead. Put any other settings required by IMAPSIEVE in struct imap_settings. M src/imap/Makefile.am M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-settings.c M src/imap/main.c 2017-09-21 00:14:17 +0200 Stephan Bosch (a9f821804) lib-lda: Use hostname and postmaster_address settings from mail_storage_settings where possible. M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c 2017-09-15 01:15:19 +0200 Stephan Bosch (3d9b33dc0) lib-lda: Use SMTP submit settings directly. M src/lib-lda/mail-send.c 2017-10-04 22:41:14 +0200 Stephan Bosch (f41f6294f) lib-storage: Renamed duplicate to mail_duplicate. This makes more sense given where this is now located. M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h M src/lib-storage/Makefile.am D src/lib-storage/duplicate.h R060 src/lib-storage/duplicate.c src/lib-storage/mail-duplicate.c A src/lib-storage/mail-duplicate.h 2017-09-16 17:06:14 +0200 Stephan Bosch (06426c2f6) lib-lda: Moved duplicate handling to lib-storage. M src/lib-lda/Makefile.am M src/lib-storage/Makefile.am R100 src/lib-lda/duplicate.c src/lib-storage/duplicate.c R100 src/lib-lda/duplicate.h src/lib-storage/duplicate.h 2017-09-15 01:28:11 +0200 Stephan Bosch (3ff9a4497) lib-lda: Removed old smtp-client API. M src/lib-lda/Makefile.am D src/lib-lda/smtp-client.c D src/lib-lda/smtp-client.h 2017-09-20 21:49:34 +0200 Stephan Bosch (c2ea6b029) lib-storage: Added hostname, postmaster_address and recipient_delimiter settings to mail_storage_settings. Copied from lda_settings. M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2017-09-15 01:13:18 +0200 Stephan Bosch (0f72f253d) lda/lmtp: Parse SMTP submit settings. M configure.ac M src/config/settings-get.pl M src/lda/Makefile.am M src/lda/main.c M src/lib-lda/lda-settings.c M src/lib-lda/mail-deliver.h M src/lmtp/commands.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c 2017-09-19 21:51:14 +0200 Stephan Bosch (1642939e4) lda: main: main(): Put result from mail_user_var_expand_table() in a variable. Keeps code more compact, as this function is going to be called several times. M src/lda/main.c 2017-09-19 21:39:14 +0200 Stephan Bosch (90cdc497f) lmtp: commands: client_deliver(): Put client->state.dest_user in a variable. Keeps code more compact, as this value is used several times. M src/lmtp/commands.c 2017-09-19 21:33:30 +0200 Stephan Bosch (ed89b9556) lmtp: commands: client_deliver(): Put result from mail_user_var_expand_table() in a variable. Keeps code more compact, as this function is called several times. M src/lmtp/commands.c 2017-09-15 00:10:30 +0200 Stephan Bosch (5356717c7) lib-smtp: smtp-submit: Made settings parseable. M src/lib-smtp/Makefile.am A src/lib-smtp/smtp-submit-settings.c A src/lib-smtp/smtp-submit-settings.h M src/lib-smtp/smtp-submit.h 2017-09-14 01:32:17 +0200 Stephan Bosch (fe6a2885e) lib-lda: Moved most of mail_deliver_save_open() to lib-storage. This prevents the need to link Pigeonhole lib-sieve to lib-lda, which makes no sense for IMAPSIEVE. This also allows lib-sieve to have more control over how mailboxes are opened. M src/lib-lda/mail-deliver.c 2017-09-14 01:56:38 +0200 Stephan Bosch (7d716afc5) lib-storage: Created mailbox_alloc_delivery(), which initializes a mailbox for message delivery. M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2017-09-14 01:46:12 +0200 Stephan Bosch (df9718009) lib-storage: Implemented new mailbox flag MAILBOX_FLAG_AUTO_SUBSCRIBE. When this flag is enabled, the mailbox is implicitly subscribed to when it is created automatically. M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2017-09-14 01:39:30 +0200 Stephan Bosch (2d27ea506) lib-storage: Implemented new mailbox flag MAILBOX_FLAG_AUTO_CREATE. When this flag is enabled, the mailbox is automatically created when it is opened (if possible and appropriate). M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2017-09-19 21:08:38 +0200 Stephan Bosch (2ceb75f82) lib-storage: Implemented mailbox_is_autosubscribed(). Indicates whether the mailbox is automatically subscribed to when it is automatically created. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2017-10-04 15:41:03 +0300 Timo Sirainen (6c76bcb36) director: Fix HOST-RESET-USERS when all hosts are down If there were a lot of users being kicked, the host was flushed after the initial round of user kills. This caused the rest of the user connections to be just discarded instead of actually being killed. M src/director/doveadm-connection.c 2017-10-04 15:39:08 +0300 Timo Sirainen (34642ccff) director: Fix tracking user move count when user is freed early users_moving_count wasn't updated if the user was freed before killing it finished. This caused "doveadm director flush" to hang while waiting for the move count to drop to 0, which it never did. Also following flushes were doing less work in parallel, or possibly even nothing since director thought there were too many users already being moved. M src/director/director.c 2017-10-04 10:46:47 +0300 Timo Sirainen (2e07e3182) quota: quota_get_resource() - return enum to make the result more exact This is mainly to differentiate between "resource name unknown" and "unlimited quota". This also fixes quota_clone plugin to update quota even when quota is unlimited. It was supposed to have been skipped only when the resource names weren't known. The private quota.get_resource() API is unchanged. The backends were already returning 0 only when the resource name was unknown. M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2017-10-04 10:44:47 +0300 Timo Sirainen (bffaca7da) imap-quota: Return NO reply if GETQUOTA fails only partially If the first resource lookup succeeded and the second one failed, the GETQUOTA command replied with OK instead of NO. M src/plugins/imap-quota/imap-quota-plugin.c 2017-09-29 09:42:48 +0300 Aki Tuomi (1d12457b6) doveadm-mail: Handle parse_arg return value Invalid parameters did not cause error. Broken in fa6b2cbb3 M src/doveadm/doveadm-mail.c 2017-10-03 14:51:16 +0300 Timo Sirainen (719abeb20) lib-master: master_service_init_log() - Switch log handlers only on the first call The secondary calls were only done by mail_storage_service_*() calls. They want to initialize the logging once, but afterwards they only care about changing the log prefix. Switch to this behavior now explicitly. This fixes behavior if logging functions are changed between mail_storage_service_*() calls, so they don't get reset. M src/lib-master/master-service-private.h M src/lib-master/master-service.c M src/lib-master/master-service.h 2017-09-18 15:52:12 +0300 Aki Tuomi (32340fe8f) lib-dcrypt: Use cpu32_to_be instead of htonl prefer our own conversion functions over htonl which is intended for networking related numbers. M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/ostream-encrypt.c 2017-09-19 15:54:35 +0300 Josef 'Jeff' Sipek (a943ed0f9) global: use i_close_fd{,_path}() instead of open-coding them M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c M src/auth/db-checkpassword.c M src/auth/db-passwd-file.c M src/doveadm/server-connection.c M src/lib-auth/auth-master.c M src/lib-dict/dict-cdb.c M src/lib-dict/dict-file.c M src/lib-dns/dns-lookup.c M src/lib-imap-client/imapc-connection.c M src/lib-index/mailbox-log.c M src/lib-master/master-login.c M src/lib-master/master-service.c M src/lib-stats/stats-connection.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib/ioloop-notify-inotify.c M src/lmtp/client.c M src/login-common/login-proxy-state.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/ostream-ext-filter.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/replication/replication-plugin.c M src/util/tcpwrap.c 2017-09-22 10:33:51 +0300 Josef 'Jeff' Sipek (c25d75b24) lib: introduce i_close_fd_path() It is like i_close_fd() but takes an argument with the name of the file that's being closed. The name is only used when printing the error message due to a failed close() syscall. M src/lib/lib.c M src/lib/macros.h 2017-09-20 11:27:05 +0300 Josef 'Jeff' Sipek (e4ac5643e) lib: remove close_keep_errno() M src/lib/lib.c M src/lib/lib.h 2017-09-19 16:23:30 +0300 Josef 'Jeff' Sipek (ad81591e3) lib: improve i_close_fd() error message In addition to printing the file and line number, we can print the actual arg passed in as well as the function calling i_close_fd(). M src/lib/lib.c M src/lib/macros.h 2017-09-19 16:17:45 +0300 Josef 'Jeff' Sipek (b93dba1fd) lib: print correct error string on i_close_fd() failure close_keep_errno() preserved the original errno, therefore the %m in i_close_fd()'s error message printed an unrelated error string. M src/lib/lib.c M src/lib/macros.h 2017-09-25 10:08:16 +0300 Aki Tuomi (6c272362f) dovecot.service: Update systemd file There is no point daemonizing dovecot in systemd, also added comment about apparmor and NoNewPrivileges option. M dovecot.service.in 2017-09-27 14:07:46 +0300 Aki Tuomi (01b9ed516) lib-test: Suppress expected error messages Unless pattern is also provided M src/lib-test/test-common.c 2017-09-29 12:37:58 +0300 Martti Rannanjärvi (9a19ae4b3) lib-storage: Remove obsolete mailbox_save_set_dest_mail() M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2017-09-29 17:22:50 +0200 Stephan Bosch (58f32fe91) configure.ac: Wrapped long LIBDOVECOT_LA_LIBS definition line to make modifications easier. M configure.ac 2017-10-02 13:25:42 +0300 Sergey Kitov (605c40c77) auth: global rounds parameter replaced with argument to password_generate() username and rounds parameter moved to a single password_generate_params structure. M src/auth/auth-request.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme-pbkdf2.c M src/auth/password-scheme-scram.c M src/auth/password-scheme.c M src/auth/password-scheme.h M src/doveadm/doveadm-pw.c 2017-09-28 20:18:19 +0300 Martti Rannanjärvi (396e6d4f5) doveadm: Use doveadm command name as reason in doveadm_mail_iter_init() M src/doveadm/doveadm-mail-iter.c 2017-09-22 13:30:43 +0300 Aki Tuomi (69a718913) dsync: Add hashed_headers setting This makes it possible to configure them M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2017-09-22 14:08:45 +0300 Aki Tuomi (c79c8c1d0) dsync: Fix typo, it's ibc not icb M src/doveadm/doveadm-dsync.c 2017-09-25 10:28:03 +0300 Aki Tuomi (dcdf46b6e) dsync: Add missing space to handshake optional keys M src/doveadm/dsync/dsync-ibc-stream.c 2017-09-26 16:23:32 +0200 Timo Sirainen (328ac493f) dsync: Improve reason when logging "modseq .. no longer in transaction log" Show the current highest, as well as the last common UID and the current next UID. These can help to try to figure out problems. M src/doveadm/dsync/dsync-brain-mailbox.c 2017-09-20 11:34:49 +0300 Sergey Kitov (1d9053f57) global: remove unnecessary ENOENT checks from unlink_directory() calls M src/lib-fs/test-fs-posix.c M src/lib-smtp/test-smtp-submit.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-index-backend.c M src/plugins/fts-lucene/lucene-wrapper.cc 2017-09-20 10:46:16 +0300 Sergey Kitov (39715db8b) lib: unlink_directory() return value is changed to 1 in case of no error. M src/lib/unlink-directory.c M src/lib/unlink-directory.h 2017-09-20 10:45:26 +0300 Sergey Kitov (69458644d) lib: unlink_directory_r() is refactored. unlinking doesn't stop at unlink() errors, first error is written to error_r, consequent errors are logged via i_error errno set to first happened error. unlink_directory_r() is expecting *error_r to be set to NULL. errno is set to 0 before each call to readdir(). M src/lib/unlink-directory.c 2017-09-22 13:48:46 +0300 Timo Sirainen (9eec3f335) mail-crypt: Fix linking order M src/plugins/mail-crypt/Makefile.am 2017-09-22 14:10:09 +0300 Timo Sirainen (e2e9ea6da) lib: Define i_unreached() to __builtin_unreachable() with STATIC_CHECKER This helps clang's alpha.deadcode.UnreachableCode checker. M src/lib/macros.h 2017-09-22 15:07:25 +0300 Martti Rannanjärvi (fb28ad71e) replication-plugin: Debug-log mailbox transaction reason M src/plugins/replication/replication-plugin.c 2017-09-20 17:15:32 +0300 Martti Rannanjärvi (c6ce2e251) lib-storage: Add reason to mailbox.transaction_begin() M src/lib-lda/mail-deliver.c M src/lib-storage/fail-mailbox.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-transaction.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/plugins/expire/expire-plugin.c M src/plugins/fts/fts-storage.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/notify/notify-storage.c M src/plugins/quota/quota-storage.c M src/plugins/stats/stats-plugin.c M src/plugins/virtual/virtual-transaction.c M src/plugins/virtual/virtual-transaction.h 2017-09-20 14:42:00 +0300 Martti Rannanjärvi (0dab9cb35) lib-storage: Add reason to mailbox_transaction_begin() Remove mailbox_transaction_set_reason(). M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-save.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/imap/cmd-append.c M src/imap/cmd-copy.c M src/imap/cmd-store.c M src/imap/cmd-thread.c M src/imap/imap-commands-util.c M src/imap/imap-expunge.c M src/imap/imap-fetch.c M src/imap/imap-search.c M src/imap/imap-state.c M src/imap/imap-sync.c M src/indexer/master-connection.c M src/lda/main.c M src/lib-imap-storage/imap-metadata.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-lda/mail-deliver.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-thread.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/mail-autoexpunge.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lmtp/commands.c M src/plugins/acl/doveadm-acl.c M src/plugins/expire/expire-plugin.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/mail-crypt/doveadm-mail-crypt.c M src/plugins/mail-crypt/mail-crypt-acl-plugin.c M src/plugins/mail-crypt/mail-crypt-key.c M src/plugins/mail-crypt/test-mail-key.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/quota/quota-storage.c M src/plugins/snarf/snarf-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c 2017-09-22 13:34:47 +0300 Timo Sirainen (03b8e1b15) configure: Fix link order: libsmtp depends on libprogram-client M configure.ac 2017-09-21 21:49:09 +0300 Martti Rannanjärvi (6c17d1ade) lib-storage: Don't crash when opening inbox fails in mailbox-list-index-notify M src/lib-storage/list/mailbox-list-index-notify.c 2017-09-21 15:53:40 +0300 Timo Sirainen (e3a3366ee) lib-sql: Fix compiler warning with OSX M src/lib-sql/sql-api.h 2017-09-21 17:53:04 +0300 Timo Sirainen (59d98f43a) master: Don't throttle services that are already being destroyed If process couldn't be created, because the service_list is already being destroyed (e.g. due to reload), also don't enable unnecessary throttling for the service. Hopefully fixes these random errors that are logged alone: master: Error: service(...): command startup failed, throttling for 2 secs M src/master/service-monitor.c 2017-09-19 13:52:30 +0300 Timo Sirainen (9372e48b7) lib: If log writing to log process is blocking, show it in process title This change also makes the log pipe non-blocking. M src/lib/failures.c 2017-09-19 13:49:03 +0300 Timo Sirainen (5a35caefc) lib: Add process_title_get() M src/lib/process-title.c M src/lib/process-title.h 2017-09-20 19:09:58 +0300 Timo Sirainen (3dcf98a55) Add <%{pid}> to default mail_log_prefix It's especially useful nowadays when the same session ID can be reused by multiple processes with IMAP hibernation enabled. M doc/example-config/conf.d/10-logging.conf M src/lib-storage/mail-storage-settings.c 2017-09-20 15:56:10 +0300 Timo Sirainen (b0d00847d) doveadm: "Extraneous arguments found": Show the args in the error M src/doveadm/doveadm-cmd.c 2017-09-21 00:38:33 +0200 Stephan Bosch (4d1cc687f) lib-http: client: Send empty payload (Content-Length: 0) for requests that normally expect a payload. This includes the standard POST and PUT methods. Others need to use the new http_client_request_set_payload_empty() function to force sending an empty payload. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2017-09-20 15:03:55 +0300 Timo Sirainen (7e37e7ac1) notify-status plugin: Use priv/status/ for keys priv//status can't be used with dict-sql when has '/'. M src/plugins/notify-status/notify-status-plugin.c 2017-09-19 13:33:06 +0300 Josef 'Jeff' Sipek (6307d7609) global: start relying on buffer_free(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - buffer_free(&E); - } + buffer_free(&E); M src/lib-compression/istream-lz4.c M src/lib-dcrypt/istream-decrypt.c M src/lib-fts/fts-tokenizer.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-transaction-log-file.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/istream-qp-encoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/test-istream-attachment.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-mail.c M src/lib-test/test-ostream.c M src/lib/iostream-rawlog.c M src/lib/iostream-temp.c M src/lib/istream-seekable.c M src/lmtp/client.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-parser.c 2017-09-19 13:26:57 +0300 Josef 'Jeff' Sipek (1a6ff0bee) lib: buffer_free(NULL) should be a no-op M src/lib/buffer.c 2017-09-19 13:25:23 +0300 Josef 'Jeff' Sipek (c69a17720) global: start relying on pool_unref(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - pool_unref(&E); - } + pool_unref(&E); M src/auth/db-passwd-file.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/lib-dict/dict-sql.c M src/lib-fts/fts-language.c M src/lib-http/http-message-parser.c M src/lib-index/mail-index-map.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-sqlpool.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/index-search-mime.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/mail-storage.c M src/lib/env-util.c M src/login-common/client-common.c M src/login-common/login-proxy.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/pop3/pop3-client.c 2017-09-19 13:21:07 +0300 Josef 'Jeff' Sipek (77eae37a9) lib: pool_unref(NULL) shoud be a no-op M src/lib/mempool.h 2017-09-19 13:19:36 +0300 Josef 'Jeff' Sipek (204ee6ed4) global: start relying on [io]_stream_unref(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - i_stream_unref(&E); - } + i_stream_unref(&E); @@ expression E; @@ - if (E != NULL) { - o_stream_unref(&E); - } + o_stream_unref(&E); M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c M src/doveadm/doveadm-mail.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-mailbox-export.c M src/imap/cmd-append.c M src/imap/cmd-getmetadata.c M src/imap/cmd-urlfetch.c M src/imap/imap-fetch.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-sis.c M src/lib-fs/test-fs-metawrap.c M src/lib-http/http-client-request.c M src/lib-http/http-message-parser.c M src/lib-http/http-server-response.c M src/lib-http/test-http-payload.c M src/lib-imap-client/test-imapc-client.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-index/mail-index-strmap.c M src/lib-mail/istream-attachment-connector.c M src/lib-program-client/program-client.c M src/lib-program-client/test-program-client-net.c M src/lib-program-client/test-program-client-unix.c M src/lib-smtp/lmtp-client.c M src/lib-smtp/test-smtp-submit.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib/ioloop.c M src/lib/iostream-rawlog.c M src/lib/istream-chain.c M src/lib/istream-seekable.c M src/lib/istream.c M src/lib/ostream.c M src/lmtp/client.c M src/lmtp/lmtp-proxy.c M src/login-common/client-common.c M src/plugins/fs-compress/fs-compress.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-parser-tika.c M src/plugins/mail-crypt/fs-crypt-common.c M src/plugins/mail-crypt/mail-crypt-plugin.c M src/plugins/zlib/zlib-plugin.c 2017-09-19 13:09:07 +0300 Josef 'Jeff' Sipek (b3fc52933) lib: [io]_stream_unref(NULL) should be a no-op M src/lib/istream.c M src/lib/ostream.c 2017-06-06 12:53:41 +0300 Josef 'Jeff' Sipek (be5773cb4) global: start relying on [io]_stream_destroy(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - i_stream_destroy(&E); - } + i_stream_destroy(&E); @@ expression E; @@ - if (E != NULL) { - o_stream_destroy(&E); - } + o_stream_destroy(&E); M src/anvil/anvil-connection.c M src/auth/mech-winbind.c M src/auth/userdb-passwd-file.c M src/director/login-connection.c M src/doveadm/client-connection.c M src/doveadm/server-connection.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-worker.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-test.c M src/lib-fs/istream-fs-file.c M src/lib-mail/istream-attachment-extractor.c M src/lib-master/master-login-auth.c M src/lib-program-client/program-client.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/list/subscription-file.c M src/login-common/login-proxy.c M src/plugins/fs-compress/fs-compress.c M src/plugins/mail-crypt/fs-crypt-common.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/ostream-ext-filter.c M src/replication/aggregator/notify-connection.c 2017-06-06 12:49:00 +0300 Josef 'Jeff' Sipek (d6684856f) lib: [io]_stream_destroy(NULL) should be a no-op M src/lib/istream.c M src/lib/ostream.c 2017-06-06 12:33:23 +0300 Josef 'Jeff' Sipek (0d1b8b6be) global: start relying on timeout_remove(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - timeout_remove(&E); - } + timeout_remove(&E); M src/anvil/penalty.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/db-ldap.c M src/dict/dict-connection.c M src/dict/main.c M src/director/director-connection.c M src/director/director-test.c M src/director/director.c M src/director/main.c M src/doveadm/server-connection.c M src/imap-hibernate/imap-client.c M src/imap-login/imap-login-client.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/cmd-idle.c M src/imap/imap-client.c M src/imap/imap-notify.c M src/imap/imap-search.c M src/indexer/indexer.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-dict/dict-client.c M src/lib-dns/dns-lookup.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-queue.c M src/lib-http/http-client.c M src/lib-http/http-server-connection.c M src/lib-http/test-http-client-errors.c M src/lib-http/test-http-server-errors.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-ldap/ldap-connection.c M src/lib-master/anvil-client.c M src/lib-master/ipc-server.c M src/lib-master/master-auth.c M src/lib-master/master-login-auth.c M src/lib-master/master-service-haproxy.c M src/lib-master/master-service.c M src/lib-oauth2/oauth2.c M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.c M src/lib-smtp/lmtp-client.c M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/mailbox-watch.c M src/lib-test/test-ostream.c M src/lib/connection.c M src/lib/istream-timeout.c M src/lib/log-throttle.c M src/lib/test-iostream-pump.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/main.c M src/master/main.c M src/master/service-monitor.c M src/master/service-process.c M src/master/service.c M src/plugins/last-login/last-login-plugin.c M src/plugins/mail-crypt/mail-crypt-plugin.c M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/stats/stats-plugin.c M src/plugins/zlib/zlib-plugin.c M src/pop3/pop3-client.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/dsync-client.c M src/replication/replicator/replicator-brain.c M src/stats/client.c M src/stats/mail-session.c M src/stats/stats-carbon.c M src/util/rawlog.c 2017-06-06 12:30:17 +0300 Josef 'Jeff' Sipek (c4d38ef68) lib: timeout_remove(NULL) should be a no-op M src/lib/ioloop.c 2017-06-06 12:28:07 +0300 Josef 'Jeff' Sipek (5f1d68913) global: start relying on io_remove{,_closed}(NULL) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != NULL) { - io_remove(&E); - } + io_remove(&E); @@ expression E; @@ - if (E != NULL) { - io_remove_closed(&E); - } + io_remove_closed(&E); M src/anvil/main.c M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/db-checkpassword.c M src/auth/db-ldap.c M src/dict/dict-connection.c M src/director/director-connection.c M src/director/director-test.c M src/doveadm/client-connection.c M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/server-connection.c M src/imap-hibernate/imap-client.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/cmd-append.c M src/imap/cmd-idle.c M src/imap/imap-client.c M src/ipc/client.c M src/lib-auth/auth-server-connection.c M src/lib-dns/dns-lookup.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c M src/lib-http/http-server-connection.c M src/lib-http/http-server-response.c M src/lib-http/test-http-payload.c M src/lib-http/test-http-server-errors.c M src/lib-imap-client/imapc-connection.c M src/lib-master/master-auth.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-haproxy.c M src/lib-master/master-service.c M src/lib-program-client/program-client.c M src/lib-program-client/test-program-client-net.c M src/lib-program-client/test-program-client-unix.c M src/lib-smtp/lmtp-client.c M src/lib-sql/driver-cassandra.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/mailbox-watch.c M src/lib/connection.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-kqueue.c M src/lib/iostream-pump.c M src/lib/ostream-file.c M src/lmtp/client.c M src/log/log-connection.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy.c M src/login-common/main.c M src/login-common/ssl-proxy-openssl.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/plugins/fts/fts-parser-tika.c M src/pop3/pop3-client.c M src/stats/client.c M src/stats/stats-carbon.c M src/util/rawlog.c 2017-06-06 12:19:22 +0300 Josef 'Jeff' Sipek (df1c1ff47) lib: io_remove(NULL) and io_remove_closed(NULL) should be no-ops M src/lib/ioloop.c 2017-06-06 10:20:49 +0300 Josef 'Jeff' Sipek (7b032348d) global: start relying on i_close_fd(-1) being a no-op Cleanup performed with the following semantic patch: @@ expression E; @@ - if (E != -1) - i_close_fd(&E); + i_close_fd(&E); M src/doveadm/doveadm-dsync.c M src/imap-hibernate/imap-client.c M src/imap-hibernate/imap-hibernate-client.c M src/imap/imap-client-hibernate.c M src/lib-dict/dict-file.c M src/lib-http/test-http-client-errors.c M src/lib-http/test-http-payload.c M src/lib-imap-client/test-imapc-client.c M src/lib-mail/istream-attachment-extractor.c M src/lib/iostream-temp.c M src/lib/istream-unix.c M src/lib/net.c M src/lib/ostream-unix.c M src/master/service-listen.c M src/master/service-monitor.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts/fts-expunge-log.c M src/plugins/quota/quota-maildir.c M src/plugins/stats/mail-stats-fill.c M src/stats/stats-carbon.c 2017-06-06 10:13:15 +0300 Josef 'Jeff' Sipek (95ec0fd47) lib: i_close_fd(-1) should be a no-op M src/lib/macros.h 2017-09-20 01:47:38 +0300 Timo Sirainen (ce8d63810) director: Fix flush to kick the user also when all backends are down The user's host can't change, because there are no other hosts. So add a new parameter to force the kick anyway. M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c 2017-09-19 14:48:54 +0300 Timo Sirainen (186c97450) cassandra: Timestamp should be in microseconds, not milliseconds M src/lib-sql/driver-cassandra.c 2017-09-18 14:15:44 +0300 Josef 'Jeff' Sipek (191153d1a) global: use i_rand_limit() and i_rand_minmax() when possible M src/auth/auth-request.c M src/director/director-test.c M src/director/test-user-directory.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/lib-compression/test-compression.c M src/lib-dict/test-dict-client.c M src/lib-fs/fs-randomfail.c M src/lib-fts/test-fts-tokenizer.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-file.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-mail-html2text.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-hash.c M src/lib-master/master-login-auth.c M src/lib-master/test-master-service-settings-cache.c M src/lib-test/test-istream.c M src/lib/net.c M src/lib/test-base32.c M src/lib/test-base64.c M src/lib/test-buffer.c M src/lib/test-istream-concat.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-ostream-buffer.c M src/lib/test-ostream-file.c M src/lib/test-priorityq.c M src/lib/test-strnum.c M src/lib/test-unichar.c M src/lib/timing.c M src/login-common/login-proxy.c M src/login-common/main.c M src/master/main.c M src/master/service-monitor.c 2017-09-18 13:55:08 +0300 Josef 'Jeff' Sipek (747bf5bf7) lib: introduce i_rand_limit() and i_rand_minmax() M src/lib/lib.h M src/lib/rand.c 2017-09-18 16:48:41 +0300 Josef 'Jeff' Sipek (fda9c7fe9) lib-index: fix off-by-one in index flag update test When selecting the second seq, the max value we should generate is hdr.messages_count - not one less than that. M src/lib-index/test-mail-index-transaction-update.c 2017-09-19 11:18:30 +0300 Timo Sirainen (25b3208d3) lib-storage: Fail if two namespaces try to wrongly share the same LISTINDEX If they have different mailboxes-path, they can't be sharing the same mailbox list index. The previous behavior caused Dovecot to silently overwrite the list index whenever each of the namespaces were accessed, resulting in bad performance. M src/lib-storage/mail-namespace.c 2017-09-18 23:04:55 +0300 Timo Sirainen (5c449ac9f) notify-status: Remove first_unseen_seq field The sequence number keeps changing, so it's very unlikely to be useful. It's also not always as efficiently available as the other fields, so better to avoid having it. M src/plugins/notify-status/notify-status-plugin.c 2017-09-07 14:26:51 +0300 Josef 'Jeff' Sipek (120e61ccc) lib-storage: convert struct pop3_mail casts to container_of M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-storage.h 2017-09-07 14:11:06 +0300 Josef 'Jeff' Sipek (7dd326f77) lib-storage: convert struct imapc_mail casts to container_of M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h M src/lib-storage/index/imapc/imapc-save.c 2017-09-07 13:04:01 +0300 Josef 'Jeff' Sipek (874900128) lib-storage: convert index to use container_of M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/raw/raw-mail.c M src/plugins/pop3-migration/pop3-migration-plugin.c 2017-09-07 14:29:08 +0300 Josef 'Jeff' Sipek (ac254f652) lib-storage: convert missed mbox casts to container_of M src/lib-storage/index/mbox/mbox-save.c 2017-09-07 14:28:27 +0300 Josef 'Jeff' Sipek (13b2d8784) lib-storage: convert missed raw storage casts to container_of M src/lib-storage/index/raw/raw-storage.c 2017-09-07 14:24:46 +0300 Josef 'Jeff' Sipek (b5a123eab) lib-storage: convert missed maildir casts to container_of M src/lib-storage/index/maildir/maildir-save.c 2017-09-07 14:21:03 +0300 Josef 'Jeff' Sipek (6a384c0f8) lib-storage: convert missed imapc casts to container_of M src/lib-storage/index/imapc/imapc-mail-fetch.c 2017-09-07 14:08:44 +0300 Josef 'Jeff' Sipek (9287cdd3d) lib-storage: convert missed cydir casts to container_of M src/lib-storage/index/cydir/cydir-save.c 2017-09-15 15:17:08 +0300 Sergey Kitov (aec3f901e) auth: Expand %{ldap_dn} to ldap_get_dn(). M src/auth/db-ldap.c 2017-09-14 12:50:29 +0300 Timo Sirainen (5a444fdfa) director: Avoid "ring sync timeout" errors when all backends are down doveadm commands were failing with it. Also pending request failures were logged as failing due to ring sync timeout, instead of because no hosts. M src/director/main.c 2017-09-14 13:02:40 +0300 Timo Sirainen (68ba222d8) director: Delay calling state_change_callback() after user kick is finished Otherwise it can get into recursive loop and cause problems. M src/director/director.c 2017-09-14 12:42:13 +0300 Timo Sirainen (c300d63f2) doveadm director: Improve logging unexpected disconnections from director socket Previously it just logged "failed", which wasn't very understandable. M src/doveadm/doveadm-director.c 2017-08-22 16:32:32 +0300 Timo Sirainen (f5d82a4b8) director: Fix crash when flush is run and all backends are down. Instead of moving the users elsewhere, just kill them and flush the backend. M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c 2017-09-15 11:49:16 +0300 Timo Sirainen (9bea32587) lib: uri_parser_init*() - initialize allow_pct_nul Unless the caller explicitly cleared the parser's memory, allow_pct_nul was somewhat random. All the code in Dovecot core did this, but some plugins didn't. M src/lib/uri-util.c 2017-09-14 18:13:05 +0300 Timo Sirainen (8913a7f43) director: Fix ring sync wait after DIRECTOR-REMOVE It was sending OK twice, and the first OK was too early. M src/director/doveadm-connection.c 2017-09-14 17:59:05 +0300 Timo Sirainen (69ea755e4) director: Ignore CONNECT requests to hosts that have been removed already M src/director/director-connection.c 2017-09-14 17:57:29 +0300 Timo Sirainen (d8a93844f) director: After CONNECT was received, make sure we disconnect The remote side won't be reading anything after the CONNECT, so we have to disconnect anyway. If we decide that the CONNECT request is wrong, reconnect after a short delay and hope that the remote agrees with us the next time. M src/director/director-connection.c 2017-09-14 17:48:50 +0300 Timo Sirainen (83b9d8afc) director: When director is removed, notify it before disconnecting This way the removed director will know that it's been removed, and it can also more quickly forward the removal to other directors. M src/director/director.c 2017-09-14 17:38:24 +0300 Timo Sirainen (e588e0b3f) director: Don't reset directors' last_network_failure while handshaking The reset is done mainly to make it faster for a director that has been down to connect back to the ring, without other directors still thinking that it's down. But DIRECTOR that is sent during handshake says nothing about whether the director is up at the moment or not. M src/director/director-connection.c 2017-09-14 17:35:02 +0300 Timo Sirainen (e2fdcdb4e) director: Log info line for every incoming/outgoing connection This can help with debugging problems. M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/director/main.c 2017-09-14 17:33:19 +0300 Timo Sirainen (e9d302dce) director: Cleanup - move code to a new director_log_connect() Also adds a missing ')' to the log line. M src/director/director.c 2017-09-14 17:29:48 +0300 Timo Sirainen (027f58ea6) director: Log info line whenever a director is added/removed from ring This can help with debugging problems. M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c 2017-09-14 18:13:33 +0300 Timo Sirainen (465fb89a8) director: Improve debugging: Log ring desync when there is no right connection M src/director/director.c 2017-09-14 17:26:39 +0300 Timo Sirainen (3a7a0c35c) director: When logging "ring SYNC lost", include sync seq number in message This can help with debugging. M src/director/director.c 2017-09-14 13:34:22 +0300 Aki Tuomi (8a2262007) lib: chdir to / after chroot Makes static analyzers more happy M src/lib/restrict-access.c 2017-09-14 11:57:27 +0300 Timo Sirainen (30089b563) doveadm director ring remove: Wait ring sync before and after removal This helps mainly with automated tests. M src/director/director.c M src/director/doveadm-connection.c 2017-09-14 13:19:26 +0300 Timo Sirainen (3131b0cc2) director: Return temporary auth failures using the new "code" field The "temp" is no longer used. M src/director/login-connection.c 2017-09-13 23:35:04 +0300 Timo Sirainen (3226cfcb9) lib-mail: message_header_encode() cleanup - simplify pointer arithmetic This should make static analyzers happier. M src/lib-mail/message-header-encode.c 2017-09-13 23:26:49 +0300 Timo Sirainen (d4e097fbc) global: Add asserts to help static analyzers M src/lib-mail/message-size.c M src/lib/str-sanitize.c 2017-09-13 23:24:01 +0300 Timo Sirainen (9c93b5764) lib-index: Remove size from struct mail_keywords.idx[] This was confusing static analyzers, which thought that using [1] meant that its size really was 1. M src/lib-index/mail-index.c M src/lib-index/mail-index.h 2017-09-13 18:06:43 +0300 Timo Sirainen (2462c09be) man: Remove extra ^L from "doveadm fetch" example It's no longer sent. M doc/man/doveadm-fetch.1.in 2017-09-13 16:13:34 +0300 Timo Sirainen (e0a332902) lib-storage: Fix updating mailbox GUID in mailbox list index when it's empty Normally the GUID shouldn't be empty at this point. Updating mailbox GUID is also very rare. So this was unlikely to cause any problems in practise. M src/lib-storage/list/mailbox-list-index-status.c 2017-09-13 16:09:05 +0300 Timo Sirainen (09e6ec59d) master: Don't send uninitialized byte to anvil along the log fd. The byte was ignored by anvil, so it didn't cause any real problems. M src/master/service-anvil.c 2017-09-13 16:06:48 +0300 Timo Sirainen (0cb80fbd7) cassandra: NULL values' sizes weren't initialized This was only a problem if sql_result_get_field_value_binary() was attempted to be used for a NULL value. M src/lib-sql/driver-cassandra.c 2017-09-13 18:32:23 +0300 Timo Sirainen (5ea06115c) lib-index: If mail_index_view is leaked, include in Panic the file:line where it was opened M src/lib-index/mail-index-view-private.h M src/lib-index/mail-index-view.c M src/lib-index/mail-index.c M src/lib-index/mail-index.h 2017-09-13 15:16:59 +0300 Timo Sirainen (214aff73c) cassandra: Fix paged queries to work again When continuing the result, consistency was reset to 0 (=ANY), which caused the queries to fail. There's no need to initialize the statement again when continuing it. Also set result->consistency to be correct mainly for debugging purposes. M src/lib-sql/driver-cassandra.c 2017-09-11 12:27:17 +0300 Timo Sirainen (2912eac52) lib-storage: Fix mailbox list notification assert-crash when mailbox is deleted Reproduced with if IMAP NOTIFY is used for non-selected mailboxes without MailboxName being specified. Another session then does changes to a mailbox and immediately deletes it, which causes the crash. Fixes: Panic: file mailbox-list-index-notify.c: line 751: unreached M src/lib-storage/list/mailbox-list-index-notify.c 2017-09-13 00:28:38 +0200 Stephan Bosch (9c8142357) lib-smtp: lmtp-client: Fixed handling of unexpected reply while sending RCPT TO commands. It caused a segfault. M src/lib-smtp/lmtp-client.c 2017-09-08 16:00:53 +0300 Timo Sirainen (44a31b740) doveadm director kick: Fix -f parameter to work It already worked as --passdb-field, but now it matches the usage string. M src/doveadm/doveadm-director.c 2017-09-11 12:59:27 +0300 Timo Sirainen (e704b4ab2) lib-index: mail_index_use_existing_permissions() - Ignore with INDEX=MEMORY M src/lib-index/mail-index.c 2017-09-11 12:58:28 +0300 Timo Sirainen (96595bf98) lib-index: mail_index_use_existing_permissions() - Log error if stat() unexpectedly fails M src/lib-index/mail-index.c 2017-09-11 13:54:12 +0300 Timo Sirainen (182724707) lib-storage: Avoid unnecessary stat()s in mailbox list index notifications If mailbox list gets a notification there's no need to stat() the INBOX, and vice versa. Also if the notification was already seen and a callback timeout set, there's no need to keep stat()ing. M src/lib-storage/list/mailbox-list-index-notify.c 2017-09-11 13:48:17 +0300 Timo Sirainen (5ddc694e1) lib-storage: Make sure mailbox list notification flush sees latest changes. This is mainly useful with imaptest test scripts to make sure they're seeing the changes done by the other session, without assuming that inotify will always notify about the change before NOOP is run (it doesn't). Do this only if mailbox_idle_check_interval>0, so it's not run when periodic stat()s are wanted to be avoided. M src/lib-storage/list/mailbox-list-index-notify.c 2017-09-12 14:54:57 +0300 Timo Sirainen (3581ece16) lib: file_lock_set_unlink_on_free() - Avoid unlink() if another process is waiting on the lock M src/lib/file-create-locked.h M src/lib/file-lock.c M src/lib/file-lock.h 2017-09-12 13:23:51 +0300 Timo Sirainen (4d8f53856) cassandra: Disable prepared statements with protocol v3 and older M src/lib-sql/driver-cassandra.c 2017-09-11 12:10:49 +0300 Timo Sirainen (807f257b0) lib-smtp: Link with libcharset.la to avoid errors M src/lib-smtp/Makefile.am 2017-09-09 12:58:12 +0200 Stephan Bosch (b17e88825) lib-http: client: queue: Improved construction of timeout log message. Earlier change used a literal prefix size, rather than inferring the size from the actual prefix string. M src/lib-http/http-client-queue.c 2017-09-09 12:27:16 +0200 Stephan Bosch (255daf50d) lib-smtp: test-smtp-submit: Fixed memory leak in one test. M src/lib-smtp/test-smtp-submit.c 2017-09-09 12:22:47 +0200 Stephan Bosch (db2fb7b8b) lib-smtp: test-smtp-submit: Improved checking of delivered message. This addresses a couple of scan-build "dead assignment" warnings. M src/lib-smtp/test-smtp-submit.c 2017-05-05 17:06:32 +0200 Stephan Bosch (faca780e2) lib-smtp: smtp-submit: Added support for asynchronous message submission. M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-smtp/smtp-submit.c M src/lib-smtp/smtp-submit.h M src/lib-smtp/test-smtp-submit.c 2017-05-05 13:26:46 +0200 Stephan Bosch (792813592) lib-lda: Moved smtp-submit to lib-smtp. M src/Makefile.am M src/lib-lda/Makefile.am M src/lib-smtp/Makefile.am R100 src/lib-lda/smtp-submit.c src/lib-smtp/smtp-submit.c R100 src/lib-lda/smtp-submit.h src/lib-smtp/smtp-submit.h R100 src/lib-lda/test-bin/sendmail-exit-1.sh src/lib-smtp/test-bin/sendmail-exit-1.sh R100 src/lib-lda/test-bin/sendmail-success.sh src/lib-smtp/test-bin/sendmail-success.sh R099 src/lib-lda/test-smtp-submit.c src/lib-smtp/test-smtp-submit.c 2017-05-05 13:21:16 +0200 Stephan Bosch (7fbbd3bf5) lib-lda: Made smtp-submit standalone. Removed dependencies on LDA. M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-lda/smtp-submit.c M src/lib-lda/smtp-submit.h M src/lib-lda/test-smtp-submit.c 2017-05-05 13:06:39 +0200 Stephan Bosch (98437599b) lib-lda: Renamed smtp-client to smtp-submit (2/2). Renamed smtp_client identifiers to smtp_submit. Also, created temporary backwards-compatibility in smtp-client.h. M src/lib-lda/Makefile.am M src/lib-lda/mail-send.c A src/lib-lda/smtp-client.c M src/lib-lda/smtp-client.h M src/lib-lda/smtp-submit.c M src/lib-lda/smtp-submit.h M src/lib-lda/test-smtp-submit.c 2017-05-05 12:55:49 +0200 Stephan Bosch (3e5a16737) lib-lda: Renamed smtp-client to smtp-submit (1/2). Renamed the files. M src/lib-lda/Makefile.am M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.h R099 src/lib-lda/smtp-client.c src/lib-lda/smtp-submit.c A src/lib-lda/smtp-submit.h R099 src/lib-lda/test-smtp-client.c src/lib-lda/test-smtp-submit.c 2017-02-28 23:56:47 +0100 Stephan Bosch (be02ac47a) lib-lda: Created tests for SMTP message submission using the smtp-client API. M src/lib-lda/Makefile.am A src/lib-lda/test-bin/sendmail-exit-1.sh A src/lib-lda/test-bin/sendmail-success.sh A src/lib-lda/test-smtp-client.c 2017-09-08 12:20:21 +0300 Timo Sirainen (a594a5954) lib-storage: Preserve messages' vsize record when rebuilding index Since vsize is often used by quota, losing this can be very expensive. If the vsize is wrong, it gets fixed automatically when fetching the message body. M src/lib-storage/index/index-rebuild.c 2017-08-22 14:35:11 +0300 Timo Sirainen (709ee5a90) cassandra: Add support for prepared statements M src/lib-sql/driver-cassandra.c 2017-08-22 13:55:15 +0300 Timo Sirainen (a2c4998f6) cassandra: Cleanup - Create statement earlier Simplifies the following changes M src/lib-sql/driver-cassandra.c 2017-08-24 11:56:38 +0300 Timo Sirainen (92a7f5f9b) cassandra: sql_transaction_commit*() cleanup - handle multiple query failures earlier This makes the handling same for the sync and async method. It also simplifies code for the following commits. M src/lib-sql/driver-cassandra.c 2017-08-24 11:13:32 +0300 Timo Sirainen (8759c5d29) cassandra: sql_transaction_commit_s() - Set query_type correctly The queries were all sent with READ type instead of WRITE/DELETE. This meant they were using potentially wrong consistency values. Although synchronous commits aren't actually used anywhere, so this practically this doesn't fix anything right now. M src/lib-sql/driver-cassandra.c 2017-08-24 11:09:05 +0300 Timo Sirainen (92e21c2a1) cassandra: sql_transaction_commit_s() - Don't allow multi-query transactions They were already denied for asynchronous commits. Also the synchronous commits aren't actually used anywhere, so this shouldn't break anything. M src/lib-sql/driver-cassandra.c 2017-09-07 15:40:16 +0300 Timo Sirainen (6a3f466e0) dict-sql: Use prepared statements Create a hash table of query template -> prepared statement and fill it out as needed. This could have been done some alternative ways that wouldn't require building the string first, but this should still be fast enough and much easier to implement. M src/lib-dict/dict-sql-private.h M src/lib-dict/dict-sql.c 2017-08-26 23:27:21 +0300 Timo Sirainen (fc998bd6e) dict-sql: Flush pending atomic_inc on set, and pending set on atomic_inc M src/lib-dict/dict-sql.c 2017-08-26 23:17:45 +0300 Timo Sirainen (f2e6909dd) dict-sql: Cleanup - change query generator functions to return statement Instead of query+params. This is in preparation for the following changes. M src/lib-dict/dict-sql.c 2017-08-15 16:50:16 +0300 Timo Sirainen (5451d6b31) dict-sql: Cleanup - Remove unnecessary code The values are explicitly added to params. sql_dict_update_query() doesn't add them again. Since the "diff" parameter is already a long long type, this avoids unnecessary conversion to string and back. M src/lib-dict/dict-sql.c 2017-08-15 16:38:33 +0300 Timo Sirainen (e6bff6f5f) dict-sql: Use sql_statement_bind_*() M src/lib-dict/dict-sql.c 2017-08-15 15:37:01 +0300 Timo Sirainen (0e884c3e0) dict-sql: Add signed "int" type M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql-settings.h M src/lib-dict/dict-sql.c 2017-08-15 14:55:48 +0300 Timo Sirainen (4fa50be15) dict-sql: Use sql_statement_set_timestamp() instead of adding it to query M src/lib-dict/dict-sql-private.h M src/lib-dict/dict-sql.c 2017-08-15 14:46:10 +0300 Timo Sirainen (a789b3fb4) dict-sql: Initial change to use sql_statement API sql_statement_bind_*() will be followed by later changes. M src/lib-dict/dict-sql.c 2017-08-15 16:44:27 +0300 Timo Sirainen (a903e2bcf) dict-sql: Remove dict_sql_build_query.inc It's no longer useful with the current code. M src/lib-dict/dict-sql.c 2017-08-15 14:27:40 +0300 Timo Sirainen (1a672c1f2) dict-sql: Change "uint" type to mean 64bit instead of 32bit integer. This is likely what is usually wanted (especially in e.g. quotas). If someone actually wants it to be restricted to 32bit, we could add uint32 later on. M src/lib-dict/dict-sql.c 2017-08-22 11:37:17 +0300 Timo Sirainen (9f0fc74e3) lib-sql: Add support for prepared SQL statements. This initial implementation doesn't use prepared statements in drivers, but simply generates the query string internally. M src/lib-sql/sql-api-private.h M src/lib-sql/sql-api.c M src/lib-sql/sql-api.h 2017-08-22 11:31:51 +0300 Timo Sirainen (ef597c461) lib-sql: Explicitly specify used *_vfuncs methods for drivers. This allows adding more methods without modifying all the existing drivers. M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/driver-test.c 2017-09-08 11:02:29 +0300 Timo Sirainen (a07e0d83e) doveadm proxy: Avoid DNS lookup for "host" if passdb also returns "hostip" M src/doveadm/doveadm-mail-server.c 2017-09-08 11:02:07 +0300 Timo Sirainen (31434f7b8) lmtp proxy: Avoid DNS lookup for "host" if passdb also returns "hostip" M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2017-09-08 11:01:20 +0300 Timo Sirainen (dbe43c872) auth: Avoid DNS lookup for "host" if passdb returns also "hostip" M src/auth/auth-request.c 2017-09-07 12:18:55 +0300 Aki Tuomi (4b8bea203) lib: Only deprecate rand/rand_r on recent enough compilers M src/lib/compat.h 2017-09-05 20:42:31 +0300 Timo Sirainen (2bb003895) master: Write all the early warnings to log file after logging is initialized Any warnings (or errors) logged before settings were read and logging was initialized caused them to be only written to stderr. This caused them to be lost too easily. Now they are also buffered in memory and then flushed to log files once logging is initialized. M src/master/main.c 2017-09-07 12:44:46 +0300 Timo Sirainen (bcd91686e) lib: Free io_switch_callbacks_free only after other atexit-callbacks Fixes a crash at deinit where io_loop_remove_switch_callback() was called in lib_atexit() callback. M src/lib/ioloop.c 2017-09-04 15:46:39 +0300 Aki Tuomi (2a628a8c9) global: Replace random_fill_weak with random_fill They are now the same thing M src/doveadm/doveadm-sis.c M src/lib-compression/test-compression.c M src/lib-dcrypt/test-stream.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/list/mailbox-list-delete.c M src/lib/randgen.h M src/lib/safe-mkstemp.c M src/lib/test-ostream-buffer.c M src/lib/test-ostream-file.c 2017-08-23 14:12:20 +0300 Aki Tuomi (9e0f35dcc) global: Remove random_init/random_deinit calls lib already initializes it. M src/auth/main.c M src/dict/main.c M src/doveadm/doveadm-pw.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/main.c M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c M src/login-common/main.c M src/plugins/apparmor/apparmor-plugin.c M src/plugins/mail-crypt/fs-crypt-common.c M src/plugins/mail-crypt/mail-crypt-plugin.c M src/plugins/mail-crypt/test-mail-global-key.c M src/plugins/mail-crypt/test-mail-key.c M src/plugins/var-expand-crypt/test-var-expand-crypt.c 2017-08-23 13:42:09 +0300 Aki Tuomi (21f76ca1a) lib: Simplify timing_add_usecs i_rand is guaranteed to return 32 bit integer M src/lib/timing.c 2017-08-23 12:59:30 +0300 Aki Tuomi (b082469af) lib: Warn if rand is used M src/lib/compat.h 2017-08-23 12:59:42 +0300 Aki Tuomi (62461eb60) global: Replace rand with i_rand M src/auth/auth-request.c M src/director/director-test.c M src/director/test-user-directory.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/lib-compression/test-compression.c M src/lib-dict/test-dict-client.c M src/lib-fs/fs-randomfail.c M src/lib-fts/test-fts-tokenizer.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-file.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-mail-html2text.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-hash.c M src/lib-master/master-login-auth.c M src/lib-master/test-master-service-settings-cache.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-test/test-istream.c M src/lib/file-dotlock.c M src/lib/net.c M src/lib/test-array.c M src/lib/test-base32.c M src/lib/test-base64.c M src/lib/test-buffer.c M src/lib/test-data-stack.c M src/lib/test-hash.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-ostream-buffer.c M src/lib/test-ostream-file.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-strnum.c M src/lib/test-unichar.c M src/lib/timing.c M src/login-common/login-proxy.c M src/login-common/main.c M src/master/main.c M src/master/service-monitor.c 2017-08-23 12:49:03 +0300 Aki Tuomi (8045f6e30) lib: Use best available random number generator The best available method is used from short list of getrandom, arc4random or reading /dev/urandom M src/lib/randgen.c M src/lib/randgen.h 2017-08-23 12:38:07 +0300 Aki Tuomi (5405ee4d3) lib: Replace rand.c with i_rand function Replacement for rand M src/lib/Makefile.am M src/lib/lib.c M src/lib/lib.h M src/lib/rand.c D src/lib/rand.h 2017-09-04 15:22:13 +0300 Aki Tuomi (a147c9a20) lib: Replace rand_set_seed with srand Makes following commits easier, and also makes sure that rand() will get seeded when used by other libraries. M src/lib/lib.c M src/lib/rand.c M src/lib/rand.h M src/lib/randgen.c 2017-08-23 13:02:36 +0300 Aki Tuomi (130e6a5f6) lib-test: Remove rand state dump It's not possible after next commit M src/lib-test/test-common.c 2017-08-23 12:53:50 +0300 Aki Tuomi (da32b4dc8) configure: Check for getrandom M configure.ac A m4/random.m4 2017-03-02 23:13:48 +0100 Stephan Bosch (0043fea12) lib: lib-signals: Removed explicit notification of ioloop change through lib_signals_reset_ioloop() in favor of implicit method. Before, if the ioloop changed, the application had to explicitly notify lib-signals using lib_signals_reset_ioloop(). This is error-prone and requires doing this all over the Dovecot code base. Now, lib-signals registers an ioloop switch callback that deals with this implicitly. The application can detach lib-signals from the ioloop explicitly if delayed signal handling is not required/desired in the new ioloop. Specific delayed signal handlers can be exempt from this automated behavior using a flag, meaning that such signal handlers need to be moved between ioloops explicitly. M src/doveadm/client-connection-http.c M src/doveadm/client-connection.c M src/lib-auth/auth-master.c M src/lib-program-client/program-client-local.c M src/lib-program-client/test-program-client-local.c M src/lib/Makefile.am M src/lib/child-wait.c M src/lib/child-wait.h M src/lib/lib-signals.c M src/lib/lib-signals.h A src/lib/test-lib-signals.c M src/lib/test-lib.inc 2017-09-01 15:10:52 +0300 Josef 'Jeff' Sipek (b67974c4b) lib-storage: convert dbox-multi to use container_of M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-sync.c 2017-09-01 15:09:00 +0300 Josef 'Jeff' Sipek (df3963075) lib-storage: convert dbox-single to use container_of M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.h M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c 2017-09-01 15:06:54 +0300 Josef 'Jeff' Sipek (804fa3f03) lib-storage: convert dbox-common to use container_of M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-mail.h M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-save.h M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c 2017-08-28 11:52:52 +0300 Josef 'Jeff' Sipek (a97fdf205) lib-storage: convert cydir to use container_of M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-storage.h M src/lib-storage/index/cydir/cydir-sync.c 2017-08-28 11:52:06 +0300 Josef 'Jeff' Sipek (f7fe4f81c) lib-storage: convert shared to use container_of M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/index/shared/shared-storage.h 2017-08-28 11:51:34 +0300 Josef 'Jeff' Sipek (8af1a286f) lib-storage: convert raw to use container_of M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-storage.h M src/lib-storage/index/raw/raw-sync.c 2017-08-28 11:50:40 +0300 Josef 'Jeff' Sipek (7b0a52bf3) lib-storage: convert imapc to use container_of M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2017-08-28 11:26:20 +0300 Josef 'Jeff' Sipek (95d62f8d6) lib-storage: convert pop3c to use container_of M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-storage.h M src/lib-storage/index/pop3c/pop3c-sync.c 2017-08-28 11:24:21 +0300 Josef 'Jeff' Sipek (c150beda1) lib-storage: convert mbox to use container_of M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-storage.h M src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/index/mbox/mbox-sync.c 2017-08-28 11:15:45 +0300 Josef 'Jeff' Sipek (77f8c49be) lib-storage: convert maildir to use container_of M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c 2016-09-13 15:01:56 -0400 Josef 'Jeff' Sipek (1c238d4b7) lib: introduce container_of This is a simple but type safe implementation. M src/lib/macros.h 2017-09-01 14:57:20 +0300 Josef 'Jeff' Sipek (2b5cccf6b) lib-storage: rename IMAPC_CONTEXT to IMAPC_SEARCHCTX M src/lib-storage/index/imapc/imapc-search.c 2017-09-04 16:52:01 +0200 Manuel Mausz (d2845370f) auth: Rename overlooked "original_username" after c3e50b In c3e50b854dec3f9a51dbaecf2ee56197125a003f "original_username" field got renamed to "original-username". M src/auth/auth-request.c 2017-06-18 19:55:23 +0200 Stephan Bosch (57c65763f) doveadm-server: http: Fixed crash occurring when disconnecting a client at server deinit. M src/doveadm/client-connection-http.c M src/doveadm/client-connection-private.h M src/doveadm/client-connection.c M src/doveadm/client-connection.h 2017-07-19 16:53:17 +0300 Timo Sirainen (ec9429535) *-login: Cache director_username_hash between KICK-DIRECTOR-HASH commands This should make the kicking much faster, which is important when director is moving thousands of users. M src/login-common/client-common.h M src/login-common/login-proxy.c 2017-07-19 16:49:18 +0300 Timo Sirainen (c5ed1bc7a) lib-mail: Make sure mail_user_hash() won't return 0 as the hash. It doesn't seem to actually happen, but this makes sure of it. M src/lib-mail/mail-user-hash.c M src/lib-mail/mail-user-hash.h 2017-08-27 13:55:52 +0300 Aki Tuomi (dfdcbff54) doveadm-fs: Fix argument handling If argument contains - and needs to be passed to doveadm-fs then it needs -- to make sure getopt won't choke on it, and due to this, we need to use getopt in doveadm-fs too, to make sure -- gets removed. M src/doveadm/doveadm-fs.c 2017-08-27 12:50:35 +0300 Aki Tuomi (42db38215) doveadm-dict: Convert to new parameter handling Fixes problems with negative numbers as parameters M src/doveadm/doveadm-dict.c 2017-08-27 12:57:51 +0300 Aki Tuomi (98800cb9f) doveadm: Make sure positional arguments end up in right place Otherwise -- is placed into wrong place and breaks command line reparsing in legacy functions. M src/doveadm/doveadm-cmd.c 2017-02-07 13:06:31 +0100 Tom Sommer (dff659439) init: Execute /etc/default/dovecot on init, if it exists M doc/dovecot-initd.sh 2017-01-12 10:02:13 +0100 Tom Sommer (6e43098a4) init: Execute /etc/sysconfig/dovecot on init, if it exists Helps users set `ulimit`, `DAEMON` etc. without having to touch the init.d script. M doc/dovecot-initd.sh 2017-09-04 17:43:31 +0200 manuel (ef4ca21b9) auth: cache: don't log password mismatch twice If auth cache is enabled and the last auth was successful dovecot assumes the password has been changed and invalidates the cache which results in double logging of the same password mismatch. This also applies to expired negative cache entries. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/passdb-cache.c 2017-09-05 10:43:46 +0300 Aki Tuomi (280bc7d8b) dsync: Ignore missing remote mailbox when doing unidirectional sync If there are some folders on remote system that are being ignored by remote brain, do not error out. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox.h 2017-09-04 17:48:52 +0300 Timo Sirainen (838a76b0f) lib-storage: Fix INBOX notifications to set correct events This fixes IMAP NOTIFY so it doesn't send STATUS notifications to INBOX when it doesn't have to. M src/lib-storage/list/mailbox-list-index-notify.c 2017-09-04 17:37:05 +0300 Timo Sirainen (5b8981899) lib-storage: List index notify cleanup - move code to separate functions No functional changes. In preparation for the next commit. M src/lib-storage/list/mailbox-list-index-notify.c 2017-09-04 16:59:52 +0300 Timo Sirainen (921a1eac5) lib-storage: Remove INBOX notification checks if mailbox events aren't requested Nothing would be done with the results of those checks. Note that MAILBOX_LIST_NOTIFY_UIDVALIDITY can be handled using mailbox list index, even for INBOX with mailbox_list_index_include_inbox=no. M src/lib-storage/list/mailbox-list-index-notify.c 2017-09-04 16:55:30 +0300 Timo Sirainen (91cec7184) lib-storage: Optimize INBOX notifications with mailbox_list_index_include_inbox=yes There's no need for special INBOX checks in that case, because INBOX is tracked in the mailbox list index the same as any other mailbox. M src/lib-storage/list/mailbox-list-index-notify.c 2017-09-04 12:40:49 +0300 Timo Sirainen (cefa6f3df) pop3-migration: Strip away invalid header lines. If there's no ":" in the header, remove it. Fixes matching mails with Zimbra. M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/pop3-migration/test-pop3-migration-plugin.c 2017-09-04 13:25:38 +0300 Timo Sirainen (64dcdfcd0) example-config: Update mail_temp_dir comment M doc/example-config/conf.d/10-mail.conf 2017-09-04 19:37:12 +0300 Timo Sirainen (3bfdab4b3) pop3-migration: Fail if all IMAP mails were matched by size, but POP3 had extra mails This makes the handling same as what happens when the same situation happens and the last mails were matched by headers. That's an error, unless pop3_migration_ignore_*_uidls=yes. M src/plugins/pop3-migration/pop3-migration-plugin.c 2017-09-04 18:32:15 +0300 Timo Sirainen (65e19f977) pop3-migration: Add pop3_migration_ignore_extra_uidls=yes setting M src/plugins/pop3-migration/pop3-migration-plugin.c 2017-09-04 15:32:24 +0300 Aki Tuomi (2e684ad58) notify-status: Provide access to all easy fields M src/plugins/notify-status/notify-status-plugin.c 2017-08-31 01:59:22 +0300 compmaniak <6314398+compmaniak@users.noreply.github.com> (4e3be303f) lib: Preallocate output space for base64 encoding M src/lib/base64.c 2017-08-31 01:25:22 +0300 compmaniak <6314398+compmaniak@users.noreply.github.com> (f117e2804) lib: Reduced conditional logic in base64_encode M src/lib/base64.c 2017-08-31 01:04:48 +0300 compmaniak <6314398+compmaniak@users.noreply.github.com> (24dfb49cf) lib: Fix MAX_BASE64_ENCODED_SIZE macro M src/lib/base64.h 2017-08-30 13:51:20 +0300 Josef 'Jeff' Sipek (0dac2f5f0) lib: optimize nearest_power Instead of looping over each bit of a size_t, we can use a closed form expression. M src/lib/bits.c M src/lib/bits.h 2017-08-30 20:49:17 -0400 Anton Yuzhaninov (9dadffcd2) lib-compression: Fix assert in i_stream_zlib_seek Also fix same bug in i_stream_bzlib_seek, i_stream_lz4_seek, i_stream_lzma_seek. M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c 2017-08-30 09:50:48 +0300 Aki Tuomi (820f4f32c) db-oauth2: Add some debugging M src/auth/db-oauth2.c 2017-08-29 00:24:46 +0200 Stephan Bosch (3dc38e405) lib-http: client: Improved absolute request timeout error message. Now mentions that it is the absolute timeout. Provides the request statistics also provided for the regular attempt timeout message. M src/lib-http/http-client-queue.c 2017-08-25 18:40:23 +0300 Timo Sirainen (84af63724) sdbox: Don't open mail files when expunging It was done when mail_attachment_fs was non-empty (and default is non-empty), even though mail_attachment_dir was empty. M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-storage.c 2017-08-25 18:02:44 +0300 Timo Sirainen (1ee688af5) lib-storage: mail_storage_set_critical() - don't free old error_string too early It may be used in one of the parameters. M src/lib-storage/mail-storage.c 2017-08-25 19:38:20 +0300 Timo Sirainen (f32c6ed9d) imap: Add debug logging for [un]hibernation The logs should now clearly say when a client was hibernated and when/why it was was unhibernated. M src/imap/imap-client-hibernate.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h M src/imap/imap-master-client.c M src/imap/imap-state.c 2017-08-25 19:53:36 +0300 Timo Sirainen (1bb7fb04a) quota dict: Log when quota is recalculated if mail_debug=yes M src/plugins/quota/quota-dict.c 2017-08-18 11:51:36 +0300 Timo Sirainen (02e78eb1e) director: Run director/host changing doveadm commands only after ring is synced If the ring sync is still pending, the doveadm command may become reverted. This doesn't fully prevent problems caused by sending doveadm commands simultaneously to multiple directors, but it should prevent issues when only a single director is used for doveadm commands. It would have been nice to enable this also for HOST/DIRECTOR-LIST commands, but they don't support returning a ring timeout error without changing the protocol. It's a bit too much effort to change that for now. M src/director/doveadm-connection.c 2017-08-14 10:29:47 +0300 Timo Sirainen (6ecc5475f) director: doveadm HOST-* commands now wait for ring sync before returning OK This should make it easier for tests and maybe for scripts in general, so they won't think the command failed when it just takes a while to finish. M src/director/doveadm-connection.c M src/director/doveadm-connection.h M src/director/main.c 2017-08-14 10:06:34 +0300 Timo Sirainen (6f5310d61) director: Cleanup - Doveadm commands now return enum doveadm_director_cmd_ret M src/director/doveadm-connection.c 2017-08-14 10:01:01 +0300 Timo Sirainen (68f7668b9) director: Cleanup - Move all doveadm commands into an array. M src/director/doveadm-connection.c 2017-08-21 15:44:41 +0300 Timo Sirainen (18122b1fb) mdbox: Use mail_storage_set_index_error() instead of poorly duplicating it M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2017-08-21 15:34:40 +0300 Timo Sirainen (34902486e) lib-storage: Add mail_storage_set_index_error() M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2017-08-21 15:29:46 +0300 Timo Sirainen (5f9ee4f6e) lib-storage: index_mail_set_cache_corrupted() - Don't reset internal error string It's already set correctly by the earlier functions. M src/lib-storage/index/index-mail.c 2017-08-21 15:27:48 +0300 Timo Sirainen (041f22a11) lib-storage: mail_set_mail_cache_corrupted() - set also internal error string M src/lib-storage/mail-storage.c 2017-08-21 15:26:13 +0300 Timo Sirainen (0bab015a5) lib-storage: mailbox_set_index_error() - Set internal error string to index's error M src/lib-storage/mail-storage.c 2017-08-21 15:11:30 +0300 Timo Sirainen (fe7a56906) lib-storage: Fix error logging after mail_storage_set_internal_error() The function doesn't actually set the last_internal_error and it also doesn't update last_error_is_internal, so calling mail_storage_get_last_internal_error() afterwards could be returning an error for some different older error. Since there's no parameter to set the internal error string, just reset last_error_is_internal=FALSE. M src/lib-storage/mail-storage.c M src/lib-storage/test-mail-storage.c 2017-08-25 15:12:06 +0300 Timo Sirainen (4078733e5) lib-index: Avoid opening .log.2 file if .log was reset After a reset there's no point in trying to read the older log files. This avoids trying to open .log.2 at least for newly created mailboxes when trying to lookup log file sequence 1 (since due to some bug/feature the log files start from sequence 2). M src/lib-index/mail-transaction-log.c 2017-08-24 17:01:34 +0300 Timo Sirainen (f37939033) log: Log a warning for each service that still has processes at shutdown This makes it clearer which services are causing log process to hang, and also which processes may have their logging discarded afterwards. M src/log/log-connection.c 2017-08-24 17:00:30 +0300 Timo Sirainen (9a795eb60) log: Include PID in prefix for internal log messages. M src/log/log-connection.c M src/log/log-connection.h M src/log/main.c 2017-08-24 16:31:40 +0300 Timo Sirainen (cc9338259) master: Log "Processes aren't dying after reload" only when signals are sent This required moving the warning after the "Sent SIG.. to .. processes" warnings, which is a little bit annoying. However, now it's at least not unnecessarily logging the warning when it's not doing anything about the processes. M src/master/service.c 2017-08-24 16:24:21 +0300 Timo Sirainen (4a62ed78e) master: Improve killing processes when they don't die after reload The old behavior was: 1. Send SIGTERM to all processes, except log 2. Send SIGTERM to all processes, including log 3. Send SIGKILL to all processes, including log The new behavior is now: 1. Send SIGTERM to all processes, except log 2. Send SIGKILL to all processes, except log Only after there aren't any processes left except log, send SIGTERM to it. If that doesn't work, send SIGKILL. M src/master/main.c M src/master/service.c M src/master/service.h 2017-08-25 13:38:35 +0300 Timo Sirainen (a1d3ff734) pop3-migration: Try to assign UIDLs based on dovecot.index.cache Add the UIDLs to (imapc) mailbox cache after they've been assigned. Try to read them from the cache on the next sync to avoid reading mails' headers. This can be disabled with pop3_migration_skip_uidl_cache=yes, just in case there's some kind of a problem with it. M src/plugins/pop3-migration/pop3-migration-plugin.c 2017-08-25 13:36:11 +0300 Timo Sirainen (bc3661d71) pop3-migration: Delete unnecessary POP3 order checking code Nothing is actually using the result. M src/plugins/pop3-migration/pop3-migration-plugin.c 2017-08-25 13:16:26 +0300 Timo Sirainen (3e376d7c5) lib-storage: Support LISTINDEX= to disable it M src/lib-storage/list/mailbox-list-index.c 2017-08-24 10:01:02 +0300 Sergey Kitov (56fbb7e70) lib-settings: Escape comma in section name. Comma is valid symbol in encoded non-ascii section names, so it shouldn't be used as splitting symbol in section name. M src/lib-settings/settings-parser.c 2017-08-18 15:29:09 +0300 Josef 'Jeff' Sipek (086e8ecc5) quota plugin: restructure quota_root_get_rule_limits() If the user has unlimited quota, we have no reason to find the real mailbox name. M src/plugins/quota/quota.c 2017-08-23 13:14:50 +0300 Aki Tuomi (9c5c54ab0) apparmor: Call super deinit function Otherwise user won't get properly deinitialized, forgotten in a7a0f3196b2b97577ebd9e804507d58e67508fcf M src/plugins/apparmor/apparmor-plugin.c 2017-08-18 17:38:34 +0300 Timo Sirainen (c3fab8b44) lib-storage: Call mail_cache_close_mail() when mail is closed Fixes caching problems with INDEX=MEMORY M src/lib-storage/index/index-mail.c 2017-08-18 17:34:14 +0300 Timo Sirainen (93cb78fb1) lib-index: Add mail_cache_close_mail() to smartly drop cached data with INDEX=MEMORY Instead of reseting the entire transaction buffer when 256 kB is reached, just drop mails have have been marked closed with mail_cache_close_mail(). If that's not enough, continue deleting forcibly until the buffer is below 256 kB. This is especially important when mail_prefetch_count>0 and INDEX=MEMORY. In that case there can be multiple mails that are being added to cache and used later on. If they were dropped from cache too early, the work would have to be done all over again. M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.h 2017-08-18 14:58:37 +0300 Aki Tuomi (351233c81) doveadm: Actually use resolved IP address(es) in director flush It left the IP variable unitialized which caused host parameter to be left empty causing flush all. Flushing with IP address was not affected. M src/doveadm/doveadm-director.c 2017-08-18 11:22:52 +0300 Aki Tuomi (9f24d61f4) doveadm-server: Deinitialize print on connection destroy Otherwise print remains initialized and can break when reusing the service. M src/doveadm/client-connection.c 2017-08-18 11:09:41 +0300 Timo Sirainen (1707f8b66) director: Fix rapid reconnection on failed outgoing connections last_network_failure wasn't set, which caused a failed outgoing connection to immediately reconnect to it. This resulted in rapid logging of connect() errors. M src/director/director-connection.c 2017-08-17 13:20:26 +0300 Timo Sirainen (f784d5bb8) global: Add/change switch case "fall through" comments These fix warnings with gcc 7's -Wimplicit-fallthrough M src/auth/password-scheme.c M src/lib-fts/fts-filter-contractions.c M src/lib-index/mail-transaction-log-file.c M src/lib-ldap/ldap-connection.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/message-header-encode.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/mail-search.c M src/lib/json-parser.c M src/plugins/fts/fts-search-args.c 2017-08-17 14:42:07 +0300 Timo Sirainen (2c8259de1) lib: Add missing parenthesis to timeout_add()'s msecs parameter checks This caused wrong results when the msecs parameter contained e.g. var?1:2 M src/lib/ioloop.h 2017-08-17 13:14:16 +0300 Timo Sirainen (d31018c55) lib: Fix compiler warning about mixing boolean with multiplication M src/lib/macros.h 2017-08-17 14:17:46 +0300 Timo Sirainen (b12757f0d) doveadm mcp keypair generate: Fix -f parameter M src/plugins/mail-crypt/doveadm-mail-crypt.c 2017-07-24 14:40:31 +0300 Timo Sirainen (9599d7ecb) virtual: Make sure sync_mailbox_idx isn't used uninitialized Changing its indexes to start from 1, we can add an assert to check that it's never the default 0 when we need to use it. M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c 2017-07-13 10:02:26 +0300 Aki Tuomi (a7a0f3196) apparmor: Add apparmor plugin It lets dovecot temporarily switch to a new apparmor context for a user. M configure.ac A m4/want_apparmor.m4 M src/plugins/Makefile.am A src/plugins/apparmor/Makefile.am A src/plugins/apparmor/apparmor-plugin.c 2017-08-10 17:50:04 +0300 Timo Sirainen (8017d6c67) director: Make sure users gets expired even on an idle director Normally expiring gets done while looking up users, but if nothing is doing that on an idle director the users won't get expired. This can cause confusion in "doveadm director status" output. M src/director/test-user-directory.c M src/director/user-directory.c 2017-08-16 13:53:55 +0300 Michael Koch (3df60858b) push-notification plugin: properly terminate strings Without this fix, if the new message does not contain a from, a subject, and a snippet the generated JSON will be malformed (the status check at the end appended a '"' when it shouldn't have). M src/plugins/push-notification/push-notification-driver-ox.c 2017-08-15 11:09:07 +0300 Sergey Kitov (bd18d17a3) auth: auth_request_log_unknown_user() to call common auth_request_log_login_failure() Separate implementation of auth_request_log_unknown_user() is replaced with call to auth_request_log_login_failure() NOTE: behavior of the auth_request_log_unknown_user() is changed and is in line with auth_request_log_password_mismatch() M src/auth/auth-request.c 2017-08-15 11:07:46 +0300 Sergey Kitov (3742e38a1) auth: auth_request_log_password_mismatch() to call common auth_request_log_login_failure() Separate implementation of auth_request_log_password_mismatch() is replaced with call to auth_request_log_login_failure() M src/auth/auth-request.c 2017-08-15 11:06:58 +0300 Sergey Kitov (1beabc460) auth: ldap auth bind password mismatch logging is changed All unknown user and password mismatch logging is performed in the same way in both auth_bind = yes and auth_bind = no cases. M src/auth/passdb-ldap.c 2017-08-15 09:27:09 +0300 Sergey Kitov (de6c3680d) auth: Added auth_request_log_login_failure() New function implementing functionality of auth_request_log_unknown_user() and auth_request_log_password_mismatch() M src/auth/auth-request.c M src/auth/auth-request.h 2017-08-14 15:44:24 +0300 Timo Sirainen (b07a3abc4) cassandra: Fix confusing debug logging for paged query results. Even when caller supported paged queries, the debug output contained "Paged query has more results, but not supported by the caller". Clear out the error after sql_result_more() is called, so it won't be logged. M src/lib-sql/driver-cassandra.c 2017-07-28 12:35:07 +0300 Aki Tuomi (6894cb956) auth: Do not use strcasecmp to compare mechanisms This is optimization since strcasecmp is slow M src/auth/mech.c 2017-07-28 10:20:17 +0300 Aki Tuomi (083675993) auth: Empty schemes cannot be aliases Optimizes cases where empty scheme is compared to PLAIN M src/auth/password-scheme.c 2017-08-14 14:48:05 +0300 Aki Tuomi (512e3c94f) auth: Use strchr to split encoding and scheme This is an optimization because usually strchr is faster M src/auth/password-scheme.c 2017-07-28 10:09:06 +0300 Aki Tuomi (f937937c9) auth: Use hash table for schemes M src/auth/password-scheme.c M src/auth/password-scheme.h M src/doveadm/doveadm-pw.c 2017-07-28 09:47:09 +0300 Aki Tuomi (00bd7d0e2) lib: Add strfastcase_hash Fast case-insensitive hashing which works by masking signed bytes with 0x20. M src/lib/hash.c M src/lib/hash.h 2017-08-08 16:56:02 +0300 Timo Sirainen (5e0357691) lib-index: Fix wrong mail_index_modseq_header automatically It happens only on the next sync, although that isn't actually guaranteed to happen. Still, it happens almost always so this should be good enough. M src/lib-index/mail-index-sync.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c M src/lib-index/test-mail-transaction-log-file.c 2017-08-08 16:54:42 +0300 Timo Sirainen (7e78f1cfc) lib-index: Code cleanup - move code to get_modseq_next_offset_at() In preparation for making the next commit smaller. M src/lib-index/mail-transaction-log-file.c 2017-08-08 14:55:48 +0300 Timo Sirainen (2c4d4d0af) lib-index: Add unit tests to mail_transaction_log_file_get_modseq_next_offset() and _get_highest_modseq_at() M src/lib-index/test-mail-transaction-log-file.c 2017-08-08 14:01:18 +0300 Timo Sirainen (9f02b2016) lib-index: Add unit test to mail_transaction_update_modseq() M src/lib-index/Makefile.am A src/lib-index/test-mail-transaction-log-file.c 2017-08-05 14:38:50 +0900 Timo Sirainen (2b170a01b) lib-index: Remove tracking of mail_index_modseq_sync.highest_modseq It's no longer necessary after the previous changes. M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-modseq.h M src/lib-index/mail-index-sync-update.c 2017-08-05 14:33:12 +0900 Timo Sirainen (43ab0dbe6) lib-index: Fix setting highest_modseq correctly in mail_index_modseq_header The internally counted ctx->highest_modseq wasn't correct if all of the records weren't synced. This could have happened for various reasons. Since the view's current log seq/offset is used for the header, we can also use the current highest_modseq from the view as well and it's guaranteed to be correct. This fixes various potential problems with using QRESYNC and CONDSTORE extensions. It also fixes potential errors with unhibernating imap clients, including: Error: .../dovecot.index.log: Transaction log changed unexpectedly, can't get modseq M src/lib-index/mail-index-modseq.c 2017-08-05 14:29:12 +0900 Timo Sirainen (eda341e84) lib-index: Update per-flag modseq value a bit more correctly. This changes the code to be similar to the per-mail modseq updating in mail_index_modseq_update(). It probably wasn't exactly wrong previously either, but this change is required for the following commits. M src/lib-index/mail-index-modseq.c 2017-08-05 14:16:31 +0900 Timo Sirainen (0cb5be3dc) lib-index: Fix checking if modseq header is up-to-date We were almost always assuming that it is. M src/lib-index/mail-index-modseq.c 2017-08-05 14:11:17 +0900 Timo Sirainen (ace341ac5) lib-index: Fix modseq tracking with multiple flag updates The earlier code was checking only the first flag record update. If the first one had only internal flag changes but (some of) the rest didn't, the modseq wasn't counted correctly. This was probably pretty rare. M src/lib-index/mail-transaction-log-file.c 2017-08-05 14:07:58 +0900 Timo Sirainen (892d85b7c) lib-index: Fix modseq tracking for MAIL_INDEX_MAIL_FLAG_UPDATE_MODSEQ This is used to increase modseq for mails when their private flags change. Use an already existing MAIL_TRANSACTION_FLAG_UPDATE_IS_INTERNAL() that does this properly. (This change preserves another bug, which is fixed in the next commit.) M src/lib-index/mail-transaction-log-file.c 2017-08-09 13:17:15 +0300 Timo Sirainen (b0ead8fff) dsync: Add missing transaction flags when performing UID renumbering The transaction didn't have MAILBOX_TRANSACTION_FLAG_SYNC or MAILBOX_TRANSACTION_FLAG_NO_NOTIFY (with DSYNC_BRAIN_FLAG_NO_NOTIFY). This caused replication-dsync to unnecessarily trigger another dsync replication notification. M src/doveadm/dsync/dsync-mailbox-import.c 2017-08-08 20:07:18 +0300 Timo Sirainen (db19aa0ce) lib: When logging I/O or timeout leak, log also raw backtrace This can be useful when trying to figure out where the io_loop_destroy() was called from. M src/lib/ioloop.c 2017-08-09 13:41:34 +0300 Timo Sirainen (c0c346d0e) lib-storage: Panic if at mailbox_free() there are open attribute iterators. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-attribute.c 2017-08-09 13:23:36 +0300 Timo Sirainen (a846e6d6b) push-notification: Switch to main ioloop while calling drivers' deinit/cleanup callbacks Continues a44595f7b1afc7ccbd8653598753b32899d01c76 to other functions. For example the OX backend would call http_client_wait(), which would move the I/Os and timeouts to the current ioloop, which might not be main_ioloop always. When that ioloop gets destroyed, I/O and timeout leaks are logged and eventually the process crashes when calling http_client_deinit() in cleanup() (this would happen later for another mail_user). M src/plugins/push-notification/push-notification-plugin.c 2017-08-08 22:11:48 +0300 Timo Sirainen (65b82c99b) lib: Add asserts to make sure running ioloop is always current_ioloop We could also switch current_ioloop to the running ioloop temporarily while calling callbacks, but this behavior is probably clearer. All of the existing code should already work this way. Add the asserts after IO or timeout callback is called, so if the assert triggers, we can find out which callback caused the change. The initial assert in io_loop_handler_run() is enough to verify that the initial ioloop is correct. M src/lib/ioloop.c 2017-07-26 12:53:16 +0300 Aki Tuomi (5fe2339f8) virtual: Sync backend flags on initial sync when UIDVALIDITY hasn't changed Before recent fixes the UIDVALIDITY was thought to change almost every time, so this bug wasn't visible. M src/plugins/virtual/virtual-sync.c 2017-07-26 13:35:36 +0300 Aki Tuomi (9badddc24) virtual: Do not store recent flags to virtual index Setting the flag here would case unnecessary index update to clear the flag later on. M src/plugins/virtual/virtual-sync.c 2017-08-08 22:25:13 +0300 Timo Sirainen (68d25b7a8) lib: If CORE_IO_LEAK environment is set, panic on IO/timeout leaks M src/lib/ioloop.c 2017-08-02 10:54:27 +0300 Timo Sirainen (3c8055b25) imapc: Add imapc_features=send-id to send ID x-session-ext-id M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2017-08-02 10:49:33 +0300 Timo Sirainen (3b7427fca) lib-imap-client: Support sending IMAP ID command including unique x-session-ext-id M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c 2017-08-08 00:31:57 +0300 Timo Sirainen (c8be39472) mdbox: "Inconsistency in map index" wasn't fixing itself automatically Broken by b9da8540e665138b3cad0b637c08c0ab7d7a7eeb M src/lib-storage/index/dbox-multi/mdbox-map.c 2017-08-07 16:03:46 +0300 Sergey Kitov (cfc6ae77f) doveadm: mailbox_list_index_very_dirty_syncs disabled for force-resync prerun of cmd force-resync sets mailbox_list_index_very_dirty_syncs to no for mail_storage_service_user befor mail_user is allocated. M src/doveadm/doveadm-mail.c 2017-08-07 15:59:35 +0300 Sergey Kitov (24ff04044) lib-storage: added settings updating function for the mail_storage_service user M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2017-08-04 18:20:50 +0300 Timo Sirainen (0a2511b99) lazy-expunge: Log internal errors instead of just "Internal error occurred" M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2017-08-04 13:31:19 +0900 Timo Sirainen (740564d07) lib-storage: If mailbox_list_index_very_dirty_syncs=yes, still rebuild empty list index M src/lib-storage/list/mailbox-list-index-sync.c 2017-08-01 13:48:55 +0900 Timo Sirainen (baf7aa6b2) lib-imap-client: Log an info-line when connected to remote server Include the remote IP:port ad local IP:port. This allows matching the connection with the remote server's logs (or e.g. haproxy logs). M src/lib-imap-client/imapc-connection.c 2017-07-30 09:39:18 +0300 Timo Sirainen (38cf8e6fc) lib-storage: MAIL_STORAGE_SERVICE_FLAG_NO_PLUGINS wasn't working correctly Especially with "doveadm user" it still triggered running the plugins, because doveadm loads all the plugins early. M src/lib-storage/mail-storage-service.c 2017-07-20 13:24:21 +0300 Aki Tuomi (917cac3e0) auth: Escape LDAP search filter properly This is syntaxical escaping to make ldap servers accept queries with escapable characters, instead of erroring out. M src/auth/db-ldap.c 2017-07-20 08:49:25 +0300 Aki Tuomi (b55776caa) dict-ldap: Escape LDAP search filter properly This is syntaxical escaping to make ldap servers accept queries with escapable characters, instead of erroring out. It is possible that the filter could have been modified in unexpected ways if the input comes from untrusted sources. M src/plugins/dict-ldap/dict-ldap.c 2017-07-20 08:48:30 +0300 Aki Tuomi (5ad53564f) lib-ldap: Store error if sending request to LDAP fails If the request cannot be sent e.g. due to bad search filter store the error into the result. Fixes Panic: file ldap-connection.c: line 709 (ldap_result_has_failed): assertion failed: ((result->openldap_ret == LDAP_SUCCESS) == (result->error_string == NULL)) M src/lib-ldap/ldap-connection.c 2017-07-27 16:34:34 +0200 Stephan Bosch (d577bb902) lib-http: message parser: Reject messages with invalid Date header when HTTP_MESSAGE_PARSE_FLAG_STRICT flag is enabled. M src/lib-http/http-message-parser.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c 2017-07-27 16:30:20 +0200 Stephan Bosch (76b50cc56) lib-http: Fixed bug in date parser: sometimes read one byte past end of input. This caused spurious parse errors. M src/lib-http/http-date.c 2017-07-27 16:03:44 +0200 Stephan Bosch (f4b515d24) lib-http: test-http-response-parser: Show error message for tests of invalid responses. M src/lib-http/test-http-response-parser.c 2017-07-26 19:47:16 +0300 Aki Tuomi (5638e66bf) imap: Flush response to client before starting possibly long operation Fixes Error: Timeout communicating with /var/run/dovecot/imap-master (version received) M src/imap/imap-master-client.c 2017-07-26 19:42:48 +0300 Aki Tuomi (bbc043c66) imap: Set client created before initializing namespaces Fixes Panic: file master-service.c: line 819 (master_service_client_connection_destroyed): assertion failed: (service->master_status.available_count < service->total_available_count) M src/imap/imap-master-client.c 2017-07-25 20:53:18 +0300 Timo Sirainen (d823c19df) lib-storage: Hide and rmdir \NoSelect leaf mailboxes with NO-NOSELECT If the leaf is successfully rmdir()ed, rmdir() also its parents. This doesn't work perfectly with if there are multiple levels of \NoSelect mailboxes. For example with "a/b/c" the listing will already have returned "a" and "a/b" before it reaches the "a/b/c" code, which will rmdir all of them, but it's a bit too late at that point. It's too much work to fix though, and the situation will be fixed on the next list anyway. M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-delete.h M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-iter-private.h 2017-07-25 16:10:51 +0300 Timo Sirainen (eaa2d473e) lib-storage: Add setting to disable \NoSelect mailboxes Enabled using mail_location = ...:NO-NOSELECT Trying to create \NoSelect "dir/" will result just creating "dir", similar to how Maildir++ layout already did it. Deleting a mailbox will delete all of its \NoSelect parents. M src/lib-storage/index/index-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2017-07-25 15:54:37 +0300 Timo Sirainen (5693411c1) lib-storage: Mailbox rename shouldn't auto-rmdir parent index dirs with ITERINDEX For example: - create a/b - rename a/b c This resulted in "a" existing in mail root directory, but not in index directory. With ITERINDEX this meant that the "a" was lost. M src/lib-storage/list/mailbox-list-delete.c 2017-05-23 14:05:02 +0200 Stephan Bosch (2b1933b13) lib-storage: index: Made MIME FILENAME search criterion match case-insensitively. M src/lib-storage/index/index-search-mime.c M src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-search.c 2017-07-19 21:24:48 +0300 Timo Sirainen (77a41c18e) doveadm service status: Add doveadm_stop field This indicates whether "doveadm service stop" was used for the service. M src/doveadm/doveadm-master.c M src/master/master-client.c M src/master/service.h 2017-07-25 09:35:31 +0300 Timo Sirainen (d85f37fe0) lib-storage: If root dir already exists as file, log better error message. M src/lib-storage/mailbox-list.c 2017-07-25 10:39:43 +0300 Timo Sirainen (a602629cb) lib: Fix compiler warning in var-expand-if M src/lib/var-expand-if.c 2017-07-25 09:43:56 +0300 Timo Sirainen (ac225e892) lib: Fix static analyzer warnings in var-expand-if M src/lib/var-expand-if.c 2017-07-24 21:08:33 +0300 Timo Sirainen (992511e0c) lib-storage: Try to get mailbox list index's permissions from its parent directory This avoids stat()ing the mail/index root directory, which is especially useful when mailbox list index is stored in tmpfs. M src/lib-storage/list/mailbox-list-index.c 2017-07-24 21:07:44 +0300 Timo Sirainen (cded712c1) lib-index: Add mail_index_use_existing_permissions() This has annoyingly lot of copy&pasting from mailbox_list_get_permissions_stat(), but there didn't seem to be any nice place where to share the code. M src/lib-index/mail-index.c M src/lib-index/mail-index.h 2017-07-24 20:48:25 +0300 Timo Sirainen (b12798bbb) lib-storage: If ITERINDEX is set, delay checking whether mail root exists In future this could be done even without ITERINDEX. It's not done yet, since it might break backwards compatibility with some systems. M src/lib-storage/mail-storage.c 2017-07-22 18:39:19 +0300 Timo Sirainen (49c48631c) lib-storage: Allow LISTINDEX to point to a different directory Most importantly because the mailbox list index is only a cache, it could be safely pointed to e.g. tmpfs to save disk I/O. M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2017-07-24 18:30:01 +0300 Aki Tuomi (9ab2df665) var-expand-if: Remove unused variable par_start M src/lib/var-expand-if.c 2017-07-24 14:17:22 +0300 Timo Sirainen (e41228670) lib-storage: Add mailbox_list_index_include_inbox setting This controls whether to update INBOX's STATUS information in the mailbox list index. It can be useful especially if LISTINDEX points to a tmpfs, but perhaps also in other situations. I considered adding a more generic setting to exclude other mailboxes, but the namespace prefixes and hierarchy separators get a bit complicated with shared mailboxes. It's probably also not very useful to change this for anything but the INBOX. M doc/example-config/conf.d/10-mail.conf M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2017-07-24 14:12:55 +0300 Timo Sirainen (00f85d286) example-config: Add mailbox_list_index_very_dirty_syncs M doc/example-config/conf.d/10-mail.conf 2017-07-23 12:32:38 +0300 Timo Sirainen (b3d5afcc9) lib-master: Allow userdb to return postlogin socket path. Returning "postlogin=socketpath" as userdb extra field overrides the postlogin socket path in the service { executable } parameter. M src/lib-master/master-login.c 2017-07-24 16:37:42 +0300 Timo Sirainen (baf97389e) lib-storage: If userdb returns chdir extra field, chdir() there instead of home This can avoid unnecessary home directory accesses if indexes are stored outside the home and there's no other reason to chdir() to home. M src/lib-storage/mail-storage-service.c 2017-07-24 16:36:45 +0300 Timo Sirainen (1fe027b2c) lib-storage: If chdir(home) fails due to EACCES, don't log two errors. M src/lib-storage/mail-storage-service.c 2017-07-24 13:31:49 +0300 Aki Tuomi (57479bd66) var-expand: Add tests for var_expand conditionals M src/lib/test-var-expand.c 2017-07-24 13:31:02 +0300 Aki Tuomi (b3e714256) var-expand: Add support for conditionals %{if;value-a,op,value-b:true-value:false-value} M src/lib/Makefile.am A src/lib/var-expand-if.c M src/lib/var-expand-private.h M src/lib/var-expand.c 2017-07-21 19:52:23 +0300 Timo Sirainen (bc7d7e41f) virtual: Make sure index is rewritten when new mailboxes are added Otherwise multiple bbox->sync_mailbox_idx point to 0 and they keep overwriting each others in the header. This causes the header to be constantly updated with wrong contents. M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c 2017-07-20 16:18:46 +0300 Timo Sirainen (0c9a10554) lib-storage: Add UIDVALIDITY to mailbox list index on mailbox create This avoids an unnecessary secondary write later on when opening the mailbox. M src/lib-storage/list/mailbox-list-index-backend.c 2017-07-20 16:01:46 +0300 Timo Sirainen (ec1cfee08) lib-storage: Don't update INBOX's sync status to mailbox list index It's not actually used so there's no need to update it either. Broken by 70092709cdc803c87b8f4ef1b0548eb45515bdae M src/lib-storage/list/mailbox-list-index-status.c 2017-07-20 09:46:00 +0300 Martti Rannanjärvi (6b4d642a2) lib-sql: Remove duplicate Cassandra consistency names M src/lib-sql/driver-cassandra.c 2017-07-20 11:01:37 +0300 Aki Tuomi (7a758aabe) virtual: Do not remove mailbox notify if the mailbox is closed The backend mailbox close/open status is not related to the notify API usage. The notify is removed in virtual_mailbox_close_internal instead when we are actually deinitializing. M src/plugins/virtual/virtual-storage.c 2017-07-19 23:19:12 +0300 Timo Sirainen (81e832796) virtual: Optimize mailbox_notify_changes() when there's only a single backend mailbox M src/plugins/virtual/virtual-storage.c 2017-07-19 23:11:12 +0300 Timo Sirainen (2044eb765) lib-storage: mailbox_watch_extract_notify_fd() - give better reason if mailbox has no IOs This happens currently with virtual mailboxes. M src/lib-storage/mailbox-watch.c 2017-07-19 23:09:13 +0300 Timo Sirainen (a6280be05) lib: io_loop_extract_notify_fd() - Don't crash if no notifys have been added M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-kqueue.c 2017-07-11 13:12:46 +0300 Martti Rannanjärvi (0c803d52a) imap: Add %{appended} to imap_logout_format M doc/example-config/conf.d/20-imap.conf M src/imap/cmd-append.c M src/imap/imap-client.c M src/imap/imap-client.h 2017-07-03 15:20:14 +0300 Martti Rannanjärvi (375c6e158) doc: Change del to deleted in imap_logout_format default to match code M doc/example-config/conf.d/20-imap.conf 2017-07-03 17:12:08 +0300 Martti Rannanjärvi (0aa23d882) imap-client: Add %{autoexpunged} to imap_logout_format M doc/example-config/conf.d/20-imap.conf M src/imap/imap-client.c M src/imap/imap-client.h 2017-07-04 09:25:21 +0300 Martti Rannanjärvi (d6bb1be2c) imap-client: Add const char *disconnect_reason to client This is to allow using reason given to client_disconnect() via timeout context. M src/imap/imap-client.c M src/imap/imap-client.h 2017-07-19 13:43:09 +0300 Timo Sirainen (2c0485aae) lib-index: Fix next_uid lookup in open transaction that has appended mails The appended mails were used for returning an updated mail_index_header.next_uid, but only if the mails were assigned UIDs in mail_index_append(). It should have updated the next_uid also after mail_index_append_finish_uids() was used to assign the UIDs. This fixes setting first_recent_uid correctly for virtual mailboxes when the sync finds new mails. Avoids multiple sessions from getting \Recent flags for the same mails. M src/lib-index/mail-index-transaction-update.c 2017-07-19 10:37:25 +0300 Timo Sirainen (8a6afcd8a) cassandra: Fix read/write buffer overflows after adding CASSANDRA_QUERY_TYPE_READ_MORE M src/lib-sql/driver-cassandra.c 2017-07-19 10:35:43 +0300 Timo Sirainen (065189672) lib-sql: Add assert to sql_result_more_s() Should avoid a warning from static analyzer. M src/lib-sql/sql-api.c 2017-07-19 12:03:58 +0300 Aki Tuomi (2f691d6dd) virtual: Stop watching notification on backend box close Fixes Panic: file mail-index.c: line 662 (mail_index_close_nonopened): assertion failed: (index->views == NULL) M src/plugins/virtual/virtual-storage.c 2017-07-18 21:04:47 +0300 Aki Tuomi (0d318fe07) virtual: Stop notifications only if they were started Fixes Panic: file mail-storage.c: line 1950: assertion failed: (box->opened) M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2017-07-19 10:58:43 +0300 Timo Sirainen (4ca4d6e09) pop3-migration: Add unit test for checking that trailing tabs are stripped M src/plugins/pop3-migration/test-pop3-migration-plugin.c 2017-07-19 10:57:36 +0300 Timo Sirainen (b696d1d6d) lib-mail: message_header_hash() - add v4 that strips tabs This helps with Zimbra, which strips away trailing tabs in BODY[HEADER]. M src/lib-mail/message-header-hash.c M src/lib-mail/message-header-hash.h M src/lib-mail/test-message-header-hash.c 2017-07-18 14:37:53 +0300 Aki Tuomi (eba201921) lib-index: Mark index deleted if index log file is missing This fixes all kinds of errors caused by mailbox being deleted by another process. M src/lib-index/mail-index.c 2017-07-18 14:42:23 +0300 Timo Sirainen (bb444f746) lib-index: Fix mail_index_get_modification_time() to work when index isn't open. index->filepath may be NULL after a failed index open, and it's a bit unsafe to trust that index->log->filepath isn't NULL either. So just build the full path from elements that are definitely non-NULL. Also stat() only dovecot.index.log, because it's always supposed to exist. If it doesn't, something's broken and stat()ing dovecot.index doesn't make much sense. This commit removes mail_transaction_log_get_mtime(), which is no longer needed. Fixes: Panic: file mail-index.c: line 931 (mail_index_file_set_syscall_error): assertion failed: (filepath != NULL) M src/lib-index/mail-index.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log.c M src/lib-index/mail-transaction-log.h 2017-07-18 12:39:44 +0300 Timo Sirainen (e1c762cb4) lib-storage: Don't allow removing \Recent flags with mail_update_flags() Reverts an ancient commit 7deb24e7453249d09741641bff0f269f68165033. I don't know why it was added in the first place. Normally \Recent flags are removed during sync with MAIL_INDEX_SYNC_FLAG_DROP_RECENT. This should be enough, especially since it's not even possible to remove a single \Recent flag - only update the first_recent_uid. The code was also wrong: It was dropping \Recent flags even when modify_type/flags combination didn't ask for it. Even if this was fixed, there would still be race conditions with multiple processes since this update is done without locking. Fixes: Error: Recent flags state corrupted for mailbox M src/lib-storage/index/index-mail.c 2017-07-18 11:57:24 +0300 Timo Sirainen (e12a822e7) lib-storage: If mail_index_header.first_recent_uid shrinks, reset \Recent flags This should never happen. M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c 2017-07-17 18:10:49 +0300 Timo Sirainen (caf029d36) cassandra: Improve logging for multipage queries warn_timeout is applied to both individual page requests as well as the sum of all the page requests. M src/lib-sql/driver-cassandra.c 2017-07-17 17:54:07 +0300 Timo Sirainen (dd3d20d9b) cassandra: Add page_size setting to enable paged results for queries M src/lib-sql/driver-cassandra.c 2017-07-17 17:51:03 +0300 Timo Sirainen (a5f270722) cassandra: Add wrapper functions in preparation for following commits No functional changes. Shrinks the following commits. M src/lib-sql/driver-cassandra.c 2017-07-17 17:54:36 +0300 Timo Sirainen (55bfcb67a) dict-sql: Add support for sql_result_more() M src/lib-dict/dict-sql.c 2017-07-17 14:22:35 +0300 Timo Sirainen (402f9bcf4) lib-sql: Add API support for asynchronously iterating over rows. sql_query() can already do an async lookup, but the full result needs to be available immediately. This can be inefficient for large results. Add a new SQL_RESULT_NEXT_MORE return value and sql_result_more() for asynchronously requesting more results. This changes the API a bit, but isn't done by default by any drivers yet. Also callers that can't handle this are hopefully checking for "ret < 0", which allows them to handle such an async-more request as an error instead. sql_result_next_row() will be changed to return enum in a separate commit to keep backwards compatibility in v2.2.x. M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-test.c M src/lib-sql/sql-api-private.h M src/lib-sql/sql-api.c M src/lib-sql/sql-api.h 2017-07-17 14:05:45 +0300 Timo Sirainen (7b19478fa) imapc: Fix caching >= 32 kB mail bodies When closing the mail, only in-memory mail bodies were stored to cache. M src/lib-storage/index/imapc/imapc-mail.c 2017-07-17 10:46:14 +0300 Aki Tuomi (e653e88f7) lib-index: Add missing colon to log text It's added elsewhere M src/lib-index/mail-transaction-log-file.c 2017-07-14 17:00:21 +0300 Timo Sirainen (bdc81a44e) master: Change service "connections are being dropped" warning interval to 1 second When this is happening, it's often accompanied with all kinds of other errors and these warnings drown in them. Make them easier to notice by reducing the interval from 60 seconds to 1 second. M src/master/service-monitor.c 2017-07-13 16:20:53 +0300 Timo Sirainen (66a4847c6) lib-storage: mailbox_create_missing_dir() - Fix handling NULL mailbox directory It would have caused stat(NULL), which would have failed. Broken by 7071a02a8413fb409ade1625f6a1763c7493b66b M src/lib-storage/mail-storage.c 2017-07-14 02:11:56 +0300 Timo Sirainen (97ffd8e0b) lib-storage: When index dir rmdir() fails with ENOTEMPTY, retry it for 1 second This helps to avoid leaving those index directories lying around with NFS. Hopefully within the 1 second any existing processes that have been keeping those files open have finished their task. Especially IMAP IDLE will take 0.5 seconds to start syncing indexes and realize that they're deleted. M src/lib-storage/list/mailbox-list-delete.c 2017-07-14 01:54:31 +0300 Timo Sirainen (fe5799cb9) lib-index: If refreshing finds dovecot.index.log gone, assume the mailbox was deleted Don't try to recreate the log file again. It can just cause further problems. A way to reproduce this problem with NFS when INDEX dir is specified: * create mailbox foo, select foo, IDLE * delete mailbox foo --> foo's index is recreated back by IDLEing process M src/lib-index/mail-transaction-log.c 2017-07-13 03:15:36 +0300 Timo Sirainen (10207755f) quota: Fix negative storage-based quota_warnings to work with count backend Finishes f9362223346d10a5866b376ed227b77b26ea4292, which fixed it for "messages" but not for "storage". M src/plugins/quota/quota-private.h M src/plugins/quota/quota-util.c M src/plugins/quota/quota.c 2017-07-13 02:56:33 +0300 Timo Sirainen (3e170cc66) quota: When setting auto_updating to transaction, skip invisible quota roots Skip the quota root also if the mailbox matches "ignore" quota_rule. This is only an optimization fix so that unnecessary work isn't done for quota roots that aren't actually used. M src/plugins/quota/quota.c 2017-07-12 16:18:42 +0300 Timo Sirainen (7071a02a8) lib-storage: mailbox_create_missing_dir() - Handle mailbox delete race condition Make sure the directory isn't created if the mail root directory no longer exists. This might happen during mailbox deletion when another process is opening the mailbox at the same time. M src/lib-storage/mail-storage.c 2017-07-12 16:15:13 +0300 Timo Sirainen (17a951e76) lib-storage: Improve MAILBOX_LIST_PROP_AUTOCREATE_DIRS related comments M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.h 2017-07-09 11:31:44 +0300 Timo Sirainen (9562831b8) lib-lda: Fix crash if syncing save destination mailbox fails M src/lib-lda/mail-deliver.c 2017-07-12 17:54:44 +0300 Timo Sirainen (df8b4fbe4) lib-index: Fix compiler warning with 32bit time_t M src/lib-index/mail-transaction-log.c 2017-07-11 15:35:16 +0300 Timo Sirainen (4394b73ca) lib-index: Track .log.2 rotation time in index header This avoids unnecessarily stat()ing the file. Also it's a bit better since it's tracking the actual rotation time, not the mtime of what the .log file happened to have at the time of rotation. The initial rotation timestamp is written only to the dovecot.index header without going through dovecot.index.log. This works, because the dovecot.index is written practically always after a log rotation. For the rare cases when it doesn't happen, the dovecot.index.log.2 just gets deleted later after the next log rotation. M src/doveadm/doveadm-dump-index.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log.c 2017-07-11 15:33:56 +0300 Timo Sirainen (fd71a4ab1) lib-index: Check .log.2 rotation only when syncing Instead of also whenever appending transactions to .log file. This shouldn't change the behavior much, and it's needed for the following change to work correctly. M src/lib-index/mail-transaction-log.c 2017-07-11 15:32:33 +0300 Timo Sirainen (a13a14862) doveadm dump: Include "last temp file scan" in index header dump M src/doveadm/doveadm-dump-index.c 2017-07-11 14:31:10 +0300 Timo Sirainen (2219501dc) lib-index: Use nfs_safe_stat() to avoid having to handle stat() ESTALE error Slightly simplifies the code. M src/lib-index/mail-transaction-log.c 2017-07-11 14:34:06 +0200 Stephan Bosch (6e62aa36a) lib-http: message parser: Allow duplicate date header if HTTP_MESSAGE_PARSE_FLAG_STRICT is not set. The last instance of the date header is used. M src/lib-http/http-message-parser.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c 2017-07-11 14:18:47 +0200 Stephan Bosch (7ebcb054e) lib-http: Restructured the header, message, request, and response parsers to have an extensible and consistent API using flags. Extended the test suites with a few cases that test parsing with and without the STRICT flag. M src/lib-http/http-client-connection.c M src/lib-http/http-header-parser.c M src/lib-http/http-header-parser.h M src/lib-http/http-message-parser.c M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h M src/lib-http/http-response-parser.c M src/lib-http/http-response-parser.h M src/lib-http/http-server-connection.c M src/lib-http/http-transfer-chunked.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c 2017-07-11 14:14:47 +0300 Timo Sirainen (f368169ca) sdbox: Create missing mail directory on resync if index directory exists This problem should be visible only with ITERINDEX enabled. M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h 2017-07-02 12:05:36 +0200 Stephan Bosch (19b42eb8a) lib: Created basic test suite for ostream-buffer. M src/lib/Makefile.am M src/lib/test-lib.inc A src/lib/test-ostream-buffer.c 2017-07-11 10:45:16 +0300 Aki Tuomi (c262d219f) lib-storage: Remove user namespaces on hook error If there is a hook error during namespaces added remove the namespaces from user. This avoids attempts to use the namespaces later on without proper initialization. M src/lib-storage/mail-namespace.c 2017-07-11 10:26:38 +0300 Aki Tuomi (af084c8b2) lib-storage: Ensure list index is present Otherwise we end up with signal 11 crash later on. M src/lib-storage/list/mailbox-list-index.c 2017-04-07 09:23:01 +0300 Timo Sirainen (ba4eb91d9) lib-ssl-iostream: Fix compiler warning ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS makes it unsigned, so it doesn't fit into signed 32bit long. M src/lib-ssl-iostream/iostream-openssl-context.c 2017-07-10 16:11:48 +0300 Timo Sirainen (d167a7d64) lib-storage: Fix mailbox_update() to always update mailbox list index. It previously was updating it only if the list index for the mailbox was already fully up-to-date. But that doesn't really matter, because mailbox_update() is supposed to be changing the values regardless. This fixes mailbox_update() to always work with LAYOUT=index. It also fixes mailbox_update() for INBOX to update UIDVALIDITY/GUID. M src/lib-storage/list/mailbox-list-index-status.c 2017-07-10 15:54:07 +0300 Timo Sirainen (15086e056) lib-storage: Don't use mailbox list index if it has refresh_flag set For example if INBOX is deleted, looking up its GUID shouldn't be returned from the list index since it contains the old GUID. M src/lib-storage/list/mailbox-list-index-status.c 2017-07-10 13:34:17 +0300 Timo Sirainen (70092709c) lib-storage: Track INBOX UIDVALIDITY and GUID in mailbox list index This allows existence checks and GUID lookups for INBOX to be done from the index. M src/lib-storage/list/mailbox-list-index-status.c 2017-07-06 19:00:35 +0300 Timo Sirainen (4fc372fac) lib-storage: Avoid index refresh with mailbox_list_index_very_dirty_syncs=yes M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index-sync.h M src/lib-storage/list/mailbox-list-index.c 2017-07-06 17:48:19 +0300 Timo Sirainen (f9dcefcf7) lib-storage: Refresh mailbox list index if mailbox's existence differs from index M src/lib-storage/list/mailbox-list-index.c 2017-07-06 17:45:02 +0300 Timo Sirainen (97d509bef) lib-storage: Set mailbox list index to be refreshed after changes, not before Mailbox deletion and rename set the refresh-flag before the change was done. This was unnecessary if the change didn't happen. Also there was a race condition that another process could have done the refresh before the change was even done. M src/lib-storage/list/mailbox-list-index.c 2017-07-06 17:36:28 +0300 Timo Sirainen (4654cf737) lib-storage: Add mailbox_list_last_error_push/pop() These are similar to mail_storage_last_error_push/pop() M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2017-07-10 14:37:04 +0300 Timo Sirainen (c29df09ed) lib-storage: Try to avoid opening mailbox list index on mailbox access Perform the STATUS (and other relevant) updates only if syncing or transaction commits changed anything. This could be optimized further to check even more strongly whether the seen changes could cause changes to the list index, but it's probably not worth the effort. M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-storage.h 2017-07-10 14:20:50 +0300 Timo Sirainen (e098ac1cd) lib-storage: Storage backend sync_init()s no longer need to check if mailbox is open The previous change guarantees it. M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-sync.c 2017-07-10 14:19:47 +0300 Timo Sirainen (4906f6520) lib-storage: mailbox_sync_init() - open mailbox immediately if it's not open yet This simplifies the work for plugins that want to hook into mailbox.sync_init() so they no longer have to handle the "mailbox isn't opened" case. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2017-07-10 13:56:49 +0300 Timo Sirainen (b596cac26) imap: Don't do autoexpunging when IMAP client is hibernated M src/imap/imap-client-hibernate.c M src/imap/imap-client.c M src/imap/imap-client.h 2017-05-02 14:01:16 +0300 Aki Tuomi (c69b62e5d) lib-fs: Add init function that can use fs string directly This avoids doing splitting the fs driver and args everywhere and ensures that separators are consistent. M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2017-07-05 16:08:41 +0300 Josef 'Jeff' Sipek (cbe4d8212) lib: remove support for Boehm GC There were several issues with our usage of Boehm GC: - it didn't help with memory fragmentation - it is not very efficient - it was rarely enabled & used Proper use of a GC would involve radical changes to how we write code and cause portability issues. We can get most of the benefits of a GC with data stacks and alloc-only memory pools. M configure.ac M doc/securecoding.txt D m4/gc.m4 M src/lib/data-stack.c M src/lib/mempool-alloconly.c M src/lib/mempool-system.c 2017-07-06 12:40:33 +0300 Aki Tuomi (781a93379) virtual: If virtual_uid is not assigned skip it We cannot lookup mails with uid 0, so if we see that mail has virtual uid 0, do not attempt to look it up from index, but skip it. Fixes Panic: file mail-index-map.c: line 549 (mail_index_map_lookup_seq_range): assertion failed: (first_uid > 0) M src/plugins/virtual/virtual-sync.c 2017-07-05 15:20:32 +0300 Aki Tuomi (15a2661c2) virtual: Append virtual mailbox name to open reason on box alloc M src/plugins/virtual/virtual-storage.c 2017-07-05 15:20:18 +0300 Aki Tuomi (a08e96bb7) virtual: Append virtual mailbox information to get stream reason M src/plugins/virtual/virtual-mail.c 2017-07-05 14:24:49 +0300 Aki Tuomi (fc80e0a7e) virtual: Expunge virtual mails if backend box is deleted When mail is added to a mailbox and then deleted, expunge the sequences from virtual index in sync. Fixes Error: Unexpectedly lost Mailbox ID 4 M src/plugins/virtual/virtual-sync.c 2017-07-03 13:53:49 +0300 Aki Tuomi (59a236b2e) virtual: Do not mark broken folder as initialized Otherwise it won't get repaired M src/plugins/virtual/virtual-sync.c 2017-07-03 13:53:31 +0300 Aki Tuomi (4299aef7c) virtual: Fix highest_mailbox_id if it's wrong M src/plugins/virtual/virtual-sync.c 2017-07-03 13:25:35 +0300 Aki Tuomi (7fa9d523d) virtual: Force header rewrite if header not found or crc32 changed Otherwise the header gets only partially written M src/plugins/virtual/virtual-sync.c 2017-06-29 13:22:32 +0300 Aki Tuomi (f4b086930) lib-storage: Clarify keywords handling in mail_save_finish M src/lib-storage/mail-storage.c 2017-06-28 13:45:19 +0300 Aki Tuomi (c9c4494be) virtual: Fix keywords handling Keywords are per-mail object, and should be treated as one. The old code left pointer to keywords dandling which lead into double-free. Now the ctx->data is treated in similar way as other backends. Fixes Panic: file mail-index.c: line 417 (mail_index_keywords_unref): assertion failed: (keywords->refcount > 0) Fixes Panic: file mail-storage.c: line 2311 (mailbox_save_context_reset): assertion failed: (!ctx->unfinished) M src/plugins/virtual/virtual-save.c 2017-06-27 14:19:16 +0300 Aki Tuomi (cff36c02d) virtual: Fix recent flag updates View must be updated before looking up seqs M src/plugins/virtual/virtual-sync.c 2017-06-29 13:46:06 +0300 Aki Tuomi (c5f46e7c1) virtual: Call mailbox_save_context_deinit before freeing context Otherwise dest_mail does not get free'd M src/plugins/virtual/virtual-save.c 2017-06-27 12:51:51 +0300 Aki Tuomi (43dfd44ec) virtual: Use mailbox_notify_list API when mailbox_list_index is enabled M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2017-06-27 10:54:08 +0300 Aki Tuomi (825b0e819) virtual: Generate GUID for virtual folder GUID is generated when index is first created or the rules change. M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c 2017-06-27 12:42:27 +0300 Aki Tuomi (ffe330e26) lib-storage: Add type checking for mailbox_list_notify_wait M src/imap/imap-notify.c M src/lib-storage/mailbox-list-notify.c M src/lib-storage/mailbox-list-notify.h 2017-07-06 15:51:17 +0300 Sergey Kitov (bad08efc4) lmtp: client_input_data_write_local() refactored loops in client_input_data_write_local() and in client_deliver_next() are merged as they are essentially the same loop, client_deliver_next() renamed to client_deliver_to_rcpts(). M src/lmtp/commands.c 2017-07-06 15:45:24 +0300 Sergey Kitov (2092da86f) lmtp: Fix for wrong session id of mail user when saving mail, quota checking on When quota is checked mail user is allocated with custom ":quota" session id suffix without incrementing service user session id counter M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lmtp/commands.c 2017-07-06 14:45:26 +0300 Aki Tuomi (8e95a2092) lib-storage: Use ST_CHANGED in mailbox-watch Allows notifying sub-second changes. M src/lib-storage/mailbox-watch.c 2017-07-06 14:44:40 +0300 Aki Tuomi (3aff91a19) lib, lib-storage: Move INOTIFY_ST_CHANGED to ST_CHANGED in lib Allows reusing this elsewhere M src/lib-storage/list/mailbox-list-index-notify.c M src/lib/macros.h 2017-07-06 13:24:31 +0300 Timo Sirainen (2eeca70fd) lib: file_create_locked() - Treat mkdir() EEXIST error as success This can happen in race conditions when multiple processes are mkdir()ing the same directory. It shouldn't result in failure. M src/lib/file-create-locked.c 2017-07-06 11:24:35 +0300 Timo Sirainen (d5282594e) virtual: Avoid assert-crash if backend mailbox's have_guid lookup fails The MAIL_ERROR_NOTFOUND can happen if the mailbox was already deleted. Other errors aren't expected to happen and possibly point to a bug. Fixes: Panic: file mail-storage.c: line 1831: unreached M src/plugins/virtual/virtual-storage.c 2017-07-05 14:38:19 +0300 Martti Rannanjärvi (8f75c2954) doveadm: Fix a typo in doveadm-print-flow function name doveadm_print_flow_print_heder() -> doveadm_print_flow_print_header() M src/doveadm/doveadm-print-flow.c 2017-07-04 14:22:19 +0300 Aki Tuomi (f97dcee67) notify-status: Add notify-status plugin This enables updating a dictionary with mailbox status information when the mailbox changes. It requires notify_status_dict setting for specifying the dict where the data is stored. One can optionally use notify_status_mailbox patterns for specifying which box(es) the status update is done. Subsequent patterns are notify_status_mailbox2 and so forth. One can also specify data format using notify_status_value plugin setting. M configure.ac M src/plugins/Makefile.am A src/plugins/notify-status/Makefile.am A src/plugins/notify-status/notify-status-plugin.c 2017-03-28 00:03:04 +0200 Stephan Bosch (38af46387) lib-http: server: Implemented API for handling the incoming request payload in the background. It allows forwarding the incoming payload to an output stream (e.g. iostream-temp) or to a buffer. The maximum size of the payload is configurable. The client will get a 413 error if the maximum is exceeded. M src/lib-http/http-server-connection.c M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c M src/lib-http/http-server.h M src/lib-http/test-http-payload.c M src/lib-http/test-http-server-errors.c 2017-06-17 15:51:09 +0200 Stephan Bosch (dc05b1fb4) lib-http: server: Explicitly record the number of references held for a request by the application from within the callback. M src/lib-http/http-server-connection.c M src/lib-http/http-server-private.h 2017-03-29 00:17:50 +0200 Stephan Bosch (49c232ae0) lib-http: server: Allow holding only a reference to the request payload stream, rather than the request itself. This mimics the http-client behavior in this case. It makes the implementation of the background payload handling API in subsequent commits a little simpler. M src/lib-http/http-server-connection.c M src/lib-http/http-server.h 2017-03-27 20:44:37 +0200 Stephan Bosch (9ec9b6f85) lib-http: server: Changed http_server_request_is_complete() from an inline to a normal function. M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c 2017-03-27 20:34:21 +0200 Stephan Bosch (5560e4cd4) lib-http: server: Restructured http-server-private.h. M src/lib-http/http-server-private.h 2017-03-27 20:18:18 +0200 Stephan Bosch (bc8908662) lib-http: server: Improved documentation in http-server.h. M src/lib-http/http-server.h 2017-03-27 19:50:31 +0200 Stephan Bosch (debbc09b5) lib-http: server: Restructured http-server.h. M src/lib-http/http-server.h 2017-07-03 22:06:21 +0200 Thomas Reifferscheid (7785296a7) dsync: fix splitting login from host Using strchr() was splitting login and host at the first occurrence of '@' which leads to troublesome behaviour. When calling strace one would notice the misbehaviour: execve("/usr/sbin/ssh", ["ssh", "-lthomas", "domain.org@10.8.13.2" using strrch() however splits login and host at the last occurrence of '@'. Signed-off-by: Thomas Reifferscheid M src/doveadm/doveadm-dsync.c 2017-07-03 18:40:47 +0300 Aki Tuomi (7dd64d2fa) quota-status: Support recipient_delimiter M src/plugins/quota/Makefile.am A src/plugins/quota/quota-status-settings.c A src/plugins/quota/quota-status-settings.h M src/plugins/quota/quota-status.c 2017-07-03 18:31:56 +0300 Aki Tuomi (9f0429766) quota-status: Use pooled memory for globals M src/plugins/quota/quota-status.c 2017-07-03 18:27:53 +0300 Aki Tuomi (133a609ac) lmtp: Use message_detail_address_parse M src/lmtp/commands.c 2017-07-03 19:00:14 +0300 Aki Tuomi (f0eef2301) lib-mail: Add unit test for message detail address parser M src/lib-mail/test-message-address.c 2017-07-03 18:18:36 +0300 Aki Tuomi (145e47d97) lib-mail: Add message_detail_address_parse Parses e.g. username+foo@domain into username@domain with detail foo, when delimiter is set to + M src/lib-mail/message-address.c M src/lib-mail/message-address.h 2017-07-03 21:08:02 +0300 Timo Sirainen (e1777cb59) imapc: Prefech - Initialize cached stream only if needed If the mail is immediately accessed for other purposes (e.g. fetching message flags), there's no need to go through all the trouble of initializing the mail stream. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h 2017-06-30 13:46:22 +0300 Timo Sirainen (3aa1816a6) lib-storage: Fix ITERINDEX to leave \NoSelect parents after deleting child mailbox For example if "a/b" was created and deleted, "a" should be left behind. (Or at least it shouldn't have left "a" to mail root directory and kept it invisible since it didn't exist in index dir.) M src/lib-storage/list/mailbox-list-delete.c 2017-06-26 19:06:26 +0300 Timo Sirainen (265ca0892) dbox: Check mailbox existence from index directory with ITERINDEX M src/lib-storage/index/dbox-common/dbox-storage.c 2017-06-28 19:46:01 +0300 Timo Sirainen (7b1578879) dbox: Use mail_index_header.last_temp_file_scan instead of directory's atime This will be required for the following ITERINDEX change. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c 2017-06-28 19:41:21 +0300 Timo Sirainen (2ecee6ed2) lib-index, lib-storage: Add mail_index_header.last_temp_file_scan Also add index_mailbox_update_last_temp_file_scan() for easily updating it. This is reusing an old "sync timestamp" field. Because it was a timestamp, it doesn't matter if the old data still exists in it. This field could have been added as an extension, but that's more work and this feature is generic enough that it should be useful for many of the mail storage backends. M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index.h M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h 2017-06-26 18:59:17 +0300 Timo Sirainen (c5e2aa314) dbox: Cleanup - reorganize old temp file cleanup code No functional changes. In preparation for the next commits. M src/lib-storage/index/dbox-common/dbox-storage.c 2017-06-26 19:30:11 +0300 Timo Sirainen (a62e12ba4) lib-storage: Check for storage existence from index dir with ITERINDEX The root path creation doesn't really even seem to be necessary, because any mailbox access will automatically mkdir the missing directories anyway. Although writing other files might not work so well, such as mail_attribute_dict that points inside the mail directory. This change simply changes the mailboxes/ directory to be looked up from index directory instead of the mail root directory. It also mkdirs the index/mailboxes/ directory afterwards if it didn't exist. So practically this change shouldn't break anything, since the mailboxes/ directory should always exist for both root and the indexes. M src/lib-storage/mail-storage.c 2017-06-26 18:50:24 +0300 Timo Sirainen (4fce6ce68) lib-storage: mailbox_list_get_permissions() - Use index dir with ITERINDEX M src/lib-storage/mailbox-list.c 2017-06-26 18:46:30 +0300 Timo Sirainen (6763c5f62) lib-storage: mailbox_list_get_permissions() - Use index dir for storage without mails The index dir might still exist. M src/lib-storage/mailbox-list.c 2017-06-26 18:41:27 +0300 Timo Sirainen (4225ae95d) lib-storage: Cleanup - move code to mailbox_list_get_permissions_stat() Comments changed also a bit, but no functional changes. M src/lib-storage/mailbox-list.c 2017-06-26 18:23:01 +0300 Timo Sirainen (2f552aa8f) lib-storage: Cleanup - Use mailbox_permissions_copy() instead of duplicating it M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c 2017-06-26 18:19:17 +0300 Timo Sirainen (5069b6adc) lib-storage: Add mailbox_permissions_copy() M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2017-06-26 20:10:17 +0300 Timo Sirainen (1728ff34e) lib-storage: Add mail_location=..:ITERINDEX This changes mailbox list iteration to work using INDEX directory instead of the normal mail directory. This can be helpful when the indexes are stored on a faster storage. M src/lib-storage/index/index-storage.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2017-06-30 17:51:34 +0300 Timo Sirainen (8b2d740b8) imap: Add more error checking to NOTIFY parameter parsing This should make it clearer to realize when invalid syntax is being used rather than just ignoring the problem. M src/imap/cmd-notify.c 2017-06-30 17:33:15 +0300 Timo Sirainen (bcb321bc6) imap: Fix NOTIFY parameter parsing by reverting earlier change I misread the RFC and wrote broken tests. Reverts 64d2efdc4b0bdf92249840e9db89b91c8dc0f3a3 M src/imap/cmd-notify.c 2017-06-30 15:02:40 +0300 Timo Sirainen (7d2d0ae11) lib-storage: Add BROKENCHAR to mail_location This makes the mailbox_list_settings.broken_char configurable. Mainly useful with imapc when remote server doesn't contain valid mUTF-7 mailbox names. M src/lib-storage/mailbox-list.c 2017-06-30 13:56:54 +0300 Timo Sirainen (0784c6f49) lib-storage: Fix mailbox delete to not delete childrens' INDEX or CONTROL dirs If mail_location had separate INDEX and/or CONTROL set, deleting a mailbox with children caused the childrens' index and/or control directories to be deleted (but the mail/ALT directories weren't). I'm not sure why the _FLAG_MAILBOX_FILES was treated as a special case earlier. It shouldn't make a difference. M src/lib-storage/list/mailbox-list-delete.c 2017-06-27 15:39:12 +0300 Timo Sirainen (d851acd16) lib-storage: mailbox_list_delete_mailbox_nonrecursive() - Fix error handling It should return error on unexpected readdir(), closedir() and unlink() failures. Also fix handling a race condition with another process deleting the mailbox at the same time. M src/lib-storage/list/mailbox-list-delete.c 2017-06-27 16:56:08 +0300 Timo Sirainen (e83bc6137) lib-storage: mailbox_list_delete_trash() - Don't ignore errors M src/lib-storage/list/mailbox-list-delete.c 2017-06-27 16:37:16 +0300 Timo Sirainen (3fb442057) lib-storage: Use mailbox_list_delete_finish_ret() for fs & maildir++ layout Fixes a problem where e.g. index directory existed but mail root didn't, and the mailbox couldn't be fully deleted. This was especially a problem with ITERINDEX enabled. M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c 2017-06-27 16:36:56 +0300 Timo Sirainen (12bd6ddfe) lib-storage: Add mailbox_list_delete_finish_ret() This simplifies deletion logic for mailbox list backends. M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-delete.h 2017-06-27 16:13:34 +0300 Timo Sirainen (a1bef9db6) lib-storage: mailbox_list_delete_finish() - Return whether anything was deleted M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-delete.h 2017-06-27 16:16:21 +0300 Timo Sirainen (3e0b3ae57) lib-storage: Add mailbox_list_get_last_mail_error() M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2017-06-27 15:57:10 +0300 Timo Sirainen (0877bd89b) lib-storage: Add comments to mailbox-list-delete.h M src/lib-storage/list/mailbox-list-delete.h 2017-06-28 23:37:22 +0300 Timo Sirainen (739bebfce) lib: Fix file_create_locked() unit test to delete temp file afterwards Also removed a path string that was never used. M src/lib/test-file-create-locked.c 2017-06-22 01:28:57 +0300 Timo Sirainen (fd8b93ca5) lib-storage: Add VOLATILEDIR setting to mail_location This is useful for creating temporary locks that could exist in tmpfs. Currently this is used for .vsize.lock and dovecot.autoexpunge.lock. M src/lib-storage/mail-storage.c M src/lib-storage/mail-user.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2017-06-22 02:44:12 +0300 Timo Sirainen (55cec51db) lib-storage: Move autoexpunge lock creation to a generic mail_user_lock_file_create() M src/lib-storage/mail-autoexpunge.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2017-06-22 02:33:03 +0300 Timo Sirainen (762d6549b) lib-storage: mailbox_autoexpunge_lock() - Don't hide ENOENT error It means that the user's home directory doesn't exist, which is pretty unexpected. Home directory is supposed to be created when the storage is initialized. M src/lib-storage/mail-autoexpunge.c 2017-06-22 02:32:10 +0300 Timo Sirainen (67c05b671) lib-storage: mailbox_autoexpunge_lock() - small cleanup No functional changes - just reorganizing code and adding comments. M src/lib-storage/mail-autoexpunge.c 2017-06-22 02:24:08 +0300 Timo Sirainen (34f53904b) lib-storage: Use file_lock_set_*_on_free() for dovecot.autoexpunge.lock M src/lib-storage/mail-autoexpunge.c 2017-06-22 02:19:18 +0300 Timo Sirainen (bd94a2a86) lib-storage: Move .vsize.lock creation to a generic mailbox_lock_file_create() M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2017-06-22 02:07:16 +0300 Timo Sirainen (2864ce815) lib-storage: Move .vsize.lock creation to its own function M src/lib-storage/index/index-mailbox-size.c 2017-06-22 02:05:16 +0300 Timo Sirainen (181e90a1e) lib-storage: Use file_lock_set_*_on_free() for .vsize.lock This avoids storing the lock_path and lock_fd separately. M src/lib-storage/index/index-mailbox-size.c 2017-06-22 01:56:18 +0300 Timo Sirainen (99e9dc500) lib-storage: Fix error logging for failing to create .vsize.lock M src/lib-storage/index/index-mailbox-size.c 2017-06-28 17:48:01 +0300 Timo Sirainen (d6e3deea8) lib: file_create_locked() - Add settings to mkdir() missing parent directories M src/lib/file-create-locked.c M src/lib/file-create-locked.h M src/lib/test-file-create-locked.c 2017-06-28 17:40:20 +0300 Timo Sirainen (9a1897228) lib: Add unit test for file_create_locked() M src/lib/Makefile.am A src/lib/test-file-create-locked.c M src/lib/test-lib.inc 2017-06-22 01:52:29 +0300 Timo Sirainen (65f9a90ef) lib: Add file_lock_set_close_on_free() M src/lib/file-lock.c M src/lib/file-lock.h 2017-06-22 01:47:51 +0300 Timo Sirainen (68332e3a4) lib: Add file_lock_set_unlink_on_free() M src/lib/file-lock.c M src/lib/file-lock.h 2017-06-22 10:35:16 +0300 Timo Sirainen (2605b390b) lib: file_create_locked() - update lock path after link() M src/lib/file-create-locked.c 2017-06-22 09:05:06 +0300 Timo Sirainen (d8d93ecd8) lib: Add file_lock_set_path() M src/lib/file-lock.c M src/lib/file-lock.h 2017-06-22 01:42:56 +0300 Timo Sirainen (f1243d775) lib: Add file_lock_get_path() This allows getting the file path from the lock without having to preserve it separately. M src/lib/file-lock.c M src/lib/file-lock.h 2017-06-26 19:19:44 +0300 Timo Sirainen (27d0b2cd1) lib-storage: Fail at startup if root mail directory isn't a directory M src/lib-storage/mail-storage.c 2017-04-07 15:36:58 +0200 Stephan Bosch (22cb9dbe0) lib-ssl-iostream: Fixed deinitialization of openssl library. Previously, it also dereferenced the library when it was never initialized in the first place. M src/lib-ssl-iostream/iostream-openssl-context.c 2017-05-22 17:41:54 +0200 Stephan Bosch (1c85a443b) lib-program-client: Fixed unix socket test suite's test server to properly read input from client. It did not read all available input in the input handler. M src/lib-program-client/test-program-client-unix.c 2017-06-26 19:44:43 +0300 Timo Sirainen (dc24b972f) lib-storage: Don't autocreate mailbox during deletion. Trying to delete a nonexistent autocreated mailbox first created it and then immediately deleted it. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage.c 2017-06-27 14:22:50 +0300 Timo Sirainen (b0f08544a) lib-storage: Make mailbox_is_autocreated() public This also removes duplicated code from acl plugin. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/plugins/acl/acl-mailbox.c 2017-06-27 16:55:34 +0300 Timo Sirainen (50bf6cfe2) sdbox: Don't create index directory when trying to open nonexistent mailboxes M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c 2017-06-28 15:50:11 +0300 Timo Sirainen (29fc8f1dc) pop3-migration: Drop lines with only spaces or tabs from comparison Zimbra drops out those lines from IMAP BODY[HEADER] replies. M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/pop3-migration/test-pop3-migration-plugin.c 2017-01-20 01:10:04 +0100 Stephan Bosch (d4f77de19) lib-http: client: Drop peer immediately if it has no more linked queues and it is not connected and not waiting for a backoff timeout. It is currently unlikely to happen at this point, but it is better to make sure it is handled appropriately. The pending shared HTTP client changes will make this a likely event. This surfaced as a problem for the HTTP proxy. M src/lib-http/http-client-peer.c 2017-06-25 09:10:52 +0300 Timo Sirainen (d7c917c4b) lib-storage: mail_add_temp_wanted_fields() - delay opening stream Allows plugins to call it in mail.get_stream() without infinite loop. M src/lib-storage/index/index-mail.c 2017-06-23 16:45:24 +0200 Stephan Bosch (b5ab29780) global: Fixed missing or out-of-date copyright notices. M src/auth/test-main.c M src/auth/test-mock.c M src/lib-dict/test-dict-sql.c M src/lib-sql/driver-test.c M src/lib/fd-set-nonblock.c M src/lib/net.c M src/lib/test-path-util.c M src/plugins/var-expand-crypt/test-var-expand-crypt.c M src/plugins/var-expand-crypt/var-expand-crypt-plugin.c 2017-06-23 11:15:32 +0300 Timo Sirainen (f3c24c2c9) dsync: Use header hashing version 3 M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2017-06-23 11:02:24 +0300 Timo Sirainen (e17e53f2a) pop3-migration: Replace trailing whitespace removal with new header hashing version This is now done by message_header_hash(), which makes it work correctly also for dsync+imapc. Reverts 0cf3b30b86e6c39f43b8e13a718cd078187ca86d, except for the unit tests. M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/pop3-migration/test-pop3-migration-plugin.c 2017-06-23 11:00:37 +0300 Timo Sirainen (ea03e1762) lib-mail: message_header_hash_more() - add v3 that strips spaces This helps with Zimbra, which strips away trailing whitespaces in BODY[HEADER]. M src/lib-mail/message-header-hash.c M src/lib-mail/message-header-hash.h M src/lib-mail/test-message-header-hash.c 2017-06-23 09:24:40 +0300 Timo Sirainen (14458ea84) lib-mail: test-message-header-hash - add more tests M src/lib-mail/test-message-header-hash.c 2017-06-23 09:14:40 +0300 Timo Sirainen (afad849b4) lib-mail: message_header_hash_more() - refactor to use switch() M src/lib-mail/message-header-hash.c 2017-06-22 11:43:05 +0300 Timo Sirainen (fde14422c) quota: Fix failing again if quota setting has invalid parameters This was broken by the recent quota parameter parsing changes. M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-imapc.c M src/plugins/quota/quota.c 2017-06-22 01:12:56 +0300 Timo Sirainen (65d4c71ad) acl: Don't read/write dovecot-acl-list with acl_globals_only=yes It's only an optimization for the dovecot-acl files, which don't exist with acl_globals_only=yes M src/plugins/acl/acl-backend-vfile-acllist.c 2017-06-21 16:54:25 +0300 Timo Sirainen (0913e6eb7) lib/bits.c: Finish fix for compiling with gcc 3.0 .. 3.3 M src/lib/bits.c 2017-06-21 16:14:14 +0300 Timo Sirainen (33c05298a) lib/bits.h: Fix compiling with gcc 3.0 .. 3.3 According to gcc's online manuals, 3.4 is the first version with __builtin_clzll M src/lib/bits.h 2017-06-21 13:10:19 +0300 Timo Sirainen (05d12810e) fs-randomfail: Set errno=EIO when random failure is triggered Previously the errno wasn't set at all. It was especially bad if it happened to be EAGAIN, because that potentially caused hangs. M src/lib-fs/fs-randomfail.c 2017-06-20 12:11:37 +0300 Sergey Kitov (44c6d46ce) lib-imap: imap_append_nstring_nolf() - fix crash with datastack_pool strings T_BEGIN .. T_END is not used, when string_t is allocated from datastack pool, unit test updated to verify the fix. M src/lib-imap/imap-quote.c M src/lib-imap/test-imap-quote.c 2017-06-19 23:38:35 +0300 Timo Sirainen (95c8d28eb) acl: Fix reading acl_globals_only setting It was being read in wrong place, so it may not have been read at all. M src/plugins/acl/acl-backend.c 2017-06-19 12:05:30 +0300 Timo Sirainen (8a513c80e) director: Fix logging last input/output time when there was no input/output M src/director/director-connection.c 2017-06-19 12:03:13 +0300 Timo Sirainen (00367aee8) director: Fix whitespace position in some log messages M src/director/director-connection.c 2017-06-19 11:30:27 +0300 Timo Sirainen (5714c480b) acl: Add acl_globals_only setting The local dovecot-acl files aren't even attempted to be looked up if this is set. This is mainly useful to avoid unnecessary stat()s to dovecot-acl files that never exist. M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c 2017-06-17 14:39:59 +0300 Timo Sirainen (5052aa061) imap: NOTIFY - Fix potential crash when reading invalid parameters M src/imap/cmd-notify.c 2017-06-17 14:38:22 +0300 Timo Sirainen (64d2efdc4) imap: Fix NOTIFY to parse more than just the first event-group M src/imap/cmd-notify.c 2017-06-19 00:01:17 +0300 Timo Sirainen (906a65113) imap: NOTIFY - Cleanup notify watch timeout handling It's not useful to set the timeout until all the commands are finished. M src/imap/imap-notify.c 2017-06-18 11:14:05 +0300 Timo Sirainen (0081ed0d9) imap: NOTIFY - Fix crash due to not hooking into commands correctly The pre/post hooks aren't always called immediately when commands are created. They're called only after the command input is being read. Call notify hooks explicitly now immediately when commands are allocated. Fixes a panic with for example: a notify set (selected (Messagenew (uid flags) MessageExpunge FlagChange) personal (MessageNew MessageExpunge FlagChange)) b select inbox c store 1 +flags \deleted d expunge e append inbox {10} Which crashed with: Panic: file imap-notify.c: line 397 (imap_notify_callback): assertion failed: (client->command_queue_size == 0) M src/imap/imap-client.c M src/imap/imap-notify.c M src/imap/imap-notify.h 2017-06-18 11:19:28 +0300 Timo Sirainen (4693a5811) imap: NOTIFY - Fix delayed setting notification callback This was done in command-post hook, but then when command was soon freed the callback was immediately added. M src/imap/imap-notify.c 2017-06-18 13:07:14 +0300 Timo Sirainen (77124c580) fts: Log when indexing requires adding more mails to index than requested This should mainly happen when FTS indexing is requested for a virtual mailbox. M src/plugins/fts/fts-storage.c 2017-06-18 12:18:31 +0300 Timo Sirainen (1c197c242) indexer-worker: Log first and last UID of which mails were indexed M src/indexer/master-connection.c 2017-06-18 13:04:43 +0300 Timo Sirainen (14eac90de) indexer-worker: Log number of indexing attempts in transaction commit failure This could be interesting if the number is large. M src/indexer/master-connection.c 2017-06-18 13:00:57 +0300 Timo Sirainen (e4065b371) indexer-worker: Log "Indexed .. messages" even if mailbox_search fails The transaction is still being committed. M src/indexer/master-connection.c 2017-06-15 09:18:03 +0200 Stephan Bosch (176fd2cdb) lib: Fix ostream-buffer to return buffer contents size in o_stream_get_buffer_used_size(). This is necessary for querying o_stream_get_buffer_avail_size() with respect to a limit set earlier using o_stream_set_max_buffer_size(). This is mainly useful for test suites. M src/lib/ostream-buffer.c 2017-06-16 14:34:24 +0300 Timo Sirainen (b84eff65e) *-login: Add client_vfuncs.free() that is called when client refcount=0 This can be useful for plugins that want to run something after proxying ends. Use an empty default function so plugins can call super.free() without having to check if it's NULL. M src/imap-login/imap-login-client.c M src/imap-urlauth/imap-urlauth-login.c M src/login-common/client-common.c M src/login-common/client-common.h M src/pop3-login/client.c 2017-06-15 12:46:47 +0300 Timo Sirainen (8ed26469c) imap-login: Fix storing ID NIL values into client_id M src/imap-login/imap-login-client.c 2017-06-14 10:44:36 +0300 Sergey Kitov (777019a07) lib-imap: imap_bodystructure_write is changed to skip CRs and LFs. M src/lib-imap/imap-bodystructure.c 2017-06-14 10:44:01 +0300 Sergey Kitov (0b9eda80c) lib-imap: imap_write_envelope changed to skip CRs and LFs. M src/lib-imap/imap-envelope.c 2017-06-14 10:41:04 +0300 Sergey Kitov (be0c9927c) lib-imap: added imap_append_nstring_nolf(), which skips CRs and LFs. M src/lib-imap/imap-quote.c M src/lib-imap/imap-quote.h M src/lib-imap/test-imap-quote.c 2017-06-13 10:05:23 +0300 Sergey Kitov (af37e0125) lib-imap: escaping and quote/literal tests for imap_append_nstring() M src/lib-imap/test-imap-quote.c 2017-06-13 00:57:08 +0300 Timo Sirainen (fe080d248) imapc: Fix prefetching specific headers FETCH BODY[HEADER.FIELDS ...] shouldn't be used if imapc_features doesn't include fetch-headers. Also neither this nor BODY[HEADER] should be sent if we already have header/body stream. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2017-06-13 00:55:36 +0300 Timo Sirainen (25fecf139) imapc: Avoid sending FETCH BODY[HEADER] when BODY[] is already being fetched This probably only shows up in some special situations with plugins. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2017-06-13 17:18:17 +0300 Timo Sirainen (0dc3c49bc) lib-master: anvil_client_query() delay calling callback on failures This fixes crash in lmtp on anvil connect failure where the callback wasn't expecting to be called so early. M src/lib-master/anvil-client.c 2017-06-14 11:47:00 +0300 Timo Sirainen (9f6686c87) imap-login: Remove duplicate spaces between ID x-forward parameters M src/imap-login/imap-proxy.c 2017-06-14 10:50:38 +0300 Timo Sirainen (fa7d40263) imap-login: Fix crash in ID if trusted client sends NIL value to internal field Fixes: Panic: imap-login: file imap-login-client.c: line 215 (cmd_id_handle_keyvalue): assertion failed: (client_id_str == !client_id_reserved_word(key)) M src/imap-login/imap-login-client.c 2017-06-13 21:00:23 +0300 Timo Sirainen (df74814b1) dsync: Fix panic if syncing fails during attribute iteration Fixes: Panic: file dict.c: line 104 (dict_deinit): assertion failed: (dict->iter_count == 0) M src/doveadm/dsync/dsync-mailbox-export.c 2017-06-13 22:14:11 +0300 Timo Sirainen (3da982573) lib-index: Fix cache lookups from uncommitted transactions with in-memory indexes This especially fixes mail_get_header_stream() with imapc and imapc_features=fetch-headers, because it works by first fetching the specific headers and putting them to the cache transaction, then later on relying on index_mail_get_header_stream() to get them from the transaction. Before this fix they wouldn't be found, which triggered another unnecessary FETCH BODY.PEEK[HEADER]. M src/lib-index/mail-cache-transaction.c 2017-06-13 21:54:00 +0300 Timo Sirainen (5695ec03a) lib-mail: istream-header-filter - Fix HEADER_FILTER_ADD_MISSING_EOH with empty input The result for "" should be "\n", not "\n\n". The second "\n" would belong to the mail body. This fixes calculating hashes for incremental dsync when mail didn't have Date or Message-ID headers, resulting in e.g.: Warning: Deleting mailbox 'INBOX': UID=1 already exists locally for a different mail: Headers hashes don't match (e1c06d85ae7b8b032bef47e42e4c08f9 vs 68b329da9893e34099c7d8ad5cb9c940) M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2017-06-14 03:21:19 +0300 Timo Sirainen (159de4e2c) lib: istream-seekable - Fix reading when parent stream's content is larger than max_buffer_size When writing the parent stream to fd and trying to read it back, it would try to enforce the max_buffer_size and fail with: istream-seekable: Couldn't read back in-memory input ...: buffer full But since the data was already in buffer, istream-seekable shouldn't try to enforce it at this point anymore. M src/lib/istream-seekable.c 2017-06-13 18:26:26 +0300 Timo Sirainen (0f7b5e10f) lib-oauth2: Handle non-2xx/4xx results for token validation without crash Fixes: Panic: file oauth2-token-validate.c: line 33 (oauth2_token_validate_continue): assertion failed: (array_is_created(&req->fields)) M src/lib-oauth2/oauth2-token-validate.c 2017-06-12 22:52:56 +0300 Timo Sirainen (edfdc577f) *-login: Add client_vfuncs.input_next_cmd() This allows plugins to hook into all the pre-login commands. For example with imap-login most of the commands could already be hooked into, except for ID and AUTHENTICATE because their parameters reading is handled specially. This allows hooking into them as well. This is actually internal to all the login binaries, so it wouldn't have to be in login-common. However, login-common already has all the code to handle overriding functions nicely and this is a rather useful feature for all the protocols anyway, so it's easier this way and not too ugly. M src/imap-login/imap-login-client.c M src/imap-urlauth/imap-urlauth-login.c M src/login-common/client-common.h M src/pop3-login/client.c 2017-06-12 22:51:12 +0300 Timo Sirainen (c57b69b83) pop3-login: Cleanup - move command handling to pop3_client_input_next_cmd() M src/pop3-login/client.c 2017-06-12 13:45:33 +0300 Sergey Kitov (9b2e48654) imap: command_stats_start call is added for unknown commands. This makes timing shown in reply to unknown commands correct M src/imap/imap-client.c M src/imap/imap-commands.c M src/imap/imap-commands.h 2017-06-12 23:45:05 +0300 Timo Sirainen (a44595f7b) push-notification: Switch to main ioloop while calling drivers' commit callbacks There aren't any guarantees what ioloop happens to be active at the time the commit is called. The active ioloop can also be destroyed early on, which can cause an I/O leak and crashes later on. M src/plugins/push-notification/push-notification-plugin.c 2017-06-12 23:20:12 +0300 Timo Sirainen (5caf685b6) imap: Fix pipelining commands with SEARCH If the SEARCH wasn't a long-running one, it ends with going to sync. The command state shouldn't then be changed to _WAIT_EXTERNAL. M src/imap/imap-search.c 2017-06-12 17:34:59 +0300 Josef 'Jeff' Sipek (401f3220d) lib: add explicit casts to byteorder macros Some consumers of lib.h are in C++ and therefore they try to compile byteorder.h as C++ code. C++ compilers don't like the implicit void * -> struct anything * conversion, so we squelch those by adding explicit casts. M src/lib/byteorder.h 2017-06-12 14:35:22 +0300 Timo Sirainen (d82a985d9) imapc: If mailbox iteration fails, make sure error message isn't lost. M src/lib-storage/index/imapc/imapc-list.c 2017-06-12 14:33:46 +0300 Timo Sirainen (916c9c1b8) lib-storage: Fail mailbox list iteration early if it fails to get INBOX flags The resulting INBOX reply could be wrong in that case. Also with imapc if the remote server is down, this causes two connection errors instead of just one. M src/lib-storage/list/mailbox-list-iter.c 2017-06-12 14:16:13 +0300 Timo Sirainen (873a5bec8) lib-storage: If mailbox list iteration fails, don't add INBOX It possibly should have been returned by the list iteration itself and we could be returning it wrong here. Also calling this causes imapc to lost the error message in mailbox_list. M src/lib-storage/list/mailbox-list-iter.c 2017-06-12 12:18:28 +0300 Timo Sirainen (a2dd3a0de) imapc: Don't reconnect on DELETE if auth failure was already seen. M src/lib-storage/index/imapc/imapc-list.c 2017-06-12 12:16:19 +0300 Timo Sirainen (f94abb02d) imapc: Don't reconnect on STATUS if auth failure was already seen. M src/lib-storage/index/imapc/imapc-storage.c 2017-06-12 11:57:52 +0300 Timo Sirainen (77ea60d15) imapc: Remove root_sep_lookup_failed cache The auth_failed_* should already be enough for this. This removal also fixes the storage error message to be auth_failed_reason when possible. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h 2017-06-12 12:07:52 +0300 Timo Sirainen (d824b1ac4) imapc: Check for auth failures when saving messages First, don't even attempt an APPEND if we've already seen an auth failure. Second, if APPEND does fail because of auth error, set the correct error to storage. M src/lib-storage/index/imapc/imapc-save.c 2017-06-12 12:03:39 +0300 Timo Sirainen (68e81f068) imapc: Fix APPEND error message to include APPEND, not COPY M src/lib-storage/index/imapc/imapc-save.c 2017-06-12 11:40:03 +0300 Timo Sirainen (ab838f155) imapc: Make sure storage error has the proper auth failure error string The first failed command always had the correct error string, but the following failed commands just returned -1 without updating storage error. The storage error could have been something completely different by then. M src/lib-storage/index/imapc/imapc-storage.c 2017-06-12 11:33:38 +0300 Timo Sirainen (28576b628) imapc: Cleanup - Rename auth_error to auth_failed_reason for consistency M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2017-06-12 11:32:23 +0300 Timo Sirainen (be21b9e65) imapc: Change auth_failed boolean to more specific auth_failed_state Since we now rely on auth_failed_state being initialized to zero, explicitly set IMAPC_COMMAND_STATE_OK to be defined as 0. M src/lib-imap-client/imapc-client.h M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2017-06-12 11:05:31 +0300 Timo Sirainen (a76f1c806) imapc: Remove auth_failed check from imapc_list_get_storage_name() Reverts 9949dc3649ac7a00289f6bf0662c793bee3d4286. It doesn't seem to be actually needed at least now, and it's breaking: * SELECT INBOX -> failure due to remote server being down * SELECT INBOX -> NO [CANNOT] Invalid mailbox name: Name is empty M src/lib-storage/index/imapc/imapc-list.c 2017-06-08 14:49:56 +0300 Josef 'Jeff' Sipek (b9e830a81) global: use new byte ordering API M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/dsync/dsync-mailbox-state.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-zlib.c M src/lib-dcrypt/istream-decrypt.c M src/lib-index/mail-index-util.c M src/lib-index/mailbox-log.c M src/lib-ntlm/ntlm-des.c M src/lib/test-guid.c 2017-06-08 13:20:18 +0300 Josef 'Jeff' Sipek (c9d76e2ba) lib: import byte swapping & endian converting functions M src/lib/Makefile.am A src/lib/byteorder.h M src/lib/lib.h A src/lib/test-byteorder.c M src/lib/test-lib.inc 2017-06-12 14:24:59 +0300 Timo Sirainen (0cf3b30b8) pop3-migration: Strip trailing spaces from headers when calculating hash Fixes matching mails with Zimbra. M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/pop3-migration/test-pop3-migration-plugin.c 2017-06-08 20:34:39 +0300 Timo Sirainen (f4e66312c) imap-quota: If quota lookups fail, return NO for GETQUOTA/GETQUOTAROOT M src/plugins/imap-quota/imap-quota-plugin.c 2017-06-08 20:34:27 +0300 Timo Sirainen (c3785e2a5) quota: Update comments in quota.h M src/plugins/quota/quota.h 2017-06-08 20:25:11 +0300 Timo Sirainen (bd389ead3) quota: quota_root_iter_next() - Iterate all visible roots Don't try to skip the roots that don't have an active quota. imap_quota plugin does the skipping now itself, and quota_clone shouldn't really be even used with more than one quota root. M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2017-06-08 20:24:26 +0300 Timo Sirainen (f162f350e) imap-quota: If quota root doesn't have any quotas, don't send empty QUOTA reply For example if GETQUOTA is asked for fs quota, but the user doesn't have fs quota enabled. M src/plugins/imap-quota/imap-quota-plugin.c 2017-06-08 20:29:05 +0300 Timo Sirainen (a022e47f4) quota-clone: Don't clone quota resources that aren't enabled. They would always just be zeros anyway, so this makes the update slightly more efficient. Although practically this only matters with dirsize and fs quotas, which people generally don't use with quota_clone. M src/plugins/quota-clone/quota-clone-plugin.c 2017-06-09 15:30:02 +0300 Josef 'Jeff' Sipek (eec34b386) lib: correct comment in path_normalize Don't blame static analyzers for doing their job. M src/lib/path-util.c 2017-06-12 12:44:37 +0300 Timo Sirainen (5209c4303) welcome: Fix sending parameters to welcome script. Broken by f38b0dafbffa9d79542e36b4b3e598ed4115e5a3 M src/plugins/welcome/welcome-plugin.c 2017-06-08 20:39:47 +0300 Timo Sirainen (a345bc2d9) lib-imap-client: Fix hang when imapc_client_get_capabilities() is called without connection M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/test-imapc-client.c 2017-06-06 15:31:01 +0300 Timo Sirainen (5b809b976) lib-index: Don't ignore mail_transaction_log_move_to_memory() failure M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c M src/lib-index/mail-transaction-log.h 2017-06-10 11:40:43 +0300 Timo Sirainen (7fc4f555a) lib-http: Compiling fix to host->ips reallocation. M src/lib-http/http-client-host.c 2017-06-09 23:42:34 +0300 Timo Sirainen (15c365ef8) quota-fs: Make sure quota calculations don't overflow in old systems Patch by M. Balridge M src/plugins/quota/quota-fs.c 2017-06-09 23:32:28 +0300 Timo Sirainen (2e68d078b) lib: ioloop-kqueue - Improve kevent() panic log message M src/lib/ioloop-kqueue.c 2017-06-08 01:03:13 +0300 Timo Sirainen (4ecee121e) doveconf: Preserve import_environment when execing binary This allows import_environment setting to work with doveadm and other standalone tools. M src/config/config-request.c M src/config/config-request.h M src/config/doveconf.c 2017-06-08 00:40:12 +0300 Timo Sirainen (de266e09d) lib-master, config: Move the responsibility of cleaning environment to doveconf M src/config/doveconf.c M src/lib-master/master-service-settings.c 2017-06-08 00:35:08 +0300 Timo Sirainen (ed6b37eee) lib-master: Use master_service_import_environment() for preserving environments M src/lib-master/master-service-settings.c 2017-06-08 00:33:32 +0300 Timo Sirainen (c6dfc77cb) lib-master: master_service_import_environment() - use a data stack frame This way the caller doesn't have to do it. M src/lib-master/master-service.c M src/master/main.c 2017-06-08 00:24:19 +0300 Timo Sirainen (8a0a8c982) master: Move master_set_import_environment() to lib-master M src/lib-master/master-service.c M src/lib-master/master-service.h M src/master/main.c 2017-06-08 00:20:38 +0300 Timo Sirainen (18be69638) master: Append to existing DOVECOT_PRESERVE_ENVS instead of overwriting it M src/master/main.c 2017-06-08 00:14:30 +0300 Timo Sirainen (8d7c78157) master: Move import_environment setting to lib-master's master_service_settings M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/master/main.c M src/master/master-settings.c M src/master/master-settings.h 2017-02-04 20:45:30 +0200 Timo Sirainen (ae6a14ce9) lib-http: Try to reuse memory for host->ips allocation. If the host already had an IP, most of the time ips_count doesn't change anymore. M src/lib-http/http-client-host.c 2017-06-10 10:35:54 +0300 Timo Sirainen (dead275d5) lib: Fix test-path-util unit test with some cwd path lengths The component-component directory might not have been created at all, in which case the following symlink creations would fail since they were already created to the same directory in a previous test. M src/lib/test-path-util.c 2017-06-09 18:10:14 +0300 Timo Sirainen (83d6ad2c8) mail-crypt-acl: Fix assert-crash due to missing namespace initialization This was broken by e031d9aaae59a9f79710dc1138b76b69272615a3. M src/plugins/mail-crypt/mail-crypt-acl-plugin.c 2017-06-09 16:18:56 +0300 Timo Sirainen (f165d31e1) quota: count backend - Don't ignore mailbox list iteration errors M src/plugins/quota/quota-count.c 2017-06-09 14:08:22 +0300 Aki Tuomi (7ebda61d3) lib: Fix test-path-util.c formatting to conform coding style M src/lib/test-path-util.c 2017-06-09 13:15:35 +0300 Aki Tuomi (dfe2b5d36) lib: Fix infinite loop in path-util.c Infinite loop was reached if the path was longer than 128 bytes, and the 128 boundary was in middle of path name component. M src/lib/path-util.c M src/lib/test-path-util.c 2017-06-09 12:07:00 +0300 Timo Sirainen (f93622233) quota: Fix negative quota_warnings with count backend For example this never triggered: quota_warning = -messages=100%% quota-warning %u -100 The change to quota_alloc() to update the count_used doesn't seem to actually fix anything right now, but it makes the code more correct. M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2017-06-09 12:42:51 +0300 Timo Sirainen (6ffa4fc00) lib-storage: Fix sort index writing to not leave sort_id=0 gaps This fixes errors like: Error: INBOX: Broken sort-f indexes, resetting M src/lib-storage/index/index-sort-string.c 2017-06-09 12:25:36 +0300 Timo Sirainen (96c7d2a59) lib-storage: Add details to "Broken sort-* indexes" error M src/lib-storage/index/index-sort-string.c 2017-06-09 15:22:56 +0300 Aki Tuomi (7aa2660e7) dsync: Display namespace locations on init in debug mode This simplifies debugging as you can more easily tell which brain is using which mail location. M src/doveadm/dsync/dsync-brain-mailbox-tree.c 2017-06-09 14:31:15 +0300 Timo Sirainen (8a5fe0c06) lib-storage: Fix setting the correct cache record corrupted It was mixing UIDs and sequences, so a wrong mail could have been set corrupted or it could have crashed with: Panic: file mail-index-transaction-update.c: line 1018 (mail_index_update_ext): assertion failed: (seq > 0 && (seq <= mail_index_view_get_messages_count(t->view) || seq <= t->last_new_seq)) M src/lib-storage/mail-storage.c 2017-06-04 13:07:48 +0300 Timo Sirainen (7076aac11) quota: Remove unused quota_free() M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2017-06-04 13:06:06 +0300 Timo Sirainen (27569c07b) quota: Fix quota_vsizes=yes to work with all backends M src/plugins/quota/quota.c 2017-06-07 14:37:47 +0300 Josef 'Jeff' Sipek (df3ba6386) lib-storage: simplify mailbox_get_path_to() Instead of special casing MAILBOX_LIST_PATH_TYPE_{MAILBOX,INDEX}, we can use a common helper to remove code duplication. M src/lib-storage/mail-storage.c 2017-05-31 00:07:46 +0300 Timo Sirainen (b01d001df) imapc: Don't send UID FETCH 1:* after SELECT if mailbox is empty M src/lib-storage/index/imapc/imapc-sync.c 2017-06-07 19:54:10 +0300 Timo Sirainen (e5834cb5a) lib-storage: test-mail-search-args-simplify - test with initialized args M src/lib-storage/test-mail-search-args-simplify.c 2017-06-07 19:53:00 +0300 Timo Sirainen (1270cb6b6) lib-storage: mail_search_args_simplify() - Fix merging already-initialized keywords It was deinitializing the arg that was kept instead of the one being removed. M src/lib-storage/mail-search-args-simplify.c 2017-06-07 19:37:46 +0300 Timo Sirainen (b8b005887) lib-storage: Fix mail_search_args_simplify() to not deinit too many args Removing an arg should deinit it, but not its following siblings. M src/lib-storage/mail-search-args-simplify.c 2017-06-07 19:36:19 +0300 Timo Sirainen (1db237d24) lib-storage: Add mail_search_arg_one_deinit() M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h 2017-06-07 23:47:56 +0300 Timo Sirainen (352bbeb5a) master: Don't include imap-hibernate when counting auth's max client_limit imap-hibernate doesn't do any auth connections, so it doesn't need it. It's a bit ugly to add an explicit service name comparison here, but there didn't really seem to be many other good choices: * Could have removed protocol=imap from imap-hibernate. I was close to doing this, but maybe it's better that imap-only processes would have their protocol set to "imap". * Could have added a new service type, but seems pretty unnecessary to add some kind of a "nonauth" just for this. A reverse "needs-auth" might have been ok though. Perhaps in future we'll implement proper dependencies across services and those dependencies could be used to calculate this limit more precisely. M src/master/master-settings.c 2017-06-07 10:17:55 +0300 Timo Sirainen (8322e7400) lib: Add unit tests for p_strdup*() M src/lib/test-strfuncs.c 2017-05-30 18:25:50 +0300 Timo Sirainen (cb1e7cb67) lib-storage: Fix crash in mail_get_header_stream() when its previous stream wasn't at EOF At least this could have happened when indexes were disabled and running: FETCH 1 (envelope body.peek[header.fields (foo)] bodystructure) Fixes: Panic: file index-mail-headers.c: line 198 (index_mail_parse_header_init): assertion failed: (!mail->data.header_parser_initialized) M src/lib-storage/index/index-mail-headers.c 2017-06-07 11:35:18 +0300 Timo Sirainen (e6d4f540b) global: Use i_realloc_type() wherever possible M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-transaction.c M src/lib/ioloop-poll.c 2017-06-07 11:24:38 +0300 Timo Sirainen (6509aa730) lib: Add test-mempool unit test. It verifies that the p_new() and p_realloc_type() handle overflows correctly. test-malloc-overflow already does this for the low-level MALLOC_*() macros, but here we're cheking that the actually used memory allocation macros also work. M src/lib/Makefile.am M src/lib/test-lib.inc M src/lib/test-mempool-alloconly.c A src/lib/test-mempool.c 2017-06-07 11:24:03 +0300 Timo Sirainen (71b92ca8e) lib: Add i_realloc_type() for i_realloc() that checks for overflows M src/lib/Makefile.am M src/lib/imem.h M src/lib/mempool.h A src/lib/test-imem.c M src/lib/test-lib.inc 2017-06-08 11:35:58 +0300 Timo Sirainen (d8ed8d558) imapc: Fix potential crash if initial sync fails. Happened at least if mailbox had 0 mails and a failing mailbox_sync() was called twice. Fixes: Panic: file imapc-sync.c: line 477 (imapc_sync_index): assertion failed: (mbox->sync_fetch_first_uid == 1) M src/lib-storage/index/imapc/imapc-sync.c 2017-06-07 18:10:10 +0300 Timo Sirainen (e106213ae) lib-mail: message_address_parse() - Fix fill_missing==TRUE handling Mainly MISSING_DOMAIN wasn't set in all situations. Also added unit tests. M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2017-06-07 15:33:42 +0300 Timo Sirainen (543041153) lib-mail: message_address_parse() - Handle invalid standalone phrases better We'll treat "local-part" (without quotes) as a mailbox even without @domain, but if it continues with anything or if it's a quoted-string, we'll treat it as a display-name instead. This is probably better than just converting everything to display-name, since there are likely to exist headers like "To: localuser" M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2017-06-07 15:22:22 +0300 Timo Sirainen (f55b07916) lib-mail: Improve test-message-address to test invalid addresses in lists Test in both a group and list of addresses. M src/lib-mail/test-message-address.c 2017-06-07 15:21:10 +0300 Timo Sirainen (52818a09c) lib-mail: message_address_parse() - don't stop at <> when parsing address lists And similarly don't stop at <@domain> M src/lib-mail/message-address.c 2017-06-07 15:08:27 +0300 Timo Sirainen (22cf8b6ac) lib-mail: message_address_parse() - don't stop at invalid addresses when parsing group Also the end-group's message_address shouldn't have invalid_syntax=TRUE, except when we didn't actually find the ending ';' M src/lib-mail/message-address.c 2017-06-07 14:57:12 +0300 Timo Sirainen (4c9294fcb) lib-mail: message_address_parse() - Fix reading out-of-bounds read on invalid input M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2017-06-07 13:34:39 +0300 Timo Sirainen (3cb2f0951) lib-mail: message_address_parse() - Remove unnecessary NULL checks message_address_parse() always initialized rfc822_parser_init() with last_comment string. M src/lib-mail/message-address.c 2017-06-07 13:19:40 +0300 Timo Sirainen (6b8f4863b) lib-mail: test-message-address - add more and better organized tests M src/lib-mail/test-message-address.c 2017-06-07 12:58:21 +0300 Timo Sirainen (58a770f1e) lib-mail: message_address_parse() - Add INVALID_ROUTE/SYNTAX_ERROR only if fill_missing==TRUE This allows message_address_write() to write the parsed invalid address in a way that at least somewhat resembles the original input. M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2017-06-07 12:42:28 +0300 Timo Sirainen (dc8c1e74e) lib-mail: message_address_write() - Write empy username as "" We can't output <@domain> because that conflicts with the <@route:...> syntax. Also ""@domain seems to be a valid address. M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2017-06-07 12:37:09 +0300 Timo Sirainen (5a8ee853d) lib-mail: message_address_write() - Always write as output This is the standard format nowadays, so don't convert into plain user@domain. M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2017-06-07 12:35:35 +0300 Timo Sirainen (ffc8c62c4) lib-mail: message_address_write() - Don't write empty <> M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2017-06-07 12:34:17 +0300 Timo Sirainen (6a2a171ae) lib-mail: message_address_write() - Don't add '@' if domain is missing M src/lib-mail/message-address.c M src/lib-mail/test-message-address.c 2017-06-07 12:33:10 +0300 Timo Sirainen (a8ebb72c0) lib-mail: test-message-address - Test also writing invalid addresses M src/lib-mail/test-message-address.c 2017-06-07 12:01:07 +0300 Timo Sirainen (18a2214ee) lib-mail: test-message-address cleanup Merge input and output into the same struct to make it clearer. M src/lib-mail/test-message-address.c 2017-06-05 14:21:23 +0300 Josef 'Jeff' Sipek (c536bf226) lib: test for guid_128_generate() time handling Make sure that guids always increase regardless of what is happening to the time. M src/lib/test-guid.c 2017-06-05 12:55:56 +0300 Josef 'Jeff' Sipek (8b2aaea36) lib: guid_128_generate() shouldn't generate invalid timestamps The nsec validity check must take into account the soon-to-be-done increment. M src/lib/guid.c 2017-06-05 12:53:23 +0300 Josef 'Jeff' Sipek (c104ea8f1) lib: guid_128_generate() needs to correctly convert usecs to nsecs The timestamp in the guid starts off with real time, but "runs ahead" if a lot of guids are generated. If not many guids are being generated, the timestamp is fast-forwarded to the current ioloop_timeval. The buggy comparison prevented fast forwarding when tv_sec matched, but tv_nsec value was > 0 (which was true most of the time). M src/lib/guid.c 2017-05-31 14:32:30 +0300 Sergey Kitov (e8760ad57) quota: assertion for *args != NULL is added in order to avoid warning from static analyzer and *args[0] changed to (*args)[0] M src/plugins/quota/quota.c 2017-06-06 13:59:14 +0300 Aki Tuomi (4c4973200) dict-cdb: Add simple iteration support M src/lib-dict/dict-cdb.c 2017-06-06 17:18:27 +0300 Timo Sirainen (52b52b5f9) lib-index: Fix reset_id handling in mail_cache_get_missing_reason() cache Broken by bd897f82a5d9b00ba256b462d2056c2dc7df257c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-private.h 2017-04-07 09:19:02 +0300 Timo Sirainen (01f121754) lib: test-utc-mktime: Remove duplicate test Also fixes a compiler warning when time_t is signed 32bit. M src/lib/test-utc-mktime.c 2017-06-06 09:39:34 +0300 Timo Sirainen (f976c38f0) lib-storage: Fix assert-crash in SORT caused by earlier changes Broken by 0a6a527f0c42b5478d80ac53ab357885676fd516 Fixes: Panic: file index-sort-string.c: line 668 (index_sort_add_ids_range): assertion failed: (str != NULL) M src/lib-storage/index/index-sort-string.c 2017-06-06 12:47:53 +0300 Aki Tuomi (bfc3dd435) lib-oauth2: Make sure fields are always initialized M src/lib-oauth2/oauth2-introspect.c M src/lib-oauth2/oauth2-refresh.c M src/lib-oauth2/oauth2-token-validate.c 2017-06-06 12:44:55 +0300 Aki Tuomi (41b272000) lib-oauth2: Accept empty responses M src/lib-oauth2/oauth2.c 2017-06-05 21:53:18 +0300 Timo Sirainen (bd897f82a) lib-index: Add cache to mail_cache_get_missing_reason() This avoids excessive CPU usage when it's called in a loop for many mails. M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-private.h 2017-06-05 21:44:45 +0300 Timo Sirainen (adef31eb0) lib-index: mail_cache_get_missing_reason() - Minor code cleanup M src/lib-index/mail-cache-lookup.c 2017-06-05 21:09:51 +0300 Timo Sirainen (0a6a527f0) lib-storage: Optimize error handling for SORT If a lot of mails have failed in a large mailbox, this check reduces the CPU usage significantly. M src/lib-storage/index/index-sort-string.c 2017-06-05 21:07:32 +0300 Timo Sirainen (91ede7759) lib-storage: Sort code cleanup - Change index_sort_get_string() to return bool None of the callers cared about the difference between "expunged" vs "error". M src/lib-storage/index/index-sort-string.c 2017-06-05 21:05:07 +0300 Timo Sirainen (1a229e3e1) lib-storage: Sort code cleanup - pass node to index_sort_get_string() M src/lib-storage/index/index-sort-string.c 2017-06-05 20:14:54 +0300 Timo Sirainen (646800dd3) lib-storage: Make sure istream-mail doesn't replace an existing storage error I'm not aware of it actually having broken anything, so this is just for extra safety. M src/lib-storage/index/istream-mail.c 2017-06-05 20:12:43 +0300 Timo Sirainen (5774da7bb) lib-storage: Fix SORT error message when reaching mail_sort_max_read_count It should have been: NO [LIMIT] Requested sort would have taken too long Instead it was just: NO [SERVERBUG] Mail field not cached It was broken for CC, FROM, TO, SUBJECT, DISPLAYFROM and DISPLAYTO. The numeric sorting was working correctly. M src/lib-storage/index/index-sort.c 2017-06-05 19:05:58 +0300 Timo Sirainen (6f380c1e8) push-notification: Fix crash in OX driver's deinit The http_client doesn't always exist. M src/plugins/push-notification/push-notification-driver-ox.c 2017-06-05 12:14:57 +0300 Aki Tuomi (b20202007) auth: Access always first entry when flushing failures The code is deleting the first item after accessing it, and then moving forward. It will eventually go beyond the array and get NULL ptr and fail. Instead we need to always get the first item, since the array deletion is moving the queued items forward. Broken by e18b4e41 M src/auth/auth-request-handler.c 2017-05-30 16:23:28 +0300 Timo Sirainen (6215a7ed0) lib-auth: Code cleanup - remove unnecessary code Besides being unnecessary, it was also obsolete since not all the strings were p_strdup()ed. M src/lib-auth/auth-client-request.c 2017-05-23 14:12:49 +0300 Josef 'Jeff' Sipek (07470e90d) pop3: send back auth reply sooner If possible (i.e., pop3_lock_session=no), we can send back the OK response earlier. M src/pop3/main.c 2017-05-23 13:01:48 +0300 Josef 'Jeff' Sipek (bd5cf4556) pop3: initialize namespaces explicitly (instead of relying on mail user initialization to instantiate them for us) M src/pop3/main.c M src/pop3/pop3-client.c 2017-05-19 10:58:18 +0300 Josef 'Jeff' Sipek (11b8ec158) pop3: client_create_from_input shouldn't process input This makes the pop3 code resemble the imap code more. Making the subsequent changes easier. M src/pop3/main.c 2017-05-19 10:51:22 +0300 Josef 'Jeff' Sipek (6616907d9) pop3: client_create_from_input should return the client struct This makes the code more similar to imap's, making subsequent changes easier. M src/pop3/main.c 2017-05-19 10:46:05 +0300 Josef 'Jeff' Sipek (813009c43) pop3: rename login_client_connected() client arg to login_client This makes the next commit cleaner. M src/pop3/main.c 2017-05-19 10:42:03 +0300 Josef 'Jeff' Sipek (0f0bf444b) pop3: move pop3 session locking out of client_create As a result, we can directly return the client structure (instead of passing it back via a _r arg). This makes the pop3 client_create look more like the imap version. M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-client.h 2017-05-30 10:37:24 +0300 Timo Sirainen (be97d7e54) lib-imap-client: Fix test-imapc-client unit test to work on OSX connect() to port 0 fails in it, so for the "connect failure" test first open a random free listener port and then close it. Hopefully nothing else reopens it in the mean time. M src/lib-imap-client/test-imapc-client.c 2017-05-30 10:28:43 +0300 Timo Sirainen (796beea86) lib: test-path-util unit test - small fixes and cleanups Don't use /tmp, especially because on OSX it's a symlink to /private/tmp/, which causes these tests to fail. M src/lib/test-path-util.c 2017-05-31 14:27:16 +0300 Timo Sirainen (5c8dec7f6) director: Use longer timeout for receiving user list in handshake The sender also has a send timeout, so this allows the sender to abort early and give a nicer error message. M src/director/director-connection.c 2017-05-31 13:42:31 +0300 Timo Sirainen (1ef9754a5) director: Log more connection state information on handshaking errors M src/director/director-connection.c 2017-05-31 13:17:37 +0300 Timo Sirainen (7fd22d552) director: Use more accurate timestamps for handshake timeout logging There could be some time between the create, connect and when ME was received. M src/director/director-connection.c 2017-05-31 13:15:04 +0300 Timo Sirainen (6ccc7f584) director: Fix "sending handshake timed out" error to be actually logged io was never NULL here, so it was never logged. M src/director/director-connection.c 2017-05-31 13:11:08 +0300 Timo Sirainen (5a530f778) director: Fix handshake timeout lengths They weren't too bad, but also they weren't what the #defines described. Also added a separate connect() timeout. M src/director/director-connection.c 2017-05-30 21:57:06 +0300 Timo Sirainen (f6066a48b) quota: Fix imapc backend not to try to find out mail's size. This removes unnecessary FETCH RFC822.SIZE command sent to server when expunging mails. M src/plugins/quota/quota-imapc.c 2017-05-31 00:00:32 +0300 Timo Sirainen (cb9a2c8e2) imapc: SEARCH - Don't add parenthesis around OR There's no need to write "(OR a b)" when "OR a b" works just the same. M src/lib-storage/index/imapc/imapc-search.c 2017-05-30 23:53:44 +0300 Timo Sirainen (5b2062e40) lib-storage: mail_search_args_to_imap() - don't add parenthesis around OR There's no need to write "(OR a b)" when "OR a b" works just the same. M src/lib-storage/mail-search-args-imap.c M src/lib-storage/mail-search-mime.c M src/lib-storage/test-mail-search-args-imap.c M src/lib-storage/test-mail-search-args-simplify.c 2017-05-31 14:39:55 +0300 Aki Tuomi (fa33df823) lib: Use unix streams with connection when using unix socket This makes it easier to send file descriptors over connection M src/lib/connection.c M src/lib/connection.h 2017-05-30 16:57:45 +0300 Timo Sirainen (0ce76629d) auth: Don't lose all forward_ fields if the first passdb lookup fails. M src/auth/auth-request.c 2017-05-29 13:39:18 +0300 Aki Tuomi (869e8af5b) lib-mail: Add qp encoder M src/lib-mail/Makefile.am A src/lib-mail/istream-qp-encoder.c M src/lib-mail/istream-qp.h A src/lib-mail/qp-encoder.c A src/lib-mail/qp-encoder.h A src/lib-mail/test-istream-qp-encoder.c A src/lib-mail/test-qp-encoder.c 2017-05-25 19:03:32 +0300 Aki Tuomi (51f5fe16f) lib-mail: Link test binaries to libmail.la instead of .lo files M src/lib-mail/Makefile.am 2017-05-30 14:03:23 +0300 Aki Tuomi (95f60b5c1) mail-filter: tabescape args, this is required by script client 4 M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/ostream-ext-filter.c 2017-05-30 14:01:39 +0300 Aki Tuomi (f38b0dafb) welcome: tabescape args, this is required by script client 4 M src/plugins/welcome/welcome-plugin.c 2017-05-30 14:01:17 +0300 Aki Tuomi (405fc3aea) global: Update script client version number Broken by b383ed51d75bce0f69f126bc4ff7192985ca30f2 M src/plugins/fts/fts-parser-script.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/ostream-ext-filter.c M src/plugins/welcome/welcome-plugin.c 2017-05-30 11:30:10 +0300 Timo Sirainen (8df38b03a) auth: Fix crash on passdb lookup when all passdbs were skipped Finishes the fix in 614f5b6febaf3c825f9200ab3b62d9d047197b0e Fixes: auth: Panic: file auth-request.c: line 2493 (get_log_prefix): assertion failed: (auth_request->mech != NULL) M src/auth/auth-request.c 2017-05-30 09:36:49 +0300 Timo Sirainen (6263d367e) lib-storage: Fix LAYOUT=fs potentially not ignoring ACLs when requested fs_get_existence_info_flag() was only being called with LAYOUT=fs and Maildir combination. This mainly affected that combination when using mailbox_list_index=yes and trying to list mailboxes with ACL checking disabled. M src/lib-storage/list/mailbox-list-fs-iter.c 2017-05-30 09:18:14 +0300 Timo Sirainen (3c56ce9f3) lib-storage: Fix ACL in parent mailbox potentially hiding its children. fs_get_existence_info_flag() was only being called with LAYOUT=fs and Maildir combination, so only it was broken if the parent mailbox wasn't visible but its children were. M src/lib-storage/list/mailbox-list-fs-iter.c 2017-05-30 09:15:09 +0300 Timo Sirainen (993424299) lib-storage: fs_list_get_mailbox_flags() - Return mailbox files as selectable Avoids a second stat() later on, which would do the same anyway. M src/lib-storage/list/mailbox-list-fs-flags.c 2017-05-30 09:12:05 +0300 Timo Sirainen (9e50448ea) lib-storage: fs_list_get_mailbox_flags() - Don't assume directories always have children. This makes the directory handling code equivalent for type==UNKNOWN and type==DIR. M src/lib-storage/list/mailbox-list-fs-flags.c 2017-05-30 09:10:55 +0300 Timo Sirainen (cea31bf9e) lib-storage: fs_list_get_mailbox_flags() - Add comments M src/lib-storage/list/mailbox-list-fs-flags.c 2017-05-30 09:09:39 +0300 Timo Sirainen (348202a97) lib-storage: fs_list_get_mailbox_flags() - Reorganize code No functional changes. M src/lib-storage/list/mailbox-list-fs-flags.c 2017-05-29 17:58:35 +0300 Timo Sirainen (ad9a6d27c) acl: Global ACL file was parsed as if it was local ACL file This caused some of the ACL handling not work exactly as expected. M src/plugins/acl/acl-global-file.c 2017-05-29 17:26:52 +0300 Timo Sirainen (427250183) lib-storage: Make mailbox_list_iter_init_autocreate() static again It's no longer needed elsewhere. M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/mailbox-list-private.h 2017-05-29 17:20:48 +0300 Timo Sirainen (f8a67af9b) lib-storage: Fix mailbox_list_index=yes + ACLs + auto=subscribe mailboxes If the auto=subscribe mailbox didn't have a lookup ACL, it shouldn't have been listed. This didn't work properly, because ACL plugin initialized the autocreate_ctx only for the index iterator, while the autoboxes were listed using the backend iterator. Fixed by not creating index iterator at all when doing a passthrough iteration. M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/mailbox-list-private.h 2017-05-29 16:44:44 +0300 Timo Sirainen (d186a2391) lib-storage: Cleanup - Don't use ctx in iter_use_index() Shrinks the following change. M src/lib-storage/list/mailbox-list-index-iter.c 2017-05-29 15:52:15 +0300 Timo Sirainen (d754fe457) lib-storage: Add \NoInferiors flag to autocreated mailboxes with mbox Once the mailboxes get autocreated, the \NoInferiors flag is added anyway. M src/lib-storage/list/mailbox-list-iter.c 2017-05-29 15:30:36 +0300 Timo Sirainen (f5836cc8a) lib-storage: Don't list duplicate autocreated mailboxes' parents M src/lib-storage/list/mailbox-list-iter-private.h M src/lib-storage/list/mailbox-list-iter.c 2017-05-29 13:53:17 +0300 Timo Sirainen (ab7687e9b) acl: Skip auto=create|subscribe mailboxes that don't have lookup-right Removing them entirely from the boxes and box_sets arrays in the list context treats them as if they weren't configured at all. This way they don't need any other special code. M src/plugins/acl/Makefile.am M src/plugins/acl/acl-mailbox-list.c 2017-05-29 13:52:42 +0300 Timo Sirainen (67cbe5d33) lib-storage: Add mailbox-list-iter-private.h with autocreate context structs Needed for the following ACL change. M src/lib-storage/list/Makefile.am A src/lib-storage/list/mailbox-list-iter-private.h M src/lib-storage/list/mailbox-list-iter.c 2017-05-24 11:50:08 +0300 Timo Sirainen (e67df1f70) lib-storage: Log an info message when dovecot.index.pvt UIDVALIDITY changes M src/lib-storage/index/index-sync-pvt.c 2017-05-24 11:47:54 +0300 Timo Sirainen (c50602b44) lib-storage: When initializing dovecot.index.pvt, don't reset it. This avoids unnecessary errors about index being reset when it was already empty. M src/lib-storage/index/index-sync-pvt.c 2017-05-24 11:41:29 +0300 Timo Sirainen (207f4864a) lib-storage: Cleanup - Remove pointless if-check M src/lib-storage/index/index-sync-pvt.c 2017-05-24 20:19:11 +0200 Stephan Bosch (5791d02c3) lib-http: client: Only drop queued requests when a DNS lookup fails; not also the ones that are already in progress. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c 2017-05-24 21:59:32 +0200 Stephan Bosch (7a1bc4683) lib-http: client: When a request is destroyed prematurely during payload input, consider the payload stream destroyed and act accordingly. The application may hold a reference to the payload stream still, and it may be difficult to prevent that. This causes lib-http to keep waiting for the payload to be destroyed. When nothing else is going on, the current ioloop may then become empty, which caused the familiar assert failure. M src/lib-http/http-client-connection.c 2017-05-24 19:08:43 +0200 Stephan Bosch (567d1c82e) lib-http: client: Explicitly destroy the response payload timeout stream when the request is destroyed while receiving payload. This way, the timeout is stopped. This caused ioloop panics. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2017-05-24 18:27:10 +0300 Timo Sirainen (6e43afe03) quota: Fix infinite loop when parsing quota parameters Broken by previous quota changes. M src/plugins/quota/quota.c 2017-05-24 23:49:43 +0300 Timo Sirainen (451a1bfd1) lib-storage: Fix crash in test-mail-storage M src/lib-storage/test-mail-storage.c 2017-05-24 22:31:59 +0300 Timo Sirainen (596c46234) lib-storage: Fix memory leak in test-mail-storage M src/lib-storage/test-mail-storage.c 2017-05-24 21:56:03 +0300 Timo Sirainen (55ca77c6a) lib-storage: Add unit test for set/get/push/pop storage error operations M src/lib-storage/Makefile.am A src/lib-storage/test-mail-storage.c 2017-05-24 21:29:49 +0300 Timo Sirainen (7e9e61655) lib-storage: Fix mail_storage_set_critical() when input parameter is an old internal error This could have caused garbage in the error string. M src/lib-storage/mail-storage.c 2017-05-24 19:16:03 +0300 Timo Sirainen (30d50c7e8) lib-storage: Fix mail_storage_last_error_push/pop() to work with internal errors M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2017-05-24 17:19:36 +0300 Timo Sirainen (04a6e5132) lib-master: Replace listeners with /dev/null in SIGQUIT instead of closing This should be somewhat safer. M src/lib-master/master-service-private.h M src/lib-master/master-service.c 2017-05-19 11:00:22 +0300 Sergey Kitov (73cdeeae4) Whitespace cleanup M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-imapc.c M src/plugins/quota/quota.c 2017-05-19 10:58:52 +0300 Sergey Kitov (1f166c4a7) Dict backend parameters reading changed to use common parsing function M src/plugins/quota/quota-dict.c 2017-05-19 10:57:02 +0300 Sergey Kitov (efbb01826) fs backend parameter parsing changed to use common function M src/plugins/quota/quota-fs.c 2017-05-19 10:52:46 +0300 Sergey Kitov (bbd51f171) imapc backend parameter parsing changed to use common function M src/plugins/quota/quota-imapc.c 2017-05-19 10:49:01 +0300 Sergey Kitov (5ee920777) maildir backend parameter parsing changed to use common function M src/plugins/quota/quota-maildir.c 2017-05-19 10:46:27 +0300 Sergey Kitov (aa089dcef) quota root default init changed to use common param parse function M src/plugins/quota/quota.c 2017-05-18 13:30:25 +0300 Sergey Kitov (afbdaecd3) common quota parameter parsing function implemented M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2017-05-22 17:56:15 +0300 Timo Sirainen (bbcda8a2e) imap: Fix unhibernation after earlier change M src/imap/imap-master-client.c 2017-05-22 10:13:21 +0300 Timo Sirainen (9c4209565) lib-index: Fix crash in mail_transaction_log_view_set_all() error handling M src/lib-index/mail-transaction-log-view.c 2017-05-22 10:11:30 +0300 Timo Sirainen (6d2f4a21b) lib-index: Fix start_offset > sync_offset error handling for in-memory indexes M src/lib-index/mail-transaction-log-file.c 2017-05-20 18:13:45 +0300 Timo Sirainen (e3d797bc8) config: When showing an "Unknown setting" error, show the full section path For example with: service foo { inet_listener bar { key = value } } Instead of showing just: Unknown setting: key Show the entire path: Unknown setting: service { inet_listener { key Any filters won't be shown, because they don't affect the result. M src/config/config-parser-private.h M src/config/config-parser.c 2017-05-19 17:44:30 +0300 Timo Sirainen (08406452b) imap: Move struct client_sync_context to imap-sync-private.h and add imap_ prefix M src/imap/imap-client.h M src/imap/imap-sync-private.h M src/imap/imap-sync.c 2017-05-19 16:34:29 +0300 Timo Sirainen (67c25cb4a) imap: Allow plugins to replace existing FETCH handlers They can use imap_fetch_handler_lookup() to get the old init() function. Then they can imap_fetch_handler_unregister() the existing handler and register a new handler, which can do its own work and call the old init() if needed. M src/imap/imap-fetch.c M src/imap/imap-fetch.h 2017-05-17 16:47:43 +0300 Timo Sirainen (0a1a4e586) lib-index: Improve "start_offset > current sync_offset" error message. Try to make it clear what is the root cause of it. M src/lib-index/mail-transaction-log-file.c 2017-05-17 16:28:58 +0300 Timo Sirainen (a0c8af555) lib-index: mail_transaction_log_file_get_highest_modseq_at() - return error string This can help figuring out why some error happened when more context is provided in the caller's error messages. M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log-view.c M src/lib-index/test-mail-transaction-log-view.c 2017-05-17 16:21:54 +0300 Timo Sirainen (20a10690f) lib-index: Add missing error logging for mail_index_view_sync_begin() M src/lib-index/mail-index-view-sync.c 2017-05-17 13:33:44 +0300 Timo Sirainen (ce9d23c7c) lib-index: mail_transaction_log_file_map() - return reason/error string This can help figuring out why some error happened when more context is provided in the caller's error messages. M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/test-mail-transaction-log-view.c 2017-05-17 13:31:09 +0300 Timo Sirainen (ac8cb75fb) lib-index: mail_transaction_log_view_set_all() - don't entirely ignore corrupted logs Ignore them only if it's followed by an index reset. M src/lib-index/mail-transaction-log-view.c 2017-05-19 11:05:22 +0300 Timo Sirainen (c44fcb83f) lib-storage: Don't crash if cache is thought broken for a newly saved mail It's a bug that it happens, but the resulting crash is confusing. Although arguably this new error could be i_panic() instead. Fixes: Panic: file mail-index-transaction-update.c: line 1018 (mail_index_update_ext): assertion failed: (seq > 0 && (seq <= mail_index_view_get_messages_count(t->view) || seq <= t->last_new_seq)) M src/lib-storage/index/index-mail.c 2017-05-17 19:02:06 +0300 Timo Sirainen (369847496) imap NOTIFY: Flush any pending notifications on NOOP This is mainly to allow testing NOTIFY easily with imaptest scripts. This is cheap anyway, because mailbox_list_notify_flush() doesn't do any syscalls when there's no work. M src/imap/cmd-noop.c M src/imap/imap-notify.c M src/imap/imap-notify.h 2017-05-17 19:01:57 +0300 Timo Sirainen (58a896279) lib-storage: Implement mailbox_list_notify_flush() This flushes any pending notifications. For now it only checks if there's a pending notification waiting for a timeout. It could also stat() the files to make sure, but that's probably unnecessary. M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/mailbox-list-notify.c M src/lib-storage/mailbox-list-notify.h M src/lib-storage/mailbox-list-private.h 2017-05-17 18:13:09 +0300 Timo Sirainen (a384b1fcc) lib-storage: Explicitly name function pointers in mailbox lists This allows adding more fields to struct mailbox_list_vfuncs without compiler warnings. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c 2017-05-17 17:49:25 +0300 Timo Sirainen (3b86acdd4) lib-storage: Always update highestmodseq in mailbox list index This is required for mailbox-list-notify API to work correctly. For example IMAP NOTIFY session with CONDSTORE enabled could be listening for FlagChanges, but another session without CONDSTORE enabled could be updating flags in a mailbox that has never been opened with CONDSTORE enabled. NOTIFY wouldn't see this change, unless it was always written to dovecot.list.index. M src/lib-storage/list/mailbox-list-index-status.c 2017-05-17 17:14:05 +0300 Timo Sirainen (3ee009bb1) lib-storage: Fix mailbox list index notifications when modseqs aren't enabled. No notifications were sent if highest_modseqs weren't updated in mailbox list index. M src/lib-storage/list/mailbox-list-index-notify.c 2017-05-17 11:40:53 +0300 Josef 'Jeff' Sipek (e031d9aaa) imap: login reply should be sent sooner M src/imap/main.c 2017-05-18 23:13:38 +0300 Timo Sirainen (a18b40c2c) lib-storage: Fix mailbox list index records without guid having invalid flags With LAYOUT=index the mailbox is found with its GUID. If it doesn't exist, the mailbox has to be either \NonExistent or \NoSelect. It probably doesn't make much difference which one, so we'll fix them by adding \NoSelect. With other layouts the GUID is allowed to be empty, because it can be looked up from the actual mailbox. M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2017-05-18 23:06:20 +0300 Timo Sirainen (0b2f4c222) lib-storage: Fix mailbox list index records with name_id=0 name_id=0 isn't valid, so it needs to be changed and writen to the disk. The write-to-disk part wasn't working. M src/lib-storage/list/mailbox-list-index.c 2016-03-30 09:33:02 +0300 Phil Carmody (032719188) lib: istream-concat - enforce cur_input==input[cur_idx] invariant Since the over-seek patch, this is now an invariant, so ensure it's always true. Signed-off-by: Phil Carmody M src/lib/istream-concat.c 2016-03-30 09:29:51 +0300 Phil Carmody (13fc4d6d2) lib: istream-concat - make cur_input always match input[cur_idx] We're deliberately not stepping into the NULL stream, don't let the cur_idx indicate that we have moved into it, that's confusing. Signed-off-by: Phil Carmody M src/lib/istream-concat.c 2017-05-18 21:10:33 +0300 Timo Sirainen (7efe57b10) imapc: Make sure a valid UIDVALIDITY is returned by SELECT Fixes errors such as: Error: Synchronization corrupted index header (in-memory index): uidvalidity=0, but next_uid=9 M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c 2017-05-18 21:08:23 +0300 Timo Sirainen (6e853fdf3) imapc: Fix assert-crash if server doesn't send EXISTS reply to SELECT Fixes: Panic: file imapc-sync.c: line 477 (imapc_sync_index): assertion failed: (mbox->sync_fetch_first_uid == 1) M src/lib-storage/index/imapc/imapc-storage.c 2017-05-18 20:18:24 +0300 Timo Sirainen (651630fe2) lib-imap-client: Change server IP only on connect() failures Also log an warning-level message about it. This is mainly useful to see that a slow connection could be caused by a connect() timeout. Since more IPs are still available, it's not yet an error. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h 2017-05-18 19:42:03 +0300 Timo Sirainen (78aafd062) imapc: Fix infinite reconnection when server keeps sending corrupted state When corrupted state was found, imapc_client_mailbox_reconnect() is called to reconnect. This call skipped the normal "is it safe to reconnect?" checks causing potentially infinite reconnections. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c 2017-05-18 19:40:04 +0300 Timo Sirainen (2e47584d7) lib-imap: imap_parser_unref() should always set parser=NULL Not just when the last reference is cleared. This is how *_unref()s should work everywhere in Dovecot. This fixes a bug in lib-imap-client where a parser could have been accessed after it was already freed. M src/lib-imap/imap-parser.c 2017-05-18 18:09:56 +0300 Timo Sirainen (f4871975c) imapc: Avoid resending duplicate FETCH when reconnecting during the initial sync M src/lib-storage/index/imapc/imapc-sync.c 2017-05-18 18:01:27 +0300 Timo Sirainen (bc3309d26) imapc: If initial SELECT fails, don't resend it twice on reconnect. M src/lib-storage/index/imapc/imapc-storage.c 2017-05-18 17:36:27 +0300 Timo Sirainen (e266d0222) lib-imap-client: Avoid infinite reconnection loops when retrying command fails reconnect_command_count wasn't calculated correctly, because the SELECT and potentially other following sync commands weren't included in it. M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c 2017-05-19 09:45:28 +0300 Timo Sirainen (cb4d75e1b) lib: Fix memory leak in test-istream-concat M src/lib/test-istream-concat.c 2017-05-18 12:32:12 +0300 Timo Sirainen (17aeaeec3) lib: Add dovecot_build_info variable containing Dovecot build information. By default this includes the version, including the git hash. The idea is that this version information would be available in all the core dumps. The DOVECOT_BUILD_INFO can be overridden by compiling with: DOVECOT_BUILD_INFO='"build info"' make M src/lib/lib.c M update-version.sh 2017-05-18 22:18:15 +0300 Timo Sirainen (16b5dc27e) lib: Fix crash when seeking istream-concat to EOF and trying to read it M src/lib/istream-concat.c M src/lib/test-istream-concat.c 2017-05-12 04:25:08 +0200 Stephan Bosch (0b753d79f) lib-http: Changed test-http-server to actually use the http-server API. This currently serves as a simple demonstration of how to structure an HTTP server. M src/lib-http/test-http-server.c 2017-05-12 04:23:10 +0200 Stephan Bosch (355b675a0) lib-http: server: Fixed detection of idle connection. This fixes the debug message; the behavior was otherwise correct. M src/lib-http/http-server-connection.c 2017-05-18 14:59:51 +0300 Aki Tuomi (e5d60293a) virtual: Match any metadata condition The old code ignored succesful earlier matches for patterns, and stopped looking on first non-matching metadata pattern. Now it breaks on error or on first matching pattern. M src/plugins/virtual/virtual-config.c 2017-05-17 15:20:35 +0300 Aki Tuomi (b93688275) lib-storage: Apply mailbox_list_iter_autocreate_filter on mailbox_list_index_iter_next It skips mailbox_list_iter_next, so it needs to be applied here as well. M src/lib-storage/list/mailbox-list-index-iter.c 2017-05-17 15:19:44 +0300 Aki Tuomi (b5c6ce2ab) lib-storage: Rename autocreate_iter_existing to mailbox_list_iter_autocreate_filter It makes next commit possible M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/mailbox-list-private.h 2017-05-17 12:16:31 +0300 Aki Tuomi (da0b85092) lib-storage: Do not drop autocreate boxes when listing them Otherwise we skip folders, because array_delete() is removing boxes while they're being iterated. M src/lib-storage/list/mailbox-list-iter.c 2017-05-18 13:03:45 +0300 Timo Sirainen (78c3c40ee) dovecot --build-options: Add missing linefeed M src/master/main.c 2017-05-18 11:57:38 +0300 Timo Sirainen (cdc7ca129) director: Add old host's up/down and vhost count parameters to director_flush_socket The "down" status allows the script to determine whether it should try to perform any work on the old host. The vhost count may be unnecessary, but might be useful for some purpose. M src/director/director.c M src/director/director.h 2017-05-17 12:26:42 +0300 Aki Tuomi (de5d6bb50) fts: Do not attempt to deinitialize backend if it's not set If FTS backend initialization fails or does not happen, flist->backend might end up being NULL, and attempt to deinitialize NULL won't end well. M src/plugins/fts/fts-storage.c 2017-05-17 10:35:03 +0300 Josef 'Jeff' Sipek (6dd7a0a5e) lib: include inttypes.h to get PRIu64 & friends Including it in lib.h allows all of the Dovecot code (as well as any external plugins) to just use these macros without worrying about what system headers to include. M configure.ac M src/lib/compat.h M src/lib/lib.h 2017-04-30 12:31:48 +0300 Timo Sirainen (a76faea3e) dsync: Try to commit transactions every dsync_commit_msgs_interval messages This was first attempted to be implemented by ec0cc8fa647794e44a1afaa448f495a713048dc4, but it was later partially reverted by 5973d496b16721af6d2c1fa90b016aacddf13554. This current commit should fix its problems. M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2017-05-16 17:53:23 +0300 Timo Sirainen (e73fbb667) auth: If passdb/userdb ldap has blocking=yes, auth master shouldn't connect to ldap M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2017-05-08 12:49:39 +0200 Stephan Bosch (b383ed51d) util: script: Increased the major protocol version due to earlier changes. M src/lib-program-client/program-client-remote.c M src/util/script.c 2017-05-09 13:33:23 +0200 Stephan Bosch (7e993ece4) util: script: Amended protocol with the ability to convey a set of environment variables that are passed to the script. The acceptable environment variables are selected using the -e parameter; others are ignored silently. M src/lib-program-client/program-client-remote.c M src/util/script.c 2017-05-08 12:48:08 +0200 Stephan Bosch (bcba31003) util: script: Amended the protocol to pass arguments escaped to prevent problems with newlines. Newlines are used as argument delimiters in the protocol, which will cause problems. M src/lib-program-client/program-client-remote.c M src/util/script.c 2017-05-09 13:43:39 +0200 Stephan Bosch (fc2b14895) lib-program-client: local: Fixed use of unterminated string array of environment variables in exec_child(). M src/lib-program-client/program-client-local.c 2017-05-09 14:22:06 +0200 Stephan Bosch (fba2690b7) lib-program-client: Made the test suite ignore the protocol version. M src/lib-program-client/test-program-client-net.c M src/lib-program-client/test-program-client-unix.c 2017-05-15 15:35:37 +0300 Aki Tuomi (db576e4cd) mail-crypt-plugin: Set copy-hook only if save_version > 0 Otherwise we might use it in read-only mode, too. M src/plugins/mail-crypt/mail-crypt-plugin.c 2017-05-10 12:44:25 +0300 Timo Sirainen (399f1dcb7) doveadm mailbox status: Add "firstsaved" field. M doc/man/doveadm-mailbox.1.in M src/doveadm/doveadm-mail-mailbox-status.c 2017-05-04 19:59:41 +0300 Timo Sirainen (635f1b145) imapc: Try to merge STOREs together as much as possible when syncing M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/imapc/imapc-sync.h 2017-05-05 15:20:05 +0300 Timo Sirainen (0b45d816c) lib-storage: Avoid unnecessary UIDNEXT lookups after saving a mail The vsize checking code was expecting that this would always be a cheap operation, but with imapc code it could trigger a remote STATUS (UIDNEXT) call. Do this only when we've checked that this mailbox is updating vsize header at all. M src/lib-storage/index/index-mailbox-size.c 2017-05-12 15:42:31 +0300 Timo Sirainen (dee1520b5) imapc-quota: Avoid sending unnecessarily many GETQUOTA[ROOT] commands The last_refresh == ioloop_timeval check didn't work, because the refresh itself updated ioloop_timeval. This caused a single quota lookup to issue multiple GETQUOTA[ROOT] commands to imapc. M src/plugins/quota/quota-imapc.c 2017-05-12 12:44:27 +0300 Josef 'Jeff' Sipek (5231ae561) lib-storage: add a mail user pre-deinit vfunc This allows plugins to perform checks right before the deinit call. M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2017-05-12 11:13:09 +0300 Timo Sirainen (b99515ba4) lib-storage: Add missing ATTR_FORMAT to mail_set_mail_cache_corrupted() M src/lib-storage/mail-storage-private.h 2017-05-12 02:37:22 +0200 Stephan Bosch (c5e048964) Added doc/man/doveadm-save.1 to .gitignore. M .gitignore 2017-05-11 09:24:57 +0300 Aki Tuomi (8d392e181) doc: Add manpage for doveadm-save M doc/man/Makefile.am A doc/man/doveadm-save.1.in 2017-05-09 14:01:07 +0300 Aki Tuomi (7522446d6) lib-storage: Use new mail_cache_set_seq_corrupted_reason M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2017-05-09 14:00:38 +0300 Aki Tuomi (846624bde) lib-index: Add mail_cache_set_seq_corrupted_reason Marks a seq in cache corrupted, and removes that instead of the whole cache. M src/lib-index/mail-cache.c M src/lib-index/mail-cache.h 2017-05-09 14:29:04 +0300 Aki Tuomi (38228c961) lib-index: Add mail_cache_expunge_count It can be called to correctly handle cache counters when records are removed. M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-sync-update.c 2017-05-10 12:40:27 +0300 Aki Tuomi (722c97742) ssl-proxy-openssl: Fix comparison to stricly boolean M src/login-common/ssl-proxy-openssl.c 2017-05-09 12:51:49 +0300 Josef 'Jeff' Sipek (f08b05d41) {lib,lib-fts}: fix builds with BSD make Without this change, BSD make doesn't know how to make a couple of the generated files because the BUILT_SOURCES file names don't match exactly the left hand sides of the rules. (GNU make somehow manages to match the rule even though it is not an exact match.) M src/lib-fts/Makefile.am M src/lib/Makefile.am 2017-05-09 12:43:46 +0300 Josef 'Jeff' Sipek (b2760eb6b) lib: use full path to unicode data script This is a step toward fixing builds where object dir != source dir. M src/lib/Makefile.am 2017-05-09 12:42:48 +0300 Josef 'Jeff' Sipek (58f9b440f) lib-fts: use full path to word-properties script This is a step toward fixing builds where object dir != source dir. M src/lib-fts/Makefile.am 2017-05-09 12:36:40 +0300 Josef 'Jeff' Sipek (824107247) lib-fts: download data files into srcdir This is a step toward fixing builds where object dir != source dir. M src/lib-fts/Makefile.am 2017-05-09 12:34:40 +0300 Josef 'Jeff' Sipek (16d84b900) lib: download unicode data into srcdir This is a step toward fixing builds where object dir != source dir. M src/lib/Makefile.am 2017-05-10 10:55:49 +0300 Josef 'Jeff' Sipek (df7ac49c9) remove mystery file that appears to be unused D .inslog2 2017-05-02 18:40:43 +0300 Timo Sirainen (f86e2ce4d) master: Send SIGQUIT to processes running at deinit to close socket listeners. This allows Dovecot to be restarted even when some lmtp/doveadm process is running for a long time. Otherwise it would keep the inet_listener socket open and prevent the new Dovecot from binding to the port. M src/master/service-monitor.c 2017-05-02 16:13:08 +0300 Timo Sirainen (4cbe2b4ee) lib-master: When running under master, close listeners immediately on SIGQUIT M src/lib-master/master-service.c 2017-05-02 18:39:06 +0300 Timo Sirainen (d2c41d658) lib-master: Remove listener's IO earlier if possible This is needed for the next change to work properly. M src/lib-master/master-service.c 2017-05-02 15:56:40 +0300 Timo Sirainen (6e5f8923e) master: Wait more precisely 5 secs at deinit for child processes to die. Use milliseconds granularity instead of seconds. M src/master/service-monitor.c 2017-05-02 15:41:41 +0300 Timo Sirainen (2266b2b8a) lib: Use lib_signals_syscall_error() for write() failure in signal handler M src/lib/lib-signals.c 2017-05-02 15:41:04 +0300 Timo Sirainen (0d7d09c01) lib: Add lib_signals_syscall_error() M src/lib/lib-signals.c M src/lib/lib-signals.h 2017-05-02 15:38:00 +0300 Timo Sirainen (ae7c75f57) lib: Add dec2str_buf() M src/lib/strfuncs.c M src/lib/strfuncs.h 2017-05-09 13:15:42 +0300 Timo Sirainen (9fbe48fc1) man: Fix doveadm-flags examples Patch by Frank Ebert M doc/man/doveadm-flags.1.in 2017-05-09 12:25:49 +0300 Aki Tuomi (614f5b6fe) auth: Do not use AUTH_SUBSYS_MECH in logging when request->mech is NULL This can happen when a lookup is done instead of authentication. Fixes auth: Panic: file auth-request.c: line 2560 (get_log_prefix): assertion failed: (auth_request->mech != NULL) M src/auth/auth-request.c 2017-05-09 10:07:55 +0300 Josef 'Jeff' Sipek (5b0cbd40c) configure: Remove --with-storages parameter Just compile all the storages, since the only benefit in limiting them is to save a tiny bit of disk space. The recently added imapc quota code fails to link if imapc storage isn't compiled in. This is the simplest way to fix that. M .gitignore M configure.ac M src/lib-storage/Makefile.am A src/lib-storage/mail-storage-register.c A src/lib-storage/mailbox-list-register.c D src/lib-storage/register/Makefile.am M src/master/main.c 2017-04-06 16:09:00 +0300 Aki Tuomi (165551d57) lib-master,login-common: Add dual cert support Adds new settings ssl_alt_cert and ssl_alt_key M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h M src/login-common/ssl-proxy-openssl.c 2017-03-06 19:42:18 +0200 Phil Carmody (78717e55d) lib-fs: unit tests for fs-api/fs-posix A core component, really ought to be covered by the unit tests. This barely scrapes the surface, but is better than nothing: filesystem/files/iterators, read/write/exists, good and bad cases. Signed-off-by: Phil Carmody M src/lib-fs/Makefile.am A src/lib-fs/test-fs-posix.c 2017-05-08 12:24:52 +0300 Aki Tuomi (f469469a8) passdb-imap: Make sure ssl verification is possible with current settings M src/auth/passdb-imap.c 2017-05-08 12:24:21 +0300 Aki Tuomi (6a65a1d09) passdb-imap: Add ssl_ca_file setting Allow setting SSL trust roots from a file M src/auth/passdb-imap.c 2017-04-28 20:28:23 +0300 Aki Tuomi (b6c725b36) passdb-imap: Add option to control certificate verification Turn it on by default M src/auth/passdb-imap.c 2017-05-08 13:35:35 +0300 Aki Tuomi (7638b02e8) lib-ssl-iostream: Support IP address SANs M src/lib-ssl-iostream/iostream-openssl-common.c 2016-11-06 01:33:04 +0100 Stephan Bosch (eec5a564a) lib-lda: mail-send: Compose var_expand table only once. M src/lib-lda/mail-send.c 2016-11-06 13:17:26 +0100 Stephan Bosch (f0e0266a3) lib-lda: mail-send: Fixed debug message in mail_send_rejection() to use correct address. M src/lib-lda/mail-send.c 2016-11-05 17:44:07 +0100 Stephan Bosch (66d13b498) lib-lda: Fixed indentation in mail-send.c. M src/lib-lda/mail-send.c 2017-05-04 09:14:17 +0300 Aki Tuomi (9850d535f) mail-crypt: Re-encrypt mails when copying/moving Otherwise the mail cannot be opened after moving M src/plugins/mail-crypt/mail-crypt-plugin.c 2017-05-05 12:35:23 +0300 Timo Sirainen (cee926660) imap: Set FETCH transactions hidden only when \Seen flags are implicitly set This simplifies implementing some plugins and has no downsides to core functionality. M src/imap/imap-fetch.c 2017-05-04 17:31:47 +0300 Timo Sirainen (fccd110b4) lib-storage: Fix memory leak in mail_search_args_simplify() The leaks happened when search args were already initialized (which they usually were at this point) and some of the args were dropped entirely. Improved the unit test to initialize search args before calling the simplify, so valgrind would notice if there are any leaks. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2017-04-04 00:32:07 +0200 Stephan Bosch (4ef99978b) lib-http: client: Fixed race condition between DNS refresh lookup and a soft connection timeout. The refreshing DNS lookup cleared all the IPs, but the soft connection timeout (and maybe other code) still relied on them. Adding tests everywhere for host->ips_count == 0 is annoying, so I changed the DNS lookup code such that the stale IPs remain present while the DNS lookup is being performed. The pending lookup prevents new connections through http_client_host_refresh(), so this will not create potentially useless connections. M src/lib-http/http-client-host.c 2017-05-02 12:18:40 +0300 Timo Sirainen (f950619b1) lib-imap: imap_append_string_for_humans() - Change CR/LF to space Practically this shouldn't matter, because in email headers a CR/LF is always followed by a space/tab. But maybe this can be used for some other purposes in future, and it makes the unit tests clearer. :) M src/lib-imap/imap-quote.c M src/lib-imap/test-imap-quote.c 2017-05-02 17:57:40 +0300 Timo Sirainen (167dbb662) lmtp: Fix assert-crash when proxy overrides mail_max_lock_timeout Time unit is required or the call fails. M src/lmtp/commands.c 2017-05-02 15:02:25 +0300 Timo Sirainen (541f258d8) lib-master: Add comments to struct master_service_connection M src/lib-master/master-service.h 2017-05-01 22:23:36 +0200 Stephan Bosch (af0a12ae4) lib-index: mail-index-transaction-export: Fixed handling of transaction_flag_updates_have_non_internal() return value. Found using Clang -Wstrict-bool. M src/lib-index/mail-index-transaction-export.c 2017-05-01 22:19:43 +0200 Stephan Bosch (a0adfb2fe) lib-imap-client: Fixed NULL check in assertion to be proper boolean. Found using Clang -Wstrict-bool. M src/lib-imap-client/imapc-client.c 2017-04-28 14:42:31 +0300 Aki Tuomi (332e3fd09) auth: Organize code into two unit tests auth-cache needs special setup M src/auth/Makefile.am M src/auth/test-auth-request-var-expand.c A src/auth/test-auth.h M src/auth/test-db-dict.c A src/auth/test-main.c A src/auth/test-mock.c M src/auth/test-username-filter.c 2017-04-28 14:35:36 +0300 Timo Sirainen (cca398c2e) lib-storage: When save is aborted, close dest_mail without crashing Fixes: Panic: file mail-index-transaction-update.c: line 1023 (mail_index_update_ext): assertion failed: (seq > 0 && (seq <= mail_index_view_get_messages_count(t->view) || seq <= t->last_new_seq)) Because cache was still attempted to be updated, but the mail was already expunged from index. M src/lib-storage/index/index-storage.c 2017-04-28 14:06:43 +0300 Timo Sirainen (f776b9a12) lib-storage: Move backend code to a common index_storage_save_abort_last() M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/mbox/mbox-save.c 2017-04-27 14:09:08 +0300 Aki Tuomi (53e2b6954) auth: Log reason for skipping passdb M src/auth/auth-request.c 2017-04-28 12:49:37 +0300 Aki Tuomi (3a73b1355) auth: Add test suite for username filter M src/auth/Makefile.am A src/auth/test-username-filter.c 2017-04-28 12:51:20 +0300 Aki Tuomi (268a76700) auth: Add username_filter for passdb block username_filter lets you specify one or more pattern(s) for including or excluding users. exclusion patterns are denoted with ! prefix. if any exclude matches the username, passdb will be skipped. if any inclusions is specified, and the username does not match one of them, passdb will be skipped. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-settings.c M src/auth/auth-settings.h M src/auth/passdb.c M src/auth/passdb.h 2017-04-27 11:53:13 +0300 Aki Tuomi (2b7fbe3ba) auth: Use MECH subsystem when logging error about skipping all password databases Otherwise it will assert-crash because all password databases were skipped. M src/auth/auth-request.c 2017-04-28 10:25:14 +0300 Aki Tuomi (fee117f1b) auth: Refactor auth to use libauth.la This makes writing new unit tests easier, as you can link to libauth.la. M src/auth/Makefile.am 2017-04-27 12:54:20 +0300 Timo Sirainen (06c956f41) lib-storage: mail_search_arg_to_imap() - Fix writing invalid keywords Just write the original invalid keyword string as output. It might not be entirely invalid - just invalid within this mailbox (e.g. a mailbox doesn't allow new keywords). M src/lib-storage/mail-search-args-imap.c 2017-04-27 12:53:18 +0300 Timo Sirainen (483e8d497) lib-storage: Fix searching when search query has invalid keywords. For example "SEARCH KEYWORD ]" was returning all mails instead of nothing. M src/lib-storage/index/index-search.c M src/lib-storage/mail-search.h 2017-04-27 12:50:13 +0300 Timo Sirainen (cb1203abd) 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. M src/lib-index/mail-index-transaction-update.c 2017-04-26 23:41:03 +0300 Timo Sirainen (3abc26e06) 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. M src/plugins/quota/quota-imapc.c 2017-04-26 23:43:24 +0300 Timo Sirainen (49f65b7c7) 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) M src/lib-storage/index/index-mail.c 2017-04-26 23:13:20 +0300 Timo Sirainen (41f1944a2) imapc: Don't send NOOP on sync if MAILBOX_SYNC_FLAG_FAST is set Fast syncing should do only the minimal amount of work. M src/lib-storage/index/imapc/imapc-sync.c 2017-04-26 15:04:23 +0300 Timo Sirainen (d64280bc4) 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. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-sync-private.h M src/imap/imap-sync.c 2017-04-26 14:57:40 +0300 Timo Sirainen (55d35a8b8) imap: Move struct imap_sync_context to imap-sync-private.h M src/imap/Makefile.am A src/imap/imap-sync-private.h M src/imap/imap-sync.c 2017-04-18 15:55:08 +0300 Timo Sirainen (c4398800d) lib-storage: mail_search_arg_to_imap() - minor keywords writing optimization Avoid an extra str_delete() by checking whether the parenthesis are needed. M src/lib-storage/mail-search-args-imap.c 2017-04-18 15:51:39 +0300 Timo Sirainen (64341148d) lib-storage: mail_search_arg_to_imap() - minor FLAGS writing optimization Avoid an extra str_delete() by immediately calculating whether the parenthesis are needed. M src/lib-storage/mail-search-args-imap.c 2017-04-18 15:38:59 +0300 Timo Sirainen (d6e496a8b) lib: Add bits_is_power_of_two() M src/lib/bits.h M src/lib/test-bits.c 2017-04-17 01:14:02 +0300 Andriy Syrovenko (a319c3201) auth: Fixed dovecot/auth hanging when child ntlm_auth crashes while processing an authentication request M src/auth/mech-winbind.c 2017-04-26 14:20:49 +0300 Timo Sirainen (e709efb3d) imapc: Fix memory leak when closing mailbox with delayed changes M src/lib-storage/index/imapc/imapc-storage.c 2017-04-25 12:39:04 +0300 Timo Sirainen (1e88ab82d) 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. M src/lib-storage/index/imapc/imapc-search.c 2017-04-24 17:59:53 +0300 Timo Sirainen (654c60f17) 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. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/plugins/quota/Makefile.am A src/plugins/quota/quota-imapc.c M src/plugins/quota/quota.c 2017-04-24 17:58:53 +0300 Timo Sirainen (ecd54d6c6) 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. M src/plugins/quota/quota.c 2017-04-24 17:10:10 +0300 Timo Sirainen (d15de2872) imapc: include imapc-client.h in imapc-storage.h It was already required to be able to successfully include imapc-storage.h. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2017-04-24 18:13:13 +0300 Timo Sirainen (2c719bcb9) imap-plugins: Use client_add_capability() for adding dynamic capabilities M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c 2017-04-24 18:51:53 +0300 Timo Sirainen (013a4ebb1) imap: Use client_add_capability() for adding all dynamic capabilities M src/imap/imap-client.c 2017-04-24 18:12:55 +0300 Timo Sirainen (f10f05dfa) imap: Add client_add_capability() M src/imap/imap-client.c M src/imap/imap-client.h 2017-04-24 13:29:13 +0300 Timo Sirainen (e1005f8bf) imapc: Add imapc_features=fetch-bodystructure This allows using the remote IMAP server's BODY and BODYSTRUCTURE replies. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2017-04-24 13:27:43 +0300 Timo Sirainen (afe1da042) 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. M src/lib-storage/index/index-mail.c M src/lib-storage/mail-storage-private.h 2017-04-24 13:05:48 +0300 Timo Sirainen (b2723d688) lib-storage: Add index_mail_get_cached_body[structure]() This just moves the code to these functions without changing any of the logic. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2017-04-24 14:04:01 +0300 Timo Sirainen (a8e6df07f) lib-imap: Make imap_bodystructure_parse_args() public M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h 2017-04-24 12:50:10 +0300 Timo Sirainen (2ec87250e) lib-imap: Add imap_write_arg() to write only a single arg M src/lib-imap/imap-util.c M src/lib-imap/imap-util.h 2017-04-23 19:57:11 +0300 Timo Sirainen (a9e0cd4b1) lib-imap-client: Fix imapc_client_get_capabilities() when called without connections M src/lib-imap-client/imapc-client.c 2017-04-23 17:19:36 +0300 Timo Sirainen (378653a02) imapc: Fix crash in mailbox_exists() when LAYOUT isn't imapc. Especially breaks LAYOUT=none. M src/lib-storage/index/imapc/imapc-storage.c 2017-04-23 13:35:18 +0300 Timo Sirainen (a9ba935a4) imapc: Support imapc_features=search without ESEARCH extension M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-search.h 2017-04-23 19:14:54 +0300 Timo Sirainen (e00612b24) 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. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c 2017-04-23 18:51:02 +0300 Timo Sirainen (150542702) imapc: Add imapc_mailbox.capabilities Use it instead of imapc_client_get_capabilities(). Simplifies the following patch. M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2017-04-23 18:57:15 +0300 Timo Sirainen (6e40a39f6) imapc: Rename imapc_storage_has_modseqs() to imapc_mailbox_has_modseqs() Simplifies the following patch. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2017-04-21 12:54:17 +0300 Timo Sirainen (b394d41ad) 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. M src/lib-sql/driver-cassandra.c 2017-04-21 20:59:55 +0300 Timo Sirainen (5107d3e3f) dsync-server: Fix support for dsync_features=empty-header-workaround Fixes: Panic: Unknown key: empty_hdr_workaround M src/doveadm/dsync/dsync-ibc-stream.c 2017-04-21 13:36:27 +0300 Timo Sirainen (21b21a19b) *-login: Require client_vfuncs.send_raw_data() to be set This removes backwards compatibility for managesieve-login. M src/login-common/client-common.c 2017-04-21 13:35:33 +0300 Timo Sirainen (ae797f336) *-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. M src/imap-login/imap-login-client.c M src/imap-urlauth/imap-urlauth-login.c M src/login-common/client-common.c M src/login-common/client-common.h M src/pop3-login/client.c 2017-04-21 13:27:18 +0300 Timo Sirainen (f231cd775) imap: Add imap_client_vfuncs.send_tagline() This allows plugins to catch all the IMAP command replies. M src/imap/imap-client.c M src/imap/imap-client.h 2017-04-18 10:23:37 +0300 Timo Sirainen (474e9ae6b) *-login: Unload plugins at deinit. M src/login-common/main.c 2017-04-19 15:01:19 +0300 Timo Sirainen (21a2a0360) 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) M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail.c 2017-04-20 19:16:46 +0300 Timo Sirainen (0206ab42a) lib-storage: Add mailbox_attribute_unregister_internal[s]() This allows plugins to unregister internal attributes when they're unloaded. M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-attribute.h 2017-04-13 15:13:19 +0300 Timo Sirainen (cc23ad7b8) 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. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2017-04-13 15:09:19 +0300 Timo Sirainen (92f9871ac) 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. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2017-04-13 14:05:55 +0300 Timo Sirainen (47daf6e81) lib-storage: Add more tests to test-mail-search-args-simplify M src/lib-storage/test-mail-search-args-simplify.c 2017-04-13 13:57:41 +0300 Timo Sirainen (92f5ea24e) lib-storage: mail_search_arg_to_imap() - remove () around a single flag/keyword M src/lib-storage/mail-search-args-cmdline.c M src/lib-storage/mail-search-args-imap.c M src/lib-storage/test-mail-search-args-imap.c M src/lib-storage/test-mail-search-args-simplify.c 2017-04-13 13:04:25 +0300 Timo Sirainen (1c0020171) lib-storage: mail_search_args_simplify() - deduplicate KEYWORDs M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2017-04-13 12:51:25 +0300 Timo Sirainen (7b6ebd549) lib-storage: mail_search_args_to_cmdline() - Fix writing FLAGS & KEYWORDS M src/lib-storage/mail-search-args-cmdline.c 2017-04-13 12:36:30 +0300 Timo Sirainen (56c05fa82) 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". M src/lib-storage/mail-search-args-cmdline.c 2017-04-12 12:24:05 +0300 Timo Sirainen (17076d50d) 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 M Makefile.am 2017-04-11 09:34:11 +0200 Stephan Bosch (da269a564) 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. M src/lib-imap/imap-bodystructure.c M src/lib-imap/test-imap-bodystructure.c 2017-04-12 10:13:15 +0200 Stephan Bosch (cc419b54f) 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. M src/lib-imap/imap-bodystructure.c 2017-04-11 20:39:55 +0300 Aki Tuomi (c6ae57a03) auth: Check var_expand error in vpopmail M src/auth/userdb-vpopmail.c 2017-04-11 20:32:19 +0300 Aki Tuomi (e2d97f20a) auth: Fix compile problem with vpopmail 79fe1b28df44ba22b230326bee895583c1df5a28 forgot to remove const from table. M src/auth/userdb-vpopmail.c 2017-04-11 15:50:14 +0300 Aki Tuomi (061b11b93) auth: Filter passdbs on credentials lookup start Consistency with how plain verify works. M src/auth/auth-request.c 2017-04-11 15:47:33 +0300 Aki Tuomi (ba942a16b) auth: Fix mechanism filter to support `none` Otherwise credentials lookup can fail. None indicates that it should match when no mech is specified. M src/auth/auth-request.c 2017-04-11 15:33:22 +0300 Timo Sirainen (ace06232c) 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! M src/auth/auth-master-connection.c M src/auth/mech-apop.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-gssapi.c M src/auth/mech-ntlm.c M src/auth/mech-rpa.c M src/auth/mech-scram-sha1.c M src/auth/password-scheme-pbkdf2.c M src/auth/password-scheme-scram.c M src/auth/password-scheme.c 2017-04-09 15:31:11 +0300 Timo Sirainen (e18b4e41d) auth: Shuffle failed auth requests before sending the failure replies. This might be helpful against some timing attacks. Using Fisher–Yates shuffle. M src/auth/auth-request-handler.c 2017-04-09 15:19:25 +0300 Timo Sirainen (2656508b1) doveadm: Make doveadm_password safe against timing attacks. M src/doveadm/client-connection.c 2017-04-09 00:50:15 +0300 Timo Sirainen (f1d759d0b) auth: Make plaintext password comparisons safe against timing attacks M src/auth/password-scheme.c 2017-04-09 00:49:37 +0300 Timo Sirainen (9464dc83d) lib: Add mem_equals_timing_safe() M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2017-04-10 20:53:29 +0300 Aki Tuomi (2bc82f0d7) 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) M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h 2017-04-11 15:05:53 +0300 Aki Tuomi (c42ec3faf) fts: Remove indentation from fts_mailbox_list_created Preparation for next commit M src/plugins/fts/fts-storage.c 2017-04-11 14:55:04 +0300 Timo Sirainen (38bf95934) Makefile: Fix make distcheck when using scan-build The _build directory shouldn't be deleted afterwards or it'll just fail. M Makefile.am 2017-04-11 11:23:17 +0300 Timo Sirainen (353d9741c) Improve valgrind suppressions. M run-test-valgrind.supp 2017-04-10 18:12:47 +0300 Timo Sirainen (a2328a1c6) lib-imap-client: Fixes to unit test M src/lib-imap-client/test-imapc-client.c 2017-04-10 17:10:21 +0300 Timo Sirainen (bac4b1dc3) lib-imap-client: Add unit test Initially this tests some connection and reconnection problems. M src/lib-imap-client/Makefile.am M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h A src/lib-imap-client/test-imapc-client.c 2017-04-10 17:09:29 +0300 Timo Sirainen (40b989ef6) lib-imap-client: Include "ms" in reconnect warning message M src/lib-imap-client/imapc-connection.c 2017-04-10 17:07:28 +0300 Timo Sirainen (23b8146dd) 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. M src/lib-imap-client/imapc-connection.c 2017-04-10 17:06:34 +0300 Timo Sirainen (b884dafdd) lib-imap-client: Remove hardcoded IMAPC_CONNECT_RETRY_WAIT_MSECS We have a setting for it now. M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h 2017-04-10 16:44:52 +0300 Timo Sirainen (09c2c5ad6) 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. M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c 2017-04-10 16:18:46 +0300 Timo Sirainen (cda5d6350) lib-imap-client: Make command tag counter externally accessible This allows unit tests to reset it. M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c 2017-04-10 15:49:24 +0300 Timo Sirainen (f3e5f802f) 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. M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h 2017-04-10 14:14:40 +0300 Timo Sirainen (7b29303ef) lib-imap-client: imapc_client_deinit() didn't set client=NULL M src/lib-imap-client/imapc-client.c 2017-04-10 13:49:33 +0300 Timo Sirainen (efd4de737) imapc: Change imapc_connection_retry_interval setting to be in milliseconds. M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-storage.c 2017-04-10 13:50:40 +0300 Timo Sirainen (063597b19) 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. M src/lib-storage/index/imapc/imapc-settings.c 2017-04-10 13:48:23 +0300 Timo Sirainen (4727aef38) lib-imap-client: Change connect_retry_interval_secs to _msecs This allows caller to provide better precision. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/imapc/imapc-storage.c 2017-04-10 13:46:03 +0300 Timo Sirainen (8f47ed142) 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. M src/lib-imap-client/imapc-connection.c 2017-04-10 13:02:17 +0300 Timo Sirainen (f27497406) 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. M src/lib-http/http-client-request.c 2017-04-10 12:59:08 +0300 Timo Sirainen (bf7740f6b) lib-http: Add http_client_request_stats.first_sent_msecs Also rename sent_msecs to last_sent_msecs. M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2017-04-10 12:53:43 +0300 Timo Sirainen (f0452e0b3) lib-http: Track request's first and last send attempt times separately. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2017-04-10 11:51:51 +0300 Timo Sirainen (a89fc6c50) lib-program-client unit test: Let OS assign the listener port M src/lib-program-client/test-program-client-net.c 2017-04-05 12:36:32 +0300 Timo Sirainen (a87eeb418) *-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. M src/login-common/login-common.h M src/login-common/main.c 2017-04-05 12:52:14 +0300 Timo Sirainen (f6b8ff28f) 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.) M src/doveadm/doveadm-who.c 2017-04-07 09:28:55 +0300 Timo Sirainen (935c09c68) lib-http: Remove unnecessary enum declaration. Most of these were removed by a8fe899601735459641edae975c0fa08be8482e2 M src/lib-http/http-client-private.h 2017-04-05 14:14:57 +0300 Timo Sirainen (267cdf292) example-config: Add blocking setting to dovecot-ldap.conf.ext M doc/example-config/dovecot-ldap.conf.ext 2017-04-08 09:58:57 +0300 Timo Sirainen (71b8d0ad8) auth-var-expand-crypt plugin: Add missing ldflags M src/plugins/var-expand-crypt/Makefile.am 2017-04-09 15:48:59 +0300 Timo Sirainen (44d597bb3) fts-solr: Don't double-escape headers. M src/plugins/fts-solr/fts-backend-solr.c 2017-04-07 16:27:12 +0300 Timo Sirainen (727ae1595) auth: Fix crash in passdb imap on connection failures M src/auth/passdb-imap.c 2017-04-07 16:13:13 +0300 Timo Sirainen (0fab9e25d) 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. M src/lib-ssl-iostream/iostream-openssl-context.c 2017-04-07 15:47:27 +0300 Timo Sirainen (49bf57720) auth: passdb imap: Use ssl_client_ca_* settings. The args = ssl_ca_dir=.. setting still overrides the ssl_client_ca_dir. M src/auth/passdb-imap.c 2017-04-07 09:34:39 +0300 Timo Sirainen (4d26a4093) global: Remove extra ';' to fix compiler errors Sun C doesn't like them. M src/auth/auth-policy.c M src/plugins/mail-crypt/mail-crypt-key.c 2017-04-07 09:32:30 +0300 Timo Sirainen (cbf6592b0) global: Make sure all files end with newline Fixes compiler warnings with Sun C. M src/lib-imap/imap-envelope.c M src/lib-mail/message-part-data.c M src/lib-mail/message-part-data.h 2017-04-07 10:55:40 +0300 Timo Sirainen (34354d4b9) fs-posix: Fix FS_METADATA_WRITE_FNAME to preserve the path It should only change the filename. M src/lib-fs/fs-posix.c 2017-04-07 12:45:49 +0300 Timo Sirainen (bd0811156) 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. M src/doveadm/doveadm-mail.c 2017-04-07 12:42:12 +0300 Timo Sirainen (c2eecb35a) dict-sql: Fix setting $variables to iteration key when map had multiple values M src/lib-dict/dict-sql.c 2017-04-07 09:14:27 +0300 Timo Sirainen (76858e9df) lib: Redefine NULL only if HAVE_TYPE_CHECKS is set M src/lib/compat.h 2017-04-07 09:11:53 +0300 Timo Sirainen (d16199fcc) 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. M src/lib/compat.h M src/lib/macros.h 2017-04-05 15:59:51 +0300 Timo Sirainen (56af9dd10) *-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. M src/imap-login/imap-login-client.c M src/login-common/client-common.c M src/login-common/client-common.h M src/pop3-login/client.c 2017-04-06 20:43:20 +0300 Timo Sirainen (5f6b917cd) example-config: Add connect/read/write_timeout to mysql connect settings M doc/example-config/dovecot-sql.conf.ext 2017-04-06 20:00:31 +0300 Timo Sirainen (294c52ba4) 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. M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2017-04-06 19:49:07 +0300 Aki Tuomi (4f6a9b5de) imap-login: Retain client ID only when enabled M src/imap-login/imap-login-client.c 2017-04-05 14:23:47 +0300 Aki Tuomi (a34e0eb3d) lib-storage: Set internal error in imapc_list_get_hierarchy_sep M src/lib-storage/index/imapc/imapc-list.c 2017-04-05 14:23:26 +0300 Aki Tuomi (fc1584e52) imapc: Use IMAPC_COMMAND_STATE_AUTH_FAILED to indicate auth failure M src/auth/passdb-imap.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/imapc/imapc-mail-fetch.c 2017-04-05 14:22:38 +0300 Aki Tuomi (f498f60e7) lib-imap-client: Do not reset ips when reconnecting Avoids infinite loop M src/lib-imap-client/imapc-connection.c 2017-04-05 13:27:57 +0300 Aki Tuomi (9949dc364) lib-storage: Return empty value in imapc_list_get_storage_name on auth error Avoids clobbering authentication error. M src/lib-storage/index/imapc/imapc-list.c 2017-04-05 12:48:31 +0300 Aki Tuomi (1f31b38b6) lib-storage: Do not clobber error with imapc M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c 2017-04-05 12:47:24 +0300 Aki Tuomi (276c62e45) global: Fix imapc_client_login usage M src/auth/passdb-imap.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-storage/index/imapc/imapc-storage.c 2017-04-05 12:09:57 +0300 Aki Tuomi (dc2bbf107) lib-imap-client: Add login_callback setter This way it can be set before actually calling login which might happen some time later. M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h 2017-04-04 23:33:51 +0300 Dmitry Yakunin (52ca467ce) imapc: Fix memory leak in disconnected state M src/lib-imap-client/imapc-connection.c 2017-04-05 09:26:54 +0300 Aki Tuomi (a8396081c) auth: Update default policy string to include device id and protocol M src/auth/auth-settings.c 2017-04-04 15:59:04 +0300 Timo Sirainen (670a335d5) imap: Set command reason strings using the new human_args This way the reason string is already suitable for logging, since it's guaranteed to be valid UTF-8 without control chars. M src/imap/imap-commands-util.c 2017-04-04 15:58:42 +0300 Timo Sirainen (bf9e29ed2) imap: Add client_command_context.human_args Generated with imap_write_args_for_human() M src/imap/imap-client.c M src/imap/imap-client.h 2017-04-04 15:58:15 +0300 Timo Sirainen (72932593c) lib-imap: Add imap_write_args_for_human() M src/lib-imap/imap-util.c M src/lib-imap/imap-util.h 2017-04-04 15:38:00 +0300 Timo Sirainen (1dc34a3c9) imap: Add imap_client_command_get_reason() All the command -> reason string conversions now go through this function. M src/imap/cmd-fetch.c M src/imap/imap-commands-util.c M src/imap/imap-commands-util.h 2017-04-04 13:28:44 +0300 Timo Sirainen (9778cce39) lib: Increase net_connect*() EADDRNOTAVAIL retries to 20 4 is too little, since on busy systems it's sometimes failing. These calls should be pretty cheap, so lets try if 20 is enough. It would be nice if this was configurable, but the only practical way right now would be to use environment variable, which is a bit ugly. We could try it next if 20 is still not enough. M src/lib/net.c 2017-04-04 07:42:48 +0300 Martti Rannanjärvi (a934b65e8) config: Warn that director_consistent_hashing is obsolete M src/config/old-set-parser.c 2017-04-03 18:44:52 +0300 Timo Sirainen (f67a8e413) imapc: Compiler warning fix for 32bit systems M src/lib-imap-client/imapc-connection.c 2017-04-03 14:30:13 +0300 Martti Rannanjärvi (00cc7eb56) director: Make director_consistent_hashing=yes mandatory M src/director/director-connection.c M src/director/director-settings.c M src/director/director-settings.h M src/director/director.c M src/director/doveadm-connection.c M src/director/mail-host.c M src/director/mail-host.h 2017-03-31 10:57:14 +0300 Aki Tuomi (2744124e4) lib-imap-client: Make authentication failures more consistent This way they always say the same prefix, which is easier to spot. M src/lib-imap-client/imapc-connection.c 2017-03-31 10:49:50 +0300 Aki Tuomi (a82e26d85) lib-imap-client: Call login_callback on all authentication failures M src/lib-imap-client/imapc-connection.c 2017-03-31 10:12:58 +0300 Aki Tuomi (138ec8765) lib-imap-client: Fix reconnection This patch fixes reconnections to actually consider all IP addresses first and then delay for interval and retry at most retry count times. M src/lib-imap-client/imapc-connection.c 2017-03-31 11:01:15 +0300 Aki Tuomi (887518721) lib-imap-client: Remove io earlier to avoid hammering If connection has failed and reconnection is not yet possible, io has to be removed here, otherwise it will keep hammering the callback. M src/lib-imap-client/imapc-connection.c 2017-03-31 10:58:47 +0300 Aki Tuomi (42989c273) lib-imap-client: Only LOGOUT from connected connections M src/lib-imap-client/imapc-client.c 2017-03-31 09:44:28 +0300 Aki Tuomi (c515f5c96) lib-imap-client: Make retry count and interval configurable M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2017-03-31 09:59:02 +0300 Aki Tuomi (eae7a1783) lib-imap-client: Add imapc_client_try_stop M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c 2017-03-30 16:09:06 +0300 Aki Tuomi (feb5f5eb7) lib-sasl: Add missing input handler for xoauth2 M src/lib-sasl/mech-oauthbearer.c 2017-04-03 12:40:51 +0300 Timo Sirainen (4d074a5c4) director: Fix mail_hosts_dup() to duplicate tags correctly. The host->tag pointed to the old hosts list. Also the new hosts list's tags array wasn't filled. This fixes USER-LOOKUP to return host with default configuration, which fixes doveadm director status to not show "Initial config" as empty. M src/director/mail-host.c 2017-04-03 11:41:29 +0300 Martti Rannanjärvi (8c468894f) doveadm: Call mailbox_set_reason with initialized mailbox M src/doveadm/doveadm-mail-import.c 2017-04-01 22:12:37 +0300 Timo Sirainen (cddfd1355) global: Add mailbox_transaction_set_reason() calls Added to the most important places. M src/imap/cmd-append.c M src/imap/cmd-copy.c M src/imap/cmd-fetch.c M src/imap/cmd-select.c M src/imap/cmd-store.c M src/imap/cmd-thread.c M src/imap/imap-commands-util.c M src/imap/imap-commands-util.h M src/imap/imap-expunge.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h M src/imap/imap-search.c M src/imap/imap-state.c M src/imap/imap-sync.c M src/indexer/master-connection.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/mail-autoexpunge.c M src/plugins/quota/quota-storage.c 2017-04-01 21:54:30 +0300 Timo Sirainen (d1fbd2c26) lib-storage: Add mailbox_transaction_set_reason() M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2017-04-01 21:43:16 +0300 Timo Sirainen (61cf001f1) global: Add mailbox_set_reason() calls Added to the most important places. M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-save.c M src/doveadm/doveadm-mail.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-getmetadata.c M src/imap/cmd-notify.c M src/imap/cmd-rename.c M src/imap/cmd-resetkey.c M src/imap/cmd-select.c M src/imap/cmd-setmetadata.c M src/imap/cmd-subscribe.c M src/imap/imap-commands-util.c M src/imap/imap-notify.c M src/imap/imap-state.c M src/imap/imap-status.c M src/indexer/master-connection.c M src/lib-imap-storage/imap-metadata.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-lda/mail-deliver.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/mail-autoexpunge.c M src/lib-storage/mail-storage.c M src/lmtp/commands.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-status.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-storage.c M src/pop3/pop3-client.c 2017-04-01 21:16:37 +0300 Timo Sirainen (4b41218f9) lib-storage: Add mailbox_set_reason() Use it to log a debug message when mailbox is being opened. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2017-03-27 18:05:29 +0300 Timo Sirainen (92dab926b) lib-index: Don't increase modseq for backend/dirty flag changes These flags are used only for internal changes and they shouldn't be triggering any modseq changes. To avoid modseqs from unexpectedly shrinking, the new modseq counting behavior is enabled only for newly rotated transaction log files that have a new minor_version. M src/doveadm/doveadm-dump-log.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mail-transaction-log.h M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c 2017-03-30 20:38:44 +0300 Timo Sirainen (e0f4fbf12) lib-index: Add macros to check if transaction log file version is new enough. The version numbers are 8bit, so we can generate a single 16bit number out of them. M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log.h 2017-03-29 01:25:21 +0200 Stephan Bosch (28be42b4c) lib-http: client: Implemented means to obtain request statistics. M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2017-03-31 23:12:47 +0300 Aki Tuomi (75a6a96fd) lib: Fix strcasecmp mistake in var-expand M src/lib/var-expand.c 2017-03-31 16:42:55 +0300 Timo Sirainen (f33cd5b8b) lmtp: Die at startup if config reading fails. Although most of the time it's not strictly required for config to be read here, one exception is SSL server settings. If this config reading fails, the SSL initialization just crashes. So this gives a better error message than a crash. Also config reading really isn't supposed to fail anyway. M src/lmtp/main.c 2017-03-30 23:25:40 +0300 Timo Sirainen (5930d3ff7) lib-index: Assert in mail_index_append_finish_uids() to prevent UID wrapping This should be handled better eventually, but it's better to crash earlier now than later. This avoids a later assert: Panic: file mail-index-transaction-finish.c: line 187 (mail_index_transaction_get_uid): assertion failed: (rec->uid != 0) M src/lib-index/mail-index-transaction-update.c 2017-03-31 12:28:56 +0300 Timo Sirainen (15fa03837) lib-fs: Add FS_METADATA_ORIG_PATH This allows fs backends to keep track of the original filename and use it for logging purposes and such. M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2017-03-31 12:28:01 +0300 Timo Sirainen (8f900bf5b) lib-fs: Allow fs_set_metadata() to update already added metadata. Previously we were just appending the metadata multiple times with different values, which could have caused problems. M src/lib-fs/fs-api.c 2017-03-30 16:43:58 +0300 Timo Sirainen (b1e097e04) quota, acl: Use mail_user_plugin_getenv_bool() for boolean settings These were forgotten earlier. M src/plugins/acl/acl-backend.c M src/plugins/quota/quota.c 2017-03-31 01:02:49 +0300 Timo Sirainen (01c7913d4) imap: Fix assert-crash when hibernation triggers during IDLE syncing Fixes: Panic: file cmd-idle.c: line 182 (idle_hibernate_timeout): assertion failed: (ctx->sync_ctx == NULL) M src/imap/cmd-idle.c 2017-03-30 23:46:02 +0300 Timo Sirainen (eed02e3be) lib-http: http_client_request_delay_from_response() should use per-request timeout as max It was using the global request_timeout_msecs for the maximum timeout, which could be different from the per-request timeout set by http_client_request_set_attempt_timeout_msecs(). M src/lib-http/http-client-request.c 2017-03-30 22:29:13 +0200 Stephan Bosch (210256b5d) lib-http: client: Fixed request-specific attempt timeout. This is the timeout applied to a single request attempt. Using http_client_request_set_attempt_timeout_msecs() this can be set for a specific request. However, this was mostly ignored for requests that weren't in the process of handling response payload. Instead, the global request_timeout_msecs client setting was used. Also amended the (currently manual) test suite with tests that demonstated the problem and now verify the fix. M src/lib-http/http-client-connection.c M src/lib-http/test-http-client-errors.c 2017-03-28 19:40:27 +0300 Timo Sirainen (55ef2c46b) lib-index: Use time_to_local_day_start() instead of reimplementing M src/lib-index/mail-index-transaction-update.c 2017-03-28 19:14:00 +0300 Timo Sirainen (27a33f6aa) lib: Add time_to_local_day_start() M src/lib/test-time-util.c M src/lib/time-util.c M src/lib/time-util.h 2017-03-27 17:44:45 +0300 Timo Sirainen (c85dd5fbf) lib-index: Code cleanup - expand LOG_WANT_ROTATE() macro There was no reason it had to be a macro. Also this fixes off-by-one error when checking for log_rotate_min_size. M src/lib-index/mail-transaction-log.c 2017-03-27 10:33:42 +0300 Aki Tuomi (205f29a01) var-expand-crypt-plugin: Add test suite M src/plugins/var-expand-crypt/Makefile.am A src/plugins/var-expand-crypt/test-var-expand-crypt.c 2017-03-27 11:02:31 +0300 Aki Tuomi (e8d8cff11) var-expand-crypt: Fix data decryption M src/plugins/var-expand-crypt/var-expand-crypt-plugin.c 2017-03-27 09:39:03 +0300 Aki Tuomi (5d2c15eab) var-expand-crypt: Add error handling for initialization M src/plugins/var-expand-crypt/var-expand-crypt-plugin.c 2017-03-27 09:34:50 +0300 Aki Tuomi (820c323f8) var-expand-crypt: Do not free dcrypt context twice Found by coverity M src/plugins/var-expand-crypt/var-expand-crypt-plugin.c 2017-03-17 10:28:36 +0200 Aki Tuomi (ea0bf7871) test: lib-http: Check write_full return value in test Makes static analyzers happier M src/lib-http/test-http-client.c 2017-03-17 10:26:50 +0200 Aki Tuomi (ab9be857a) test: fts-squat: Ignore gettimeofday return value in test Makes static analyzers happier M src/plugins/fts-squat/squat-test.c 2017-03-17 10:26:06 +0200 Aki Tuomi (108bb19d2) test: lib-index: Ensure conficts_seqs is created in test Makes static analyzers happier M src/lib-index/test-mail-index-transaction-finish.c 2017-03-17 10:25:01 +0200 Aki Tuomi (50e44da76) test: lib: Ensure item is not null Makes static analyzers happier M src/lib/test-priorityq.c 2017-03-17 10:23:42 +0200 Aki Tuomi (9f99d5a1b) test: lib-program-client: Use i_close_fd instead of close M src/lib-program-client/test-program-client-unix.c 2017-03-17 10:23:14 +0200 Aki Tuomi (24c5bcb93) test: lib-program-client: Ignore some return values in test server Makes static analyzers happier M src/lib-program-client/test-program-client-net.c 2017-03-17 10:21:25 +0200 Aki Tuomi (c34bdea0d) test: lib: Check o_stream_flush return value in proxy test Makes static analyzers happier M src/lib/test-iostream-proxy.c 2017-03-17 10:19:17 +0200 Aki Tuomi (5c9773287) test: lib-fts: Ignore uni_utf8_get_valid_data return value Makes static analyzers happier M src/lib-fts/test-fts-tokenizer.c 2017-03-17 10:17:59 +0200 Aki Tuomi (b261fc7c4) test: mail-crypt: Check dcrypt_id_key_private_old return value Makes static analyzers happier M src/plugins/mail-crypt/test-mail-key.c 2017-03-17 10:16:11 +0200 Aki Tuomi (b75580cbe) test: lib-http: Check o_stream_send return value Makes static analyzers happier M src/lib-http/test-http-server.c 2017-03-17 10:13:59 +0200 Aki Tuomi (293586376) test: lib: Check o_stream_send return value Make static analyzers happier M src/lib/test-ostream-escaped.c 2017-03-27 19:50:53 +0300 Aki Tuomi (01aca4a52) driver-cassandra: Add metric for slow queries M src/lib-sql/driver-cassandra.c 2017-03-29 20:04:47 +0300 Martti Rannanjärvi (620ddd4ab) push-notification-driver-ox: Wait for http requests to finish in deinit This is to make sure mail_user is still usable in http response callback. M src/plugins/push-notification/push-notification-driver-ox.c 2017-03-30 15:53:59 +0300 Martti Rannanjärvi (b3abfd0ac) director: Log vhost count changes and HOST-UP/DOWN M src/director/director-connection.c M src/director/doveadm-connection.c M src/director/mail-host.c M src/director/mail-host.h 2017-03-30 01:42:53 +0300 Timo Sirainen (939f758ca) master: When logging fork() EAGAIN failure, include current ulimit -u value M src/master/service-process.c 2017-03-27 16:33:30 +0300 Timo Sirainen (5bbc21995) doveadm dump log: Use shared lib-index code for updating modseq When MAIL_TRANSACTION_MODSEQ_UPDATE records were seen, the printed modseqs afterwards weren't correct. Now that mail_transaction_update_modseq() is used, we don't need to keep this code synchronized with it. M src/doveadm/doveadm-dump-log.c 2017-03-27 16:30:16 +0300 Timo Sirainen (fb83662d3) doveadm dump log: Cleanup - don't change hdr.size Needed by the next commit. M src/doveadm/doveadm-dump-log.c 2017-03-27 16:26:09 +0300 Timo Sirainen (f6aa54d25) doveadm dump log: Use istream for reading the file. Cleans up the code a bit and removes the 1MB record limit. M src/doveadm/doveadm-dump-log.c 2017-03-29 13:28:36 +0300 Timo Sirainen (acfeae4e2) lib-storage: Fix potential dict transaction leak on transaction rollback. M src/lib-storage/index/index-transaction.c 2017-03-29 13:27:32 +0300 Timo Sirainen (5012586ed) lib-dict: Keep a linked list of all transactions in dict. This helps debugging if a transaction is leaked. M src/lib-dict/dict-private.h M src/lib-dict/dict.c 2017-03-29 16:15:36 +0300 Aki Tuomi (d56b6dfe6) auth: Do not cache username unless it was changed by lookup This could've caused usernames to be unexpectedly changed because they were cached by a lookup that did not include username in the cache key. M src/auth/auth-request.c 2017-03-29 15:37:36 +0300 Aki Tuomi (257111a99) auth: Mark username changed if it's changes in auth_request_try_update_username It was forgotten in by 865a82c1 M src/auth/auth-request.c 2017-03-07 13:32:15 +0200 Aki Tuomi (7c6818093) lib: Add uuid support to guid M src/lib/guid.c M src/lib/guid.h M src/lib/test-guid.c 2017-03-23 14:09:01 +0200 Aki Tuomi (7f3fe2655) mail-log: Differentiate autoexpunges from expunges M src/plugins/mail-log/mail-log-plugin.c 2017-03-23 14:08:30 +0200 Aki Tuomi (6c51e3c3d) lib-storage: Indicate mail is being autoexpunged This way plugins, such as mail_log, can detect this. M src/lib-storage/mail-autoexpunge.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail.c 2017-03-27 15:28:01 +0300 Timo Sirainen (c9712cd13) config: Don't stop the process due to idling. If the config process restarts, it also reloads configuration. We'd rather want the configuration reloads to always be explicit. M src/config/config-settings.c 2017-03-27 13:44:13 +0300 Timo Sirainen (2a24f3565) cassandra: Fallback consistency fix - it wasn't used permanently Because the "do I want to retry using primary consistency?" check was done using the first failure timestamp, after 60 seconds that check always returned TRUE. We should instead be checking the last timestamp for a query that was sent with the primary consistency. M src/lib-sql/driver-cassandra.c 2017-03-27 13:33:18 +0300 Timo Sirainen (a8a5f2f8c) cassandra: Fallback consistency fix - max retry interval was set wrong The maximum msecs is _MAX_RETRY_MSECS, not _FIRST_RETRY_MSECS M src/lib-sql/driver-cassandra.c 2017-03-26 19:08:18 +0200 Stephan Bosch (561a21c8e) lib-http: client: Fix aborting a request that has a delayed error. Caused by recent changes in delayed error handling. M src/lib-http/http-client-request.c M src/lib-http/test-http-client-errors.c 2017-03-19 15:35:14 +0200 Timo Sirainen (30871b77e) imapc: Add imapc_features=delay-login The connection to imapc_host is delayed until it's actually needed to be performed. M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2017-03-19 15:34:20 +0200 Timo Sirainen (3c9020237) imap: Remove imapc-specific "is connection valid?" code This is now done by imapc itself in the previous patch M src/imap/main.c 2017-03-19 15:32:53 +0200 Timo Sirainen (92cd929df) imapc: Fail user creation if login to imapc_host fails. This causes imapc to actually wait for the login to succeed or fail. Such a wait was already done by the imap code, which will be removed by the next patch. M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2017-03-25 15:46:58 +0200 Aki Tuomi (bd2a176b5) quota: Add backend register/unregister This way, other mail plugins can register their own quota backends. M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2017-03-24 14:46:05 +0200 Timo Sirainen (79454ba23) lib-mail: Fix read overflow / crash in message_header_decode() If the input string was "=?charset?Q|B?text?", the code attempted to look up the character after it. And if it was "=", the callback was called with size=-1, which ends up in a crash. M src/lib-mail/message-header-decode.c M src/lib-mail/test-message-header-decode.c 2016-11-29 09:38:21 +0200 Martti Rannanjärvi (7dd7e8ed4) ssl: deprecate no_compression in ssl_options Compression is now disabled by default. M doc/example-config/conf.d/10-ssl.conf M src/lib-master/master-service-ssl-settings.c 2016-12-16 22:18:02 +0200 Martti Rannanjärvi (519675ef3) doc: mention no_ticket in ssl config example M doc/example-config/conf.d/10-ssl.conf 2016-12-16 22:25:38 +0200 Martti Rannanjärvi (d25aba3ff) doc: remove obsolete ssl_dh_parameters_length from example config M doc/example-config/conf.d/10-ssl.conf 2016-12-19 11:59:18 +0200 Martti Rannanjärvi (0c83dfe6a) ssl: change to more secure default ssl_cipher_list M doc/example-config/conf.d/10-ssl.conf M src/lib-master/master-service-ssl-settings.c 2017-03-23 20:16:44 +0200 Timo Sirainen (c4ec7cb59) imap-login: Move forward_fields updating code to login-common This allows using the new client_add_forward_field() in e.g. plugins. M src/imap-login/imap-login-client.c M src/login-common/client-common.c M src/login-common/client-common.h 2017-03-24 04:21:49 +0200 Timo Sirainen (7c3717a05) lib-storage: Fix mail_user_autoexpunge() return value to be initialized properly M src/lib-storage/mail-autoexpunge.c 2017-03-23 14:27:28 +0200 Timo Sirainen (8c0afac05) lib-storage: Change mail_user_autoexpunge() to return number of autoexpunged mails M src/lib-storage/mail-autoexpunge.c M src/lib-storage/mail-autoexpunge.h 2017-03-23 14:19:42 +0200 Timo Sirainen (0c9dda2ba) lmtp: Trigger autoexpunging only for the last RCPT TO. Otherwise if the autoexpunging takes a long time, the LMTP client could disconnect due to a timeout. The mails would still eventually get delivered though, so it would result in duplicate mails being delivered. An alternative to this would be to keep all the mail_users referenced until the delivery is finished and then autoexpunge all of them at the end. It increases memory usage though and complicates the code, so at least for now it's not implemented. M src/lmtp/commands.c 2017-03-23 14:15:49 +0200 Timo Sirainen (646817f0c) lib-storage: Replace MAIL_STORAGE_SERVICE_FLAG_AUTOEXPUNGE with explicit mail_user_autoexpunge() This allows better control of which users are being autoexpunged. This patch changes behavior at least in two ways now: 1) After shared folder access, the owner user isn't autoexpunged at deinit. Although this is a bit questionable of whether it should be or not. 2) LMTP's quota check at RCPT TO stage doesn't trigger autoexpunging. M src/imap/imap-client.c M src/imap/main.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h M src/lmtp/commands.c M src/lmtp/main.c M src/pop3/main.c M src/pop3/pop3-client.c 2017-03-23 14:08:53 +0200 Timo Sirainen (f9dad5817) pop3: Start autoexpunging only after client is disconnected M src/pop3/pop3-client.c 2017-03-23 15:17:44 +0200 Aki Tuomi (439dab8f7) var-expand-crypt: Remove pointless assigment It's never used M src/plugins/var-expand-crypt/var-expand-crypt-plugin.c 2017-03-23 15:12:45 +0200 Aki Tuomi (9e38412ec) var-expand-crypt: Fix base64 encoding the break was missing, also removed confusing block. M src/plugins/var-expand-crypt/var-expand-crypt-plugin.c 2017-03-16 11:15:18 +0200 Martti Rannanjärvi (bf7dc750b) global: Log internal storage error on failure M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-flags.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-save.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/imap/imap-state.c M src/indexer/master-connection.c M src/lda/main.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-lda/mail-deliver.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/mail-autoexpunge.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-guid-cache.c M src/lmtp/commands.c M src/plugins/acl/doveadm-acl.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/mail-crypt/doveadm-mail-crypt.c M src/plugins/mail-crypt/mail-crypt-acl-plugin.c M src/plugins/mail-crypt/mail-crypt-key.c M src/plugins/mail-crypt/test-mail-key.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/push-notification/push-notification-driver-ox.c M src/plugins/push-notification/push-notification-event-mailboxcreate.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c 2017-03-17 09:23:00 +0200 Martti Rannanjärvi (8d2e45a30) lmtp: Log internal error on STATUS_CHECK_OVER_QUOTA failure M src/lmtp/commands.c 2017-03-16 11:12:29 +0200 Martti Rannanjärvi (98c217499) lib-storage: Add mail_storage_get_last_internal_error() This returns the error given to mail_storage_set_critical(). M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2017-03-22 18:02:37 +0200 Martti Rannanjärvi (8fc6dd057) quota: Use mail_user_plugin_getenv_bool to get quota_vsizes M src/plugins/quota/quota.c 2017-03-22 17:17:41 +0200 Martti Rannanjärvi (7f4fa3767) quota: Add quota_max_mail_size setting M doc/example-config/conf.d/90-quota.conf M src/plugins/quota/Makefile.am M src/plugins/quota/quota-private.h M src/plugins/quota/quota-status.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2017-03-23 10:16:30 +0200 Martti Rannanjärvi (64f889c7c) quota: Use quota_alloc_result in quota_settings.test_alloc M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c M src/plugins/trash/trash-plugin.c 2017-03-23 13:48:04 +0200 Martti Rannanjärvi (38ce5769d) quota: Introduce quota_alloc_result return type M src/plugins/quota/quota-status.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2017-03-23 15:05:12 +0200 Timo Sirainen (f504be57b) dbox: Allow ":" separator between mail_attachment_fs driver and args. The ":" separator is nowadays commonly used elsewhere for the separator, so it should work here as well. M src/lib-storage/index/dbox-common/dbox-storage.c 2016-12-25 10:36:59 +0200 Aki Tuomi (b8596c89d) lib: Add tests for extensions M src/lib/test-var-expand.c 2016-11-18 14:47:05 +0200 Aki Tuomi (dbc351d8a) var-expand-crypt: Encryption/decryption support for var-expand Registers new encrypt and decrypt processors for var-expand. M configure.ac M src/plugins/Makefile.am A src/plugins/var-expand-crypt/Makefile.am A src/plugins/var-expand-crypt/var-expand-crypt-plugin.c 2016-11-18 09:39:46 +0200 Aki Tuomi (5c00a22fc) lib: Add extension support for var-expand This enables loading new var-expand features using plugins. M src/lib/Makefile.am M src/lib/lib.c A src/lib/var-expand-private.h M src/lib/var-expand.c 2017-03-22 19:33:52 +0200 Aki Tuomi (0306a3100) lib: Check var_expand_long return value correctly M src/lib/var-expand.c 2016-11-22 10:54:43 +0200 Aki Tuomi (2c2bcffb5) lib: Fix whitespace in var-expand.c M src/lib/var-expand.c 2017-02-25 23:34:03 +0200 Aki Tuomi (34b724d1d) lib-storage: Add and use default mailbox iterator The idea is to allow mail plugins to see also the non-existent autoboxes by feeding them thru the iterator. Fixes problem where autocreated boxes are not seen by ACL plugin. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/mailbox-list-private.h 2017-03-21 13:14:41 +0200 Aki Tuomi (fbcc3e140) lib-storage: Expose mailbox_list_init_autocreate It is needed when backend_ctx is created on the fly M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/mailbox-list-private.h 2017-02-25 23:33:20 +0200 Aki Tuomi (7e1600ded) acl: Use MODULE_CONTEXT for mailbox list iterator M src/plugins/acl/acl-mailbox-list.c 2017-02-25 23:59:21 +0200 Aki Tuomi (2e295aaaf) acl: Use mailbox_list_context instead of ctx->ctx This prepares for the next commit M src/plugins/acl/acl-mailbox-list.c 2017-03-22 12:01:18 +0200 Aki Tuomi (be64b3bbf) lib-dict: Ensure all iterations and transactions are done in deinit M src/lib-dict/dict.c 2017-03-22 12:01:07 +0200 Aki Tuomi (f32da6b73) lib-dict: Track transaction counts M src/lib-dict/dict-private.h M src/lib-dict/dict.c 2017-03-22 10:33:20 +0200 Aki Tuomi (d42321abd) lib-dict: Fix test-dict linkage M src/lib-dict/Makefile.am 2017-03-22 10:32:58 +0200 Aki Tuomi (7932885c8) lib-dict: Use dict-fail iterator and transaction when missing from dict driver M src/lib-dict/dict.c 2017-03-22 12:05:32 +0200 Aki Tuomi (10f126b55) dict: Update correct counter in dict_iterate_init M src/lib-dict/dict.c 2017-03-22 10:32:04 +0200 Aki Tuomi (d70bf110f) lib-dict: Add dict-fail driver It can be used for providing various failures M src/lib-dict/Makefile.am A src/lib-dict/dict-fail.c M src/lib-dict/dict-private.h 2017-03-17 12:58:08 +0200 Martti Rannanjärvi (d4847b921) global: Log mailbox_list internal errors M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/imap/main.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/mail-autoexpunge.c M src/plugins/quota/quota-count.c M src/plugins/virtual/virtual-config.c M src/pop3/pop3-client.c 2017-03-17 12:38:21 +0200 Martti Rannanjärvi (8ca217bf3) lib-storage: Add mailbox_list_get_last_internal_error() This returns the error given to mailbox_list_set_critical(). M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2017-03-22 23:19:51 +0200 Martti Rannanjärvi (4e64ac91c) lib: Download unicode.org files from dovecot.org M src/lib-fts/Makefile.am M src/lib/Makefile.am 2017-03-17 23:39:33 +0100 Stephan Bosch (e46130f48) lib-http: client: Implemented http_client_request_url_str() function that accepts an URL string rather than a pre-parsed URL object. If the provided HTTP URL is invalid, the callback with the error is called some time later from the ioloop. This change also amends the test-http-client-errors test suite with a new test for this new feature. M src/lib-http/http-client-request.c M src/lib-http/http-client.h M src/lib-http/test-http-client-errors.c 2017-03-17 23:51:19 +0100 Stephan Bosch (7a358ecd8) lib-http: client: Make sure a request's log label never gets a duplicate request target part. Make sure the URL part of the label always only consists of a http://host:port part and nothing more. M src/lib-http/http-client-request.c 2017-03-17 23:35:55 +0100 Stephan Bosch (8d8457334) lib-http: client: Restructured the handling of delayed errors. The req->delayed_error* fields are cleared before the callback is called and before the request is dereferenced. This way, freeing the request never removes it from the delayed request list when the list is being processed. It also makes it possible to resubmit the request from the callback (mainly for future use). M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2017-03-17 23:18:52 +0100 Stephan Bosch (15fe3500f) lib-http: client: Clear request pointer immediately in http_client_request_error(). M src/lib-http/http-client-request.c 2017-03-17 23:00:42 +0100 Stephan Bosch (905ada5e5) lib-http: test-http-client-errors: Added test for using https:// while SSL is not configured. M src/lib-http/test-http-client-errors.c 2017-03-19 15:47:41 +0100 Stephan Bosch (ce3fc9190) global: Use http_response_get_message() to log HTTP responses. M src/auth/auth-policy.c M src/lib-http/http-client-connection.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts/fts-parser-tika.c M src/plugins/push-notification/push-notification-driver-ox.c 2017-03-19 15:09:03 +0100 Stephan Bosch (17908b11e) lib-http: Added a function to obtain a message suitable for logging from a response object. This prevents logging internal error codes (>= 9000). M src/lib-http/http-response.h 2017-03-19 15:06:13 +0100 Stephan Bosch (a8741f46c) lib-http: Explicitly define the start of the range of internal response status codes. M src/lib-http/http-client.h M src/lib-http/http-response.h 2017-03-17 23:03:03 +0100 Stephan Bosch (4102d9f26) lib-http: test-http-client-errors: Always use the proper error status code definitions rather than an integer literal. M src/lib-http/test-http-client-errors.c 2017-03-22 09:03:20 +0200 Aki Tuomi (89387c6f0) doveadm: Send and receive exit codes correctly The old code would assume TEMPFAIL for almost everything. M src/doveadm/client-connection.c M src/doveadm/server-connection.c 2017-03-22 19:21:55 +0200 Aki Tuomi (c466bbccb) doveadm: Add exit code/string conversion functions M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm.h 2017-03-20 20:22:36 +0200 Aki Tuomi (5b29a2a2e) dict-cdb: Fix API for v2.3 Broken by 39ea5717264668e2c7f9f7986eb821d21785f47f M src/lib-dict/dict-cdb.c 2017-03-20 20:21:56 +0200 Aki Tuomi (8e066cce9) lib-dict: Ensure init returns dict M src/lib-dict/dict.c 2017-03-10 10:05:14 +0200 Aki Tuomi (017d99aa1) pop3-login: Add FORWARD for XCLIENT This allows passing passdb variables. They are prefixed with forward_ when imported to extra fields. M src/pop3-login/client.c 2017-03-10 10:04:33 +0200 Aki Tuomi (67ac9e149) pop3-login: Pass forward_ passdb args using XCLIENT command M src/pop3-login/pop3-proxy.c 2017-02-20 20:37:09 +0200 Aki Tuomi (998eadc15) imap-login: Allow x-forward- to specify forward fields from trusted networks M src/imap-login/imap-login-client.c M src/imap-login/imap-proxy.c M src/login-common/client-common-auth.c 2017-02-20 20:36:58 +0200 Aki Tuomi (53f97800b) auth: Accept forward_fields from auth client M src/auth/auth-request.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h M src/login-common/client-common.h M src/login-common/sasl-server.c 2017-03-16 13:36:23 +0200 Aki Tuomi (6e76be05e) auth: Add auth_fields_import_prefixed M src/auth/auth-fields.c M src/auth/auth-fields.h 2017-03-14 10:01:51 +0200 Aki Tuomi (e88c6613d) auth: Support client_id variable When imap_id_retain is turned on, contains the client ID request content with dovecot special vars removed. M src/auth/auth-request-var-expand.c M src/auth/auth-request-var-expand.h 2017-03-16 10:01:23 +0200 Aki Tuomi (a9523ec8f) imap-login: Forward original client ID to next hop This will be done if ID is present. M src/imap-login/imap-proxy.c 2017-02-20 19:11:01 +0200 Aki Tuomi (2f7c73483) imap-login: Retain ID request without dovecot specials M src/imap-login/imap-login-client.c M src/login-common/client-common.h 2017-02-21 14:46:31 +0200 Aki Tuomi (07142eb1d) imap-login: Add option to retain client id This should be enabled if client_id is wanted for auth policy M src/imap-login/imap-login-settings.c M src/imap-login/imap-login-settings.h 2017-02-20 18:58:21 +0200 Aki Tuomi (a8dac1be6) auth: Accept client_id from auth client Client ID contains the ID client request string for IMAP. M src/auth/auth-request.c M src/auth/auth-request.h M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h M src/login-common/client-common.h M src/login-common/sasl-server.c 2017-03-09 14:08:40 +0200 Aki Tuomi (b045b6698) login-common: Add preproxy pool preproxy pool can be used to do allocations that are released once proxying starts. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/login-proxy.c 2017-01-29 01:03:00 +0200 Timo Sirainen (d35da39e6) imapc: Use LOGOUT to cleanly disconnect from server. This makes it clearer in the remote server's logs whether the disconnection was intentional or not. Use a hardcoded 5 second timeout for LOGOUT. It should be enough time for the server to finish sending the tagged reply. M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c 2017-03-16 18:46:28 +0200 Timo Sirainen (5eb43c3bb) lib-storage: Don't reset \Recent flags when rebuilding index The recent flags are tracked with first_recent_uid in the header. If the first_recent_uid is valid in the old index, preserve it. This way all mails don't show as having \Recent flag. This was used by sdbox and mdbox code. M src/lib-storage/index/index-rebuild.c 2017-03-16 09:38:59 +0200 Aki Tuomi (97f774ab0) trash: Move config file to trash user Makes static analyser happy M src/plugins/trash/trash-plugin.c 2017-02-26 16:10:58 +0200 Timo Sirainen (95fe5a25a) lib-index: Fix test-mail-index-transaction-update It was broken with TZ=Australia/ACT. Fixing it seems too troublesome, so just use TZ=UTC during the test. M src/lib-index/test-mail-index-transaction-update.c 2017-02-26 16:09:13 +0200 Timo Sirainen (b0831ed2d) lib-index: Minor fix to day_first_uid updating mktime() was getting a bit confused around day changes. Giving it only year/month/day makes it less confused. M src/lib-index/mail-index-transaction-update.c 2017-03-11 19:20:30 +0200 Aki Tuomi (bb0484f2d) doveadm: Do not crash doveadm-server if input file missing save commands expects valid input file for it to work, if we are not running for cli, and input file is not provided, provide EINVAL error to caller via i_stream_error. M src/doveadm/doveadm-mail.c 2017-03-16 09:36:23 +0200 Aki Tuomi (3dffcebc7) lib-dcrypt: Add asserts Fixes several static analysis reports M src/lib-dcrypt/dcrypt-openssl.c 2017-02-27 18:13:54 -0500 Josef 'Jeff' Sipek (10ac3345f) lib-storage & imap: add MAIL_ERROR_UNAVAILABLE as [UNAVAILABLE] [UNAVAILABLE] is defined in RFC 5530 and we were just missing a MAIL_ERROR_* constant to make use of it. M src/doveadm/doveadm-mail.c M src/imap/imap-commands-util.c M src/lib-storage/mail-error.h 2017-03-08 15:39:34 -0500 Timo Sirainen (3c6a7ca2d) imap, pop3, indexer-worker: Add (deinit) to process title before autoexpunging runs. lmtp should also do this, but it needs a bit larger changes. M src/imap/imap-client.c M src/imap/main.c M src/indexer/master-connection.c M src/pop3/main.c M src/pop3/pop3-client.c 2017-03-08 17:09:12 -0500 Timo Sirainen (7c6347e85) pop3: Add client.destroyed boolean M src/pop3/pop3-client.c M src/pop3/pop3-client.h 2017-03-13 14:23:11 +0200 Timo Sirainen (865a82c1e) auth: Auth workers shouldn't return username if it wasn't changed This continues the previous fix where username was always added to passdb/userdb cache, even if the username wasn't changed. That could have resulted in wrongly changing usernames if the cache key didn't uniquely identify the user. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-worker-client.c M src/auth/passdb-blocking.c M src/auth/userdb-blocking.c 2017-03-13 13:49:04 +0200 Timo Sirainen (e0a84bcd4) auth: passdb/userdb lookups via auth-worker cached too much of the replies Only the fields returned by the lookup itself were supposed to be cached. This was especially problematic if the lookup via auth-worker didn't uniquely identify the user. For example doing a passdb lookup for an attribute shared by multiple users could have caused the reply to contain the previous cached user's all extra fields. M src/auth/auth-worker-client.c 2017-03-15 13:29:11 +0200 Aki Tuomi (c12aed4d8) auth: Properly hide all fields with passwords client reply line wasn't hiding all items which contain 'pass' substring. This was inconsistent behaviour since elsewhere this was done. M src/auth/auth-client-connection.c 2017-03-15 18:20:31 +0200 Timo Sirainen (c5e62353a) *-login: Change API for how login_plugins hook into client allocation. The previous API worked badly when there were more than one plugin. The current behavior works similarly to how mail_plugins work. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/main.c 2017-03-13 22:52:41 +0200 Timo Sirainen (0098ac3b6) cassandra: Treat CASS_ERROR_SERVER_UNAVAILABLE as "write success is uncertain" Looks like the write could still have actually gone through. M src/lib-sql/driver-cassandra.c 2017-03-16 01:22:09 +0200 Timo Sirainen (878915649) lib-oauth2: Don't free oauth2_request too early. Move the freeing explicitly to only after calling the callback. The previous method of freeing it on when http_request was destroyed could have happened too early when oauth2_parse_json() called i_stream_unref(), which released the last reference to the http_request. M src/lib-oauth2/oauth2-introspect.c M src/lib-oauth2/oauth2-refresh.c M src/lib-oauth2/oauth2-token-validate.c 2017-03-16 01:12:57 +0200 Timo Sirainen (070caf28f) lib-oauth2: Fix memory leak if HTTP URL parsing fails. Also delay calling the callback. The callers don't necessarily expect an immediate callback (auth/db-oauth2.c doesn't). M src/lib-oauth2/oauth2-introspect.c M src/lib-oauth2/oauth2-private.h M src/lib-oauth2/oauth2-refresh.c M src/lib-oauth2/oauth2-token-validate.c M src/lib-oauth2/oauth2.c 2017-03-16 00:54:44 +0200 Timo Sirainen (d88304d95) auth: oauth2 - cleanup db_oauth2_lookup_callback_t db parameter isn't needed, because request->db already contains it. Also moved request parameter to be the first. M src/auth/db-oauth2.c M src/auth/db-oauth2.h M src/auth/passdb-oauth2.c 2017-03-16 00:51:15 +0200 Timo Sirainen (34cb91abb) auth: oauth2 - make it easier to see where db_oauth2_callback() is called Doesn't fix anything, but places the db_oauth2_callback() calls into the end of _continue() calls so it's clearer that they're always being called exactly once. M src/auth/db-oauth2.c 2017-03-16 01:35:38 +0200 Timo Sirainen (e252a81ca) auth: oauth2 - Clarify token validation success/valid error handling result->error is NULL only if result->success && !result->valid. Also !result->success is the more important error handling case. Write out these cases explicitly so it's easier to understand. M src/auth/db-oauth2.c 2017-03-16 00:42:28 +0200 Timo Sirainen (b928b757e) auth: oauth2 - remove db_oauth2_request.failed It is an unnecessary duplication of passdb_result. M src/auth/db-oauth2.c M src/auth/db-oauth2.h M src/auth/passdb-oauth2.c 2017-03-16 00:38:39 +0200 Timo Sirainen (5e48e3003) auth: oauth2 - remove db_oauth2_request.result It's not a persistent state. When it's set, the callback needs to be called. This way it's more difficult to forget to set it. M src/auth/db-oauth2.c M src/auth/db-oauth2.h M src/auth/passdb-oauth2.c 2017-03-16 00:33:24 +0200 Timo Sirainen (01484d200) auth: oauth2 - Template expand failure should be an internal error Not the default "password mismatch". Also changed the API to be closer to the other nearby functions. M src/auth/db-oauth2.c 2017-03-16 00:32:01 +0200 Timo Sirainen (3d365d35f) auth: oauth2 - make db_oauth2_template_export() static It's not used outside db-oauth2.c M src/auth/db-oauth2.c M src/auth/db-oauth2.h 2017-03-16 00:25:19 +0200 Timo Sirainen (6bcf2e419) auth: oauth2 - introspection lookup error should be internal failure Not the default, which is "password mismatch". M src/auth/db-oauth2.c 2017-03-16 00:15:10 +0200 Timo Sirainen (8fd1d49dc) auth: oauth2 - Make sure db_oauth2_request.req is set to NULL when it gets freed. Doesn't fix anything, but makes it clearer that req->req must not be aborted anymore after this stage, because it gets freed anyway. M src/auth/db-oauth2.c 2017-03-16 00:13:08 +0200 Timo Sirainen (cbf6b2a59) auth: oauth2 - Fix aborting auth requests on deinit. The auth_request needs to be finished by calling the callback. M src/auth/db-oauth2.c 2017-03-06 14:59:46 +0200 Aki Tuomi (000030feb) auth: Do not double-expand key in passdb dict when authenticating Broken by 79042f8c M src/auth/db-dict.c 2017-03-09 11:32:21 -0500 Timo Sirainen (a8d3f2d03) *-login: Remove unused client.proxy_state M src/login-common/client-common-auth.c M src/login-common/client-common.h 2017-03-09 10:48:33 -0500 Timo Sirainen (339726ad7) pop3-login: Remove usage of client.common.proxy_state M src/pop3-login/client.h M src/pop3-login/pop3-proxy.c 2017-03-09 10:46:36 -0500 Timo Sirainen (d77f679da) pop3-login: Log proxy state as human-readable string. M src/pop3-login/client.c M src/pop3-login/client.h M src/pop3-login/pop3-proxy.c M src/pop3-login/pop3-proxy.h 2017-03-09 10:41:52 -0500 Timo Sirainen (b4bf60434) imap-login: Log proxy state as human-readable string. Separate sent/received state and log them as strings. M src/imap-login/imap-login-client.c M src/imap-login/imap-login-client.h M src/imap-login/imap-proxy.c M src/imap-login/imap-proxy.h 2017-03-09 10:31:39 -0500 Timo Sirainen (2b96880f2) *-login: Add client.proxy_get_state() for providing human-readable proxy state If not implemented, it defaults to the old method of returning proxy_state number. M src/imap-urlauth/imap-urlauth-login.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/login-proxy.c M src/pop3-login/client.c 2017-03-07 14:36:45 -0500 Timo Sirainen (3e961b1de) pop3: Set process title before syncing mailbox. The syncing could be taking a long time, so it's useful to have the username in the process title during that. M src/pop3/pop3-client.c 2017-03-08 10:07:37 -0500 Timo Sirainen (7f2cb2e5b) imap: If unhibernation fails due to a mailbox error, log the mailbox name. M src/imap/imap-state.c 2017-03-08 09:28:14 -0500 Timo Sirainen (42886bc89) imap: When disconnecting due to FETCH failure, include "FETCH" in the log message. M src/imap/cmd-fetch.c 2017-03-07 18:10:57 +0200 Aki Tuomi (b1808dcac) lib-sasl: Fix xoauth2 data format Authentication data was missing user= M src/lib-sasl/mech-oauthbearer.c 2017-03-07 10:09:20 +0200 Aki Tuomi (3871fbbab) db-oauth2: Make sure request is removed only once Callback might be called twice. M src/auth/db-oauth2.c 2017-03-07 10:08:08 +0200 Aki Tuomi (477629dd3) lib-oauth2: Use http client destroy callback Avoids freeing memory early. Fixes signal 11 crash in auth M src/lib-oauth2/oauth2-introspect.c M src/lib-oauth2/oauth2-refresh.c M src/lib-oauth2/oauth2-token-validate.c 2017-03-06 13:16:12 +0200 Aki Tuomi (9fedd371d) auth: Apply skips to first passdb This is required to apply filters to first passdb, so that mechanism filters can be applied. M src/auth/auth-request.c 2017-03-05 19:45:04 +0100 Stephan Bosch (29e074eee) lib-http: test-http-server-errors: Fixed logically dead code. Problem reported by Coverity. M src/lib-http/test-http-server-errors.c 2017-03-02 23:12:45 +0100 Stephan Bosch (cb12dd3a1) lib-lda: smtp-client: Fixed memory leak of the error message string. M src/lib-lda/smtp-client.c 2017-03-02 23:51:45 +0100 Stephan Bosch (17e89642b) lib-lda: smtp-client: Fixed cleanup of LMTP client at end of transaction. It was not deinitialized, causing a memory leak. M src/lib-lda/smtp-client.c 2017-03-02 00:42:13 +0100 Stephan Bosch (e422d45a7) lib-smtp: lmtp-client: Fixed bug in timeout handling. The timeout was erroneously stopped when lmtp_client_send() was invoked before a connection was established. Once the connection finally got established, the timeout was removed. This would cause the client to wait indefinitely. M src/lib-smtp/lmtp-client.c 2017-03-02 00:03:50 +0100 Stephan Bosch (8ac67bc3b) lib-lda: smtp-client: Make sure only the first error determines the tempfail status. The client is supposed to stop running the moment the first error occurs. However, there is a (very unlikely) possiblity that the encapsulated LMTP client issues both an RCPT and DATA error callback in sequence. In that case, the second callback should not override the tempfail status of the first (the second likely is a tempfail). If the server disconnects right after failing the last of at least two recipients, the lmtp-client would issue a DATA callback with a disconnection error. The disconnect error would set the client->tempfail flag, which caused smtp_client_deinit*() to always return -1 in this scenario. M src/lib-lda/smtp-client.c 2017-03-03 08:31:50 +0200 Aki Tuomi (2461ec3b9) lib-oauth2: Add missing content-type header M src/lib-oauth2/oauth2-introspect.c 2017-03-02 18:32:15 +0200 Timo Sirainen (2dc6c073d) example-config: Update deliver_log_format comment M doc/example-config/conf.d/10-logging.conf 2017-03-02 09:15:13 +0200 Aki Tuomi (8f251da1b) lib-ssl-iostream: Ensure verify_remote_cert is true Forgotten in 38424b8081a75be3ef93729fed4d30dbafca5885 M src/lib-ssl-iostream/iostream-ssl.c 2017-03-01 13:12:41 +0200 Timo Sirainen (e0f82a1aa) imap-hibernate: Avoid using casts M src/imap-hibernate/imap-client.c 2017-03-01 12:29:17 +0200 Martti Rannanjärvi (3751b61df) fts: Don't add NULL content disposition or type to HTTP header M src/plugins/fts/fts-parser-tika.c 2017-03-01 09:15:29 +0200 Aki Tuomi (326fb016a) trash: Read settings after namespaces are loaded Fixes Panic: file mail-namespace.c: line 709 (mail_namespace_find): assertion failed: (ns != NULL) M src/plugins/trash/trash-plugin.c 2017-02-27 16:23:09 +0200 Timo Sirainen (b39dd4843) master: Try to listen on master socket even if all services couldn't be listened to. This could happen during a settings reload. M src/master/service-listen.c 2017-02-27 16:22:52 +0200 Timo Sirainen (9b7a4aa38) master: Add missing error logging for master socket listening failure. M src/master/service-listen.c 2017-02-27 16:22:08 +0200 Timo Sirainen (7369eabcd) master: Don't crash if master socket couldn't be re-opened after settings reload. M src/master/service-monitor.c 2017-02-23 11:47:20 +0200 Aki Tuomi (71cb0c746) imap-hibernate: Support userdb in var_expand M src/imap-hibernate/imap-client.c 2017-02-27 20:40:43 +0200 Aki Tuomi (1f58bee81) doveadm: Add missing newline to proxy kick output M src/doveadm/doveadm-proxy.c 2017-02-27 20:38:43 +0200 Aki Tuomi (235ef8cd3) doveadm: Ensure -- is added to command line before positional arguments for non-mails commands as well Was forgotten from 967efe37d1f10a28c0a086cc5919d4ce8917bed8 M src/doveadm/doveadm-cmd.c 2017-02-27 19:12:32 +0200 Aki Tuomi (967efe37d) doveadm: Ensure -- is added to command line before positional arguments This prevents parser from choking on dash. M src/doveadm/doveadm-mail.c 2017-02-27 19:04:55 +0200 Aki Tuomi (9384ef699) doveadm: Fix allow-empty-mailbox-name handling It was supposed to be handled for metadata commands only. Broken in 26c41874cf6019c3e39f0ed630b2a07a92b2635f M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2017-02-27 14:21:48 +0200 Timo Sirainen (6ebe7a974) doveadm move: Use mailbox_move() instead of copy+expunge This allows for some optimizations to be done. M src/doveadm/doveadm-mail-copymove.c 2017-02-27 09:39:06 +0200 Martti Rannanjärvi (e5d0656cb) master: add cassandra to printed build options M src/master/main.c 2017-02-26 15:37:36 +0200 Timo Sirainen (3e6f1c0a9) lib: Fix t_strf*time() unit tests Timezone isn't part of the standard struct tm, so %z doesn't necessarily expand as expected outside Linux. M src/lib/test-time-util.c 2017-02-26 15:21:13 +0200 Timo Sirainen (27ccbb0f3) dsync: Fix syncing attributes with large values. This mainly meant that large Sieve scripts weren't synced properly, because their last_change field was never deserialized, so it was set to 0. M src/doveadm/dsync/dsync-ibc-stream.c 2017-02-26 14:32:44 +0200 Timo Sirainen (f05d013c6) lazy-expunge: Use mailbox_move() instead of mailbox_copy() This allows some optimizations to be performed that are only possible when moving messages. It's slightly strange now that mail_expunge() is triggered twice for the same source mail, but lazy_expunge plugin is called very early so most plugins won't see it called twice. Currently only acl plugin sees it, and it doesn't care. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2017-02-25 21:47:01 +0200 Timo Sirainen (061801f2b) lib-dcrypt: Replace #if OPENSSL_VERSION_NUMBER with more explicit checks M m4/ssl.m4 M src/lib-dcrypt/dcrypt-openssl.c 2017-02-25 21:41:03 +0200 Timo Sirainen (e47cfc302) lib-dcrypt: Move most of the OpenSSL #if handling to macros This avoids #if calls being littered all over the file. This change can cause HMAC_CTX_free(NULL) to be called, but that seems to work fine without crashing. M src/lib-dcrypt/dcrypt-openssl.c 2017-02-24 12:27:02 +0200 Timo Sirainen (f64f2d4b7) mail-filter: Add missing error handling in ostream-ext-filter M src/plugins/mail-filter/ostream-ext-filter.c 2017-02-24 12:17:21 +0200 Timo Sirainen (850778e1f) auth: Removed dead code from oauth2 mechanism M src/auth/mech-oauth2.c 2017-02-24 12:13:36 +0200 Timo Sirainen (930765750) acl plugin: Fix Coverity warning Just switch the MALLOC_ADD() parameters, so that arithmetic doesn't get inside a sizeof(). M src/plugins/acl/acl-cache.h 2017-02-23 19:38:31 +0100 Stephan Bosch (97a8fde13) lib-http: client: Fixed i_unreached() failure occurring when a host's list of IPs changes while a connection is still pending. In that case, the IP of the pending connection may no longer be associated with that host. If the IP was not found anymore, the i_unreached() error occurred. M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c 2017-02-23 11:29:17 +0200 Aki Tuomi (d85468c00) auth: Export oauth2 pass_attrs to passdb reply M src/auth/db-oauth2.c 2017-02-23 12:41:26 +0200 Timo Sirainen (7a727b88f) pop3c: Fix compiling due to typo in previous commit M src/lib-storage/index/pop3c/pop3c-client.c 2017-02-20 17:49:34 +0200 Aki Tuomi (b3c095d1f) global: Fix ssl_set usage Remove verify_remote_cert, as it's always TRUE now. Set allow_invalid_cert to TRUE if verification is not required. M src/auth/db-oauth2.c M src/doveadm/doveadm-dsync.c M src/doveadm/server-connection.c M src/lib-http/http-client-connection.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/pop3c/pop3c-client.c 2017-02-20 09:32:15 +0200 Aki Tuomi (38424b808) lib-ssl-iostream: Fix ambiguity with SSL settings - lib-ssl-iostream as client: Use only allow_invalid_cert. If it's not set, verify the server cert. - lib-ssl-iostream as server: If verify_client_cert=FALSE, don't ask for the client cert. Otherwise, ask for client cert but still allow it if allow_invalid_cert=TRUE. M src/lib-ssl-iostream/iostream-openssl-context.c 2017-02-23 01:24:43 +0200 Timo Sirainen (d95c7dbfa) virtual: Include virtual mailbox name in "Mailbox ID unexpectedly lost" error M src/plugins/virtual/virtual-sync.c 2017-02-22 15:29:34 +0200 Timo Sirainen (e2fd3f13f) lib-storage: Allow mail_storage_set_error() to use existing error_string Fixes some code that may be attempting to copy an error from one storage to another, but actually ends up trying to copy within the same storage. M src/lib-storage/mail-storage.c 2017-02-22 20:05:16 +0200 Timo Sirainen (fdb838ec8) maildir: Fix checking vsize caching decision in "is this pop3 user?" If vsize extension is used, it's practically the same as if vsize's caching decision was YES. M src/lib-storage/index/maildir/maildir-mail.c 2017-02-22 20:04:28 +0200 Timo Sirainen (cee43a7b0) pop3c: Remove unnecessarily duplicated code setting vsize to cache This is important now that the vsize can be added also to index's vsize extension. M src/lib-storage/index/pop3c/pop3c-mail.c 2017-02-22 20:03:43 +0200 Timo Sirainen (dc7a24ade) pop3c: Prefetched streams didn't call istream_opened() or set virtual_size M src/lib-storage/index/pop3c/pop3c-mail.c 2016-11-01 18:43:57 +0200 Timo Sirainen (075081e25) lib-mail: istream-attachment-connector now allows msg_size=-1 for "unknown". M src/lib-mail/istream-attachment-connector.c M src/lib-mail/istream-attachment-connector.h M src/lib-mail/test-istream-attachment.c 2016-11-01 18:42:31 +0200 Timo Sirainen (24d6fd2b8) lib-mail: Make sure istream-attachment-connector detects wrong mail size. M src/lib-mail/istream-attachment-connector.c M src/lib-mail/test-istream-attachment.c 2016-11-01 18:35:48 +0200 Timo Sirainen (422df9158) lib: Added i_stream_create_min_sized*() M src/lib/istream-sized.c M src/lib/istream-sized.h M src/lib/test-istream-sized.c 2016-11-01 14:47:05 +0200 Timo Sirainen (c3c423426) lib: Added i_stream_create_sized_range() This is just a small wrapper to i_stream_create_sized() to specify stream's start offset. M src/lib/istream-sized.c M src/lib/istream-sized.h 2017-02-22 17:45:34 +0200 Timo Sirainen (dd38c9e81) trash plugin: Use correct hook for overriding mail_user vfuncs This was always wrong to do, and it crashes after f32382d2da479a4371e08c443679528db37ea988 M src/plugins/trash/trash-plugin.c 2017-02-22 17:21:56 +0200 Timo Sirainen (17ac264fe) expire plugin: Use correct hook for overriding mail_user vfuncs This was always wrong to do, and it crashes after f32382d2da479a4371e08c443679528db37ea988 M src/plugins/expire/expire-plugin.c 2017-02-22 15:32:19 +0200 Timo Sirainen (06c55920c) lazy-expunge: Fix error handling for GUID lookups If the mail is already expunged, the error should be ignored. In other situations the original error string should be preserved as part of the logged error message. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2017-02-22 16:09:07 +0200 Timo Sirainen (d09be27cc) lib-storage: Add missing service_user ref when creating shared mailbox's user. Was forgotten from d1bf4ae66b8bf3b9e28df1823d6d4adda2b923b6 Fixes: Panic: file mail-storage-service.c: line 1513 (mail_storage_service_user_unref): assertion failed: (user->refcount > 0) M src/lib-storage/index/shared/shared-storage.c 2017-02-22 13:30:18 +0200 Timo Sirainen (f6897616e) lib-storage: Removed mail_storage_service_user_free() backwards compatibility Used a separate commit so the macro can be left for v2.2 tree. M src/lib-storage/mail-storage-service.h 2017-02-22 13:30:00 +0200 Timo Sirainen (eb318ea05) global: Replace mail_storage_service_user_free() with _unref() M src/doveadm/doveadm-auth-server.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/imap-client.c M src/imap/main.c M src/indexer/master-connection.c M src/lda/main.c M src/lmtp/client.c M src/lmtp/commands.c M src/plugins/mail-crypt/doveadm-mail-crypt.c M src/plugins/mail-crypt/mail-crypt-acl-plugin.c M src/plugins/mail-crypt/test-mail-key.c M src/plugins/quota/quota-status.c M src/pop3/pop3-client.c 2017-02-22 13:28:43 +0200 Timo Sirainen (d1bf4ae66) lib-storage: Use refcounting for mail_storage_service_user doveadm import was freeing the user too early, which resulted mail_user._service_user pointing to freed memory. More importantly, after 34512eaad8b1b2f929e6d6e3a2f7252c29fba97b user->set was pointing to already freed memory. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lib-storage/mail-user.c 2017-02-22 13:02:27 +0200 Timo Sirainen (13f507c0d) quota: Don't log "Internal quota calculation error" It's not very informative and we can't give a better error message without changing the APIs. The real error should have been logged already anyway, so this is just duplication of an error. I think originally this was added because some backend forgot to log an error. M src/plugins/quota/quota-storage.c 2017-02-22 10:44:00 +0200 Timo Sirainen (6db1c8a3b) lib-lda: Fix pigeonhole testsuite to not crash M src/lib-lda/mail-deliver.c 2017-02-21 22:34:14 +0200 Timo Sirainen (035e7193b) lib: Fix again test-utc-mktime with 32bit time_t M src/lib/test-utc-mktime.c 2017-02-21 12:38:10 +0200 Timo Sirainen (87dae9ffc) lib-lda: Fix delivery logging when Sieve performs multiple actions Previous code assumed that it would work like: - save/copy - transaction commit - mail_deliver_ctx_get_log_var_expand_table() - repeat for transaction 2 While it really works: - transaction 1: save/copy - transaction 2: save/copy - transaction 1: commit - mail_deliver_ctx_get_log_var_expand_table() - transaction 2: commit - mail_deliver_ctx_get_log_var_expand_table() So the cache needs to be stored per transaction. This code still wouldn't work correctly if Sieve saved mails multiple times within the same transaction, but that doesn't happen (at least currently). M src/lib-lda/mail-deliver.c 2017-02-21 12:36:52 +0200 Timo Sirainen (d609c2ffc) lib-lda: Refactor - mail_deliver_log_update_cache() doesn't need entire deliver_ctx M src/lib-lda/mail-deliver.c 2017-02-21 12:34:59 +0200 Timo Sirainen (2e35ede0f) lib-lda: Refactor - Add struct mail_deliver_mailbox M src/lib-lda/mail-deliver.c 2017-02-21 19:55:48 +0200 Timo Sirainen (67905cc93) lib: Fix test-utc-mktime with 32bit time_t M src/lib/test-utc-mktime.c 2017-02-21 16:25:48 +0200 Martti Rannanjärvi (5423c3086) lib-mail: Place input/output of message-date tests in one struct Define both input and output of a message date test case in a single struct so it is easier to follow and less error prone. Also add some leap second tests. M src/lib-mail/test-message-date.c 2017-02-21 17:00:14 +0200 Martti Rannanjärvi (33e83879e) lib: Place input/output of utc_mktime tests in one struct Define both input and output of a utc_mktime test case in a single struct so it is easier to follow and less error prone. M src/lib/test-utc-mktime.c 2017-02-21 16:25:25 +0200 Martti Rannanjärvi (ac3de45a2) lib: Accept leap second in utc_mktime Accept leap second at any time in utc_mktime since utc_mktime is being used before applying the timezone offset everywhere. M src/lib/test-utc-mktime.c M src/lib/utc-mktime.c M src/lib/utc-mktime.h 2017-02-21 14:42:01 +0200 Timo Sirainen (289bd999f) imap: Fix error message in failed FETCH's NO reply. This was broken only with the new imap_fetch_failure = no-after setting. M src/imap/cmd-fetch.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h 2017-02-21 15:44:09 +0200 Timo Sirainen (1b0b44348) imapc: Error handling wasn't setting storage error everywhere. This would have used the previous error, which might not have been correct. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2017-02-21 14:20:22 +0200 Timo Sirainen (f86436b30) lib-storage: Fix mail.access_type for search prefetches M src/lib-storage/index/index-search.c 2017-02-21 13:48:36 +0200 Timo Sirainen (d03980c62) lmtp: Fix lmtp_user_concurrency_limit when userdb changes the username Anvil LOOKUP was done with the original username, while CONNECT/DISCONNECT was done with the changed username. So LOOKUP always thought that there were zero concurrent sessions for the user. M src/lmtp/commands.c 2017-02-21 11:55:55 +0200 Timo Sirainen (7c04ede0d) cassandra: Don't use i_error() from non-main thread It will only cause crashes. This was done only if the internal communication pipe couldn't be written to, which was pretty unlikely to happen. M src/lib-sql/driver-cassandra.c 2017-02-21 13:08:59 +0200 Timo Sirainen (17909931d) lib-storage: Fix assert-crash on corrupted dovecot.list.index with name_id==0 Fixes: Panic: file hash.c: line 213 (hash_table_insert_node): assertion failed: (key != NULL) M src/lib-storage/list/mailbox-list-index.c 2017-02-20 19:35:45 +0200 Timo Sirainen (bc315b159) lib-storage: Add asserts to make sure lookup_abort is being used correctly. M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort.c 2017-02-20 19:34:25 +0200 Timo Sirainen (4d690a42c) lib-storage, pop3-migration: Reset lookup_abort before continuing to search This doesn't really fix anything right now, but it'll allow adding the asserts in the following commit. M src/lib-storage/index/index-mailbox-size.c M src/plugins/pop3-migration/pop3-migration-plugin.c 2017-02-21 11:52:59 +0200 Aki Tuomi (54cad0e50) auth: Make sure tokeninfo or introspection URL is given M src/auth/db-oauth2.c 2017-02-21 11:21:19 +0200 Aki Tuomi (6a986052e) auth: Make tokeninfo optional It is not supported by all OAuth2 solutions M src/auth/db-oauth2.c 2017-02-21 11:18:37 +0200 Aki Tuomi (177056ea9) lib-oauth2: Support basic authorization M src/lib-oauth2/oauth2-introspect.c M src/lib-oauth2/oauth2-refresh.c M src/lib-oauth2/oauth2-token-validate.c 2017-02-20 15:47:33 +0200 Aki Tuomi (a102d1898) lib-index: Unconstifty pointer array clang complained about the extra const. M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction.c 2017-02-20 15:35:02 +0200 Aki Tuomi (26e5bdf37) lib-index: Add missing initialization for chained hooks M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction.c 2017-02-20 15:28:36 +0200 Aki Tuomi (6004fdf3c) lib,lib-storage: Move hook building code to lib This allows it to be reused elsewhere M src/lib-storage/mail-storage-hooks.c M src/lib/Makefile.am A src/lib/hook-build.c A src/lib/hook-build.h 2017-02-20 14:50:39 +0200 Aki Tuomi (23070cb7c) lib-lda: Do not involve mail-deliver plugin unnecessarely If no mail delivery by LDA/LMTP is being done, do not hook into the process. Fixes signal 11 crash with lazy-expunge. M src/lib-lda/mail-deliver.c 2017-02-20 14:34:25 +0200 Aki Tuomi (2b8ff102f) lib-index: Allow multiple hooks for transaction creation M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction.c 2017-02-20 14:26:41 +0200 Timo Sirainen (b317602a1) lib-compression: Fix test-compression to build without zlib M src/lib-compression/test-compression.c 2017-02-20 09:18:45 +0200 Aki Tuomi (ec3eb5329) pop3c: Add no pipelining pop3c feature This should help with certain broken pop3c servers that advertise that they support pipelining but they really don't. M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-client.h M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-settings.h M src/lib-storage/index/pop3c/pop3c-storage.c 2016-05-25 01:57:08 +0200 Stephan Bosch (74bc7e646) Partially implemented IMAP SEARCH=X-MIMEPART capability. This capability is currently Dovecot-specific. M src/lib-storage/Makefile.am M src/lib-storage/index/Makefile.am M src/lib-storage/index/imapc/imapc-search.c A src/lib-storage/index/index-search-mime.c M src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-search.c M src/lib-storage/mail-search-args-cmdline.c M src/lib-storage/mail-search-args-imap.c A src/lib-storage/mail-search-mime-build.c A src/lib-storage/mail-search-mime-build.h A src/lib-storage/mail-search-mime-register.c A src/lib-storage/mail-search-mime-register.h A src/lib-storage/mail-search-mime.c A src/lib-storage/mail-search-mime.h M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h M src/lib-storage/mail-storage.c M src/lib-storage/test-mail-search-args-imap.c 2017-02-20 01:24:09 +0200 Timo Sirainen (d1ab4c39b) example-config: Add mail_sort_max_read_count setting. M doc/example-config/conf.d/10-mail.conf 2017-02-20 01:16:56 +0200 Timo Sirainen (e76721e63) example-config: Add mail_vsize_bg_after_count setting. M doc/example-config/conf.d/10-mail.conf 2017-02-20 01:00:05 +0200 Timo Sirainen (263e4212e) example-config: Add imap_fetch_failure setting. M doc/example-config/conf.d/20-imap.conf 2017-02-19 21:58:54 +0100 Stephan Bosch (89f6c7c1f) auth: oauth2 mechanism: Fixed implicit boolean expression involving a pointer. Found with Clang -Wstrict-bool. M src/auth/mech-oauth2.c 2017-02-18 05:01:50 +0200 Timo Sirainen (a0cd302bc) lib-storage: Add explicit MAIL_ERROR_LOOKUP_ABORT error The MAIL_ERROR_NOTPOSSIBLE was a bit too generic to assume to mean the same thing. It doesn't look like there are any external plugins that break because of this change. M src/doveadm/doveadm-mail.c M src/imap/imap-commands-util.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort.c M src/lib-storage/mail-error.h M src/lib-storage/mail.c M src/pop3/pop3-client.c 2017-02-17 19:29:03 +0200 Timo Sirainen (dfaf420c4) lib-storage: Add mail.access_type M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort.c M src/lib-storage/mail-storage.h 2017-02-17 19:07:53 +0200 Timo Sirainen (a85cf0bdd) lib-storage: Add mail_sort_max_read_count setting. This controls how many slow mail accesses sorting can perform before it fails: a NO [LIMIT] Requested sort would have taken too long The SORT reply is still returned, but it's likely not correct. M src/lib-storage/index/index-sort-private.h M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2017-02-17 18:56:23 +0200 Timo Sirainen (2898ad002) lib-storage: Add MAIL_ERROR_LIMIT M src/doveadm/doveadm-mail.c M src/imap/imap-commands-util.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/mail-error.h 2017-02-17 18:32:05 +0200 Timo Sirainen (be6bde0e1) imap: If SEARCH/SORT fails but returns some results, send them to client. The previous error handling fixes cause SEARCH/SORT to now fail if there are any problems reading mails. This change makes the commands still return the best known results, so the IMAP client can still use them, even though they may not be entirely correct. M src/imap/imap-search.c 2017-02-17 18:30:51 +0200 Timo Sirainen (0796f4c0e) lib-storage: Fix error handling when searching mails Only expunge errors and failures caused by lookup_abort should be ignored. The rest of the mail errors mean that the search result might not be correct. We'll still run the search as fully as possible, but we just return an error at the end. M src/lib-storage/index/index-search.c 2017-02-17 18:24:31 +0200 Timo Sirainen (7f93dd01f) lib-storage: Search optimization - avoid parsing message_parts unnecessarily If they're not already cached, the mail is parsed twice: once to get the message_parts and again to perform the actual search. The searching can however do the message_parts parsing internally as well. M src/lib-storage/index/index-search.c 2017-02-17 18:19:46 +0200 Timo Sirainen (6cf18519f) lib-storage: Fix error handling when sorting mails. All errors were treated the same as if message had been expunged. This caused potentially wrong results to be sent to the client without any indication that they're wrong. M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-private.h M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-sort.h 2017-02-17 16:31:52 +0200 Timo Sirainen (ca004511f) lib-storage: Change vsize calculation to use the new mail_stream_opened This avoids calling mail_get_virtual_size() twice and is a bit cleaner approach. M src/lib-storage/index/index-mailbox-size.c 2017-02-17 16:20:06 +0200 Timo Sirainen (7204b8112) lib-storage: Add mail.mail_stream_opened and .mail_metadata_accessed These allow determining after mail_*() calls how efficiently they were performed. M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage.h 2017-02-17 16:14:39 +0200 Timo Sirainen (34f2590f3) lib-storage: Clarify what MAIL_LOOKUP_ABORT_READ_MAIL means. It should maybe even be renamed to something clearer. M src/lib-storage/mail-storage.h 2017-02-19 01:44:21 +0200 Timo Sirainen (2da176a0b) dsync: Don't assert-crash if duplicate attributes are seen Just ignore the duplicates. Normally this shouldn't happen, but due to some bugs for example a Sieve script could be returned once by doveadm_sieve plugin and another time from mail_attribute_dict. M src/doveadm/dsync/dsync-mailbox-export.c 2017-02-18 10:39:56 +0100 klemens (211c638d8) spelling fixes M NEWS M doc/example-config/conf.d/auth-system.conf.ext M doc/example-config/dovecot-sql.conf.ext M doc/man/doveadm-exec.1.in M doc/securecoding.txt M m4/dovecot.m4 M m4/endian.m4 M src/auth/password-scheme.h M src/config/config-filter.c M src/doveadm/client-connection-http.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-append.c M src/imap/cmd-thread.c M src/imap/main.c M src/lib-dcrypt/ostream-encrypt.c M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/fts-tokenizer.h M src/lib-http/http-client-queue.c M src/lib-imap/imap-base-subject.c M src/lib-index/mail-cache.c M src/lib-mail/message-part-data.h M src/lib-program-client/program-client-remote.c M src/lib-sasl/dsasl-client.h M src/lib-ssl-iostream/istream-openssl.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/mailbox-attribute.h M src/lib/fdatasync-path.c M src/lib/sha1.h M src/lib/sha3.c M src/lib/test-data-stack.c M src/log/log-connection.c 2017-02-19 15:47:48 +0200 Timo Sirainen (b98f1ffc0) imap: Fix running time in tagged command replies. The timing information was updated only after command_exec() returned. Most of the commands were handled within a single command_exec() though, so at the time when tagline was sent the running_usecs was still zero. The msecs in ioloop timing was correct though, because it relied only on the command start timing info. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c M src/imap/imap-commands.h 2017-02-19 02:03:08 +0200 Timo Sirainen (b4adb461c) doveadm: Add explicit mail_storage_init/deinit() calls This mainly prevents losing hooks that were registered by doveadm plugins. Otherwise what happens is: - mail_plugins are unloaded and they unregister their hooks - doveadm plugins (e.g. doveadm_sieve) are NOT unloaded - mail_storage_deinit() frees all the registered hooks - next mail_storage_init() initializes all new hooks - All mail_plugins are loaded and they register again their hooks - doveadm plugins are NOT re-loaded or re-initialized, so their existing hooks were lost. M src/doveadm/doveadm-mail.c 2017-02-19 02:02:20 +0200 Timo Sirainen (073353fe5) lib-storage: mail_storage_init/deinit() is now reference counted. This allows calling them multiple times and only the final deinit frees the data. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage.c 2017-02-19 02:01:24 +0200 Timo Sirainen (798530867) lib-storage: Assert-crash if duplicate internal hooks are added. M src/lib-storage/mail-storage-hooks.c 2017-02-19 15:54:53 +0200 Timo Sirainen (43b95471c) fs-posix: Add "no-fsync" parameter. This disables calling fdatasync() when fs_write() was done with FS_OPEN_FLAG_FSYNC. Useful for making tests faster. M src/lib-fs/fs-posix.c 2017-02-19 14:49:20 +0200 Timo Sirainen (46e17407e) imap: Code cleanup - Remove duplicate flags from imap_fetch_state All the cur_flushed, line_partial and line_finished were about the same thing. M src/imap/imap-fetch.c M src/imap/imap-fetch.h 2017-02-19 14:34:45 +0200 Timo Sirainen (905627a76) imap: Fix sending UID only when necessary on broken FETCHes. b748f91d0677fffaa2208b39ebb6db3aeb2e937b changed UID to be sent for most FETCH replies. There was also some existing code that attempted to do this, but didn't fully work. So now: 1) If there are no non-buffered replies, the entire FETCH response isn't sent. 2) If the buffer was already flushed and nothing else was sent, add UID to reply. The code paths for handling this are differently for imap_fetch_failure = disconnect-immediately vs others (depending on imap_fetch_cur_failed() return value). M src/imap/imap-fetch.c M src/imap/imap-fetch.h 2017-02-16 20:39:12 +0200 Timo Sirainen (9036b11c0) imap: Include info about last command in disconnection log line. Only if LOGOUT isn't sent, because that's already visible. M src/imap/imap-client.c M src/imap/imap-client.h 2017-02-16 20:29:46 +0200 Timo Sirainen (0eba75a2f) imap: Code cleanup - Move code to client_command_stats_append() M src/imap/imap-client.c 2017-02-16 20:17:32 +0200 Timo Sirainen (5334234b1) imap: Add imap_client.logged_out at LOGOUT This is useful for determining if client did a clean logout M src/imap/cmd-logout.c M src/imap/imap-client.h 2017-02-16 20:14:55 +0200 Timo Sirainen (567b56c2d) imap: Code cleanup - move command stats to struct client_command_stats M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c M src/imap/imap-sync.c 2017-02-17 15:46:38 +0200 Aki Tuomi (aee9f241f) mech-oauth2: Clarify logging M src/auth/mech-oauth2.c 2017-02-17 15:45:34 +0200 Aki Tuomi (ec87095cf) mech-oauth2: Set user_given=TRUE when username given in OAUTHBEARER M src/auth/mech-oauth2.c 2017-02-17 15:44:17 +0200 Aki Tuomi (8054b019b) mech-oauth2: Fix gs2-header parsing M src/auth/mech-oauth2.c 2017-02-14 18:48:51 +0200 Timo Sirainen (abd812f27) lib-storage: Update vsize header after sync only if sizes are cached. The result isn't needed yet in that case, so if it's slow to get the sizes it might as well be delayd until later. This is especially useful when indexer-worker triggers FTS indexing. The vsizes can be added to index after the mail is already read for FTS. Without this change the vsize update would first open all the mails and then the FTS indexing would open all the mails a second time. M src/lib-storage/index/index-mailbox-size.c 2017-02-07 16:18:55 +0200 Timo Sirainen (a758be690) lib-storage: Add mail_vsize_bg_after_count setting. If folder vsize calculation requires opening more than this many mails from disk (i.e. mail sizes aren't in cache already), return failure and finish the calculation via indexer process. This should be used like: protocol !indexer-worker { mail_vsize_bg_after_count = 10 } M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/plugins/quota/quota-count.c 2017-02-07 13:53:52 +0200 Timo Sirainen (abc063522) lib-storage: Don't stop vsize calculation on expunged mails. I don't know why I added such logic there in the first place. If we just skip the expunged mails, the end result should still be correct and usable when cached. M src/lib-storage/index/index-mailbox-size.c 2017-02-14 13:33:47 +0200 Aki Tuomi (98d09d445) README: Add note that we support OAUTHBEARER and XOAUTH2 M README.md 2017-02-13 15:33:21 +0200 Aki Tuomi (9b6701754) auth: Add oauth2 passdb M src/auth/Makefile.am A src/auth/db-oauth2.c A src/auth/db-oauth2.h A src/auth/passdb-oauth2.c M src/auth/passdb.c 2017-02-04 23:56:04 +0200 Aki Tuomi (d1c565179) auth: Add xoauth2 and oauthbearer mechanisms M src/auth/Makefile.am A src/auth/mech-oauth2.c M src/auth/mech.c 2017-02-06 12:56:27 +0200 Aki Tuomi (10f6f2224) auth: Add mechanism filter for passdbs M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-settings.h M src/auth/passdb.c M src/auth/passdb.h 2017-02-08 13:06:13 +0200 Aki Tuomi (edb35cb1a) auth: Add accessor for passdb template arguments M src/auth/passdb-template.c M src/auth/passdb-template.h 2017-01-26 10:49:08 +0200 Aki Tuomi (60c302a89) lib-oauth2: Add support library for OAUTH2 M configure.ac M src/Makefile.am A src/lib-oauth2/Makefile.am A src/lib-oauth2/oauth2-introspect.c A src/lib-oauth2/oauth2-private.h A src/lib-oauth2/oauth2-refresh.c A src/lib-oauth2/oauth2-token-validate.c A src/lib-oauth2/oauth2.c A src/lib-oauth2/oauth2.h 2017-02-15 22:13:12 +0200 Timo Sirainen (dfa4b048e) lib-index: Fix updating mail_index_header.day_first_uid If user received a mail every day, the day_first_uid wasn't being updated. This caused wrong caching decisions to be made in dovecot.index.cache: - Accessing >1 week old emails should have changed caching decision from "tmp" to "yes". This might not have happened, although as long as day_first_uid[7] pointed to an existing mail and email client accessed all the mails, this wouldn't have changed anything. - Cache compression is supposed to drop >1 week old mails when caching decision is "tmp". Not enough mails were being dropped because day_first_uid[7] pointed to a much older than 1 week old mails. Also added a unit test to make sure this works. Broken by d9ee2f9fb3ef7b9391bfeeff1b374aead51667aa M src/lib-index/mail-index-transaction-update.c M src/lib-index/test-mail-index-transaction-update.c 2017-02-15 22:12:15 +0200 Timo Sirainen (d97f939b1) lib-index: Add day_stamp parameter to mail_index_update_day_headers() This will help creating a unit test. M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction-update.c M src/lib-index/test-mail-index-transaction-finish.c 2017-02-15 18:20:05 +0200 Timo Sirainen (bb9065b1c) lib-storage: Re-open mailbox after it's undeleted. This is needed with mailbox formats that didn't fully open the mailbox while it was undeleted. M src/lib-storage/mail-storage.c 2017-02-15 18:18:46 +0200 Timo Sirainen (0b8282724) lib-storage: Don't sync mailbox after undeleting it. This is useful only when deleting it. With undeletion the syncing isn't useful and might actually be harmful with mailbox formats that didn't fully open the mailbox while it was undeleted. M src/lib-storage/mail-storage.c 2017-02-15 18:05:14 +0200 Timo Sirainen (3857e2945) lib-storage: Make sure mailbox undeletion won't go to infinite loop M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2017-02-15 23:32:52 +0200 Timo Sirainen (86448bdb6) mail-log: Add mail_log_cached_only setting. If enabled, everything except "save" event will log only the fields that can be looked up from cache. This improves performance if some of the fields aren't cached and it's not a strict requirement to log them. M src/plugins/mail-log/mail-log-plugin.c 2017-02-15 13:46:06 -0500 Josef 'Jeff' Sipek (65148af51) lib-imap-client: pass the reply text to the auth-failed state change callback M src/lib-imap-client/imapc-connection.c 2017-02-15 09:13:05 -0500 Josef 'Jeff' Sipek (7d8fe66fb) lib-imap-client: invoke state change callback on "authentication success" M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c 2017-02-15 09:12:35 -0500 Josef 'Jeff' Sipek (e883e4406) lib-imap-client: add callback to notify consumers about state changes Add a callback to notify imapc users about failures. Currently, the only failure defined is "authentication failed". M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c 2017-02-14 08:58:10 -0500 Josef 'Jeff' Sipek (adb27e42f) lib-imap-client: centralize authentication failed error logging M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/imapc/imapc-storage.c 2017-02-04 15:40:41 +0100 Stephan Bosch (c177bc7c1) lib-http: response parser: Drop previous response's pool immediately when parsing continues. Prevously, it would only do that when the first byte of the next response was received. This prevents wasting memory when no response is being parsed. M src/lib-http/http-response-parser.c 2017-02-04 16:21:51 +0100 Stephan Bosch (88ead42ee) lib-http: response parser: Always clear response to prevent referring to stale data. M src/lib-http/http-response-parser.c 2017-02-04 16:15:57 +0100 Stephan Bosch (5a7107476) lib-http: test-http-response-parse: Properly test multiple sequential responses. M src/lib-http/test-http-response-parser.c 2017-02-04 13:59:10 +0100 Stephan Bosch (1ec26e0b7) lib-http: message parser: Don't allocate a pool for the next message until it is needed. This prevents wasting memory when no message is being parsed. M src/lib-http/http-message-parser.c M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c 2017-02-04 14:11:36 +0100 Stephan Bosch (b04dfad6b) lib-http: message parser: Delay allocation of message header. M src/lib-http/http-message-parser.c 2017-02-04 14:03:25 +0100 Stephan Bosch (8b223f08b) lib-http: message parser: Don't create the connection_options array, unless it is actually used. M src/lib-http/http-message-parser.c M src/lib-http/http-request.c 2017-02-14 17:35:54 +0200 Timo Sirainen (201ce62e1) lib-mail: Fix duplicate HEADER_FILTER_ADD_MISSING_EOH callback call If headers weren't modified, the second reading of the istream shouldn't call any callbacks. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2017-02-15 00:08:49 +0200 Timo Sirainen (209d29ccf) doveadm: Added "mailbox path" command This allows easily printing a path for a mailbox, index, control dir, etc. M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2017-02-14 20:23:16 +0200 Timo Sirainen (2a494f93f) lib-lda: Code cleanup - remove unnecessary dest_mail check M src/lib-lda/mail-deliver.c 2017-02-14 20:20:07 +0200 Timo Sirainen (04ca05320) lib-lda: Don't set mail_deliver_context.dest_mail too early. It must be NULL for the caller, unless save_dest_mail==TRUE M src/lib-lda/mail-deliver.c 2017-02-13 20:49:12 +0200 Timo Sirainen (b3523787a) lib-lda: Implement %{storage_id} correctly M src/lib-lda/mail-deliver.c 2017-02-13 20:47:51 +0200 Timo Sirainen (eed56fe22) lib-lda: Fix deliver_log_format variables with Sieve With Sieve it was using src_mail for getting the values, which weren't correct especially if Sieve had modified the mail. M src/lda/main.c M src/lib-lda/Makefile.am M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h M src/lmtp/main.c 2017-02-13 20:46:16 +0200 Timo Sirainen (a97911139) lib-lda: Code cleanup - mail_deliver_open_mail() now uses uid parameter M src/lib-lda/mail-deliver.c 2017-02-13 20:44:31 +0200 Timo Sirainen (796d1ca5e) lib-lda: Remove %{storage_id} setting for now. It doesn't work with Sieve. The following patches add it back properly. M src/lib-lda/mail-deliver.c 2017-02-09 19:00:12 +0200 Timo Sirainen (12e28ffc2) lib-lda: Redesign mail_deliver_context.var_expand_table cache M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h 2017-02-09 18:49:53 +0200 Timo Sirainen (4f210e191) lib-lda: Avoid using mailbox_save_set_dest_mail() M src/lib-lda/mail-deliver.c 2017-02-09 18:46:14 +0200 Timo Sirainen (df71146c7) lib-storage: Add mailbox_save_get_dest_mail() This marks mailbox_save_set_dest_mail deprecated. It's not efficient to use since it frees the already-created dest_mail. M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2017-02-09 18:01:14 +0200 Timo Sirainen (5f1f92d6f) lib-lda: Remove unused mail_deliver_get_log_var_expand_table() M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h 2017-02-13 20:23:49 +0200 Timo Sirainen (8eba88323) virtual: Fix saving to a virtual mailbox to work again Previous changes broke it. M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-storage.h 2017-02-09 17:18:51 +0200 Timo Sirainen (880f7a015) plugins: Remove unnecessary mail_save_context.dest_mail==NULL checks It can never be NULL after the previous change: "lib-storage: Always create mail_save_context.dest_mail". M src/plugins/notify/notify-storage.c M src/plugins/quota/quota-storage.c M src/plugins/virtual/virtual-save.c M src/plugins/zlib/zlib-plugin.c 2017-02-09 17:14:57 +0200 Timo Sirainen (a82528107) lib-storage: Remove unnecessary mail_save_context.dest_mail==NULL checks It can never be NULL after the previous change: "lib-storage: Always create mail_save_context.dest_mail". The code removal in maildir_transaction_save_commit_pre() seemed potentially dangerous, but I don't think such code path is possible anymore. Also even if it is, it's probably fine since the mail_free() is called even earlier than before (although that itself might have been a problem). This also removes last traces of code that made it possible to save mails to mbox without assigning UID to the mail. The previous commit already caused this, so this is just removing dead code. M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-save.h M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-sync-private.h M src/lib-storage/index/mbox/mbox-sync.c 2017-02-09 16:53:47 +0200 Timo Sirainen (897368f75) lib-storage: Always create mail_save_context.dest_mail This allows removing similar mail_alloc() from storage backends and plugins that need it. As a side effect, this changes mbox code to always assign UIDs to saved mails. This shouldn't be much of a problem, since it happened practically always already. M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2017-02-09 16:34:52 +0200 Timo Sirainen (58289301c) lib-storage: Fix mailbox list index hook usage The previous method appeared to work, but not if the internal hooks were used more than once. M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2017-02-13 23:34:25 +0200 Timo Sirainen (9b08d9d9b) dict-sql: Fix error handling in commit sql_dict_prev_inc_flush() or sql_dict_prev_set_flush() might set ctx->error, so they need to be done earlier. M src/lib-dict/dict-sql.c 2017-02-14 10:42:26 +0200 Martti Rannanjärvi (7707c4b35) lib-index: zero mmap_length after logging error Logging that mmap(size=0) failed looks suspicious. M src/lib-index/mail-cache.c 2017-02-13 19:40:22 +0200 Aki Tuomi (532bb6cdc) mail-crypt: Do not restrict access in unit test This works around problem with docker M src/plugins/mail-crypt/test-mail-key.c 2017-02-14 10:54:29 +0200 Timo Sirainen (833fd67ff) lib: Clarify *_strsplit_spaces() and add unit test M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2017-02-13 23:46:15 +0200 Timo Sirainen (c2664306f) lib: Add pool_alloconly_create_clean() This partially reverts 2a2beae3a4c1e75b3aeff996781503138e6f24bc M src/lib/mempool-alloconly.c M src/lib/mempool.h 2017-02-13 20:02:24 +0200 Timo Sirainen (d9cec8211) LAYOUT=index: Fix duplicate mailbox name renaming to actually work M src/lib-storage/list/mailbox-list-index.c 2017-02-13 20:01:13 +0200 Timo Sirainen (0e9dc599a) LAYOUT=index: Rename mailbox_list_index_node.corrupted_parent to corrupted_ext The code will be useful for other purposes also besides updating corrupted parents. M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2017-01-31 19:43:30 +0200 Aki Tuomi (07038d3a1) driver-cassandra: Add support for speculative execution M m4/want_cassandra.m4 M src/lib-sql/driver-cassandra.c 2017-02-08 12:03:30 +0200 Timo Sirainen (945565e0c) lib-index: Add MAIL_INDEX_OPEN_FLAG_NO_DIRTY This way mailbox format backends that don't need dirty flags can use them for other purposes. M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index.h 2017-02-10 16:26:15 +0200 Timo Sirainen (f9cf9852b) cassandra: Track query counts internally and include them in metrics M src/lib-sql/driver-cassandra.c 2017-02-13 18:06:46 +0200 Timo Sirainen (3715e1d5c) lib-compress: Fix missing .gz header error message M src/lib-compression/istream-zlib.c 2017-02-13 18:05:13 +0200 Timo Sirainen (d827cffa4) lib-compress: Fix assert-crash when .gz header size exceeds buffer max length Instead treat the stream as corrupted and return EINVAL. Fixes: Panic: file istream.c: line 182 (i_stream_read): assertion failed: (_stream->skip != _stream->pos) M src/lib-compression/istream-zlib.c M src/lib-compression/test-compression.c 2017-02-10 15:27:13 +0200 Timo Sirainen (887c92aa9) lib-http: http_client_request_add_header() - Add key/value asserts These don't check that they're entirely correct as required by HTTP specifications. They're mainly there as a quick check that if the caller didn't validate the key/value in any way, we'll crash instead of creating a potential security hole. (Because with line feeds the attacker could add extra headers or even entirely new HTTP requests.) M src/lib-http/http-client-request.c 2017-02-13 09:09:28 +0200 Martti Rannanjärvi (8e90ca575) lib-index: clear file->mmap_size only after logging it Logging the error with size=0 loses information. M src/lib-index/mail-transaction-log-file.c 2017-02-13 09:08:25 +0200 Martti Rannanjärvi (9c7e81a1f) lib-index: don't reset ioloop_time on mmap error The variables seems to have been in the wrong order. M src/lib-index/mail-transaction-log-file.c 2017-02-08 12:47:06 +0200 Timo Sirainen (bbe7af394) quota: Log why quota_over_flag check is skipped if mail_debug=yes M src/plugins/quota/quota.c 2017-02-07 15:46:47 +0200 Timo Sirainen (40edfbbb8) quota: If quota_over_script is unset, skip the quota_over check. M src/plugins/quota/quota.c 2017-02-07 15:44:20 +0200 Timo Sirainen (b711a7fc7) quota: If quota_over_flag_value is unset, skip the quota_over check. M src/plugins/quota/quota.c 2017-02-07 15:33:07 +0200 Timo Sirainen (4009eb0bb) quota: Remove quota_over_flag_* from quota_root. They are used only in one specific location and don't need to be stored permanently. M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2017-02-10 13:17:00 +0200 Timo Sirainen (adea69875) global: Add asserts to make static analyzer happier. M src/auth/db-ldap.c M src/doveadm/doveadm-mail-index.c M src/lib-auth/auth-master.c M src/lib-fs/fs-posix.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/mail-autoexpunge.c M src/lib/file-dotlock.c M src/lib/iostream-temp.c 2017-02-10 13:15:58 +0200 Timo Sirainen (fd013f9c6) pop3-login: Code cleanup - Make sure destroying client stops processing. It would currently do it in any case, but this makes it clearer. M src/pop3-login/client.c 2017-02-10 13:15:26 +0200 Timo Sirainen (963842c00) global: Ignore unnecessary return values. M src/imap-urlauth/imap-urlauth-worker.c M src/plugins/virtual/virtual-storage.c 2017-02-10 13:13:01 +0200 Timo Sirainen (7f51c1ad9) mail-filter: Handle handshake write() failure M src/plugins/mail-filter/istream-ext-filter.c 2017-02-10 12:50:58 +0200 Timo Sirainen (766ba3eed) fts: Fix crash using fts_autoexpunge_exclude = \Special-use crash It crashed whenever seeing a mailbox that didn't have any special-use flags. M src/plugins/fts/fts-storage.c 2017-02-10 12:46:50 +0200 Timo Sirainen (4a48987ed) doveadm mailbox metadata list: Fix listing all metadata. It was listing only private attributes, because key_type=0 happens to be MAIL_ATTRIBUTE_TYPE_PRIVATE and key was never NULL. M src/doveadm/doveadm-mail-mailbox-metadata.c 2017-02-10 12:41:28 +0200 Timo Sirainen (c1ab825ed) mail-crypt-acl: Fix error handling Don't crash if mail_user creation failed. M src/plugins/mail-crypt/mail-crypt-acl-plugin.c 2017-02-10 12:40:41 +0200 Timo Sirainen (5202ed6f1) doveadm mailbox cryptokey generate: Fix error handling Don't crash if mail_user creation failed. M src/plugins/mail-crypt/doveadm-mail-crypt.c 2017-02-10 12:33:01 +0200 Timo Sirainen (52e31bbdd) doveadm mailbox cryptokey generate: Fix memory leak dest_user was set to NULL, but never freed. M src/plugins/mail-crypt/doveadm-mail-crypt.c 2017-02-10 12:20:37 +0200 Timo Sirainen (66761ea6a) lib-program-client: Clarify dot_input/dot_output NULL checks. Helps to avoid static analyzer false positives about NULL pointer dereference. M src/lib-program-client/program-client.c 2017-02-10 12:09:50 +0200 Timo Sirainen (0896246f4) doveadm director map: Fix checking if host parameter is required M src/doveadm/doveadm-director.c 2017-02-10 11:58:17 +0200 Timo Sirainen (ae9c5dd89) lib: Avoid unnecessary Coverity warnings in MALLOC_*() There doesn't seem to be any other nice way of avoiding these without separately marking every instance. M src/lib/malloc-overflow.h 2017-02-09 16:33:35 +0200 Timo Sirainen (ee92a5576) TODO: Remove some of the implemented features M TODO 2017-02-08 23:01:32 +0200 Timo Sirainen (84cccc6b5) pop3c: Increase timeout for PASS to 5 minutes. M src/lib-storage/index/pop3c/pop3c-client.c 2017-02-06 18:34:05 +0200 Timo Sirainen (c72fbbe63) sdbox: Fix assert-crash on mailbox create race If another process created the mailbox at the same time, the mailbox_guid wasn't set and opening the mailbox assert-crashed: Panic: file mail-storage.c: line 1744 (mailbox_get_metadata): assertion failed: ((items & MAILBOX_METADATA_GUID) == 0 || !guid_128_is_empty(metadata_r->guid)) M src/lib-storage/index/dbox-single/sdbox-storage.c 2017-02-07 21:07:54 +0200 Timo Sirainen (92c671c16) quota: Clarify quota_count() return value. M src/plugins/quota/quota-count.c M src/plugins/quota/quota-private.h 2017-02-07 20:41:41 +0200 Timo Sirainen (cd337e465) quota: Make sure quota_warning doesn't wrap "quota before" value. This could happen in some race conditions (and with bugs). M src/plugins/quota/quota.c 2017-02-07 18:26:50 +0200 Timo Sirainen (f97866381) quota: When executing quota_warning/over_flag script, log the reason why. M src/plugins/quota/quota-private.h M src/plugins/quota/quota-util.c M src/plugins/quota/quota.c 2017-02-06 14:37:05 +0200 Martti Rannanjärvi (2eeea57b4) lib-storage: remove mail_storage_get_driver_settings It has been marked obsolete. M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2017-02-07 13:19:17 +0200 Aki Tuomi (3e675de58) lib: Check that output max size is non-zero when version specified Otherwise we try to send version to non-existent output stream. M src/lib/connection.c 2017-01-22 13:42:25 +0100 Stephan Bosch (2a5682a64) fts-tika: Fixed HTTPS support by properly propagating SSL client settings from mail_user. M src/plugins/fts/Makefile.am M src/plugins/fts/fts-parser-tika.c 2017-01-22 13:41:25 +0100 Stephan Bosch (526631052) fts-solr: Fixed HTTPS support by properly propagating SSL client settings from mail_user. M src/plugins/fts-solr/Makefile.am M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-solr/solr-connection.h 2017-01-22 13:40:00 +0100 Stephan Bosch (26bdbffc3) lib-storage: Added mail_user_init_ssl_client_settings(). M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2016-12-28 12:02:14 -0600 johnkwoods (dce4003a3) lib-ldap: Remove extra return The ldap_connection_queue_request() function returns void. Trying to "return" something from a void function caused compiling issues on Solaris (Oracle Developer Studio 12.5). M src/lib-ldap/ldap-compare.c 2017-01-22 17:24:02 -0600 J. Nick Koston (f817e98f7) fts-solr: Allow username/password for solr connction Solr comes open to the world by default. For better security, we protect our solr installs with a user and password. This change allows dovecot to connect to these instances. Example usage in a fts.conf (permissions 0600) fts_solr = url=http://nick:pass@127.0.0.1:8983/solr/dovecot/ M src/plugins/fts-solr/solr-connection.c 2017-02-06 14:05:47 +0200 Timo Sirainen (e4109fe52) indexer: Don't send more requests directly from worker status callback This causes assert-crashes when workers disconnect while having multiple requests: indexer: Error: Indexer worker disconnected, discarding 2 requests for user@domain indexer: Panic: file indexer.c: line 69 (queue_try_send_more): assertion failed: (worker_connection_is_connected(conn)) M src/indexer/indexer.c 2017-02-05 16:49:05 +0200 Timo Sirainen (704a96fa6) imap: Add imap_fetch_failure setting This controls what happens when FETCH fails for some mails. The possible values are: disconnect-immediately: This is the original behavior. Whenever FETCH fails for a mail, the FETCH is aborted and client is disconnected. disconnect-after: The FETCH runs for all the requested mails, skipping any mails that returned failures, but at the end the client is still disconnected. no-after: The FETCH runs for all the requested mails, skipping any mails that returned failures. At the end tagged NO reply is returned. If the client attempts to FETCH the same failed mail more than once, the client is disconnected. This is to avoid clients from going into infinite loops trying to FETCH a broken mail. M src/imap/cmd-fetch.c M src/imap/imap-client.h M src/imap/imap-commands-util.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h M src/imap/imap-settings.c M src/imap/imap-settings.h 2017-02-05 16:24:08 +0200 Timo Sirainen (287a58f11) imap: Share mailbox closing code in SELECT/UNSELECT/CLOSE/LOGOUT/deinit M src/imap/cmd-close.c M src/imap/cmd-logout.c M src/imap/cmd-select.c M src/imap/cmd-unselect.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands-util.h 2017-02-05 16:23:35 +0200 Timo Sirainen (9aa91e371) imap: Free search updates on CLOSE M src/imap/cmd-close.c 2017-02-05 16:10:44 +0200 Timo Sirainen (b748f91d0) imap: Don't send empty FETCH () on failure It violates IMAP RFC. Send FETCH (UID n) instead. M src/imap/imap-fetch.c 2017-02-06 11:02:46 +0200 Timo Sirainen (2b8c4027a) lib-ssl-iostream: Fix memory leak in RSA_generate_key_ex() usage M src/lib-ssl-iostream/iostream-openssl-context.c 2017-02-06 11:23:50 +0200 Timo Sirainen (2f2b1b725) auth: Handle delayed credentials identically in auth-workers M src/auth/auth-request.c 2017-02-06 10:55:40 +0200 Timo Sirainen (dd6043c05) lib: Make sure NULL is defined to be ((void *)0) This avoids us having to do explicit (void *)NULL casts in e.g. io_add(..., NULL) context parameter. M src/lib/compat.h 2017-02-04 13:51:13 +0200 Timo Sirainen (34512eaad) lib-storage: Don't duplicate service user's settings into mail_user The mail_storage_service_user.user_set isn't used afterwards, so it can be directly used to avoid wasting memory. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2017-02-04 13:38:17 +0200 Timo Sirainen (3c2e763ab) lib-storage: Don't unnecessarily duplicate user's all setting strings user->unexpanded_set and user->set have the same life-time, so they can point to same strings. M src/lib-storage/mail-user.c 2017-02-05 20:29:10 +0200 Timo Sirainen (c6108c1bf) lib-ssl-iostream: Remove libdovecot_openssl_common.la Using such a library results in the same code being duplicated (in OSX) in both libssl_iostream_openssl.so and libdcrypt_openssl.so. This breaks the idea of openssl_init_refcount, because each one will have their own one. libdcrypt_openssl.so now links to libssl_iostream_openssl.so, which shouldn't really be a problem, because lib-ssl-iostream is part of the core libdovecot.so already. It would have been possible to also install libdovecot_openssl_common.so and link it to both libssl_iostream_openssl.so and libdcrypt_openssl.so, but that seems unnecessarily complicated. M src/lib-dcrypt/Makefile.am M src/lib-ssl-iostream/Makefile.am 2017-02-05 20:28:04 +0200 Timo Sirainen (84e69f2ae) lib-ssl-iostream: Remove empty $(ssl_sources) from Makefile M src/lib-ssl-iostream/Makefile.am 2017-02-05 20:26:12 +0200 Timo Sirainen (f089a10e4) lib-dcrypt: Link unit tests with libssl_iostream.la libssl_iostream_openssl.so requires this, and it doesn't get added from anywhere automatically. M src/lib-dcrypt/Makefile.am 2017-02-05 20:24:41 +0200 Timo Sirainen (fb8e12a31) lib-dcrypt: Remove unnecessary -shared link flag Not sure if this is harmful, but since no other plugin uses this it's not needed either. M src/lib-dcrypt/Makefile.am 2017-02-05 20:22:27 +0200 Timo Sirainen (d7d1fec9f) lib-dcrypt: Don't link liblib.la to libdcrypt_openssl.so At best this does nothing, at worst (like with OSX) it duplicates the entire liblib and creates split state between the two instances. M src/lib-dcrypt/Makefile.am 2017-02-05 20:20:37 +0200 Timo Sirainen (5fc85eac8) lib-dcrypt: If dcrypt can't be initialized, log also the reason. This is very helpful when debugging linking issues. M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c 2017-02-05 21:38:33 +0200 Timo Sirainen (e93dc99f2) lib-ssl-iostream: Detect whether to call ERR_remove_[thread_]state() via configure M m4/ssl.m4 M src/lib-ssl-iostream/dovecot-openssl-common.c 2017-02-05 21:31:08 +0200 Timo Sirainen (04b6c66af) lib-ssl-iostream: Call OBJ_cleanup() for all OpenSSL versions Just to reduce the #if checks that uglify the code. M src/lib-ssl-iostream/dovecot-openssl-common.c 2017-02-05 21:10:04 +0200 Timo Sirainen (b91659702) lib-ssl-iostream: Detect OPENSSL_cleanup() via configure It's ugly to have both OpenSSL version number check and a special LibreSSL check. M m4/ssl.m4 M src/lib-ssl-iostream/dovecot-openssl-common.c 2017-02-05 21:04:35 +0200 Timo Sirainen (803d5e009) lib-ssl-iostream: Detect OpenSSL memory functions' parameters via configure The version number check doesn't work correctly for LibreSSL. M m4/ssl.m4 M src/lib-ssl-iostream/dovecot-openssl-common.c 2017-02-05 21:56:20 +0200 Timo Sirainen (13479101d) lib-ssl-iostream: Use ASN1_STRING_get0_data() if it exists This avoids deprecation warnings about ASN1_STRING_data() in OpenSSL v1.1. M m4/ssl.m4 M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl.h 2017-02-05 21:51:29 +0200 Timo Sirainen (74feb3985) lib-ssl-iostream: Use RSA_generate_key_ex() if it exists This avoids deprecation warnings about RSA_generate_key() in OpenSSL v1.1. M m4/ssl.m4 M src/lib-ssl-iostream/iostream-openssl-context.c 2017-02-06 00:11:14 +0200 Timo Sirainen (f6fd135d1) dict-sql: Move USING TIMESTAMP to correct location for INSERTs M src/lib-dict/dict-sql.c 2017-02-06 00:48:18 +0200 Timo Sirainen (ea7f7e1a7) auth: Pass through passdb extra fields to auth-worker requests M src/auth/auth-request.c 2017-02-06 00:46:55 +0200 Timo Sirainen (90e417d32) auth: Code cleanup - Move userdb extra fields exporting to its own function M src/auth/auth-request.c 2017-02-05 19:52:20 +0200 Timo Sirainen (da61fd89f) lib: Fix compiler warning with non-Linux M src/lib/nfs-workarounds.c 2017-01-25 23:26:35 +0200 Timo Sirainen (c7378b542) lib-storage: Expunging now uses GUID only if it's in cache. Otherwise the GUID lookup may be expensive, which is especially bad when deleting a large number of mails. M src/lib-storage/index/index-mail.c 2017-02-03 19:40:54 +0200 Timo Sirainen (f5ddf3762) lib-storage: Fix autoexpunge locking to actually work correctly. It wasn't actually skipping the autoexpunging if the lock already existed. It autoexpunged anyway. M src/lib-storage/mail-autoexpunge.c 2017-02-04 10:42:21 +0200 Aki Tuomi (f977ec781) lib-storage: Put vsize in index only if it's not there M src/lib-storage/index/index-mail.c 2017-02-03 14:22:02 +0200 Aki Tuomi (79195413c) fts: Use mailbox_list_created hook Otherwise the deinit hook might get lost and fts would not be deinitialized. Reverts 11f12ca1c97583b551a4286fa6cd1ab33aa67680 which seems to have been unnecessary Fixes indexer-worker signal 11 crash M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h 2017-02-03 16:16:26 +0200 Timo Sirainen (f32382d2d) lib-storage: Once hooks have run, set vlast to NULL to make sure it's not used The functions can't be correctly overridden outside their own specific hooks. It would work only if hook_build_update() is called afterwards and currently there's no public API for that. M src/lib-storage/mail-storage-hooks.c 2017-01-30 21:28:20 +0200 Timo Sirainen (093d5c0cd) lib-storage: Add assert to make sure header parsing isn't recursed M src/lib-storage/index/index-mail-headers.c 2017-02-02 01:36:50 +0100 Stephan Bosch (b3df4be57) lib-http: client: Fixed peer reconnection failure handling. The addressed problem occurs in a very specific situation in which the original successful connection is dropped, yet a new connection fails. It manifests as an assertion failure or panic: Panic: file ioloop-epoll.c: line 189 (io_loop_handler_run_internal): assertion failed: (msecs >= 0) Panic: BUG: No IOs or timeouts set. Not waiting for infinity. The timing is very critical. However, this doesn't mean that the occurrence of this problem is very unlikely; it can happen frequently under high load. M src/lib-http/http-client-queue.c M src/lib-http/test-http-client-errors.c 2017-02-02 01:34:35 +0100 Stephan Bosch (aa881f8f1) lib-http: client: Respect the connection idle timeout, even when all queues have unlinked from a peer. Otherwise, the DNS TTL timeout dictates the connection idle timeout in some situations. M src/lib-http/http-client-peer.c 2017-02-02 11:47:24 +0200 Timo Sirainen (18c01c257) dict: Fix error logging if TIMESTAMP parameters are wrong. M src/dict/dict-commands.c 2017-02-01 10:48:37 +0200 Martti Rannanjärvi (000e7cdeb) lib-master: Ignore t_readlink ENOENT error on updating instances list The list may contain paths that don't exist anymore. M src/lib-master/master-instance.c 2017-01-31 21:03:29 +0200 Timo Sirainen (f46f53bad) imap: Fix panic on FETCH X-MAILBOX in virtual mailbox when mail is expunged M src/imap/imap-fetch.c 2017-01-31 20:27:54 +0200 Timo Sirainen (9b5576a26) lib: Fix -Wstrict-bool compiler warnings. M src/lib/test-path-util.c 2017-01-30 19:45:28 +0200 Martti Rannanjärvi (4f2c34337) lib: Implicitly ignore memmove and memcpy return values in path-util This is because dovecot code doesn't explicitly ignore the return values of those functions elsewhere either. M src/lib/path-util.c 2017-01-31 13:41:48 +0100 Stephan Bosch (e009b0d73) lib-http: server: Fix premature connection destroy in http_server_connection_output(). Added a reference to the connection object while it is sending the remainder of a response's payload. This is necessary, since http_server_response_send_more() can destroy the connection, for example when the request has a "Connection: close" header. This will only occur for responses with a very large payload, because otherwise the payload is fully sent in in the initial pass. M src/lib-http/http-server-connection.c 2017-01-09 23:13:03 +0200 Timo Sirainen (4e87679b7) lib-storage: When logging corrupted mail size, disable logging Message-ID for now This was causing crashes in some situations. It was originally added to figure out if there were problems with dovecot.index.cache containing data for wrong messages. This was never found to happen, although now thinking about it, the problem may have been 741287129c22cadc14c05584704685b31169dbce. So perhaps this code could be removed permanently as well. 6b44fc75c0039d1006ce4d543544552449b8e229 also attempted to fix this, but it wasn't enough. There was still some code path that lead to recursive header parsing. M src/lib-storage/index/istream-mail.c 2017-01-30 23:20:48 +0100 Stephan Bosch (6c7b2d544) lib: path-util: Fixed assertion in path_normalize(). The invariant was using the wrong variable for comparison, causing it to trigger erraticly. M src/lib/path-util.c 2017-01-30 19:17:33 +0200 Timo Sirainen (f3370dba5) lib: Fix t_get_working_dir() to properly allocate memory in data stack. M src/lib/path-util.c 2017-01-30 21:53:01 +0200 Timo Sirainen (89bc31f70) lib-mail: Fix message_part_data_is_plain_7bit() Content-Type parameters weren't handled exactly right. Broken by recent changes. M src/lib-mail/message-part-data.c 2017-01-30 18:55:29 +0200 Timo Sirainen (b02cd3fca) lib-imap: Fix another compiler warning Unnecessary, but older gcc complains. M src/lib-imap/imap-bodystructure.c 2016-12-29 23:32:04 +0200 Martti Rannanjärvi (d764f67e4) lib, lib-master: Add error_r to t_binary_abspath M src/lib-master/master-service-settings.c M src/lib/path-util.c M src/lib/path-util.h 2016-12-29 23:04:56 +0200 Martti Rannanjärvi (b1c85a1f8) lib: Add error_r to t_abspath and its callers M src/imap-urlauth/imap-urlauth.c M src/imap/main.c M src/lda/main.c M src/lib/path-util.c M src/lib/path-util.h M src/lmtp/main.c M src/master/main.c M src/pop3/main.c 2016-11-29 20:50:28 +0200 Martti Rannanjärvi (b28403dc4) lib: Add tests for path-util M src/lib/Makefile.am M src/lib/test-lib.inc A src/lib/test-path-util.c 2016-12-04 12:13:00 +0200 Martti Rannanjärvi (f6925c43f) lib: Add Pigeonhole realpath functions to path-util M src/lib/path-util.c M src/lib/path-util.h 2016-12-04 12:52:51 +0200 Martti Rannanjärvi (f0913bab5) lib: Rename t_get_current_dir to t_get_working_dir Also add an error_r parameter that cannot be NULL. M src/lib/eacces-error.c M src/lib/nfs-workarounds.c M src/lib/path-util.c M src/lib/path-util.h M src/lib/unlink-directory.c M src/lmtp/main.c 2016-12-04 12:47:22 +0200 Martti Rannanjärvi (dd645357a) lib: Add error_r to t_readlink and its callers M src/config/doveconf.c M src/lib-master/master-instance.c M src/lib-master/master-service.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/mailbox-list.c M src/lib/path-util.c M src/lib/path-util.h 2016-11-30 12:03:30 +0200 Martti Rannanjärvi (8da8e8a20) lib: Add asserts to t_abspath and t_abspath_to M src/lib/path-util.c 2016-11-30 08:40:40 +0200 Martti Rannanjärvi (dfa2201c6) lib: Rename abspath to path-util M src/config/doveconf.c M src/imap-urlauth/imap-urlauth.c M src/imap/main.c M src/lda/main.c M src/lib-http/test-http-payload.c M src/lib-master/master-instance.c M src/lib-master/master-service-settings.c M src/lib-master/master-service.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/mailbox-list.c M src/lib/Makefile.am M src/lib/eacces-error.c M src/lib/nfs-workarounds.c R098 src/lib/abspath.c src/lib/path-util.c R095 src/lib/abspath.h src/lib/path-util.h M src/lib/unlink-directory.c M src/lmtp/main.c M src/master/main.c M src/pop3/main.c 2017-01-30 18:29:36 +0200 Timo Sirainen (49d0f8cb2) lib-imap: Fix compiler warning Unnecessary, but older gcc complains. M src/lib-imap/imap-envelope.c 2017-01-14 13:33:05 +0100 Stephan Bosch (30116399e) lib-imap: Created test-imap-envelope. M src/lib-imap/Makefile.am A src/lib-imap/test-imap-envelope.c 2016-12-29 14:02:05 +0100 Stephan Bosch (3b17e4c33) lib-imap: imap-envelope: Added function for parsing ENVELOPE from string. M src/lib-imap/imap-envelope.c M src/lib-imap/imap-envelope.h 2016-10-26 23:44:47 +0200 Stephan Bosch (62306adc1) lib-imap: Added more comments to imap-bodystructure and imap-envelope. M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-envelope.c 2016-10-24 01:45:18 +0200 Stephan Bosch (26a2909cb) lib-imap: imap-bodystructure: Added support for making imap_bodystructure_parse() work without a pre-existing message_part tree. It can now create the tree from the BODYSTRUCTURE string itself. M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h M src/lib-imap/test-imap-bodystructure.c 2016-10-24 01:01:19 +0200 Stephan Bosch (6407243c0) lib-mail: message-part-data: Implemented message_part_data_get_filename(). Gets the message part's filename if it has any. M src/lib-mail/message-part-data.c M src/lib-mail/message-part-data.h 2016-10-24 00:19:05 +0200 Stephan Bosch (b674bd911) lib-mail: message-part-data: Renamed struct message_part_envelope_data to message_part_envelope. M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-envelope.h M src/lib-mail/message-part-data.c M src/lib-mail/message-part-data.h M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.h 2016-10-23 22:29:49 +0200 Stephan Bosch (042a58438) lib-imap: imap-envelope: Moved imap_envelope_headers to lib-mail/message-part-data as message_part_envelope_headers. M src/lib-imap/imap-envelope.c M src/lib-imap/imap-envelope.h M src/lib-mail/message-part-data.c M src/lib-mail/message-part-data.h M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail-headers.c 2016-10-23 20:05:33 +0200 Stephan Bosch (57e3b63a7) lib-imap: imap-bodystructure: Moved message_part_data header parsing and query functions to their own module in lib-mail. Moved code from imap-bodystructure and imap-envelope. M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h M src/lib-imap/imap-envelope.c M src/lib-imap/imap-envelope.h M src/lib-imap/test-imap-bodystructure.c M src/lib-mail/Makefile.am A src/lib-mail/message-part-data.c A src/lib-mail/message-part-data.h M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c 2016-10-23 19:47:12 +0200 Stephan Bosch (afd6338f1) lib-imap: imap-bodystructure: Renamed imap_bodystructure_is_plain_7bit() to message_part_data_is_plain_7bit(). M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h M src/lib-storage/index/index-mail.c 2016-10-23 19:00:10 +0200 Stephan Bosch (946f22af1) lib-imap: imap-envelope: Renamed imap_envelope_parse_header() to message_part_envelope_parse_from_header(). M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-envelope.h M src/lib-storage/index/index-mail-headers.c 2016-10-23 18:10:01 +0200 Stephan Bosch (535dbe3c3) lib-imap: imap-evenvelope: Changed imap_envelope_get_field() into a private equivalent. M src/lib-imap/imap-envelope.c M src/lib-imap/imap-envelope.h 2016-10-23 17:51:59 +0200 Stephan Bosch (df459621b) lib-imap: imap-bodystructure: Renamed imap_bodystructure_parse_header() to message_part_data_parse_from_header(). M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h M src/lib-imap/test-imap-bodystructure.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c 2016-10-23 17:27:07 +0200 Stephan Bosch (341c6814c) lib-imap: imap-bodystructure: Grouped together functions relating to the conversion of BODYSTRUCTURE to BODY. This only moves code. M src/lib-imap/imap-bodystructure.c 2016-10-23 16:50:25 +0200 Stephan Bosch (2483736d1) lib-imap: imap-bodystructure: Changed struct message_part_body to contain fully decoded data. Contained unparsed IMAP string data before. M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h M src/lib-imap/imap-envelope.c M src/lib-storage/index/index-mail.c 2016-10-23 16:49:37 +0200 Stephan Bosch (300daf3c1) lib-imap: imap-envelope: Added function to parse struct message_part_envelope_data from parsed imap args. M src/lib-imap/imap-envelope.c M src/lib-imap/imap-envelope.h 2016-10-23 14:06:44 +0200 Stephan Bosch (9e6c6b34b) lib-imap: imap-bodystructure: Renamed `d' parameter to `data' in parse_content_header() function. M src/lib-imap/imap-bodystructure.c 2016-10-23 13:52:10 +0200 Stephan Bosch (03d429382) lib-imap: imap-envelope: Removed useless pool field from struct message_part_envelope_data. M src/lib-imap/imap-envelope.c 2016-10-23 13:50:05 +0200 Stephan Bosch (28dffd17c) lib-imap: imap-bodystructure: Removed useless pool field from struct message_part_data. M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h 2016-10-23 13:29:43 +0200 Stephan Bosch (c59d22d58) lib-mail: Gave message_part_data its own field in struct message_part. M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h M src/lib-mail/message-part.h M src/lib-storage/index/index-mail.c 2016-10-23 13:10:11 +0200 Stephan Bosch (1eeb9f438) lib-imap: imap-bodystructure: Renamed struct message_part_body_data to message_part_data. M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h M src/lib-storage/index/index-mail.c 2016-10-23 12:10:44 +0200 Stephan Bosch (dc84547cb) lib-imap: Removed existing envelope parsing function. This is currently only used by imaptest. Alternative API is provided in later commit. M src/lib-imap/imap-envelope.c M src/lib-imap/imap-envelope.h 2017-01-08 12:00:15 +0100 Stephan Bosch (78f92fe96) lib-imap: test-imap-bodystructure: Added normalization tests. M src/lib-imap/test-imap-bodystructure.c 2017-01-09 02:03:25 +0100 Stephan Bosch (b9de83e56) lib-imap: imap-bodystructure: Allow alternative syntax and omitted optional elements in parser input. This makes the parser accept any RFC-compliant BODYSTRUCTURE syntax, instead of only what Dovecot itself produces. This way the parser could reliably be used in the lib-imap-client if ever needed. M src/lib-imap/imap-bodystructure.c 2017-01-09 16:29:26 +0100 Stephan Bosch (bac296ef1) lib-imap: test-imap-bodystructure: Added more tests. M src/lib-imap/test-imap-bodystructure.c 2017-01-09 16:20:29 +0100 Stephan Bosch (3693d00ae) lib-imap: test-imap-bodystructure: Improved handing of parse errors. Actually show the parse error. M src/lib-imap/test-imap-bodystructure.c 2017-01-09 16:16:46 +0100 Stephan Bosch (cd1ab1e2b) lib-imap: test-imap-bodystructure: Added support for more than one test case. M src/lib-imap/test-imap-bodystructure.c 2017-01-08 22:50:02 +0100 Stephan Bosch (bf7aee059) lib-imap: imap-bodystructure: Fixed parse error message about invalid Content-M5 field. M src/lib-imap/imap-bodystructure.c 2017-01-30 15:12:04 +0200 Timo Sirainen (00b2516ff) lib-storage: Set vsize extension when copying mails. M src/lib-storage/index/index-storage.c 2017-01-30 15:11:45 +0200 Timo Sirainen (424633d1a) lib-storage: Add index_mail_get_vsize_extension() M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2017-01-30 15:06:46 +0200 Timo Sirainen (134987bc3) lib-storage: Move index_mail.vsize_ext_id to mailbox.mail_vsize_ext_id It's mailbox-specific, so it doesn't have to be looked up every time. Also this is needed for the following fix. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-private.h 2016-12-14 18:13:25 +0200 Timo Sirainen (64a36868b) imapc: Allow using LAYOUT=none without crashing. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c 2017-01-29 00:24:33 +0200 Timo Sirainen (e5d2061f4) imap: Don't unregister internal commands at deinit. This allows plugins to unregister commands without errors being logged. M src/imap/imap-commands.c 2017-01-26 22:42:09 +0200 Timo Sirainen (27129cce9) lib-storage: Lock autoexpunging so only a single process does it. This hopefully helps to avoid duplicates with lazy_expunge plugin. M src/lib-storage/mail-autoexpunge.c 2017-01-29 01:08:23 +0200 Timo Sirainen (16b3bcea4) imap: Use struct mailbox_status.flags for FLAGS reply M src/imap/imap-commands-util.c 2017-01-29 01:06:55 +0200 Timo Sirainen (4945c8a75) lib-storage: Add struct mailbox_status.flags This is similar to permanent_flags, except it tells which flags can be changed at all in the session. Mainly it allows plugins to make changes to IMAP's untagged FLAGS reply. M src/lib-storage/index/index-status.c M src/lib-storage/mail-storage.h 2017-01-27 21:36:14 +0200 Timo Sirainen (1f1a96729) lib: io_loop_set_current() - do nothing if ioloop doesn't change There's no need to call the switch callbacks if the ioloop doesn't change. M src/lib/ioloop.c 2017-01-27 13:56:30 +0200 Martti Rannanjärvi (5433e85ae) doveadm: add doveadm_http_rawlog_dir setting M src/doveadm/client-connection-http.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h 2017-01-24 17:18:07 +0200 Timo Sirainen (c25abb52b) lib-fts: Fix assert-crash in fts_icu_lcase() Fixes: Panic: file fts-icu.c: line 152 (fts_icu_lcase): assertion failed: (err != U_BUFFER_OVERFLOW_ERROR) M src/lib-fts/fts-icu.c M src/lib-fts/test-fts-icu.c 2017-01-27 09:41:36 +0200 Aki Tuomi (2b9630998) lib-storage: Fix comparison to use virtual size instead of body virtual size Was forgotten on 7f1ecb14 M src/lib-storage/index/index-mail.c 2017-01-26 09:55:22 +0200 Timo Sirainen (0b2c958d1) lib-index: Don't log error on dovecot.index.cache delete if it doesn't exist For example if a cache is marked as corrupted and there is no cache, it's not really an error that it doesn't exist. Fixes: Error: unlink(.../dovecot.index.cache) failed: No such file or directory (in mail-cache.c:29) M src/lib-index/mail-cache.c 2017-01-26 19:51:34 +0200 Timo Sirainen (7f1ecb148) lib-storage: Filling vsize to index on read used wrong size M src/lib-storage/index/index-mail.c 2017-01-26 09:42:26 +0200 Aki Tuomi (c52d5c00e) lib-storage: Clear virtual size from index if size is corrupted M src/lib-storage/index/index-mail.c 2017-01-14 18:34:11 +0200 Timo Sirainen (513b045d3) fts: Fix search query generation when tokens are filtered out. For example with English stopwords when searching "foo and bar" it should be equilevant to "foo bar", since "and" is filtered out. M src/plugins/fts/fts-search-args.c 2017-01-09 10:43:01 +0200 Aki Tuomi (ba706bd50) lib: Add t_hash helpers for hashing M src/lib/hash-method.c M src/lib/hash-method.h 2017-01-25 10:11:05 +0200 Aki Tuomi (bcf421b98) lib-dict: Fix test-dict-sql in out-of-tree build M src/lib-dict/Makefile.am M src/lib-dict/test-dict-sql.c 2017-01-16 15:31:10 +0200 Aki Tuomi (ef6a5a1f1) lib-dict: Add unit tests M src/lib-dict/Makefile.am A src/lib-dict/dict.conf A src/lib-dict/test-dict-sql.c 2017-01-16 15:30:14 +0200 Aki Tuomi (7b1ce3414) lib-sql: Add test driver Mock SQL driver M src/lib-sql/Makefile.am A src/lib-sql/driver-test.c A src/lib-sql/driver-test.h 2017-01-17 09:59:54 +0200 Aki Tuomi (be5718891) dict-sql: Fix iterator to not fail When iterating a prefix without exact key flag, do not fail when no more maps are matched if at least one map has already matched. Fixes Error: dict_iterate_deinit failed: sql dict iterate failed for ...: Invalid/unmapped path M src/lib-dict/dict-sql.c 2017-01-16 15:29:25 +0200 Aki Tuomi (4adf5d2a7) dict-sql: Move struct sql_dict to header This allows dereferencing it on test programs M src/lib-dict/Makefile.am A src/lib-dict/dict-sql-private.h M src/lib-dict/dict-sql.c 2017-01-16 14:01:57 +0200 Aki Tuomi (5a2960941) dict-sql: Do not increment on set When merging sets do not use increment mode in builder. M src/lib-dict/dict-sql.c 2017-01-23 18:02:05 +0200 Timo Sirainen (a35f06493) director: "doveadm director move" to same host now refreshes user's timeout This allows keeping user constantly in the same backend by just periodically moving the user there. M src/director/doveadm-connection.c 2017-01-24 09:56:29 +0200 Aki Tuomi (5a6d4adbd) global: Update http_server_request_set_destroy_callback usage M src/doveadm/client-connection-http.c M src/lib-http/test-http-payload.c M src/lib-http/test-http-server-errors.c 2017-01-24 09:55:49 +0200 Aki Tuomi (582b93659) lib-http: Improve http_server_request_set_destroy_callback API It now allows using non-void* context M src/lib-http/http-server-request.c M src/lib-http/http-server.h 2017-01-22 17:58:55 +0200 Aki Tuomi (8b65acb38) global: Update http_client_request_set_destroy_callback usage M src/auth/auth-policy.c M src/lib-http/test-http-payload.c 2017-01-22 17:56:19 +0200 Aki Tuomi (e94584bf6) lib-http: Improve http_client_request_set_destroy_callback It now allows using non-void* context M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2017-01-22 23:55:24 +0100 Stephan Bosch (bf45537f0) lib-http: client: Fixed handling of errors occurring for unsubmitted requests during http_client_request_send_payload(). When http_client_request_send_payload() is executed for the first time, the request is submitted. Errors occurring during submission don't trigger a callback immediately. Instead, these are queued in the client and will trigger a callback when an ioloop is run with the client. However, in http_client_request_send_payload() the ioloop is never executed when the request fails that way, meaning that the callback was never called. Since for example SOLR assumes the callback is always called for an error in http_client_request_send_payload(), this causes all kinds of problems. Fixed by manually handling the delayed request errors in http_client_request_send_payload() explicitly. M src/lib-http/http-client-request.c 2017-01-18 13:46:12 +0200 Aki Tuomi (228f1e8d5) lib-sasl: Add OAUTHBEARER and XOAUTH2 mechanism M src/lib-sasl/Makefile.am M src/lib-sasl/dsasl-client-private.h M src/lib-sasl/dsasl-client.c A src/lib-sasl/mech-oauthbearer.c 2017-01-18 13:45:27 +0200 Aki Tuomi (2d74a1ed4) lib-sasl: Add API for setting and getting extra values This allows setting extra parameters for authentication and recovering extended result information from mechanism. M src/lib-sasl/dsasl-client-private.h M src/lib-sasl/dsasl-client.c M src/lib-sasl/dsasl-client.h 2017-01-20 18:19:05 +0200 Timo Sirainen (fc452ed72) imapc: Fix assert-crash on some connect failures imapc_storage_has_modseqs() causes imapc_client_get_capabilities() to be called, which assert-crashes if there isn't a valid connection: Panic: file imapc-client.c: line 438 (imapc_client_get_capabilities): assertion failed: (conn != NULL) M src/lib-storage/index/imapc/imapc-storage.c 2017-01-20 15:57:10 +0200 Timo Sirainen (edaf7b320) director: Add more debug logging for moving & killing users M src/director/director.c 2017-01-20 16:06:48 +0200 Timo Sirainen (47f09f848) director: Fix USER-MOVE getting stuck if a director already uses the correct host M src/director/director.c 2017-01-20 16:03:12 +0200 Timo Sirainen (82641f7aa) director: Ignore doveadm user move if host is already the same. M src/director/doveadm-connection.c 2017-01-20 15:54:27 +0200 Timo Sirainen (3638fd7bb) director: Make sure USER-KILLED isn't sent before USER-MOVE If USER-MOVE was for a user that didn't exist, killing sent USER-KILLED immediately before the forwarding USER-MOVE. This caused the move to get stuck, giving errors like: director: Error: Finishing user 3224731354 move timed out, its state may now be inconsistent (state=waiting-for-everyone) M src/director/director.c 2017-01-20 15:52:43 +0200 Timo Sirainen (7a380e77a) director: Add assert to make sure USER-MOVE doesn't change tag M src/director/director.c 2016-12-27 09:45:58 +0200 Aki Tuomi (444e2d726) lib-storage: Copy cache decisions from inbox on create Otherwise the decisions are definitely wrong, since they are nonexistent. Copying from INBOX would make sense. M src/lib-storage/mail-storage.c 2016-12-27 09:44:52 +0200 Aki Tuomi (215cdc8db) lib-index: Add mail_cache_decisions_copy This allows priming cache decisions for a folder. M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache.h 2017-01-03 12:50:58 +0200 Aki Tuomi (1211f411e) lib-index: Unconstify mail_cache_register_get_list This way the result is usable as input for mail_cache_register_fields. M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache.h 2017-01-20 14:46:30 +0200 Timo Sirainen (90f9822ad) lib-storage: Fix mailbox's vsize header check for mailboxes not in dovecot.list.index If mailbox wasn't yet in the dovecot.list.index, mailbox_list_index_status() for it returns FALSE and doesn't initialize the status. In some situations this may have caused a non-empty mailbox's vsize to be returned as 0. M src/lib-storage/list/mailbox-list-index-status.c 2016-10-11 00:13:49 +0200 Juha Koho (c4d66e8cc) ssl: add ssl_curve_list setting for selecting ECHDE curves M doc/example-config/conf.d/10-ssl.conf M m4/ssl.m4 M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h M src/lib-master/master-service-ssl.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h M src/login-common/ssl-proxy-openssl.c 2017-01-10 02:12:25 +0100 Stephan Bosch (9465a0507) lib-http: client: Make sure req->conn is only not NULL when that connection holds a reference to that request. This consolidates the management of req->conn to one place, thereby preventing mishaps. It makes sure req->conn is always properly assigned, making it more reliable. This fixes a problem that emerged in the http-proxy. M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c 2017-01-19 02:16:06 +0100 Stephan Bosch (794501229) lib-http: client: Keep connection reference throughout http_client_connection_return_response(). Before, it was held in two intervals. Next commit requires this change, but it also simplifies this function significantly. M src/lib-http/http-client-connection.c 2017-01-17 19:49:39 +0200 Timo Sirainen (c8ce80f4d) master: Remove unnecessary service listener start The listening was already started later on in the same function. Also in some cases it would have been started unnecessarily, like when service was stopped or more processes were created immediately. M src/master/service-monitor.c 2016-12-30 10:20:32 +0200 Martti Rannanjärvi (e667d5da1) doc: add ssl_dh to example-config M doc/example-config/conf.d/10-ssl.conf 2017-01-18 04:46:15 -0500 Josef 'Jeff' Sipek (fafa63931) index: don't try to unlink in-memory cache file Avoid these errors: Error: unlink((in-memory index).cache) failed: No such file or directory (in mail-cache.c:29) M src/lib-index/mail-cache.c 2017-01-17 20:34:51 +0200 Timo Sirainen (91879fbef) doveadm direcor add: Fix checking number as hostname. 521c0460fe705f32ea6899c8b1f101043fe0898c was completely broken. M src/doveadm/doveadm-director.c 2017-01-17 20:03:40 +0200 Timo Sirainen (2568cb8da) doveconf: Don't read freed memory. Giving -c parameter frees the returned orig_config_path. M src/config/doveconf.c 2017-01-17 15:22:44 +0200 Timo Sirainen (521c0460f) doveadm direcor add: Don't accept number as a valid hostname. This is usually a mistake. For example "doveadm director add -t host 100" shouldn't be adding a new IP 100 (0.0.0.100) M src/doveadm/doveadm-director.c 2017-01-17 16:28:10 +0200 Timo Sirainen (3d88d8e7b) stats plugin: Fix /proc/self/io fd leak on plugin deinit This could have been a problem with doveadm-server processes if they had service_count>1, because doveadm unloads all plugins between commands. M src/plugins/stats/mail-stats-fill.c M src/plugins/stats/mail-stats.h M src/plugins/stats/stats-plugin.c 2017-01-17 16:23:50 +0200 Timo Sirainen (07af8ef14) doveadm: Outgoing dsync TCP connections leaked socket If doveadm-server was running with service_count>1, each dsync run leaked a socket. M src/doveadm/doveadm-dsync.c 2017-01-17 19:21:08 +0200 Timo Sirainen (7c4ff436f) lib-dict: Compiler warning fix M src/lib-dict/dict.h 2017-01-16 16:58:31 +0200 Timo Sirainen (37fed1bc1) dict-file: Fix potential crash when doing other dict calls during iteration. If file was refreshed, the hash table was cleared, which broke the existing iterators. M src/lib-dict/dict-file.c 2017-01-16 17:12:41 +0200 Timo Sirainen (b198cd6da) lib-dict: Add assert to make sure all iterators are deinitialized. M src/lib-dict/dict-private.h M src/lib-dict/dict.c 2017-01-16 16:57:21 +0200 Timo Sirainen (0fea5292d) lib: Add asserts to make sure hash table isn't freed while it's frozen. M src/lib/hash.c 2017-01-16 23:55:17 +0200 Timo Sirainen (c32d111cf) fts-solr: Escape {} chars when sending queries Fixes: java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 Based on patch by Michael Welsh Duggan M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2017-01-17 01:37:25 +0100 Stephan Bosch (355a3cf3f) lib-http: server: Do not generate a payload for a failure response for a HEAD request. M src/lib-http/http-server-request.c 2017-01-17 01:36:10 +0100 Stephan Bosch (1e9424acb) lib-http: server: Prevent sending response payload when it is not allowed by the specification. For a HEAD request, the payload is omitted, but the associated headers are generated. For the other cases, an assert failure is now triggered. M src/lib-http/http-server-response.c 2017-01-16 09:37:05 +0200 Aki Tuomi (fb6734cf2) dict-sql: Fix flushing Remove flushing from set, and add it to unset. Fixes signal 11 crash caused by infinite recursion. M src/lib-dict/dict-sql.c 2017-01-03 17:21:33 +0200 Aki Tuomi (ae2bad232) lib-storage: Add vsize extension to index Keep virtual size in index, instead of cache when it's less than 2^32-1. This helps when cache becomes corrupted, and goes away, we still have virtual sizes for quota calculations. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2017-01-15 19:56:32 +0200 Timo Sirainen (2c6a1ceed) lib-storage: Fix assert-crash on mailbox_copy/move() failure If mailbox_save_cancel() was being called outside mail_storage_copy() it assert-crashed: Panic: file mail-storage.c: line 2168 (mailbox_save_context_reset): assertion failed: (ctx->copying_via_save) M src/lib-storage/mail-storage.c 2017-01-14 16:11:37 +0200 Timo Sirainen (fd4130e3e) lib-storage: If namespaces weren't successfully created, don't autoexpunge at deinit. M src/lib-storage/mail-user.c 2017-01-14 16:12:56 +0200 Timo Sirainen (71bfb0ac6) lib-storage: Add struct mail_user.namespaces_created This makes it easier to determine in mail_namespaces_added hook if the namespaces being added are the initial ones or later ones. M src/lib-storage/mail-namespace.c M src/lib-storage/mail-user.h 2017-01-14 16:12:03 +0200 Timo Sirainen (da5c7f6eb) lib-storage: Stop namespaces_added|created hooks immediately when user has failed M src/lib-storage/mail-storage-hooks.c 2017-01-14 16:10:15 +0200 Timo Sirainen (92b98c7ec) doveadm dict get: Support printing multiple values. M src/doveadm/doveadm-dict.c 2017-01-09 20:32:12 +0200 Timo Sirainen (fb488019d) dict-sql: Support multiple values for lookups The value's fields must be comma-separated without spaces, for example: map { value_field = field1,field2 value_type = string,uint ... Only the first field is used for INSERTs and UPDATEs. M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql-settings.h M src/lib-dict/dict-sql.c 2017-01-12 20:35:12 +0200 Timo Sirainen (217683437) dict-client: Support multiple values for lookups M src/dict/dict-commands.c M src/lib-dict/dict-client.c M src/lib-dict/dict-client.h 2017-01-12 20:22:38 +0200 Timo Sirainen (85b234661) lib-dict: Add support for lookup to return multiple values Implements only the initial stubs to the drivers. M src/lib-dict/dict-client.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h M src/plugins/dict-ldap/dict-ldap.c 2017-01-14 16:54:34 +0200 Timo Sirainen (415f3f280) dict-sql: Remove unnecessary "affected rows" tracking from dict_set() This was useful for dict_atomic_inc(), but not for dict_set(). Fixes assert-crash with Cassandra: Panic: file driver-cassandra.c: line 1350 (driver_cassandra_update): assertion failed: (affected_rows == NULL) M src/lib-dict/dict-sql.c 2017-01-14 16:45:06 +0200 Timo Sirainen (858ce98d6) dict-sql: Fix previous "merge sets" to flush at commit The last dict_set() within transaction was being ignored. M src/lib-dict/dict-sql.c 2017-01-14 15:10:17 +0200 Timo Sirainen (22ed97ce4) lib-storage: Fix accessing the same "raw" mailbox multiple times in process. If the same file was opened as the raw mailbox multiple times, the previous mail_index was cached by mail-index-alloc-cache. Opening it the second time already contained a mail in the index, so trying to add another one logged an error: Error: Log synchronization error at seq=1,offset=256 for (in-memory index): Append with UID 1, but next_uid = 2 M src/lib-storage/index/raw/raw-sync.c 2017-01-13 20:39:42 +0200 Timo Sirainen (3b94c8fb6) imapc: Fix re-sending retryable commands after reconnect M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h 2017-01-12 16:20:40 +0200 Timo Sirainen (549d0260d) lib-storage: Allow namespaces_created hook to return failure via user error. M src/lib-storage/mail-namespace.c 2017-01-12 00:53:54 +0200 Timo Sirainen (a7c9ff357) lib-storage: Improve namespace error message - include separator char. It wasn't always obvious what the character should have been when namespace didn't have an explicitly configured separator. M src/lib-storage/mail-namespace.c 2017-01-11 19:43:30 +0200 Aki Tuomi (80d1ef5ba) lib-dict-sql: Try merge sets to single update This attempts to put mergeable keys into same update instead of using multiple SQL statements. M src/lib-dict/dict-sql.c 2016-12-23 13:17:06 -0500 Timo Sirainen (aefadb693) lib-dcrypt: istream-decrypt - set stream_errno=EPIPE on unexpected EOF M src/lib-dcrypt/istream-decrypt.c 2017-01-10 19:23:30 +0200 Timo Sirainen (16c59052a) configure: Link libsmtp before libdns Fixes linking LIBDOVECOT when using .a libraries M configure.ac 2017-01-10 14:45:20 +0200 Timo Sirainen (ea5a14af8) lib-storage: Compile & indent fix for previous change. M src/lib-storage/index/index-mail-headers.c 2017-01-05 10:50:55 +0200 Aki Tuomi (6b44fc75c) lib-storage: Prevent recursion in header parsing If header parsing error occurs and error handling tries to get fields, such as Message-ID, it will cause crash. This fixes problem by preventing reading from non-cached headers while they are being parsed. Fixes lmtp: Panic: file ../../../src/lib/array.h: line 219 (array_idx_i): assertion failed: (idx * array->element_size < array->buffer->used) M src/lib-storage/index/index-mail-headers.c 2017-01-09 17:48:56 +0200 Timo Sirainen (2599a77a2) cassandra: Support configuring heartbeat_interval and idle_timeout M src/lib-sql/driver-cassandra.c 2017-01-10 13:29:34 +0200 Timo Sirainen (6ce2e6f7a) director: Fix assert-crash when flush script takes too long Fixes: Panic: file director.c: line 966 (director_user_move_timeout): assertion failed: (user->kill_ctx->kill_state != USER_KILL_STATE_FLUSHING) M src/director/director.c 2017-01-09 20:31:35 +0200 Timo Sirainen (769cbb608) cassandra: Add support for "bigint" value type. M src/lib-sql/driver-cassandra.c 2017-01-09 22:39:09 +0200 Timo Sirainen (904cdf7f2) dict-client: When failing to resend commands after reconnect, their success is uncertain. It's possible that the writes before the disconnection did actually finish successfully. If any of them were commits, we need to return DICT_COMMIT_RET_WRITE_UNCERTAIN. M src/lib-dict/dict-client.c 2017-01-09 17:05:14 +0200 Timo Sirainen (1fbe1b140) dict-sql: Support transaction timestamps with Cassandra driver M src/lib-dict/dict-sql.c 2017-01-09 19:16:04 +0200 Timo Sirainen (345fceae2) dict-client: Pass through transaction timestamp to dict-server M src/dict/dict-commands.c M src/lib-dict/dict-client.c M src/lib-dict/dict-client.h 2017-01-09 16:55:45 +0200 Timo Sirainen (e28b4fc2b) lib-dict: Add dict_transaction_set_timestamp() M src/lib-dict/dict-private.h M src/lib-dict/dict.c M src/lib-dict/dict.h 2017-01-09 19:10:25 +0200 Timo Sirainen (788810ad6) dict-ldap|fs: Explicitly specify used dict_vfuncs methods. This was done for other dict drivers in ade5567577dadb0b275c840208d3ad21a9f00a36 M src/lib-dict-extra/dict-fs.c M src/plugins/dict-ldap/dict-ldap.c 2016-12-29 13:17:57 -0500 Timo Sirainen (3fae65c79) config: Fix checking if (3bb61142c) lmtp: Don't deliver truncated email when client disconnects before "." line This didn't happen always, because the EOF was handled in two different places in different ways. M src/lmtp/commands.c 2017-01-09 09:57:58 +0200 Aki Tuomi (317689976) auth-policy: Add missing settings M src/auth/auth-settings.c M src/auth/auth-settings.h 2017-01-08 20:09:33 +0200 Aki Tuomi (77ed2f5f6) auth-policy: Enable SSL connections M src/auth/Makefile.am M src/auth/auth-policy.c 2017-01-04 14:02:28 -0800 Greg C (83277213d) auth-policy: hashed_password will always be blank, tell buffer it has data so str_len works when converting to hex M src/auth/auth-policy.c 2017-01-08 18:44:32 +0200 Aki Tuomi (7c9ae3d91) lib-program-client: Do not call program_client_fail twice Fixes crash in program-client caused by use of freed memory. M src/lib-program-client/program-client.c 2016-12-25 10:14:07 +0200 Aki Tuomi (90126be6a) istream-mmap: Mark stream eof on error and copy errno M src/lib/istream-mmap.c 2016-12-16 20:27:09 +0200 Martti Rannanjärvi (89e040049) lib, lib-http: add HTTP_URL_ALLOW_PCT_NUL flag This allows a URL to contain %00. M src/lib-http/http-url.c M src/lib-http/http-url.h M src/lib/uri-util.c M src/lib/uri-util.h 2016-12-27 14:01:14 +0200 Aki Tuomi (58fed57a4) autoexpunge: Consider last_rename_stamp on expunge When expunging by saved date, see if last_rename_stamp is more recent than saved date, and use that instead. This prevents mails getting deleted on a folder that was just renamed, the user probably expects autoexpunge to consider these emails as fresh. M src/lib-storage/mail-autoexpunge.c 2016-12-28 22:45:22 +0200 Aki Tuomi (3743948b6) index-storage: Update mailbox last_rename_stamp on rename M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-private.h 2016-12-30 16:20:12 +0100 Stephan Bosch (a4692ca37) lib-lda: Moved LMTP client to lib-smtp. This makes the LMTP client available without dependency on lib-storage. For Dovecot v2.3, the newly created lib-smtp will evolve into a full client/server SMTP implementation. That will then remove the remaining SMTP code from lib-lda. M configure.ac M dovecot-config.in.in M src/Makefile.am M src/lib-lda/Makefile.am A src/lib-smtp/Makefile.am R100 src/lib-lda/lmtp-client.c src/lib-smtp/lmtp-client.c R100 src/lib-lda/lmtp-client.h src/lib-smtp/lmtp-client.h M src/lmtp/Makefile.am 2017-01-01 13:31:30 +0100 Stephan Bosch (2454dfa32) Updated copyright notices to include the year 2017. M doc/man/doveadm-acl.1.in M doc/man/doveadm-altmove.1.in M doc/man/doveadm-auth.1.in M doc/man/doveadm-batch.1.in M doc/man/doveadm-deduplicate.1.in M doc/man/doveadm-director.1.in M doc/man/doveadm-dump.1.in M doc/man/doveadm-exec.1.in M doc/man/doveadm-expunge.1.in M doc/man/doveadm-fetch.1.in M doc/man/doveadm-flags.1.in M doc/man/doveadm-force-resync.1.in M doc/man/doveadm-fs.1.in M doc/man/doveadm-fts.1.in M doc/man/doveadm-help.1.in M doc/man/doveadm-import.1.in M doc/man/doveadm-index.1.in M doc/man/doveadm-instance.1.in M doc/man/doveadm-kick.1.in M doc/man/doveadm-log.1.in M doc/man/doveadm-mailbox-cryptokey.1.in M doc/man/doveadm-mailbox.1.in M doc/man/doveadm-move.1.in M doc/man/doveadm-penalty.1.in M doc/man/doveadm-proxy.1.in M doc/man/doveadm-purge.1.in M doc/man/doveadm-pw.1.in M doc/man/doveadm-quota.1.in M doc/man/doveadm-replicator.1.in M doc/man/doveadm-search-query.7 M doc/man/doveadm-search.1.in M doc/man/doveadm-stats.1.in M doc/man/doveadm-sync.1.in M doc/man/doveadm-user.1.in M doc/man/doveadm-who.1.in M doc/man/doveadm.1.in M doc/man/doveconf.1.in M doc/man/dovecot-lda.1.in M doc/man/dovecot.1.in M src/anvil/anvil-connection.c M src/anvil/anvil-settings.c M src/anvil/connect-limit.c M src/anvil/main.c M src/anvil/penalty.c M src/anvil/test-penalty.c M src/auth/auth-cache.c M src/auth/auth-client-connection.c M src/auth/auth-fields.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-policy.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request-stats.c M src/auth/auth-request-var-expand.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-stats.c M src/auth/auth-token.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-checkpassword.c M src/auth/db-dict-cache-key.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-dovecot-token.c M src/auth/mech-external.c M src/auth/mech-plain-common.c M src/auth/mech-plain.c M src/auth/mech.c M src/auth/mycrypt.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-dict.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-template.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme-pbkdf2.c M src/auth/password-scheme-rpa.c M src/auth/password-scheme.c M src/auth/test-auth-cache.c M src/auth/test-auth-request-var-expand.c M src/auth/test-db-dict.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-template.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/config-settings.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-settings.c M src/dict/main.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-request.c M src/director/director-settings.c M src/director/director-test.c M src/director/director.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/main.c M src/director/notify-connection.c M src/director/test-user-directory.c M src/director/user-directory.c M src/dns/dns-client-settings.c M src/dns/dns-client.c M src/doveadm/client-connection-http.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth-server.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-dict.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-dump-dcrypt-file.c M src/doveadm/doveadm-dump-dcrypt-key.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-fs.c M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-batch.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-flags.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-save.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-mutf7.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-formatted.c M src/doveadm/doveadm-print-json.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-pw.c M src/doveadm/doveadm-replicator.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-zlib.c M src/doveadm/doveadm.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-deserializer.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-state.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox.c M src/doveadm/dsync/dsync-serializer.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/doveadm/test-doveadm-util.c M src/imap-hibernate/imap-client.c M src/imap-hibernate/imap-hibernate-client.c M src/imap-hibernate/imap-hibernate-settings.c M src/imap-hibernate/imap-master-connection.c M src/imap-hibernate/main.c M src/imap-login/client-authenticate.c M src/imap-login/imap-login-client.c M src/imap-login/imap-login-commands.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-proxy.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-login-settings.c M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-append.c M src/imap/cmd-cancelupdate.c M src/imap/cmd-capability.c M src/imap/cmd-check.c M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-enable.c M src/imap/cmd-examine.c M src/imap/cmd-expunge.c M src/imap/cmd-fetch.c M src/imap/cmd-genurlauth.c M src/imap/cmd-getmetadata.c M src/imap/cmd-id.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-logout.c M src/imap/cmd-lsub.c M src/imap/cmd-namespace.c M src/imap/cmd-noop.c M src/imap/cmd-notify.c M src/imap/cmd-rename.c M src/imap/cmd-resetkey.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-setmetadata.c M src/imap/cmd-sort.c M src/imap/cmd-status.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/cmd-unselect.c M src/imap/cmd-unsubscribe.c M src/imap/cmd-urlfetch.c M src/imap/cmd-x-cancel.c M src/imap/cmd-x-state.c M src/imap/imap-client-hibernate.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-list.c M src/imap/imap-master-client.c M src/imap/imap-notify.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/imap-state.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/imap/main.c M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-settings.c M src/indexer/indexer-worker-settings.c M src/indexer/indexer-worker.c M src/indexer/indexer.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/indexer/worker-pool.c M src/ipc/client.c M src/ipc/ipc-connection.c M src/ipc/ipc-group.c M src/ipc/ipc-settings.c M src/ipc/main.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-charset/test-charset.c M src/lib-compression/compression.c M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lz4.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c M src/lib-compression/test-compression.c M src/lib-dcrypt/dcrypt-gnutls.c M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c M src/lib-dict-extra/dict-fs.c M src/lib-dict-extra/dict-register.c M src/lib-dict/dict-cdb.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-dict/dict-transaction-memory.c M src/lib-dict/dict.c M src/lib-dict/test-dict-client.c M src/lib-dict/test-dict.c M src/lib-dns/dns-lookup.c M src/lib-dns/dns-util.c M src/lib-dns/test-dns-util.c M src/lib-fs/fs-api.c M src/lib-fs/fs-dict.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-test-async.c M src/lib-fs/fs-test.c M src/lib-fs/fs-wrapper.c M src/lib-fs/istream-fs-file.c M src/lib-fs/istream-fs-stats.c M src/lib-fs/istream-metawrap.c M src/lib-fs/ostream-cmp.c M src/lib-fs/ostream-metawrap.c M src/lib-fs/test-fs-metawrap.c M src/lib-fts/fts-filter-common.c M src/lib-fts/fts-filter-contractions.c M src/lib-fts/fts-filter-english-possessive.c M src/lib-fts/fts-filter-lowercase.c M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-icu.c M src/lib-fts/fts-language.c M src/lib-fts/fts-library.c M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-common.c M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/fts-tokenizer.c M src/lib-fts/test-fts-filter.c M src/lib-fts/test-fts-icu.c M src/lib-fts/test-fts-language.c M src/lib-fts/test-fts-tokenizer.c M src/lib-http/http-auth.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-date.c M src/lib-http/http-header-parser.c M src/lib-http/http-header.c M src/lib-http/http-message-parser.c M src/lib-http/http-parser.c M src/lib-http/http-request-parser.c M src/lib-http/http-request.c M src/lib-http/http-response-parser.c M src/lib-http/http-response.c M src/lib-http/http-server-connection.c M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c M src/lib-http/http-server.c M src/lib-http/http-transfer-chunked.c M src/lib-http/http-url.c M src/lib-http/test-http-auth.c M src/lib-http/test-http-client-errors.c M src/lib-http/test-http-client.c M src/lib-http/test-http-date.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-payload.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-server-errors.c M src/lib-http/test-http-server.c M src/lib-http/test-http-transfer.c M src/lib-http/test-http-url.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-msgmap.c M src/lib-imap-storage/imap-metadata.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap/imap-arg.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-keepalive.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-seqset.c M src/lib-imap/imap-url.c M src/lib-imap/imap-utf7.c M src/lib-imap/imap-util.c M src/lib-imap/test-imap-bodystructure.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-quote.c M src/lib-imap/test-imap-url.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-dummy-view.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-index-map.c M src/lib-index/test-mail-index-modseq.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/duplicate.c M src/lib-lda/lda-settings.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-ldap/ldap-client.c M src/lib-ldap/ldap-compare.c M src/lib-ldap/ldap-connection-pool.c M src/lib-ldap/ldap-connection.c M src/lib-ldap/ldap-entry.c M src/lib-ldap/ldap-iterator.c M src/lib-ldap/ldap-search.c M src/lib-mail/istream-attachment-connector.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-nonuls.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/mail-html2text.c M src/lib-mail/mail-user-hash.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-binary-part.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-hash.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-part.c M src/lib-mail/message-search.c M src/lib-mail/message-size.c M src/lib-mail/message-snippet.c M src/lib-mail/ostream-dot.c M src/lib-mail/qp-decoder.c M src/lib-mail/quoted-printable.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-istream-binary-converter.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-mail-html2text.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-hash.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-message-part.c M src/lib-mail/test-message-search.c M src/lib-mail/test-message-snippet.c M src/lib-mail/test-ostream-dot.c M src/lib-mail/test-qp-decoder.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-mail/test-rfc822-parser.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-auth.c M src/lib-master/master-instance.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-haproxy.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl.c M src/lib-master/master-service.c M src/lib-master/syslog-util.c M src/lib-master/test-master-service-settings-cache.c M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.c M src/lib-program-client/program-client.h M src/lib-program-client/test-program-client-local.c M src/lib-program-client/test-program-client-net.c M src/lib-program-client/test-program-client-unix.c M src/lib-sasl/dsasl-client.c M src/lib-sasl/mech-external.c M src/lib-sasl/mech-login.c M src/lib-sasl/mech-plain.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-settings/test-settings-parser.c M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-sql/sql-db-cache.c M src/lib-ssl-iostream/dovecot-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-stats/stats-connection.c M src/lib-stats/stats-parser.c M src/lib-stats/stats.c M src/lib-storage/fail-mail-storage.c M src/lib-storage/fail-mail.c M src/lib-storage/fail-mailbox.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-pop3-uidl.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-md5-all.c M src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync-update.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-notify-tree.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-autoexpunge.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-error.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-args-cmdline.c M src/lib-storage/mail-search-args-imap.c M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-parser-cmdline.c M src/lib-storage/mail-search-parser-imap.c M src/lib-storage/mail-search-parser.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-thread.c M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/lib-storage/mailbox-attribute-internal.c M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-header.c M src/lib-storage/mailbox-keywords.c M src/lib-storage/mailbox-list-notify.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-recent-flags.c M src/lib-storage/mailbox-search-result.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/mailbox-watch.c M src/lib-storage/test-mail-search-args-imap.c M src/lib-storage/test-mail-search-args-simplify.c M src/lib-storage/test-mailbox-get.c M src/lib-test/test-common.c M src/lib-test/test-istream.c M src/lib-test/test-ostream.c M src/lib/abspath.c M src/lib/aqueue.c M src/lib/array.c M src/lib/askpass.c M src/lib/backtrace-string.c M src/lib/base32.c M src/lib/base64.c M src/lib/bits.c M src/lib/bsearch-insert-pos.c M src/lib/buffer.c M src/lib/child-wait.c M src/lib/compat.c M src/lib/connection.c M src/lib/crc32.c M src/lib/data-stack.c M src/lib/eacces-error.c M src/lib/env-util.c M src/lib/execv-const.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/fdatasync-path.c M src/lib/fdpass.c M src/lib/file-cache.c M src/lib/file-copy.c M src/lib/file-create-locked.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/guid.c M src/lib/hash-format.c M src/lib/hash-method.c M src/lib/hash.c M src/lib/hash2.c M src/lib/hex-binary.c M src/lib/hex-dec.c M src/lib/home-expand.c M src/lib/hostpid.c M src/lib/imem.c M src/lib/ioloop-epoll.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/iostream-proxy.c M src/lib/iostream-proxy.h M src/lib/iostream-pump.c M src/lib/iostream-pump.h M src/lib/iostream-rawlog.c M src/lib/iostream-temp.c M src/lib/iostream.c M src/lib/ipwd.c M src/lib/iso8601-date.c M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/istream-callback.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-failure-at.c M src/lib/istream-file.c M src/lib/istream-hash.c M src/lib/istream-jsonstr.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream-tee.c M src/lib/istream-timeout.c M src/lib/istream-unix.c M src/lib/istream.c M src/lib/json-parser.c M src/lib/json-tree.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/log-throttle.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mkdir-parents.c M src/lib/mmap-anon.c M src/lib/mmap-util.c M src/lib/module-dir.c M src/lib/mountpoint.c M src/lib/nfs-workarounds.c M src/lib/numpack.c M src/lib/ostream-buffer.c M src/lib/ostream-escaped.c M src/lib/ostream-failure-at.c M src/lib/ostream-file.c M src/lib/ostream-hash.c M src/lib/ostream-null.c M src/lib/ostream-rawlog.c M src/lib/ostream-unix.c M src/lib/ostream.c M src/lib/pkcs5.c M src/lib/primes.c M src/lib/printf-format-fix.c M src/lib/priorityq.c M src/lib/process-title.c M src/lib/rand.c M src/lib/randgen.c M src/lib/read-full.c M src/lib/restrict-access.c M src/lib/restrict-process-size.c M src/lib/safe-memset.c M src/lib/safe-mkdir.c M src/lib/safe-mkstemp.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/sort.c M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str-table.c M src/lib/str.c M src/lib/strescape.c M src/lib/strfuncs.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/test-base32.c M src/lib/test-base64.c M src/lib/test-bits.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-buffer.c M src/lib/test-crc32.c M src/lib/test-data-stack.c M src/lib/test-failures.c M src/lib/test-guid.c M src/lib/test-hash-format.c M src/lib/test-hash-method.c M src/lib/test-hash.c M src/lib/test-hex-binary.c M src/lib/test-hmac.c M src/lib/test-ioloop.c M src/lib/test-iostream-proxy.c M src/lib/test-iostream-pump.c M src/lib/test-iostream-temp.c M src/lib/test-iso8601-date.c M src/lib/test-istream-base64-decoder.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-chain.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-failure-at.c M src/lib/test-istream-jsonstr.c M src/lib/test-istream-seekable.c M src/lib/test-istream-sized.c M src/lib/test-istream-tee.c M src/lib/test-istream-unix.c M src/lib/test-istream.c M src/lib/test-json-parser.c M src/lib/test-json-tree.c M src/lib/test-lib.c M src/lib/test-llist.c M src/lib/test-log-throttle.c M src/lib/test-malloc-overflow.c M src/lib/test-mempool-alloconly.c M src/lib/test-net.c M src/lib/test-numpack.c M src/lib/test-ostream-escaped.c M src/lib/test-ostream-failure-at.c M src/lib/test-ostream-file.c M src/lib/test-pkcs5.c M src/lib/test-primes.c M src/lib/test-printf-format-fix.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-str-find.c M src/lib/test-str-sanitize.c M src/lib/test-str-table.c M src/lib/test-str.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-strnum.c M src/lib/test-time-util.c M src/lib/test-timing.c M src/lib/test-unichar.c M src/lib/test-uri.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/test-wildcard-match.c M src/lib/time-util.c M src/lib/timing.c M src/lib/unichar.c M src/lib/unix-socket-create.c M src/lib/unlink-directory.c M src/lib/unlink-old-files.c M src/lib/uri-util.c M src/lib/utc-mktime.c M src/lib/utc-offset.c M src/lib/var-expand.c M src/lib/write-full.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c M src/log/doveadm-connection.c M src/log/log-connection.c M src/log/log-error-buffer.c M src/log/log-settings.c M src/log/main.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/master/capabilities-posix.c M src/master/dup2-array.c M src/master/main.c M src/master/master-client.c M src/master/master-settings.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/master/service-process.c M src/master/service.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile-update.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-global-file.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c M src/plugins/acl/doveadm-acl.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/dict-ldap/dict-ldap-settings.c M src/plugins/dict-ldap/dict-ldap.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fs-compress/fs-compress.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search-args.c M src/plugins/fts/fts-search-serialize.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-user.c M src/plugins/fts/xml2text.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/last-login/last-login-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mail-crypt/doveadm-mail-crypt.c M src/plugins/mail-crypt/fs-crypt-common.c M src/plugins/mail-crypt/fs-crypt-settings.c M src/plugins/mail-crypt/fs-crypt.c M src/plugins/mail-crypt/fs-mail-crypt.c M src/plugins/mail-crypt/mail-crypt-acl-plugin.c M src/plugins/mail-crypt/mail-crypt-global-key.c M src/plugins/mail-crypt/mail-crypt-key.c M src/plugins/mail-crypt/mail-crypt-plugin.c M src/plugins/mail-crypt/mail-crypt-pluginenv.c M src/plugins/mail-crypt/mail-crypt-userenv.c M src/plugins/mail-crypt/test-mail-global-key.c M src/plugins/mail-crypt/test-mail-key.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/mail-filter-plugin.c M src/plugins/mail-filter/ostream-ext-filter.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/mailbox-alias/mailbox-alias-plugin.c M src/plugins/notify/notify-plugin.c M src/plugins/notify/notify-storage.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/pop3-migration/test-pop3-migration-plugin.c M src/plugins/push-notification/push-notification-driver-dlog.c M src/plugins/push-notification/push-notification-driver-ox.c M src/plugins/push-notification/push-notification-drivers.c M src/plugins/push-notification/push-notification-drivers.h M src/plugins/push-notification/push-notification-event-flagsclear.c M src/plugins/push-notification/push-notification-event-flagsclear.h M src/plugins/push-notification/push-notification-event-flagsset.c M src/plugins/push-notification/push-notification-event-flagsset.h M src/plugins/push-notification/push-notification-event-mailboxcreate.c M src/plugins/push-notification/push-notification-event-mailboxcreate.h M src/plugins/push-notification/push-notification-event-mailboxdelete.c M src/plugins/push-notification/push-notification-event-mailboxdelete.h M src/plugins/push-notification/push-notification-event-mailboxrename.c M src/plugins/push-notification/push-notification-event-mailboxrename.h M src/plugins/push-notification/push-notification-event-mailboxsubscribe.c M src/plugins/push-notification/push-notification-event-mailboxsubscribe.h M src/plugins/push-notification/push-notification-event-mailboxunsubscribe.c M src/plugins/push-notification/push-notification-event-mailboxunsubscribe.h M src/plugins/push-notification/push-notification-event-message-common.h M src/plugins/push-notification/push-notification-event-messageappend.c M src/plugins/push-notification/push-notification-event-messageappend.h M src/plugins/push-notification/push-notification-event-messageexpunge.c M src/plugins/push-notification/push-notification-event-messageexpunge.h M src/plugins/push-notification/push-notification-event-messagenew.c M src/plugins/push-notification/push-notification-event-messagenew.h M src/plugins/push-notification/push-notification-event-messageread.c M src/plugins/push-notification/push-notification-event-messageread.h M src/plugins/push-notification/push-notification-event-messagetrash.c M src/plugins/push-notification/push-notification-event-messagetrash.h M src/plugins/push-notification/push-notification-events-rfc5423.c M src/plugins/push-notification/push-notification-events-rfc5423.h M src/plugins/push-notification/push-notification-events.c M src/plugins/push-notification/push-notification-events.h M src/plugins/push-notification/push-notification-plugin.c M src/plugins/push-notification/push-notification-plugin.h M src/plugins/push-notification/push-notification-triggers.c M src/plugins/push-notification/push-notification-triggers.h M src/plugins/push-notification/push-notification-txn-mbox.c M src/plugins/push-notification/push-notification-txn-mbox.h M src/plugins/push-notification/push-notification-txn-msg.c M src/plugins/push-notification/push-notification-txn-msg.h M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-status.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota-util.c M src/plugins/quota/quota.c M src/plugins/quota/test-quota-util.c M src/plugins/replication/replication-plugin.c M src/plugins/snarf/snarf-plugin.c M src/plugins/stats/mail-stats-connection.c M src/plugins/stats/mail-stats-fill.c M src/plugins/stats/mail-stats.c M src/plugins/stats/stats-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/plugins/welcome/welcome-plugin.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/pop3-login-settings.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/replication/aggregator/aggregator-settings.c M src/replication/aggregator/aggregator.c M src/replication/aggregator/notify-connection.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/dsync-client.c M src/replication/replicator/notify-connection.c M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue-auth.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-settings.c M src/replication/replicator/replicator.c M src/stats/client-export.c M src/stats/client-reset.c M src/stats/client.c M src/stats/fifo-input-connection.c M src/stats/global-memory.c M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-session.c M src/stats/mail-stats.c M src/stats/mail-user.c M src/stats/main.c M src/stats/stats-carbon.c M src/stats/stats-settings.c M src/util/gdbhelper.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap-settings.c M src/util/tcpwrap.c 2016-12-27 15:03:51 -0500 Josef 'Jeff' Sipek (69eb1a17f) lib-mail: header filter should call callback for added EOH If we add a EOH because there wasn't one and HEADER_FILTER_ADD_MISSING_EOH was specified, we should invoke the callback for it. Otherwise, it is unnecessarily difficult for consumers to add a header since there is no way to know if EOH will be present ahead of time. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2016-12-28 10:49:49 -0500 Josef 'Jeff' Sipek (75891a354) lib-mail: refactor header filter test code M src/lib-mail/test-istream-header-filter.c 2016-12-27 15:50:31 +0200 Martti Rannanjärvi (27de85bc0) master: revert i_zero change on sd-daemon.c M src/master/sd-daemon.c 2016-12-04 14:58:14 +0200 Martti Rannanjärvi (16bb1ac73) lib: add separator also if arr[0] is empty in string array joins Also add a couple test cases. M src/lib/strfuncs.c M src/lib/test-strfuncs.c 2016-12-21 07:53:52 +0200 Martti Rannanjärvi (d31a40787) lib-compression: use LZ4_compress_default if can LZ4_compress is deprecated. M m4/want_lz4.m4 M src/lib-compression/ostream-lz4.c 2016-12-18 12:03:10 +0200 Timo Sirainen (771cb02c2) lib-storage: Update mail_get_headers() API comment The API was changed by 990d55ce3fc461eeacce3ef830b1c5dde5c3f150 M src/lib-storage/mail-storage.h 2016-12-18 13:22:15 +0100 Stephan Bosch (efe78d3ba) global: Replaced all instances of memset(p, 0, sizeof(*p)) with the new i_zero() macro. Used the following script: C_FILES=`git ls-files *.c` H_FILES=`git ls-files *.h` for F in "$C_FILES $H_FILES"; do echo "$F" perl -p -i -e 's/safe_memset\(&\(?([^,]*)\)?,\s*0,\s*sizeof\(\g1\)\)/i_zero_safe(&$1)/g' $F perl -p -i -e 's/safe_memset\(([^,]*),\s*0,\s*sizeof\(\*\g1\)\)/i_zero_safe($1)/g' $F perl -p -i -e 's/memset\(&\(?([^,]*)\)?,\s*0,\s*sizeof\(\g1\)\)/i_zero(&$1)/g' $F perl -p -i -e 's/memset\(([^,]*),\s*0,\s*sizeof\(\*\g1\)\)/i_zero($1)/g' $F done M src/auth/auth-request-var-expand.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/main.c M src/auth/passdb-pam.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/doveconf.c M src/config/old-set-parser.c M src/dict/dict-connection.c M src/dict/main.c M src/director/login-connection.c M src/doveadm/client-connection-http.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth-server.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-dict.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-fs.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-batch.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-formatted.c M src/doveadm/doveadm-print-json.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-pw.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-zlib.c M src/doveadm/doveadm.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/imap-hibernate/imap-hibernate-client.c M src/imap-login/client-authenticate.c M src/imap-login/imap-proxy.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-fetch.c M src/imap/cmd-notify.c M src/imap/cmd-select.c M src/imap/cmd-setmetadata.c M src/imap/cmd-store.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-fetch.c M src/imap/imap-master-client.c M src/imap/imap-notify.c M src/imap/imap-state.c M src/imap/imap-status.c M src/imap/main.c M src/indexer/indexer-worker.c M src/indexer/master-connection.c M src/lda/main.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-dcrypt/dcrypt-gnutls.c M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/test-crypto.c M src/lib-dict-extra/dict-fs.c M src/lib-dict/dict-cdb.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/test-dict-client.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-api.c M src/lib-fs/fs-dict.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-test-async.c M src/lib-fs/fs-test.c M src/lib-fts/fts-icu.c M src/lib-http/http-auth.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-request.c M src/lib-http/http-date.c M src/lib-http/http-message-parser.c M src/lib-http/http-parser.c M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c M src/lib-http/http-response.c M src/lib-http/http-server-connection.c M src/lib-http/http-server-response.c M src/lib-http/http-url.c M src/lib-http/test-http-auth.c M src/lib-http/test-http-client-errors.c M src/lib-http/test-http-client.c M src/lib-http/test-http-payload.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-server-errors.c M src/lib-http/test-http-server.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-storage/imap-metadata.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-id.c M src/lib-imap/imap-url.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log.c M src/lib-index/test-mail-index-map.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/duplicate.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/smtp-client.c M src/lib-ldap/ldap-compare.c M src/lib-ldap/ldap-connection.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-date.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-search.c M src/lib-mail/message-snippet.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-hash.c M src/lib-mail/test-message-search.c M src/lib-master/master-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings.c M src/lib-master/master-service-ssl.c M src/lib-master/master-service.c M src/lib-master/test-master-service-settings-cache.c M src/lib-ntlm/ntlm-message.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-pop3-uidl.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-notify-tree.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-user.c M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-list.c M src/lib/buffer.c M src/lib/connection.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/ioloop-epoll.c M src/lib/ioloop.c M src/lib/iso8601-date.c M src/lib/istream-sized.c M src/lib/istream.c M src/lib/lib-signals.c M src/lib/md4.c M src/lib/md5.c M src/lib/mempool-alloconly.c M src/lib/mountpoint.c M src/lib/net.c M src/lib/ostream.c M src/lib/restrict-access.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/sha3.c M src/lib/test-ioloop.c M src/lib/test-utc-mktime.c M src/lib/timing.c M src/lib/uri-util.c M src/lib/var-expand.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/main.c M src/log/log-connection.c M src/login-common/client-common-auth.c M src/login-common/login-proxy-state.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-openssl.c M src/master/main.c M src/master/sd-daemon.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-backend-vfile-update.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-global-file.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/doveadm-acl.c M src/plugins/dict-ldap/dict-ldap-settings.c M src/plugins/dict-ldap/dict-ldap.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-search.c M src/plugins/fts/xml2text.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/last-login/last-login-plugin.c M src/plugins/mail-crypt/doveadm-mail-crypt.c M src/plugins/mail-crypt/mail-crypt-acl-plugin.c M src/plugins/mail-crypt/mail-crypt-global-key.c M src/plugins/mail-crypt/mail-crypt-plugin.c M src/plugins/mail-crypt/mail-crypt-pluginenv.c M src/plugins/mail-crypt/test-mail-global-key.c M src/plugins/mail-crypt/test-mail-key.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/push-notification/push-notification-driver-ox.c M src/plugins/push-notification/push-notification-event-flagsclear.c M src/plugins/push-notification/push-notification-event-flagsset.c M src/plugins/push-notification/push-notification-event-messageappend.c M src/plugins/push-notification/push-notification-event-messagenew.c M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-status.c M src/plugins/quota/quota-util.c M src/plugins/quota/quota.c M src/plugins/quota/test-quota-util.c M src/plugins/stats/mail-stats-fill.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-sync.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/replication/replicator/replicator-queue-auth.c M src/replication/replicator/replicator-queue.c M src/stats/client-export.c M src/stats/client-reset.c M src/stats/main.c M src/util/script-login.c 2016-12-18 13:20:20 +0100 Stephan Bosch (08cb8e0ae) lib: Created i_zero() wrapper for memset(p, 0, sizeof(*p)). Also creates an i_zero_safe() version for safe_memset(). M src/lib/macros.h 2016-12-17 13:12:39 +0100 Stephan Bosch (707460082) global: Made all struct initialization using memset() use the same style. M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dict/dict-cdb.c M src/lib-dict/dict-db.c M src/lib-http/http-url.c M src/lib-imap/imap-date.c M src/lib-imap/imap-url.c M src/lib/net.c 2016-12-23 13:58:38 -0800 Nick Wallingford (96de40971) Fix link failure against libressl. M src/lib-ssl-iostream/dovecot-openssl-common.c 2016-12-23 14:15:49 -0500 Timo Sirainen (aab5704d2) lib-mail: Fix memory leak in test-istream-attachment M src/lib-mail/test-istream-attachment.c 2016-12-23 12:53:49 -0500 Timo Sirainen (c81ec7de3) lib: Add unit test for istream-sized M src/lib/Makefile.am M src/lib/test-lib.inc 2016-12-23 12:52:45 -0500 Timo Sirainen (c328d2208) lib: istream-sized - consistently set stream_errno=EINVAL if stream is too large Earlier it was sometimes done and sometimes not, depending on whether the parent istream happened to stop at the expected boundary. M src/lib/istream-sized.c 2016-12-23 12:51:41 -0500 Timo Sirainen (574d36db8) lib: istream-sized - set stream_errno=EPIPE if stream is too small M src/lib/istream-sized.c M src/lib/istream-sized.h A src/lib/test-istream-sized.c 2016-12-23 12:26:17 -0500 Timo Sirainen (4f22781ec) lib: istream-sized - remove explicit i_error() logging The stream_errno is set, so it's the caller's responsibility to log the error. There's no need to log it twice. M src/lib/istream-sized.c 2016-12-23 13:19:50 -0500 Timo Sirainen (b7cabbb8f) lib-compression: istream-{bzlib|lz4} - set stream_errno=EPIPE on unexpected EOF M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c 2016-12-23 13:30:56 -0500 Timo Sirainen (a4883ee9d) lib-mail: istream-qp-decoder: set stream_errno=EPIPE on unexpected EOF M src/lib-mail/istream-qp-decoder.c M src/lib-mail/test-istream-qp-decoder.c 2016-12-23 13:23:39 -0500 Timo Sirainen (25463ef4c) lib-fs: istream-metawrap - set stream_errno=EPIPE on unexpected EOF M src/lib-fs/istream-metawrap.c 2016-12-23 13:14:43 -0500 Timo Sirainen (aba4cdf6d) lib-storage: istream-mail - Use EPIPE if istream is too small M src/lib-storage/index/istream-mail.c 2016-12-23 13:08:59 -0500 Timo Sirainen (9d0be57bc) lib-mail: Improve istream-attachment-extractor unit test for EIO errors M src/lib-mail/test-istream-attachment.c 2016-12-23 12:59:13 -0500 Timo Sirainen (3979d59aa) lib-mail: istream-attachment-extractor - use EIO for internal errors These happen only if the attachment writing failed for some reason. The input stream itself can't have any errors, so EINVAL isn't proper. M src/lib-mail/istream-attachment-extractor.c 2016-12-23 12:56:24 -0500 Timo Sirainen (cd0fe951e) lib-mail: istream-attachment-extractor - remove unnecessary code It's enough to set the stream_errno. M src/lib-mail/istream-attachment-extractor.c 2016-12-23 11:57:59 -0500 Timo Sirainen (1547bafeb) lib: istream-jsonstr - return EPIPE if end-of-string quote isn't seen M src/lib/istream-jsonstr.c M src/lib/test-istream-jsonstr.c 2016-12-23 11:28:48 -0500 Timo Sirainen (ddf9529d3) lib: Add istream-jsonstr unit test. M src/lib/Makefile.am A src/lib/test-istream-jsonstr.c M src/lib/test-lib.inc 2016-12-21 18:35:05 +0200 Timo Sirainen (076c46c65) lib: istream-jsonstr - minor code cleanup If ret==0 here, it means dest wasn't changed, which must mean that i==0. Make it clear to avoid confusion. M src/lib/istream-jsonstr.c 2016-12-23 12:13:16 -0500 Timo Sirainen (e0bd5e662) lib: istream-base64-decoder - use stream_errno=EPIPE for unexpected EOF M src/lib/istream-base64-decoder.c M src/lib/test-istream-base64-decoder.c 2016-12-23 11:22:53 -0500 Timo Sirainen (baf3e87e1) global: Use const for all test_functions[] arrays M src/anvil/test-penalty.c M src/auth/test-auth-cache.c M src/auth/test-auth-request-var-expand.c M src/auth/test-db-dict.c M src/director/test-user-directory.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/doveadm/test-doveadm-util.c M src/lib-charset/test-charset.c M src/lib-compression/test-compression.c M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c M src/lib-dict/test-dict.c M src/lib-dns/test-dns-util.c M src/lib-fs/test-fs-metawrap.c M src/lib-fts/test-fts-filter.c M src/lib-fts/test-fts-icu.c M src/lib-fts/test-fts-language.c M src/lib-fts/test-fts-tokenizer.c M src/lib-http/test-http-auth.c M src/lib-http/test-http-client-errors.c M src/lib-http/test-http-date.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-payload.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-server-errors.c M src/lib-http/test-http-transfer.c M src/lib-http/test-http-url.c M src/lib-imap/test-imap-bodystructure.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-quote.c M src/lib-imap/test-imap-url.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/test-mail-index-map.c M src/lib-index/test-mail-index-modseq.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-istream-binary-converter.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-mail-html2text.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-hash.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-message-part.c M src/lib-mail/test-message-search.c M src/lib-mail/test-message-snippet.c M src/lib-mail/test-ostream-dot.c M src/lib-mail/test-qp-decoder.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-mail/test-rfc822-parser.c M src/lib-master/test-master-service-settings-cache.c M src/lib-settings/test-settings-parser.c M src/lib-storage/test-mail-search-args-imap.c M src/lib-storage/test-mail-search-args-simplify.c M src/lib-storage/test-mailbox-get.c M src/plugins/pop3-migration/test-pop3-migration-plugin.c M src/plugins/quota/test-quota-util.c 2016-12-23 11:22:11 -0500 Timo Sirainen (440f9bf58) lib-test: test_run*() - use const for test_functions[] array M src/lib-test/test-common.c M src/lib-test/test-common.h 2016-12-23 17:57:16 +0200 Timo Sirainen (b7324e421) global: Use "static const" for all struct tests[] arrays M src/auth/test-auth-cache.c M src/lib-charset/test-charset.c M src/lib-dcrypt/test-crypto.c M src/lib-dns/test-dns-util.c M src/lib-fts/test-fts-filter.c M src/lib-fts/test-fts-tokenizer.c M src/lib-imap/test-imap-quote.c M src/lib-imap/test-imap-utf7.c M src/lib-index/test-mail-index-modseq.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-mail-html2text.c M src/lib-mail/test-message-snippet.c M src/lib-mail/test-rfc822-parser.c M src/lib-settings/test-settings-parser.c M src/lib-storage/test-mail-search-args-imap.c M src/lib-storage/test-mail-search-args-simplify.c M src/lib/test-hash-format.c M src/lib/test-ioloop.c M src/lib/test-istream-base64-decoder.c M src/lib/test-istream-base64-encoder.c M src/lib/test-json-parser.c M src/lib/test-lib.c M src/lib/test-malloc-overflow.c M src/lib/test-net.c M src/lib/test-numpack.c M src/lib/test-seq-range-array.c M src/lib/test-str-sanitize.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-time-util.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/test-wildcard-match.c M src/plugins/pop3-migration/test-pop3-migration-plugin.c 2016-12-23 17:48:19 +0200 Timo Sirainen (b7a60785a) lib-test: test_run_named*() - use const for tests[] array M src/lib-test/test-common.c M src/lib-test/test-common.h 2016-12-23 15:38:54 +0200 Timo Sirainen (2c5c29394) *-login, imapc: Fix new lib-sasl API usage Forgot to include these in a669d351502e15802b121e1a0bd83f27d1d95f01 M src/imap-login/imap-proxy.c M src/lib-imap-client/imapc-connection.c M src/pop3-login/pop3-proxy.c 2016-12-19 15:31:50 +0200 Timo Sirainen (ce2312763) lib-index: Fix assert-crash if .log creation unexpectedly fails at the end Pretty much the only reason for this to happen is if the index directory was deleted while another process still had the index open. Even this doesn't normally trigger this crash, because there are other checks earlier that usually catch it. So it crashes only in some race conditions. Fixes: Error: rename(.../dovecot.index.log.newlock, .../dovecot.index.log) failed: No such file or directory Panic: file mail-transaction-log-file.c: line 105 (mail_transaction_log_file_free): assertion failed: (!file->locked) M src/lib-index/mail-transaction-log-file.c 2016-12-20 13:40:17 +0200 Martti Rannanjärvi (405fc7c0f) stats: use o_stream_nsend in client-export M src/stats/client-export.c 2016-12-22 11:58:29 -0500 Timo Sirainen (d7ff3c153) fs-randomfail: Fix failure handling for fs_read() M src/lib-fs/fs-randomfail.c 2016-12-21 20:56:58 +0200 Timo Sirainen (044b0557e) lib-index: Fix checking if cache file becomes >4GB M src/lib-index/mail-cache.c 2016-12-20 13:34:43 +0200 Martti Rannanjärvi (6d0e6c57c) imap: use o_stream_nsend when not checking failure M src/imap/cmd-getmetadata.c M src/imap/cmd-thread.c M src/imap/imap-master-client.c 2016-12-20 10:03:40 +0200 Martti Rannanjärvi (ac63c3ce5) replication: ignore o_stream_send errors in doveadm-connection M src/replication/replicator/doveadm-connection.c 2016-12-22 11:53:06 -0500 Timo Sirainen (266fcf2ad) lib-mail: message_binary_part_deserialize(): Return error if body line count is too large The input was unsigned int, so output must also fit into unsigned int. M src/lib-mail/message-binary-part.c 2016-12-22 10:48:27 -0500 Timo Sirainen (432947477) dovecot.service.in: Improve [service] examples Move them inside [service] section so that simply uncommenting them works. Also give a better example of how Environment might be used. M dovecot.service.in 2016-12-21 21:33:35 +0200 Timo Sirainen (1fa1180b9) replication plugin: Error handling code cleanup The old code happened to work in all cases, but it was more of an accident. M src/plugins/replication/replication-plugin.c 2016-12-21 20:43:38 +0200 Timo Sirainen (a669d3515) lib-sasl: API change - use size_t type for input/output lengths It's highly unlikely that the length is ever >4GB, but this avoids any potential problems with integer truncation. M src/lib-sasl/dsasl-client-private.h M src/lib-sasl/dsasl-client.c M src/lib-sasl/dsasl-client.h M src/lib-sasl/mech-external.c M src/lib-sasl/mech-login.c M src/lib-sasl/mech-plain.c 2016-12-21 20:39:37 +0200 Timo Sirainen (dcb783533) lib-fts: Change fts_icu_*() to use ARRAY_TYPE(icu_utf16) for UTF16 input. This makes it clearer how the API is intended to be used. M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-icu.c M src/lib-fts/fts-icu.h M src/lib-fts/test-fts-icu.c 2016-12-21 19:50:10 +0200 Timo Sirainen (00a15fe7c) Fix compiling when compiler doesn't support typeof() M src/lib-dns/test-dns-util.c M src/plugins/dict-ldap/dict-ldap.c 2016-12-19 12:16:20 +0200 Aki Tuomi (261c0ffe7) lib-index: Make sure buffer is not null before freeing Fixes signal 11 crash under stress. M src/lib-index/mail-transaction-log-file.c 2016-12-18 22:54:11 +0200 Timo Sirainen (f59ff04ef) configure: Define __STDC_LIMIT_MACROS for CXXFLAGS Fixes SIZE_MAX being undefined when building fts-lucene. M configure.ac 2016-12-18 13:20:39 +0200 Timo Sirainen (55cdf2ed5) master: Update assert to make sure optind != 0 Hopefully prevents Coverity warning about "doubleops[optind]" access being uninitialized. M src/master/main.c 2016-12-18 12:54:34 +0200 Timo Sirainen (b48648a49) lib: Remove dead code from unit test M src/lib/test-malloc-overflow.c 2016-11-29 23:37:43 +0200 Timo Sirainen (ebe00087d) lib: Allow only known %chars in printf_format_fix_noalloc() Otherwise if some libc adds a new unsupported character, our %n check might break. M src/lib/printf-format-fix.c 2016-11-29 23:29:04 +0200 Timo Sirainen (4baf980b7) lib: Fix %n detection in printf_format_fix_noalloc() It's undefined how flags, precision or length modifiers are handled with %n, so make sure we catch all of them to detect an unwanted %n. M src/lib/printf-format-fix.c M src/lib/test-printf-format-fix.c 2016-11-29 23:21:17 +0200 Timo Sirainen (51292e327) lib: Optimize printf_format_fix_noalloc() Using strchr() is faster than looping through the characters manually. Since this function is being called a lot, it's worth optimizing. M src/lib/printf-format-fix.c 2016-12-17 20:03:46 +0100 Stephan Bosch (458479447) lib-imap-client: Fixed boolean vs integer mixup in debug message format argument. Found with Clang -Wstrict-bool. M src/lib-imap-client/imapc-connection.c 2016-12-16 23:38:58 +0100 Stephan Bosch (166fc8ba3) lib-http: client: Added test for premature connection loss to test-http-client-errors. M src/lib-http/test-http-client-errors.c 2016-12-16 23:58:43 +0100 Stephan Bosch (fd54a8a6c) lib-http: client: Added test for normal connection backoff behavior to test-http-client-errors. M src/lib-http/test-http-client-errors.c 2016-12-16 23:36:19 +0100 Stephan Bosch (f17ac27e5) lib-http: client: Treat connections that get disconnected prematurely as connection failures. This means that the backoff time is increased when this happens. A premature disconnection happens when the connection is disconnected before any data is received from the server. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2016-12-16 22:30:42 +0100 Stephan Bosch (bad9931ef) lib-http: client: Consolidated connection loss handling into a single function. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h 2016-12-16 22:00:47 +0100 Stephan Bosch (50188cf35) lib-http: client: Moved connection backoff timer management to separate functions. M src/lib-http/http-client-peer.c 2016-12-16 21:41:29 +0100 Stephan Bosch (fc0b239ad) lib-http: client: Prevent infinite event loop involving the request handler. Could happen when a backoff time is active. M src/lib-http/http-client-peer.c 2016-12-17 11:31:42 +0200 Timo Sirainen (637ea12c0) master: PROCESS-STATUS output was duplicated many times M src/master/master-client.c 2016-12-15 17:43:11 +0200 Timo Sirainen (b80e0097a) imapc: Log server disconnection error only once. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c 2016-12-15 17:45:06 +0200 Timo Sirainen (5c0d3b064) imapc: Minor debug logging improvement M src/lib-imap-client/imapc-connection.c 2016-12-15 17:36:39 +0200 Timo Sirainen (bc6b363c7) imapc: Don't retry a failed reconnection before 10 secs have passed This mainly avoids a lot of unnecessary connect attempts within a short time period, for example if the caller attempts to perform some work for all the mailboxes. M src/lib-imap-client/imapc-connection.c 2016-12-15 17:31:18 +0200 Timo Sirainen (af577c113) imapc: Fix infinite reconnect loop to remote server that is down This happened only in some situations. Usually there would have bene some command in the queue, which would cause the reconnect-check to fail. M src/lib-imap-client/imapc-connection.c 2016-12-17 10:55:01 +0200 Timo Sirainen (ad5ece2a0) lib: Compiler warning fix for 32bit systems M src/lib/test-malloc-overflow.c 2016-12-12 07:28:00 +0200 Timo Sirainen (e7d0bea63) global: Make sure *_malloc() calculations won't cause integer overflows. M src/auth/auth-request-var-expand.c M src/doveadm/doveadm-dump-index.c M src/lib-imap/imap-utf7.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index.c M src/lib-master/master-login.c M src/lib-program-client/program-client-local.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/mailbox-list.c M src/lib/data-stack.c M src/lib/hex-binary.c M src/lib/str-find.c M src/lib/strfuncs.c M src/log/log-error-buffer.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-cache.h M src/pop3/pop3-client.h M src/pop3/pop3-commands.c M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-session.c M src/stats/mail-user.c 2016-12-12 07:19:55 +0200 Timo Sirainen (2ac5f36aa) global: Change string position/length from unsigned int to size_t Mainly to avoid truncating >4GB strings, which might potentially cause some security holes. Normally there are other limits, which prevent such excessive strings from being created in the first place. I'm sure this didn't find everything. Maybe everything could be found with compiler warnings. -Wconversion kind of does it, but it gives way too many unnecessary warnings. These were mainly found with: grep " = strlen" egrep "unsigned int.*(size|len)" M src/auth/auth-cache.c M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/db-checkpassword.c M src/auth/db-ldap.c M src/auth/mech-gssapi.c M src/auth/mech-scram-sha1.c M src/auth/password-scheme.c M src/auth/userdb-dict.c M src/config/config-parser-private.h M src/config/config-parser.c M src/config/config-request.c M src/config/doveconf.c M src/config/old-set-parser.c M src/director/director-connection.c M src/doveadm/doveadm-auth-server.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-fs.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/imap/cmd-list.c M src/imap/cmd-notify.c M src/imap/cmd-rename.c M src/imap/cmd-subscribe.c M src/imap/imap-list.c M src/imap/imap-notify.c M src/imap/imap-status.c M src/imap/main.c M src/ipc/main.c M src/lib-compression/compression.c M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-fs/fs-dict.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-test.c M src/lib-fts/fts-filter-english-possessive.c M src/lib-fts/fts-icu.c M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/test-fts-tokenizer.c M src/lib-http/http-client-request.c M src/lib-imap-client/imapc-connection.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-utf7.c M src/lib-lda/lmtp-client.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-header-parser.c M src/lib-master/master-login.c M src/lib-master/master-service.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-sync.h M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-notify-tree.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-user.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib/array.c M src/lib/env-util.c M src/lib/failures.c M src/lib/istream-base64-encoder.c M src/lib/json-parser.c M src/lib/module-dir.c M src/lib/net.c M src/lib/ostream-file.c M src/lib/printf-format-fix.c M src/lib/printf-format-fix.h M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str.c M src/lib/strfuncs.c M src/lib/test-printf-format-fix.c M src/lib/unlink-old-files.c M src/lib/var-expand.c M src/lmtp/commands.c M src/log/log-error-buffer.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/master/master-settings.c M src/master/service-process.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/dict-ldap/dict-ldap.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-search-args.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/mail-crypt/mail-crypt-pluginenv.c M src/plugins/mail-crypt/mail-crypt-userenv.c M src/plugins/quota/quota-dirsize.c M src/replication/aggregator/replicator-connection.c 2016-12-12 05:16:28 +0200 Timo Sirainen (19b9eb5ba) lib: Optimization - p_strconcat() doesn't need to allocate from data stack Various other parts of the code already rely on p_malloc() not overwriting t_buffer_get()'ed data. p_strconcat() can do that as well. M src/lib/strfuncs.c 2016-12-12 04:55:47 +0200 Timo Sirainen (7e90e9424) lib: *_new(): Use the new MALLOC_MULTIPLY() macro to avoid overflows Cast the sizeof() result to unsigned int, because it's definitely always enough and in many cases this allows optimizing away the wrap-check. M src/lib/data-stack.h M src/lib/mempool.h 2016-12-12 04:53:02 +0200 Timo Sirainen (b716136fc) lib: Add MALLOC_MULTIPLY() and MALLOC_ADD() These can be used for calculating memory allocation sizes. If there's an overflow, the macro panics. M src/lib/Makefile.am M src/lib/lib.h A src/lib/malloc-overflow.h M src/lib/test-lib.inc A src/lib/test-malloc-overflow.c 2016-12-12 03:55:54 +0200 Timo Sirainen (618262376) lib: Remove t_buffer_*_type() The t_buffer_*() shouldn't normally be used anyway except in some low-level string/buffer manipulation code, so there's not much point in trying to make easier to use versions of them. M src/lib/data-stack.h M src/lib/test-data-stack.c 2016-12-12 03:48:49 +0200 Timo Sirainen (e8df5cfa6) master: Removed unused process_exec(extra_args) parameter Removes unnecessarily complicated code marked with @UNSAFE. M src/master/common.h M src/master/main.c M src/master/service-process.c 2016-12-15 18:15:21 +0200 Timo Sirainen (fa780a18c) lib-storage: Make dovecot.list.index's filename configurable. This is useful when there are multiple namespaces pointing to the same mail root directory. For example mdbox with lazy-expunge: namespace { prefix = Expunged/ location = mdbox:~/mdbox:MAILBOXDIR=expunged:LISTINDEX=expunged.list.index .. } M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2016-12-15 18:13:34 +0200 Timo Sirainen (33525312d) lib-storage: Deduplicate code into mailbox_list_settings_init_defaults() M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2016-12-16 18:52:23 +0200 Timo Sirainen (08b70fe1d) director: Fix crash when using director_flush_socket Broken accidentally when merging b44033e45e9f48f8a6e1ac5905234fec5de6d6cc M src/director/director.c 2016-12-15 19:03:39 +0200 Timo Sirainen (6460420c3) director: Fix USER-KICK and USER-KICK-ALT forwarding The internal IPC command was prefixed, which caused the remote director to reject the commands and disconnect: director(...): Command proxy: Unknown command proxy director(...): Remote sent invalid protocol data recently, waiting 57 secs before allowing further communication M src/director/director.c 2016-12-15 19:02:56 +0200 Timo Sirainen (365b5a495) director: doveadm command handling was missing USER-KICK-ALT M src/director/doveadm-connection.c 2016-12-15 15:00:54 +0200 Timo Sirainen (41579643e) imap: Fix STORE UNCHANGEDSINCE to work with >32bit modseqs. M src/imap/cmd-store.c 2016-12-15 15:20:02 +0200 Timo Sirainen (abb5d20d3) lib-storage: Fix "*" in SEARCH seqset/uidset 4294967295 is used for "*", which matches the last existing message. Which we don't know what it is at the time of search args simplification, so avoid making any assumptions about it. It's a bit ugly that 4294967295 can't be used as a valid UID, but this restriction has already existed since the beginning of Dovecot. A future alternative might be to add MAIL_SEARCH_ARG_FLAG_SEQSET_WITH_STAR, but that's a bit complicated change. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2016-12-15 15:01:47 +0200 Timo Sirainen (f2c3abe80) imapc: Don't allow "*" in SEARCH replies Doesn't fix anything, but makes the parsing a bit more correct. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-search.c 2016-12-14 19:36:43 +0200 Timo Sirainen (78b806afb) fts-squat: Use file_cache_new_path() for squat indexes M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c 2016-12-14 19:35:29 +0200 Timo Sirainen (17018da24) lib-index: Use file_cache_new_path() for dovecot.index.cache M src/lib-index/mail-cache.c 2016-12-14 19:35:05 +0200 Timo Sirainen (c18dcef4d) lib: Add file_cache_new_path() to include path in error messages. M src/lib/file-cache.c M src/lib/file-cache.h 2016-12-14 23:20:12 +0200 Aki Tuomi (dc5168232) driver-mysql: Do not hex-encode again Use correct syntax to provide data to mysql in hex format, without recoding it in hex format again. M src/lib-sql/driver-mysql.c 2016-12-13 16:04:53 +0200 Timo Sirainen (9a8217a72) lib-storage: Fix crash in obox's dsync-merge M src/lib-storage/list/mailbox-list-index-backend.c 2016-12-14 19:03:02 +0200 Timo Sirainen (9c77606ae) auth: Don't log errors when cache_key expansion finds unknown %variables M src/auth/auth-cache.c 2016-12-09 16:01:20 +0200 Aki Tuomi (05546ccd3) mail-crypt: Treat empty values correctly If mail_crypt_curve or mail_crypt_save_version is left empty, disable the plugin. Don't error out. M src/plugins/mail-crypt/mail-crypt-plugin.c 2016-12-14 17:39:04 +0200 Aki Tuomi (beec8b0a6) mail-crypt: Skip tests if dcrypt cannot be initialized Avoids breaking tests on system without working ECC keys. M src/plugins/mail-crypt/test-mail-global-key.c M src/plugins/mail-crypt/test-mail-key.c 2016-12-14 11:42:56 +0200 Aki Tuomi (5afa9b93d) auth-policy: Allow unsupported attributes in response Do not choke if we receive unsupported attributes in response. This allows better interoperability with different systems that are getting signals from auth policy server that are not (yet) supported by dovecot. M src/auth/auth-policy.c 2016-12-14 10:32:44 +0200 Aki Tuomi (182093c9a) sha3: Fix typo in ifdef The code was supposed to be used with big endian machines. Reported by than@redhat.com M src/lib/sha3.c 2016-12-12 15:21:13 +0200 Timo Sirainen (957d34edb) lib-test: Change test_fatal_func_t to take unsigned int stage as parameter. It could never be -1, so this makes it clearer. It also removes annoying casts when comparing stage to e.g. N_ELEMENTS(). M src/lib-test/test-common.c M src/lib-test/test-common.h M src/lib/test-array.c M src/lib/test-data-stack.c M src/lib/test-mempool-alloconly.c M src/lib/test-printf-format-fix.c 2016-12-12 15:17:23 +0200 Timo Sirainen (bc15567c9) lib-test: test_run_with_fatals() now takes a const array M src/lib-test/test-common.c M src/lib-test/test-common.h 2016-12-12 15:16:34 +0200 Timo Sirainen (76d4cc8e7) lib-test: Introduce test_fatal_func_t as typedef and comment how it works. M src/lib-test/test-common.c M src/lib-test/test-common.h 2016-12-13 20:03:41 +0200 Martti Rannanjärvi (ec8e55a73) auth: silence var_expand_with_funcs in db-ldap This needs to be silenced since it's logging errors of variable expansions that are not meant to be successful. The function is used here just for filling the attr_names array in ldap_field_find_context and the resulting string is not used. M src/auth/db-ldap.c 2016-12-12 09:41:02 +0200 Aki Tuomi (b0e6a65a4) doveadm-mail: Set exit code to EX_TEMPFAIL on timeout When running `doveadm save` command on proxy/director and the remote command execution times out, exit code must be set to EX_TEMPFAIL. Fixes Panic: file doveadm-mail.c: line 405 (doveadm_mail_next_user): assertion failed: (ctx->exit_code != 0) M src/doveadm/doveadm-mail.c 2016-12-12 09:39:34 +0200 Aki Tuomi (60bea13e1) doveadm-save: Set exit code to EX_TEMPFAIL on open error Prevents potential crash on doveadm_mail_next_user M src/doveadm/doveadm-mail-save.c 2016-12-14 02:51:54 +0100 Stephan Bosch (f549b400d) lib-imap: imap-bodystructure: Prevent writing erroneous whitespace between items in an envelope address list. Both imap_bodystructure_write() and imap_body_parse_from_bodystructure() produced such invalid output. This caused an RFC 3501 violation in IMAP FETCH BODY and BODYSTRUCTURE responses. Test suite is amended to test this situation. M src/lib-imap/imap-bodystructure.c M src/lib-imap/test-imap-bodystructure.c 2016-12-13 18:31:41 +0200 Timo Sirainen (d0ed540d8) lib-index: Add mail_index_revert_changes() This can be used to revert changes done in a transaction to the specified existing mail. M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index.h 2016-12-14 10:23:17 +0200 Aki Tuomi (e41e5d545) mail-crypt: Ensure array is created before accessing it Fixes segmentation fault on fs-crypt when keys are not configured. M src/plugins/mail-crypt/mail-crypt-global-key.c M src/plugins/mail-crypt/test-mail-global-key.c 2016-12-14 12:46:50 +0200 Aki Tuomi (5898bb384) doveadm-director: Show tag field from response Fix off-by-one in doveadm director dump M src/doveadm/doveadm-director.c 2016-12-13 14:51:20 +0200 Timo Sirainen (02c28668f) acl: Don't set acl_defaults_from_inbox=yes as default after all. Reverts b56d462fff46511b7efa0ccf254ba93d72322920 and removes the FIXME. Some people might actually want to give someone else access to their INBOX but not to all the other mailboxes. We should make it possible to use the "" mailbox name as the default ACL instead. M src/plugins/acl/acl-backend.c 2016-12-12 15:14:52 +0200 Aki Tuomi (f153764d4) imap: Fix assert when waiting for input on SEARCH/SORT Set cmd->state to CLIENT_COMMAND_STATE_WAIT_EXTERNAL because we are not expecting input or output. Fixes Panic: file imap-client.c: line 854 (client_check_command_hangs): assertion failed: (client->io != NULL || (client->output_cmd_lock != NULL && client->output_cmd_lock != client->input_lock)) M src/imap/imap-search.c 2016-12-12 12:37:34 +0200 Timo Sirainen (69a9934b5) dsync: Fix .dovecot-sync.lock timeout checking Whenever the lock file was recreated, the lock timeout was reset. Switched to using file_create_locked(), which already solves this problem and has compatible locking. M src/doveadm/dsync/dsync-brain.c 2016-12-12 12:53:36 +0200 Timo Sirainen (0eb3485b4) dsync: Improve process title during initialization If something is hanging, this should make it clear what exactly it is. M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-brain.c 2016-12-12 12:42:53 +0200 Timo Sirainen (6af4e592a) doveadm-server: Show UNIX socket connections as in process title Earlier they were shown as empty string. M src/doveadm/client-connection.c 2016-12-12 12:43:47 +0200 Timo Sirainen (6c40413c6) doveadm: Add global doveadm_verbose_proctitle setting. This previously existed only for doveadm-server, but adding it to doveadm CLI makes it easier to do process title updates for it as well. M src/doveadm/doveadm.c 2016-12-12 12:51:42 +0200 Timo Sirainen (530b5909a) doveadm: When connecting to doveadm-server via TCP, use 30s timeout Should be enough, and better than the kernel's default, which might be a lot more. M src/doveadm/doveadm-util.c 2016-12-12 10:40:20 +0200 Aki Tuomi (271b8142d) lib-storage: Do not try to recover missing list index Fixes Panic: file mailbox-list-index.c: line 342 (mailbox_list_index_parse_records): assertion failed: (node != NULL) M src/lib-storage/list/mailbox-list-index.c 2016-12-05 15:17:30 +0000 Paul Howarth (b40536028) configure: Fix some implicit function declarations Some configure tests fail unexpectedly if the compiler flag -Werror=implicit-function-declarations is enabled, which can result in the wrong implementations being used. This compiler flag is now enabled by default in Fedora Rawhide: https://fedoraproject.org/wiki/Changes/Fedora26CFlags is needed for exit() is needed for strcpy() M m4/mmap_write.m4 M m4/size_t_signed.m4 M m4/time_t_signed.m4 M m4/vararg.m4 2016-12-07 14:23:12 +0100 manuel (e823661ef) openssl: Clear error queue after an incomplete SSL_shutdown If the SSL_shutdown-call fails (e.g. because the underlaying socket has already been closed) OpenSSL puts the corresponding error into the queue. We don't care about details so we need to clear the queue. Otherwise the error will be pulled while error checking the next OpenSSL call of an unrelated connection. M src/lib-ssl-iostream/iostream-openssl.c M src/login-common/ssl-proxy-openssl.c 2016-12-09 15:06:05 +0200 Timo Sirainen (ee22a48c8) imapc: Don't send NOOP immediately after SELECT NOOP is normally used by mailbox syncing to check if there are any changes done by other concurrent IMAP sessions. But doing it immediately after SELECT is unnecessary, because nothing could have changed. M src/lib-storage/index/imapc/imapc-sync.c 2016-12-09 11:11:11 +0000 Timo Sirainen (b6188d7d6) config: Avoid excessive data stack usage when matching local_name Moved config_filter_match_local_name() to its own function to make adding the data stack frame easier. Based on patch by J. Nick Koston M src/config/config-filter.c 2016-12-09 09:57:57 +0100 Stephan Bosch (5ee3c7784) doveadm-server: http: Fixed temp_path_prefix for iostream-temp. The temp_path_prefix was "/tmp", which is extended to "/tmp.." by safe_mkstemp. Obviously, mortal users cannot create a file like that, causing this error: doveadm: Error: safe_mkstemp(/tmp) failed: Permission denied The temp_path_prefix should have been "/tmp/doveadm.", as it is elsewhere as well. M src/doveadm/client-connection-http.c 2016-12-08 13:01:48 +0200 Martti Rannanjärvi (9983cbb4c) lib: add t_strfgmtime and t_strftime M src/lib/test-time-util.c M src/lib/time-util.c M src/lib/time-util.h 2016-12-08 19:37:30 +0200 Timo Sirainen (f7bd22354) lib: Improve seq_range_array_invert() unit tests Try all possible combinations for seq=0..7 and seq=4294967288..4294967295 and make sure they're inverted correctly. M src/lib/test-seq-range-array.c 2016-12-07 10:19:02 +0200 Aki Tuomi (2aee623fc) lib-storage: Add test for inversion of n->max In mail-search-simplify-args, ensure that ALL NOT UID 3:* becomes UID 1:2 M src/lib-storage/test-mail-search-args-simplify.c 2016-12-06 11:50:13 +0200 Aki Tuomi (9432496e6) lib-storage: Fix typo in function name M src/lib-storage/mail-search-args-simplify.c 2016-12-08 18:07:12 +0200 Timo Sirainen (8927ce341) lib: Comment seq_range_array_invert() that its values must be within min_seq..max_seq M src/lib/seq-range-array.h 2016-12-08 17:50:46 +0200 Timo Sirainen (369764cc0) lib: Fix seq_range_array_invert() when input contains 2^32-1 This caused next_min_seq to be wrapped to 0, which was handled wrong later on. Fixes: Panic: file mail-index-map.c: line 549 (mail_index_map_lookup_seq_range): assertion failed: (first_uid > 0) M src/lib/seq-range-array.c M src/lib/test-seq-range-array.c 2016-12-08 09:23:52 +0900 Timo Sirainen (97745d12b) configure: Moved pandoc check to m4/dovecot.m4 M configure.ac M m4/dovecot.m4 2016-12-07 00:14:08 +0200 Timo Sirainen (b8eb3211a) cassandra: Treat "Request timed out" also as SQL_RESULT_ERROR_TYPE_WRITE_UNCERTAIN CASS_ERROR_SERVER_WRITE_TIMEOUT is "Write timeout" as reported by Cassandra server, while CASS_ERROR_LIB_REQUEST_TIMED_OUT is timeout as reported by the Cassandra library. M src/lib-sql/driver-cassandra.c 2016-12-05 09:53:06 +0000 Paul Howarth (b363b9936) configure: Fix HAVE_MYSQL_SSL_CIPHER check M m4/want_mysql.m4 2016-12-06 18:14:31 +0200 Phil Carmody (0c75bec6f) plugins: mail-crypt - fix static analysis pedantry Clang cannot see that ret is -1, 0, or 1 upon assigment, and therefore -1 or 0 upon entry into the if block. Therefore it considers ret==0 not to be a tautology if ret!=-1, and thus falsifiable. It concludes that bad things can later happen. The easiest way to persuade it otherwise and make it clear to a human that things are sane is to make the first error check to be for any negative ret value, which forces the else path to explicitly imply ret==0, which means that clause can also be removed. Just removing the ret==0 doesn't make it so clear to the human that there's no third case. The final change is simply to mimic the ret==-1 to ret<0 change earlier. clang's error message: doveadm-mail-crypt.c:290:14: error: variable 'pubid' is used uninitialized whenever '&&' condition is false [-Werror,-Wsometimes-uninitialized] } else if (ret == 0 && ^~~~~~~~ doveadm-mail-crypt.c:304:35: note: uninitialized use occurs here res->id = p_strdup(_ctx->pool, pubid); ^~~~~ doveadm-mail-crypt.c:290:14: note: remove the '&&' if its condition is always true } else if (ret == 0 && ^~~~~~~~~~~ Signed-off-by: Phil Carmody M src/plugins/mail-crypt/doveadm-mail-crypt.c 2016-12-05 17:29:08 +0200 Phil Carmody (dc38a5b10) lib/macros.h - protect old compilers from use of modern features no_sanitize(integer) is not in 3.5 (debian stable's version), but is documented in 3.9. Exactly when it appeared isn't immediately obvious. Signed-off-by: Phil Carmody M src/lib/macros.h 2016-12-04 03:45:54 +0200 Timo Sirainen (18535eaa6) configure: Fix building without OpenSSL AM_CONDITIONAL() needs to be part of the code path that is always run, or it fails with: configure: error: conditional "SSL_VERSION_GE_102" was never defined. M m4/ssl.m4 2016-12-03 20:48:30 +0100 Stephan Bosch (db40a9dd9) dsync: Fixed boolean expression in dsync_mailbox_import_deinit(). Found with Clang -Wstrict-bool. M src/doveadm/dsync/dsync-mailbox-import.c 2016-12-02 22:42:24 +0200 Timo Sirainen (b1533bd0d) dsync: Fix log format string broken by earlier change M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c 2016-12-01 02:29:44 +0200 Timo Sirainen (df8046c9a) lib-storage: Fix simplifying sequence sets and UID sets. They were being handled completely wrong. The unit tests testing them were also completely wrong. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2016-12-01 02:26:08 +0200 Timo Sirainen (c8bac7666) lib: seq_range_array_*(): Fix seq2=2^32-1 handling Adding/merging it when it already existed added duplicated seq_range. M src/lib/seq-range-array.c M src/lib/test-seq-range-array.c 2016-12-01 00:56:11 +0200 Timo Sirainen (44e07ea4d) lib-storage: Return vsize=0 from mailbox list index for empty mailboxes. If it's known that the mailbox has no mails, there's no reason to open the mailbox to see that its size is 0. M src/lib-storage/list/mailbox-list-index-status.c 2016-11-30 15:59:01 +0200 Timo Sirainen (d640b628f) dict-client: Don't timeout lookups without waiting 1sec in dict ioloop. What could have happened was: - dict-client sends a request to dict-server - dict-client process starts doing something else - dict-server answers - dict-client process continues doing something else for over 30 seconds, not reading the dict-server answer - dict-client process gets back to dict ioloop, which runs the timeout before checking if there is anything available for reading. Now we'll wait for 1 second in the last dict ioloop before assuming that there's a timeout. M src/lib-dict/dict-client.c 2016-12-02 22:29:31 +0200 Timo Sirainen (cabf98de0) dsync: Add mailbox names as well as GUIDs to log messages. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c 2016-12-01 19:06:10 +0200 Timo Sirainen (4f7951e71) dsync: When logging "Mailbox changed caused a desync", log also the reason. The reason is usually somewhere in the debug logs, but it's difficult to find from there. M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2016-12-01 01:38:02 -0600 J. Nick Koston (fb13dfaa9) config: Match multiple names in local_name This can significantly reduce memory usage when using a UCC certificate with multiple names by only loading the certificate and key once. M src/config/config-filter.c 2016-11-24 04:06:22 +0200 Timo Sirainen (2ec4ab6f5) quota: Don't skip quota checks when moving mails between different quota roots. M src/plugins/quota/quota-storage.c 2016-11-24 20:40:15 +0200 Timo Sirainen (d0d37a769) lib-storage: Add struct mail_save_context.copy_src_mail M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2016-11-30 02:17:12 +0200 Timo Sirainen (0ad3dea8c) man: Update doveadm director flush description M doc/man/doveadm-director.1.in 2016-11-30 12:34:45 +0200 Timo Sirainen (0bd01b003) lib-storage: If mailbox_create() fails, don't leave box in partially opened state. For example with sdbox it may have opened the indexes, but not set mailbox's GUID. A following MAILBOX_METADATA_GUID would then assert-crash because GUID is empty. M src/lib-storage/mail-storage.c 2016-11-30 00:28:08 +0200 Aki Tuomi (ceb2c6d91) mail-crypt: Remove dead assigment M src/plugins/mail-crypt/mail-crypt-key.c 2016-11-29 23:19:37 +0200 Aki Tuomi (a62b4fb5f) lib: Add test for hmac helper M src/lib/test-hmac.c 2016-11-29 23:18:56 +0200 Aki Tuomi (ffe51a196) lib: Add hmac helpers These run hmac for given data with given parameters and returns stack allocated buffer. They are helpful when doing lots of HMACs, such as the AWS4 signing protocol. M src/lib/hmac.c M src/lib/hmac.h 2016-11-29 15:20:26 +0200 Martti Rannanjärvi (134b5022c) lib: add tests for HMAC-SHA256 from RFC 4231 M src/lib/Makefile.am A src/lib/test-hmac.c M src/lib/test-lib.inc 2016-11-28 23:05:16 +0200 Aki Tuomi (156e2ce64) mail-crypt: Do not attempt to cache keys on failure M src/plugins/mail-crypt/mail-crypt-key.c 2016-11-29 10:57:49 +0200 Aki Tuomi (be569425d) autogen: Use HTTPS for wiki M autogen.sh 2016-11-28 15:20:01 +0200 Aki Tuomi (2223b7a44) lib-dcrypt: Add error handling for dcrypt_key_id_private M src/lib-dcrypt/istream-decrypt.c 2016-11-28 15:17:55 +0200 Aki Tuomi (bf2d54df4) mail-crypt: Add error handling for mailbox_open in tests M src/plugins/mail-crypt/test-mail-key.c 2016-11-28 15:15:21 +0200 Aki Tuomi (7a8b59bce) doveadm-mail-crypt: Skip existing keys properly When generating new keypairs, handle existing keys correctly when skipping them. M src/plugins/mail-crypt/doveadm-mail-crypt.c 2016-11-28 14:52:50 +0200 Aki Tuomi (179e0558e) mail-crypt: Do not attempt to cache freed keypair M src/plugins/mail-crypt/mail-crypt-key.c 2016-11-28 14:51:19 +0200 Aki Tuomi (a027af9ac) mail-crypt-acl: Use mailbox_get_last_error instead of error M src/plugins/mail-crypt/mail-crypt-acl-plugin.c 2016-11-28 14:45:01 +0200 Aki Tuomi (4b6d6a97c) mail-crypt: Fail if key is not found and save_version less than 2 Fail if save version is set to 0 or 1, instead of trying to use undefined value for public key. M src/plugins/mail-crypt/mail-crypt-plugin.c 2016-11-28 13:36:56 +0200 Aki Tuomi (e6459e62b) mail-crypt: Skip undef values if OpenSSL is <1.0.2 OpenSSL 1.0.1 and earlier generate undef warnings due to using stack as randomness source in a way that valgrind does not like, so we disable undef value checks for mail-crypt-plugin. M src/plugins/mail-crypt/Makefile.am 2016-11-28 13:32:16 +0200 Aki Tuomi (85670e215) m4: Detect OpenSSL version 1.0.2 valgrind cannot work in all cases if openssl version is 1.0.2, so we need to know this to selectively disable valgrind. M m4/ssl.m4 2016-11-28 14:12:23 +0200 Aki Tuomi (704ae505d) dovecot.m4: Add NOUNDEF option to run-test.sh Using this environment variable will disable undefined value errors in valgrind. M m4/dovecot.m4 2016-11-28 13:52:40 +0200 Timo Sirainen (f9f30736b) lib-index: mail_transaction_log_file_sync(): Don't mix I/O errors and corruption M src/lib-index/mail-transaction-log-file.c 2016-11-28 14:40:15 +0200 Timo Sirainen (909764313) acl: Fix compiler warning M src/plugins/acl/acl-backend.c 2016-11-28 05:21:06 +0200 Martti Rannanjärvi (b56d462ff) acl-plugin: remove acl_defaults_from_inbox option INBOX ACLs will be used by default from now on. M src/plugins/acl/acl-backend.c 2016-11-28 13:04:47 +0200 Timo Sirainen (9018d05c3) lib-index: Fix assert-crash after "log file shrank" error. Fixes: Panic: file buffer.c: line 316 (buffer_set_used_size): assertion failed: (used_size <= buf->alloc) M src/lib-index/mail-transaction-log-file.c 2016-11-25 01:45:29 +0200 Aki Tuomi (228765c45) Add suppression for openssl leak M run-test-valgrind.supp 2016-11-25 00:45:35 +0200 Aki Tuomi (62534baa3) mail-crypt: Add manpage M .gitignore M doc/man/Makefile.am A doc/man/doveadm-mailbox-cryptokey.1.in M doc/man/doveadm-mailbox.1.in 2016-11-24 14:48:03 +0200 Aki Tuomi (4c78d9e64) mail-crypt: Add mail-crypt plugin M configure.ac M src/plugins/Makefile.am A src/plugins/mail-crypt/Makefile.am A src/plugins/mail-crypt/doveadm-mail-crypt.c A src/plugins/mail-crypt/fs-crypt-common.c A src/plugins/mail-crypt/fs-crypt-settings.c A src/plugins/mail-crypt/fs-crypt-settings.h A src/plugins/mail-crypt/fs-crypt.c A src/plugins/mail-crypt/fs-mail-crypt.c A src/plugins/mail-crypt/mail-crypt-acl-plugin.c A src/plugins/mail-crypt/mail-crypt-common.h A src/plugins/mail-crypt/mail-crypt-global-key.c A src/plugins/mail-crypt/mail-crypt-global-key.h A src/plugins/mail-crypt/mail-crypt-key.c A src/plugins/mail-crypt/mail-crypt-key.h A src/plugins/mail-crypt/mail-crypt-plugin.c A src/plugins/mail-crypt/mail-crypt-plugin.h A src/plugins/mail-crypt/mail-crypt-pluginenv.c A src/plugins/mail-crypt/mail-crypt-userenv.c A src/plugins/mail-crypt/test-mail-global-key.c A src/plugins/mail-crypt/test-mail-key.c 2016-11-25 09:49:25 +0200 Aki Tuomi (b3a968f43) lib-dcrypt: Use module_dir setting M src/lib-dcrypt/Makefile.am M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c 2016-11-25 09:48:43 +0200 Aki Tuomi (3f6149c3f) lib-dcrypt: Add module_dir setting This is needed for unit tests that require dcrypt, so that they can load backend without installing it first. M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h 2016-11-21 23:19:26 +0100 Stephan Bosch (1bb13a311) lib-http: client: Fixed assert failure occurring when a new connection fails for a peer that has active connections. Fixes: Panic: file http-client-queue.c: line 481 (http_client_queue_connection_failure): assertion failed: (queue->cur_peer == NULL) M src/lib-http/http-client-queue.c M src/lib-http/test-http-client-errors.c 2016-11-28 03:26:01 +0100 Stephan Bosch (a81d5c3f5) global: Added missing copyright notices. M src/auth/auth-policy.c M src/auth/mech-plain-common.c M src/auth/mycrypt.c M src/auth/password-scheme-rpa.c M src/doveadm/doveadm-print-formatted.c M src/doveadm/doveadm-print-json.c M src/lib-dcrypt/dcrypt-gnutls.c M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c M src/lib-dns/test-dns-util.c M src/lib-fts/fts-library.c M src/lib-fts/fts-tokenizer-common.c M src/lib-http/http-request.c M src/lib-http/http-response.c M src/lib/pkcs5.c 2016-11-25 16:14:16 +0200 Timo Sirainen (323c4e6d0) lib-storage: Fix raw storage to sync mailboxes correctly. Broken by b9da8540e665138b3cad0b637c08c0ab7d7a7eeb M src/lib-storage/index/raw/raw-sync.c 2016-11-25 15:34:46 +0200 Timo Sirainen (7a1c34790) lib-storage: Fix error handling in mailbox_list_index_refresh_force() Broken by recent changes. M src/lib-storage/list/mailbox-list-index.c 2016-11-22 01:28:33 +0200 Timo Sirainen (e8e00a579) mkcert.sh: Use umask to create key file as 0600 Fixes a race condition between creation of the file and a later chmod. This script was mostly meant as an example though, and not really for production use. Especially because it generates self-signed certs. CVE-2016-4983 M doc/mkcert.sh 2016-11-24 18:12:18 +0200 Timo Sirainen (96088ba9e) mdbox: Rebuild index after it's been fsck'd M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-map.h M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-sync.c 2016-11-24 18:12:00 +0200 Timo Sirainen (3d758b4fa) sdbox: Rebuild index after it's been fsck'd M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c 2016-11-24 17:52:01 +0200 Timo Sirainen (22436f3cb) lib-storge: Call mail_storage.list_index_corrupted() when needed The callback is called whenever mailbox list index appears to be corrupted with LAYOUT=index. The storage is responsible for adding to the index any mailboxes that are missing. M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2016-11-24 15:50:01 +0200 Timo Sirainen (857c471c1) lib-storage: Add mail_storage.list_index_corrupted() The actual implementation is in the next commit. M src/lib-storage/fail-mail-storage.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage-private.h M src/plugins/virtual/virtual-storage.c 2016-11-24 17:16:30 +0200 Timo Sirainen (c5073d5b5) lib-index: Add mail_index_unset_fscked() This can be used to easily remove MAIL_INDEX_HDR_FLAG_FSCKD. It takes a transaction parameter instead of sync_ctx because some index rebuilds are done with a separate transaction while the sync_ctx is rolled back. M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index.h 2016-11-24 15:49:15 +0200 Timo Sirainen (02d6628c1) lib-index: fsck now adds MAIL_INDEX_HDR_FLAG_FSCKD to header. It can only be removed by an explicit header update. M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index.h 2016-11-24 15:41:38 +0200 Timo Sirainen (de258127e) lib-storage: Rename mailbox_list_index.corrupted to corrupted_names_or_parents Makes it clearer what exactly the flag means. M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2016-11-24 15:14:06 +0200 Timo Sirainen (ca2f32608) lib-index: If index open fails with fsck, retry opening once. The fsck should have fixed the log offsets and open should work. M src/lib-index/mail-index-map-read.c 2016-11-24 15:12:21 +0200 Timo Sirainen (826f767b6) lib-index: fsck: Fix log_file_head|tail_offset properly M src/lib-index/mail-index-fsck.c 2016-11-25 10:22:18 +0200 Aki Tuomi (3c503fa10) lib-dcrypt: Add assert that vfs is initialized M src/lib-dcrypt/dcrypt.c 2016-11-24 19:53:17 +0200 Timo Sirainen (25e4617fb) lib-storage: Fail if no namespaces have list=yes The previous check allowed all namespaces to have list=children. This crashed later on in mail_namespaces_get_root_sep(), because it couldn't find any list=yes namespaces. M src/lib-storage/mail-namespace.c 2016-11-25 00:17:45 +0200 Timo Sirainen (7a73401fd) lib-index: Compiler warning fix M src/lib-index/mail-transaction-log.c 2016-11-22 18:34:53 +0200 Timo Sirainen (0bbddb018) lib-mail: Add randomness test to test-mail-html2text M src/lib-mail/test-mail-html2text.c 2016-11-22 18:33:12 +0200 Timo Sirainen (e61d5a4ba) lib-mail: Fix assert-crash in mail_html2text_more() with invalid input. parse_data() continues forward thinking that it might have valid input, until it has enough data and realizes that there's nothing valid. This triggers: Panic: file mail-html2text.c: line 312 (mail_html2text_more): assertion failed: (pos >= buf_orig_size) M src/lib-mail/mail-html2text.c M src/lib-mail/test-mail-html2text.c 2016-11-19 02:32:21 +0200 Timo Sirainen (a44866b01) lib: Clarify that buffer_write() zero-fills buffer when writing past its size M src/lib/buffer.h M src/lib/test-buffer.c 2016-11-19 01:54:14 +0200 Timo Sirainen (6d4043487) global: Code cleanup - avoid passing NULL to functions with non-null parameter M src/lib-dcrypt/test-stream.c M src/lib-index/mail-cache-lookup.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/index-mailbox-size.c M src/lib/buffer.c M src/lib/istream.c 2016-11-19 02:00:25 +0200 Timo Sirainen (fced91d63) global: Avoid unnecessary unsigned integer wraps. Avoids complains from clang -fsanitize=integer M src/indexer/master-connection.c M src/lib-mail/test-istream-header-filter.c M src/lib-storage/index/mbox/istream-raw-mbox.c 2016-11-19 01:59:03 +0200 Timo Sirainen (a05819736) global: Avoid loops unnecessarily decreasing below zero. Avoids complains from clang -fsanitize=integer M src/lib-mail/message-address.c M src/lib-mail/message-snippet.c M src/lib/sha3.c 2016-11-19 01:57:40 +0200 Timo Sirainen (21484e162) lib: Mark md4/md5/sha1/sha2 code with ATTR_UNSIGNED_WRAPS M src/lib/md4.c M src/lib/md5.c M src/lib/sha1.c M src/lib/sha2.c 2016-11-19 01:56:19 +0200 Timo Sirainen (2c488bf1c) lib-index: mail_index_map_register_ext(ext_offset=-1) now sets hdr_offset=-1 It shouldn't make any difference, but this is a less confusing value. M src/lib-index/mail-index-map.c 2016-11-19 01:39:42 +0200 Timo Sirainen (08b888317) lib: Add ATTR_UNSIGNED_WRAPS for disabling clang -fsanitize=integer M src/lib/macros.h 2016-11-24 23:26:40 +0200 Timo Sirainen (80528a951) lib-index: Compiler warning fix. M src/lib-index/mail-transaction-log.c 2016-11-23 23:19:05 +0200 Timo Sirainen (ec4beaa76) lib-storage: Rotate dovecot.list.index.log* more often. The history in these files isn't as important as in mailbox indexes. Reduce disk space usage by rotating them more often and deleting the .log.2 more quickly. M src/lib-storage/list/mailbox-list-index.c 2016-11-23 23:12:29 +0200 Timo Sirainen (b66a207dd) lib-index: Add mail_index_set_log_rotation() M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c 2016-11-23 22:42:03 +0200 Timo Sirainen (55c880236) lib-storage: Try harder to rename a corrupted mailbox name to its old name. If the old name exists, use it as a prefix for the new name. This is especially useful when restoring autocreated mailboxes. A new mailbox could have already been autocreated, but it's still useful to have the broken one renamed with the same prefix, so it'll be clear that these mailboxes should be merged. M src/lib-storage/list/mailbox-list-index-backend.c 2016-11-24 19:32:44 +0200 Aki Tuomi (b78c41586) dsync: Do not try replace remote folder GUID when doing oneway sync Oneway sync tried to replace remote folder's GUID when running in one way mode. This causes trouble, e.g. when running with imapc, because you can't do this. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c 2016-11-23 18:43:17 +0200 Timo Sirainen (215fecae3) lib-storage: Fix rotation of dovecot.list.index.log After b9da8540e665138b3cad0b637c08c0ab7d7a7eeb the tail offsets weren't being updated anymore when mail_index_sync_next() wasn't used to skip over all the data. Mailbox list index wasn't doing this, and so the log was never rotated since tail_offset was never equal to head_offset. M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c 2016-11-23 17:14:48 +0200 Timo Sirainen (22788c0ac) imapc: Fix assert that checks if mail is expunged locally. The EXPUNGE may have been sent while imapc_sync_index() was issuing remote imapc commands. It would end up being in delayed_expunged_uids, so the assert needs to check that too. Fixes: Panic: file imapc-sync.c: line 290 (imapc_initial_sync_check): assertion failed: (mail_index_is_expunged(view, lseq)) M src/lib-storage/index/imapc/imapc-sync.c 2016-11-23 17:14:14 +0200 Timo Sirainen (724c4a962) imapc: Cleanup - change delayed_expunged_uids to seq_range. This simplifies the next commit. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.h 2016-11-23 15:57:03 +0200 Timo Sirainen (99abb1302) auth: Don't crash expanding %variables when username isn't set. This continues the auth-policy fix in c3d3faa4f72a676e183f34be960cff13a5a725ae M src/auth/auth-request-var-expand.c 2016-11-23 13:25:54 +0200 Timo Sirainen (172b6edea) sdbox: Don't log an error if stub is added twice There's no locking for them, so it's fine if two processes add the same mail. The second one could be ignored, but it was a bit easier to just let it rename over the first one. M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-file.h M src/lib-storage/index/dbox-single/sdbox-save.c 2016-11-23 13:16:19 +0200 Aki Tuomi (c3d3faa4f) auth: Fix auth-policy crash when username is NULL If SASL request is invalid, or incomplete, and username is left NULL, handle it gracefully by adding just NUL byte in auth policy digest for username. M src/auth/auth-policy.c 2016-11-22 10:21:24 -0500 Josef 'Jeff' Sipek (08e9fd42e) lib-storage: require MAIL_STORAGE_CLASS_FLAG_STUBS when caching If we are going to be using the storage for caching, we should check that the storage actually supports mail stubs. M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2016-11-22 18:00:13 +0200 Timo Sirainen (9d92ea347) lib-fts: Add randomness test to test-fts-tokenizer M src/lib-fts/test-fts-tokenizer.c 2016-11-22 16:35:58 +0200 Timo Sirainen (b1b0b2b54) lib-fts: Make sure address tokenizer can't return empty tokens. This happened when address was a token that first looked like it could be a valid address, but then got truncated due to reaching maxlen, followed by truncating the UTF8-sequence and finally all the rest of the '-' or '.' chars that were valid at the beginning of the address are stripped away by fts_tokenizer_delete_trailing_invalid_char(), leaving nothing left. Fixes: Panic: file fts-tokenizer.c: line 206 (fts_tokenizer_next): assertion failed: (ret <= 0 || (*token_r)[0] != '\0') M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/test-fts-tokenizer.c 2016-11-22 17:31:02 +0200 Timo Sirainen (edc654a35) lib-fts: Fix fts_tokenizer_delete_trailing_partial_char() unit test M src/lib-fts/test-fts-tokenizer.c 2016-11-22 12:03:01 +0200 Timo Sirainen (9644b7914) lib-index: Handle invalid headers as "corruption", not "temporary error" This is especially required for "Header's corrupted flag is set" error, which won't get fixed otherwise. It's a bit more questionable if we should treat major version or CPU architecture change as corruption, but it's possible those only exist because of corruption. It's also very unlikely that either is really happening. Ideally there would be a hash that verifies whether the header is corrupted or not. M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c 2016-11-22 10:59:36 +0200 Timo Sirainen (542d7a4af) dict-client: dict_lookup*() deleted the first byte of the result. M src/lib-dict/dict-client.c 2016-11-21 14:05:42 +0200 Timo Sirainen (5de0c65da) quota-clone: Flush quota-clone 10s after quota update if it's not already done This way a long-running IMAP session can't keep the quota-clone desynced for a long time. M src/plugins/quota-clone/quota-clone-plugin.c 2016-11-21 14:02:11 +0200 Timo Sirainen (588a05790) quota-clone: Code cleanup - moved recursion check to quota_clone_flush() M src/plugins/quota-clone/quota-clone-plugin.c 2016-11-21 23:43:08 +0200 Timo Sirainen (cacaa94d2) lib-dict: Add extra NULL-check to make static analyzer happier str_array_length() already checked NULL internally though. M src/lib-dict/dict-client.c 2016-11-21 13:57:23 +0200 Aki Tuomi (52d2b356e) lib-index: Limit mmap errors in txn log file to 1/s M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h 2016-11-21 13:53:50 +0200 Aki Tuomi (e9594e86d) lib-index: Limit mmap errors in index cache to 1/s M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache.c 2016-11-21 13:34:57 +0200 Aki Tuomi (12f0c4396) lib-index: Limit mmap syscall errors in index to 1/s M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-private.h 2016-11-21 13:33:42 +0200 Aki Tuomi (9e0b18793) lib-index: Do not crash if log is missing Fixes sigfault when index and index.log files are corrupted. M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-view.c 2016-11-21 19:05:49 +0200 Timo Sirainen (44c54229a) dict-client: Server can now send command replies in any order. This way one slow lookup doesn't block all the other ones. This change keeps backwards compatibility in the dict protocol for both client and server. M src/dict/dict-commands.c M src/dict/dict-connection.h M src/lib-dict/dict-client.c M src/lib-dict/dict-client.h 2016-11-21 19:04:26 +0200 Timo Sirainen (1fb0136a1) dict: Make sure iterate doesn't add to ostream when it's already full. M src/dict/dict-commands.c 2016-11-21 18:52:25 +0200 Timo Sirainen (af298f9a4) dict: Moved iterate's corking to more correct location. Commands' input handling already corks ostream in connection.c. ostream's flush callback corks the ostream automatically. So the only place left for corking is in dict iterate callback. M src/dict/dict-commands.c 2016-11-21 18:46:48 +0200 Timo Sirainen (d485968ff) dict-client: Include reconnection-status in slow dict lookup messages. M src/lib-dict/dict-client.c 2016-11-21 16:55:45 +0200 Timo Sirainen (2525acc19) dict-client: Add warn_slow_msecs setting This allows configuring the default 5 seconds "slow dict lookup" warning. M src/lib-dict/dict-client.c 2016-11-21 16:45:55 +0200 Timo Sirainen (8e1491e49) dict-client: Add time spent in dict-server to "slow dict lookup" messages. This way you can see if the slowness was due to some communication problem between dict-client/server or internally in dict server. This change keeps backwards compatibility in the dict protocol for both client and server. M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-connection.h M src/lib-dict/dict-client.c M src/lib-dict/dict-client.h 2016-11-21 16:44:38 +0200 Timo Sirainen (fc494f157) dict-client: Code cleanup - handle tab-unescaping before callbacks. M src/lib-dict/dict-client.c M src/lib-dict/dict-client.h 2016-11-21 13:29:12 +0200 Timo Sirainen (95e4021e3) lib-index: Revert log flooding prevention / 3c014db6f This was intended only for mmap() errors. M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c 2016-11-19 04:04:02 +0200 Timo Sirainen (0c4a3ccaa) fts: Fixed potential crash when indexing mails. Normally it seems like compilers had built code that had added a NULL after the array, but there was no guarantee for that. M src/plugins/fts/fts-parser.c 2016-11-18 16:03:00 +0200 Timo Sirainen (551fef69c) imap: Fix recent flags importing when un-hibernating The initial RECENT counter that was sent didn't include pre-hibernation \Recent flags. \Recent flags were also added for mails that were already expunged, which could have caused recent counter to be wrong later on, and possibly assert-crash with: Panic: file index-status.c: line 130 (index_storage_get_open_status): assertion failed: (status_r->recent <= status_r->messages) M src/imap/imap-state.c 2016-11-18 16:58:00 +0200 Timo Sirainen (591f83c40) lib-index: Improve errors - return reason in mail_transaction_log_refresh() M src/lib-index/mail-transaction-log.c 2016-11-18 16:52:31 +0200 Timo Sirainen (c0d1bfc45) lib-index: Improve errors - return reason in mail_transaction_log_file_open() M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c 2016-11-18 16:41:18 +0200 Timo Sirainen (6321d9d33) lib-index: Add more information to "Missing middle file" error. M src/lib-index/mail-index-modseq.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/test-mail-transaction-log-view.c 2016-11-18 16:27:33 +0200 Timo Sirainen (8dfabfbc7) lib-index: mail_transaction_log_find_file() - remove wrong optimization. When opening the index, it's possible that: process A: .log is opened with seq=1 process B: Rotates the .log and writes a new dovecot.index with log_file_seq=2 process A: dovecot.index is opened. mail_transaction_log_view_set() now wants to file log_file_seq=2 with mail_transaction_log_find_file(), but because open_count==0, the .log isn't refreshed. M src/lib-index/mail-transaction-log.c 2016-11-18 16:15:59 +0200 Timo Sirainen (0fd7143c3) lib-index: Compiler warning fix M src/lib-index/mail-index-map-read.c 2016-11-18 15:46:39 +0200 Timo Sirainen (6ade0d762) lib-index: If mmap() fails, include the attempted size in the error. M src/lib-index/mail-cache.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-transaction-log-file.c 2016-11-18 15:39:45 +0200 Timo Sirainen (ac27e8405) lib-storage: Fix checking stub_seq failure in mailbox_save_set_uid() M src/lib-storage/mail-storage.c 2016-11-18 15:17:08 +0200 Timo Sirainen (e42e27fcc) sdbox: Implement support for mail stubs M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-single/sdbox-save.c 2016-11-18 15:16:27 +0200 Timo Sirainen (61cae213d) lib-storage: Add support for storing "mail stubs" These allow treating a storage backend as a cache where the mail bodies don't necessarily exist. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2016-11-18 14:10:02 +0200 Timo Sirainen (2f26f7521) imapc: %zu isn't standard, use PRIuSIZE_T instead. M src/lib-storage/index/imapc/imapc-storage.c 2016-11-15 18:39:08 +0200 Timo Sirainen (a5b64f1ab) lib: Add connection.allow_empty_args_input This simplifies input_args() callbacks since they don't always have to check for args[0] == NULL. This is enabled by default, because none of the current users want it and it's somewhat unlikely there even will be those in future. M src/lib/connection.c M src/lib/connection.h 2016-11-17 15:59:02 -0500 Josef 'Jeff' Sipek (990d55ce3) lib-storage: fix index_mail_get_headers return value And make it more obvious that we're not setting the actual return value in index_mail_get_first_header. M src/lib-storage/index/index-mail-headers.c 2016-11-18 01:23:13 +0200 Timo Sirainen (b9da8540e) lib-index: Fix detecting whether caller synced everything in mailbox. When mailbox_index_sync_begin() was followed by _commit(), without _next()s in the middle actually syncing the mailbox, the tail_offset was updated to indicate that the mailbox was fully synced. Existing code didn't rely on this, so it probably didn't break anything. This code hasn't worked for a long time, because log_view is always read fully to the end in _sync_begin(). M src/lib-index/mail-index-sync.c 2016-11-15 00:42:27 +0100 Timo Sirainen (30b849c26) lib-storage: Add mail_storage_service_user_get_pool() M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2016-11-15 00:41:38 +0100 Timo Sirainen (096e109f9) global: Replace some settings_parse_line() calls with settings_parse_keyvalue() M src/config/config-parser.c M src/doveadm/doveadm-dsync.c M src/lib-storage/mail-storage-service.c 2016-11-15 00:36:57 +0100 Timo Sirainen (e5ce686a6) lib-settings: Add settings_parse_keyvalue() M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h 2016-11-14 23:32:05 +0100 Timo Sirainen (16402358d) lib-settings: Avoid duplicating settings' values when not needed M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h 2016-11-14 22:57:41 +0100 Timo Sirainen (431fb3b0f) imapc: Use struct mail_namespace.user_set M src/lib-storage/index/imapc/imapc-list.c 2016-11-14 22:43:07 +0100 Timo Sirainen (46e917c9f) lib-storage: Add mail_namespace_get_driver_settings() and use it. It obsoletes mail_storage_get_driver_settings(). M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2016-11-14 22:32:42 +0100 Timo Sirainen (5b82f3b2f) lib-storage: Add struct mail_namespace.user_set M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h 2016-11-14 18:34:02 +0100 Timo Sirainen (2c067d5cd) lib-storage: Use mail_namespace_alloc() for mail_namespaces_init_location() Based on patch by Jeff Sipek M src/lib-storage/mail-namespace.c 2016-11-14 18:33:37 +0100 Timo Sirainen (aafbaa45a) lib-storage: Add mail_namespace_alloc() This makes it easier to create new namespaces. Based on patch by Jeff Sipek M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h 2016-11-10 13:19:05 +0200 Timo Sirainen (045d5940e) lib-storage: Add asserts to make sure mailbox_header_lookup_ctx is used correctly. M src/lib-storage/index/index-mail-headers.c M src/lib-storage/mail-storage.c M src/lib-storage/mail.c 2016-11-14 17:41:23 +0100 Timo Sirainen (9e6d83a3e) lib-index: Added mail_index_transaction_get_highest_modseq() M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-file.c 2016-11-14 17:37:31 +0100 Timo Sirainen (a42d489d9) lib-index: Added internal mail_index_transaction_finish_so_far() This can be called multiple times before mail_index_transaction_finish(). It's going to perform all the work of reordering mails and dropping unnecessary changes that can be done before changing sequences to UIDs. This will be needed for the following patch that implements mail_index_transaction_get_highest_modseq(). M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/test-mail-index-transaction-finish.c 2016-11-14 17:22:53 +0100 Timo Sirainen (f09d03446) lib-index: Assert if mail_index_transaction_sort_appends() sees any uid==0 Every mail must have an UID at this stage. M src/lib-index/mail-index-transaction-sort-appends.c 2016-10-31 10:49:38 +0000 Paul Howarth (0793a1dbd) configure: Fix build with old OpenSSL without SSL_clear_options SSL_clear_options was introduced in OpenSSL 0.9.8m but may be backported to older versions in "enterprise" OS releases, so a version check is insufficient here. It was originally implemented as a macro but is a function in more recent OpenSSL versions, so a test that works for both cases is needed. M m4/ssl.m4 M src/lib-ssl-iostream/iostream-openssl.c 2016-11-17 17:13:09 +0200 Timo Sirainen (57dd2621d) lib-index: Make sure an already-corrupted index/log isn't written M src/lib-index/mail-index-write.c M src/lib-index/mail-transaction-log-file.c 2016-09-15 11:34:30 +0300 Aki Tuomi (f7060b849) lib: Add test for iostream-proxy M src/lib/Makefile.am A src/lib/test-iostream-proxy.c M src/lib/test-lib.inc 2016-09-15 11:33:01 +0300 Aki Tuomi (26e7bc65f) lib: Add iostream-proxy iostream-proxy proxies data between two pairs of istream/ostream. M src/lib/Makefile.am A src/lib/iostream-proxy.c A src/lib/iostream-proxy.h 2016-09-15 14:33:10 +0300 Aki Tuomi (4d9181518) lib: Add tests for iostream-pump M src/lib/Makefile.am A src/lib/test-iostream-pump.c M src/lib/test-lib.inc 2016-09-15 13:57:46 +0300 Aki Tuomi (08c0bffa1) lib: Add iostream-pump M src/lib/Makefile.am A src/lib/iostream-pump.c A src/lib/iostream-pump.h 2016-11-17 02:48:20 +0200 Timo Sirainen (08b9350b1) imapc: Fix assert-crash when deleting mailbox triggers mailbox_get_open_status(). For example vsize header updating triggers this. Fixes: Panic: file mail-storage.c: line 1683: unreached M src/lib-storage/index/imapc/imapc-storage.c 2016-11-16 21:40:37 +0200 Timo Sirainen (0f242c946) lib-storage: Fix compiler warnings about enum mismatches M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-sync.c 2016-11-16 21:36:17 +0200 Timo Sirainen (aeef47104) master: Fix compiling with systemd after /dev/null changes M src/master/service-listen.c 2016-11-16 03:11:30 +0200 Timo Sirainen (83d0c8152) LAYOUT=index: Try to rename corrupted mailbox name during mailbox open. M src/lib-storage/list/mailbox-list-index-backend.c 2016-11-16 03:10:10 +0200 Timo Sirainen (540555c5b) lib-storage: Added struct mailbox.corrupted_mailbox_name This allows backends that are adding lost mailboxes to mailbox list index to indicate that they don't actually know the name of the mailbox, and the mailbox list index should try to figure it out and rename the mailbox to its proper name. M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/mail-storage-private.h 2016-11-16 03:06:31 +0200 Timo Sirainen (85cbe5d66) LAYOUT=index: Don't write corrupted mailbox names to box-name header. This way when opening a mailbox the box-name header isn't overwritten by a corrupted name. Keep track of the corrupted names with MAILBOX_LIST_INDEX_FLAG_CORRUPTED_NAME flag in list index records. The flag isn't removed until the mailbox is renamed. M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2016-11-16 03:01:22 +0200 Timo Sirainen (635f41c84) lib-storage: Preserve box-name header when rebuilding index. M src/lib-storage/index/index-rebuild.c 2016-11-16 01:44:58 +0200 Timo Sirainen (8463c8976) doveadm dump: Add support for the new box-name index header. M src/doveadm/doveadm-dump-index.c 2016-11-16 01:43:34 +0200 Timo Sirainen (97a5e150c) LAYOUT=index: Update mailbox name to mailbox index's header when opening. This way if the mailbox list index gets lost, a recent mailbox name is still available. M src/lib-storage/index/index-storage.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/mail-storage-private.h 2016-11-16 01:09:57 +0200 Timo Sirainen (606e38802) lib-storage: Prevent renaming mailbox under itself. This resulted earlier in a loop, which broke the mailbox index. Note that IMAP already prevented this, so it could only be triggered by other tools, like doveadm. M src/lib-storage/list/mailbox-list-index-backend.c 2016-11-16 01:04:18 +0200 Timo Sirainen (bcfeddf8c) lib-storage: Prevent parent loops in mailbox list index M src/lib-storage/list/mailbox-list-index.c 2016-11-16 01:03:20 +0200 Timo Sirainen (9130eda2e) lib-storage: Fix invalid parents in LAYOUT=index Previously it just kept complaining without fixing the errors. M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2016-11-16 01:01:58 +0200 Timo Sirainen (48baf3ac1) lib-storage: Improve mailbox list index corruption errors M src/lib-storage/list/mailbox-list-index.c 2016-11-16 00:57:06 +0200 Timo Sirainen (b94bcc82e) lib-storage: If LAYOUT=index loses mailbox names, write the generated ones to index. Previously it just kept complaining and regenerating new names, without actually fixing up the situation. M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2016-11-16 00:55:38 +0200 Timo Sirainen (7e3ef84df) lib-storage: Fix handling LAYOUT=index losing mailbox names It lost all the mailbox names. M src/lib-storage/list/mailbox-list-index.c 2016-11-11 13:40:55 +0200 Aki Tuomi (6baee5cd0) config: Match local_name using dns-util This way it correctly handles wildcards. M src/config/Makefile.am M src/config/config-filter.c 2016-11-11 13:36:23 +0200 Aki Tuomi (a7f58d28d) lib-dns: Add tests for dns-util M src/lib-dns/Makefile.am A src/lib-dns/test-dns-util.c 2016-11-11 13:13:29 +0200 Aki Tuomi (7cb5a6d1f) lib-dns: Add DNS specific matching algorithms RFC4343 and RFCRFC4592 compare and match algorithms M src/lib-dns/Makefile.am A src/lib-dns/dns-util.c A src/lib-dns/dns-util.h 2016-11-16 12:47:59 +0200 Aki Tuomi (2ba5c38d7) imap: Use correct format specifier for highestmodseq M src/imap/imap-state.c 2016-11-16 13:29:49 +0200 Timo Sirainen (faee56682) lib-index: Fix flushing NFS if minimum wanted transaction log file is lost M src/lib-index/mail-transaction-log-view.c 2016-11-15 18:55:36 +0200 Aki Tuomi (6028ef7bd) imap: Add details why unhibernation failed This can help understanding why client failed to unhibernate. M src/imap/imap-state.c 2016-11-16 11:41:42 +0200 Timo Sirainen (33a806228) global: Use fd_close_maybe_stdio() M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/imap-client.c M src/lib/connection.c M src/lmtp/client.c M src/pop3/pop3-client.c 2016-11-16 11:40:35 +0200 Timo Sirainen (1e766413c) lib: Add fd_close_maybe_stdio() The idea is that this should be used whenever closing fds that may be 0 or 1. If they are closed normally, the following code may end up using 0/1 fd for other purposes, which could cause problems. M src/lib/lib.c M src/lib/lib.h 2016-11-16 11:37:34 +0200 Timo Sirainen (41ee23907) global: use dev_null_fd instead of opening /dev/null M src/lib-program-client/program-client-local.c M src/lib/module-dir.c M src/master/common.h M src/master/main.c M src/master/service-process.c 2016-11-16 11:35:42 +0200 Timo Sirainen (be7c7c4e9) master: Don't unlink login sockets at startup if someone is listening to them. The original check there never worked, because null_fd was always set. Normally the master.pid file would prevent this happening, but if it didn't exist, the sockets would be unlinked and usually also created back. M src/master/common.h M src/master/main.c M src/master/master-settings.c 2016-11-16 11:17:27 +0200 Timo Sirainen (253000d6d) lib-master: Revert redundant stdin/stdout/stderr fd checks This is now done by lib_init() in a bit nicer way. Reverts 08923d2c956ece3dc604d5842ba152c2bdb11fb9 M src/lib-master/master-service.c 2016-11-16 11:09:01 +0200 Timo Sirainen (05475b831) lib: Make sure stdin/stdout/stderr have fd at startup and keep /dev/null always open This guarantees we will always have a fd that can be used as /dev/null. It works even inside chroots. M src/lib/lib.c M src/lib/lib.h 2016-11-15 23:56:19 +0200 Timo Sirainen (34742a4b9) Fix -Wstrict-bool compiler warnings. M src/lib-index/mail-index-sync-update.c M src/lib/sha3.c 2016-11-03 15:30:58 +0200 Aki Tuomi (0bff25fd3) doveadm-save: Check stream errno before save This is to ensure the file has been really opened. M src/doveadm/doveadm-mail-save.c 2016-11-15 09:06:10 -0500 Josef 'Jeff' Sipek (ed96188c7) lib: fix data stack marker generation The line number wasn't getting expanded. M src/lib/data-stack.h 2016-11-13 20:04:27 +0200 Apollon Oikonomopoulos (b4884ca2e) Manually cleanup OpenSSL from dovecot_openssl_common_global_unref() OpenSSL 1.1 features a cleanup function that is automatically run on shutdown using atexit(3). This function frees all OpenSSL-allocated resources. In dovecot, OpenSSL is loaded indirectly using dlopen(3) against the relevant dovecot crypto module and is finally unloaded using dlclose(3). Until OpenSSL 1.0.1c this worked fine, however OpenSSL 1.0.1c makes sure[1] that the library stays loaded after the initial dlclose() so that the atexit(3) handlers can run on shutdown. This, together with the fact that dovecot uses custom allocation functions for OpenSSL and has already partially free()'d some of OpenSSL's resources in module_free(), leads to a segfault at process shutdown[2]. We fix this by explicitly calling OPENSSL_cleanup() during module unload. This is safe to do, as long as we will never want to subsequently re-initialize OpenSSL. [1] https://github.com/openssl/openssl/commit/4af9f7fe79ff82b90c16969b7e5871435056377b [2] https://buildd.debian.org/status/fetch.php?pkg=dovecot&arch=amd64&ver=1:2.2.26.0-2&stamp=1478873022 Signed-off-by: Apollon Oikonomopoulos M src/lib-ssl-iostream/dovecot-openssl-common.c 2016-11-15 12:55:44 +0100 Apollon Oikonomopoulos (7a6197f90) ssl: fix reference to SSLv2 and disable SSLv3 This is driven by the fact that OpenSSL 1.1 does not know about SSLv2 at all and dovecot's defaults simply make OpenSSL error out with "Unknown protocol 'SSLv2'"[1]. So we change the defaults to refer to SSLv2 iff OpenSSL seems to know something about it. While at it, it's also a good idea to disable SSLv3 by default as well. [1] https://bugs.debian.org/844347 Signed-off-by: Apollon Oikonomopoulos M doc/example-config/conf.d/10-ssl.conf M src/lib-master/master-service-ssl-settings.c 2016-11-15 11:42:47 +0100 Timo Sirainen (92f66f98f) lib-http: Use io_wait_timer for tracking wait times. The previous code was completely incorrect, since it wasn't even tracking the HTTP request's start usecs. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2016-11-15 11:41:53 +0100 Timo Sirainen (6d5a7004a) dict-client: Use io_wait_timer for tracking wait times. This way the "dict wait" time includes all ioloop waits that wait on the dict-client, not just in dict_wait(). M src/lib-dict/dict-client.c 2016-11-15 11:21:56 +0100 Timo Sirainen (64f5f4f0e) lib: Added io_wait_timer This allows easier tracking of how much time the io_wait_timer has been spending on (multiple) ioloops. M src/lib/ioloop-private.h M src/lib/ioloop.c M src/lib/ioloop.h 2016-11-15 11:20:41 +0100 Timo Sirainen (3809334f9) lib: Code cleanup - move code to ioloop_add_wait_time() M src/lib/ioloop.c 2016-11-15 11:11:37 +0100 Timo Sirainen (bd3f036fd) lib: Fix ioloop wait times when io_loop_time_refresh() is used M src/lib/ioloop-private.h M src/lib/ioloop.c 2016-11-15 20:10:43 +0200 Aki Tuomi (2dbb7b30d) doveadm: Put doveadm_mail_iter_init parameters to right order M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-flags.c 2016-11-15 13:40:54 +0200 Aki Tuomi (ede2466e3) lib-storage: Add vsize hdr on empty mailbox M src/lib-storage/index/index-mailbox-size.c 2016-11-15 13:17:05 +0200 Aki Tuomi (a25320031) doveadm-director: Include tag in add line M src/doveadm/doveadm-director.c 2016-11-15 09:33:15 +0200 Aki Tuomi (22728b92a) doveadm-import: Open source boxes read-only This allows importing emails from read-only locations, such as backups. M src/doveadm/doveadm-mail-import.c 2016-11-15 09:32:31 +0200 Aki Tuomi (00b10a9ca) doveadm: Add open read-only parameter to mailbox iterator This allows iterating mailboxes so that they are opened for read-only. M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-flags.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-iter.h M src/doveadm/doveadm-mail-search.c 2016-11-06 02:50:52 +0200 Aki Tuomi (4d615d259) stats: Add support for carbon-server Allows admin to specify stats_carbon_server=ip:port. Stats are delivered in "key value" format to specified port. Can be received with e.g. metronome. M src/stats/Makefile.am M src/stats/mail-stats.c M src/stats/mail-stats.h A src/stats/stats-carbon.c A src/stats/stats-carbon.h M src/stats/stats-settings.c M src/stats/stats-settings.h 2016-11-09 15:18:49 +0200 Aki Tuomi (1b6f7fc2c) lib-program-client: Use net_ipport2str M src/lib-program-client/program-client-remote.c 2016-11-09 15:17:01 +0200 Aki Tuomi (727d691bb) lib: Add net_ipport2str Converts struct ip_addr + port into either 127.0.0.1:6000 or [::1]:6000. M src/lib/net.c M src/lib/net.h 2016-11-14 10:52:22 +0200 Aki Tuomi (ece150f1b) doveadm: Fix error reporting for doveadm-dump-dcrypt M src/doveadm/doveadm-dump-dcrypt-file.c M src/doveadm/doveadm-dump-dcrypt-key.c 2016-11-14 14:54:37 +0100 Timo Sirainen (8638c3723) lib: Assert-crash in i_close_fd() if fd == 0 lib-master now guarantees that fd==0 doesn't normally happen. M src/lib/macros.h 2016-11-14 14:51:45 +0100 Timo Sirainen (5a0b58bfc) master: Remove redundant check to guarantee stdin/stdout/stderr fd existence. The previous method also wasn't correct, since it was setting close-on-exec flag for the fds. Although this didn't normally make any difference, since stdin & stdout was explicitly dup2()ed to /dev/null and for all except the log process stderr was also being dup2()ed. M src/master/main.c 2016-11-14 14:48:20 +0100 Timo Sirainen (08923d2c9) lib-master: Make sure stdin/stdout/stderr fds are open. We'll just open /dev/null for them if they don't already exist. M src/lib-master/master-service.c 2016-11-14 16:45:24 +0200 Aki Tuomi (a85c629c5) lib: Mark istream with eof=TRUE on all errors Previously only i_stream_read() did this, but i_stream_seek(), _stat(), _get_size() and _create() didn't. This caused assert-crashes on error conditions in code which assumed that when stream_errno != 0, eof==TRUE. M src/lib/istream.c 2016-10-26 11:03:55 +0300 Aki Tuomi (fa3fc0b4c) quota: Use program-client for quota-warning scripts M src/plugins/quota/Makefile.am M src/plugins/quota/quota.c 2016-11-09 15:40:48 +0200 Aki Tuomi (f207fb0f2) lib-program-client: Do not call callback when destroying M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client.c 2016-11-14 13:22:06 +0100 Timo Sirainen (87e7fc1f2) dict-client: When dict-server times out, log ioloop/lock waits. M src/lib-dict/dict-client.c 2016-11-14 13:18:13 +0100 Timo Sirainen (c1814529b) dict-client: Code cleanup to timeout handling. No functional changes. M src/lib-dict/dict-client.c 2016-11-14 13:14:25 +0100 Timo Sirainen (155e321dd) dict-client: Dict server timeout may have occurred too early. M src/lib-dict/dict-client.c 2016-11-11 17:00:39 +0200 Timo Sirainen (6a4bfb2b0) lib-index: Improve error messages when transaction log is unexpectedly lost M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-sync-private.h M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-view.c 2016-11-10 23:00:59 +0200 Timo Sirainen (8c0e4118f) dict-client: Forward dict_iterate_set_limit() to dict server M src/dict/dict-commands.c M src/lib-dict/dict-client.c 2016-11-10 23:23:39 +0200 Timo Sirainen (980b0dbdc) dict-client: Code cleanup - remember all iteration flags M src/lib-dict/dict-client.c 2016-11-10 22:57:22 +0200 Timo Sirainen (ea90267d4) lib-dict: Fix infinite loop when row limit is reached. If dict_iterate_has_more() keeps returning TRUE, the caller keeps calling dict_iterate(). M src/lib-dict/dict.c 2016-11-11 13:06:41 +0200 Timo Sirainen (321750ab6) director: Don't access freed memory during deinit M src/director/mail-host.c 2016-11-10 18:24:46 +0200 Timo Sirainen (ecd54acb3) sdbox: Fix crash on mailbox_sync*() when mailbox auto-open fails. M src/lib-storage/index/dbox-single/sdbox-sync.c 2016-11-09 15:17:01 +0200 Timo Sirainen (078d7671f) director: Fix crash when receiving USER-MOVE for nonexistent user. M src/director/director.c 2016-11-09 11:27:20 +0200 Martti Rannanjärvi (3d2fe17f2) director: remove unused variable from doveadm-connection M src/director/doveadm-connection.c 2016-11-09 00:48:32 +0100 Stephan Bosch (0cdd27506) lib-http: test-http-client-errors: Add test for server that returns error status early while client is still sending blocking payload. M src/lib-http/test-http-client-errors.c 2016-11-09 00:46:32 +0100 Stephan Bosch (b28496236) lib-http: client: Fixed assert failure occurring when server returns error status early while client is still sending blocking payload. M src/lib-http/http-client-request.c 2016-11-09 00:24:54 +0100 Stephan Bosch (8e2dd1226) lib-http: Added blocking client support to test-http-client-errors. M src/lib-http/test-http-client-errors.c 2016-11-08 20:41:15 +0200 Aki Tuomi (7bc3126bb) imap: Free box on error Otherwise the box wil leak as it is not assigned anywhere and can cause crash on imap exit due to stats plugin timeout leak. M src/imap/imap-state.c 2016-10-20 19:06:22 +0300 Aki Tuomi (b44033e45) director: Keep per-tag directory M src/director/director-connection.c M src/director/director-request.c M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c M src/director/mail-host.c M src/director/mail-host.h M src/director/main.c M src/director/notify-connection.c 2016-11-01 14:36:19 +0200 Aki Tuomi (1a7ed931e) director: Code cleanup - typedef user_free_hook This is done because user_free_hook needs to be also used in mail_host. If it changes, this reduces the places that need touching. M src/director/user-directory.c M src/director/user-directory.h 2016-11-01 14:40:49 +0200 Aki Tuomi (33d70dcbb) director: Code cleanup - Reorder includes This is required to enable typedef of user_free_hook M src/director/director-connection.c M src/director/director-request.c M src/director/mail-host.h M src/director/notify-connection.c M src/director/test-user-directory.c M src/director/user-directory.c 2016-10-20 20:31:33 +0300 Timo Sirainen (de92873c3) director: Code cleanup - moved username_hash generation to director.h It's not really user_directory specific. This is especially important in the following patches that add per-tag user_directories. It's also not always known which tag the username_hash refers to, so there can't be different tag-specific username_hash generators. M src/director/director-request.c M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c M src/director/notify-connection.c M src/director/test-user-directory.c M src/director/user-directory.c M src/director/user-directory.h 2016-10-20 19:38:28 +0300 Timo Sirainen (1f7f42942) director: Code cleanup - added user director_iterate_users_*() wrappers. This will shrink the diff for the following changes. M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c 2016-10-20 19:17:11 +0300 Timo Sirainen (68d87d8fb) director: Code cleanup - use temporary users variables This will shrink the diff for the following changes. M src/director/director-connection.c M src/director/director-request.c M src/director/director.c M src/director/doveadm-connection.c 2016-10-20 16:14:36 +0300 Timo Sirainen (e47dd69b0) director: Code cleanup - moved code to notify_update_user() M src/director/notify-connection.c 2016-10-20 15:13:04 +0300 Aki Tuomi (4af552f09) director: const mail_host in mail_host_get_tag M src/director/mail-host.c M src/director/mail-host.h 2016-11-05 19:06:33 +0200 Aki Tuomi (4217dcdec) lib: Add test vectors for message digests M src/lib/test-hash-method.c 2016-11-05 11:48:27 +0200 Aki Tuomi (70ee483d3) lib: Add SHA3 hashing methods for 256 and 512 bits M src/lib/Makefile.am M src/lib/hash-method.c A src/lib/sha3.c A src/lib/sha3.h 2016-11-05 11:47:40 +0200 Aki Tuomi (686840068) lib: Move sha context and result size to new header This is to prepare for SHA3 inclusion M src/lib/Makefile.am A src/lib/sha-common.h M src/lib/sha2.h 2016-11-05 21:50:30 +0100 Stephan Bosch (1007721ca) lib-lda: smtp-client: Replaced temp file handling with iostream-temp. M src/lib-lda/smtp-client.c 2016-11-05 20:57:20 +0100 Stephan Bosch (e7ebceac4) lib-lda: smtp-client: Use program-client for invoking sendmail binary. M src/lib-lda/Makefile.am M src/lib-lda/smtp-client.c 2016-11-05 22:34:18 +0100 Stephan Bosch (1ebd744c8) lib-lda: smtp-client: Made boolean fields single-bit. M src/lib-lda/smtp-client.c 2016-11-05 22:00:09 +0100 Stephan Bosch (882479071) lib-lda: smtp-client: Renamed "smtp_client" parameters to "client" for consistency. M src/lib-lda/smtp-client.c 2016-11-07 23:27:01 +0200 Aki Tuomi (9c257ae40) m4: Fix compiler warnings Makes it work with -Wall -W -Werror M m4/fd_passing.m4 M m4/ipv6.m4 M m4/unsetenv.m4 2016-11-04 12:36:19 +0200 Timo Sirainen (6264b51bc) lib-storage: Renamed MAIL_SEARCH_ARG_FLAG_USE_TZ to _FLAG_UTC_TIMES M src/lib-storage/index/index-search.c M src/lib-storage/mail-search-args-imap.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search.h M src/plugins/expire/doveadm-expire.c 2016-11-04 12:18:47 +0200 Timo Sirainen (8fc48a7d4) lib-storage: Updated MAIL_SEARCH_ARG_FLAG_USE_TZ comment. M src/lib-storage/mail-search.h 2016-11-04 12:04:11 +0200 Timo Sirainen (2fc91862f) lib-storage: Fix doveadm search query parsing to use timezones correctly. When using a date string, e.g. "senton 25-Mar-2007" it should work the same way as IMAP does and show all mails whose sent date is on 25th, ignoring whatever the timezone is in the Date header (or in case of received/saved-date it would be using the timestamps in server's local timezone, again just like IMAP). When search with an exact UNIX timestamp or a time interval (e.g. "3 days"), it should be using UTC times for doing all comparisons. M src/doveadm/doveadm-dsync.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2016-11-04 12:03:47 +0200 Timo Sirainen (0303b693b) lib-storage: Reverse MAIL_SEARCH_ARG_FLAG_USE_TZ handling again. It wasn't really wrong, it was just confusing. And doveadm's tz-handling was wrong. Reverses 059e4ac419224598349704b74cb9f6b49278df46 M src/lib-storage/index/index-search.c 2016-11-03 21:06:27 +0100 Stephan Bosch (4ff193d24) lib-http: Fixed potential segfault problem in test-http-client-errors. Found by Coverity. M src/lib-http/test-http-client-errors.c 2016-11-03 19:16:49 +0200 Timo Sirainen (6525f6371) lib: Define ARRAY_TYPE for uint8_t, uint16_t and uint64_t. M src/lib/array-decl.h 2016-10-19 12:33:02 -0400 Josef 'Jeff' Sipek (9d69283ef) data-stack: T_BEGIN should use file & line number as the t_push marker Using a function name is not unique if there is more than one T_BEGIN in a function. Therefore, switch the marker passed into t_push to be the concatenation of __FILE__ and __LINE__. M src/lib/data-stack.h 2016-10-19 12:24:12 -0400 Josef 'Jeff' Sipek (ccfe24c9f) data-stack: t_push should always keep track of the marker Instead of only keeping track of it on DEBUG builds, t_push should always keep the marker around. This will help diagnosing issues on non-debug builds. M src/lib/data-stack.c M src/lib/data-stack.h 2016-10-17 09:49:36 -0400 Josef 'Jeff' Sipek (4ab881419) use __func__ instead of __FUNCTION__ __FUNCTION__ is a non-standard extension while __func__ is C99. M src/lib/data-stack.h M src/lib/macros.h 2016-11-01 21:50:29 +0200 Aki Tuomi (e1d4f6f6a) auth: Use buffer_truncate_rshift_bits M src/auth/auth-policy.c 2016-10-27 16:20:20 +0300 Aki Tuomi (14c903cfe) lib: Add tests for hashed var-expand M src/lib/test-var-expand.c 2016-10-27 15:37:45 +0300 Aki Tuomi (7c4af1fdc) lib: Add generic hashing support to var-expand Enables use of %{H;rounds=,truncate=,salt=:field} syntax in any variable expansion. H is any supported hash algorithm or pkcs5 for PKCS#5 PBKDF2 using SHA256. M src/lib/var-expand.c 2016-10-27 16:19:52 +0300 Aki Tuomi (e0dddec70) lib: Do not consume {} inside %{} M src/lib/var-expand.c 2016-11-01 20:14:43 +0200 Aki Tuomi (ef2bf290f) lib: Add unit test for buffer truncate M src/lib/test-buffer.c 2016-11-01 20:06:46 +0200 Aki Tuomi (e07b8f034) lib: Add buffer truncate M src/lib/buffer.c M src/lib/buffer.h 2016-11-02 23:00:50 +0200 Timo Sirainen (fb9b9914c) auth: Make static analyzer happier. Don't complain about uninitialized static_password being sent to passdb_handle_credentials(). It could only happen for failures, and passdb_handle_credentials() wouldn't have used the password then. M src/auth/passdb-static.c 2016-11-02 21:59:12 +0200 Timo Sirainen (b8673ed3d) fts: Fix error message when syncing FTS root mailbox fails. M src/plugins/fts/fts-api.c 2016-11-02 15:43:37 +0200 Timo Sirainen (dec95fbca) auth: Fixes to previous var_expand() change. M src/auth/auth-request.c M src/auth/test-auth-request-var-expand.c 2016-11-02 15:31:14 +0200 Timo Sirainen (5535f5fb5) lib: ioloop-notify-kqueue wasn't storing source filename. M src/lib/ioloop-notify-kqueue.c 2016-11-02 15:22:25 +0200 Timo Sirainen (c73ede1a6) lib-storage: Fix previous var_expand() change. M src/lib-storage/mail-storage-service.c 2016-10-31 22:05:11 +0200 Timo Sirainen (bcf1cf2af) lib: API change - var_expand_func_table.func() can now return error. None of the existing functions were changed to return errors (yet). M src/auth/auth-request-var-expand.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib/test-var-expand.c M src/lib/var-expand.c M src/lib/var-expand.h M src/login-common/client-common.c 2016-10-31 21:48:16 +0200 Timo Sirainen (0f5dc4da3) lib: API change - var_expand*() now returns error string. This allows callers to fail properly if the format string is invalid. M src/auth/auth-cache.c M src/auth/auth-policy.c M src/auth/auth-request-var-expand.c M src/auth/auth-request-var-expand.h M src/auth/auth-request.c M src/auth/db-checkpassword.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-pam.c M src/auth/passdb-passwd-file.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-template.c M src/auth/passdb-template.h M src/auth/test-auth-cache.c M src/auth/test-auth-request-var-expand.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-template.c M src/auth/userdb-template.h M src/director/director-request.c M src/director/director.c M src/director/doveadm-connection.c M src/director/notify-connection.c M src/director/test-user-directory.c M src/director/user-directory.c M src/director/user-directory.h M src/doveadm/doveadm-auth-server.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-print-formatted.c M src/imap-hibernate/imap-client.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/imap-client.c M src/imap/main.c M src/lda/main.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-mail/mail-user-hash.c M src/lib-mail/mail-user-hash.h M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h M src/lib-sql/driver-cassandra.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib/test-var-expand.c M src/lib/var-expand.c M src/lib/var-expand.h M src/lmtp/client.c M src/lmtp/commands.c M src/login-common/client-common.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/plugins/acl/acl-shared-storage.c M src/plugins/dict-ldap/dict-ldap.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c 2016-10-31 20:26:02 +0200 Timo Sirainen (d5e68154e) auth: Code cleanup - Move passwd-file extra fields import to its own function. This will shrink the diff output for the following var_expand() change. M src/auth/passdb-passwd-file.c M src/auth/userdb-passwd-file.c 2016-10-31 19:20:51 +0200 Timo Sirainen (7c3a801ca) lib: var_expand() code cleanup - Moved short %v expansion to its own function. M src/lib/var-expand.c 2016-10-01 20:12:13 +0200 Stephan Bosch (d2fd204b3) imap-login: Adjusted IMAP AUTHENTICATE command to return CONTACTADMIN and EXPIRED response codes when appropriate. M src/imap-login/client-authenticate.c 2016-11-01 22:45:16 +0100 Stephan Bosch (8ac662367) auth,login-common: Added result code for invalid base64-encoded response data. M src/auth/auth-request-handler.c M src/imap-login/client-authenticate.c M src/lib-auth/auth-client-interface.h M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h M src/pop3-login/client-authenticate.c 2016-11-02 01:31:40 +0100 Stephan Bosch (04eb0abcf) login-common: Added result codes for mechanism-related failures. M src/imap-login/client-authenticate.c M src/lib-auth/auth-client-interface.h M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c M src/login-common/sasl-server.h M src/pop3-login/client-authenticate.c 2016-11-01 23:12:25 +0100 Stephan Bosch (f32d0295c) login-common: Added result code for a nologin code from the auth service. M src/imap-login/client-authenticate.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h M src/pop3-login/client-authenticate.c 2016-11-02 01:39:49 +0100 Stephan Bosch (529944a35) login-common: Added result code for password-expired authentication failure. M src/imap-login/client-authenticate.c M src/login-common/client-common-auth.c M src/login-common/client-common.h M src/pop3-login/client-authenticate.c 2016-11-01 21:32:42 +0100 Stephan Bosch (36b072d84) auth: Added a code= field to the auth FAIL response that replaces the "authz", "temp", "pass_expired", and "user_disabled" fields. M src/auth/auth-request-handler.c M src/lib-auth/auth-client-interface.h M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h 2016-10-25 09:56:34 +0200 Stephan Bosch (3395f5ad0) lib-http: Added DNS-related tests to test-http-client-errors. M src/lib-http/test-http-client-errors.c 2016-09-16 20:29:00 +0200 Stephan Bosch (c4b2dba35) lib-http: client: Destroy host and associated queue objects after no more requests remain and an idle timeout expires. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c 2016-09-16 20:22:17 +0200 Stephan Bosch (1e63e3081) lib-http: client: Implemented host name lookup TTL. Host name lookups will now be performed again when the results have expired. Without access to TTL information from DNS lookups, all lookups will use the same default TTL for now. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2016-09-15 22:49:54 +0200 Stephan Bosch (c62f15cc1) lib-http: client: Added http_client_queue_requests_active(). It counts how many active requests a queue has. M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c 2016-09-16 01:58:27 +0200 Stephan Bosch (6a0e62561) lib-http: client: Create queue->pending_peers array from the beginning. This simplifies the code, since the pending peers array is always used. M src/lib-http/http-client-queue.c 2016-09-16 01:35:09 +0200 Stephan Bosch (57d86b6fd) lib-http: client: Link peers to queue earlier: during connection attempts. This makes sure that queues keep track of which peers are doing stuff on its behalf. This is important to be able to manage the active peers when a new host name lookup was performed; if a peer is no longer listed in the returned IPs it should be dropped. M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c 2016-09-15 02:14:46 +0200 Stephan Bosch (1443a6b1b) lib-http: client: Created http_client_peer_drop() function that closes a peer object gracefully. It checks whether any connections are still present. It checks whether a backoff timer is still active. This change and subsequent changes prepare for being able to destroy a queue when it becomes unused. All peers linked to such a queue are unlinked and dropped when inactive and unlinked. M src/lib-http/http-client-peer.c 2016-09-15 02:09:47 +0200 Stephan Bosch (c1423bdba) lib-http: client: Unlink all queues from peer when it is disconnected. Before, queues were only destroyed when the whole client was destroyed. This change and subsequent changes prepare for being able to destroy a queue when it becomes unused. M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c 2016-09-15 01:59:23 +0200 Stephan Bosch (d675ed17d) lib-http: client: Improved logging of connection loss handling in peer. M src/lib-http/http-client-peer.c 2016-09-14 21:37:38 +0200 Stephan Bosch (ac325a763) lib-http: client: If a peer object is no longer linked to a queue, don't close it until all connections are inactive. The peer object is canceled, rather than closed. Which means that any newly started and idle connections are closed immediately. Requests may be pending though. This is only relevant when hosts/queues are removed at some point. This is a preparational change for having a maximum lifetime on hosts/queues, in which case this becomes a possibility. M src/lib-http/http-client-peer.c 2016-09-14 01:37:05 +0200 Stephan Bosch (a8f65a7de) lib-http: client: Added debug messages that indicate when a queue is linked/unlinked to a peer. M src/lib-http/http-client-peer.c 2016-09-14 01:30:16 +0200 Stephan Bosch (66ea898de) lib-http: client: Added function that counts how many connections are active within a peer. M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2016-09-14 01:26:10 +0200 Stephan Bosch (2b9d522a3) lib-http: client: Added function that checks whether a connection is currently active. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h 2016-09-11 19:34:34 +0200 Stephan Bosch (32ef0bd65) lib-http: client: Created http_client_connection_failure() handler. M src/lib-http/http-client-connection.c 2016-09-11 19:44:32 +0200 Stephan Bosch (e6c7a2711) lib-http: client: Set conn->connect_request to NULL immediately in http_client_connection_tunnel_response(). Prevents referring to this completed request in other parts of the code. M src/lib-http/http-client-connection.c 2016-09-11 17:46:10 +0200 Stephan Bosch (c936df07c) lib-http: client: Improved handling of hosts with explicit IP address. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h 2016-09-11 14:51:28 +0200 Stephan Bosch (58c278560) lib-http: Made test-http-client-errors more reliable. M src/lib-http/test-http-client-errors.c 2016-11-01 12:35:08 +0200 Timo Sirainen (df1b2c3ff) lib-index: Don't waste 3 bytes of space in struct mail_index_record. It was always supposed to be used mainly for keywords, but it got broken many years ago and nobody noticed. M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index.h 2016-11-01 12:43:03 +0200 Timo Sirainen (e545fb28b) lib-storage: Don't enable modseqs on STATUS_HIGHESTMODSEQ. This is requested always by IMAP's SELECT command even when the IMAP client hasn't requested it. We don't want to unnecessarily enable modseqs that use up memory and disk space when they're not really needed. Other callers may also be interested in asking for HIGHESTMODSEQ (which is nowadays actually always available) without enabling full modseq tracking. M src/lib-storage/mail-storage.c 2016-11-01 15:51:02 +0200 Timo Sirainen (059e4ac41) lib-storage: Reverse MAIL_SEARCH_ARG_FLAG_USE_TZ handling. It was being used the wrong way. SEARCH SENTON/BEFORE/AFTER should have checked the times within the mail's timezone, not UTC. M src/lib-storage/index/index-search.c 2016-10-31 21:39:44 +0200 Timo Sirainen (ccf5e99d0) doveadm director: Fix memory leaks if hostname lookup fails. M src/doveadm/doveadm-director.c 2016-11-01 17:09:27 +0200 Timo Sirainen (e0e555a09) lib: Fix str_truncate() when string size is already smaller. Previous behavior either added extra NULs to the string or assert-crashed. M src/lib/str.h M src/lib/test-str.c 2016-09-16 09:53:06 +0300 Timo Sirainen (6d24551e1) imap/pop3 proxy: If passdb returns proxy_not_trusted, don't send ID/XCLIENT This allows using Dovecot proxying feature towards less trusted servers. M src/imap-login/imap-proxy.c M src/login-common/client-common-auth.c M src/login-common/client-common.h M src/pop3-login/pop3-proxy.c 2016-10-31 20:42:03 +0200 Timo Sirainen (adea1e1e4) auth: Code cleanup - Return void in passdb.set_credentials() It's an asynchronous function, so the result will be in the callback parameters. M src/auth/passdb-sql.c M src/auth/passdb.h 2016-10-31 20:19:07 +0200 Timo Sirainen (b4ed649ca) auth: If passwd-file can't be read, return tempfail (not user unknown). M src/auth/db-passwd-file.c M src/auth/db-passwd-file.h M src/auth/passdb-passwd-file.c M src/auth/userdb-passwd-file.c 2016-10-31 20:06:35 +0200 Timo Sirainen (4b50a16fa) auth: If uidgid_file doesn't exist, fail the userdb lookup. M src/auth/auth-request.c 2016-10-28 13:26:42 +0300 Timo Sirainen (59a82d4b3) mdbox: Fix assert-crash caused by race condition with multiple doveadm purges. This fixes a problem where an email that was just written to a new m.* file gets expunged and purged by another process. Fixes: Panic: file mdbox-map.c: line 1359: unreached M src/lib-storage/index/dbox-multi/mdbox-map.c 2016-10-31 19:12:14 +0200 Timo Sirainen (ba1b959d6) fs-randomfail: "write" probability was reversed. 0 meant 100% while 100 meant 0% M src/lib-fs/fs-randomfail.c 2016-10-31 15:37:00 +0200 Aki Tuomi (955f324bf) lib-test: Do not init/deinit library twice If lib is initialized, do not initialize or deinitialize library. This is done to allow using master_service in unit tests which also wants to perform lib init and deinit itself. M src/lib-test/test-common.c 2016-10-31 15:36:39 +0200 Aki Tuomi (8a20f9649) lib: Add function to see if lib is initialized This is needed by test-lib to prevent double init/deinit. M src/lib/lib.c M src/lib/lib.h 2016-10-28 21:34:41 +0300 Timo Sirainen (b73cfe3ea) configure: Fix link ordering libprogram_client.la needs to be before libdns.la M configure.ac 2016-10-28 19:38:43 +0300 Timo Sirainen (f43ce62fa) dsync: Fix potential assert on mailbox deinit. Should have happened only in somewhat rare error conditions that require resyncing. Fixes: Panic: file dsync-brain-mailbox.c: line 358 (dsync_brain_sync_mailbox_deinit): assertion failed: (brain->failed || brain->sync_type == DSYNC_BRAIN_SYNC_TYPE_CHANGED) M src/doveadm/dsync/dsync-brain-mailbox.c 2016-10-28 14:36:41 +0100 Paul Howarth (5546faab3) configure: Improve check for OpenSSL without EC support The original test was for EC_KEY_new but some systems had that and not EVP_PKEY_CTX_new_id, so the test was switched to that function. However, Fedora releases 12 through 17 have EVP_PKEY_CTX_new_id but not EC_KEY_new. So we need to test for both functions before enabling the dcrypt build. M m4/ssl.m4 2016-10-28 16:59:43 +0300 Timo Sirainen (870bf394d) lib-program-client: Fix building with compilers that have no typeof() M src/lib-program-client/test-program-client-net.c M src/lib-program-client/test-program-client-unix.c 2016-10-28 13:02:55 +0300 Timo Sirainen (05c1d362c) lib: Removed t_strsplit_tab() It's too easy to use it accidentally instead of using t_strsplit_tabescaped(). It's also rarely what is actually wanted. M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2016-10-28 12:12:28 +0300 Timo Sirainen (026d971be) auth-worker: Fix potential crash when importing passdb/userdb fields without value. These were being converted to NULL values in auth-worker, while elsewhere they were converted to "". Changed to "" here as well and added asserts to make sure they won't happen again. Most of the NULL values would have been fine, but overriding any IP/port fields would have caused a crash when trying to parse the value. M src/auth/auth-request.c M src/auth/auth-worker-client.c 2016-10-28 11:54:27 +0300 Timo Sirainen (2c96c5156) auth: Fix crash when exporting passdb fields to auth-worker that have NULL values M src/auth/auth-request.c 2016-10-27 13:20:03 +0300 Timo Sirainen (5507b0c7e) lib-compression: Fixed fd leak in unit test M src/lib-compression/test-compression.c 2016-10-27 11:19:50 +0300 Timo Sirainen (9199e32b8) lib-auth: Minor debug logging improvement. Include "PASS" or "USER" in the prefix to make it clear what the reply is for. M src/lib-auth/auth-master.c 2016-08-13 01:51:32 +0300 Martti Rannanjärvi (21aaa6aff) lib-storage: rename get_real_mail to get_backend_mail Also change the function signature so that it returns an int to indicate success or failure. M src/lib-storage/fail-mail.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/plugins/virtual/virtual-mail.c 2016-10-27 03:58:21 +0300 Martti Rannanjärvi (832830690) doveadm: fix compile warning in doveadm-dump-index M src/doveadm/doveadm-dump-index.c 2016-10-26 23:20:17 +0300 Timo Sirainen (7bab7c949) doveadm dump: Dump mailbox names in mailbox.list.index's header. M src/doveadm/doveadm-dump-index.c 2016-10-26 18:06:36 +0300 Timo Sirainen (def2e150b) *-login: Removed enforcing maximum calculated fd limit. Just use the regular ulimit. Login process has become complicated enough that counting the exact fd size isn't so easy anymore. Also apparently this low fd limit is causing errors with new Linux kernels: pop3-login: Error: fd_send(pop3, 18) failed: Too many references: cannot splice M src/login-common/main.c 2016-10-26 12:21:16 +0300 Aki Tuomi (67574bb43) lib-program-client: Remove code duplication The content is sent on connected already. Do not send it early in async connect. M src/lib-program-client/program-client.c 2016-10-26 12:20:06 +0300 Aki Tuomi (a0c576667) lib-program-client: Retry connection on EAGAIN M src/lib-program-client/program-client-remote.c 2016-10-26 18:05:32 +0300 Timo Sirainen (00bcc83b1) Compiler warning fixes with -Wstrict-bool M src/lib-compression/test-compression.c M src/lib-sql/driver-cassandra.c 2016-10-26 14:58:56 +0300 Timo Sirainen (243c1821d) lib: Fixed net_str2port*() comments M src/lib/net.h 2016-10-25 20:52:16 +0300 Timo Sirainen (f65486adb) doveadm fs get: Use pager formatter by default to avoid extra LF at the end. M src/doveadm/doveadm-fs.c 2016-10-25 20:54:17 +0300 Timo Sirainen (a4a7440a1) doveadm: Code cleanup - add and use DOVEADM_PRINT_TYPE_PAGER macro M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print.h 2016-10-25 20:51:36 +0300 Timo Sirainen (ec186c47c) doveadm: "pager" formatter supports now DOVEADM_PRINT_HEADER_FLAG_HIDE_TITLE M src/doveadm/doveadm-print-pager.c 2016-10-25 22:39:38 +0300 Timo Sirainen (faa01447c) director: Avoid assert-crash at deinit if user moves are still being added. Fixes: Panic: file user-directory.c: line 312 (user_directory_deinit): assertion failed: (array_count(&dir->iters) == 0) M src/director/main.c 2016-10-25 22:17:23 +0300 Timo Sirainen (b93ec4e5b) director: Send user's old and new backend IPs to flush script. If user was created due to the user-move, don't execute the flush script since it wouldn't really have any work to do anyway. M src/director/director.c M src/director/director.h 2016-10-25 22:12:01 +0300 Timo Sirainen (aad23ef15) director: User move - Don't try to kick user's connections if user wasn't even known. M src/director/director.c 2016-10-25 22:06:02 +0300 Timo Sirainen (3404b66f3) director: Code cleanup - moved user kill startup to its own function. No functional changes. M src/director/director.c 2016-10-25 21:47:01 +0300 Timo Sirainen (8cafec427) director: Code cleanup - global director is no longer needed. M src/director/director.h M src/director/main.c 2016-10-17 01:07:50 +0300 Timo Sirainen (1b7cd5758) director: Moved all user killing state to struct director_kill_context This should make it a bit easier to understand the life time of user killing. It also simplifies code by removing struct director_user_kill_finish_ctx. Finally, this already reduces memory usage with 32bit systems, and would make it possible to reduce also on 64bit systems if timestamp is shrank to 31 bits and weak bit moved after it. I'm not sure if that would be better for performance though. In any case it would provide free space for 4 extra bytes if that were needed in future. M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/director/test-user-directory.c M src/director/user-directory.c M src/director/user-directory.h 2016-10-25 21:41:16 +0300 Timo Sirainen (778a9861e) director: Code cleanup - rename director_kill_context.self to kill_is_self_initiated M src/director/director.c 2016-10-20 16:46:31 +0300 Timo Sirainen (79ee504bd) director: Code cleanup - added USER_IS_BEING_KILLED() macro M src/director/director-connection.c M src/director/director-request.c M src/director/director.c M src/director/doveadm-connection.c M src/director/user-directory.c M src/director/user-directory.h 2016-10-20 16:41:23 +0300 Timo Sirainen (c13fce163) director: Code cleanup - move enum user_kill_state to director.h This will be needed by following commits M src/director/director.c M src/director/director.h M src/director/user-directory.c M src/director/user-directory.h 2016-10-25 23:47:13 +0300 Timo Sirainen (b1d5d687d) lib-lda: Add back subject sanitization to mail sending. Broken by acfda38b75d0f0e899ef692fef01593bd56ed85e M src/lib-lda/mail-send.c 2016-10-25 21:20:54 +0300 Timo Sirainen (9954af4b7) director: Fix HOST-RESET-USERS with host parameter. The logic was reversed: It should flush the specified host, not some other host. Broken by 11ee3b40320a31669bd717fecbe1e332dad4fd84 M src/director/doveadm-connection.c 2016-10-25 01:03:05 +0300 Timo Sirainen (3cbc0cb7c) doveadm director dump: Fixed output to include LFs Otherwise all the output will be mixed up in the same line. M src/doveadm/doveadm-director.c 2016-10-25 00:48:08 +0300 Timo Sirainen (6af8cc057) director: Execute director_flush_socket only from one director. Having each director do it would be redundant since they're all supposed to be performing the same flush task to the same backend. M src/director/director.c M src/director/user-directory.h 2016-10-25 00:32:59 +0300 Timo Sirainen (0874d7a4f) director: Improve debug logging output. M src/director/director-connection.c M src/director/director.c 2016-10-25 00:25:38 +0300 Timo Sirainen (fd882f791) director: Fix user move hangs when another move is triggered early. Running "doveadm director flush" before the previous flush hadn't fully finished could have caused users to hang until their move timeout: director: Error: Finishing user 3249070169 move timed out, its state may now be inconsistent (state=waiting-for-everyone) M src/director/director-connection.c M src/director/director.c 2016-10-25 00:22:20 +0300 Timo Sirainen (f9c765593) director: Prevent race conditions by adding USER_KILL_STATE_FLUSHING In theory it's possible that a user is freed during a flush and added back before flush is finished, possibly even being moved again. This check makes sure that we don't finish such move unless we're actually at the correct flushing state. (If there's another flush also running for the user it'll be ignored.) This is also useful for logging purposes. M src/director/director.c M src/director/user-directory.c M src/director/user-directory.h 2016-10-25 00:13:23 +0300 Timo Sirainen (fb9dfa9ea) director: If user host conflict is detected, make sure new host is sent back. USER-KICK-HASH was sent, but the sender didn't get back a USER reply with the new host. This could have increased how long user's host differred in directors. Avoids repeating this error: Error: User hash 2957018085 is being redirected to two hosts: 10.0.0.30 and 10.0.0.201 (old_ts=1477338836) M src/director/director-connection.c 2016-10-24 22:42:43 +0300 Timo Sirainen (b79120aa3) doveadm director flush: Added --max-parallel parameter. M src/doveadm/doveadm-director.c 2016-10-24 22:41:25 +0300 Timo Sirainen (11ee3b403) director: HOST-RESET-USERS moves users more slowly now. By default only 100 users can be moved in parallel. This can be overridden with HOST-RESET-USERS parameter. This delaying is especially useful when director_flush_socket is used to avoid huge floods to the script service. Even without the socket it's still good for avoiding unnecessary load spikes when all users are kicked at once and they reconnect back at the same time. M src/director/doveadm-connection.c M src/director/doveadm-connection.h M src/director/main.c M src/director/user-directory.h 2016-10-25 00:11:50 +0300 Timo Sirainen (3c89b4794) director: If user move times out, log the state it was in at the time. M src/director/director.c 2016-10-24 22:39:56 +0300 Timo Sirainen (ade4a0e1a) director: Log user's kill_state with a human-readable string. M src/director/director-connection.c M src/director/user-directory.c M src/director/user-directory.h 2016-10-24 22:27:30 +0300 Timo Sirainen (3d76809be) doveadm director: Invalid parameters cause doveadm to fail silently. doveadm_cmd_context.cmd doesn't point directly to doveadm_cmd_director. M src/doveadm/doveadm-director.c 2016-10-24 22:22:28 +0300 Timo Sirainen (a9ade1046) director: Fix sending up/down state in handshakes. They were never sent, because HOSTs were sent before director had waited for the remote to send its version number. So sender thought that the remote's minor_version was too old and it didn't send the up/down state at all. This caused errors like: Warning: director(10.0.0.30:9090/left): Host 10.0.0.30 is being updated before previous update had finished (up -> down) - setting to state=down vhosts=100 Error: director(10.0.0.30:9090/left): Director 10.0.0.30 SYNC request hosts don't match us - resending hosts (seq=6, remote hosts_hash=262126213, my hosts_hash=2458934259) M src/director/director-connection.c 2016-10-24 21:58:03 +0300 Timo Sirainen (67cb14c7f) director: If SYNCs are received during handshake, send them later. This fixes delays during handshake: Error: Ring SYNC appears to have got lost, resending M src/director/director-connection.c M src/director/director-host.h 2016-10-24 20:21:36 +0300 Timo Sirainen (892e25e1c) director: Code cleanup - Give tab-unescaped args to all doveadm command handlers. M src/director/doveadm-connection.c 2016-10-24 20:20:09 +0300 Timo Sirainen (60835f193) director: USER-MOVE didn't handle non-hash username correctly. The entire command line was being hashed instead of just the username. M src/director/doveadm-connection.c 2016-10-24 20:16:57 +0300 Timo Sirainen (49ec31729) director: Make sure IP address parsing works in DIRECTOR-ADD/REMOVE We were passing the entire string through to net_addr2ip(). It seems that inet_aton() stops at whitespace though, so this wasn't actually causing errors at least on Linux. M src/director/doveadm-connection.c 2016-10-24 20:08:54 +0300 Timo Sirainen (9ba1a38e2) director: Code cleanup - moved command handling to its own function. M src/director/doveadm-connection.c 2016-10-24 20:07:26 +0300 Timo Sirainen (d3bae1f9d) director: Show in process title how many users are being moved. M src/director/director.c M src/director/director.h M src/director/main.c 2016-10-24 20:00:40 +0300 Timo Sirainen (375123432) director: Code cleanup - Finish user move always in the same function. M src/director/director.c 2016-10-24 19:59:54 +0300 Timo Sirainen (ffedd8974) director: Call state_change_callback on user move timeout. M src/director/director.c M src/director/director.h M src/director/main.c 2016-10-21 12:50:56 +0300 Timo Sirainen (3c3001681) director: Code cleanup - allow commands handlers to stop processing input Now returning 0 exits the input reading without disconnecting client. M src/director/doveadm-connection.c 2016-10-25 13:27:29 +0300 Aki Tuomi (1fce089d5) lib-mail: Add tests for dec/hexdec encoded entities M src/lib-mail/test-mail-html2text.c 2016-10-25 12:48:23 +0300 Aki Tuomi (eb0cfb4f3) lib-mail: Support decimal/hexadecimal encoded entities Add support for &#nnn; and &#xnnn; entities. M src/lib-mail/mail-html2text.c 2016-10-25 10:29:50 +0300 Aki Tuomi (f42024ba9) imap-login: Skip NIL value in ID handler NIL value can cause hard crash, depending what the key is. For x-proxy-ttl, NIL will crash on any system, x-originating-ip will crash on some nss versions (e.g. centos 6.7). Migitating factor here is that the NIL value is only accepted from trusted network. M src/imap-login/imap-login-client.c 2016-10-24 18:52:24 +0300 Timo Sirainen (e7f31dfdc) lib-compression: Added unit tests for reading .gz files M src/lib-compression/test-compression.c 2016-10-24 18:31:53 +0300 Timo Sirainen (697a4fbe2) lib-compression: Added file uncompression support for test-compression This can be useful for debugging. M src/lib-compression/test-compression.c 2016-10-24 18:29:06 +0300 Timo Sirainen (0757cf450) lib-compress: Don't assume too early that gz file continues after a trailer. Some istreams don't have EOF immediately set after the gz trailer. This fixes errors like "missing gz trailer at 1675" M src/lib-compression/istream-zlib.c 2016-10-24 17:15:00 +0300 Timo Sirainen (bc06e3827) istream-zlib: "missing gz trailer" error message was wrong. M src/lib-compression/istream-zlib.c 2016-10-24 15:59:07 +0300 Timo Sirainen (1ea0aa8e1) lib: With FILE_LOCK_SLOW_WARNING_MSECS log a warning also when keeping lock for long. This can help catching which process kept the lock for too long. M src/lib/file-lock.c 2016-10-24 16:01:43 +0300 Timo Sirainen (43f6d195d) configure: Fixed checking if OpenSSL is too old for lib-dcrypt EVP_PKEY_CTX_set_ec_paramgen_curve_nid() is a macro, so it can't be checked with AC_CHECK_LIB(). M m4/ssl.m4 2016-10-24 16:05:00 +0300 Timo Sirainen (d54edc1ad) lib: Fix compiler warnings in test-ioloop Fixes: test-ioloop.c:72: error: ignoring return value of ‘write’, declared with attribute warn_unused_result M src/lib/test-ioloop.c 2016-10-24 13:08:47 +0300 Timo Sirainen (86ab71bf1) lib-http: Add ioloop and lock wait information to timeout messages. It'll now log for example: 9007 Request timed out (Request sent 7.087 secs ago, 0.076 in other ioloops, 7.012 in locks, connected 7.087 secs ago) Which points out that the problem wasn't really with the HTTP, but with locking. This likely should be fixed in some way also in lib-http so that it gives a bit of extra time for reading the request, but that's a separate fix. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2016-10-24 12:17:44 +0300 Timo Sirainen (e55b5cf82) dict-client: Fix logging how much time was spent in other ioloops in slow lookup warnings. The warning's idea is to show why the lookup could have been slow. We differentiate between time spent in dict_wait() waiting only for the dict result and time spent in other ioloops waiting for potentially other things as well (and time spent waiting for locks during this time). The previous code didn't work right when multiple ioloops were used, which happened sometimes. Also changed %u to %d just in case some calculation is wrong. It's nicer to get a slightly negative value rather than a huge positive one. M src/lib-dict/dict-client.c 2016-10-24 12:16:48 +0300 Timo Sirainen (d327ea02d) lib: Added ioloop_global_wait_usecs This is helpful when multiple ioloops aren't used and io_loop_get_wait_usecs() can't be easily used for all of them. M src/lib/ioloop.c M src/lib/ioloop.h 2016-10-24 14:05:58 +0300 Timo Sirainen (f83fd83f9) lib: Add FILE_LOCK_SLOW_WARNING_MSECS environment. Log a warning if any locking takes longer than the specified number of milliseconds. This can be enabled globally with: import_environment = $import_environment FILE_LOCK_SLOW_WARNING_MSECS=1000 M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-lock.h 2016-10-24 13:28:44 +0300 Timo Sirainen (1c783b6d9) lib-index: Fix potential error when reading from uncommitted cache transaction If dovecot.index.cache is compressed during the transaction, the new cache fields mapping doesn't necessarily match what is in the transaction. Fixes: Error: Corrupted index cache file .../dovecot.index.cache: field index too large (27 >= 17) Although there may be other cache corruption errors it also fixes. M src/lib-index/mail-cache-transaction.c 2016-10-24 12:25:48 +0300 Timo Sirainen (96a4e105f) lib-index: Fix potential assert-crash when reading cache Fixes: Panic: file mail-cache-lookup.c: line 258 (mail_cache_lookup_iter_next): assertion failed: (ctx->offset != 0) Broken by d33fc6c584718efd46159e1d8f46488b9dfc66f5 M src/lib-index/mail-cache-lookup.c 2016-10-24 12:23:49 +0300 Timo Sirainen (e1c08b1d9) master: If chrooted service's core wasn't dumped, suggest to unset the chroot. M src/master/service-process.c 2016-10-24 11:34:05 +0300 Aki Tuomi (cca98b5ac) lib: Add test for ioloop fd polling M src/lib/test-ioloop.c 2016-10-24 10:13:42 +0300 Aki Tuomi (d0d5df1cf) lib: Fix kqueue io_loop_get_wait_time usage The code needs to take into consideration, when there is no IO to be waited, but possibly there is io_set_pending used, or just timeouts. M src/lib/ioloop-kqueue.c 2016-10-24 10:08:42 +0300 Aki Tuomi (3e41b3d0c) lib: Ensure tv_r gets set in io_loop_get_wait_time If this does not get reset here to 0 it can cause errors or unpredictable behaviour in select/kqueue polling, such as very long delays. M src/lib/ioloop.c 2016-10-22 22:45:48 +0300 Timo Sirainen (9faac59f6) director: Fix crash handling director_flush_socket when user is freed. M src/director/director.c 2016-10-13 16:11:48 +0300 Aki Tuomi (cf7857bce) director: Support flush socket This allows specifying an URI to execute on user kill. It can be of form exec:/path/to/bin, unix:/path/to/socket or tcp:ip:port The location is sent FLUSH username-hash per killed user. You can execute some action there, and you are expected to return '+\nOK\n' as reply once you are done. M src/director/Makefile.am M src/director/director-settings.c M src/director/director-settings.h M src/director/director.c 2016-10-22 13:00:08 +0300 Timo Sirainen (120d33c71) configure: Improved checking if OpenSSL is too old for lib-dcrypt Some OpenSSL versions had EC_KEY_new, but not other needed functions. M m4/ssl.m4 2016-10-21 14:58:57 +0300 Timo Sirainen (92c8109f7) program-client-unix: Don't retry connecting to UNIX socket. Especially with async connections this will just block the whole process when there are errors. M src/lib-program-client/program-client-remote.c 2016-10-21 14:34:47 +0300 Timo Sirainen (958e5ae51) director: Fix shutdown_clients=no to not break The director process must shut down even with with shutdown_clients=no. Otherwise the two director processes will try to keep competing with each others and log errors like: director: Warning: Director 10.0.0.123:9090/right disconnected us with reason: Replacing with new incoming connection director: Warning: Director 10.0.0.123:9090/right disconnected us with reason: Replacing with 10.0.0.124:9090 M src/director/main.c 2016-10-21 13:55:42 +0300 Aki Tuomi (d83aa9427) doveadm: Rewind input early enough Command input needs to be rewinded earlier in doveadm_mail_next_user. M src/doveadm/doveadm-mail.c 2016-10-21 11:05:23 +0300 Timo Sirainen (4a1972123) lib-program-client: Change program_client_create() API to return error string. M src/lib-program-client/program-client.c M src/lib-program-client/program-client.h 2016-10-21 00:25:20 +0300 Timo Sirainen (28f799561) imap-hibernate: Fix "DONE" handling. 1. If only "DONE\r\n" was sent, it randomly failed with BAD because of out-of-bounds buffer read. 2. If "DONE\r\n" was followed by a command tag but no space afterwards, we kept waiting for the input to continue. But since the DONE was already sent, we should break the IDLE already at that point without any further waiting. M src/imap-hibernate/imap-client.c 2016-10-20 18:09:09 +0300 Timo Sirainen (e8a936d1e) lib: Added unit tests for string tabescaping. M src/lib/test-strescape.c 2016-10-20 17:45:44 +0300 Timo Sirainen (7a60e1dc9) global: Replaced t_strsplit_tab() calls with t_strsplit_tabescaped() This is useful especially in auth code to support LFs in extra fields. Other pieces of code were also tab-escaping strings, but never unescaping them. Usually it didn't matter, because nobody would use the escaped characters. Still, the code wasn't exactly behaving correctly. One downside to this change is that it's now possible to pass through TABs, CRs and LFs through the various protocols. In theory this shouldn't cause any problems, but combined with other bugs this could trigger some security problems. M src/anvil/anvil-connection.c M src/auth/auth-fields.c M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/passdb-blocking.c M src/auth/passdb-cache.c M src/config/config-connection.c M src/director/director-connection.c M src/director/director-test.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-replicator.c M src/doveadm/doveadm-who.c M src/doveadm/dsync/dsync-ibc-stream.c M src/indexer/indexer-client.c M src/ipc/ipc-connection.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-master/master-login-auth.c M src/lib-master/master-service-settings.c M src/login-common/login-proxy.c M src/plugins/push-notification/push-notification-driver-ox.c 2016-10-20 17:21:59 +0300 Timo Sirainen (ef0c36aa8) global: Code cleanup - Use t_strsplit_tabescaped() to avoid str_tabunescape() M src/doveadm/client-connection.c M src/doveadm/doveadm-stats.c M src/indexer/indexer-client.c M src/lib-auth/auth-master.c M src/lib-master/master-login.c M src/stats/client.c M src/util/script-login.c 2016-10-20 12:39:27 +0300 Timo Sirainen (acfda38b7) global: Try to initialize var_expand_tab[] directly. This avoids accidents with the array numbering being wrong. M src/imap-hibernate/imap-client.c M src/imap/imap-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-mail/mail-user-hash.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/login-common/client-common.c M src/login-common/login-settings.c M src/plugins/acl/acl-shared-storage.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c 2016-10-20 12:08:15 +0300 Timo Sirainen (4b1781e4c) global: Use i_strchr_to_next() wherever useful. M src/auth/auth-request-var-expand.c M src/auth/auth-worker-client.c M src/auth/db-ldap.c M src/auth/userdb-passwd-file.c M src/imap-hibernate/imap-client.c M src/lib-dict/dict-client.c M src/lib-imap-client/imapc-connection.c M src/lib-mail/mail-user-hash.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib-storage/mailbox-list.c M src/login-common/client-common.c M src/stats/mail-user.c 2016-10-20 12:08:09 +0300 Timo Sirainen (f915d2f0b) lib: Added i_strchr_to_next() M src/lib/strfuncs.h 2016-10-20 12:24:44 +0300 Timo Sirainen (e40aeca4a) pop3: Fix pop3_logout_format=%{deleted_size} expansion when there are no deletions Should be "0", not empty string. M src/pop3/pop3-client.c 2016-10-20 12:06:25 +0300 Timo Sirainen (761585b5c) %{auth_domain} shouldn't include the leading '@' M src/imap-hibernate/imap-client.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c 2016-10-20 18:31:27 +0300 Timo Sirainen (5e8e8fb01) lib-ldap: Fixed compiling with OpenBSD M src/lib-ldap/ldap-search.c 2016-10-20 16:30:49 +0300 Aki Tuomi (0b808b62a) auth: Escape local_name M src/auth/auth-request.c M src/lib-auth/auth-client-request.c 2016-10-20 16:06:27 +0300 Aki Tuomi (290b91ad6) login-common: Include local_name in login_var_expand_table This way it can be used in login_log_format M src/login-common/client-common.c 2016-10-20 15:54:40 +0200 Stephan Bosch (1210c14c3) lib-storage: Fixed a boolean expression. Problem found with clang -Wstrict-bool. M src/lib-storage/mail-storage.c 2016-10-20 15:46:01 +0200 Stephan Bosch (59cd09822) lib-program-client: Fixed boolean expressions. Problems found with clang -Wstrict-bool. M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client-remote.c 2016-10-20 15:41:54 +0200 Stephan Bosch (6aecc29b8) lib-program-client: Gave variables pointing to a program-client more logical names. Was still based on when it was called the script-client. M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client-remote.c 2016-10-20 16:30:58 +0300 Timo Sirainen (395168997) auth: Fixed assert-crash on invalid auth-client input For example if client sends invalid input like: auth: Error: BUG: Authentication client sent unknown command: XYZ Fixes crash: auth: Panic: key not found from hash M src/auth/auth-request-handler.c 2016-10-20 14:23:20 +0300 Timo Sirainen (80838a8bb) dovecot-config: Added dovecot_statedir M Makefile.am M dovecot-config.in.in M m4/dovecot.m4 2016-10-20 13:30:36 +0300 Timo Sirainen (d78f1ac9d) Added "doveadm process status" This allows asking for processes' current status in master process. M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-master.c M src/master/master-client.c 2016-10-20 13:12:34 +0300 Timo Sirainen (eba7f36fe) Added "doveadm service status" This allows asking for services' current status in master process. M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-master.c M src/master/master-client.c 2016-10-20 13:22:47 +0300 Timo Sirainen (27bb26725) doveadm-master: Code cleanup - simplify sending command args to master. This also escapes the parameters to make sure nothing bad can be sent. M src/doveadm/doveadm-master.c 2016-10-20 13:11:19 +0300 Timo Sirainen (de41dbb48) doveadm service stop: Convert to doveadm v2 API M src/doveadm/doveadm-master.c 2016-10-20 13:10:56 +0300 Timo Sirainen (7237f2f0a) doveadm service stop: Code cleanup - Prepare for other service commands. M src/doveadm/doveadm-master.c 2016-10-20 13:09:09 +0300 Timo Sirainen (c7713320c) doveadm service stop: Moved command handling to doveadm-master.c It's talking to master process, and there will be other non-service commands that talk to the master process in the same way. M src/doveadm/Makefile.am M src/doveadm/doveadm-master.c D src/doveadm/doveadm-service.c 2016-10-11 12:43:20 +0300 Timo Sirainen (f7bc2f708) doveadm user: If lookup fails, don't write it to the same line as header. M src/doveadm/doveadm-auth.c 2016-10-19 21:49:30 +0300 Timo Sirainen (5e327e031) doveadm-server: Show incoming connection's IP and running command is process title. M src/doveadm/client-connection-http.c M src/doveadm/client-connection-private.h M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/doveadm.h M src/doveadm/main.c 2016-10-18 00:37:32 +0300 Aki Tuomi (fe791e96f) auth: Pass local_name to auth-request This allows using local_name in various places, such as passdb/userdb queries. M src/auth/auth-request-var-expand.c M src/auth/auth-request-var-expand.h M src/auth/auth-request.c M src/auth/auth-request.h M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h M src/login-common/client-common.h M src/login-common/login-settings.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-openssl.c 2016-10-20 10:11:53 +0300 Timo Sirainen (c67082dca) login proxy: Hanging outgoing SSL connections caused using already-freed memory This mainly happened when login proxy closed the connection due to connect timeout. The ssl-proxy still had a reference and existed for a longer time. If SSL handshake still succeeded afterwards, it now called login_proxy_ssl_handshaked(), which accessed the already-freed proxy and likely crashed. Fixed the ssl-client proxy code specifically. Alternatively ssl_proxy_free() could be calling ssl_proxy_destroy() always, but since ssl-server side of the code seems to have been working fine, I don't want to accidentally break it. M src/login-common/login-proxy.c 2016-10-20 10:59:23 +0300 Timo Sirainen (b60f51bfc) lib-program-client: Linking fix. M src/lib-program-client/Makefile.am 2016-10-19 23:07:58 +0200 Stephan Bosch (3781fc206) Fixed copyright notice. M src/lib/test-uri.c 2016-10-19 21:03:39 +0300 Aki Tuomi (e6ba63471) lib-program-client: Deduplicate flush statement It can be done below by splitting the else if into separate if statement. M src/lib-program-client/program-client.c 2016-10-19 21:03:24 +0300 Aki Tuomi (76516caaa) lib-program-client: Correctly handle error code M src/lib-program-client/program-client-remote.c 2016-10-19 20:40:22 +0300 Aki Tuomi (42efa99e8) lib: Copy target_uid from restrict_access_settings One cannot assign to set->uid, causing compile error. M src/lib/restrict-access.c 2016-10-19 19:02:22 +0300 Aki Tuomi (2558976f0) lib-program-client: Try drop setuid root by default But not if root privileges are asked for. M src/lib-program-client/program-client-local.c 2016-10-19 18:44:35 +0300 Aki Tuomi (ea42ee9eb) lib: Add drop_setuid_root for restrict_access drop_setuid_root, when set to true, will detect and try to drop getuid()==0. This is done by recovering current effective UID to set->uid if set->uid == -1, and then doing seteuid(0). It will also drop out any other extra privileges, such as extra groups not requested for. M src/lib/restrict-access.c M src/lib/restrict-access.h 2016-10-12 14:57:51 -0400 Josef 'Jeff' Sipek (ac2defed5) lib-storage: clean up mailbox_list_create to improve readability There is no reason to use mailbox_list_driver_find() here instead of mailbox_list_find_class() as (1) we do not need the index into the list driver array, and (2) dealing with double-pointers is harder than regular pointers. M src/lib-storage/mailbox-list.c 2016-10-19 19:41:51 +0300 Timo Sirainen (f948338e8) push-notification: Error handling fix and cleanups. M src/plugins/push-notification/push-notification-driver-ox.c 2016-10-19 18:25:15 +0300 Timo Sirainen (bad0f9dae) dovecot-ldap.conf.ext: Updated sasl_bind comment. M doc/example-config/dovecot-ldap.conf.ext 2016-10-19 16:31:01 +0300 Aki Tuomi (9b7b07d70) lib-program-client: Fix memory access problem M src/lib-program-client/program-client.c 2016-10-19 16:06:22 +0300 Aki Tuomi (bdaa7eb95) lib-program-client: Fix local tests M src/lib-program-client/Makefile.am M src/lib-program-client/test-program-client-local.c 2016-10-17 09:50:30 +0300 Aki Tuomi (1be27c35e) lib-program-client: Whitespace fixes M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.c M src/lib-program-client/program-client.h 2016-10-17 14:19:40 +0300 Aki Tuomi (867b2e27d) lib-program-client: Disable valgrind For local test, we can't use valgrind, it's too unreliable (breaks execution sometimes). M src/lib-program-client/Makefile.am 2016-10-17 14:13:28 +0300 Aki Tuomi (a371ea8bd) lib-program-client: Add support for iostream-dot This is also made mandatory for TCP client. M src/lib-program-client/Makefile.am M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.c M src/lib-program-client/program-client.h M src/lib-program-client/test-program-client-net.c 2016-10-17 11:48:16 +0300 Aki Tuomi (541446ac8) lib-program-client: Make sure we delay output in test This is to ensure that the client does not prematurely disconnect before output is sent. M src/lib-program-client/test-program-client-unix.c 2016-10-17 09:46:22 +0300 Aki Tuomi (1c0dd964c) lib-program-client: Move version string to define M src/lib-program-client/program-client-remote.c 2016-10-13 15:32:49 +0300 Aki Tuomi (80521bcdd) lib-program-client: Add URI based constructor M src/lib-program-client/program-client.c M src/lib-program-client/program-client.h 2016-10-17 09:44:33 +0300 Aki Tuomi (3f67fea2e) lib-program-client: Add tests for TCP client M src/lib-program-client/Makefile.am A src/lib-program-client/test-program-client-net.c 2016-10-17 09:44:14 +0300 Aki Tuomi (366f66949) lib-program-client: Add TCP client support M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.h 2016-10-17 09:35:14 +0300 Aki Tuomi (204afc1f4) lib-program-client: Add switch_ioloop vfunc This lets program-client backends do their own special io loop switching. M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.c 2016-10-15 13:59:45 +0300 Aki Tuomi (17541ea25) lib-program-client: Use milliseconds in idle timeout M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client.c M src/lib-program-client/program-client.h M src/lib-program-client/test-program-client-local.c M src/lib-program-client/test-program-client-unix.c 2016-10-17 09:09:23 +0300 Aki Tuomi (4fbe0d109) lib-program-client: Use child-wait This makes the client waiting asynchronous. M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client.c 2016-10-17 09:11:38 +0300 Aki Tuomi (097dbdf54) lib-program-client: Disconnect asynchronously M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.c 2016-10-12 13:14:03 +0300 Aki Tuomi (1acc8d653) lib-program-client: Use restrict-access This makes the program-client execution behave more consistent to the rest of the core code. M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client.h M src/lib-program-client/test-program-client-local.c M src/lib-program-client/test-program-client-unix.c 2016-10-13 10:11:52 +0300 Aki Tuomi (7725d60ae) lib: Add reference counting to child_wait_pid M src/lib/child-wait.c 2016-10-17 12:34:36 +0300 Timo Sirainen (08d8de8e2) lib-storage: Make sure mailbox_uidvalidity_next() doesn't return 0. 0 isn't a valid IMAP UIDVALIDITY, and Dovecot treats 0 as "not assigned". M src/lib-storage/mailbox-uidvalidity.c 2016-10-17 21:03:51 +0300 Martti Rannanjärvi (b594d84b9) lib-dcrypt: add a test for password change Test that you can encrypt a key with password, encrypt a key with the password protected key, change the password, and still load a key that you encrypted with the key encrypted using the first password. M src/lib-dcrypt/test-crypto.c 2016-10-18 14:57:31 +0300 Martti Rannanjärvi (e0aab219a) doveadm: trim doveadm dump dcrypt-key input dcrypt does not like extra newlines at the end of a key. M src/doveadm/doveadm-dump-dcrypt-key.c 2016-10-18 10:45:05 +0300 Timo Sirainen (8add90010) lib-fs: Fixed fs_metadata_find() to actually work M src/lib-fs/fs-api.c 2016-10-12 14:32:51 -0400 Josef 'Jeff' Sipek (1c62887aa) imapc: don't mix positional and designated initialization M src/lib-storage/index/imapc/imapc-list.c 2016-10-17 09:18:27 -0400 Josef 'Jeff' Sipek (1f4d45911) imapc: use serialized settings as unique_root_dir Without this, it is not possible to instantiate multiple imapc storages. Any attempts to will result in multiple namespaces sharing the same storage, regardless of if that was the intention. M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2016-10-17 09:13:21 -0400 Josef 'Jeff' Sipek (7900eb30b) lib-storage: treat empty root_dir as an empty string M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2016-10-17 09:34:04 +0200 Steffen Templin (3722c793b) push-notification: Resolve indentation problem M src/plugins/push-notification/push-notification-driver-ox.c 2016-10-06 07:35:17 +0000 Steffen Templin (282323a52) push-notification: Re-open mailbox and sync it to get unseen count. M src/plugins/push-notification/push-notification-driver-ox.c 2016-10-05 13:28:49 +0300 Steffen Templin (5e5591459) push-notification: Add unseen count to OX driver. M src/plugins/push-notification/push-notification-driver-ox.c 2016-10-10 20:38:31 +0300 Timo Sirainen (13961419c) global: Handle broken Content-Type headers consistently. 1) Only the first Content-Type header is used. (Simpler than using the last.) 2) Invalid Content-Types are parsed as far as we can. This is mainly to make sure they aren't treated as missing Content-Types, which could cause them to become text/plain. M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/message-decoder.c M src/lib-mail/message-parser.c M src/lib-mail/message-search.c M src/plugins/fts/fts-build-mail.c 2016-10-10 20:24:41 +0300 Timo Sirainen (7f7f77125) lib-imap: imap_bodystructure_parse() ignores text/plain flag mismatch for now. Maybe we can enable it some day far into the future, but for now this just causes unnecessary cache file rebuilds. M src/lib-imap/imap-bodystructure.c 2016-10-10 20:23:47 +0300 Timo Sirainen (85c1b6c22) lib-imap: Don't write a broken Content-Type as text/plain to BODYSTRUCTURE Mainly because it doesn't match with MESSAGE_PART_FLAG_TEXT in message_part. M src/lib-imap/imap-bodystructure.c 2016-10-15 23:04:35 +0300 Aki Tuomi (c19c44f87) config: Compare local_name case insensitive DNS and certificate names should be compared case insensitive. M src/config/config-filter.c 2016-10-17 23:25:27 +0300 Aki Tuomi (46b0db4a0) lib: Add null_strcasecmp M src/lib/strfuncs.c M src/lib/strfuncs.h 2016-10-17 19:38:07 +0300 Aki Tuomi (1db4d7625) auth-policy: Use request's pool instead of new pool This fixes existing memory leak in auth_report, which is caused by using separate memory pool instead of request's pool. Thank you for Andrea Carpani for extensive debugging. M src/auth/auth-policy.c 2016-10-16 22:58:07 +0300 Timo Sirainen (4de624802) dict-sql: Use LIMIT in SQL queries with dict_iterate_set_limit() M src/lib-dict/dict-sql.c 2016-10-16 22:55:26 +0300 Timo Sirainen (c27757ca7) dict-sql: Error handling fix & code cleanup Only the first sql_dict_iterate_next_query() error was handled correctly. M src/lib-dict/dict-sql.c 2016-10-16 22:40:18 +0300 Timo Sirainen (6acd1a48e) lib-dict: Added dict_iterate_set_limit() M src/lib-dict/dict-private.h M src/lib-dict/dict.c M src/lib-dict/dict.h 2016-10-17 19:21:34 +0300 Aki Tuomi (4f051c308) lib-dict: Duplicate result value in mempool Duplicate the result value already in callback to avoid it getting lost during async calls. Reported & tested by Pierre Jaury. M src/lib-dict/dict-client.c 2016-10-17 23:06:48 +0300 Timo Sirainen (9b5fa7fdd) lib-mail: Fixed infinite loop in istream-attachment-extractor Broken by 7f74811b7. Pretty much any larger attachment going through this istream had a good potential of going into an infinite loop. M src/lib-mail/istream-attachment-extractor.c 2016-10-17 10:59:34 +0300 Timo Sirainen (ece461287) lib-fs: Added FS_METADATA_WRITE_FNAME to allow renaming a file being written. M src/lib-fs/fs-api.h M src/lib-fs/fs-dict.c M src/lib-fs/fs-posix.c 2016-10-11 01:04:39 +0300 Timo Sirainen (5b302b077) lib-fs: Added internal fs_metadata_find() helper function M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2016-10-11 00:46:59 +0300 Timo Sirainen (4c649f033) lib-fs: Optimize changing FS_METADATA_INTERNAL_PREFIX metadata. file->metadata_changed doesn't need to change in that situation. It's used by fs-metawrap to find out if it needs to rewrite metadata during a write, but internal metadata isn't written to its header. M src/lib-fs/fs-api.c 2016-10-17 12:41:33 +0300 Timo Sirainen (5b45af6a8) sdbox: Removed duplicated code. M src/lib-storage/index/dbox-single/sdbox-storage.c 2016-10-17 10:36:17 +0300 Martti Rannanjärvi (e13d38a11) lib-dcrypt: change unit test ec curve to secp521r1 This curve is more common, so unit tests will pass on more machines. M src/lib-dcrypt/test-crypto.c 2016-10-17 09:13:39 +0300 Timo Sirainen (46e5bbded) lib-fs: Lazily initialize timings to save memory. M src/lib-fs/fs-api.c 2016-10-14 17:13:23 +0300 Aki Tuomi (db5fdf605) lib-storage: Use MAILDIR_INFO_SEP_S Replace hardcoded : with MAILDIR_INFO_SEP_S M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-uidlist.c 2016-10-14 15:28:32 +0300 Aki Tuomi (58ba06268) lib-dcrypt: Fix uninitialized memory M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/test-crypto.c 2016-10-14 13:48:41 +0300 Martti Rannanjärvi (9a025a746) lib-dcrypt: str_new to t_str_new in some test-crypto tests str_new from default_pool was not properly freed. M src/lib-dcrypt/test-crypto.c 2016-10-13 23:38:36 +0300 Martti Rannanjärvi (c42c9ff35) lib-dcrypt: enc_key and pw must be NULL on storing unencrypted private key Add tests for password and key encryption, and get_info on them. Also give examples of valid cipher values for password and key encryption in dcrypt.h comment. M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt.h M src/lib-dcrypt/test-crypto.c 2016-10-12 21:29:51 +0300 Martti Rannanjärvi (5d744144f) lib-dcrypt: fix comment of dovecot format v2 to use colon Version 2 field separator was changed to colon. M src/lib-dcrypt/dcrypt.h 2016-10-12 09:54:04 +0300 Aki Tuomi (335ac4abc) INSTALL: Use markdown style D INSTALL A INSTALL.md M Makefile.am 2016-10-12 09:08:51 +0300 Aki Tuomi (73650a887) README: Use markdown style D README A README.md 2016-10-12 09:38:05 +0300 Aki Tuomi (16d9e9dd8) git: Ignore README and INSTALL M .gitignore 2016-10-12 09:36:46 +0300 Aki Tuomi (48e4a5c73) configure: Detect pandoc for building documentation M Makefile.am M configure.ac 2016-10-12 10:30:16 +0300 Aki Tuomi (8177c1444) lib-program-client: Do not use /tmp in testing M src/lib-program-client/test-program-client-unix.c 2016-10-12 12:04:10 +0300 Aki Tuomi (3bfdab778) auth: Pass userdb fields to worker If this is not done, then those userdb handlers that need access to userdb variables for e.g. interpolation, cannot access them. M src/auth/auth-request.c M src/auth/auth-worker-client.c 2016-10-11 13:18:53 +0300 Timo Sirainen (63b557b1c) auth: Don't re-insert userdb results from auth cache data back to cache. This was also breaking TTLs for the cached userdb results, because each re-insert reset the TTL. M src/auth/auth-request.c M src/auth/auth-request.h 2016-10-10 21:22:15 +0300 Timo Sirainen (56774de9c) lib-program-client: Fixed potential panic in test-program-client-local If the run finished before io_loop_run(), it would panic with: Panic: BUG: No IOs or timeouts set. Not waiting for infinity. M src/lib-program-client/test-program-client-local.c 2016-10-10 21:19:34 +0300 Timo Sirainen (004be038d) lib-program-client: Fixed program_client_run() that succeeds rapidly. program_client_run_async() could have called the callback with result=0 before io_loop_run(). This happened with local client. Fixes in test-program-client-local: Panic: BUG: No IOs or timeouts set. Not waiting for infinity. M src/lib-program-client/program-client.c 2016-10-10 23:53:55 +0300 Timo Sirainen (96e1ed172) fs-metawrap: Don't assert-crash when trying to write an empty file. Fixes: Panic: file fs-metawrap.c: line 401 (fs_metawrap_write_stream_finish): assertion failed: (file->super_output->offset > 0 || file->super_output->stream_errno != 0) M src/lib-fs/fs-metawrap.c M src/lib-fs/test-fs-metawrap.c 2016-10-11 00:31:17 +0300 Timo Sirainen (d1a82a255) lib-fs: Renamed internal i_stream_mail_read() to i_stream_fs_stats_read() Just to make backtraces look clearer. Originally forgot to change this after copy&pasting code from istream-mail.c M src/lib-fs/istream-fs-stats.c 2016-10-10 20:58:53 +0300 Timo Sirainen (a694d17a2) lib-program-client: Fixed running test-program-client-local as root. uid/gid == -1 isn't treated as "don't change" in here. M src/lib-program-client/test-program-client-local.c 2016-10-10 20:35:17 +0300 Timo Sirainen (144e0b545) auth: Compiler warning fix M src/auth/db-ldap.c 2016-09-21 10:55:47 +0300 Matwey V. Kornilov (adb497977) auth: Fix default SASL bind for LDAP User may configure Dovecot to use SASL bind as default bind method. This can be the case when ldapi:/// (or ldaps:///) with SASL EXTERNAL is used. Currently, Dovecot returns LDAP connection to wrong bind state after first successful auth bind, LDAP simple bind always used to rebind. This may broke setup when ACL in LDAP configured not to allow search/bind for such simple bind. M src/auth/db-ldap.c 2016-09-21 10:50:02 +0300 Matwey V. Kornilov (372b7c40b) auth: Introduce db_ldap_bind_sasl() function Do refactoring in db_ldap_connect() before fixing the SASL bind issue in the next commit. M src/auth/db-ldap.c 2016-10-06 15:22:13 +0300 Timo Sirainen (bfef68915) doveadm director kick: Added -f parameter. This works for all the user_* passdb fields. M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/doveadm/doveadm-director.c 2016-10-06 15:19:51 +0300 Timo Sirainen (26f4264ec) doveadm director kick: Escape username properly. This only mattered if the username contained \001, TAB or LF characters, which isn't normal. M src/doveadm/doveadm-director.c 2016-10-06 15:13:30 +0300 Timo Sirainen (4a4fdb147) director: Escape username when handling USER-KICK. This could have caused problems if username parameter contained TABs or LFs, which of course shouldn't normally happen. M src/director/director.c 2016-10-06 14:54:51 +0300 Timo Sirainen (9fc996569) doveadm proxy kick: Support multiple user parameters. M src/doveadm/doveadm-proxy.c 2016-10-06 14:53:11 +0300 Timo Sirainen (75af6e5ca) doveadm proxy kick: Added -f parameter. This works for all the user_* passdb fields. M src/doveadm/doveadm-proxy.c M src/login-common/login-proxy.c 2016-10-06 14:38:04 +0300 Timo Sirainen (adad68df4) doveadm proxy list: Show all user_* fields in output. M src/doveadm/doveadm-proxy.c M src/login-common/login-proxy.c 2016-10-05 23:22:56 +0300 Timo Sirainen (ce1a6c9b8) *-login: Store user_* passdb fields to client->alt_usernames. M src/login-common/client-common-auth.c M src/login-common/client-common.h M src/login-common/login-common.h M src/login-common/main.c 2016-10-10 17:37:27 +0300 Timo Sirainen (0c5ed44cf) last-login: Don't execute last_login on IMAP unhibernation. M src/plugins/last-login/last-login-plugin.c 2016-10-10 17:19:32 +0300 Timo Sirainen (556390522) quota: Don't execute quota_over_script if userdb lookup was over 10 secs ago M src/plugins/quota/quota.c 2016-10-10 17:19:16 +0300 Timo Sirainen (1e2b3bd82) imap-hibernate: Preserve mail_user.session_create_time through hibernation M src/imap-hibernate/imap-client.c M src/imap-hibernate/imap-client.h M src/imap-hibernate/imap-hibernate-client.c M src/imap/imap-client-hibernate.c M src/imap/imap-master-client.c 2016-10-10 17:19:06 +0300 Timo Sirainen (a020eb653) lib-storage: Added mail_user.session_create_time and .session_restored M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2016-10-06 14:54:24 +0300 Aki Tuomi (f24edebe3) imap-hibernate: Properly fix hibernation The previous fix did not properly fix hibernation as the clients still dropped out of hibernate. Also the tag used was no longer following. This change will track tag changes and keeps the hibernation process going on until the user enters something else than DONE\r\ntag IDLE\r\n in same packet. M src/imap-hibernate/imap-client.c M src/imap-hibernate/imap-client.h M src/imap-hibernate/imap-hibernate-client.c M src/imap/imap-client-hibernate.c M src/imap/imap-master-client.c M src/imap/imap-state.c M src/imap/imap-state.h 2016-10-10 14:42:24 +0300 Timo Sirainen (4755f8d37) lib-program-client: Compiler warning fixes M src/lib-program-client/test-program-client-unix.c 2016-10-10 13:40:41 +0300 Timo Sirainen (e564ff058) cassandra: Added latency_aware_routing connect-parameter. There's currently no way to change the default settings for it. M src/lib-sql/driver-cassandra.c 2016-10-10 13:59:57 +0300 Timo Sirainen (bc37bab86) lmtp: Handle lmtp_user_concurrency_limit before lmtp_rcpt_check_quota The quota lookup is more expensive, so it shouldn't be done unnecessarily. M src/lmtp/commands.c 2016-10-07 19:49:24 +0300 Aki Tuomi (0a017e924) lib-program-client: Add test suite for program client M src/lib-program-client/Makefile.am A src/lib-program-client/test-program-client-local.c A src/lib-program-client/test-program-client-unix.c 2016-10-09 20:19:22 +0300 Aki Tuomi (9f29dfcbf) lib-program-client: Rename remote to unix This is to make more clear that the call requires unix path and does not support TCP. There will be TCP based API too later. M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.h 2016-10-07 19:48:59 +0300 Aki Tuomi (98bc2ecdb) lib-program-client: Expose asynchronous API M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client-remote.c M src/lib-program-client/program-client.c M src/lib-program-client/program-client.h 2016-10-06 11:57:27 +0300 Aki Tuomi (03c6532fe) lib-program-client: Whitespace fix M src/lib-program-client/program-client-local.c M src/lib-program-client/program-client-private.h M src/lib-program-client/program-client.c 2016-10-10 10:37:24 +0300 Aki Tuomi (151fc06a4) doveadm-sync: Document end-date flag M doc/man/doveadm-sync.1.in 2016-10-10 10:36:52 +0300 Aki Tuomi (ee8294dbc) doveadm-sync: Add end-date support M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2016-10-10 10:13:12 +0300 Aki Tuomi (a11612ec2) doveadm-sync: Document start date M doc/man/doveadm-sync.1.in M src/doveadm/doveadm-dsync.c 2016-10-09 23:34:18 +0300 Timo Sirainen (e6ddcc51a) lib-compression: Fixed compler warnings and wrongly triggering asserts. Broken by 7f74811b7. M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c 2016-10-06 13:50:59 +0300 Timo Sirainen (7f74811b7) global: Make sure i_stream_read() calls handle 0 and -2 return values correctly. M src/doveadm/client-connection-http.c M src/doveadm/doveadm-mail-save.c M src/doveadm/doveadm-mail.c M src/doveadm/dsync/dsync-mail.c M src/imap/cmd-append.c M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-dict-extra/dict-fs.c M src/lib-http/http-client-connection.c M src/lib-mail/istream-attachment-extractor.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/mail-copy.c M src/lib/istream-seekable.c 2016-10-06 13:39:21 +0300 Timo Sirainen (0f27d0c93) log: Minor error logging and comment improvement. M src/log/log-connection.c 2016-10-06 13:09:46 +0300 Timo Sirainen (c23ebb9b0) imapc: Added imapc_max_line_length to limit maximum memory usage. The default is still unlimited, but this should be set to something smaller for untrusted servers. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2016-10-06 12:10:28 +0300 Timo Sirainen (7f51e8608) lib-index: Added test-mail-index-modseq unit test M src/lib-index/Makefile.am A src/lib-index/test-mail-index-modseq.c 2016-10-05 23:59:56 +0300 Timo Sirainen (b10623691) lib-test: Fixed assert-crash in test_exit() with --enable-static-checker Fixes: Panic: Missing t_pop() call M src/lib-test/test-common.c M src/lib/data-stack.c M src/lib/data-stack.h 2016-10-05 14:22:03 +0300 Timo Sirainen (ceace0558) lib: Simplify static checker's job for i_free() macro. M src/lib/imem.h M src/lib/mempool-system.c M src/lib/mempool.h 2016-10-05 14:18:07 +0300 Timo Sirainen (cf4bdceaf) lib: [ip]_free(mem) is now also guaranteed to set mem=NULL It was already doing it, but updated the macros and comments to make it clear that this won't change in future. Changing this would only make it more likely that bugs occur and the performance improvements would be close to nonexistent. M src/lib/imem.h M src/lib/mempool.h 2016-10-05 16:34:16 +0300 Timo Sirainen (b25ad25ca) lib-storage: Fixed assert-crash in mailbox_save_cancel() Broken by 05150df8f. Fixes: Panic: file mail-storage.c: line 2137 (mailbox_save_context_reset): assertion failed: (ctx->saving) M src/lib-storage/mail-storage.c 2016-09-12 13:02:23 +0300 Aki Tuomi (4036c1ca9) lib-program-client: Add program-client from pigeonhole M configure.ac M dovecot-config.in.in M src/Makefile.am A src/lib-program-client/Makefile.am A src/lib-program-client/program-client-local.c A src/lib-program-client/program-client-private.h A src/lib-program-client/program-client-remote.c A src/lib-program-client/program-client.c A src/lib-program-client/program-client.h 2016-09-27 16:15:42 +0300 Timo Sirainen (830382ed5) lib: If connect() fails with EADDRNOTAVAIL, retry it 4 more times. This is needed on busy systems. Nicely explained in: https://idea.popcount.org/2014-04-03-bind-before-connect/ M src/lib/net.c 2016-10-05 15:03:05 +0300 Phil Carmody (27fdbf79a) plugins/fts - make storage errors more informative There are 3 different ways to fail ending a transaction (one of which is itself just a record that something now unknown previously failed). Identify which one in the logs. Signed-off-by: Phil Carmody M src/plugins/fts/fts-storage.c 2016-10-04 17:31:26 +0300 Timo Sirainen (fbfdd1a75) lib-storage: autoexpunge mailboxes with wildcards didn't work with namespace prefix. M src/lib-storage/mail-autoexpunge.c 2016-09-27 19:48:14 +0300 Timo Sirainen (96d1b0c81) lib-index: If view syncing sees index is reset, always mark the view as inconsistent. Not only when the mailbox has messages, because that could still mess up assumptions about UIDs. A somewhat better check could have been to do this only when next_uid>1 (= there have been messages at some point in this mailbox), but it's safer to just always mark the view as inconsistent. M src/lib-index/mail-index-view-sync.c 2016-09-27 19:45:57 +0300 Timo Sirainen (83cd96ee8) lib-index: When finding a view is reset, don't attempt any further syncing. This could cause various errors to be logged, such as: Error: Append with UID 7103, but next_uid = 7242 M src/lib-index/mail-index-view-sync.c 2016-09-27 19:41:25 +0300 Timo Sirainen (407d64647) lib-index: Fixed potential assert-crash when view syncing sees a reset marker. It should never try to use main index map at that point, because view_sync_have_expunges() looks changes only before the reset marker. Fixes: Error: Index .../dovecot.index lost messages without expunging (36 -> 27) M src/lib-index/mail-index-view-sync.c 2016-09-27 19:39:59 +0300 Timo Sirainen (2d33fd7fc) lib-storage: Make sure mailbox_sync*() fails if view is inconsistent afterwards. M src/lib-storage/index/index-sync.c 2016-09-27 19:38:26 +0300 Timo Sirainen (505561860) imap: If mailbox is inconsistent after syncing, don't try to sync message counts. This fixes (e.g. after doveadm force-resync): Panic: Message count decreased M src/imap/imap-sync.c 2016-09-26 21:04:44 +0200 Stephan Bosch (458d877d8) lib: uri-util: Implemented API to check generic URI syntax. This allows checking whether something is a valid URI of any type. This change adds a test suite for the generic URI syntax, which is currently the main purpose of the API addition. Apart from a few simple vality checks, the test suite also tests various URI examples from RFCs. M src/lib/Makefile.am M src/lib/test-lib.inc A src/lib/test-uri.c M src/lib/uri-util.c M src/lib/uri-util.h 2016-10-02 14:18:35 +0200 Stephan Bosch (957f71b0b) lib-http: uri: Removed unnecessary checking of percent encoding of query and fragment parts. This is now always performed in lib/uri-util. M src/lib-http/http-url.c 2016-10-02 14:14:48 +0200 Stephan Bosch (61f962e8f) lib: uri-util: Always fully check the syntax of percent encoding while parsing URI components. M src/lib/uri-util.c 2016-10-03 10:08:45 +0300 Aki Tuomi (27ba8acc6) lib-test: Fix memory leak in test-ostream M src/lib-test/test-ostream.c 2016-10-03 10:08:31 +0300 Aki Tuomi (d60ff60a7) lib-test: Fix illegal memory access in test-ostream M src/lib-test/test-ostream.c 2016-10-03 09:11:23 +0300 Aki Tuomi (dfa23b2dd) io: Add source filename This will make debugging alot easier when you can see what the filename is as well. M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-kqueue.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-private.h M src/lib/ioloop.c M src/lib/ioloop.h 2016-09-30 13:42:45 +0300 Timo Sirainen (11d88fd44) lib-test: Added test_ostream for testing nonblocking ostreams. M src/lib-test/Makefile.am M src/lib-test/test-common.h A src/lib-test/test-ostream.c 2016-09-30 13:10:13 +0300 Timo Sirainen (b3987cf96) lib-test: Moved test_istream code to its own test-istream.c file. M src/lib-test/Makefile.am M src/lib-test/test-common.c A src/lib-test/test-istream.c 2016-09-30 13:04:48 +0300 Timo Sirainen (f8a9af771) lib-test: Allow test_istream_set_*() for test-istream's children. It will internally find the test_istream from parents. This simplifies the testing code so that it doesn't have to keep track of both the test_istream and the final istream. M src/lib-test/test-common.c 2016-09-27 20:21:55 +0300 Timo Sirainen (85601125c) director: Ignore duplicates in director_servers setting. M src/director/director-host.c 2016-09-30 12:36:33 +0300 Timo Sirainen (9f7441a47) lib-storage: mail_user_dup() should duplicate also userdb_fields. M src/lib-storage/mail-user.c 2016-09-29 14:15:32 +0300 Timo Sirainen (05150df8f) lib-storage: Don't reset mail_save_context.saving too early. If mailbox_save_using_mail() ended up in mail_storage_copy(), saving was set to FALSE before the copy() method was finished running. This caused e.g. notify plugin to think that this was a copy event instead of a save event. Added comments and asserts to clarify how the logic should work between all the different copying/moving/saving flags. M src/lib-storage/mail-copy.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2016-09-29 14:00:49 +0300 Timo Sirainen (fe9459ab4) lib-storage: If mailbox_move() fails, reset mail_save_context.moving==FALSE M src/lib-storage/mail-storage.c 2016-09-29 09:51:40 +0300 Aki Tuomi (042c55b2f) doveadm-import: Update manpage M doc/man/doveadm-import.1.in 2016-09-29 10:17:05 +0300 Aki Tuomi (b35ac65c8) doveadm-import: Add -U parameter to specify source user When doing import, you can specify which user to use as source user. M src/doveadm/doveadm-mail-import.c 2016-09-29 10:15:24 +0300 Aki Tuomi (bc4f0aef7) doveadm-import: Use target user as source user This is done to avoid spurious error messages caused by being ran as root. M src/doveadm/doveadm-mail-import.c 2016-09-28 13:34:46 +0300 Aki Tuomi (a7512265b) imap-hibernate: Accept RFC DONE\IDLE Change imap-hibernate to accept DONE\r\n IDLE\r\n as well, which is specified by RFC M src/imap-hibernate/imap-client.c 2016-09-27 15:50:11 +0300 Timo Sirainen (f6f50f528) master: Removed hardcoded listen() backlog limit. If it's already too large, the kernel will truncate it automatically. So there shouldn't be any reason for us to explicitly limit it. M src/master/service-listen.c 2016-09-27 13:28:15 +0300 Timo Sirainen (bf57767df) lib-storage: Update mailbox.recent_flags_count correctly. The counter was increased even if the UID was already in recent_flags. This is the only place where I found that recent_flags and recent_flags_count could become desynced (which they definitely were in a core dump), so hopefully this fixes assert-crashes like: Panic: file index-status.c: line 130 (index_storage_get_open_status): assertion failed: (status_r->recent <= status_r->messages) M src/lib-storage/mailbox-recent-flags.c 2016-09-27 13:50:51 +0300 Timo Sirainen (93a4387a1) dsync: Virtual sizes weren't exported properly with -I parameter. Although they were incorrectly being exported with -T parameter. This makes -I work without assert-crashing. M src/doveadm/dsync/dsync-mailbox-export.c 2016-09-27 13:50:10 +0300 Timo Sirainen (f538498d8) dsync: Renamed "max sync size" parameter from -S to -I. -S can't be used because it was already used for the generic socket path, so it didn't actually work. M src/doveadm/doveadm-dsync.c 2016-09-26 15:38:27 +0300 Timo Sirainen (e33462704) dict-client: Fixed lock and ioloop wait timings in log messages. Previously it was logging the total amount of time spent on lock waits or on ioloop during the existence of the entire process, rather than how much time the command itself was spending on those. This wasn't very useful. Now it also tries to separate the time spent on the main ioloop and in dict_wait(). M src/lib-dict/dict-client.c 2016-09-26 16:44:21 +0300 Timo Sirainen (8d72f2090) dict-client: Don't return "Dict server timeout" too early. This could have happened when many dict commands were being run without the timeout being reset in the middle. M src/lib-dict/dict-client.c 2016-09-26 16:34:23 +0300 Timo Sirainen (9fa33a0c5) dict-client: Remove timeout when there are only background commands. Normally the timeout wasn't added in the first place, but it was if a non-background command was added first and it was followed by a background command. M src/lib-dict/dict-client.c 2016-09-23 14:59:33 +0300 Timo Sirainen (666d85f70) login proxy: Don't leak connections if reconnect fails with "Host is down" Double-disconnection was also attempting to close the same fd twice, but I think that couldn't have happened before this leak was fixed. M src/login-common/login-proxy.c 2016-09-22 14:14:23 +0300 Aki Tuomi (e5a55bb6b) lib: Add test for pending io without timeouts M src/lib/test-ioloop.c 2016-09-22 14:13:43 +0300 Aki Tuomi (789645e67) lib: Update ioloop attributes With pending IO, the ioloop attributes still need updating, instead of just returning. M src/lib/ioloop.c 2016-09-22 14:23:00 +0300 Timo Sirainen (b75eba4f6) lib-mail: message_header_hash_more() now allows input in any slices. There wasn't necessarily any guarantees that the input would be sliced in such a way that the repeating '?' would be dropped the same way every time. M src/doveadm/dsync/dsync-mail.c M src/lib-mail/message-header-hash.c M src/lib-mail/message-header-hash.h M src/lib-mail/test-message-header-hash.c M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-09-22 14:16:12 +0300 Timo Sirainen (f4b1d510a) lib-mail: Removed obsolete comment about message_header_hash_more() pop3-migration plugin uses this function now, so it doesn't need to be kept in sync. M src/lib-mail/message-header-hash.c 2016-09-22 13:47:42 +0300 Timo Sirainen (a415de524) pop3-migration: "first POP3 msg" warning didn't actually show the first one. It was showing the first index in an array, which had nothing to do with being the first POP3 message number. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-09-22 13:38:33 +0300 Timo Sirainen (5bcac2212) dbox: mailbox_update() shouldn't reset pop3-uidl header. This broke reading migrated POP3 UIDLs. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c 2016-09-21 20:50:24 +0300 Timo Sirainen (2e5e2047a) login-proxy: Fixed "Host is down" never reseting itself. Broken by c8eb8314a, which moved adding num_waiting_connections earlier. After that it was never 0 at the check time. M src/login-common/login-proxy.c 2016-09-21 16:17:26 +0300 Timo Sirainen (1d4f019ff) lib: test-istream-chain fixes M src/lib/test-istream-chain.c 2016-09-20 18:08:10 +0300 Timo Sirainen (f2edbc51b) lib-dcrypt: Don't finalize encryption on o_stream_flush() For example the default o_stream_uncork() implementation enforces flushing and it's probably better not to change that. In general there's really no reason to perform the finalization at flush when the stream can't be written to anymore (whereas lib-compression ostreams allow writes after flushes). M src/lib-dcrypt/ostream-encrypt.c 2016-09-21 13:26:30 +0300 Timo Sirainen (bac642771) lib: Fixed istream-chain when it has multiple "previous streams". Fixes assert: Panic: file istream-chain.c: line 223 (i_stream_chain_read): assertion failed: (cur_data_pos == data_size) Unit test for it by Stephan Bosch. M src/lib/istream-chain.c M src/lib/test-istream-chain.c 2016-09-21 13:47:05 +0300 Timo Sirainen (a81be83a3) lib: Fixed ostream-failure-at with blocking parent stream. Blocking ostream returns either a full success or a full failure. It can't return that only n/m bytes were written. Fixes assert: Panic: file ostream.c: line 255 (o_stream_sendv_int): assertion failed: (!stream->blocking) M src/lib/ostream-failure-at.c 2016-09-21 12:19:18 +0300 Timo Sirainen (4c9caab45) doveadm fs get: Fixed logging error messages. The error is in istream, not in fs. M src/doveadm/doveadm-fs.c 2016-09-20 21:06:22 +0300 Aki Tuomi (9a6fe6181) imap-login: Add missing brace M src/imap-login/imap-proxy.c 2016-09-20 18:51:18 +0300 Aki Tuomi (c24150b68) imap-proxy: Fix typo in comment M src/imap-login/imap-proxy.c 2016-09-20 15:02:42 +0300 Aki Tuomi (abd4203d9) imap-login: Honor nopipelining during preauth M src/imap-login/imap-proxy.c 2016-09-20 08:51:29 -0400 Josef 'Jeff' Sipek (bd6a80567) lib-storage: remove unused internal_attribute argument from attribute_{get,set} This removes an argument added in 9f37ef2a9192e7d47e3d7ac959080fd01120f2e9 but obsoleted (but not removed) in d1147c225f64596fc5eeb1cb2aab31b3c57d5215. Not only does this change simplify the codebase, it actually brings the API closer to what it was back in 2.2. M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-storage.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mailbox-attribute-internal.c M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-attribute.h M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-storage.h 2016-09-20 12:47:32 +0300 Aki Tuomi (f49f1c5fa) lib-dcrypt: Set NOPLUGIN_LDFLAGS to empty Avoids -Wl,--as-needed here M src/lib-dcrypt/Makefile.am 2016-09-20 10:52:08 +0300 Aki Tuomi (452d0005a) lib-dcrypt: Makefile.am fix Remove dcrypt.c from openssl library and add missing slash M src/lib-dcrypt/Makefile.am 2016-09-16 15:50:22 +0300 Aki Tuomi (80cfaba9e) lib: Ensure handler_context is not NULL handler context must not be NULL here. M src/lib/ioloop-epoll.c 2016-09-16 15:49:36 +0300 Aki Tuomi (15cdc6b0e) lib: Prevent crash in ioloop If only non-fd sources and no timeouts are in ioloop, prevent crash and unnecessary waiting when there are pending IOs. M src/lib/ioloop.c 2016-09-19 16:20:14 +0300 Timo Sirainen (17466c748) lib: Assert if i_stream_create_seekable_path(temp_path_prefix==NULL) If the stream becomes large enough it would crash then in a callback function, which makes debugging more difficult. M src/lib/istream-seekable.c 2016-09-19 12:27:16 +0300 Aki Tuomi (2fcde0841) fts-plugin: Remove NULL assert fts_backend_update_deinit will set box to NULL and call update_set_mailbox then. NULL check needs to be done in backends. M src/plugins/fts/fts-api.c 2016-09-19 12:26:46 +0300 Aki Tuomi (768ac0aa3) fts-backend-solr: Check that box is not NULL fts_backend_update_deinit will set box to NULL and call update_set_mailbox then. M src/plugins/fts-solr/fts-backend-solr.c 2016-09-19 12:26:08 +0300 Aki Tuomi (f2496be45) fts-backend-lucene: Check that box is not NULL fts_backend_update_deinit will set box to NULL and call update_set_mailbox then. M src/plugins/fts-lucene/fts-backend-lucene.c 2016-09-19 11:08:08 +0300 Timo Sirainen (db8a5116f) lib-ssl-iostream: The final fix to make the SSL plugin loading not fail.. M src/lib-ssl-iostream/iostream-ssl.c 2016-09-18 16:33:07 +0300 Timo Sirainen (ecc2fb346) lib-ssl-iostream: Fixed OpenSSL module to be actually initialized. M src/lib-http/test-http-client.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl.c 2016-09-17 12:57:00 +0300 Aki Tuomi (609bea053) auth-policy: Ref/unref auth request If auth_request is not referenced it can go away before HTTP response is handled. M src/auth/auth-policy.c 2016-09-16 17:13:24 +0300 Timo Sirainen (50072aa42) fs-randomfail: Operation is unfinished on EAGAIN, not ENOENT. This caused crashes and other problems when using randomfail with asynchronous fs drivers. M src/lib-fs/fs-randomfail.c 2016-09-16 08:39:24 +0300 Timo Sirainen (c45da70c9) lib-http: Link test-http-client libssl_iostream_openssl.so directly. This way it can be run without having to do make install first. M src/lib-http/Makefile.am M src/lib-http/test-http-client.c 2016-09-16 08:35:55 +0300 Timo Sirainen (fe4058e6f) lib-ssl-iostream: Use more standard _init() & _deinit() to initialize SSL plugin This is mainly to make it easier for test programs to link to the plugin directly. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c 2016-09-15 11:30:15 +0300 Timo Sirainen (033e315cc) lib: safe_mkstemp*() didn't always truncate prefix back to original on failure. This caused repeated safe_mkstemp*() calls with the same prefix to keep increasing its size. It probably didn't really break anything (unless it was called enough many times to reach 255 filename length), but the filenames were still confusingly ugly. M src/lib/safe-mkstemp.c 2016-09-15 10:23:41 +0300 Timo Sirainen (6d2e2c791) pop3-migration: Fixed crash when not specifying pop3_migration_mailbox setting. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-09-14 14:19:39 +0300 Timo Sirainen (d97f081a3) iostream-temp: If write() to temp file fails at any time, move it back to memory. Similarly to if the write() to temp fails during the initial move attempt. This way even if write() fails due to out of disk space, it's not visible to caller. An error message is logged in any case. M src/lib/iostream-temp.c M src/lib/iostream-temp.h M src/lib/test-iostream-temp.c 2016-09-14 19:06:29 +0300 Timo Sirainen (061046c9a) pop3-migration: Avoid unnecessarily using stream's hdr_size. Shouldn't change any behavior, except reduce CPU usage a little bit. M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/pop3-migration/pop3-migration-plugin.h M src/plugins/pop3-migration/test-pop3-migration-plugin.c 2016-09-14 18:57:43 +0300 Timo Sirainen (9e904c22e) imapc: mail_get_stream() shouldn't return cached hdr_size M src/lib-storage/index/imapc/imapc-mail.c 2016-09-14 07:13:50 -0400 Josef 'Jeff' Sipek (70e0c96e1) doveadm: refactor mailbox attribute get/set/unset/list to share more code M src/doveadm/doveadm-mail-mailbox-metadata.c 2016-09-13 07:50:04 -0400 Josef 'Jeff' Sipek (26c41874c) doveadm: allow access to server attributes via empty mailbox name M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-09-13 07:49:41 -0400 Josef 'Jeff' Sipek (d1147c225) lib-storage: remove attribute accessibility checks index_storage_attribute_{set,get} should assume that the caller performed due diligence and checked whether or not the user is allowed to store under the key. M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-storage.h 2016-09-13 03:33:06 -0400 Josef 'Jeff' Sipek (ee06e0aa5) doveadm: lowercase attribute names before trying to parse them This now matches what the imap server does. M src/doveadm/doveadm-mail-mailbox-metadata.c 2016-09-13 03:32:06 -0400 Josef 'Jeff' Sipek (6dd167432) lib-storage: document mailbox and server attribute handling M src/lib-storage/mailbox-attribute.h 2016-09-13 22:54:02 +0200 Stephan Bosch (1c9f4c14e) lib-http: client: Fixed hang occurring when nested ioloops are used in response callbacks. To prevent missing disconnect events, i_stream_read() is called once a change in ioloop is detected. However, if something was actually read into the stream, the input handler was never called. So, a response could linger in the stream buffer, without being handled, thereby causing the connection to hang indefinitely. An additional input event could end the hang, but sometimes this doesn't happen before the request times out. This problem was seen in test-http-payload once in about 10 invocations. Obox uses nested ioloops, to this applies there. M src/lib-http/http-client-connection.c 2016-09-11 22:10:44 +0200 Stephan Bosch (0873f750d) lib-http: test-http-payload: Fixed problem in nested ioloop test. The running ioloop was not always stopped properly at the end of the test. This caused an assert failure in the running ioloop. M src/lib-http/test-http-payload.c 2016-09-11 22:06:54 +0200 Stephan Bosch (19f8621e1) lib-http: test-http-payload: Improved logging of nested ioloop tests. M src/lib-http/test-http-payload.c 2016-09-10 11:32:28 +0300 Timo Sirainen (5bfda550b) doveadm-auth: Handle unexpected auth "continue" request without crashing. M src/doveadm/doveadm-auth.c 2016-09-10 11:28:38 +0300 Timo Sirainen (6b32b849a) lib-lda: Cleanup error handling in LMTP client code. If there are no successful recipients, we'll need to deinit the client. But at that point we've already called all the callbacks, so the line parameter to lmtp_client_fail_full() isn't actually used anywhere. This was confusing static analyzer because global_fail_string was used as parameter, which could have been NULL and wouldn't have been valid for the callbacks. M src/lib-lda/lmtp-client.c 2016-09-10 11:16:05 +0300 Timo Sirainen (d4361f37b) lib-master: Fixed memory leak when IPC server is handling commands. This mainly meant that when login processes responded to doveadm proxy list/kick commands memory was leaked. M src/lib-master/ipc-server.c 2016-09-10 11:15:00 +0300 Timo Sirainen (552576554) doveadm: Don't allow doveadm_print_header(title==NULL) anymore. It's not used anywhere, and if it was used it would have crashed with at least "tab" backend. M src/doveadm/doveadm-print.c 2016-09-10 11:13:58 +0300 Timo Sirainen (4598234b3) dict-client: Don't crash if dict-server returns broken reply. Just treat missing value as empty value. M src/lib-dict/dict-client.c 2016-09-09 18:18:32 +0300 Timo Sirainen (3c30113d2) auth: Make sure auth_request_log_info() doesn't crash when there are no passdbs auth_request_is_disabled_master_user() could have caused such crash. M src/auth/auth-request.c 2016-09-09 18:12:41 +0300 Timo Sirainen (c8a54e1bb) auth: Explicitly ignore return value to make static analyzer happier. M src/auth/auth-policy.c 2016-09-09 18:10:29 +0300 Timo Sirainen (abb404575) Added asserts to make static analyzer happier. M src/lib-fs/fs-posix.c M src/lib-index/mailbox-log.c M src/lib-stats/stats-connection.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib/istream-file.c M src/login-common/login-proxy-state.c M src/plugins/fts/fts-api.c M src/plugins/virtual/virtual-mail.c 2016-09-09 18:07:15 +0300 Timo Sirainen (3177b4106) Removed dead code to make static analyzer happier. M src/lib-dcrypt/dcrypt-openssl.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/mail-storage.c M src/plugins/fts-squat/squat-trie.c 2016-09-09 17:55:20 +0300 Timo Sirainen (79fff4504) lib-storage: Fix potential crash when userdb-returns "key+=value" for a nonexistent setting. type would have also happened to be initialized to SET_STR for the crash to happen. M src/lib-storage/mail-storage-service.c 2016-09-09 17:50:43 +0300 Timo Sirainen (9474b66ac) lib-test: Fixed NULL pointer dereference when using --enable-static-checker M src/lib-test/test-common.c 2016-09-09 17:46:51 +0300 Timo Sirainen (e87393d3a) pgsql: Fixed clearing sql_commit_result.error_type error was correctly set to NULL with the earlier memset(), but error_type may have been garbage. This shouldn't have caused any actual problems. M src/lib-sql/driver-pgsql.c 2016-09-09 17:40:58 +0300 Timo Sirainen (67a0f9eec) fts-squat: Fixed memory leak on corrupted uidlist handling M src/plugins/fts-squat/squat-uidlist.c 2016-09-09 17:39:43 +0300 Timo Sirainen (262eeae35) dict-file: Don't leak a lock on temp file creation failure. M src/lib-dict/dict-file.c 2016-09-09 17:36:39 +0300 Timo Sirainen (b804e2b17) lib-imap-urlauth: Don't access freed memory on errors. M src/lib-imap-urlauth/imap-urlauth-connection.c 2016-09-13 07:22:03 +0300 Timo Sirainen (c46d97e6a) imap, pop3: Added rawlog_dir setting to store IMAP/POP3 traffic logs. This at least partially replaces the "rawlog" post-login binary. For now the "rawlog" binary supports some parameters, which aren't configurable for rawlog_dir. M src/imap/imap-client.c M src/imap/imap-settings.c M src/imap/imap-settings.h M src/pop3/pop3-client.c M src/pop3/pop3-settings.c M src/pop3/pop3-settings.h 2016-09-12 16:22:24 -0400 Josef 'Jeff' Sipek (fdf3e1e28) configure: hardening logic is backwards Before this change, the argument parsing was busted. The --help string only compounded the incorrect behavior by suggesting that --disable-hardening could take a yes/no argument. | before | after ------------------------------+----------+-------- | enable | enable --enable-hardening | disable | enable --enable-hardening=yes | disable | enable --enable-hardening=no | enable | disable --disable-hardening | enable | disable --disable-hardening=yes | error | error --disable-hardening=no | error | error M configure.ac M m4/cc_fortify.m4 M m4/cc_pie.m4 M m4/cc_stack_protector.m4 M m4/ld_relro.m4 2016-09-09 15:51:43 +0300 Aki Tuomi (2bc67190c) pop3-migration-plugin: Add to index after successful retry Also change return value to indicate that the hash has been assigned to header. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-09-12 09:47:26 +0300 Aki Tuomi (12f86e86d) doveconf: Hide any _api_key M src/config/doveconf.c 2016-09-05 16:26:56 +0300 Phil Carmody (ea125b1c3) plugins: fts - replace i_assert under _expunge_log_subtract with warning (API change) The helper whose interface is changing currently has no other known clients (there's little need for it to be exposed at all). This should never happen, but if it does, just tally the number of times it happened, and squirt out a warning message after the whole subtract. If it happens at all, there's no reason not to expect a lot, so only warn once per file. In particular - do not assert crash when this is seen - it has been seen on live test systems where file corruption seems to have occured. As this can only be associated with corrupt fts indexes, seeing this error implies that the whole FTS index should be rebuilt for that user. Signed-off-by: Phil Carmody M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-expunge-log.h 2016-08-10 13:07:01 +0300 Aki Tuomi (bedb7f369) lib-storage: Limit folder full name only Before we had limit of 16 levels and 255 bytes per name which is same as 4096 bytes. Now we limit only the total length of the name to MAILBOX_LIST_NAME_MAX_LENGTH. For compability reasons, we are restricting individual component names to 255 characters. M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2016-09-09 14:34:12 +0300 Timo Sirainen (7b9e289e4) fs-metawrap: Fixed assert that checks we don't create empty files. If the entire write failed, offset could be 0. M src/lib-fs/fs-metawrap.c 2016-09-09 14:07:11 +0300 Timo Sirainen (8c81109dc) lib-storage: Fixed accessing user as root when user has no uid. This shouldn't normally be done, but might as well fix it. Fixes: Fatal: mail-storage-service: seteuid(4294967295) failed: Invalid argument M src/lib-storage/mail-storage-service.c 2016-09-09 10:38:10 +0300 Timo Sirainen (d3cc15f20) lib-test: Added missing va_end() call. M src/lib-test/test-common.c 2016-09-09 00:59:53 +0300 Timo Sirainen (2485e31c7) lib-index: Fixed mail_index_modseq_get_next_log_offset() when accessing .log.2 file->sync_offset was set only after header, so sync_highest_modseq was also same as initial_modseq. The previous code then just returned offset pointing to sync_offset, which was too early. M src/lib-index/mail-transaction-log-file.c 2016-09-08 23:54:22 +0300 Timo Sirainen (1ff03d224) lib-index: Make sure new dovecot.index.log files start tracking modseqs. This will make mail_index_modseq_get_next_log_offset() work correctly even if modseqs haven't been explicitly enabled. M src/lib-index/mail-transaction-log-file.c 2016-08-23 22:36:08 +0300 Timo Sirainen (da8556f59) lib-storage: Code cleanup for mailbox_get_expunge*() The previous code did actually work as well, but it wasn't very obvious that it did. M src/lib-storage/mailbox-get.c 2016-09-09 01:31:46 +0300 Timo Sirainen (f818f91a2) imap: When hibernating, wait for old imap process to cleanup before creating new ones. This fixes stats errors: stats: Error: FIFO input error: CONNECT: Duplicate session ID Y7Q6E4U7xO1/AAAB for user testuser service imap stats: Warning: Couldn't find session ID: Y7Q6E4U7xO1/AAAB M src/imap-hibernate/imap-hibernate-client.c M src/imap/imap-client-hibernate.c 2016-09-09 02:50:27 +0300 Timo Sirainen (bd7ae8952) lib-fs: Moved fs_write_stream_abort_parent() to fs-api-private.h Only fs wrapper drivers are supposed to call it. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.h 2016-09-09 02:48:45 +0300 Timo Sirainen (19126597f) fs-randomfail: Fixed assert-crash in fs_write_stream_abort_error() M src/lib-fs/fs-randomfail.c 2016-09-08 19:01:54 +0300 Martti Rannanjärvi (3c014db6f) lib-index: limit mail_index error prints to one per ioloop_time This is to prevent log flooding. M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c 2016-09-09 03:05:39 +0300 Timo Sirainen (a20a8a9fc) lib-test: test_expect_errors() now works for the entire log string, not just format parameter M src/lib-test/test-common.c 2016-09-09 01:42:50 +0300 Timo Sirainen (4b9355028) imap-hibernate: Increased imap-master communication timeout from 5s to 30s Looks like 5s isn't enough in loaded environments. It's also not really a problem if the timeout is large, it's just going to take a while longer to restore the connection. When timeout is reached the client would just get disconnected anyway. M src/imap-hibernate/imap-master-connection.c 2016-09-09 01:08:59 +0300 Timo Sirainen (4fca0e305) stats: Include PIDs in "Duplicate session ID" errors. M src/stats/mail-session.c 2016-09-08 22:08:11 +0300 Timo Sirainen (85cce7cab) lib-index: mail_index_modseq_get_next_log_offset() shouldn't return offset beyond view's head This also allows removing the same workaround from dsync code. M src/doveadm/dsync/dsync-transaction-log-scan.c M src/lib-index/mail-index-modseq.c 2016-09-08 23:00:56 +0300 Aki Tuomi (75771bd32) imap-acl: acl plugin deinit returns 1 on non-empty M src/plugins/imap-acl/imap-acl-plugin.c 2016-09-08 22:59:58 +0300 Aki Tuomi (bbc7e2c2e) acl: Deinit will return 1 on non-empty M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c 2016-09-08 21:31:37 +0300 Timo Sirainen (e90d9eaa3) lib: Allow static analyzers to check for t_pop() leaks. They should be able to detect the missing free() call from code paths missing a t_pop(). M src/lib/data-stack.c M src/lib/data-stack.h M src/lib/mempool-datastack.c 2016-09-08 21:31:25 +0300 Timo Sirainen (f2ed47f80) configure: Added --enable-static-checker parameter M configure.ac 2016-09-07 11:52:00 +0300 Timo Sirainen (cd9cf45dc) imap: Avoid wrongly assert-crashing in client_check_command_hangs() Fixes assert: Panic: file imap-client.c: line 837 (client_check_command_hangs): assertion failed: (client->io != NULL) M src/imap/imap-client.c 2016-09-08 20:23:35 +0300 Timo Sirainen (80943492e) stats plugin: Don't send any stats before CONNECT was successfully sent. After stats write failures this fixes warnings like: Warning: stats: Couldn't find session ID: smqAXQE8pIp/AAAB M src/plugins/stats/mail-stats-connection.c M src/plugins/stats/mail-stats-connection.h M src/plugins/stats/stats-plugin.c M src/plugins/stats/stats-plugin.h 2016-09-08 20:18:46 +0300 Timo Sirainen (a94f1909a) lib-stats: stats_connection_send() now returns whether it succeeded or not M src/lib-stats/stats-connection.c M src/lib-stats/stats-connection.h 2016-09-08 16:50:02 +0300 Timo Sirainen (af2cc755b) doveadm flags: Sync mailbox after committing transaction. M src/doveadm/doveadm-mail-flags.c 2016-09-07 16:45:09 +0300 Aki Tuomi (c7f6992db) acl-plugin: Adjust to API changes M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/imap-acl/imap-acl-plugin.c 2016-09-07 22:06:55 +0300 Aki Tuomi (a4804621e) lmtp: Always read settings before dropping privs If lmtp is ran explicitly as root, settings were not read. M src/lmtp/main.c 2016-09-07 22:00:14 +0300 Timo Sirainen (82b3d02b7) imap: Fixed assert-crash if un-hibernation failed to initialize user. master_service_client_connection_destroyed() was also being called in imap_master_client_destroy() so it was done twice. Fixes: Panic: file master-service.c: line 775 (master_service_client_connection_destroyed): assertion failed: (service->total_available_count > 0) M src/imap/imap-master-client.c 2016-09-05 12:42:08 +0300 Aki Tuomi (fdef08644) fs-api: Retrieve errno before dest->copy_output is NULL'ed CID 10144: When aborting output, errno retrieval is attempted after dest->copy_output has already been unreffed. Found by coverity. M src/lib-fs/fs-api.c 2016-09-03 15:26:39 +0300 Aki Tuomi (b607b432d) acl-plugin: Whitespace fixes M src/plugins/acl/acl-api.c M src/plugins/acl/acl-api.h M src/plugins/acl/acl-attributes.c 2016-09-03 15:23:11 +0300 Aki Tuomi (5f63ee5a9) acl-plugin: Deinit acl_iter on deinit too M src/plugins/acl/acl-attributes.c 2016-09-03 13:14:29 +0300 Aki Tuomi (37c72fa0c) acl-plugin: Make iterators more conforming The *_next functions return true/false, deinit will report errors and end result. M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c M src/plugins/acl/acl-api.h M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.h M src/plugins/acl/doveadm-acl.c 2016-09-06 09:24:06 +0300 Aki Tuomi (ae5330824) lib-storage: Check that UID is set before caching M src/lib-storage/index/index-mail-binary.c 2016-09-06 09:23:54 +0300 Aki Tuomi (4269461e3) lib-imap-storage: Check that UID is assigned before caching M src/lib-imap-storage/imap-msgpart.c 2016-09-05 15:56:05 +0300 Aki Tuomi (741287129) zlib-plugin: Check that UID is assigned When caching, code has to check whether UID is assigned to avoid reusing cache for different email since they all have UID = 0 before they are actually committed. M src/plugins/zlib/zlib-plugin.c 2016-09-06 16:17:13 +0300 Aki Tuomi (9d3f82fe6) quota: Flush quota after recalc Correctly fix issue where the dict commit is left unfinished. M src/plugins/quota/doveadm-quota.c 2016-09-06 02:56:39 +0300 Timo Sirainen (8a2f21f2b) lib-dcrypt: Avoid infinite loop if istream header is too large. We'll return an error now instead. We can't just return -2 here, because nothing was actually being returned to the caller. Attempting to do that would just trigger an assert: Panic: file istream.c: line 182 (i_stream_read): assertion failed: (_stream->skip != _stream->pos) M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/test-stream.c 2016-09-05 11:21:30 +0300 Ville Savolainen (9913ea5ea) dovecot.service.in: removed ExecStartPre and ExecStopPost default definitions Additional definitions currently added to dovecot.service.d/ by packaging M dovecot.service.in 2016-08-25 12:27:51 +0300 Aki Tuomi (7d0d1c561) dcrypt: Test for stream prefetch M src/lib-dcrypt/test-stream.c 2016-08-25 12:26:55 +0300 Aki Tuomi (4b4e8dcad) dcrypt: Allow stream prefetch We might get stream that has already been buffered, so we must try read it in case buffer is full. M src/lib-dcrypt/istream-decrypt.c 2016-09-01 08:41:28 +0300 Timo Sirainen (32c3ba3ba) lib: If DEBUG is enabled, use a pointer type for data_stack_frame_t This allows telling static analyzers to treat t_push() and t_pop() similarly to malloc()/free() and check for leaks. M src/lib/data-stack.c M src/lib/data-stack.h 2016-09-01 08:24:19 +0300 Timo Sirainen (3c5ee5132) lib: Changed t_pop() API to make it a bit more like free() M src/lib-master/master-service.c M src/lib-test/test-common.c M src/lib/data-stack.c M src/lib/data-stack.h M src/lib/ioloop.c M src/lib/test-data-stack.c 2016-09-01 08:34:22 +0300 Timo Sirainen (28bf8f762) lib-master: master_service_init_finish() now verifies that t_pop() wasn't leaked M src/lib-master/master-service-private.h M src/lib-master/master-service.c 2016-09-01 08:31:14 +0300 Timo Sirainen (e2588872c) lib: Created data_stack_frame_t type for data_stack_frame M src/lib/data-stack.c M src/lib/data-stack.h M src/lib/ioloop.c M src/lib/mempool-datastack.c M src/lib/test-data-stack.c 2016-08-31 19:13:36 -1000 Timo Sirainen (7bc9e4a3b) lib: Small code cleanup to data-stack - use explicit data_stack_initialized This will make it easier to change data_stack_frame's type. M src/lib/data-stack.c 2016-08-31 19:11:46 -1000 Timo Sirainen (8cf55b1c0) lib: Minor t_push() optimization - use unlikely() M src/lib/data-stack.c 2016-08-29 00:03:54 +0200 Stephan Bosch (79fe1b28d) lib: var-expand: Removed var_expand_table_build(). Replaced it with explicit table construction at the one place it was used. Clang -Wvargargs complained about passing a char argument to va_start(). M src/auth/userdb-vpopmail.c M src/lib/var-expand.c M src/lib/var-expand.h 2016-08-31 20:14:41 +0300 Phil Carmody (14cac26dc) Fix control flow and T_BEGIN/T_END hygiene You mustn't goto, break, continue, or return from out of a T_BEGIN {...} T_END block, as that will lose a t_pop(). This has been seen in the wild: Panic: Leaked t_pop() call Signed-off-by: Phil Carmody M src/director/login-connection.c M src/lib/file-lock.c 2016-08-31 09:20:49 +0300 Aki Tuomi (b8f4e3aa5) lib-fs: Do not abort parent of parent M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-wrapper.c M src/plugins/fs-compress/fs-compress.c 2016-08-29 10:40:24 +0200 Stephan Bosch (abf999f62) configure.ac: Forgot to invoke DOVECOT_WANT_VPOPMAIL. It was thereby impossible to enable Vpopmail support. M configure.ac 2016-08-28 18:40:01 +0300 Aki Tuomi (05069f025) doveadm-server: Reset error code between calls M src/doveadm/client-connection.c 2016-08-28 19:55:29 +0300 Aki Tuomi (7bde80dd0) stats: Reset nearly all global mail stats We leave num_connected_sessions alone. M src/stats/client-reset.c 2016-08-28 19:14:08 +0300 Aki Tuomi (f4203c92a) stats: Fix user login counters Before we would count all users twice, because the same counters would get increment in both CONNECT and ADD-USER. Now we do not increment them at all on ADD-USER. M src/stats/mail-domain.c M src/stats/mail-session.c M src/stats/mail-user.c 2016-08-28 17:00:30 +0200 Stephan Bosch (9a4542801) auth: GSSAPI mechanism: Fix CLang -Wstrict-bool warnings. The GSS_ERROR() macro yields an integer rather than an actual bool value. The krb5_kuserok() function returns a krb_boolean type, which is unsigned int rather than a bool. M src/auth/mech-gssapi.c 2016-08-24 03:56:44 -0400 Josef 'Jeff' Sipek (85b4143f0) lib-master: don't leak config path The config path can already be non-NULL thanks to the default config path code or the CONFIG_PATH environmental variable. M src/lib-master/master-service.c 2016-08-23 23:31:40 +0300 Aki Tuomi (1d8622b44) lib-fs: abort parent in fs_file_write_stream_abort_parent M src/lib-fs/fs-api.c 2016-08-23 13:06:09 +0300 Timo Sirainen (9ac30c648) imap: Track how much time was spent on waiting for locks. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c 2016-08-23 12:55:24 +0300 Timo Sirainen (9578698c4) dict-client: In slow query warnings, log time spent in ioloop and lock waits. Possibly we want to remove the warnings entirely if most of the time has been spent on lock waits (or alternatively: not spent in ioloop). M src/lib-dict/dict-client.c 2016-08-23 12:48:21 +0300 Timo Sirainen (4a7e04d32) lib: Track how much time has been spent on waiting for locks. M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-lock.h 2016-08-23 20:12:47 +0300 Aki Tuomi (16161da67) lib-fts: Add missing include M src/lib-fts/fts-filter-common.c 2016-08-23 14:08:11 +0300 Timo Sirainen (18efe7985) imap: Fixed expunge handling when un-hiberanting Fixes these errors: Failed to import client state: Message count mismatch after handling expunges Message UIDs CRC32 mismatch M src/imap/imap-state.c 2016-08-16 14:07:14 +0300 Timo Sirainen (97e511960) lib: Changed unlink_directory() API to return error string. There are many different reasons why it could fail, which a simple errno can't very clearly indicate. M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-delete.h M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib/unlink-directory.c M src/lib/unlink-directory.h M src/plugins/fts-lucene/lucene-wrapper.cc 2016-08-19 13:15:09 +0300 Timo Sirainen (5965eaa2d) global: Added uchar_empty_ptr and use it instead of &uchar_nul. This makes Coverity happier about not treating a char as an array. For now this is a pointer to a 0, but could as well become a pointer that crashes if dereferenced. Shouldn't be NULL anyway because clang's -fsanitize=nonnull-attribute will complain about them. M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/mech.c M src/auth/userdb-static.c M src/lib-imap/imap-parser.c M src/lib-sasl/mech-login.c M src/lib/istream.c M src/lib/strfuncs.c M src/lib/strfuncs.h 2016-08-23 13:41:38 +0300 Timo Sirainen (72e25ec1e) lib-fs: Fixes to previous fs_write_stream_abort*() changes. M src/lib-fs/fs-api.c M src/lib-fs/fs-randomfail.c 2016-08-23 13:40:50 +0300 Timo Sirainen (2d349bb70) lib-storage: Fixed istream-attachment-extractor error handling. M src/lib-storage/index/index-attachment.c 2016-08-23 13:40:35 +0300 Timo Sirainen (d3aecee1e) lib-mail: Clarify istream-attachment-extractor's error handling API usage. M src/lib-mail/istream-attachment-extractor.h 2016-08-22 09:42:26 +0300 Aki Tuomi (0c1f91164) lib-fs: Add fs_write_stream_abort_parent and use it Will do all the things abort_error does, but leaves error untouched. You are expected to set one yourself. M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-wrapper.c M src/plugins/fs-compress/fs-compress.c 2016-08-19 18:57:23 +0300 Aki Tuomi (6d035effc) lib-fs: Remove fs_write_stream_abort Do not use fs_write_stream_abort anymore, instead use fs_write_stream_abort_error to provide upstream some reason when it's used. M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-sis.c M src/lib-fs/fs-test-async.c 2016-08-19 16:00:30 +0300 Aki Tuomi (be6fab2b1) fs-api: Add and use fs_write_stream_abort_error This lets caller to specify error instead of setting it with fs_error. Doing it like this lets us percolate the error upwards. M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-wrapper.c M src/lib-storage/index/index-attachment.c M src/plugins/fs-compress/fs-compress.c 2016-08-23 10:53:28 +0300 Timo Sirainen (1cc5027b9) lib-storage: Added mailbox_recent_flags_expunge_uid() For storage backends where it's useful. M src/lib-storage/mailbox-recent-flags.c M src/lib-storage/mailbox-recent-flags.h 2016-08-22 23:41:05 +0300 Teemu Huovila (35eb3a239) lib-fts: Change normalizer filter to use new truncate. M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/test-fts-filter.c 2016-08-21 22:12:33 +0300 Teemu Huovila (5fcd30add) lib-fts: Cut overlong strings in lowercase filter. Added new common truncate function for filters. It also removes any partial characters, that would remain from plain truncation. M src/lib-fts/Makefile.am A src/lib-fts/fts-filter-common.c A src/lib-fts/fts-filter-common.h M src/lib-fts/fts-filter-lowercase.c M src/lib-fts/test-fts-filter.c 2016-08-17 16:47:19 +0300 Teemu Huovila (a754c3be2) lib-fts: Add max_length to common filter struct. Reorder fields. The latter is for for imaginary alignment enhancements. M src/lib-fts/fts-filter-private.h 2016-08-22 16:13:32 +0300 Timo Sirainen (69b8187b2) fs-metawrap: Added assert to make sure we don't create empty files. It seems like this could be happening in some situation. M src/lib-fs/fs-metawrap.c 2016-08-19 14:47:33 +0300 Aki Tuomi (3764f786a) quota-dict: Make sure all transactions complete M src/plugins/quota/quota-dict.c 2016-08-18 13:37:28 +0300 Aki Tuomi (563c1e3b4) systemd.service: Add required attributes M dovecot.service.in 2016-08-18 14:48:50 +0300 Aki Tuomi (7424d35ff) pop3: Fix deleted_count expansion M src/pop3/pop3-client.c 2016-08-08 18:14:07 +0300 Phil Carmody (f946ee981) lib: test-json-tree - decouple from internals Use the new helper functions, so that implementation can change without needing to change the tests. Patch best viewed with git diff/show --color-words. Signed-off-by: Phil Carmody M src/lib/test-json-tree.c 2016-06-22 11:17:09 +0300 Phil Carmody (fcd3d6214) lib: json-tree - API change to permit more featureful implementation Provide accessors for the innards of the tree's nodes, so that the node internals can be changed freely (needed for DAPI). Constify params where sensible. NOTE: this enforced const-correctness may *break* (cause a failure to build) some clients that didn't use const where they could have. Only obox2 is known to break. Add sibling functions with more parameters to expand the range of functionality, and inline rewire the old simple functions to call the more generic ones. Signed-off-by: Phil Carmody M src/lib/json-tree.c M src/lib/json-tree.h M src/lib/test-json-tree.c 2016-08-18 11:22:09 +0300 Timo Sirainen (6b2b18f8b) lmtp: Support %{userdb:*} variables in mail_log_prefix M src/lmtp/commands.c 2016-08-15 23:43:33 +0300 Timo Sirainen (8f7e81b32) quota, last-login: Disable "slow dict commit" warnings Anything (especially long lock waits) can happen between the commit and when we read their replies. M src/plugins/last-login/last-login-plugin.c M src/plugins/quota/quota-dict.c 2016-08-15 23:40:59 +0300 Timo Sirainen (aef407f14) lib-dict: Added dict_transaction_no_slowness_warning() M src/lib-dict/dict-client.c M src/lib-dict/dict-private.h M src/lib-dict/dict.c M src/lib-dict/dict.h 2016-08-15 23:36:13 +0300 Timo Sirainen (56558eb46) dict-client: Keep transaction's pointer in command until it's finished. M src/lib-dict/dict-client.c 2016-08-15 23:16:03 +0300 Timo Sirainen (5d234d36b) dict-client: Improve "slow dict operation" warnings in error conditions. There's no need to log both an error and a warning. M src/lib-dict/dict-client.c 2016-08-17 17:57:16 +0300 Martti Rannanjärvi (31bed8d0d) imap-hibernate: fix input_pending check in client_unhibernate_cmp Check c2->input_pending instead of c1->input_pending when calculating comparison value for c2. M src/imap-hibernate/imap-client.c 2016-08-17 17:20:21 +0300 Timo Sirainen (a84b413ef) lib-dcrypt: Fixed accessing out-of-bounds data in istream. Also some small cleanups to make it clearer what's actually happening. M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/ostream-encrypt.c 2016-08-17 16:25:12 +0300 Timo Sirainen (b99357fa1) lib-dcrypt: Fixed partial reads in header and limit header's max size. Also fixes test-stream to actually test nonblocking reads correctly. M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/test-stream.c 2016-08-16 14:49:35 +0300 Aki Tuomi (ca74790a7) fts-squat: Ensure child is not NULL Makes static analysers happy M src/plugins/fts-squat/squat-trie.c 2016-08-16 14:47:35 +0300 Aki Tuomi (25b183ad2) lib-master: Check for NULL in input/output Makes static analysers happy M src/lib-master/master-login-auth.c 2016-08-16 14:46:08 +0300 Aki Tuomi (4ad29d683) auth: Ensure username can't be left unset in APOP Makes static analysers happy M src/auth/mech-apop.c 2016-08-16 14:42:41 +0300 Aki Tuomi (cfdcfc824) imapc: Make sure imail.stream is not NULL Makes static analysers happy M src/lib-storage/index/imapc/imapc-mail.c 2016-08-16 14:39:37 +0300 Aki Tuomi (2fa3e62e4) lib-storage: Make sure data->stream isn't NULL Makes static analysers happy M src/lib-storage/index/index-mail-headers.c 2016-08-16 14:36:07 +0300 Aki Tuomi (3b986520b) auth: Check for NULL auth token Makes static analysers happy M src/auth/mech-dovecot-token.c 2016-08-16 13:49:01 +0300 Aki Tuomi (8d3358d14) lib: Fix SENTRY_CHAR to different kind of number Makes static analysers happier M src/lib/test-mempool-alloconly.c 2016-08-16 13:46:09 +0300 Aki Tuomi (6eeed94a5) lib-http: Ensure fstream is not NULL in test Makes static analysers happier M src/lib-http/test-http-payload.c 2016-08-16 13:44:27 +0300 Aki Tuomi (d9ee2f9fb) lib-index: Do not do pointless memmove Makes static analysers happier, since moving the data when days is 0 or days is 8 is effectively non-op. M src/lib-index/mail-index-transaction-update.c 2016-08-16 13:31:48 +0300 Aki Tuomi (05448f7b2) test-priorityq: Ensure item is not NULL Makes static analysers happy M src/lib/test-priorityq.c 2016-08-16 13:30:36 +0300 Aki Tuomi (e07ae9667) md5: Initialize block Makes static analysers happy M src/lib/md5.c 2016-08-16 17:15:16 +0300 Timo Sirainen (564171184) config: Fixed pkgsysconfdir path in ssl_dh warnings. M src/config/Makefile.am 2016-08-16 12:41:00 +0300 Aki Tuomi (551f3b2eb) doveconf: Fix ssl_dh parameter handling some more Move empty check to master-service ssl settings, also handle ENOENT in read as well. Do not touch the setting if it could not be composed due to no such file. M src/config/config-request.c M src/config/old-set-parser.c M src/lib-master/master-service-ssl-settings.c 2016-08-16 12:28:27 +0300 Aki Tuomi (ef55b1574) doveconf: hide ssl_key and ssl_dh without -P M src/config/doveconf.c 2016-08-16 14:53:24 +0300 Timo Sirainen (2e441a8e3) lib-storage: If chdir to home doesn't work, chdir to root instead. Most importantly this fixes unlink_directory() when current directory after dropping privileges can't be open()ed. M src/lib-storage/mail-storage-service.c 2016-08-16 14:04:13 +0300 Timo Sirainen (617862032) lib-storage: Minor error message fix M src/lib-storage/list/mailbox-list-delete.c 2016-08-16 11:05:25 +0300 Timo Sirainen (099737fac) lib-mail: Compiling fix for message-snippet change - U'x' isn't standard. M src/lib-mail/message-snippet.c 2016-03-29 22:30:17 +0200 nikwrt (d5db0fd38) fts-squat: fix Corrupted squat uidlist bug M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-trie.h M src/plugins/fts-squat/squat-uidlist.c 2016-08-16 10:11:04 +0300 Aki Tuomi (de4869f23) config: Only require ssl_dh is ssl is turned on M src/config/config-request.c 2016-08-15 19:22:31 +0300 Aki Tuomi (73083841b) lib-mail: Fix snippet generation Now we won't add leading whitespace for no reason, and also strip BOM when found. M src/lib-mail/message-snippet.c 2016-08-15 13:30:44 +0300 Aki Tuomi (902677f2e) dcrypt: Fix encrypted test keys M src/lib-dcrypt/test-crypto.c 2016-08-15 11:32:31 +0300 Aki Tuomi (8d9ee7e1c) dcrypt: Update v2 sample M src/lib-dcrypt/sample-v2.asc 2016-08-15 11:27:04 +0300 Aki Tuomi (36c6e4995) dcrypt: Retrieve key length correctly M src/lib-dcrypt/dcrypt-openssl.c 2016-08-13 02:26:16 +0300 Martti Rannanjärvi (0206dc57f) lib-storage: remove set_cache_corrupted_reason from mail_vfuncs Change set_cache_corrupted signature to what set_cache_corrupted_reason used to be. M src/imap/imap-fetch-body.c M src/lib-imap-storage/imap-msgpart.c M src/lib-storage/fail-mail.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/istream-mail.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/plugins/virtual/virtual-mail.c 2016-08-13 14:31:08 +0300 Timo Sirainen (196a07da7) lib: Avoid compiler warning if off_t has the same size as ssize_t. M src/lib/mmap-util.c 2016-08-13 01:18:03 +0300 Martti Rannanjärvi (436adac81) lib-storage: remove mailbox-recent-flags.h from index-storage.h M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-sync.c M src/plugins/virtual/virtual-sync.c 2016-08-13 14:16:55 +0300 Timo Sirainen (e6c139397) dsync: Further fixes to received_timestamp and virtual_size parsing (-t and -S parameters) M src/doveadm/dsync/dsync-ibc-stream.c 2016-08-12 23:57:59 +0300 Martti Rannanjärvi (6e2856a5b) lib: move sort and search from strfuncs.h to sort.h M src/doveadm/doveadm.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/lib-imap-client/imapc-msgmap.c M src/lib-mail/istream-header-filter.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/mailbox-header.c M src/lib/Makefile.am M src/lib/module-dir.c A src/lib/sort.c M src/lib/sort.h M src/lib/strfuncs.c M src/lib/strfuncs.h M src/plugins/acl/acl-backend.c M src/plugins/fts-squat/squat-uidlist.c 2016-08-13 00:20:43 +0300 Martti Rannanjärvi (1ae87afde) auth: remove #define default_cache_key cache_key M src/auth/passdb.h M src/auth/userdb.h 2016-08-13 00:35:23 +0300 Martti Rannanjärvi (28f18734b) lib-http: rename http_header_field.key to name M src/lib-http/http-header.c M src/lib-http/http-header.h 2016-08-13 00:50:57 +0300 Martti Rannanjärvi (62ab347bb) lib-http: remove http_header_field from http_response M src/lib-http/http-response-parser.c M src/lib-http/http-response.h 2016-08-13 01:02:42 +0300 Martti Rannanjärvi (26449edd3) lib-lda: remove obsolete smtp-client code M src/lib-lda/smtp-client.c M src/lib-lda/smtp-client.h 2016-08-13 01:30:51 +0300 Martti Rannanjärvi (153e08d8f) lib-storage: remove obsolete constants M src/lib-storage/mail-error.h 2016-08-13 02:10:52 +0300 Martti Rannanjärvi (bef286ce1) lib-storage: remove obsolete MAIL_FETCH_UIDL_FILE_NAME M src/lib-storage/mail-storage.h 2016-08-13 01:00:13 +0300 Timo Sirainen (18e4afdd3) dsync: Added missing fields to ibc-stream. M src/doveadm/dsync/dsync-ibc-stream.c 2016-08-12 01:24:16 +0200 Stephan Bosch (a9a928e40) lib: Implemented i_stream_create_copy_from_data(). Unlike i_stream_create_from_data(), this function makes a copy of the provided data block. This way, the application does not need to worry about keeping it allocated for the lifetime of the stream. The copied data is allocated durably on the system pool and freed once the stream is destroyed. M src/lib/istream-data.c M src/lib/istream.h 2016-07-25 10:24:44 +0300 Martti Rannanjärvi (76b002343) lib,lib-test: stop calling memcmp and memcpy with NULL in tests M src/lib-test/test-common.c M src/lib/test-istream-base64-decoder.c M src/lib/test-istream-crlf.c 2016-07-25 10:21:43 +0300 Martti Rannanjärvi (d4488f314) lib-mail: stop calling str_append_n and memcmp with NULL in tests M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-parser.c 2016-07-22 11:23:11 +0300 Martti Rannanjärvi (651e19486) lib: iterate all fds in fd_debug_verify_leaks, fail with i_fatal There is no benefit in failing with i_panic here since the error is most likely not in the stack trace here. M src/lib/fd-close-on-exec.c 2016-07-19 18:34:08 +0300 Martti Rannanjärvi (39d97b496) lib: stop using first_fd as loop counter in fd_debug_verify_leaks Use a separate int fd to iterate [first_fd, last_fd] instead. M src/lib/fd-close-on-exec.c 2016-08-08 13:12:15 +0300 Timo Sirainen (0ee8b8cf1) Moved cc-wrapper.sh handling to dovecot.m4 When configuring Dovecot --without-shared-libs and pointing external plugins to uninstalled sources --with-dovecot, any binaries complied for plugins weren't using cc-wrapper.sh, which could have caused runtime failures when they attempted to load plugins dynamically. Now it's possible to add DC_CC_WRAPPER to plugins' configure.ac to build with the cc-wrapper.sh. M Makefile.am D cc-wrapper.sh.in M configure.ac M m4/dovecot.m4 2016-08-11 14:34:05 +0300 Aki Tuomi (cd24dc219) configure: Fix dcrypt build conditionals M m4/ssl.m4 M src/lib-dcrypt/Makefile.am 2016-08-10 15:40:23 +0300 Martti Rannanjärvi (fd0146e60) lib-storage: don't crash when pop3c-client timeouts M src/lib-storage/index/pop3c/pop3c-client.c 2016-08-11 12:46:42 +0300 Aki Tuomi (2511d4ccc) doveadm-dump: Add missing include M src/doveadm/doveadm-dump-dcrypt-key.c 2016-08-11 17:27:24 +0300 Timo Sirainen (b544772a9) -Wstrict-bool warning fixes M src/doveadm/doveadm-auth-server.c M src/doveadm/doveadm-dump-dcrypt-file.c M src/lib-ssl-iostream/iostream-openssl-context.c 2016-08-11 17:23:48 +0300 Timo Sirainen (11566139f) doveadm sync: Fixed -S parameter parsing to actually work. M src/doveadm/doveadm-dsync.c 2016-07-01 14:30:24 +0300 Timo Sirainen (ae949831f) doveadm sync/backup: Added -S parameter to skip too large mails. M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2016-07-13 09:51:08 +0300 Aki Tuomi (a3783f8a3) auth-db-dict: Allow key name expansion This allows expansion of dictionary keys based on userdb variables on dict lookup mapping. Example: key userdb { key = %{userdb:nspace:default}/userdb format = json } M src/auth/db-dict.c 2016-08-09 18:29:19 +0300 Phil Carmody (bd1e1a972) lib-test: test-exit helper to stop valgrind complaining about fork()s fork()s that want to _exit() will cause valgrind's full memory leak checker to complain a lot - this performs a quick cleanup first. Before: phil@phil:~/repos/dovecot-core$ valgrind --trace-children=yes --leak-check=full --show-leak-kinds=all src/lib/test-lib --match unix ==19576== total heap usage: 4 allocs, 0 frees, 17,858 bytes allocated istream unix ......................................................... : ok 0 / 1 tests failed ==19575== total heap usage: 7 allocs, 7 frees, 19,327 bytes allocated After: phil@phil:~/repos/dovecot-core$ valgrind --trace-children=yes --leak-check=full --show-leak-kinds=all src/lib/test-lib --match unix istream unix ......................................................... : ok ==4993== total heap usage: 4 allocs, 4 frees, 17,858 bytes allocated 0 / 1 tests failed ==4992== total heap usage: 7 allocs, 7 frees, 19,327 bytes allocated Signed-off-by: Phil Carmody M src/lib-test/test-common.c M src/lib-test/test-common.h M src/lib/test-istream-unix.c 2016-08-09 11:48:10 +0300 Aki Tuomi (c281d6630) openssl: Fix v1.1 compability M src/lib-dcrypt/dcrypt-openssl.c M src/lib-ssl-iostream/dovecot-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl.c M src/login-common/ssl-proxy-openssl.c 2016-08-08 15:31:50 +0300 Aki Tuomi (345f36ebc) OpenSSL: link against OpenSSL libs explicitly M src/lib-dcrypt/Makefile.am M src/lib-ssl-iostream/Makefile.am 2016-07-23 23:40:15 +0300 Martti Rannanjärvi (35de0999d) doveadm: add doveadm-dump-dcrypt-key M doc/man/doveadm-dump.1.in M src/doveadm/Makefile.am A src/doveadm/doveadm-dump-dcrypt-key.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-dump.h 2016-06-07 14:54:43 +0300 Aki Tuomi (42cb77985) config: Use ssl-parameters.dat if ssl_dh is missing M src/config/Makefile.am M src/config/config-request.c M src/config/old-set-parser.c M src/config/old-set-parser.h M src/lib-master/master-service-ssl-settings.c 2016-03-03 12:41:24 +0200 Aki Tuomi (bb5eac87b) ssl-proxy: Use ssl_dh setting from config M src/login-common/ssl-proxy-openssl.c 2016-03-03 12:41:12 +0200 Aki Tuomi (878734e3d) lib-master: Load DH string from config file M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h M src/lib-master/master-service-ssl.c 2016-03-03 12:40:38 +0200 Aki Tuomi (61969c307) lib-ssl-iostream: Read dh parameters from PEM string M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-ssl.h 2016-03-03 11:55:59 +0200 Aki Tuomi (00b722cca) dovecot: Remove ssl-params M configure.ac M src/Makefile.am M src/lib-ssl-iostream/Makefile.am M src/lib-ssl-iostream/iostream-openssl-context.c D src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h D src/ssl-params/Makefile.am D src/ssl-params/main.c D src/ssl-params/ssl-params-settings.c D src/ssl-params/ssl-params-settings.h D src/ssl-params/ssl-params.c D src/ssl-params/ssl-params.h 2016-08-10 19:15:56 +0300 Timo Sirainen (5b5da56e4) quota: If quota lookup updates vsize header, lock it earlier to avoid a deadlock. M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2016-08-10 19:13:09 +0300 Timo Sirainen (d6b606142) quota: Fixed handling when mail size lookup fails due to mail already being expunged. We don't want to fail it as a quota allocation failure, but just pass through the "mail is expunged" error to the original caller. M src/plugins/quota/quota.c 2016-08-10 17:56:14 +0300 Timo Sirainen (cf1b9b686) dict-client: Improved timeout error message. M src/lib-dict/dict-client.c 2016-08-10 17:54:29 +0300 Timo Sirainen (d951320d4) lib: Added connection_input_timeout_reason() M src/lib/connection.c M src/lib/connection.h 2016-08-10 17:44:26 +0300 Timo Sirainen (2c5c70e12) lib: Added connection.connect_started/finished timestamps. M src/lib/connection.c M src/lib/connection.h 2016-08-11 03:40:58 +0200 Stephan Bosch (22140eb9d) Fixed copyright notices. M src/auth/password-scheme-pbkdf2.c 2016-08-10 23:53:48 +0300 Timo Sirainen (287b5ba23) lib-storage: Added mail_user_set_plugin_getenv_bool() M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2016-08-10 12:01:50 +0300 Aki Tuomi (66c87722e) global: Update mailbox_attribute_get API usage M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/lib-imap-storage/imap-metadata.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-storage.h M src/plugins/push-notification/push-notification-driver-ox.c 2016-08-04 09:51:40 +0300 Aki Tuomi (9f37ef2a9) lib-storage: Change mailbox_attribute_get* API lib-storage/mailbox-attribute.h: mailbox_attribute_get() and mailbox_attribute_get_stream() now has struct mailbox_transaction_context as their first parameter. This isn't good for performance, because opening a transaction requires opening mailbox indexes first. But reading attributes wouldn't actually require opening the indexes, so this is just wasteful. M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-storage.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mailbox-attribute-internal.c M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-attribute.h 2016-08-09 18:06:25 +0300 Timo Sirainen (ad759d5e8) quota: Don't get message sizes when updating mailbox that ignores quotas. Nothing is done with the size anyway. M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2016-08-10 19:07:18 +0300 Timo Sirainen (8e4f0949e) lib-storage: Fixed potential .vsize.lock deadlock. M src/lib-storage/index/index-storage.c 2016-08-10 17:15:21 +0300 Timo Sirainen (749b9176d) auth: Removed redundant noauthenticate checks. Now that noauthenticate also adds nopassword field. M src/auth/auth-request.c M src/auth/passdb-sql.c 2016-08-10 17:14:28 +0300 Timo Sirainen (91272432c) auth: When setting noauthenticate=yes, also set nopassword=yes There are various places which check only "nopassword", but not "noauthenticate". M src/auth/auth-request.c 2016-08-10 17:41:51 +0300 Timo Sirainen (a238c6fed) lib: Added connection.last_input_tv for more accuracy M src/lib/connection.c M src/lib/connection.h 2016-08-10 17:37:53 +0300 Timo Sirainen (a2d962e72) lib: connection_disconnect() now resets last_input If we reconnect, its value would otherwise be wrong. M src/lib/connection.c 2016-08-10 17:11:13 +0300 Timo Sirainen (cbcddb51c) auth: Blocking userdb lookup shouldn't reset extra fields. M src/auth/userdb-blocking.c 2016-08-10 14:05:25 +0300 Timo Sirainen (c8eb8314a) login-proxy: Fixed assert-crash/hang on connect errors. The internal BUG would have left the host hanging. "Host is down" or any immediate connect() error would have assert-crashed with: Panic: file login-proxy.c: line 470 (login_proxy_disconnect): assertion failed: (proxy->state_rec->num_waiting_connections > 0) M src/login-common/login-proxy.c 2016-08-10 01:38:26 +0300 Timo Sirainen (accba2f17) lmtp: Fixed using default port 24 Broken by dfe53c824. M src/lmtp/commands.c 2016-08-08 19:25:05 +0300 Timo Sirainen (2593d6105) doveadm: Fixed -A and -u wildcard handling with server connections. M src/doveadm/client-connection.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-08-08 19:24:08 +0300 Timo Sirainen (4e7bbab85) doveadm: Fixed hanging when printing output from different server connections. M src/doveadm/server-connection.c 2016-08-08 19:22:15 +0300 Timo Sirainen (bab7538be) doveadm: Avoid recursively calling server input callback Probably doesn't fix anything, but it could cause confusing backtraces at least. M src/doveadm/server-connection.c 2016-08-08 19:16:57 +0300 Timo Sirainen (be25bbb90) doveadm-server: Fixed potential hang when reading replies to multiple commands M src/doveadm/server-connection.c 2016-08-08 19:11:16 +0300 Timo Sirainen (483f53880) doveadm: Revert earlier NUL-printing change 793b024bf. It changes the output in ways that are a bit difficult to fix. Also the the important part where NULs printing is useful is in a message body, which should work even without this change. So for now just revert it. M src/doveadm/server-connection.c 2016-08-08 17:56:48 +0300 Timo Sirainen (c7aa61396) lib-auth: Avoid crash after user iteration if connection failed. M src/lib-auth/auth-master.c 2016-08-08 17:13:15 +0300 Timo Sirainen (60eebc543) doveadm: Removed unused code. M src/doveadm/doveadm-mail-save.c 2016-08-08 16:15:26 +0300 Timo Sirainen (94a1fedb5) dsync: Fixed empty-header-workaround M src/doveadm/dsync/dsync-mailbox-import.c 2016-08-08 16:06:50 +0300 Timo Sirainen (905780639) dsync_features: For consistency use '-' and not '_' Other _features and _workarounds settings use also '-'. M src/doveadm/doveadm-settings.c 2016-08-08 15:49:13 +0300 Timo Sirainen (431c0aba5) lib: Small improvements to iostream-temp unit test. M src/lib/test-iostream-temp.c 2016-08-08 14:39:39 +0300 Timo Sirainen (793b024bf) doveadm: When printing input from doveadm-server, don't truncate at NUL. M src/doveadm/server-connection.c 2016-08-08 13:21:34 +0300 Aki Tuomi (65a8a3c66) doveadm: Pass connection to mail context M src/doveadm/client-connection.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-mail.c 2016-08-08 11:38:54 +0300 Aki Tuomi (cde4b8118) doveadm: Use str_append_tabescaped_n M src/doveadm/doveadm-print-server.c 2016-08-08 11:23:02 +0300 Aki Tuomi (51aceed49) lib: Add binary-safe tabescape M src/lib/strescape.c M src/lib/strescape.h 2016-08-08 09:29:26 +0300 Aki Tuomi (9ca065aa3) doveadm: Streamline tabunescape M src/doveadm/server-connection.c 2016-08-08 12:36:48 +0300 Timo Sirainen (b3db9827b) doveadm: Extra safety - initialize cmd_input_fd to -1 Just to be sure it's never attempted to be accessed as 0 (stdin) before being initialized. (It didn't happen with current code as far as I know.) M src/doveadm/doveadm-mail.c 2016-07-12 13:31:32 +0300 Phil Carmody (6335b1be3) lib: tests - give the tests names, using the new macros The lists of test function declarations and of test functions to call was basically the same list. Use the new test macros to squash them into one list, and then chose to name all the tests, so that you can select which ones to run. This can simplify the debug cycle when some of the tests are lengthy. e.g.: phil@phil:~/repos/dovecot-core$ src/lib/test-lib --match crc crc32 ................................................................ : ok 0 / 1 tests failed src/lib is clearly the most complicated case, conversions of others where filtering would be useful should be trivial following this example. Signed-off-by: Phil Carmody M .gitignore M src/lib/Makefile.am M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-lib.inc 2016-07-12 13:28:54 +0300 Phil Carmody (d48ce437e) lib-test: enable naming of tests, such that only a subset is run How to use these will become clear in a subsequent patch. Even if you don't want to name tests, the macros can reduce redundancy in the code, as the list of test function prototypes and the list of test functions to call become the same lists, expanded through 2 different macros. Signed-off-by: Phil Carmody M src/lib-test/test-common.c M src/lib-test/test-common.h 2016-06-01 13:57:34 +0300 Phil Carmody (0e0a294cf) lib-test: improve expected error handling If we expect a specific error string, then when we see it, suppress it. We do not suppress errors expected by count, because if we get unexpected errors, then we do not want them suppressed, and we have no way of distinguishing between the expected and unexpected errors. This of course favours the use of the expected string version of the helper, but alas that's not always usable, as you can only expect one at a time. Additionally, if we failed to see an expected message, then when we no longer expect to see it, reset the expected message state to not cascade further test assertion failures. Signed-off-by: Phil Carmody Conflicts: src/lib-test/test-common.c M src/lib-test/test-common.c M src/lib-test/test-common.h M src/lib/test-failures.c 2016-08-03 12:46:21 +0300 Martti Rannanjärvi (ceee39b0d) doveadm: add doveadm dump dcrypt-file M doc/man/doveadm-dump.1.in M src/doveadm/Makefile.am A src/doveadm/doveadm-dump-dcrypt-file.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-dump.h 2016-08-06 22:12:13 +0300 Martti Rannanjärvi (ebd1c50bc) lib-dcrypt: make decrypt_istream format and flags visible M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/istream-decrypt.h 2016-08-06 22:07:00 +0300 Martti Rannanjärvi (17fbd200b) lib-dcrypt: add dcrypt-iostream.h Move everything from dcrypt-iostream-private.h and enum io_stream_encrypt_flags to the new dcrypt-iostream.h file. M src/lib-dcrypt/Makefile.am D src/lib-dcrypt/dcrypt-iostream-private.h A src/lib-dcrypt/dcrypt-iostream.h M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/ostream-encrypt.c M src/lib-dcrypt/ostream-encrypt.h M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c 2016-08-05 15:21:29 +0300 Aki Tuomi (afd6d387e) dsync: Add support for features Add empty_header_workaround as first feature M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/doveadm.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2016-04-09 18:21:23 -0500 J. Nick Koston (0d1d48593) quota_clone plugin: quota_clone_mail_user_created warned without debug "The quota_clone_dict setting is missing from configuration" warning would be thrown when debug mode was not enabled. This warning happens under normal circumstances when prefix="" namespace is not defined (usually when set to INBOX.) See http://dovecot.org/list/dovecot-cvs/2012-October/021981.html for more details on the automagic prefix="" namespace. This change suppresses the spurious warning. M src/plugins/quota-clone/quota-clone-plugin.c 2016-04-09 13:43:16 +0200 Wido den Hollander (dfe53c824) lmtp: Use port 24 if no port has been provided This allows using the LMTP, IMAP and POP3 proxy on the same Dovecot installation without the userdb providing the port to connect to. TCP port 24 is registered at IANA as: "any private mail system" LMTP being the Local Mail Transfer Protocol classifies as a private mail system and thus justifies the usage of port 24. Prior to this patch the LTMP client would connect to TCP port 0 by default if the userdb did not provide a port to connect to. M src/lmtp/commands.c 2016-08-06 17:59:10 +0200 Stephan Bosch (0b9667003) istream-base64-encoder: Implemented proper stat function that returns the encoded size of the stream. For Base64 encoding, the size of the encoded data can be determined from the input data size exactly. M src/lib/istream-base64-encoder.c M src/lib/test-istream-base64-encoder.c 2016-08-05 22:57:02 +0300 Timo Sirainen (48aee87c1) dict-client: Fixed error message for failed synchronous dict_lookup() The error message was allocated from data stack, but freed too early. M src/lib-dict/dict-client.c 2016-08-04 22:15:25 +0300 Timo Sirainen (58764929b) lib-dcrypt: Fixed test-stream unit test not to leak memory Broken by previous change. M src/lib-dcrypt/test-stream.c 2016-08-04 21:51:18 +0300 Timo Sirainen (a9e71f5a0) lib-auth: Unescape passdb/userdb extra fields. This only affected \001, \t, \r and \n characters which were left tab-escaped (e.g. \t as "\001t"). M src/lib-auth/auth-master.c 2016-08-04 21:44:08 +0300 Timo Sirainen (b671974c5) lib-dcrypt: Added unit tests to nonblocking istream-decrypt M src/lib-dcrypt/test-stream.c 2016-08-04 21:38:30 +0300 Timo Sirainen (12fed8013) lib-dcrypt: test-stream writes now to buffer, not to temp-iostream This simplifies the following change. M src/lib-dcrypt/test-stream.c 2016-08-04 21:29:14 +0300 Timo Sirainen (4930d4fef) lib-dcrypt: Support nonblocking istreams. M src/lib-dcrypt/istream-decrypt.c 2016-08-04 19:45:35 +0300 Martti Rannanjärvi (68f961aca) lib-dcrypt: add 0 to 400 byte stream test Remove 8 byte speacial case also. M src/lib-dcrypt/test-stream.c 2016-08-04 18:35:53 +0300 Martti Rannanjärvi (23386f0e8) lib-dcrypt: error message on missing decrypt key or password Return a sensible error message when loading an encrypted private key is attempted but the decrypt key or password is missing. M src/lib-dcrypt/dcrypt-openssl.c 2016-08-04 17:11:20 +0300 Timo Sirainen (5b6bfa394) lib-http: Support per-request timeout and max_attempts M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2016-08-02 23:25:57 +0300 Timo Sirainen (c3a2a487e) director: Throttle user move/kill failure errors after 100/sec. If it happened to a lot of users, they can take a lot of space in logs. M src/director/director.c M src/director/director.h M src/director/main.c 2016-08-02 23:14:23 +0300 Timo Sirainen (ed1e90943) lib: Added log throttling API. M src/lib/Makefile.am A src/lib/log-throttle.c A src/lib/log-throttle.h M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-log-throttle.c 2016-08-04 17:39:02 +0300 Martti Rannanjärvi (7e3adf79e) lib-dcrypt: don't give strstr NULL in test-crypto M src/lib-dcrypt/test-crypto.c 2016-07-15 09:53:12 +0200 x16a0 (42c773260) Fixed searching multiple mailboxes When searching multiple mailboxes, a condition to search these mailboxes is added to the query string. However, this condition has to be separated from the preceding condition by a space (a '+' in this case, as it's encoded); otherwise, Solr considers it to be part of the previous condition, in which case it will fail to parse it properly. Therefore, this patch adds that one missing character so it works again. M src/plugins/fts-solr/fts-backend-solr.c 2016-08-02 22:31:50 +0300 Timo Sirainen (9224645cf) director: Added more debug information to "Ping timed out" error M src/director/director-connection.c 2016-08-04 20:21:27 +0300 Aki Tuomi (43ca8bce8) istream-decrypt: Fix error handling in stream header M src/lib-dcrypt/istream-decrypt.c 2016-08-04 19:39:56 +0300 Aki Tuomi (b91d91633) lib-dcrypt: Skip checks if no backend found M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c 2016-08-04 12:57:58 +0300 Martti Rannanjärvi (fadd4c929) lib-dcrypt: drop format from key_load_public M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c 2016-08-04 12:52:20 +0300 Martti Rannanjärvi (401160c5c) lib-dcrypt: drop format from key_load_private M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c 2016-08-04 12:19:05 +0300 Martti Rannanjärvi (e18373bc5) lib-dcrypt: get_info in openssl_load_private_key Use dcrypt_openssl_key_string_get_info to determine the key format instead of taking it as a parameter. M src/lib-dcrypt/dcrypt-openssl.c 2016-08-04 10:54:20 +0300 Martti Rannanjärvi (2931ea8e1) lib-dcrypt: get_info in openssl_load_public_key Use dcrypt_openssl_key_string_get_info to determine the key format instead of taking it as a parameter. M src/lib-dcrypt/dcrypt-openssl.c 2016-08-03 17:55:15 +0300 Martti Rannanjärvi (0be999755) lib-dcrypt: change v2 key field separator to ':' M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/test-crypto.c 2016-08-04 15:57:22 +0300 Aki Tuomi (b617e6cf3) lib-dcrypt: Do not unref key twice M src/lib-dcrypt/dcrypt-openssl.c 2016-08-03 10:14:35 +0300 Aki Tuomi (dd49f9933) lib-dcrypt: Handle short reads in header correctly M src/lib-dcrypt/istream-decrypt.c 2016-07-25 14:04:47 +0300 Martti Rannanjärvi (e78065a71) lib-dcrypt: add crashing 8 byte garbage read test M src/lib-dcrypt/test-stream.c 2016-07-15 16:31:01 +0300 Aki Tuomi (cce36a2c5) dcrypt: Update API for testing M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c 2016-07-15 16:30:51 +0300 Aki Tuomi (55a7fe1e4) dcrypt-iostream: Ref/unref keys M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/ostream-encrypt.c 2016-07-15 16:27:03 +0300 Aki Tuomi (a53b81d08) dcrypt: Use refcounting on keys M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h 2016-08-04 08:55:12 +0300 Aki Tuomi (f9258697f) last-login: Add error handling for commit M src/plugins/last-login/last-login-plugin.c 2016-08-03 13:18:17 +0300 Timo Sirainen (feda87200) lib-index: Fixed debug logging. M src/lib-index/mail-cache-lookup.c 2016-07-29 01:02:29 +0300 Timo Sirainen (f883b315c) lib-index: If mail_debug=yes, log cache compressions. M src/lib-index/mail-cache-compress.c M src/lib-index/mail-index.h M src/lib-storage/index/index-storage.c 2016-07-25 14:20:05 -0400 Timo Sirainen (02b78558d) Use mail_get_*stream_because() wherever possible. M src/lib-imap-storage/imap-msgpart.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search.c M src/lib-storage/mail-copy.c M src/plugins/fts/fts-build-mail.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/pop3/pop3-commands.c 2016-07-29 00:37:07 +0300 Timo Sirainen (99d5f0bf1) lib-index: Added mail_cache_get_missing_reason() M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache.h 2016-07-25 14:16:39 -0400 Timo Sirainen (2c8ca7e88) lib-storage: Added mail_get_stream_because() and mail_get_hdr_stream_because() With mail_debug=yes each mail access is now logged with a reason. This can be helpful when figuring out why something isn't in dovecot.index.cache. M src/lib-storage/index/index-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/lib-storage/mail.c 2016-08-02 21:16:15 +0300 Timo Sirainen (350d6194f) doveadm proxy kick: Fixed output message. M src/doveadm/doveadm-proxy.c 2016-08-02 21:10:42 +0300 Timo Sirainen (85b6e401b) lib-lda: Support %{storage_id} in deliver_log_format M src/lib-lda/mail-deliver.c 2016-08-02 21:09:34 +0300 Timo Sirainen (6f3244c59) lib-lda: Code cleanup - move code to mail_deliver_open_mail() No functional changes. On its own this is a rather useless cleanup, but simplifies the next patch. M src/lib-lda/mail-deliver.c 2016-08-02 20:09:49 +0300 Timo Sirainen (50da38c08) imap: When un-hibernating, send notification to imap-hibernate process earlier. The initialization shouldn't take a long time, but there's really no need to keep imap-hibernate itself waiting (and maybe timing out) if it does. M src/imap/imap-master-client.c 2016-08-02 20:03:01 +0300 Timo Sirainen (c7a9a1fdd) imap-hibernate: If un-hibernation failed due to timeout, log whether we saw version line. Could help with debugging. M src/imap-hibernate/imap-master-connection.c 2016-07-19 10:16:17 -0600 Timo Sirainen (170624050) imap-hibernate: If imap-master socket is busy, retry un-hibernation later. M src/imap-hibernate/imap-client.c M src/imap-hibernate/imap-client.h M src/imap-hibernate/imap-master-connection.c M src/imap-hibernate/imap-master-connection.h M src/imap-hibernate/main.c 2016-08-02 13:41:07 +0300 Timo Sirainen (e539ff946) lib: var_has_key() properly ignores key=='\0' now. M src/lib/test-var-expand.c M src/lib/var-expand.c M src/lib/var-expand.h 2016-08-02 13:38:25 +0300 Timo Sirainen (7a556ac46) lib: var_get_key() didn't handle %{long_variables} correctly This also fixes var_has_key()'s long_key handling. M src/lib/test-var-expand.c M src/lib/var-expand.c M src/lib/var-expand.h 2016-08-02 01:04:57 +0300 Timo Sirainen (6d38e3f15) --without-shared-libs was linking libdovecot.so to mail binaries. Broken by e42dd7149. M src/lib-storage/Makefile.am 2016-07-23 12:02:29 -0400 Timo Sirainen (a63cd8412) lib-fs: Added fs_get_nlinks() Although fs_stat() could return this, its caller can't indicate whether it actually wants the link count. Usually fs_stat() is used only to get the file's size. In some backends it's not cheap to get the link count, so adding this function allows the caller to explicitly ask for it. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-dict.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-test.c M src/lib-fs/fs-wrapper.c M src/lib-fs/fs-wrapper.h M src/plugins/fs-compress/fs-compress.c 2016-07-22 10:47:20 +0300 Martti Rannanjärvi (6657aee0b) lib: return non-NULL pointer in i_stream_get_data when size is 0 M src/lib/istream.c M src/lib/istream.h 2016-07-25 17:41:36 -0400 Timo Sirainen (878c4d5ee) dict-client: Don't keep a request timeout when there are only background commands. M src/lib-dict/dict-client.c 2016-07-25 17:32:11 -0400 Timo Sirainen (8604a0675) dict-client: When we get disconnected, reconnect and re-send commands. M src/lib-dict/dict-client.c 2016-07-25 17:08:18 -0400 Timo Sirainen (d0fa29db7) dict-client: Improved timeout error message M src/lib-dict/dict-client.c 2016-08-02 01:02:59 +0300 Timo Sirainen (ee8c7d8ee) dict-client: Fixed hang in async iteration if it failed. M src/lib-dict/dict-client.c 2016-08-01 22:18:08 +0300 Timo Sirainen (13a2b020c) quota: Log an error if mail's size can't be read. We were still logging "Internal quota calculation error" but not necessarily any other reason. M src/plugins/quota/quota.c 2016-07-23 23:58:46 +0300 Martti Rannanjärvi (9745f03bb) lib,lib-test: i_warning to i_debug on alloc growing messages M src/lib-test/test-common.c M src/lib/data-stack.c M src/lib/mempool-alloconly.c 2016-07-29 00:59:43 +0300 Timo Sirainen (62736944d) lib-storage: mbox_min_index_size setting didn't work correctly. M src/lib-storage/index/index-storage.c 2016-07-28 21:15:16 +0300 Timo Sirainen (9200ff3f7) lib-storage: Don't crash fetching body.snippet when multipart/alternative part has no Content-Type M src/lib-storage/index/index-mail.c 2016-07-26 13:54:37 -0400 Timo Sirainen (e03bbb0f2) imap: Fixed assert-crash when detecting if client IO is hanging. This was broken by 89d88a5bc. M src/imap/imap-client.c 2016-07-26 13:53:56 -0400 Timo Sirainen (3b782d7e8) auth: Fixed caching to support %{passdb} and %{userdb} M src/auth/auth-cache.c M src/auth/test-auth-cache.c 2016-07-26 13:52:44 -0400 Timo Sirainen (6dd436dbf) auth: Set userdb_lookup flag correctly for blocking userdb lookups. This caused at least userdb-related logging to log the passdb instead. M src/auth/auth-worker-client.c 2016-07-26 13:52:20 -0400 Timo Sirainen (415441507) auth: Code cleanup - use const for struct auth_request. M src/auth/auth-request-var-expand.c M src/auth/auth-request-var-expand.h 2016-07-25 14:09:38 -0400 Timo Sirainen (782a1e245) lazy-expunge: If lazy-expunge transaction failed already, stop further expunges. Most importantly if the lazy-expunge mailbox opening fails, we don't now retry opening the mailbox for each expunged mail. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-07-24 18:26:50 -0400 Timo Sirainen (5140f38cb) lib: Potential compiling fix. STATIC_ARRAY apparently requires that the parameter is named in some gcc versions? In any case doesn't hurt. M src/lib/sha1.h 2016-07-13 09:46:08 +0200 Stephan Bosch (e6bc5e739) Calling i_stream_next_line() on a chain stream would sometimes erroneously use the stream->w_buffer. It used the wrong check to assess whether the w_buffer is usable. The chain stream only uses the w_buffer when partial stream data needs to be merged. Otherwise, a parent stream's buffer is used directly. However, this does not mean that w_buffer will be NULL in that case, which is what i_stream_next_line() assumed. M src/lib/istream.c 2016-07-11 20:27:48 +0300 Timo Sirainen (f52366af6) lib-dcrypt: Allow flushing ostream multiple times. The first time flushes the encryption and the following times just flush the parent stream. M src/lib-dcrypt/ostream-encrypt.c 2016-07-11 20:27:14 +0300 Timo Sirainen (0835df7f2) lib-dcrypt: Improved error message when istream isn't encrypted. M src/lib-dcrypt/istream-decrypt.c 2016-07-19 18:28:06 +0300 Timo Sirainen (cf6118fe7) master: Don't leak master socket to child processes. M src/master/service-listen.c 2016-07-17 13:51:05 -0600 Timo Sirainen (2e6356f8d) fts: Fixed fts_autoindex when no fts_autoindex_exclude settings existed. M src/plugins/fts/fts-storage.c 2016-07-16 11:30:39 -0500 Timo Sirainen (c5d27aee7) lib-dict: Added DICT_COMMIT_RET_WRITE_UNCERTAIN M src/dict/dict-commands.c M src/lib-dict/dict-client.c M src/lib-dict/dict-client.h M src/lib-dict/dict-sql.c M src/lib-dict/dict.h 2016-07-16 11:23:52 -0500 Timo Sirainen (9a3828947) lib-dict: Added enum dict_commit_ret. M src/dict/dict-commands.c M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.h 2016-07-16 09:31:04 -0500 Timo Sirainen (bb2b3656e) lib-sql: Added error_type to commit callback. M src/auth/passdb-sql.c M src/lib-dict/dict-sql.c M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.h 2016-07-15 16:40:31 -0500 Timo Sirainen (5d9ecbcec) cassandra: Support returning SQL_RESULT_ERROR_TYPE_WRITE_UNCERTAIN M src/lib-sql/driver-cassandra.c 2016-07-15 16:40:05 -0500 Timo Sirainen (1601169d6) lib-sql: Added sql_result_get_error_type(). For now the only special error type is SQL_RESULT_ERROR_TYPE_WRITE_UNCERTAIN. M src/lib-sql/sql-api-private.h M src/lib-sql/sql-api.c M src/lib-sql/sql-api.h 2016-07-15 11:31:25 +0300 Aki Tuomi (6c969ac21) auth: Remove i_assert for credentials scheme M src/auth/auth-request.c 2016-07-14 20:53:46 +0200 Stephan Bosch (49f2e4b6d) Added LIBDOVECOT_PUSH_NOTIFICATION_INCLUDE to dovecot.m4. M m4/dovecot.m4 2016-07-14 16:16:52 -0500 Timo Sirainen (ab2f731c4) dict: Fixed crash on iteration handling. M src/dict/dict-commands.c 2016-07-14 07:22:04 -0500 Timo Sirainen (1cfe369d1) dict-client: Improved logging for slow queries. Especially commits now say what the first query within the commit was. M src/lib-dict/dict-client.c 2016-07-14 06:53:54 -0500 Timo Sirainen (0d16e4b4b) doveadm fetch: Fixed body.snippet. M src/doveadm/doveadm-mail-fetch.c 2016-07-13 15:10:57 -0500 Timo Sirainen (a956137aa) dbox: Initialize pop3-uidl header on INBOX creation. This way we don't add any UIDLs to dovecot.index.cache on the first POP3 UIDL access. We'll assume that pop3-uidl header is updated whenever any backend UIDLs are added, which should happen nowadays. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c 2016-07-13 14:07:02 -0500 Timo Sirainen (9342a5f69) lib-storage: Initialize pop3-uidl header also when no backend UIDLs exist. The first time POP3 UIDL command is used, set the header even when there are no backend UIDLs to prevent any further UIDL caching. M src/lib-storage/index/index-pop3-uidl.c 2016-07-11 14:56:41 +0300 Aki Tuomi (e84ffebc2) auth: Fail request if last passdb is noauthenticate M src/auth/auth-request.c 2016-07-11 14:56:25 +0300 Aki Tuomi (ec18e7378) gssapi: Add missing PASSDB_RESULT_NEXT clause M src/auth/mech-gssapi.c 2016-07-11 16:13:28 +0300 Timo Sirainen (185f63aef) lib-fs: Added fs_metadata_init_or_clear() helper M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2016-07-11 14:18:36 +0300 Aki Tuomi (448e068f2) passdb: Skip credentials handling for noauthenticate M src/auth/passdb.c 2016-07-07 08:59:18 +0300 Aki Tuomi (85bc1cc40) lib-dovecot: Turn on RELRO M src/lib-dovecot/Makefile.am 2016-07-11 11:28:10 +0300 Timo Sirainen (a1943bdb8) lib-storage: Fixed crash on subscription listing if subscription refresh fails. M src/lib-storage/list/mailbox-list-iter.c 2016-07-09 20:11:45 +0300 Aki Tuomi (6e5a4cdf7) auth: Skip authentication with noauthenticate M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-worker-client.c M src/auth/passdb-blocking.c M src/auth/passdb-sql.c M src/auth/passdb.h 2016-07-11 11:55:34 +0300 Timo Sirainen (3aae88447) mdbox: Fixed crash when saving POP3 UIDLs to a non-empty mailbox. Fixes assert: Panic: file mdbox-save.c: line 337: unreached M src/lib-storage/index/dbox-multi/mdbox-save.c 2016-07-11 11:40:41 +0300 Timo Sirainen (d546cddd1) pop3c: Fixed crash in syncing when local indexes existed but UIDL wasn't cached. M src/lib-storage/index/pop3c/pop3c-sync.c 2016-07-11 10:22:06 +0300 Timo Sirainen (1c6d55fc2) lmtp: Don't send double-DISCONNECT to anvil. Happened with lmtp_user_concurrency_limit > 0. Fixes errors like: Error: connect limit: disconnection for unknown pid 123 + ident lmtp/username M src/lmtp/commands.c 2016-07-06 23:41:18 +0300 Timo Sirainen (cbe62867a) Compiler warning fix M src/doveadm/doveadm-zlib.c 2016-07-06 15:11:54 +0300 Aki Tuomi (99c74b7e9) m4: Include BINARY_* M m4/dovecot.m4 2016-04-19 16:02:38 +0300 Aki Tuomi (b200bc387) Add PIE and RELRO to binaries M src/anvil/Makefile.am M src/auth/Makefile.am M src/config/Makefile.am M src/dict/Makefile.am M src/director/Makefile.am M src/dns/Makefile.am M src/doveadm/Makefile.am M src/imap-hibernate/Makefile.am M src/imap-login/Makefile.am M src/imap-urlauth/Makefile.am M src/imap/Makefile.am M src/indexer/Makefile.am M src/ipc/Makefile.am M src/lda/Makefile.am M src/lib-dict/Makefile.am M src/lib-ntlm/Makefile.am M src/lib-otp/Makefile.am M src/lmtp/Makefile.am M src/log/Makefile.am M src/master/Makefile.am M src/plugins/fts/Makefile.am M src/plugins/quota/Makefile.am M src/pop3-login/Makefile.am M src/pop3/Makefile.am M src/replication/aggregator/Makefile.am M src/replication/replicator/Makefile.am M src/ssl-params/Makefile.am M src/stats/Makefile.am M src/util/Makefile.am 2016-04-19 14:52:56 +0300 Aki Tuomi (14a7cd466) configure: Check for hardening flags M configure.ac M dovecot-config.in.in A m4/cc_fortify.m4 A m4/cc_pie.m4 A m4/cc_stack_protector.m4 A m4/ld_relro.m4 2016-07-01 03:08:31 +0300 Timo Sirainen (c5924dd8f) global: Removed redundant corking in ostream flush callbacks. M src/director/director-connection.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/server-connection.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/imap-client.c M src/lib-imap-client/imapc-connection.c M src/lib-lda/lmtp-client.c M src/login-common/login-proxy.c M src/pop3/pop3-client.c M src/stats/client.c 2016-07-01 03:03:02 +0300 Timo Sirainen (89d88a5bc) lib: ostream-file now automatically corks during flush callback. M src/lib/ostream-file.c 2016-07-05 18:15:55 +0300 Timo Sirainen (8b3f557cd) fs-sis*: Use fs_wrapper_*() wherever possible M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2016-07-05 18:12:33 +0300 Timo Sirainen (e4d6ec308) fs-sis*: Minor error handling function cleanups. We don't really need to go to the parent fs, so just use what is easiest. M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2016-07-05 18:03:36 +0300 Timo Sirainen (bc5c7fcad) fs-sis*: Removed unnecessary error copying. It was probably needed in the beginning, but nowadays the parent-most fs keeps the error. There's no need to copy it around. M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2016-07-05 17:59:08 +0300 Timo Sirainen (35f48128b) fs-metawrap: Use fs_wrapper_*() wherever possible M src/lib-fs/fs-metawrap.c 2016-07-05 17:55:12 +0300 Timo Sirainen (b8584946d) fs-compress: Use fs_wrapper_*() wherever possible M src/plugins/fs-compress/fs-compress.c 2016-07-05 17:52:00 +0300 Timo Sirainen (edfd00910) lib-fs: Implement all lib-fs functions as wrappers to parent stream. M src/lib-fs/Makefile.am M src/lib-fs/fs-api-private.h A src/lib-fs/fs-wrapper.c A src/lib-fs/fs-wrapper.h 2016-07-06 13:15:22 +0300 Timo Sirainen (1ec1404c0) lib-dcrypt: istream-decrypt now differentiates between temporary errors and corruption. M src/lib-dcrypt/istream-decrypt.c 2016-07-06 13:11:50 +0300 Timo Sirainen (b4fd67490) lib-dcrypt: Set stream_errno on istream-decrypt read failures. Fixes assert-crashes that would happen otherwise. M src/lib-dcrypt/istream-decrypt.c 2016-07-06 13:31:12 +0300 Timo Sirainen (87a6b7df3) lib: Updated istream's stream_errno comments. M src/lib/istream.h 2016-07-06 13:24:03 +0300 Timo Sirainen (ad31916e2) lib-compression: istream-zlib/lzma now differentiates between temporary errors and corruption. M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c 2016-07-05 20:58:29 +0300 Timo Sirainen (bb1da4a63) lib-storage: Clarify that mail_namespace_find_inbox() never returns NULL. If namespaces==NULL, this function isn't even supposed to be called. M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h 2016-07-05 14:41:41 +0300 Aki Tuomi (0a58543e2) passdb-static: Support password scheme This allows password argument to provide scheme instead of defaulting to plain. If no scheme is provided, plain is defaulted. M src/auth/passdb-static.c 2016-07-04 18:25:23 +0300 Aki Tuomi (626098f33) doveadm-pw: Use debug value when loading modules M src/doveadm/doveadm-pw.c 2016-07-04 18:06:56 +0300 Aki Tuomi (d6ff5e9d2) configure: Fix static array check M m4/static_array.m4 2016-07-04 11:57:43 +0300 Martti Rannanjärvi (58562739e) lib-dcrypt: tell in error_r that RSA key has to be converted to pkey M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/test-crypto.c 2016-07-04 15:05:00 +0300 Timo Sirainen (ffd8dc932) master: Add master socket's io listener later. Most importantly this fixes startup failure with kqueue: Panic: kevent(EV_ADD, READ, 56) failed: Bad file descriptor kqueue doesn't survive a fork(), so this change delays its creation until after fork(). M src/master/service-listen.c M src/master/service-monitor.c 2016-07-04 14:44:40 +0300 Timo Sirainen (c4138be2a) master: Make sure stdout isn't closed on startup failures. closing master_fd might have tried to close(0) since it wasn't initialized to -1. M src/master/service.c 2016-07-01 17:42:29 +0300 Timo Sirainen (b11e9673b) dict-client: Attempt to connect to dict socket for 1 second before failing. M src/lib-dict/dict-client.c 2016-07-01 16:37:09 +0300 Timo Sirainen (f733f54c8) lib-http: Clarify response message when retries have happened. "1 attempts" sounds like 1 attempt in total, while this was actually the second attempt. M src/lib-http/http-client-request.c 2016-07-01 16:36:31 +0300 Timo Sirainen (38fa43690) dict-client: Make sure query's start_time is up-to-date. M src/lib-dict/dict-client.c 2016-07-01 16:34:26 +0300 Timo Sirainen (701eb9046) dict-client: Don't log slow background async commit/iteration replies. If a caller has already finished iteration, or does async commit without a callback, it means that it started the query without caring when it finishes. The caller may already have been doing blocking work while waiting for the dict reply. We don't want to log a warning, because it could be completely wrong. M src/lib-dict/dict-client.c M src/lib-dict/dict-private.h M src/lib-dict/dict.c 2016-07-01 16:31:52 +0300 Timo Sirainen (14189e0d0) cassandra: Added debug_queries connect setting. This logs all the queries and how long they took, without having to log all the other Cassandra library debug messages. M src/lib-sql/driver-cassandra.c 2016-07-01 16:31:19 +0300 Timo Sirainen (e401fa68e) cassandra: If query fails, include how long the reply took in the error message. M src/lib-sql/driver-cassandra.c 2016-07-01 16:30:06 +0300 Timo Sirainen (8952d797e) cassandra: Warn if queries take too long (default 5 secs) Can be changed with e.g. "connect = ... warn_timeout=30s" M src/lib-sql/driver-cassandra.c 2016-07-01 16:27:30 +0300 Timo Sirainen (395aa4fe4) LAYOUT=index: Make sure error is preserved if created mailbox can't be added to list index. mailbox_delete() could overwrite the error. M src/lib-storage/list/mailbox-list-index-backend.c 2016-07-01 15:13:55 +0300 Aki Tuomi (78d329771) man: Provide usage for doveadm mailbox update M doc/man/doveadm-mailbox.1.in 2016-07-01 12:23:59 +0300 Timo Sirainen (29026989f) lib-storage: Fixed mailbox_delete_empty() error message when mails exist M src/lib-storage/index/index-storage.c 2016-07-01 11:56:46 +0300 Timo Sirainen (98b7ea174) dict-client: When skipping connect() due to earlier failure, preserve the original error. M src/lib-dict/dict-client.c 2016-07-01 11:41:51 +0300 Timo Sirainen (e13bef0a4) dict-client: If commit fails to send BEGIN, don't try sending anything else. Fixes memory leak and also fixes overwriting the original error message. M src/lib-dict/dict-client.c 2016-07-01 11:12:03 +0300 Timo Sirainen (94b21eb8d) lib-storage: Autoexpunging should ignore nonexistent mailboxes. The check was done too late after recent changes. M src/lib-storage/mail-autoexpunge.c 2016-07-01 11:07:47 +0300 Timo Sirainen (59849b39a) doveadm mailbox update: Avoid assert-crash on errors. M src/doveadm/doveadm-mail-mailbox.c 2016-07-01 02:49:32 +0300 Timo Sirainen (7dd5d993b) login-proxy: cork+uncork in flush callbacks Potentially reduces latency at the end of a larger data transfer. M src/login-common/login-proxy.c 2016-07-01 01:14:34 +0300 Timo Sirainen (d82c8af71) lib-dcrypt: Removed dead code. M src/lib-dcrypt/ostream-encrypt.c 2016-07-01 01:11:15 +0300 Timo Sirainen (f54d51159) lib: Fix to compiling STATIC_ARRAY in C++ code M src/lib/macros.h 2016-06-30 20:24:34 +0300 Timo Sirainen (bc3586bca) configure: Check if C99 "static" keyword is supported for array sizes. M configure.ac A m4/static_array.m4 M src/lib/macros.h 2016-06-30 22:35:59 +0200 Stephan Bosch (744c06ab0) lib-http: client: Fixed potential segfault problem in http_client_connection_server_close(). Used wrong variable: it is set to NULL by http_client_request_unref() before it is used. Problem found by Coverity. M src/lib-http/http-client-connection.c 2016-06-30 18:13:52 +0300 Timo Sirainen (3ba8511f9) lib-dcrypt: Compiling fix M src/lib-dcrypt/dcrypt.c 2016-06-30 16:21:40 +0300 Timo Sirainen (3dc508b52) imap: Fixed reading LDA settings from config. M src/imap/imap-settings.c 2016-06-30 14:08:24 +0300 Timo Sirainen (0fb6d1695) master: Stopping didn't close dead-pipes early enough. This caused stopping to be too slow. Broken by 0153cf542. M src/master/service-monitor.c 2016-06-30 12:10:29 +0300 Timo Sirainen (a29670d7a) lmtp: Removed assert, which triggers if anvil connect fails. M src/lmtp/commands.c 2016-06-30 12:08:19 +0300 Timo Sirainen (ddf6020f6) lmtp: Fixed pipelining of commands after RCPT TO We should stop while waiting for anvil reply. Broken by ced943b0a. M src/lmtp/commands.c 2016-06-30 11:57:19 +0300 Aki Tuomi (77bb5db43) auth-request: Whitespace fix M src/auth/auth-request.c 2016-06-30 10:03:18 +0300 Aki Tuomi (7d7a97e88) auth-request: Correctly allocate mech_password and credentials_scheme M src/auth/auth-request.c 2016-06-30 09:29:26 +0300 Aki Tuomi (3a2f06081) dcrypt: Free keys in test-stream M src/lib-dcrypt/test-stream.c 2016-06-30 09:06:51 +0300 Aki Tuomi (7de7bc1f7) dcrypt: Add tests for 0 and 1 byte data M src/lib-dcrypt/test-stream.c 2016-06-30 09:06:33 +0300 Aki Tuomi (7a71f2326) dcrypt: Fix bugs in 0 and 1 byte payload files M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/ostream-encrypt.c 2016-06-30 01:27:37 +0300 Timo Sirainen (20b857d31) lib-ssl-iostream: Compiler fix to previous commit M src/lib-ssl-iostream/dovecot-openssl-common.c 2016-06-30 01:15:38 +0300 Timo Sirainen (a0f2b68fe) lib-ssl-iostream: Disable "CRYPTO_set_mem_functions() was called too late" for now It always happens at least with Ubuntu 16.04. M src/lib-ssl-iostream/dovecot-openssl-common.c 2016-06-29 23:56:18 +0300 Timo Sirainen (4df7af0da) auth: delay_until can optionally now have + suffix. M src/auth/auth-request.c 2016-06-29 23:54:46 +0300 Timo Sirainen (2fa0de8e5) auth: Fixed checking if delay_until is too large M src/auth/auth-request.c 2016-06-29 22:29:20 +0300 Timo Sirainen (e229fe845) dsync: When full resync is wanted in a stateful sync, output empty state. This continues 3d49dc64d, which didn't actually work because brain->require_full_resync was either cleared earlier or it was never even set in this brain. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-private.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-ibc.h 2016-06-29 21:09:48 +0300 Timo Sirainen (c1fc5a97a) doveadm: Read settings with service=doveadm This was done for mail commands while initializing the mail user, but other commands weren't using it. This meant that doveadm was using only global settings instead of protocol doveadm { .. } settings for everything except mail commands. M src/doveadm/doveadm.c M src/doveadm/main.c 2016-06-29 20:44:37 +0300 Timo Sirainen (eb8a1a587) doveadm user: Avoid potential crashes when running via doveadm-server M src/doveadm/doveadm-auth-server.c 2016-06-29 19:22:51 +0300 Timo Sirainen (7b97d8b3f) dict-sql: Treat NULL value the same as "key not found" M src/lib-dict/dict-sql.c 2016-06-28 23:12:03 +0300 Timo Sirainen (53309922d) doveadm: Added "service stop" command to stop specific services. M src/doveadm/Makefile.am M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h A src/doveadm/doveadm-service.c 2016-06-26 23:04:00 +0300 Timo Sirainen (164f8e81a) master: Allow stopping specific services via master socket. M src/master/Makefile.am M src/master/main.c A src/master/master-client.c A src/master/master-client.h M src/master/service-listen.c M src/master/service-monitor.c M src/master/service.h 2016-06-28 23:38:48 +0300 Timo Sirainen (079673625) master: Added service_monitor_stop_close() to stops service and close its listeners. M src/master/service-monitor.c M src/master/service-monitor.h 2016-06-28 23:38:11 +0300 Timo Sirainen (0153cf542) master: Added support for stopping specific services. We need to have a per-service fd for detecting a dead master. M src/master/service-monitor.c M src/master/service-process.c M src/master/service.c M src/master/service.h 2016-06-29 19:12:58 +0300 Timo Sirainen (9881c3ec4) lib-storage: Fixed search arg initialization tracking for INTHREAD M src/lib-storage/mail-search.c 2016-06-29 18:49:57 +0300 Timo Sirainen (391970ed2) virtual: Fixed error handling when matching mailboxes by metadata. M src/plugins/virtual/virtual-config.c 2016-06-29 18:34:07 +0300 Timo Sirainen (b0ab23e6f) maildir: Improved "Filename keeps changing" error handling/logging M src/lib-storage/index/maildir/maildir-util.c 2016-06-29 18:33:48 +0300 Timo Sirainen (815fc205d) maildir: Code comment update M src/lib-storage/index/maildir/maildir-sync.c 2016-06-29 18:33:27 +0300 Timo Sirainen (034375aa3) dsync: Add session ID to log line prefix. M src/doveadm/doveadm-dsync.c 2016-06-29 18:31:21 +0300 Timo Sirainen (38920bff3) maildir: Fixed updating filenames in existing uidlist Broken by 042668c0c. This could have caused errors like: - maildir_file_do(...): Filename keeps changing - Expunged message reappeared, giving a new UID M src/lib-storage/index/maildir/maildir-uidlist.c 2016-06-03 17:30:58 +0300 Aki Tuomi (3a429da1e) doveadm-server: Do not crash if empty data in authorization M src/doveadm/client-connection-http.c 2016-05-31 22:22:37 +0300 Aki Tuomi (a13b1245b) doveadm: Implement user and auth cache flush to server M src/doveadm/Makefile.am A src/doveadm/doveadm-auth-server.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm.c M src/doveadm/main.c 2016-06-04 08:14:45 +0300 Aki Tuomi (bd13998cd) doveadm-server: Skip doveadm_print_init Some commands need to do output that is not doable with doveadm_print, so we need to have a flag to indicate this. M src/doveadm/client-connection-http.c M src/doveadm/doveadm-cmd.h 2016-06-29 16:34:11 +0300 Timo Sirainen (3edfbca79) lmtp: If anvil lookup fails, ignore lmtp_user_concurrency_limit Previously it was randomly allowing or disallowing the client. M src/lmtp/commands.c 2016-06-29 15:25:28 +0300 Timo Sirainen (808261fdd) auth: Added delay_until passdb extra field. M src/auth/auth-request.c M src/auth/auth-request.h 2016-06-29 16:01:13 +0300 Timo Sirainen (f000a3cda) auth: Fixed plaintext authentication when auth policy was already processed. Broken by e82511362. M src/auth/auth-request.c 2016-06-29 15:49:38 +0300 Timo Sirainen (ea591a868) lib-fts: Added maxlen parameter to icu-normalizer. This is needed because the normalization can increase the token's length. M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter.h M src/lib-fts/test-fts-filter.c 2016-06-28 22:20:20 +0300 Timo Sirainen (f43d65df4) auth: Added ":remove" suffix for passdb/userdb extra fields to remove fields. M src/auth/auth-request.c 2016-06-29 00:56:56 +0300 Timo Sirainen (ca5b3ec53) auth: userdb passwd iteration now skips users not in first/last_valid_gid range Patch by Michal Hlavinka / Red Hat M src/auth/auth-settings.c M src/auth/auth-settings.h M src/auth/userdb-passwd.c 2016-06-29 00:50:13 +0300 Timo Sirainen (d080f54d2) *-login: Don't disable auth penalty for login_trusted_networks. It might or might not be a webmail (or something) that has its own penalty. If the old behavior is still wanted, it's possible to do nowadays with e.g.: passdb { driver = passwd-file args = username_format=%{rip} /etc/dovecot/passdb } /etc/dovecot/passdb: 192.168.10.123:::::::nodelay=yes 192.168.10.124:::::::nodelay=yes M src/login-common/sasl-server.c 2016-06-29 14:09:01 +0300 Timo Sirainen (553a131ed) lmtp: Increase user's concurrency limit already after RCPT TO. This way it's not possible for a lot of mails to arrive to user concurrently and bypass the lmtp_user_concurrency_limit. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c 2016-06-29 14:07:34 +0300 Timo Sirainen (ced943b0a) lmtp: If user has rached lmtp_user_concurrency_limit, fail at RCPT TO stage. Otherwise LMTP client would have to send the entire email body before getting the failure. M src/lmtp/client.h M src/lmtp/commands.c 2016-06-20 14:43:04 +0300 Timo Sirainen (cf91b6b3a) lib-storage: Fixed MAILBOX_METADATA_FIRST_SAVE_DATE with mailbox_list_index=no This also meant that autoexpunging wasn't working then. M src/lib-storage/index/index-status.c 2016-06-29 14:55:12 +0300 Aki Tuomi (e82511362) auth-policy: Do not do policy checks every time M src/auth/auth-request.c 2016-06-29 14:43:31 +0300 Timo Sirainen (ecbc1c76e) auth: Finish policy.[ch] renaming.. M src/auth/Makefile.am M src/auth/auth-policy.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/main.c 2016-06-29 14:31:28 +0300 Timo Sirainen (5165bc0ff) auth: Avoid nonstandard #pragma once M src/auth/auth-policy.h 2016-06-29 14:30:56 +0300 Timo Sirainen (2346f1643) auth: Rename policy.[ch] to auth-policy.[ch] R100 src/auth/policy.c src/auth/auth-policy.c R100 src/auth/policy.h src/auth/auth-policy.h 2016-06-28 13:24:09 +0300 Martti Rannanjärvi (fba8aa986) lib-dcrypt: correctly set version 2 on key info Dovecot format version 2 keys were incorrectly reported as version 1 before. M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/test-crypto.c 2016-06-29 14:16:58 +0300 Timo Sirainen (41a6be285) lib-index: Fixed view syncing when changes couldn't be read from transaction logs Fixes errors like: Log synchronization error at seq=0,offset=0 for .../dovecot.index: Append with UID 5, but next_uid = 6 .../dovecot.index view syncing failed to apply changes M src/lib-index/mail-index-view-sync.c 2016-06-29 14:12:29 +0300 Aki Tuomi (d35bb9e2d) auth-policy: Do not allow/report when master query This way auth policy isn't consulted when e.g. doveadm is used. M src/auth/policy.c 2016-06-29 13:52:09 +0300 Aki Tuomi (95087a44d) auth-policy: Report success earlier M src/auth/auth-request-handler.c 2016-06-29 00:37:09 +0300 Timo Sirainen (f3904862b) configure: Detect SSL_COMP_free_compression_methods() by linking Fixes using libressl. M m4/ssl.m4 M src/lib-ssl-iostream/dovecot-openssl-common.c 2016-06-28 21:59:26 +0300 Timo Sirainen (61d57efe9) lib: Added assert to iostream-temp Input stream isn't expected to shrink here. Potentially this could be changed to an error instead. M src/lib/iostream-temp.c 2016-06-28 19:45:12 +0300 Timo Sirainen (6181ecf4d) lazy-expunge: Fixed crash when copying from internal namespace Most importantly fixes crash in LDA. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-06-28 19:41:40 +0300 Timo Sirainen (ce8a9d73b) lda: Fixed data stack usage in initialization. For example -p parameter was broken. Broken by 0679f8a70. M src/lda/main.c 2016-06-28 10:25:21 +0300 Timo Sirainen (3b340beaa) dict-ldap: Fixed linking with OSX M src/plugins/dict-ldap/Makefile.am 2016-06-28 10:15:02 +0300 Timo Sirainen (afddc9e5e) auth: Compiler warning fixes M src/auth/policy.c 2016-06-03 21:35:48 +0300 Aki Tuomi (ef1ff1af5) auth-policy: Hook auth policy to auth code M src/auth/auth-request-handler.c M src/auth/auth-request-var-expand.c M src/auth/auth-request-var-expand.h M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/main.c 2016-06-03 20:21:42 +0300 Aki Tuomi (203bb2728) auth-policy: Add policy implementation M src/auth/Makefile.am M src/auth/auth-request-var-expand.c M src/auth/auth-request-var-expand.h M src/auth/auth-request.h M src/auth/auth-settings.c M src/auth/auth-settings.h A src/auth/policy.c A src/auth/policy.h M src/config/settings-get.pl 2016-06-10 14:31:00 +0300 Baofeng Wang (fd16501d9) fts plugin: Added fts_autoindex_exclude settings. fts_autoindex_exclude setting specifies special-use flag or mailbox name to be excluded. - If a name starts with '\', it's treated as a case-insensitive special-use flag. - Multiple names can be specified with serial numbers, for example: plugin { fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Trash fts_autoindex_exclude3 = DUMPSTER fts_autoindex_exclude4 = New folder } M src/plugins/fts/fts-storage.c 2016-06-27 16:37:18 +0300 Timo Sirainen (bd5684768) lib-dcrypt: Make static analyzer happier M src/lib-dcrypt/test-crypto.c 2016-06-27 14:43:58 +0300 Aki Tuomi (5efce9101) dcrypt: Add tests for v1 and v2 public keys and RSA M src/lib-dcrypt/test-crypto.c 2016-06-27 14:43:27 +0300 Aki Tuomi (f92d3b2e6) dcrypt-openssl: Various fixes Fix v1 and v2 key handling and some allocation issues. M src/lib-dcrypt/dcrypt-openssl.c 2016-06-27 14:13:15 +0300 Timo Sirainen (7c9a9ac8c) lib-dcrypt: Added sample-v1_short.asc to EXTRA_DIST M src/lib-dcrypt/Makefile.am 2016-06-27 13:21:05 +0300 Aki Tuomi (80449618d) istream-decrypt: Ensure we can open short v1 files A src/lib-dcrypt/sample-v1_short.asc M src/lib-dcrypt/test-stream.c 2016-06-27 13:19:35 +0300 Aki Tuomi (97846eaed) istream-decrypt: Correctly check the header length for v1 M src/lib-dcrypt/istream-decrypt.c 2016-06-24 12:14:32 +0300 Timo Sirainen (ce3a152df) last-login: Ignore the plugin if last_login_dict setting is empty M src/plugins/last-login/last-login-plugin.c 2016-06-23 18:04:40 +0300 Timo Sirainen (123d1cb83) lib-ssl-iostream: Use ENGINE_set_default() M src/lib-ssl-iostream/dovecot-openssl-common.c 2016-06-23 17:21:09 +0300 Timo Sirainen (b7e29199c) lazy_expunge: Optimize checking for last instance when moving a mail. It's never the last instance, so we don't need to even check it. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-06-22 01:24:42 +0300 Timo Sirainen (0f801c1bd) fts-lucene: Fixed crash on error or auto-rebuild conditions. M src/plugins/fts-lucene/lucene-wrapper.cc 2016-06-21 22:08:25 +0300 Timo Sirainen (000ac7357) welcome plugin: -Wstrict-bool warning fix M src/plugins/welcome/welcome-plugin.c 2016-06-21 22:06:29 +0300 Timo Sirainen (22d6302b5) virtual: Compiler warning fix for list_index_has_changed() API change M src/plugins/virtual/virtual-storage.c 2016-06-21 21:26:29 +0300 Timo Sirainen (5f1b68c3a) LAYOUT=index: Existence or GUID lookups don't need to refresh mailboxes. M src/lib-storage/list/mailbox-list-index-status.c 2016-06-21 21:21:03 +0300 Timo Sirainen (aa47c9bd1) lib-storage: Added quick parameter to list_index_has_changed() M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.h M src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/index/mbox/mbox-sync-private.h M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/mail-storage-private.h 2016-06-21 21:06:22 +0300 Timo Sirainen (85c9cf2c3) LAYOUT=index: Avoid unnecessary work for setting \Marked flags in LIST reply. If MAILBOX_LIST_ITER_RETURN_NO_FLAGS is set, the caller doesn't care about the flags. M src/lib-storage/list/mailbox-list-index-iter.c 2016-06-20 11:33:47 +0300 Timo Sirainen (fbf29f41d) lib-dcrypt: dcrypt_keypair_generate() no longer assumes pair_r to be initialized. It wasn't clear that it should have been zeroed. It also likely isn't very useful to be able to place the generated key to existing keys. M src/lib-dcrypt/dcrypt.c 2016-06-19 22:27:00 +0300 Timo Sirainen (6b136bb20) lib-dcrypt: Check for all the return values in unit tests M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c 2016-06-19 22:21:59 +0300 Timo Sirainen (b9240a911) lib-dcrypt: Added missing error handling. Most of these are probably unnecessary now that malloc() no longer fails. Also some of the NULL checks may not be needed since OpenSSL functions (usually?) return failure on NULL parameters, but sometimes they perform a different operation. So overall, probably safer to include these checks. M src/lib-dcrypt/dcrypt-openssl.c 2016-06-19 22:18:04 +0300 Timo Sirainen (0eaf77d8c) lib-dcrypt: Don't ignore BIO errors. Might happen due to out of memory? M src/lib-dcrypt/dcrypt-openssl.c 2016-06-19 21:21:56 +0300 Timo Sirainen (394391e78) lib-dcrypt: dcrypt_key_type_public/private() can no longer fail. Removed unnecessary failure handling. M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h M src/lib-dcrypt/ostream-encrypt.c 2016-06-19 21:20:27 +0300 Timo Sirainen (955c276b9) lib-dcrypt: dcrypt_key_convert_private_to_public() can no longer fail. Removed unnecessary failure handling. M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h M src/lib-dcrypt/test-crypto.c 2016-06-19 20:55:19 +0300 Timo Sirainen (f85f12e3f) lib-dcrypt: Assert-crash if key parameter is NULL. If it happens, it's a bug. M src/lib-dcrypt/dcrypt-openssl.c 2016-06-19 20:48:27 +0300 Timo Sirainen (4b1448703) lib-dcrypt: Assert-crash if impossible private/public keys are seen. M src/lib-dcrypt/dcrypt-openssl.c 2016-06-21 18:47:42 +0300 Timo Sirainen (035d6e469) doveadm fs delete: Allow multiple paths also with -R parameter. M src/doveadm/doveadm-fs.c 2016-06-21 18:30:20 +0300 Timo Sirainen (a18ba96c4) doveadm: Fixed --long-parameters handling M src/doveadm/doveadm-cmd.c 2016-06-20 20:06:38 +0300 Timo Sirainen (2b9dbb270) dbox: Optimize POP3 MAIL_FETCH_UIDL_BACKEND. We keep track of the highest UID known to have POP3 UIDL in index's header. If saving adds a newer message, it'll also update the header. When fetching UIDL_BACKEND, we can need to check only mails with lower UIDs. There are some race conditions here, but normally UIDLs are set only once during migration so it shouldn't matter. M src/lib-storage/index/Makefile.am M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-save.h M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-save.c A src/lib-storage/index/index-pop3-uidl.c A src/lib-storage/index/index-pop3-uidl.h M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage-private.h 2016-06-20 11:39:55 +0300 Timo Sirainen (ba16a89e4) Added welcome plugin. M configure.ac M src/plugins/Makefile.am A src/plugins/welcome/Makefile.am A src/plugins/welcome/welcome-plugin.c 2016-06-21 15:11:04 +0300 Martti Rannanjärvi (cf4609752) doc: fix wrong tense in doveadm-expunge man page M doc/man/doveadm-expunge.1.in 2016-06-21 17:25:15 +0300 Timo Sirainen (06c1f686f) fs-posix: Use ":" instead of space as the parameter separator. This makes it consistent with all the other fs drivers. M src/lib-fs/fs-posix.c 2016-06-21 17:24:11 +0300 Timo Sirainen (9826e1405) fs-posix: Added "dirs" parameter to enable explicit directory removal. M src/lib-fs/fs-posix.c 2016-06-21 16:49:19 +0300 Timo Sirainen (aed5d5c05) fs-posix: Autodelete directories also when "prefix" parameter is used. M src/lib-fs/fs-posix.c 2016-06-20 15:10:55 +0300 Baofeng Wang (8f0503ea1) lib-storage: Add autoexpunge_max_mails configuration to autoexpunge Mails are expunged until mail count is at autoexpunge_max_mails or below. In below example, autoexpunge will expunge 1 mail when message count > 100 and *then* try to expunge mails that are still older than 2 minutes: namespace { .. mailbox Trash { autoexpunge = 2 mins autoexpunge_max_mails = 100 } } M src/lib-storage/mail-autoexpunge.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2016-06-21 12:04:24 +0300 Timo Sirainen (ade556757) lib-dict: Explicitly specify used dict_vfuncs methods for drivers. This allows adding more methods without modifying all the existing drivers. M src/lib-dict/dict-cdb.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c 2016-05-10 10:00:57 +0300 Baofeng Wang (027f9b615) auth: passdb-ldap Logging message is modified. M src/auth/passdb-ldap.c 2016-06-08 16:41:04 +0300 Baofeng Wang (0d6f8e7e2) lib-fts: add unit test to fts_tokenizer_delete_trailing_partial_char() M src/lib-fts/test-fts-tokenizer.c 2016-06-07 16:37:27 +0300 Baofeng Wang (eb568e46e) lib-fts: allow hyphen character in domain part Allow hyphen character and remove possible trailing hyhpen character when email tokenization is done. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-common.c M src/lib-fts/test-fts-tokenizer.c 2016-06-07 15:58:38 +0300 Baofeng Wang (507ea0bc5) lib-fts: remove trailing period character from email-address any trailing period character '.' should be removed when email tokenization is done. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-common.c M src/lib-fts/fts-tokenizer-common.h M src/lib-fts/test-fts-tokenizer.c 2016-06-07 16:01:03 +0300 Baofeng Wang (3c16f16e0) lib-test: add test_assert_failed_strcmp to expose strings. the macro is used to facilitate any test to show string comparision contents when they doesn't match. M src/lib-test/test-common.c M src/lib-test/test-common.h 2016-06-20 21:38:56 +0300 Timo Sirainen (0d8dc754e) Makefile: Added run-test-valgrind.supp to EXTRA_DIST M Makefile.am 2016-06-20 20:47:57 +0300 Timo Sirainen (f78e977b4) lib-http: s/unsigned int:1/bool:1/ M src/lib-http/test-http-server-errors.c 2016-06-20 20:30:47 +0300 Timo Sirainen (eda0261e7) lib-settings: Minor error message fix. M src/lib-settings/settings-parser.c 2016-06-20 18:46:04 +0300 Timo Sirainen (7a6a11d7f) Updated run-test-valgrind.supp M run-test-valgrind.supp 2016-06-20 17:52:28 +0300 Timo Sirainen (ee0a6db8f) lib: file_create_locked() - Unexpectedly deleted temp file is error. This shouldn't happen and we shouldn't be silently retrying if it does. M src/lib/file-create-locked.c 2016-06-20 14:29:57 +0300 Timo Sirainen (bb54eb984) Added valgrind suppression for OpenSSL (864e580b6) openssl: Use our own malloc()/realloc() that will die on out-of-memory. This is likely safer rather than caller thinking for example that some input is invalid when it's only a temporary memory allocation problem. M src/lib-ssl-iostream/dovecot-openssl-common.c 2016-06-20 13:33:34 +0300 Timo Sirainen (a62dad9ec) lib-dcrypt: Allow specifying crypto_device (OpenSSL engine). M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h M src/lib-dcrypt/test-crypto.c M src/lib-dcrypt/test-stream.c 2016-06-20 13:33:05 +0300 Timo Sirainen (ff95c6488) lib-dcrypt: Added library dependencies to unit tests M src/lib-dcrypt/Makefile.am 2016-06-20 12:58:08 +0300 Timo Sirainen (285bfe946) lib-dcrypt, lib-ssl-iostream: Share OpenSSL init/deinit code. M src/Makefile.am M src/lib-dcrypt/Makefile.am M src/lib-dcrypt/dcrypt-openssl.c M src/lib-ssl-iostream/Makefile.am A src/lib-ssl-iostream/dovecot-openssl-common.c A src/lib-ssl-iostream/dovecot-openssl-common.h M src/lib-ssl-iostream/iostream-openssl-context.c 2016-06-20 13:05:37 +0300 Timo Sirainen (a7ad754fc) lib-dcrypt: Fix to backend module loading. Especially don't die if we fail to load the module. M src/lib-dcrypt/dcrypt.c 2016-06-19 21:31:10 +0200 Stephan Bosch (f98d562bc) lib-http: server: Created test program that tests error conditions. Currently it is very limited, but it is due to be extended soon towards testing most common error conditions. M src/lib-http/Makefile.am A src/lib-http/test-http-server-errors.c 2016-06-20 02:41:37 +0200 Stephan Bosch (b154be7ad) lib-http: Restructured Makefile.am to have less duplicated lines for the test suite. M src/lib-http/Makefile.am 2016-06-20 01:25:02 +0200 Stephan Bosch (47fee1a94) lib-http: server: Added settings to configure the connection's socket kernel buffer sizes. This is mainly useful for use in the lib-http test suite. M src/lib-http/http-server-connection.c M src/lib-http/http-server.c M src/lib-http/http-server.h 2016-06-20 01:20:33 +0200 Stephan Bosch (17f37f252) lib-http: server: Make sure provided connection FDs are non-blocking. M src/lib-http/http-server-connection.c 2016-06-20 01:15:18 +0200 Stephan Bosch (f60fe422c) lib-http: server: Wrap request payload in a timeout input stream. The server cannot reset the timeout properly while the payload is being read by the application. The HTTP client solved this same problem by identical means. M src/lib-http/http-server-connection.c 2016-06-19 22:31:18 +0200 Stephan Bosch (cd1c11375) lib-http: server: Fixed handling of idle timeout when request just starts processing on the server. M src/lib-http/http-server-connection.c 2016-06-19 22:35:43 +0200 Stephan Bosch (861aff347) lib-http: server: Added more detailed debugging about when idle timeouts are started/stopped. M src/lib-http/http-server-connection.c 2016-06-17 16:59:37 +0200 Stephan Bosch (8bc621708) lib-http: client: Added tests for manual handling of connection loss retries to test-http-client-errors. M src/lib-http/test-http-client-errors.c 2016-06-17 16:59:15 +0200 Stephan Bosch (486c7c8d9) lib-http: client: Implemented no_auto_retry setting that disables all automatic request retries. This currently only applies to requests sent over a connection that is subsequently lost before a response is received. Before, such requests were always implicitly resumbitted for a new connection, without the application knowing about it. By enabling the no_auto_retry client setting, the application is always notified of connection loss through the request's response callback. As a consequence, requests need to be retried explicitly using the http_client_request_try_retry(). M src/lib-http/http-client-connection.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2016-06-17 15:39:36 +0200 Stephan Bosch (d6a88217c) lib-http: client: Allow retrying requests that failed internally. M src/lib-http/http-client-request.c 2016-06-20 03:08:30 +0300 Timo Sirainen (d470d4add) lib-dict-extra: Compiler warning fix M src/lib-dict-extra/dict-fs.c 2016-06-13 17:10:22 +0300 Timo Sirainen (a5ec97555) lib-dict: Added dict_switch_ioloop() M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-private.h M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h M src/plugins/dict-ldap/dict-ldap.c 2016-06-13 16:55:33 +0300 Timo Sirainen (a9e079feb) lib-dict: Added test-dict-client to stress test async dict operations M src/lib-dict/Makefile.am A src/lib-dict/test-dict-client.c 2016-06-02 00:57:17 +0300 Timo Sirainen (a7e46c053) lib-dict: dict-client rewrite to support async operations M src/lib-dict/dict-client.c 2016-06-20 02:25:47 +0300 Timo Sirainen (1a0b3d438) lib-dcrypt: Use a more supported EC curve in unit test Fixes running the test on CentOS 6. M src/lib-dcrypt/test-crypto.c 2016-06-20 01:47:59 +0300 Timo Sirainen (d697aa99b) lib-index: Don't break indexes on syscall failures during index refreshing. Especially mmap() failures due to out of memory could have triggered this. We treated the open as successful, which meant that an empty index was opened. M src/lib-index/mail-index-sync-update.c 2016-06-19 23:18:43 +0300 Timo Sirainen (b0c472c7a) lib-dcrypt: Fixed running unit tests in build directory. M src/lib-dcrypt/Makefile.am M src/lib-dcrypt/test-stream.c 2016-06-19 20:23:27 +0300 Timo Sirainen (49b6ea585) mailbox-alias: Fixed renaming mailboxes when the plugin is loaded. M src/plugins/mailbox-alias/mailbox-alias-plugin.c 2016-06-19 18:44:55 +0300 Timo Sirainen (2f04dd9ab) lib-dcrypt: Fixed memory leak in test-crypto unit test M src/lib-dcrypt/test-crypto.c 2016-06-19 18:38:39 +0300 Timo Sirainen (763e74b20) doveadm dump: Updated obox's oid output. M src/doveadm/doveadm-dump-index.c 2016-06-16 22:02:08 +0200 Stephan Bosch (44005db1c) lib-http: client/server: Enable the TCP_NODELAY option for all connections. This disables the TCP Nagle algorithm. With the Nagle algorithm enabled, TCP waits a little to accumulate more data in a small segment before it is sent. For transfer of large continuous payloads, this is not useful and even harmful. If the final remaining bit of the payload is small, the TCP layer will wait for a significant amount of time at the end of the payload. For many sequential transfers, this amounts to much waiting time. This is particularly evident in the test-http-payload test suite tool. Setting TCP_NODELAY decreases its run time from up to 20 minutes to about half a minute my system. M src/lib-http/http-client-connection.c M src/lib-http/http-server-connection.c 2016-06-16 22:01:06 +0200 Stephan Bosch (2dca65ba6) lib: Created net_set_tcp_nodelay(), which enables the TCP_NODELAY socket option. This disables the TCP Nagle algorithm. M src/lib/net.c M src/lib/net.h 2016-06-16 11:23:16 +0300 Timo Sirainen (095481fee) lib-ssl-iostream: Changed require_valid_cert -> allow_invalid_cert We should default to being safe. M src/doveadm/server-connection.c M src/lib-http/http-client-connection.c M src/lib-http/test-http-client.c M src/lib-imap-client/imapc-connection.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl.h M src/lib-storage/index/pop3c/pop3c-client.c 2016-06-14 22:47:31 +0200 Stephan Bosch (97d67b7b0) lib-http: client: Added test for http_client_request_delay_msecs() in test_http_client_errors. M src/lib-http/test-http-client-errors.c 2016-06-15 01:54:25 +0200 Stephan Bosch (a0923d7d0) lib-http: client: Added more debug logging about the submission of delayed requests. M src/lib-http/http-client-queue.c 2016-06-15 01:53:44 +0200 Stephan Bosch (8bca5ef71) time-util: Fixed usec comparison in timeval_cmp_margin(). M src/lib/time-util.c 2016-06-14 22:42:09 +0300 Teemu Huovila (d86910a95) lib-dcrypt: Fix error_r pointer verification. M src/lib-dcrypt/dcrypt.c 2016-06-14 22:32:36 +0300 Timo Sirainen (507dcd9fe) lib-fs: Added write_bytes to statistics M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2016-06-14 12:30:27 +0300 Aki Tuomi (f86bd28cf) dcrypt: Arm deinitialization code M src/lib-dcrypt/dcrypt.c 2016-06-14 12:08:49 +0300 Aki Tuomi (1471b4239) dcrypt: Add test for public key loading M src/lib-dcrypt/test-crypto.c 2016-06-14 12:08:34 +0300 Aki Tuomi (5029a1946) dcrypt-openssl: Pass pointer safely M src/lib-dcrypt/dcrypt-openssl.c 2016-06-14 10:49:24 +0300 Timo Sirainen (f19b3f14f) lib-index: Fixed test-mail-index-sync-ext M src/lib-index/test-mail-index-sync-ext.c 2016-06-14 01:14:13 +0300 Timo Sirainen (3403e054e) lib-index: Fixes to handling resized records. M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-private.h M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-transaction-export.c 2016-06-13 20:16:14 +0300 Timo Sirainen (54b88816e) dict: Increased max number of pipelined requests from 5 to 1000. The client is supposed to be the one throttling the requests. We mainly want to avoid accidental abuses. Using 1000 is hopefully "large enough" without being "too large". M src/dict/dict-connection.c 2016-06-13 17:59:01 +0300 Timo Sirainen (84801834c) dict: Avoid potentially using 100% CPU Continuing 65c570f18 fix. M src/dict/dict-connection.c 2016-06-13 17:11:28 +0300 Timo Sirainen (829653131) lib-fs: Added fs_switch_ioloop() M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-dict.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-test.c M src/plugins/fs-compress/fs-compress.c 2016-06-13 17:31:34 +0300 Timo Sirainen (e597ab14b) lib-fs: Code cleanup for fs-sis: Use struct fs.parent M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2016-06-13 12:49:19 +0300 Aki Tuomi (269a38b5e) lib-dcrypt: Use hex encoded public key ID in callback M src/lib-dcrypt/istream-decrypt.c M src/lib-dcrypt/istream-decrypt.h 2016-06-13 12:44:09 +0300 Aki Tuomi (8d0e0f098) lib-dcrypt: Use dcrypt_key_id_private when applicable M src/lib-dcrypt/istream-decrypt.c 2016-05-11 08:02:29 +0300 Aki Tuomi (57614d9fe) ldap: Fix cyclic dependency M configure.ac M src/Makefile.am M src/lib-dict-extra/Makefile.am M src/plugins/Makefile.am A src/plugins/dict-ldap/Makefile.am R100 src/lib-dict-extra/dict-ldap-settings.c src/plugins/dict-ldap/dict-ldap-settings.c R100 src/lib-dict-extra/dict-ldap-settings.h src/plugins/dict-ldap/dict-ldap-settings.h R100 src/lib-dict-extra/dict-ldap.c src/plugins/dict-ldap/dict-ldap.c 2016-06-13 12:18:07 +0300 Timo Sirainen (ce9086952) dovecot-config: Add lib-dcrypt to LIBDOVECOT_INCLUDE Since lib-dcrypt is part of libdovecot. M dovecot-config.in.in 2016-05-19 11:14:46 +0300 Martti Rannanjärvi (5a521f935) master: make setting listen empty an error M src/master/master-settings.c 2016-06-06 10:28:18 +0300 Timo Sirainen (d34b8a75f) lib-fs: fs_wait_async() can't fail, so make it return void. The individual requests can timeout, but not the waiting itself. M src/doveadm/doveadm-fs.c M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-test.c M src/plugins/fs-compress/fs-compress.c 2016-06-13 09:56:20 +0300 Timo Sirainen (725051a12) lmtp: Don't permanently allocate from data stack during init. M src/lmtp/main.c M src/lmtp/main.h 2016-06-12 20:11:49 +0300 Timo Sirainen (760528b71) lib-index: mail_index_ext_resize() was broken when record_size wasn't changed. M src/lib-index/mail-index-transaction-update.c 2016-06-12 18:57:10 +0300 Aki Tuomi (7e1a69e51) lib-dcrypt: Fix various problems M src/lib-dcrypt/Makefile.am M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h 2016-06-11 21:23:57 +0300 Timo Sirainen (aeaf81861) lib-mail: Improved message-parser unit tests. M src/lib-mail/test-message-parser.c 2016-06-11 21:23:07 +0300 Timo Sirainen (1bc6f1c54) lib-mail: Fixed message_parser_init_from_parts() with truncated MIME headers M src/lib-mail/message-parser.c 2016-06-11 21:20:37 +0300 Timo Sirainen (20faa69d8) lib-mail: message-header-parser now keeps istream referenced. M src/lib-mail/message-header-parser.c 2016-06-11 20:50:39 +0300 Timo Sirainen (9202c6606) lib-storage: mail_set_cache_corrupted*() now sets internal error to storage. At least index_mail_set_message_parts_corrupted() assumed that this was being done. M src/lib-storage/index/index-mail.c 2016-06-11 20:36:51 +0300 Timo Sirainen (f36c41854) doveadm: Don't use already-freed data stack after init. Broken by 0679f8a70. M src/doveadm/doveadm.c M src/doveadm/main.c 2016-06-11 17:13:12 +0300 Timo Sirainen (2522acb52) cassandra: Try fallback_consistency also for write timeout failures. M src/lib-sql/driver-cassandra.c 2016-06-07 08:50:12 +0300 Aki Tuomi (8266226f9) doveadm-server: Disable idle timeout for now M src/doveadm/client-connection-http.c 2016-06-07 03:47:44 +0300 Timo Sirainen (1b3579352) Fixed linking with OSX. M src/lib-dcrypt/Makefile.am M src/lib-ldap/Makefile.am 2016-06-07 03:41:18 +0300 Timo Sirainen (49b6e2d72) -Wstrict-bool warning fixes M src/lib-fs/fs-randomfail.c M src/lib-mail/message-address.c M src/lib/ioloop-epoll.c M src/lib/ioloop-poll.c 2016-06-07 03:25:16 +0300 Timo Sirainen (c87f187b4) lib-dcrypt: Fixed library dependencies _DEPENDENCIES needs an explicit paths, not "-lssl" and such. Fixes building with e.g. OSX. M src/lib-dcrypt/Makefile.am 2016-06-07 03:04:32 +0300 Timo Sirainen (759871175) lib-lda: Don't assert-crash if home directory isn't set. M src/lib-lda/duplicate.c 2016-06-06 17:10:12 +0300 Timo Sirainen (64a07a73e) lib-mail: Fixed to 91fdb25b5 Caused by my manual edits to avoid the -Wstrict-bool warnings. M src/lib-mail/message-address.c 2016-06-03 22:23:00 +0300 Timo Sirainen (0679f8a70) lib-master: Add automatic data stack frame to init unless disabled. M src/config/doveconf.c M src/lib-master/master-service.c M src/lib-master/master-service.h M src/master/main.c 2016-06-05 17:17:12 +0300 Timo Sirainen (761c441db) mbox: mbox_index_header.dirty_flag isn't boolean, so don't use TRUE/FALSE with it. M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-sync.c 2016-06-05 16:54:38 +0300 Timo Sirainen (a5286dc8a) lib: define FALSE to be (!1) This allows the patched clang to treat FALSE as a boolean expression. M src/lib/macros.h 2016-06-05 16:35:04 +0300 Timo Sirainen (f0339f522) global: Use only explicit int -> bool conversions These were checked with a patched clang. M src/director/director-connection.c M src/director/director.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/imap-login/client-authenticate.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-index-transaction-update.c M src/lib-mail/message-address.c M src/lib-mail/rfc822-parser.c M src/lib-otp/otp-parse.c M src/lib-sql/driver-pgsql.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-search.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib/istream-sized.c M src/lib/istream.c M src/lib/net.c M src/lib/restrict-access.c M src/login-common/client-common-auth.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/fts-solr/solr-connection.c M src/plugins/quota/Makefile.am M src/plugins/quota/quota-dict.c M src/plugins/quota/quota.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/replicator-queue.c 2016-06-05 05:06:27 +0300 Timo Sirainen (23bdbb7b1) global: Require comparisons to be strict boolean expressions * No implicit integer -> boolean or pointer -> boolean conversions * !expr can be used only if expr is boolean type These were checked with a patched clang. It found various actual bugs, which were fixed by the previous commits. M src/auth/db-ldap.c M src/auth/mech-digest-md5.c M src/auth/mech-ntlm.c M src/auth/mech-scram-sha1.c M src/auth/password-scheme-md5crypt.c M src/auth/password-scheme-rpa.c M src/director/director-connection.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-util.c M src/doveadm/dsync/dsync-mailbox-export.c M src/imap/imap-sync.c M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dict-extra/dict-ldap-settings.c M src/lib-http/http-server-request.c M src/lib-http/test-http-client-errors.c M src/lib-http/test-http-payload.c M src/lib-imap/imap-bodystructure.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-lda/duplicate.c M src/lib-ldap/ldap-connection.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-parser.c M src/lib-master/test-master-service-settings-cache.c M src/lib-ntlm/ntlm-des.c M src/lib-ntlm/ntlm-encrypt.c M src/lib-ntlm/ntlm-message.c M src/lib-otp/otp-parse.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-pgsql.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h M src/lib/askpass.c M src/lib/buffer.h M src/lib/compat.h M src/lib/file-cache.c M src/lib/file-lock.c M src/lib/hash.c M src/lib/ioloop-select.c M src/lib/macros.h M src/lib/md4.c M src/lib/md5.c M src/lib/net.c M src/lib/test-timing.c M src/lib/test-unichar.c M src/lib/var-expand.c M src/lib/wildcard-match.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-openssl.c M src/master/service-process.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-solr/solr-connection.c M src/plugins/push-notification/push-notification-event-flagsclear.c M src/plugins/push-notification/push-notification-event-flagsset.c M src/plugins/push-notification/push-notification-event-messageappend.c M src/plugins/push-notification/push-notification-event-messagenew.c M src/plugins/push-notification/push-notification-event-messageread.c M src/plugins/push-notification/push-notification-event-messagetrash.c M src/plugins/push-notification/push-notification-plugin.c M src/plugins/quota/Makefile.am M src/pop3/pop3-client.c M src/pop3/pop3-commands.c 2016-06-05 16:30:47 +0300 Timo Sirainen (c1277b66e) global: uint32_t:1 -> bool:1 They were uint32_t because I wanted to be sure that there wouldn't be any padding added to the struct. But this should be true also with bool:1. M src/auth/auth-cache.h M src/lib-storage/index/index-sort-string.c 2016-06-05 14:37:11 +0300 Timo Sirainen (0dffa25d2) global: unsigned int:1 -> bool:1 perl -i -pe 's/unsigned int ([^,:;]+):1;/bool $1:1;/' **/*.[ch] M src/anvil/anvil-connection.c M src/anvil/penalty.c M src/auth/auth-client-connection.h M src/auth/auth-master-connection.h M src/auth/auth-penalty.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.h M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/db-checkpassword.c M src/auth/db-passwd-file.h M src/auth/db-sql.h M src/auth/mech-digest-md5.c M src/auth/passdb-pam.c M src/auth/userdb-passwd.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/config/config-connection.c M src/config/config-parser-private.h M src/config/doveconf.c M src/dict/dict-connection.h M src/director/director-connection.c M src/director/director-host.h M src/director/director.h M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.h M src/director/user-directory.h M src/doveadm/client-connection.h M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail.h M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-stats.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-ibc-private.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-tree.h M src/doveadm/server-connection.c M src/imap-login/imap-login-client.h M src/imap-urlauth/imap-urlauth-client.h M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/cmd-append.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-select.c M src/imap/cmd-urlfetch.c M src/imap/imap-client.h M src/imap/imap-fetch-body.c M src/imap/imap-fetch.h M src/imap/imap-notify.h M src/imap/imap-search.h M src/imap/imap-sync.c M src/indexer/indexer-client.c M src/indexer/indexer-queue.h M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/ipc/ipc-connection.h M src/lib-auth/auth-client-private.h M src/lib-auth/auth-master.c M src/lib-auth/auth-master.h M src/lib-auth/auth-server-connection.h M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c M src/lib-dict/dict-client.c M src/lib-dict/dict-private.h M src/lib-dict/dict-sql.c M src/lib-fs/fs-api-private.h M src/lib-http/http-client-private.h M src/lib-http/http-header-parser.c M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-request.h M src/lib-http/http-response.h M src/lib-http/http-server-private.h M src/lib-http/http-transfer-chunked.c M src/lib-http/http-url.c M src/lib-http/http-url.h M src/lib-imap-client/imapc-connection.c M src/lib-imap-storage/imap-metadata.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth-fetch.h M src/lib-imap-urlauth/imap-urlauth-private.h M src/lib-imap/imap-arg.h M src/lib-imap/imap-parser.c M src/lib-imap/imap-url.c M src/lib-imap/imap-url.h M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-private.h M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-view-private.h M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log-view-private.h M src/lib-index/mail-transaction-log.h M src/lib-lda/duplicate.c M src/lib-lda/lmtp-client.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-header-parser.h M src/lib-mail/message-parser.c M src/lib-mail/message-search.c M src/lib-master/ipc-server.c M src/lib-master/master-instance.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-login.h M src/lib-master/master-service-private.h M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.h M src/lib-master/master-service.h M src/lib-master/service-settings.h M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/sql-api-private.h M src/lib-ssl-iostream/iostream-openssl.h M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/dbox-common/dbox-file.h M src/lib-storage/index/dbox-common/dbox-save.h M src/lib-storage/index/dbox-multi/mdbox-map-private.h M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.h M src/lib-storage/index/imapc/imapc-list.h M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.h M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-rebuild.h M src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-private.h M src/lib-storage/index/index-thread.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-storage.h M src/lib-storage/index/mbox/mbox-sync-private.h M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-storage.h M src/lib-storage/index/raw/raw-storage.h M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-sync.h M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mail-namespace.h M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lib-storage/mail-storage.h M src/lib-storage/mail-user.h M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-search-result-private.h M src/lib-storage/mailbox-tree.c M src/lib/buffer.c M src/lib/connection.h M src/lib/file-dotlock.c M src/lib/file-dotlock.h M src/lib/ioloop-private.h M src/lib/istream-crlf.c M src/lib/istream-file-private.h M src/lib/istream-jsonstr.c M src/lib/istream-mmap.c M src/lib/istream-private.h M src/lib/istream-tee.c M src/lib/istream.h M src/lib/mempool.h M src/lib/module-dir.h M src/lib/ostream-file-private.h M src/lib/ostream-private.h M src/lib/ostream.h M src/lmtp/client.h M src/lmtp/lmtp-proxy.c M src/log/log-connection.c M src/login-common/client-common.h M src/login-common/login-proxy.c M src/login-common/ssl-proxy-openssl.c M src/master/service-process.h M src/master/service.h M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.h M src/plugins/acl/acl-backend-vfile.h M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/expire/expire-plugin.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/squat-trie-private.h M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c M src/pop3/pop3-client.h M src/replication/replicator/dsync-client.c M src/replication/replicator/notify-connection.c M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue.h 2016-06-05 16:01:05 +0300 Timo Sirainen (8e047750f) mbox: Code cleanup - use bool instead of int for tracking locked-status M src/lib-storage/index/mbox/mbox-lock.c 2016-05-09 14:28:08 +0300 Martti Rannanjärvi (e93184a90) lib: remove autoclose parameter from [io]_stream_create_fd Use [io]_stream_create_fd_autoclose() for autoclose. M src/anvil/anvil-connection.c M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/db-passwd-file.c M src/config/config-connection.c M src/config/doveconf.c M src/dict/dict-connection.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-test.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/notify-connection.c M src/dns/dns-client.c M src/doveadm/client-connection.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-zlib.c M src/doveadm/doveadm.c M src/doveadm/server-connection.c M src/imap-hibernate/imap-client.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/imap-client.c M src/indexer/indexer-client.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/ipc/client.c M src/ipc/ipc-connection.c M src/lda/main.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-compression/test-compression.c M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dns/dns-lookup.c M src/lib-http/test-http-payload.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-index/mail-index-strmap.c M src/lib-lda/duplicate.c M src/lib-lda/lmtp-client.c M src/lib-lda/smtp-client.c M src/lib-mail/istream-attachment-extractor.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-instance.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib/connection.c M src/lib/file-copy.c M src/lib/istream-file.c M src/lib/istream-rawlog.c M src/lib/istream.h M src/lib/ostream-file.c M src/lib/ostream-rawlog.c M src/lib/ostream.h M src/lib/test-iostream-temp.c M src/lib/test-ostream-file.c M src/lmtp/client.c M src/lmtp/commands.c M src/log/doveadm-connection.c M src/log/log-connection.c M src/login-common/client-common.c M src/login-common/login-proxy.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/ostream-ext-filter.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/pop3/pop3-client.c M src/replication/aggregator/notify-connection.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/dsync-client.c M src/replication/replicator/notify-connection.c M src/stats/client.c M src/stats/fifo-input-connection.c M src/util/rawlog.c 2016-05-02 18:27:02 +0300 Timo Sirainen (39dea5f2e) quota: Differentiate between forced and non-forced quota recalc The "count" backend doesn't need to recalc quota unless an explicit "doveadm quota recalc" command is called. M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2016-05-02 18:16:00 +0300 Timo Sirainen (e2e64c109) quota: Skip reading mail sizes when quota backend doesn't need it. If quota backend is updating the quota internally, it's just going to ignore the looked up size. The only reason for looking up the sizes is to check with quota_try_alloc() whether user is going over quota. M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2016-06-05 15:48:20 +0200 Pali Rohár (99df8a838) lib-mail: Update tests for message address M src/lib-mail/test-message-address.c 2016-06-05 15:48:19 +0200 Pali Rohár (b435147a7) lib-mail: message_address_write: Quote and escape strings if needed ATEXT characters must be properly quoted when are in phrase. Test case: { name = "test\"test", mailbox = "user", domain = "host" } converts to: "test\"test" M src/lib-mail/message-address.c 2016-06-05 15:48:18 +0200 Pali Rohár (91fdb25b5) lib-mail: parse_mailbox: Set display name instead mailbox when parsing failed It does not make sense to set mailbox without domain on incorrect input. Rather set display name which is more likely useable value. Test case: test is parsed as: { name = "test", mailbox = NULL, domain = NULL } M src/lib-mail/message-address.c 2016-06-05 15:48:17 +0200 Pali Rohár (9835bb7e5) lib-mail: parse_addr_spec: Email address without local-part is invalid Add explicit invalid_syntax flag also when end of input occure because address is without domain invalid and in this case it was not correctly propagated. M src/lib-mail/message-address.c 2016-06-05 15:48:16 +0200 Pali Rohár (f185d56a9) lib-mail: parse_addr_spec: Like in rfc822_skip_comment() check if last_comment is not NULL This will fix possible NULL pointer dereference when caller does not set last_comment. M src/lib-mail/message-address.c 2016-06-05 15:48:15 +0200 Pali Rohár (d56bcbb35) lib-mail: message_address_write: Fix generating group list with empty name Empty name for group list must be quoted. Test case: { { name = NULL, mailbox = "", domain = NULL }, { name = NULL, mailbox = NULL, domain = NULL } } converts to: "":; M src/lib-mail/message-address.c 2016-06-05 15:48:14 +0200 Pali Rohár (b98e12266) lib-mail: message_address_write: Fix generating empty group list Empty group list ends with ": " not with ", ". Test case: { { name = NULL, mailbox = "group", domain = NULL }, { name = NULL, mailbox = NULL, domain = NULL } } converts to: group:; M src/lib-mail/message-address.c 2016-06-06 02:27:35 +0300 Timo Sirainen (90dd3c6ed) fs-randomfail: Support failures after asynchronous commands have already finished. M src/lib-fs/fs-randomfail.c 2016-06-06 02:26:09 +0300 Timo Sirainen (65c570f18) dict: Fixed hang when pipelining multiple commands. M src/dict/dict-connection.c 2016-06-06 00:07:53 +0300 Timo Sirainen (c6c2b49bf) lib-index: Extension record size resizing was still broken. Fixes assert-crash: Panic: file mail-index-util.c: line 143 (mail_index_seq_array_add): assertion failed: (array->arr.element_size == sizeof(seq) + aligned_record_size) M src/lib-index/mail-index-transaction-update.c 2016-06-05 17:48:41 +0300 Timo Sirainen (4cc046655) global: More fixes to mismatched bool vs int handling M src/auth/mech-skey.c M src/lib-imap/test-imap-utf7.c M src/lib-ntlm/ntlm-encrypt.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/test-mailbox-get.c M src/lib/test-array.c 2016-06-05 15:37:06 +0300 Timo Sirainen (d9a7e950a) global: Fixed mismatched bool vs. int/pointer handling I don't think these fix any actual bugs. M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c M src/auth/auth.c M src/auth/mech-otp-skey-common.c M src/auth/mech-otp-skey-common.h M src/dict/dict-connection.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-mail-fetch.c M src/lib-dcrypt/dcrypt-openssl.c M src/lib-fs/fs-randomfail.c M src/lib-http/test-http-payload.c M src/lib-http/test-http-response-parser.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-parser.c M src/lib-mail/mbox-from.c M src/lib-mail/message-date.c M src/lib-mail/test-message-header-decode.c M src/lib-ntlm/ntlm-message.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/mailbox-list.c M src/lib/file-lock.c M src/lib/strfuncs.c M src/lib/wildcard-match.c M src/master/master-settings.c M src/master/service-listen.c M src/plugins/expire/doveadm-expire.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-user.c M src/plugins/imap-acl/imap-acl-plugin.c 2016-06-05 16:51:12 +0300 Timo Sirainen (ba3dc5075) lib-mail: Added comment about invalid timezones in message_date_parse() M src/lib-mail/message-date.c 2016-06-05 16:40:27 +0300 Timo Sirainen (389a9fe16) director: Fixed error handling when directors support incompatible tags Connection should have been disconnected immediately, not after the next command that would have produced "Incompatible protocol". M src/director/director-connection.c 2016-06-05 15:57:48 +0300 Timo Sirainen (759edc211) lib-dcrypt: Fixed error handling in dcrypt_key_id_public() M src/lib-dcrypt/dcrypt-openssl.c 2016-06-05 15:35:13 +0300 Timo Sirainen (28846a726) lib-storage: Fixed error handling in list=children checking M src/lib-storage/list/mailbox-list-iter.c 2016-06-05 15:32:09 +0300 Timo Sirainen (063fb9403) fts-lucene: Fixed error handling when checking if settings had changed. M src/plugins/fts-lucene/fts-backend-lucene.c 2016-06-05 15:31:20 +0300 Timo Sirainen (e9fdf11b7) mailbox-alias plugin: Fixed error handling M src/plugins/mailbox-alias/mailbox-alias-plugin.c 2016-06-05 15:26:11 +0300 Timo Sirainen (4ee1a8353) lib-storage: Search args equalness checks didn't compare keywords correctly. This may have broken the search in some situations. M src/lib-storage/mail-search.c 2016-06-05 15:23:45 +0300 Timo Sirainen (dcf24a3cd) mbox: Fixed expunging first mail with CRLF linefeeds. M src/lib-storage/index/mbox/mbox-sync-rewrite.c 2016-06-05 15:18:04 +0300 Timo Sirainen (e1230c989) mdbox: Fix want_altpath flags/boolean mixup There was only a single flag, so this wasn't actually currently broken. M src/lib-storage/index/dbox-multi/mdbox-map.c 2016-06-05 15:11:56 +0300 Timo Sirainen (84ec868b0) auth: Fixed error handling in passdb/userdb dict config parsing M src/auth/db-dict.c 2016-06-05 14:54:05 +0300 Timo Sirainen (12f8ffba0) director: Fixed ignoring an obsolete up/down change while host is desynced. M src/director/director-connection.c 2016-06-05 04:29:00 +0300 Timo Sirainen (a21d4eb32) lib-dcrypt: Fixed function return type. M src/lib-dcrypt/dcrypt-openssl.c 2016-06-04 03:47:37 +0300 Timo Sirainen (eaebcff84) lazy-expunge: Fixed crash on error handling M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-06-03 20:14:01 +0300 Timo Sirainen (f27c7e633) lib-index: Fix duplicate fields in mail_cache_register_fields() Broken by hash_table_insert() API change. The earlier code was also a bit wrong by allocating a bit too much memory when there were duplicate fields being registered. M src/lib-index/mail-cache-fields.c 2016-06-03 20:10:02 +0300 Timo Sirainen (379b166be) lib-index: Fixed extension resizing Broken by 8483af4ff. M src/lib-index/mail-index-sync-ext.c 2016-06-03 20:00:14 +0300 Timo Sirainen (1af0c5d88) lib-index: Added header-size asserts M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c 2016-06-03 19:58:29 +0300 Timo Sirainen (909a45f03) lib-index: Fixed fsck handling extension with invalid header size Fixes: Panic: file mail-index-sync-ext.c: line 393 (mail_index_sync_ext_init_new): assertion failed: (hdr_buf->used == map->hdr.header_size) M src/lib-index/mail-index-fsck.c 2016-06-03 19:31:09 +0300 Timo Sirainen (c224fff79) global: Use hash_table_update() instead of _insert() where necessary. M src/doveadm/doveadm-director.c M src/doveadm/doveadm-stats.c M src/lib-dict/dict-file.c M src/lib-lda/duplicate.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/plugins/push-notification/push-notification-drivers.c M src/pop3/pop3-commands.c 2016-06-03 19:20:35 +0300 Timo Sirainen (2a6c02a5e) lib-storage: Detect duplicate mailbox GUIDs in guid-cache. Also fixes assert-crashing in hash_table_insert() when it happens. M src/lib-storage/mailbox-guid-cache.c 2016-06-03 19:18:43 +0300 Timo Sirainen (32d69cb07) maildir: Detect duplicate keywords in dovecot-keywords file Use the first such keyword's index, not the last. Also fixes assert-crashing in hash_table_insert() when it happens. M src/lib-storage/index/maildir/maildir-keywords.c 2016-06-03 19:17:03 +0300 Timo Sirainen (042668c0c) maildir: Avoid extra memory usage on duplicate uidlist entries Also fixes assert-crashing in hash_table_insert() when it happens. M src/lib-storage/index/maildir/maildir-uidlist.c 2016-06-03 17:54:36 +0300 Timo Sirainen (765b5eec2) lib-index: Allow growing ext record_size after mail_index_update_ext() The existing records will just get some zero-padding at the end of records. M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-util.h 2016-06-03 17:52:39 +0300 Timo Sirainen (8483af4ff) lib-index: Fixed changing extension record sizes. map needs to be cloned before any extension record size changes are done. Otherwise the map cloning will crash or do something broken. M src/lib-index/mail-index-sync-ext.c 2016-06-03 17:40:11 +0300 Timo Sirainen (6aa6fdaba) lib-index: Minor code cleanup - use better variable names M src/lib-index/mail-index-sync-ext.c 2016-05-18 14:42:21 +0300 Baofeng Wang (cbc8f9d71) lib-storage: add no_fts in struct mail_search_arg When flag is set, FTS will not be performed. fts plugin: handle no_fts flag No fts will be performed once flag is set. Original patch from Timo Sirainen M src/lib-storage/mail-search.h M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-storage.c 2016-05-17 11:45:50 +0300 Baofeng Wang (3b22ecd86) hash: refactor hash_table_insert_node() and its callers reference Refactor *changes* the behavior of hash_table_insert(). * hash_table_insert() will assert when a key already exsists. And hash_table_update() remains updating value when a key already exsists. Refactor also changes the argument list referred by all its callers: * hash_table_insert/update/resize(). M src/lib/hash.c M src/lib/hash.h 2016-05-17 11:42:30 +0300 Baofeng Wang (0531c4817) lib-fts: fixup misuse of hash_table_insert() Instead use hash_table_update() to replace value when a key exsists. M src/lib-fts/fts-filter-stopwords.c 2016-05-30 19:07:16 +0300 Timo Sirainen (aa41b2e17) virtual: Moved virtual_mailbox_vfuncs to lib-storage. This allows implementing other virtual storage backends. M src/lib-storage/mail-storage-private.h M src/plugins/fts/fts-api.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2016-06-01 12:37:22 +0300 Timo Sirainen (54647e7d2) master: Give a nicer error if unix/fifo_listener path is empty. The previous error was simply: unlink(/var/run/dovecot/) failed: Is a directory M src/master/master-settings.c 2016-06-02 15:11:21 +0300 Martti Rannanjärvi (6f00b3719) print CFLAGS on ./configure M configure.ac 2016-05-09 15:24:28 +0300 Martti Rannanjärvi (db623deb1) lib: net_get_ip_any[46]() to struct net_ip[46]_any Also add struct net_ip[46]_loopback. M src/director/director.c M src/lib-http/test-http-server.c M src/lib/net.c M src/lib/net.h M src/master/service.c 2016-05-09 14:04:47 +0300 Baofeng Wang (74835112b) lib: remove useless NULL check after calling vstrconcat behavior change accordingly. M src/lib/imem.c M src/lib/strfuncs.c 2016-04-20 17:28:24 +0300 Baofeng Wang (a0c3a1388) liblib: *_strndup() and *_strconcat() shouldn't pass through NULLs. Assert NULL string pointer in below functions: i_strndup(), t_strndup() and p_strconcat(), t_strconcat(), i_strconcat() and vstrconcat. Replace former NULL condition check accordingly. M src/lib/imem.c M src/lib/strfuncs.c 2016-04-28 11:47:59 +0300 Baofeng Wang (3927a2114) lib-fs: do NOT feed i_strconcat() with NULL fill the string with valid content beforehand. M src/lib-fs/fs-api.c 2016-04-12 13:08:05 +0300 Baofeng (7279da2bd) storage: do NOT feed p_strconcat() with NULL. p_strconcat will never take NULL as an valid argument. So ns->list->set.alt_dir has to be checked NULL. M src/lib-storage/index/dbox-multi/mdbox-storage.c 2016-04-11 21:20:48 +0300 Baofeng (a713bc6d0) auth: do NOT feed p_strconcat() with NULL p_strconcat will never take NULL as an valid argument. Check possible NULL string before calling it. M src/auth/auth.c 2016-06-01 12:24:57 +0300 Teemu Huovila (3f3c1b629) lib-fts: Improved stopword file reading. The reading tries to be a little bit stricter now. Only stopwords at the start of a new line are accepted now. Changed fi stopwords accordingly. Also removed superfluous stack allocation in parsing. M src/lib-fts/Makefile.am M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/stopwords/stopwords_fi.txt A src/lib-fts/stopwords/stopwords_malformed.txt M src/lib-fts/test-fts-filter.c 2016-05-30 12:40:00 +0300 Teemu Huovila (0605ff6f2) lib-fts: Add stopword files for more languages. M src/lib-fts/Makefile.am A src/lib-fts/stopwords/stopwords_da.txt A src/lib-fts/stopwords/stopwords_de.txt A src/lib-fts/stopwords/stopwords_es.txt A src/lib-fts/stopwords/stopwords_it.txt A src/lib-fts/stopwords/stopwords_nl.txt A src/lib-fts/stopwords/stopwords_pt.txt A src/lib-fts/stopwords/stopwords_ro.txt A src/lib-fts/stopwords/stopwords_ru.txt 2016-05-30 11:54:26 +0300 Teemu Huovila (abfc91b50) lib-fts: Move stopwords to subdirectory. All files incluided in dist are explicitly mentioned. The whole subdirectory 'stopwords' could also be distributed, but that is more error prone. M src/lib-fts/Makefile.am R100 src/lib-fts/stopwords_en.txt src/lib-fts/stopwords/stopwords_en.txt R100 src/lib-fts/stopwords_fi.txt src/lib-fts/stopwords/stopwords_fi.txt R100 src/lib-fts/stopwords_fr.txt src/lib-fts/stopwords/stopwords_fr.txt R100 src/lib-fts/stopwords_no.txt src/lib-fts/stopwords/stopwords_no.txt R100 src/lib-fts/stopwords_sv.txt src/lib-fts/stopwords/stopwords_sv.txt 2016-06-02 16:06:08 +0300 Timo Sirainen (690425efb) dict-sql: Improve error message for invalid value fields. It'll now show which map's pattern matched, making it easier to find from the config file. M src/lib-dict/dict-sql.c 2016-06-02 00:52:37 +0300 Timo Sirainen (8bb454924) dict: Pipelined iteration replies may have been hanging. For example: - lookup start - iterate start - iterate finished, but can't reply yet - lookup finished - iterate reply can be sent now, but wasn't previously M src/dict/dict-commands.c 2016-06-02 00:51:26 +0300 Timo Sirainen (680e9da0f) dict: Fixed crash when reaching max (5) pending commands. M src/dict/dict-connection.c 2016-06-01 18:11:29 +0300 Timo Sirainen (0928812e7) global: Use i_stream_get_max_buffer_size() wherever possible After 7be8ba0c0 it's no longer correct to access stream->max_buffer_size directly. These changes fix using istream-chain with various wrapper streams. M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-fs/istream-fs-file.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-qp-decoder.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-test/test-common.c M src/lib/istream-concat.c M src/lib/istream.c 2016-06-01 18:09:48 +0300 Timo Sirainen (71aed7ba8) lib: i_stream_get_max_buffer_size() checks also parents' max sizes This fixes i_stream_get_max_buffer_size() to work correctly with istream-chain. M src/lib/istream.c M src/lib/istream.h 2016-06-01 18:03:58 +0300 Timo Sirainen (7be8ba0c0) lib: istream-chain didn't update its max_buffer_size I had this code at some point earlier, but looks like it got lost from the final commit. M src/lib/istream-chain.c 2016-06-01 17:52:23 +0300 Timo Sirainen (26cf1f4e5) lib-compression: istream.max_buffer_size == 0 isn't unlimited. M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c 2016-06-01 17:18:23 +0300 Timo Sirainen (082e10a9d) fs-metawrap: Removed unnecessary code. As mentioned in a0cf7d392, this can't happen. M src/lib-fs/fs-metawrap.c 2016-06-01 17:12:51 +0300 Timo Sirainen (b162e16ad) lib-fs: Improved unit tests. M src/lib-fs/Makefile.am A src/lib-fs/fs-test-async.c M src/lib-fs/fs-test.c M src/lib-fs/fs-test.h M src/lib-fs/test-fs-metawrap.c 2016-06-01 17:12:10 +0300 Timo Sirainen (68ee8d7e6) fs-metawrap: Removed unnecessary code. The caller already set success==FALSE if ostream was closed. M src/lib-fs/fs-metawrap.c 2016-06-01 17:11:53 +0300 Timo Sirainen (98ff8998f) lib-fs: Added more asserts M src/lib-fs/fs-api.c 2016-06-01 17:06:28 +0300 Timo Sirainen (a0cf7d392) lib-fs: Clarified fs_write_stream_abort() API and dropped its _async(). We can't handle an abort after an async fs_write_stream_finish() is already going. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2016-06-01 15:15:19 +0300 Timo Sirainen (adb9f4a60) lib-fs: Added fs_write_stream_abort_async() M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2016-06-01 13:30:22 +0300 Timo Sirainen (597db47e0) lib: Fix to previous istream-chain max_buffer_size handling We were casting the wrong stream. M src/lib/istream-chain.c 2016-05-31 22:33:32 +0300 Timo Sirainen (38b9e0b19) fs-metawrap: Fixed buffer size while reading metadata header. It's not enough to have the buffer size set to "large enough" at the time of the stream creation, because i_stream_set_max_buffer_size() could be called afterwards. M src/lib-fs/fs-metawrap.c M src/lib-fs/istream-metawrap.c 2016-05-31 22:19:37 +0300 Timo Sirainen (04f988607) lib: Fixed max_buffer_size handling in istream-chain The default max_buffer_size=256 was wrong in all situations. We're now assuming that the underlying istreams' max_buffer_size is always correct. While gluing together two streams we're now allocating enough memory to hold all of the wanted data (instead of assert-crashing as could have happened earlier). This means that the max memory usage is actually the two streams' max_buffer_size summed together. Ideally this would be fixed to limit the max_buffer_size to maximum of the two, but that would require further changes. M src/lib/istream-chain.c 2016-05-10 10:19:57 +0300 Martti Rannanjärvi (9625595c4) [LEN] to [static LEN] on some function parameters Also add STATIC_ARRAY macro to hide it in c++ compilation. M src/auth/mech-rpa.c M src/auth/passdb.c M src/auth/passdb.h M src/auth/userdb.c M src/auth/userdb.h M src/lib-storage/index/mbox/mbox-md5-all.c M src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-md5.h M src/lib/guid.c M src/lib/guid.h M src/lib/macros.h M src/lib/md4.c M src/lib/md4.h M src/lib/md5.c M src/lib/md5.h M src/lib/sha1.c M src/lib/sha1.h M src/lib/sha2.c M src/lib/sha2.h M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/pop3-migration/pop3-migration-plugin.h 2016-06-01 08:43:23 +0300 Aki Tuomi (fed9f797a) doveadm: Do not use INT64 with mail cmds yet M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-mailbox.c 2016-06-01 02:01:10 +0300 Timo Sirainen (b90dc2ae3) lib-dcrypt: Fixed check program dependencies M src/lib-dcrypt/Makefile.am 2016-06-01 00:19:41 +0300 Timo Sirainen (4372103cb) lib-dcrypt: Fixed dcrypt_openssl_generate_keypair() M src/lib-dcrypt/dcrypt-openssl.c 2016-06-01 00:12:44 +0300 Timo Sirainen (0f56c2ae3) lib: Fixed file_copy() after recent changes. M src/lib/file-copy.c 2016-05-31 17:16:17 +0300 Timo Sirainen (567ace1f6) dict-client: Fixed idle_msecs setting. M src/lib-dict/dict-client.c 2016-05-31 17:06:29 +0300 Timo Sirainen (1cc7a6c6a) lib-fs: Don't duplicate backend name in fs_init() errors. fs_init() already adds the "backend: " prefix to the error_r, so the callers shouldn't do it again. M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2016-05-31 17:01:41 +0300 Timo Sirainen (3d1ef0818) lib-storage: Fixed error_r with mail_storage_service_lookup_next() We no longer want to hide the actual error message. M src/lib-storage/mail-storage-service.c 2016-05-31 12:24:01 +0300 Timo Sirainen (e20f59207) lib: iostream-temp: Fixed o_stream_send_istream() M src/lib/iostream-temp.c 2016-05-30 22:39:39 +0300 Aki Tuomi (de1c645a7) lib-dcrypt: Use base64 encoded test samples M src/lib-dcrypt/Makefile.am A src/lib-dcrypt/sample-v1.asc D src/lib-dcrypt/sample-v1.bin A src/lib-dcrypt/sample-v2.asc D src/lib-dcrypt/sample-v2.bin M src/lib-dcrypt/test-stream.c 2016-05-30 22:33:29 +0300 Aki Tuomi (99e5f462c) lib-dcrypt: Fix strict type-punning warning M src/lib-dcrypt/dcrypt-openssl.c 2016-05-30 22:30:31 +0300 Aki Tuomi (47d4ae26c) lib-dcrypt: Fix various OpenSSL API usage issues M src/lib-dcrypt/dcrypt-openssl.c 2016-05-30 22:05:22 +0300 Aki Tuomi (87abc256d) lib-dcrypt: Remove duplication of samples M src/lib-dcrypt/Makefile.am 2016-05-30 21:41:12 +0300 Timo Sirainen (4fbd5c5e1) lib-dcrypt: Finish previous t_malloc() change. M src/lib-dcrypt/istream-decrypt.c 2016-05-17 11:38:14 +0300 Martti Rannanjärvi (11f02cda5) Replace some t_malloc_no0 calls with t_malloc0 This might increase safety. M src/lib-imap/imap-date.c M src/lib-imap/imap-utf7.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl.c M src/login-common/ssl-proxy-openssl.c 2016-05-17 10:56:53 +0300 Martti Rannanjärvi (657d704a5) Use t_new in complicated t_malloc_no0 calls M src/auth/auth-request-var-expand.c M src/lib-http/http-transfer-chunked.c M src/lib/net.c 2016-05-17 10:35:35 +0300 Martti Rannanjärvi (0175d37a5) Remove t_malloc in favour of t_malloc_no0 Using either t_malloc_no0 or t_malloc0 makes it clear whether the allocated memory is zeroed or not. M src/auth/auth-request-var-expand.c M src/auth/password-scheme.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-dump-log.c M src/imap-hibernate/imap-client.c M src/imap/imap-client.c M src/lib-http/http-transfer-chunked.c M src/lib-imap/imap-date.c M src/lib-imap/imap-utf7.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-mail/mail-user-hash.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mailbox-list.c M src/lib/data-stack.c M src/lib/data-stack.h M src/lib/hex-binary.c M src/lib/mempool-datastack.c M src/lib/mempool-unsafe-datastack.c M src/lib/net.c M src/lib/strfuncs.c M src/lib/test-data-stack.c M src/lib/test-istream-concat.c M src/lib/test-istream-seekable.c M src/lib/var-expand.c M src/login-common/client-common.c M src/login-common/login-settings.c M src/login-common/ssl-proxy-openssl.c M src/plugins/acl/acl-shared-storage.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/ssl-params/ssl-params.c 2016-05-20 15:16:41 +0300 Timo Sirainen (378e6cb16) o_stream_send_istream() API changed again The new API enforces the caller to correctly handle all the possible situations. It also makes in unambiguous whether to wait for input or output stream. M src/doveadm/server-connection.c M src/imap/cmd-getmetadata.c M src/imap/cmd-urlfetch.c M src/imap/imap-fetch-body.c M src/lib-fs/fs-api.c M src/lib-fs/ostream-metawrap.c M src/lib-http/http-client-request.c M src/lib-http/http-server-response.c M src/lib-http/test-http-payload.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-transfer.c M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/index-storage.c M src/lib/file-copy.c M src/lib/iostream-temp.c M src/lib/ostream-file.c M src/lib/ostream-private.h M src/lib/ostream.c M src/lib/ostream.h M src/lib/test-iostream-temp.c M src/lib/test-ostream-file.c M src/plugins/mail-filter/istream-ext-filter.c 2016-05-30 21:14:53 +0300 Timo Sirainen (1ada45cd3) lib-dcrypt: Always allow error_r to be NULL. Especially dcrypt_openssl_private_to_public_key() was called with error_r=NULL by the dcrypt.c itself. M src/lib-dcrypt/dcrypt-openssl.c 2016-05-30 19:38:22 +0300 Timo Sirainen (f7ce05fb1) lib-dcrypt: sample-v2.bin shouldn't be executable M src/lib-dcrypt/sample-v2.bin 2016-05-30 15:36:17 +0300 Timo Sirainen (8d5a200b8) lib-dcrypt: Compiler warning fixes M src/lib-dcrypt/dcrypt-openssl.c 2016-05-27 13:01:41 +0300 Timo Sirainen (61d3fd148) lib-storage: mail_storage_service_next() now returns error string. M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-mail.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lmtp/commands.c 2016-05-27 12:55:36 +0300 Timo Sirainen (6dc2060d6) lib-storage: mail_storage_service_lookup() now returns the full error. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2016-05-27 12:49:30 +0300 Timo Sirainen (f6008a666) lmtp, quota-status: Don't send mail_storage_service_lookup() error to client. This is in preparation for changing the returned error to contain the full error string. The current error string is pretty useless for any purpose. M src/lmtp/commands.c M src/plugins/quota/quota-status.c 2016-05-27 22:18:17 +0300 Timo Sirainen (4673195d0) doveadm mailbox delete: Added --unsafe option. M src/doveadm/doveadm-mail-mailbox.c 2016-05-27 22:15:07 +0300 Timo Sirainen (f8a63c14a) lib-storage: Added MAILBOX_FLAG_DELETE_UNSAFE M src/lib-storage/mail-storage.h M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/quota/quota-storage.c 2016-05-06 00:29:16 +0300 Aki Tuomi (9385b3175) configure: Include lib-dcrypt in core M configure.ac 2016-04-27 14:08:00 +0300 Aki Tuomi (316cbe323) lib-dcrypt: Initial implementation M configure.ac M src/Makefile.am A src/lib-dcrypt/Makefile.am A src/lib-dcrypt/dcrypt-gnutls.c A src/lib-dcrypt/dcrypt-iostream-private.h A src/lib-dcrypt/dcrypt-openssl.c A src/lib-dcrypt/dcrypt-private.h A src/lib-dcrypt/dcrypt.c A src/lib-dcrypt/dcrypt.h A src/lib-dcrypt/istream-decrypt.c A src/lib-dcrypt/istream-decrypt.h A src/lib-dcrypt/ostream-encrypt.c A src/lib-dcrypt/ostream-encrypt.h A src/lib-dcrypt/sample-v1.bin A src/lib-dcrypt/sample-v2.bin A src/lib-dcrypt/test-crypto.c A src/lib-dcrypt/test-stream.c M src/lib-storage/index/dbox-single/sdbox-file.c 2016-05-30 14:45:09 +0300 Aki Tuomi (5d16ff58f) doveadm-director: Fix commands so that they compile M src/doveadm/doveadm-director.c 2016-05-27 11:29:09 +0300 Timo Sirainen (2a9af9ae3) doveadm mailbox delete: Added -e parameter to delete only empty mailboxes. M src/doveadm/doveadm-mail-mailbox.c 2016-02-24 12:10:19 +0200 Aki Tuomi (264a0f242) doveadm-director: Convert to ver2 infra M src/doveadm/doveadm-director.c 2016-05-29 19:14:58 +0200 Stephan Bosch (d8aa10df6) imap: Implemented support for the LITERAL- capability. This replaces the LITERAL+ capability when the imap_literal_minus setting is enabled. M configure.ac M doc/example-config/conf.d/20-imap.conf M src/imap-login/imap-login-client.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-login-settings.h M src/imap/cmd-append.c M src/imap/cmd-setmetadata.c M src/imap/imap-client.c M src/imap/imap-settings.c M src/imap/imap-settings.h M src/lib-imap/imap-parser.c M src/lib-imap/imap-parser.h 2016-05-29 19:23:39 +0200 Stephan Bosch (0adc24c0c) lib-imap: imap-parser: Turned the fatal error flag into a proper error code. M src/imap-login/imap-login-client.c M src/imap/cmd-append.c M src/imap/cmd-setmetadata.c M src/imap/imap-client.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-parser.h M src/lib-imap/test-imap-parser.c 2016-05-29 19:58:55 +0200 Stephan Bosch (7bb371485) lib-imap: imap-parser: Made the fatal result parameter of imap_parser_get_error() optional. M src/lib-imap-client/imapc-connection.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-parser.h M src/plugins/virtual/virtual-config.c 2016-05-29 19:39:13 +0200 Stephan Bosch (468440fab) lib-imap: imap-parser: Renamed error field to error_msg. M src/lib-imap/imap-parser.c 2016-05-27 21:55:56 +0300 Timo Sirainen (c866a0378) dbox: Revert cache changes if some save/copy fails but transaction is committed. M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-save.c 2016-05-27 21:34:26 +0300 Timo Sirainen (f819fafff) lazy-expunge: Don't fail expunge if mail was already expunged. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-05-27 21:32:23 +0300 Timo Sirainen (567d2fd59) lazy-expunge: Fixed error logging. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-05-27 18:30:01 +0300 Timo Sirainen (589bc28b5) dsync: Debug logging improvement. M src/doveadm/dsync/dsync-mailbox-import.c 2016-05-27 14:38:17 +0300 Timo Sirainen (f48452dad) lib-fs: Fix to previous fs-metawrap commit Argh. I was sure I compiled this before pushing it. M src/lib-fs/istream-metawrap.c 2016-05-27 14:33:47 +0300 Timo Sirainen (d22b6aeaf) lib-fs: fs-metawrap: Improved error logging on corrupted files. M src/lib-fs/istream-metawrap.c 2016-05-27 13:33:21 +0300 Timo Sirainen (0af543c1f) lib-http: Default port for http should be 80, not 443. M src/lib-http/http-client-request.c 2016-05-26 19:13:40 +0300 Timo Sirainen (4fecb0a09) doveadm: Fixed sending command -parameters to doveadm-server M src/doveadm/doveadm-mail.c 2016-05-26 21:40:30 +0300 Timo Sirainen (901f49833) sdbox: Make sure we don't crash when altmove-flag is set but alt path is missing. M src/lib-storage/index/dbox-single/sdbox-file.c 2016-05-26 18:27:27 +0300 Timo Sirainen (bcb07f51d) lib-http: Improved error logging for net_set_*_buffer_size() failures. M src/lib-http/http-client-connection.c 2016-05-26 18:25:06 +0300 Timo Sirainen (db0f43524) dict-sql: Fixed memory leak M src/lib-dict/dict-sql-settings.c 2016-05-22 10:38:18 +0200 Stephan Bosch (03142e79f) lib-http: client: Created test program that triggers most possible error conditions. M src/lib-http/Makefile.am A src/lib-http/test-http-client-errors.c 2016-05-24 03:11:07 +0200 Stephan Bosch (b44c460e1) lib-http: test-http-payload: Added tests for the use of nested ioloops. M src/lib-http/test-http-payload.c 2016-05-23 21:57:18 +0200 Stephan Bosch (7362ba25c) lib-http: test-http-payload: Added cleanup code to make sure no child processes get orphaned at failures. Also handles SIGSEGV and SIGABRT. M src/lib-http/test-http-payload.c 2016-05-22 19:16:42 +0200 Stephan Bosch (844b0294f) lib-http: test-http-payload: Added -D option to easily enable debug mode. M src/lib-http/test-http-payload.c 2016-05-23 03:16:07 +0200 Stephan Bosch (f3f5732b2) lib-http: test-http-client: Callback is not called for explicitly aborted requests. Test request context was not freed in that case. M src/lib-http/test-http-client.c 2016-05-25 23:41:47 +0200 Stephan Bosch (57c339f4e) lib-http: client: Fixed bug in handling of lost connections while returning from another ioloop. At one instance the http_client_connection_is_ready() function could have destroyed the connection while the caller still depended on it. Renamed the http_client_connection_is_ready() function to http_client_connection_check_ready(). This now returns -1 when the connection got destroyed. Before it returned a bool that just indicated whether the connection was ready or not. So, there is no need anymore to preserve a connection reference while calling this function. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2016-05-23 02:38:49 +0200 Stephan Bosch (8a6dc5025) lib-http: client: Reworked connection close handling. Now, the peer is immediately notified of the lost connection. Before, this step was only taken when the connection was fully dereferenced. To prevent recursive notifications between peer and connection, handling the loss of a connection is deferred to the request handler. When a peer is freed, any associated lingering connections have conn->peer set to NULL. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2016-05-23 02:36:10 +0200 Stephan Bosch (7abab3b19) lib-http: client: Improved labeling of debug messages. Request label is corrected. Labels are now pre-composed and stored. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2016-05-22 12:48:37 +0200 Stephan Bosch (6ab81c81b) lib-http: client: Prevent useless and unexpected request callbacks during http_client_deinit(). Requests are now destroyed before queues, hosts, peers and connections. As a side-effect, requests are now removed from the client request list at http_client_request_destroy(), so that requests with lingering references will no longer make http_client_wait() hang. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2016-05-20 00:04:12 +0200 Stephan Bosch (c972eaa35) lib-http: client: Added settings to configure the connection's socket kernel buffer sizes. This is mainly useful for use in the lib-http test suite. M src/lib-http/http-client-connection.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2016-05-20 00:02:49 +0200 Stephan Bosch (8848174ce) lib: Implemented net_set_send_buffer_size() and net_set_recv_buffer_size(). These functions allow manipulating the kernel socket buffer sizes for a socket file descriptor. M src/lib/net.c M src/lib/net.h 2016-05-19 23:42:14 +0200 Stephan Bosch (1569b12af) lib-http: client: Removed curiously duplicated code. Probably a patch got applied with sufficient fuzz that it duplicated this code fragment, while it actually already existed. M src/lib-http/http-client-request.c 2016-05-21 13:17:58 +0200 Stephan Bosch (481b066e8) lib-http: client: peer: Improved debug message that shows the loss of a connection. M src/lib-http/http-client-peer.c 2016-05-21 00:16:21 +0200 Stephan Bosch (ebe0f5e38) lib-http: client: Made peer object reference-counted to prevent invalid memory access in request handling routine. Resetting the peer->handling_requests flag risked triggering a segfault, since the peer object could be deleted from within the request handler loop. M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c 2016-05-21 13:16:08 +0200 Stephan Bosch (3e9055cee) lib-http: client: Improved request reference counting in connection code. It should now always be clear when the connection object holds a reference to a request and when it is released. Only while the reference is held, req->conn points to a connection. This also makes the assertion in http_client_request_unref() more robust and clear. M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c 2016-05-22 10:42:01 +0200 Stephan Bosch (6bdb1b488) lib-http: client: Fixed reference counting for requests that are aborted due to an early server response. An additional http_client_request_unref() is (now) unneccessary. M src/lib-http/http-client-connection.c 2016-05-19 23:40:26 +0200 Stephan Bosch (43c49be6f) lib-http: client: Fixed reference counting for requests that are aborted due to having a broken outgoing payload stream. M src/lib-http/http-client-request.c 2016-05-18 19:40:32 +0300 Timo Sirainen (d5c665cf2) lib-http: Changed http_client_request_error to set request to NULL It's going to internally unreference it, so the caller should be aware of it also. I also changed request state check to be an assert, since I don't think there's any safe way this could work otherwise. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c 2016-05-21 00:16:38 +0200 Stephan Bosch (1c2f122ae) lib-http: response parser: Added check for the range of the response status value. A value of 666 was accepted inappropriately. M src/lib-http/http-response-parser.c 2016-05-25 22:29:47 +0300 Timo Sirainen (ba4626cd5) cassandra: Added metrics=path connect setting. Cassandra's metrics are written to the path in JSON format. It can be a file or a FIFO. The path supports expanding the standard global %variables, such as %{pid} M src/lib-sql/driver-cassandra.c 2016-05-25 22:08:04 +0300 Timo Sirainen (2c2934e71) dict: Added missing main.h from previous commit A src/dict/main.h 2016-05-25 20:00:01 +0300 Timo Sirainen (cbe49ba12) dict: Show command statistics in process title. M src/dict/Makefile.am M src/dict/dict-commands.c M src/dict/dict-commands.h M src/dict/dict-connection.c M src/dict/dict-connection.h M src/dict/dict-settings.c M src/dict/dict-settings.h M src/dict/main.c 2016-05-25 19:56:47 +0300 Timo Sirainen (b1d2b70ec) lib: Fixed crashes in timing_get_median() and timing_get_95th() These were writing outside allocated memory. They weren't actually used anywhere yet though. M src/lib/test-timing.c M src/lib/timing.c 2016-05-25 19:45:58 +0300 Timo Sirainen (65da08807) lib: Added timing_reset() M src/lib/test-timing.c M src/lib/timing.c M src/lib/timing.h 2016-05-19 19:15:49 -0500 J. Nick Koston (9f2f22889) dsync: race condition where done/finish is received after one side has closed We do not tell the remote we are closing if they have already told us because they close the connection after sending ITEM_FINISH or ITEM_DONE and will not be ever receive anything else from us unless it just happens to get combined into the same packet as a previous response and is already in the buffer. M src/doveadm/dsync/dsync-ibc-stream.c 2016-05-24 15:52:37 +0300 Timo Sirainen (838c70b2a) lib-stats: Allow unregistering + re-registering stats. Fixes: Panic: stats_register() called after stats_alloc_size() was already called - this will break existing allocations This could have happened with doveadm HTTP API when using multiple commands in same HTTP connection. M src/lib-stats/stats.c 2016-05-23 23:24:31 +0300 Timo Sirainen (5b4708775) lib-index: Fixed assert-crash caused by previous cache compression change. We can't call mail_cache_map() when cache file isn't open or we'll crash: Panic: file mail-cache.c: line 468 (mail_cache_map): assertion failed: (cache->need_compress_file_seq != 0 || MAIL_INDEX_IS_IN_MEMORY(cache->index)) M src/lib-index/mail-cache-compress.c 2016-05-23 18:46:09 +0300 Timo Sirainen (230586a16) lib-index: Make sure cache compression doesn't clear the file unneededly. This probably never happened with current code, except when the cache file was already broken. mail_cache_compress() unmapped cache when map_with_read==TRUE, but we never mapped it back. This would cause cache copying code to think cache was unusable and not copy anything. M src/lib-index/mail-cache-compress.c 2016-05-23 17:47:50 +0300 Timo Sirainen (86c4dc012) auth: Support %variable expansion for LDAP field names. For example this is now allowed: user_attrs = \ =namespace/%{ldap:enabledNamespace}/enabled=yes \ ... M src/auth/db-ldap.c 2016-05-23 13:12:41 +0300 Timo Sirainen (e181e75d2) lib-ldap: Use ldap_unbind_ext() instead of ldap_destroy() This allows it to compile with older LDAP libraries. Their behavior (at least in OpenLDAP) is identical as long as LDAP_OPT_CLIENT_CONTROLS haven't been changed, which we haven't. M src/lib-ldap/ldap-connection.c 2016-05-23 13:08:20 +0300 Timo Sirainen (7e35289ec) lib-ldap: Support libldap without LDAP_OPT_X_TLS_NEWCTX. M src/lib-ldap/ldap-connection.c 2016-05-20 15:55:52 +0300 Timo Sirainen (8c8f6ed0a) doveadm backup: Fixed unnecessary mailbox deletion. Broken by 79490ec1a. The idea is to delete the mailbox early to avoid unnecessary work, but we deleted it too early. If the last mail(s) were deleted instead of just expunging them we deleted the whole mailbox. M src/doveadm/dsync/dsync-mailbox-import.c 2016-05-20 13:53:01 +0300 Timo Sirainen (c8920d5f3) lib: Minor panic message improvement. M src/lib/ioloop-epoll.c 2016-05-19 23:19:29 +0300 Timo Sirainen (71ecc9759) lib-mail: Fixed istream-header-filter calling callback(hdr=NULL) It should do it on the following parsings as well if there were any callbacks that were called, or if the hdr==NULL callback added any headers. This is important because the hdr==NULL call could do some cleanups. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2016-05-19 15:19:21 +0300 Timo Sirainen (da574ef2d) lib: iostream-temp is a blocking ostream. It goes either to in-memory buffer or to a file. M src/lib/iostream-temp.c 2016-05-16 11:34:05 +0300 Baofeng Wang (b27a8a973) config: fix possible out-of-bound access in parsing function Add low-bound check when decreasing string pointer from tail. M src/config/config-parser.c 2016-05-18 22:38:24 +0300 Timo Sirainen (456602d34) lib-fs: istream-metawrap can now safely have a readable fd M src/lib-fs/istream-metawrap.c 2016-05-18 22:36:57 +0300 Timo Sirainen (d28179fd7) lib: Changed istream.abs_start_offset to be relative start_offset i_stream_get_absolute_offset() walks through the stream's parents to get the absolute offset. This allows streams to change their start_offset after they have already created (e.g. istream-metawrap). M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-fs/istream-metawrap.c M src/lib/iostream-temp.c M src/lib/istream-mmap.c M src/lib/istream-private.h M src/lib/istream.c M src/lib/ostream-file.c 2016-05-18 22:59:06 +0300 Timo Sirainen (79fff61b8) dict: Removed duplicate commit reply character This broke dict-client with error: Invalid commit reply, expected id=1: OO1 M src/dict/dict-commands.c 2016-05-18 22:51:46 +0300 Timo Sirainen (30be8c9be) lib: Compiler warning fix M src/lib/process-title.c 2016-05-18 22:51:31 +0300 Timo Sirainen (cd07d97b7) lib: Fixed memory leak in ostream-file unit test M src/lib/test-ostream-file.c 2016-05-18 16:03:34 +0300 Aki Tuomi (1904e2fc7) Make libbsd optional Also use setproctitle properly if libbsd is indeed used. M m4/arc4random.m4 M src/lib-master/master-service.c M src/lib/process-title.c M src/lib/process-title.h 2016-05-18 22:26:50 +0300 Timo Sirainen (7a1749056) lib-fs: istream-metawrap can't have a readable fd currently M src/lib-fs/istream-metawrap.c 2016-05-18 22:26:23 +0300 Timo Sirainen (a39c48f79) lib: ostream-file unit test: Test sendfile() M src/lib/test-ostream-file.c 2016-05-18 22:12:01 +0300 Timo Sirainen (e6e5e9c03) lib: ostream-file: Fixed o_stream_send_istream() within same file When copying content backwards. M src/lib/ostream-file.c M src/lib/test-ostream-file.c 2016-05-18 21:46:46 +0300 Timo Sirainen (21d094cf5) lib-imap-storage: Fixed fetching partial headers for message/rfc822 part Again broken by 333602c40. M src/lib-imap-storage/imap-msgpart.c 2016-05-18 21:41:49 +0300 Timo Sirainen (76d21e300) lib-imap-storage: Don't sort uninitialized array on invalid header list. M src/lib-imap-storage/imap-msgpart.c 2016-05-18 21:14:28 +0300 Timo Sirainen (564b73a66) lib-imap-storage: Removed wrong assert. Now that we're no longer putting the headers through istream-header-filter it doesn't necessarily have CRLFs. Broken by 333602c40. M src/lib-imap-storage/imap-msgpart.c 2016-05-18 14:56:59 +0300 Timo Sirainen (07bba7cf5) lib-mail: istream-header-filter - Don't return -2 too early We returned -2 after we already added the data to the buffer. We should have returned -2 only on the next read() call if nothing was skipped. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2016-05-18 14:52:03 +0300 Timo Sirainen (3f75daca2) lib-mail: Added asserts to message_get_*_size() M src/lib-mail/message-size.c 2016-05-18 14:27:03 +0300 Timo Sirainen (333602c40) lib-imap-storage: Don't double-filter HEADER.FIELDS (..) headers. M src/lib-imap-storage/imap-msgpart.c 2016-05-18 14:24:55 +0300 Timo Sirainen (049e3eaf8) lib-imap-storage: Minor error logging cleanup/fix. We read from input, not from mail_input. In theory it could have the actual error instead of mail_input (although right now it couldn't). M src/lib-imap-storage/imap-msgpart.c 2016-05-18 19:22:40 +0300 Timo Sirainen (56f5cea32) lib: istream-file: Fixed o_stream_send_istream() M src/lib/ostream-file.c 2016-05-18 18:51:55 +0300 Timo Sirainen (43f651585) lib-http: Fixed checking if istream or ostream needs waiting. M src/lib-http/http-client-request.c M src/lib-http/http-server-response.c 2016-05-18 18:48:27 +0300 Timo Sirainen (7420207c4) lib: If epoll_ctl() fails, panic instead of just fatal. This makes it easier to fix such bugs. M src/lib/ioloop-epoll.c 2016-05-18 18:44:10 +0300 Timo Sirainen (ea854edb5) lib-mail: Improve ostream-dot unit test M src/lib-mail/test-ostream-dot.c 2016-05-18 18:41:33 +0300 Timo Sirainen (bcab95c67) lib: ostream-escaped: Fixed setting offset M src/lib/ostream-escaped.c M src/lib/test-ostream-escaped.c 2016-05-18 18:42:14 +0300 Timo Sirainen (bf87a5247) lib: Added comment to what ostream.offset actually is M src/lib/ostream.h 2016-05-18 17:56:55 +0300 Timo Sirainen (fbae84cc7) lib-fs: ostream-metawrap: Fixed o_stream_send_istream() offset updates M src/lib-fs/ostream-metawrap.c 2016-05-18 17:45:09 +0300 Timo Sirainen (a06744657) lib: Don't set ostream buffer as blocking M src/lib/ostream-buffer.c 2016-05-18 17:42:06 +0300 Timo Sirainen (25ec868bd) lib: iostream-temp: Fixed sending more output after o_stream_send_istream() M src/lib/iostream-temp.c M src/lib/test-iostream-temp.c 2016-05-18 17:41:32 +0300 Timo Sirainen (c076ad69e) lib: iostream-temp: Fixed o_stream_send_istream() M src/lib/iostream-temp.c M src/lib/test-iostream-temp.c 2016-05-16 13:21:57 +0300 Timo Sirainen (f6d5c9fbd) Removed buffer_reset(). It was just a wrapper to buffer_set_used_size() and its comment was a bit confusing (or obsolete), since it wasn't actually immediately zeroing out the buffer. M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-sync-update.c M src/lib-mail/istream-header-filter.c M src/lib/buffer.c M src/lib/buffer.h M src/lib/test-pkcs5.c 2016-05-16 13:19:50 +0300 Timo Sirainen (94a6b3df8) lib: Updated buffer_set_used_size() comment and added unit test. M src/lib/buffer.h M src/lib/test-buffer.c 2016-05-16 21:03:35 +0300 Timo Sirainen (d04f3e064) global: Simplify code with the new o_stream_send_istream() API M src/doveadm/server-connection.c M src/imap/cmd-urlfetch.c M src/imap/imap-fetch-body.c M src/lib-fs/fs-api.c M src/lib-fs/ostream-metawrap.c M src/lib-http/http-client-request.c M src/lib-http/http-server-response.c M src/lib-http/test-http-payload.c M src/lib-imap-client/imapc-connection.c M src/lib/file-copy.c M src/lib/ostream.c M src/plugins/mail-filter/istream-ext-filter.c 2016-05-16 20:17:41 +0300 Timo Sirainen (1fb4c7c4c) lib: istream-sized should log errors with its own name, not parent's name M src/lib/istream-sized.c 2016-05-16 20:12:40 +0300 Timo Sirainen (0e0fe9bed) imap: Code cleanup - use istream-sized for GETMETADATA reply This avoids doing the same work explicitly. M src/imap/cmd-getmetadata.c 2016-05-16 20:06:30 +0300 Timo Sirainen (6f187ae85) global: Use o_stream_nsend_istream() where useful We can skip all of the io error handling and just leave it to o_stream_nfinish(). M src/doveadm/client-connection-http.c M src/doveadm/doveadm-fs.c M src/lib-fs/fs-metawrap.c M src/lib-lda/mail-send.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/plugins/fs-compress/fs-compress.c 2016-05-16 20:04:38 +0300 Timo Sirainen (b90fb7f78) lib: Added o_stream_nsend_istream() M src/lib/ostream.c M src/lib/ostream.h 2016-05-16 19:48:41 +0300 Timo Sirainen (6adf68365) lib: Simplified and clarified o_stream_send_istream() API M src/lib-fs/ostream-metawrap.c M src/lib/iostream-temp.c M src/lib/ostream-file.c M src/lib/ostream-private.h M src/lib/ostream.c M src/lib/ostream.h 2016-05-16 19:33:40 +0300 Timo Sirainen (8b2cf1c1b) lib: Added ostream.blocking boolean Similar to istream.blocking. M src/lib/ostream-buffer.c M src/lib/ostream-file.c M src/lib/ostream-null.c M src/lib/ostream.c M src/lib/ostream.h 2016-05-16 19:26:26 +0300 Timo Sirainen (9de176ef7) lib: Don't silently ignore partial writes for o_stream_nsend() Normally o_stream_nsend() should be used only for blocking streams or streams with infinite (or "enough") buffer space. M src/lib/ostream-private.h M src/lib/ostream.c M src/lib/ostream.h 2016-05-16 19:16:55 +0300 Timo Sirainen (61d89b0ca) lmtp: Fixed error logging when writing to temp file M src/lmtp/commands.c 2016-05-16 16:58:44 +0300 Timo Sirainen (f988b93c2) lib: Removed ostream.last_failed_errno It's been identical to ostream.stream_errno for a while now. M src/lib-index/mail-index-strmap.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/maildir/maildir-save.c M src/lib/ostream.c M src/lib/ostream.h 2016-05-16 16:55:34 +0300 Timo Sirainen (08ab0b21d) lib-compression: Changed impossible errors to asserts. o_stream_flush() no longer calls the stream's flush() if stream has failed. M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c 2016-05-16 16:27:53 +0300 Timo Sirainen (2fb246462) lib: istream-file: Code cleanup No functional changes M src/lib/ostream-file.c 2016-05-16 16:09:52 +0300 Timo Sirainen (f339a8e73) global: Don't assume o_stream_send_istream() return bytes sent. This won't be true soon after its API changes. M src/imap/cmd-getmetadata.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h M src/lib-fs/fs-api.c M src/lib-http/test-http-payload.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib/file-copy.c 2016-05-16 15:49:08 +0300 Timo Sirainen (0f3d4fbcf) global: Use [io]_stream_get_error() insted of %m M src/auth/mech-winbind.c M src/auth/userdb-passwd-file.c M src/director/director-connection.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-replicator.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-zlib.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-http/http-server-response.c M src/lib-index/mail-index-strmap.c M src/lib-lda/duplicate.c M src/lib-lda/lmtp-client.c M src/lib-lda/smtp-client.c M src/lib-master/anvil-client.c M src/lib-master/master-instance.c M src/lib-master/master-service-settings.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib/json-parser.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile-update.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/fts-expunge-log.c 2016-05-16 15:34:49 +0300 Timo Sirainen (43cc94434) global: Code cleanup - remove unnecessary errno changes. These were left behind from changing %m to [io]_stream_get_error() M src/doveadm/dsync/dsync-mailbox-import.c M src/imap/cmd-append.c M src/imap/cmd-urlfetch.c M src/lib-http/http-client-request.c M src/lib-imap-storage/imap-msgpart.c M src/lib-storage/index/index-mail-binary.c 2016-05-16 15:22:11 +0300 Timo Sirainen (8acb8deef) dbox: iostream error logging improvements. M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-save.c 2016-05-16 21:53:00 +0300 Timo Sirainen (651f981ca) global: Replaced all i_stream_read_data() with _more() and _bytes() M src/imap-hibernate/imap-client.c M src/lib-compression/compression.c M src/lib-compression/istream-zlib.c M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c M src/lib-http/test-http-payload.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-parser.c M src/lib-mail/message-size.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/login-common/login-proxy.c 2016-05-16 21:51:56 +0300 Timo Sirainen (d868a0463) global: Fixed slighty wrong i_stream_read_data() with _read_bytes() These calls were reading one byte more than they were intended to read. This didn't really cause any problems, but now they're correct. M src/lda/main.c M src/lib-compression/istream-lz4.c M src/lib-lda/duplicate.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/plugins/fts/fts-expunge-log.c 2016-05-18 09:33:15 +0300 Aki Tuomi (4b5a2e923) doveadm-mailbox-delete: Restore recursive parameter M src/doveadm/doveadm-mail-mailbox.c 2016-05-18 09:29:04 +0300 Aki Tuomi (c7fd0af4f) dict: Fix crash when no dictionaries defined M src/dict/dict-connection.c 2016-05-17 00:00:43 +0300 Timo Sirainen (5ceeb24b0) imap: Include sync timing information in tagged command replies. Show it only when it's larger than 0 to avoid unnecessary output. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-sync.c 2016-05-17 23:51:43 +0300 Aki Tuomi (5f7f5baf6) doveadm-mail-mailbox: Whitespace fix M src/doveadm/doveadm-mail-mailbox.c 2016-05-17 23:31:29 +0300 Aki Tuomi (c220c8cd3) doveadm-mailbox: Add update subcommand M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-05-15 14:53:24 +0300 Timo Sirainen (44ef49403) lib-mail: Fixed istream-header-filter callback's matched with eoh Reversed the matched-parameter handling for hdr->eoh, so it's consistent with non-eoh headers. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-05-12 17:45:34 -0400 Timo Sirainen (2a444bfed) lib-ldap: Fixed assert-crash when killing LDAP connection. libldap may have already closed the fd, so with epoll io_remove() would try to remove it and crash with: Panic: epoll_ctl(del, 12) failed: Bad file descriptor M src/lib-ldap/ldap-connection.c 2016-05-16 18:43:52 +0200 Stephan Bosch (d3b0b5d23) uri-util: Changed URI host/authority parsing API to not use a boolean. The boolean indicated whether the basic reg-name syntax or the more limited Internet host name syntax was to be expected. This change creates separate functions for this. M src/lib-http/http-url.c M src/lib-imap/imap-url.c M src/lib/uri-util.c M src/lib/uri-util.h 2016-05-16 18:21:30 +0200 Stephan Bosch (14383bf2b) uri-util: Two ATTR_NULL specifications were misplaced or wrong. M src/lib/uri-util.c 2016-05-16 18:19:24 +0200 Stephan Bosch (f95afa9df) uri-util: The uri_parse_host_name_dns() would segfault if the hostname_r parameter was NULL. M src/lib/uri-util.c 2016-02-08 19:30:39 +0200 Phil Carmody (918498318) lib: istream - migrate more to i_stream_read_more() More coccinelle semantic patching, again hand-checked. git grep 'i_stream_read_data' | sed s/:.*// | \ while read f; do spatch --sp-file istream0.cocci --in-place "$f" ; done -- 8< --- istream0.cocci --- @@ expression e1, e2, e3; @@ - i_stream_read_data(e1, e2, e3, 0) + i_stream_read_more(e1, e2, e3) -- 8< --- end Signed-off-by: Phil Carmody M src/doveadm/dsync/dsync-ibc-stream.c M src/lib-compression/istream-lz4.c M src/lib-http/http-header-parser.c M src/lib-http/http-transfer-chunked.c M src/lib-lda/lmtp-client.c 2016-02-08 19:26:20 +0200 Phil Carmody (573424407) lib: istream - more migration to i_stream_read_bytes() This time a coccinelle semantic patch, again hand checked: git grep 'i_stream_read_data' | sed s/:.*// | \ while read f; do spatch --sp-file istream.cocci --in-place "$f" ; done -- 8< --- istream.cocci --- @@ expression e1, e2, e3, e4; @@ - i_stream_read_data(e1, e2, e3, e4 - 1) + i_stream_read_bytes(e1, e2, e3, e4) -- 8< --- end Signed-off-by: Phil Carmody M src/lib-compression/compression.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-zlib.c M src/lib-fs/fs-api.c M src/lib-index/mail-index-strmap.c M src/lib-lda/duplicate.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib/istream.h M src/lib/ostream-file.c M src/plugins/fts/fts-expunge-log.c 2016-02-08 18:55:32 +0200 Phil Carmody (534e41e43) lib: istream - migrate to i_stream_read_bytes() Scripted to pick off the low hanging fruit, one liners with an explicit '-1' in the final parameter, but hand-checked. git grep 'i_stream_read_data.*, [^,]*- \?1)' | sed s/:.*// | \ xargs sed -i -e 's/i_stream_read_data(\(.*\), \(.*\), \(.*\), \(.*[^ ]\) \?- \?1)/i_stream_read_bytes(\1, \2, \3, \4)/' Signed-off-by: Phil Carmody M src/doveadm/doveadm-dump-dbox.c M src/lib-compression/compression.c M src/lib-fs/ostream-cmp.c M src/lib-index/mail-index-strmap.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/list/subscription-file.c M src/lib/istream.h 2016-02-08 18:43:32 +0200 Phil Carmody (3858a7a5d) lib: istream - migrate to i_stream_read_more() Scripted to find all the low-hanging-fruit (single line calls), but hand-checked: git grep i_stream_read_data.*,\ 0\) | sed s/:.*// | \ xargs sed -i -e 's/i_stream_read_data(\(.*\), \(.*\), \(.*\), 0)/i_stream_read_more(\1, \2, \3)/' Signed-off-by: Phil Carmody M src/director/director-test.c M src/doveadm/doveadm-fs.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-zlib.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mailbox-import.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/cmd-setmetadata.c M src/lda/main.c M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-compression/test-compression.c M src/lib-dict-extra/dict-fs.c M src/lib-fs/fs-api.c M src/lib-http/http-message-parser.c M src/lib-http/test-http-client.c M src/lib-http/test-http-transfer.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/message-size.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-istream-binary-converter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/mailbox-attribute.c M src/lib/ostream.c M src/lib/test-istream-unix.c M src/login-common/client-common-auth.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts/fts-parser-tika.c M src/plugins/mail-filter/ostream-ext-filter.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/pop3/pop3-commands.c 2016-02-08 18:32:10 +0200 Phil Carmody (09142ea11) lib: istream - provide alternatives to i_stream_read_data() Providing as a parameter the number of bytes that you would be disappointed to receive was confusing compared to providing the number that you would be happy to receive. This lets us get rid of all the '-1's in the callers. The callers which used 0 as a parameter were so common that it's worth providing a separate API just to simplify their demands. Deep down, these are still the same underlying function. Currently we route the new API through the old one, but eventually, the old API can be routed through the new one, so that the friendlier interface has the simplest implementation. Signed-off-by: Phil Carmody M src/lib/istream.h 2016-05-15 00:22:12 +0200 Stephan Bosch (9aa483ebc) uri-util: Added documentation for all functions in header. M src/lib/uri-util.h 2016-05-08 23:44:42 +0200 Stephan Bosch (4e52bade0) uri-util: Made URI encoding functions accept NULL pointer for additional escaped characters. M src/lib/uri-util.c M src/lib/uri-util.h 2016-05-08 23:40:38 +0200 Stephan Bosch (e4e9ba5f4) uri-util: Made uri_data_encode() public. M src/lib/uri-util.c M src/lib/uri-util.h 2016-05-08 23:30:05 +0200 Stephan Bosch (af53c056c) uri-util: Improved implementation of uri_data_encode(). M src/lib/uri-util.c 2016-05-08 23:12:07 +0200 Stephan Bosch (b4167b174) uri-util: Reworked URI scheme parsing. Made uri_cut_scheme() use uri_parse_scheme() internally rather than the other way around. M src/lib-http/http-url.c M src/lib-imap/imap-url.c M src/lib/uri-util.c 2016-05-08 23:09:33 +0200 Stephan Bosch (66134fbce) lib-imap: Started using struct uri_host in struct imap_url. M src/imap-login/client-authenticate.c M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap/imap-url.c M src/lib-imap/imap-url.h M src/lib-imap/test-imap-url.c 2016-05-08 23:08:00 +0200 Stephan Bosch (f74dbd3ff) lib-http: Started using struct uri_host in struct http_url. M src/lib-http/http-client-host.c M src/lib-http/http-client-request.c M src/lib-http/http-url.c M src/lib-http/http-url.h M src/lib-http/test-http-client.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-url.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts/fts-parser-tika.c 2016-05-08 23:06:23 +0200 Stephan Bosch (8d2d2780c) uri-util: Split struct uri_host from uri_authority. Adds support for parsing host separately and manipulating host struct. M src/lib-http/http-url.c M src/lib-imap/imap-url.c M src/lib/uri-util.c M src/lib/uri-util.h 2016-05-08 23:03:38 +0200 Stephan Bosch (62ed3307f) uri-util: Added complete syntax comment. M src/lib/uri-util.c 2016-05-09 00:31:43 +0200 Stephan Bosch (a643e1e3e) uri-util: Added support for initializing the URI parser from data. M src/lib/uri-util.c M src/lib/uri-util.h 2016-05-09 00:30:14 +0200 Stephan Bosch (b7e953d7e) uri-util: Parsing of unreserved syntax erroneously included percent encoding. This functionality is currently not used, so no problems would occur. M src/lib/uri-util.c M src/lib/uri-util.h 2016-05-08 22:59:09 +0200 Stephan Bosch (b0dfc8fc0) uri-util: Implemented proper parsing of DNS-based host name for URI schemes that use DNS host names, such as http and imap. M src/lib-http/http-url.c M src/lib-http/test-http-url.c M src/lib-imap/imap-url.c M src/lib-imap/test-imap-url.c M src/lib/uri-util.c M src/lib/uri-util.h 2016-05-08 22:56:59 +0200 Stephan Bosch (32f28ff76) uri-util: Added public function for parsing single percent encoding instances. M src/lib/uri-util.c M src/lib/uri-util.h 2016-05-08 22:55:25 +0200 Stephan Bosch (f883bf3ef) uri-util: Removed have_port and have_host_ip flags. Presence of port can be tested with port != 0. Presence of IP can be tested with ip->family != 0. M src/imap-login/client-authenticate.c M src/lib-http/http-client-host.c M src/lib-http/http-client-request.c M src/lib-http/http-url.c M src/lib-http/http-url.h M src/lib-http/test-http-client.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-url.c M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap/imap-url.c M src/lib-imap/imap-url.h M src/lib-imap/test-imap-url.c M src/lib/uri-util.c M src/lib/uri-util.h 2016-05-15 17:25:17 +0300 Aki Tuomi (0edb839b5) lib-ldap: Do not create new context and lose settings M src/lib-ldap/ldap-connection.c 2016-05-14 22:49:53 +0200 Stephan Bosch (a29f6be09) lib-mail: istream-qp-decoder: For efficiency, avoid copying data between decode buffer and stream buffer. Instead, use the decode buffer directly as stream buffer. M src/lib-mail/istream-qp-decoder.c 2016-05-15 01:17:18 +0300 Timo Sirainen (ec9ed7c72) lib-ldap: Compiling fix - don't pass through void return M src/lib-ldap/ldap-client.c 2016-05-13 14:22:40 -0400 Timo Sirainen (47d439878) imap: Set command start timestamps earlier. Previously timing statistics in taglines weren't shown commands that didn't read any parameters. Also the timings now include the time speng reading command parameters from client. For example: a list "" {1} + OK % * LIST (\HasNoChildren) "/" INBOX a OK List completed (0.001 + 1.214 secs). M src/imap/imap-client.c 2016-05-13 13:35:50 -0400 Timo Sirainen (31fc5ca96) lib: Fixed istream_seekable.stat() to return correct size. It was supposed to read until end of the stream, but it did it only when stat() was called while stream was still fully in memory. M src/lib/istream-seekable.c 2016-05-13 09:56:08 -0400 Timo Sirainen (ed47ce764) lib-fs: Make sure fs-metawrap catches all write errors. The full istream may not have been written in case ostream only partially wrote the data (e.g. out of disk space?) M src/lib-fs/fs-metawrap.c 2016-05-13 09:48:13 -0400 Timo Sirainen (da653f208) lib-fs: If fs-metawrap sees truncated header, it should return error. M src/lib-fs/istream-metawrap.c 2016-05-13 09:23:52 -0400 Timo Sirainen (6eb019208) lib: Fixed potential crash in i_stream_stat() failures. We shouldn't have been copying parent's stream_errno here. Especially because the parent can be NULL. M src/lib/istream.c 2016-05-13 13:10:04 +0300 Aki Tuomi (75a7ba70c) dict: Set default transaction commit callback Removes need for NULL check on drivers M src/lib-dict/dict.c 2016-05-10 17:09:02 -0400 Timo Sirainen (25761530d) lib-storage: Fixed istream error handling while saving mails. We might have logged them as write errors, or we might have ignored the error if i_stream_read() failed. Now the behavior is consistent. M src/lib-storage/index/index-storage.c 2016-05-10 17:06:54 -0400 Timo Sirainen (c68f28e2c) lib-storage: Moved common code to index_storage_save_continue() M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-save.c 2016-05-10 20:37:55 +0200 Stephan Bosch (7c91b85fa) Added LIBDOVECOT_SQL_INCLUDE to dovecot-config and dovecot.m4. M dovecot-config.in.in M m4/dovecot.m4 2016-05-09 11:08:33 +0300 Martti Rannanjärvi (2da53a58a) lib: remove failed bool from sized_istream struct This is no longer needed as we are now checking for stream_errno also in istream.c M src/lib/istream-sized.c 2016-05-10 13:51:29 +0300 Martti Rannanjärvi (a298a43f6) doc: remove doveadm mount manpages M doc/man/Makefile.am D doc/man/doveadm-mount.1.in M doc/man/doveadm.1.in 2016-05-12 15:10:47 -0400 Timo Sirainen (c24b4f9c4) lib-fs: Added FS_PROPERTY_FASTCOPY_CHANGED_METADATA M src/lib-fs/fs-api.h 2016-05-12 08:09:56 -0400 Timo Sirainen (52ac19fa6) lib-http: Queue's delayed timeout handler wasn't removed after work was done. M src/lib-http/http-client-queue.c 2016-05-12 07:24:39 -0400 Timo Sirainen (526af6914) lib-fs: Minor code cleanup M src/lib-fs/fs-api.c 2016-05-12 07:23:51 -0400 Timo Sirainen (eaac25849) lib-fs: Set fs error on fs_write_stream_abort() Probably would be nice for fs_write_stream_abort() to have an error string parameter, which could be used instead of this generic error. M src/lib-fs/fs-api.c 2016-05-12 07:23:04 -0400 Timo Sirainen (d4a85e170) lib-fs: Added asserts to make sure async writes are finished before close M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2016-05-12 07:21:38 -0400 Timo Sirainen (8b8534cc0) fs-metawrap: Minor code cleanup temp_output==NULL, so these calls are equal. M src/lib-fs/fs-metawrap.c 2016-05-12 07:18:49 -0400 Timo Sirainen (5a20b6bb2) fs-metawrap: Propagate fs_write_stream_abort() to parent always It needed to be done also when temp_output==NULL, because we had already started sending it to parent, but async parent wasn't being finished. M src/lib-fs/fs-metawrap.c 2016-05-12 07:15:41 -0400 Timo Sirainen (cc8fdda7b) fs-randomfail: Set fs error always when injecting failure. It was done in some places, but not everywhere. M src/lib-fs/fs-randomfail.c 2016-05-12 05:40:29 -0400 Timo Sirainen (5a6ad44f1) lmtp: Removed (Dovecot) from Received header. Some people want to hide it, and I don't really see much benefit in including it anyway. So lets just hide it from everyone. M src/lmtp/commands.c 2016-05-11 16:58:59 -0400 Timo Sirainen (9254a9e94) dict-sql: Cache reading settings files. The settings were read for every dict init, which was done for every new dict connection. This was using a lot of CPU. There are usually only a couple dict-sql settings files, so we cache all of the ones we read. M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql-settings.h M src/lib-dict/dict-sql.c 2016-05-11 16:57:33 -0400 Timo Sirainen (300c5b822) lib-sql: Memory leak fix when freeing sql dbs from cache Normally happened only at deinit. M src/lib-sql/sql-db-cache.c 2016-05-11 05:19:14 -0400 Timo Sirainen (37312679c) dsync: Fixed potential crash This seems to be possible with dsync_mailbox_find_common_expunged_uid() -> dsync_mailbox_common_uid_found() -> dsync_mailbox_rewind_search() -> following search doesn't find anything. M src/doveadm/dsync/dsync-mailbox-import.c 2016-05-10 17:35:43 -0400 Timo Sirainen (0d7325fd1) lib-ldap: Reverted previous commit for now. We don't have libdovecot built at at this stage. But we can't build it earlier, because it needs lib-dict-extra, which needs lib-ldap. So we have cyclical dependencies now. M src/lib-ldap/Makefile.am 2016-05-10 17:25:20 -0400 Timo Sirainen (6bff0a08e) lib-ldap: Add libdovecot dependency to libdovecot-ldap Required for linking to work on OSX. M src/lib-ldap/Makefile.am 2016-05-10 16:22:23 -0400 Timo Sirainen (948b838c8) lib: Fixed crash when closing a failed istream-concat i_stream_concat_seek() could have set cur_input==NULL and we still attempted to seek the cur_input at close time. M src/lib/istream-concat.c 2016-05-10 10:42:33 -0400 Timo Sirainen (04a7e8986) lib-index: "first saved UID of the day" wasn't updated right always. It was using the UID of the first append. But it may not have been the lowest UID. Do this after the appends are first sorted by their UID. M src/lib-index/mail-index-transaction-finish.c 2016-05-10 00:42:51 +0200 Stephan Bosch (d9be91cb4) Added liblzma bug to Valgrind suppressions file. It caused `make test` to fail with valgrind. Occurred at least for Debian Jessie with liblzma package version 5.1.1alpha+20120614-2+b3. M run-test-valgrind.supp 2016-04-20 17:23:12 +0300 Baofeng Wang (a11c0bcd4) lib-storage: Add %{session} to mail_log_prefix by default Parameter is added to initialization string. M doc/example-config/conf.d/10-logging.conf M src/lib-storage/mail-storage-settings.c 2016-05-09 10:40:56 +0300 Martti Rannanjärvi (52041ed69) lib: check stream_errno too when checking whether istream is closed M src/lib/istream.c 2016-04-24 21:06:41 +0300 Aki Tuomi (19a02b635) lib: Use arc4random if present M configure.ac A m4/arc4random.m4 M src/lib/rand.c M src/lib/rand.h M src/lib/randgen.c 2016-04-12 10:25:09 +0300 Aki Tuomi (0bd188339) lib: Do not use OpenSSL to read random bytes M configure.ac M src/lib/randgen.c 2016-05-09 08:04:39 +0300 Timo Sirainen (d72603a00) README: Added missing supported RFCs M README 2016-05-09 00:55:21 +0300 Timo Sirainen (3fdae9cc0) lib-dict: Compiler warning fix I don't think it's possible that error was used uninitialized, but some gcc version seems to think so. M src/lib-dict/dict-redis.c 2016-05-06 17:28:33 +0300 Timo Sirainen (cbe2d47fd) dict-client: Use standard str_tabescape-functions There's no reason to reimplement them here separately. M src/lib-dict/dict-client.c M src/lib-dict/dict-client.h 2016-05-06 15:14:02 +0300 Timo Sirainen (661998e2c) lib-dict: dict_transaction_commit*() returns now error string M src/dict/dict-commands.c M src/doveadm/doveadm-dict.c M src/lib-dict-extra/dict-fs.c M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h M src/lib-fs/fs-dict.c M src/lib-storage/index/index-transaction.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/last-login/last-login-plugin.c M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota.c 2016-05-06 13:45:34 +0300 Timo Sirainen (c2a66e795) lib-dict: Changed internal transaction_commit() to return void Somewhat simplifies the code now that it doesn't have to both call a callback and return the same ret. M src/lib-dict-extra/dict-fs.c M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-private.h M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c 2016-05-06 13:44:15 +0300 Timo Sirainen (b2d3b5298) dict-memcached-ascii: Fixed async commit M src/lib-dict/dict-memcached-ascii.c 2016-05-06 13:42:11 +0300 Timo Sirainen (ff3c2a32a) dict-redis: Fixed memory leak in async commit M src/lib-dict/dict-redis.c 2016-05-06 13:29:27 +0300 Timo Sirainen (055389c58) lib-dict: dict_iterate_deinit() returns now error string M src/auth/userdb-dict.c M src/dict/dict-commands.c M src/doveadm/doveadm-dict.c M src/lib-dict-extra/dict-fs.c M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dict/dict-private.h M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h M src/lib-fs/fs-dict.c M src/lib-storage/index/index-attribute.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/expire/doveadm-expire.c 2016-05-06 13:10:42 +0300 Timo Sirainen (c4478af52) lib-dict: Changed dict_wait() to return void. If it encounters any failures, it should just make sure to abort any pending async requests before returning. M src/lib-dict-extra/dict-ldap.c M src/lib-dict/dict-client.c M src/lib-dict/dict-private.h M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h M src/lib-storage/index/index-storage.c M src/lib-storage/mail-user.c M src/plugins/last-login/last-login-plugin.c M src/plugins/quota/quota-dict.c 2016-05-06 13:08:06 +0300 Timo Sirainen (d5fea071f) dict-client: dict_wait() can't really fail M src/lib-dict/dict-client.c 2016-05-06 12:59:38 +0300 Timo Sirainen (6cfe560af) dict: Pass through dict_lookup() error from dict server to client M src/dict/dict-commands.c M src/lib-dict/dict-client.c 2016-05-06 12:33:11 +0300 Timo Sirainen (b5052fbfd) lib-dict: dict_lookup() returns now error string M src/auth/db-dict.c M src/doveadm/doveadm-dict.c M src/lib-dict-extra/dict-fs.c M src/lib-dict-extra/dict-ldap.c M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-private.h M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h M src/lib-fs/fs-dict.c M src/lib-storage/index/index-attribute.c M src/plugins/expire/expire-plugin.c M src/plugins/quota/quota-dict.c 2016-05-06 12:19:21 +0300 Timo Sirainen (8f9a18189) lib-dict: Moved/removed explicit stack frames in dict drivers. Added them back to dict_set/unset/atomic_inc() in dict.c. Others are unlikely to be called many times. M src/lib-dict-extra/dict-ldap.c M src/lib-dict/dict-client.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c 2016-05-06 11:43:45 +0300 Timo Sirainen (20e042272) lib-dict: Renamed dict_init_full() to dict_init() M src/auth/db-dict.c M src/dict/dict-connection.c M src/doveadm/doveadm-dict.c M src/lib-dict/dict.c M src/lib-dict/dict.h M src/lib-fs/fs-dict.c M src/lib-storage/index/index-attribute.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/last-login/last-login-plugin.c M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota.c 2016-05-06 00:17:31 +0300 Timo Sirainen (9284599e2) lib-http: If connect fails, include attempt count and total time in error. This will produce errors such as: 9002 connect(1.2.3.4:801) failed: Connection timed out in 1.001 secs (4 attempts in 4.706 secs) M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c 2016-05-08 22:22:25 +0300 Timo Sirainen (5d31e4b38) lib-http: Allow http_client_settings.ssl==NULL M src/lib-http/http-client.c 2016-05-07 20:06:02 +0300 Timo Sirainen (2ed05ea82) config: Added support for SET_TIME_MSECS M src/config/config-request.c 2016-05-06 21:45:44 +0300 Timo Sirainen (7cd055a21) cassandra: Support milliseconds for request/connect_timeout M src/lib-sql/driver-cassandra.c 2016-05-06 21:44:22 +0300 Timo Sirainen (f69f73731) lib-settings: Added SET_TIME_MSECS type. M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h 2016-05-06 21:43:04 +0300 Timo Sirainen (2a8a6e1a8) lib-settings: Added settings_get_time_msecs() M src/lib-settings/Makefile.am M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h A src/lib-settings/test-settings-parser.c 2016-05-06 21:38:30 +0300 Timo Sirainen (5d1653a01) lib-settings: settings_get_time() requires explicit unit now, except for 0. This means that all the time interval settings in dovecot.conf must no longer be simply a number. M src/lib-settings/settings-parser.c 2016-05-03 19:42:08 +0300 Timo Sirainen (c001f4b96) doveadm fetch: Translate commas to spaces in body|binary.
with This way we can do e.g.: doveadm fetch 'uid body.header.fields(from,to,subject)' ... Although in theory we could also change the parser to allow spaces as long as they're inside (..), but this is probably too much extra effort. M src/doveadm/doveadm-mail-fetch.c 2016-05-03 19:39:44 +0300 Timo Sirainen (6c1b37194) lib-imap-storage: Allow HEADER.FIELDS(..) without space before '(' This is to allow doveadm fetch to use it. Attempting to do this without a space in IMAP already fails elsewhere: x fetch 1 body.peek[header.fields(from to)] x BAD Error in IMAP command FETCH: Invalid characters in atom M src/lib-imap-storage/imap-msgpart.c 2016-05-03 14:58:37 +0300 Timo Sirainen (2d7da70c0) doveadm fetch: Fixed logging errors for istream failures M src/doveadm/doveadm-mail-fetch.c 2016-05-03 14:54:28 +0300 Timo Sirainen (f24b245f4) doveadm fetch: Added body.
and binary.
fields These correspond to IMAP BODY[
]. M src/doveadm/Makefile.am M src/doveadm/doveadm-mail-fetch.c 2016-05-06 17:35:10 +0300 Timo Sirainen (09cd60ceb) dict-client: Added idle_msecs= parameter This can be useful when connected to dict-async server where extra idling connections don't matter so much as with blocking dict servers. M src/lib-dict/dict-client.c 2016-04-20 14:33:57 +0300 Martti Rannanjärvi (44aebbf6d) doveadm: error to print formatted without format This changes the segfault of `doveadm -f formatted ...` to an error. M src/doveadm/doveadm-print-formatted.c 2016-04-08 14:19:52 +0300 Martti Rannanjärvi (5b02d2191) lib: Fixed potential collision in guid_generate() There wasn't enough padding for tv_nsec and it was also assuming 16 bit PIDs. Because of these there was a tiny possibility of two guid_generate() calls returning the same GUID. This changes the GUID format a bit, but it was used only by sdbox code, which doesn't assume anything about the GUID format. M src/lib/guid.c 2016-04-26 10:39:21 +0300 Martti Rannanjärvi (c275cef63) lib-http: use ssl_iostream_settings in http_client_settings M src/lib-http/http-client-connection.c M src/lib-http/http-client.c M src/lib-http/http-client.h M src/lib-http/test-http-client.c 2016-04-26 10:32:16 +0300 Martti Rannanjärvi (173d1d747) lib-ssl-iostream: move ssl_iostream_settings_dup to iostream-ssl.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2016-04-20 17:27:19 +0300 Baofeng Wang (2795f6183) lib-storage: remove mdbox_purge_preserve_alt setting remove setting and its reference. M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-settings.h 2016-05-06 22:24:20 +0300 Timo Sirainen (89b3a5314) imap: Avoid assert-crash after a failed mailbox sync. We didn't close the mailbox and we didn't update message counts, so we could have crashed with: Panic: Message count decreased M src/imap/imap-sync.c 2016-05-05 21:26:37 +0300 Timo Sirainen (a16057fc5) stats: Handle getrusage() errors better I'm not aware of these errors actually happening anywhere, but its error handling wouldn't have been correct if previous getrusage() calls had succeeded. Now if it fails, log an error once and just keep on using the last working rusage. M src/plugins/stats/mail-stats-fill.c 2016-05-05 21:23:17 +0300 Timo Sirainen (553dc92ad) stats: Work around shrinking system CPU usage Happening at least in Debian's Linux kernel 4.3.0-1-amd64. getrusage() may returns ru_stime = 4000 or 8000, but later it drops to 0. We'll just work around this by switching to the previous working ru_stime. This fixes errors like: Error: stats: session stats shrank: sys_cpu 0.0 < 0.4000 M src/plugins/stats/mail-stats-fill.c 2016-05-06 12:51:28 +0300 Aki Tuomi (04d809e94) dict-ldap: Properly duplicate result M src/lib-dict-extra/dict-ldap.c 2016-05-06 17:24:42 +0300 Timo Sirainen (6ea49f0ff) lib: Added t_str_tabunescape() M src/lib/strescape.c M src/lib/strescape.h M src/lib/test-strescape.c 2016-05-03 17:43:00 +0300 Timo Sirainen (6d25571dd) auth: Makefile dependency fix Hopefully fixes: mv: cannot stat '.deps/auth-stats.Tpo': No such file or directory M src/auth/Makefile.am 2016-05-06 14:34:57 +0300 Timo Sirainen (5af5137f6) lib: Added i_stream_get_disconnect_reason() M src/lib/istream.c M src/lib/istream.h 2016-05-06 14:22:29 +0300 Timo Sirainen (c61779cfa) lib: Improved connection_disconnect_reason() M src/lib/connection.c 2016-05-05 18:10:46 +0300 Timo Sirainen (e5bc82395) lazy-expunge: Handle mailbox create race conditions. Don't log an error if another process just created the lazy-expunge mailbox. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-05-05 16:15:15 +0300 Timo Sirainen (fece64e92) lib-fs: Fixes to stats count tracking fs_exists(), fs_copy(), fs_rename() and fs_delete() could have increased the count multiple times on async operations. M src/lib-fs/fs-api.c 2016-05-05 14:58:46 +0300 Timo Sirainen (b11876430) stats: Fixed ADD-USER stats tracking (auth stats) M src/stats/mail-user.c 2016-05-04 18:34:59 +0300 Timo Sirainen (a9be54bbb) lib-fs: fs-metawrap stat() error handling improvement. We can't just treat i_stream_get_size() returning 0 as the reason being istream is async and not fully read. It might be, but it might also be because of other reasons. And since we're closing the istream we couldn't even properly finish up the async handling. So for now just return an error if we see this happening. M src/lib-fs/fs-metawrap.c 2016-05-04 18:24:03 +0300 Timo Sirainen (07b3a7d81) lib: istream's max_buffer_size=0 means 0, not unlimited. Make sure we don't grow the buffer size then. M src/lib/istream.c 2016-05-04 15:36:44 +0300 Timo Sirainen (362db49a9) imap: Set client_command_context.tagline_reply before syncing. Command post-hooks can't see it otherwise. M src/imap/imap-sync.c 2016-05-03 22:18:54 +0300 Timo Sirainen (6d02ce5bf) dsync: Fixed assert-crash if mailbox_attribute_set() fails We shouldn't set importer->mail_error, because we're not going to fail the import. Fixes assert-crash: dsync-mailbox-import.c: line 2812 (dsync_mailbox_import_deinit): assertion failed: (importer->failed == (importer->mail_error != 0)) M src/doveadm/dsync/dsync-mailbox-import.c 2016-05-03 20:28:42 +0300 Timo Sirainen (6e81d67a4) lib-mail: Fixed istream-header-filter unit test names M src/lib-mail/test-istream-header-filter.c 2016-05-03 20:20:28 +0300 Timo Sirainen (2fa41e3cd) doveadm who: Fixed listing LMTP sessions M src/doveadm/doveadm-who.c 2016-05-03 20:17:12 +0300 Timo Sirainen (56bcd695f) lib: Added more unit tests to str_*() M src/lib/test-str.c 2016-05-03 20:15:23 +0300 Timo Sirainen (cb06054f8) config: Fixed namespaces to work again Broken by 26a6ff7f0. old_settings_handle() should have returned FALSE for settings it didn't handle. M src/config/old-set-parser.c 2016-04-26 16:43:15 +0300 Baofeng Wang (71748cca1) global: Use mail_user_plugin_getenv_bool() wherever possible New API is used to check boolean setting OR exsitence of an env variable. M src/plugins/expire/expire-plugin.c M src/plugins/fts/fts-storage.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/stats/stats-plugin.c 2016-04-20 17:21:51 +0300 Baofeng Wang (527c2b071) lib-storage: add mail_user_plugin_getenv_bool New API will check boolean-like env setting OR its exsitence. Function returns FALSE when: * Read out a null string, "Or" * String starts with any letter in set {'N', 'n', 'F','f','0'} To keep downward compatibility, For other cases including an empty string, function returns TRUE. M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2016-04-30 14:05:42 +0300 Timo Sirainen (88bcf8121) lib: Optimize str_append_n() M src/lib/str.c 2016-04-30 14:03:32 +0300 Timo Sirainen (53e9cbd97) lib: Make str_*() inline which are simple buffer_* wrappers. M src/lib/str.c M src/lib/str.h 2016-04-30 13:59:32 +0300 Timo Sirainen (b88c43d09) global: Avoid using buffer_get_data() Especially buffer_get_data(buf, NULL) generates worse code than just using buf->data directly. M src/lib-imap/imap-base-subject.c M src/lib-index/mail-transaction-log-view.c M src/lib-mail/istream-header-filter.c M src/lib-mail/message-header-parser.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/mail-search.c M src/lib/array.c M src/lib/str.c 2016-04-30 13:49:06 +0300 Timo Sirainen (2d5d7890b) global: Replace buffer_get_used_size(buf) with buf->used Doesn't make any diffence to code generation, but it's somewhat simpler code. It's also more consistent since most of the code nowadays uses the ->used. M src/auth/mech-rpa.c M src/auth/password-scheme-rpa.c M src/lib-index/mail-transaction-log-file.c M src/lib-mail/message-part-serialize.c M src/lib-ntlm/ntlm-encrypt.c M src/lib-ntlm/ntlm-message.c M src/lib/str.c 2016-04-20 17:27:50 +0300 Baofeng Wang (26a6ff7f0) config: Remove old_namespace() From config/old-set-parser.c, and its caller. The namespace section named "private", "shared" or "public" is obsolete accordingly. M src/config/old-set-parser.c 2016-05-02 13:26:05 +0300 Martti Rannanjärvi (ff17313ec) lib-imap, imap: BINARY [UNKNOWNCTE] to [PARSE] M src/imap/cmd-fetch.c M src/lib-imap/imap-resp-code.h 2016-05-02 23:43:15 +0300 Timo Sirainen (38a985c06) lib-storage: Make it easier to debug mail's unclosed istream M src/lib-storage/index/index-mail.c 2016-05-03 18:25:50 +0300 Timo Sirainen (bf5682ed5) lib-mail: istream-header-filter - fixed adding headers at eoh M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2016-05-03 17:38:34 +0300 Timo Sirainen (32e3da4a5) lib-mail: istream-header-filter: Fixed stat() with HEADER_FILTER_HIDE_BODY M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2016-05-03 17:25:07 +0300 Timo Sirainen (10d2dbb83) lib-mail: istream-header-filter HEADER_FILTER_ADD_MISSING_EOH fixes When using HEADER_FILTER_CRLF_PRESERVE, add CR to the EOH if the previous header line ended with CRLF. When header ends to a header without newline, add two newlines so we can get the actual EOH added. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2016-05-03 17:08:24 +0300 Timo Sirainen (c8e347856) lib-mail: istream-header-filter: Fixed stat() with HEADER_FILTER_END_BODY_WITH_LF M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2016-05-03 16:54:46 +0300 Timo Sirainen (2739e568e) lib-mail: istream-header-filter - Check errors reading header This probably doesn't affect the results much, since the stream_errno is set anyway. But it's better to abort early, just in case the broken state might end up asserting later. M src/lib-mail/istream-header-filter.c 2016-05-03 15:49:00 +0300 Timo Sirainen (eb8143d99) lib: Added o_stream_unix_write_fd() assert: fd>=0 M src/lib/ostream-unix.c 2016-05-03 15:27:22 +0300 Timo Sirainen (d2c9e28ba) lib-storage: Fixed potential crash in mailbox_sync_deinit() error handling If mailbox_sync*() was called before mailbox was opened, the automatic mailbox opening could fail. mailbox_sync_deinit() would still try to access box->view, which would be NULL. M src/lib-storage/index/index-sync.c 2016-05-03 00:25:43 +0300 Timo Sirainen (9cd4b2da8) lib-storage: Another fix to mail storage initialization. Allow mail_namespaces_init_location() to add the namespace directly to user, since that's what the current callers always want. But compared to the original code we're now calling mail_namespaces_init_finish() rather than doing the same things ourself. M src/lib-storage/mail-namespace.c 2016-05-02 17:31:30 +0300 Aki Tuomi (21c4d7937) lib-ldap: Handle various LDAP failures correctly M src/lib-ldap/ldap-connection.c 2016-05-02 16:21:27 +0300 Aki Tuomi (3353c3891) lib-ldap: Do not retry with bad credentials M src/lib-ldap/ldap-connection.c 2016-05-02 17:00:22 +0300 Timo Sirainen (fc4e52888) lib-storage: Changed mail storage initialization. Most importantly require mail_namespaces_init_finish() after mail_storage_create(). This was needed so that mail_namespaces_created/added hook would always have the ns->list set, which is required for several of the hooks to work (e.g. mailbox list index) M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-user.c 2016-05-02 15:20:18 +0300 Timo Sirainen (9e6c76cae) lib-ldap: Added initial connection pooling code. This is mainly about allowing multiple dict-ldaps to use the same ldap-connection. In future we could support load balancing with multiple concurrent LDAP connections. M src/lib-dict-extra/dict-ldap.c M src/lib-ldap/Makefile.am M src/lib-ldap/ldap-client.c M src/lib-ldap/ldap-client.h A src/lib-ldap/ldap-connection-pool.c A src/lib-ldap/ldap-connection-pool.h M src/lib-ldap/ldap-connection.c M src/lib-ldap/ldap-private.h 2016-05-02 14:35:40 +0300 Timo Sirainen (8147f5c13) dict-ldap: Removed caching of ldap-clients With the previous per-username caching there could be a huge number of dict-ldaps. M src/lib-dict-extra/dict-ldap.c 2016-05-02 14:21:06 +0300 Timo Sirainen (969c46c1d) dict-ldap: Don't reuse dict for different usernames. Fixes doing priv/* lookups for multiple usernames. This currently also means that each username will create a separate LDAP connection, which isn't ideal. But this is probably better fixed in lib-ldap code similar to how lib-sql does connection pooling. M src/lib-dict-extra/dict-ldap.c 2016-05-02 12:01:40 +0300 Timo Sirainen (3c5d1187e) imap: Added struct client_command_context.tagline_reply Can be used by plugins. M src/imap/imap-client.c M src/imap/imap-client.h 2016-05-02 10:14:20 +0300 Timo Sirainen (cc7699162) auth: Added %{auth_user/username/domain} variables M src/auth/auth-request-var-expand.c M src/auth/auth-request-var-expand.h 2016-04-30 12:50:53 +0200 Stephan Bosch (ea623e25e) lib: Added ostream-unix for writing fd sockets via ostream. M src/lib/Makefile.am A src/lib/ostream-unix.c A src/lib/ostream-unix.h 2016-04-30 14:10:59 +0200 Stephan Bosch (2ac0ee863) lib: ostream-file: Allow creating derived file output streams. M src/lib/Makefile.am A src/lib/ostream-file-private.h M src/lib/ostream-file.c 2016-04-30 13:55:52 +0200 Stephan Bosch (5e6d46380) lib: ostream-file: Split o_stream_file_writev() from o_stream_file_writev_full(). M src/lib/ostream-file.c 2016-04-30 13:51:59 +0200 Stephan Bosch (6fae619f0) lib: ostream-file: Renamed o_stream_writev() to o_stream_file_writev_full(). M src/lib/ostream-file.c 2016-04-30 13:29:47 +0200 Stephan Bosch (9c8699034) lib: ostream-file: Renamed iov_size to iov_count everywhere and made it unsigned int for consistency. M src/lib/ostream-file.c 2016-04-30 14:22:21 +0200 Stephan Bosch (0a6d1a48c) lib-http: server: Fixed assert failure occurring when closing the connection while a request payload was still being read. M src/lib-http/http-server-connection.c 2016-04-30 15:26:27 +0300 Timo Sirainen (eaae34623) .gitignore: Added *~ M .gitignore 2016-04-30 14:55:14 +0300 Timo Sirainen (e353d03d3) lib-storage: Clear list error before mailbox_list_get_hierarchy_sep() With ACL plugin enabled the call could have triggered dovecot-acl-list rebuild, which in turn could have set list errors if it didn't have permissions to all the mailboxes. This caused IMAP logins to fail. M src/lib-storage/mailbox-list.c 2016-04-30 14:19:02 +0300 Timo Sirainen (12fd7a305) lib-mail: message-parser assert-crashfix Crashes when multipart MIME header is missing end-of-headers line and the boundary begins with the same prefix as one of the parent boundaries. Broken by 7a12331c6 M src/lib-mail/message-parser.c M src/lib-mail/test-message-parser.c 2016-04-30 01:27:27 +0300 Timo Sirainen (e7c85ff10) quota: Fix to earlier commit 62f2f6baf expunge_uids may become empty with prev_idx > 0 M src/plugins/quota/quota-storage.c 2016-04-30 01:05:47 +0300 Timo Sirainen (22b0b59ad) lib-fs: Fixed fs_get_metadata() with fs-metawrap If mail was already read to EOF. M src/lib-fs/fs-metawrap.c 2016-04-14 14:28:30 +0300 Martti Rannanjärvi (7633195df) lib-storage: mailbox_list_index yes by default M doc/example-config/conf.d/10-mail.conf M src/lib-storage/mail-storage-settings.c 2016-04-26 14:27:39 -0600 Michael Slusarz (74780c1e2) man: Add stub for doveadm-fs command M .gitignore M doc/man/Makefile.am A doc/man/doveadm-fs.1.in 2016-04-26 19:26:34 +0300 Aki Tuomi (3cd59a62a) doveadm-server: Handle istream send error. M src/doveadm/client-connection-http.c 2016-04-16 03:54:00 +0200 Stephan Bosch (e1a4ea6ad) lib-http: server: Implemented means to gracefully shut down the server. While shutting down, it will not accept new requests and connections are closed once they become idle. M src/lib-http/http-server-connection.c M src/lib-http/http-server-private.h M src/lib-http/http-server.c M src/lib-http/http-server.h 2016-04-25 11:37:05 +0300 Aki Tuomi (3fd02e831) lib-dict: Further remove APPEND M src/lib-dict-extra/dict-fs.c M src/lib-dict/dict-client.h M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-transaction-memory.c M src/lib-dict/dict-transaction-memory.h 2016-04-26 10:49:46 +0300 Martti Rannanjärvi (fe219d44d) mail-log: log headers as utf8 M src/plugins/mail-log/mail-log-plugin.c 2016-04-27 13:06:52 +0300 Martti Rannanjärvi (197a3e48d) lib-lda: remove forced logging of session_id M src/lib-lda/mail-deliver.c 2016-04-27 13:31:56 +0300 Martti Rannanjärvi (68eb16778) lib-master, doveadm: remove mountpoint-list.* and doveadm mount commands M src/doveadm/Makefile.am M src/doveadm/doveadm-cmd.c D src/doveadm/doveadm-mount.c M src/lib-master/Makefile.am D src/lib-master/mountpoint-list.c D src/lib-master/mountpoint-list.h 2016-04-27 10:17:27 +0300 Martti Rannanjärvi (d61490e38) lib-storage: write subscription file in version 2 format Write subscriptions file in a format that only v2.2.17 or newer can read, so after dovecot converts the files to the new format, downgrading to a version older than v2.2.17 is not supported. M src/lib-storage/list/subscription-file.c 2016-04-29 21:36:31 +0300 Teemu Huovila (ac157a6a0) lib-dict-extra: Avoid out of scope data stack usage. M src/lib-dict-extra/dict-ldap.c 2016-04-27 12:46:02 +0200 Stephan Bosch (e2d420dc4) lib: Finished string trimming functions to trim characters from beginning and/or end of a string. This also restructures the code to avoid code duplication as much as possible. M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2016-04-27 12:00:25 +0200 Stephan Bosch (befccf297) lib-http: client: Added ability to configure a specific proxy for individual requests. This way, a request can be routed to a specific proxy (or origin server). The destination can also be a unix socket. M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2016-04-28 10:06:21 +0300 Martti Rannanjärvi (e08a3c92e) lib-fs: don't append '/' to prefix in posix-fs M src/lib-fs/fs-posix.c 2016-04-26 18:51:55 +0300 Timo Sirainen (6de95f63d) lmtp: Connect to anvil earlier while still running as root This was a problem only with lmtp_rcpt_check_quota=yes. M src/lmtp/commands.c 2016-04-28 22:33:14 +0300 Timo Sirainen (c1684fd2a) lib: Set timestamp part more accurately in guid_128_generate() Previously a long-running process would keep the timestamp close to its original start time. This doesn't really matter as long as GUIDs are treated opaque, but some pieces of code prefer to try to use the timestamp fields since they're already there. This makes such code work more nicely. M src/lib/guid.c 2016-04-29 21:57:36 +0300 Timo Sirainen (314d5f114) lib-ldap: Make static analyzer happier Remove dead assignment. M src/lib-ldap/ldap-search.c 2016-04-29 20:23:00 +0300 Timo Sirainen (efdaf9393) auth: Fixed final result in multiple userdbs We don't want to return the last result's success/failure, but the entire userdb chain's success/failure. M src/auth/auth-request.c 2016-04-29 19:59:36 +0300 Timo Sirainen (d0f0b5553) auth: Session ID wasn't exported to auth workers. Most importantly this means that log messages didn't contain them. M src/auth/auth-request.c 2016-04-29 19:25:52 +0300 Timo Sirainen (c16f2d072) quota: Added quota_over_flag_lazy_check flag. By default the quota_over_flag is checked immediately at startup. With this option the check is done only at a time when the quota is anyway being read. M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2016-04-29 19:20:11 +0300 Timo Sirainen (ad3bf8671) quota: dict-quota was broken by 464db6d9d We can't assume that the quota_root given to quota_count() is count_quota_root, because dict_quota_root also calls it. M src/plugins/quota/quota-count.c 2016-04-29 18:58:53 +0300 Timo Sirainen (cfeebb6dd) quota: Cleanup - split quota_over_flag to init & run parts In preparation for the next change. M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2016-04-29 18:55:34 +0300 Timo Sirainen (a9c26c907) quota: Fixed debug logging for quota_over_flag M src/plugins/quota/quota.c 2016-04-29 18:53:04 +0300 Timo Sirainen (272fef0a8) quota: Fixed quota_over_flag handling when quota usage==limit It couldn't really work correctly otherwise. If we've reached the quota, we want to start rejecting new mails. M src/plugins/quota/quota.c 2016-04-29 17:21:26 +0300 Timo Sirainen (464db6d9d) quota-count: Cache quota usage within the same ioloop run. This mainly means that when both STORAGE and MESSAGES quota is looked up we don't need to calculate them twice. M src/plugins/quota/quota-count.c 2016-04-29 17:20:31 +0300 Timo Sirainen (617092b0f) quota-count: Code cleanup - give consistent return value Although the callers didn't care if it returned 0 or 1. M src/plugins/quota/quota-count.c 2016-04-29 15:50:06 +0300 Timo Sirainen (8b48c53a8) global: Use buffer_get_writable_size() where possible With 09539f3db increasing buffer's init_size with +1 some fts-icu unit tests started failing. And in general it's better to use the writable size since that provides the true size that can be used. M src/lib-fts/test-fts-icu.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib/aqueue.c M src/lib/str.c 2016-04-29 15:42:48 +0300 Timo Sirainen (62f2f6baf) quota: Optimize handling a large number of expunges. This assumes that the mail_expunge() was called in the same order as sync_notify(), which practically means that they were both done in ascending uid order. This is usually true. M src/plugins/quota/quota-storage.c 2016-04-29 14:30:46 +0300 Aki Tuomi (6876b613e) lib-ldap: Set minimum protocol if supported by library M src/lib-ldap/ldap-connection.c 2016-04-29 14:33:45 +0300 Timo Sirainen (de8fc9d21) imapc: Fixed EXPUNGE handling when imapc_features didn't have modseq M src/lib-storage/index/imapc/imapc-mailbox.c 2016-04-29 14:07:05 +0300 Timo Sirainen (749097cae) lib-index: Use a bit larger initial records buffer size For example with a mailbox having 160k messages the buffer size is around 10MB. Adding just 1% more space to it allows a lot more appends before the buffer needs to be realloced. This reduces CPU usage quite a lot. M src/lib-index/mail-index-map.c 2016-04-29 13:55:33 +0300 Timo Sirainen (09539f3db) lib: buffer_create_dynamic() now adds +1 to init_size M src/lib/buffer.c 2016-04-29 12:55:52 +0300 Timo Sirainen (50ae8852c) lib: Use p_malloc() explicitly in first buffer_alloc() Although there is now code in p_realloc() that it should be just as efficient, this makes profiling somewhat nicer since it can better distinguish between actual reallocs and initial allocs. M src/lib/buffer.c 2016-04-29 12:54:46 +0300 Timo Sirainen (7311925c6) lib: Implement i_realloc(mem==NULL) more efficiently Various parts of code use this to allocate the initial buffer. We can do this more efficiently by using calloc(). M src/lib/mempool-system.c 2016-04-29 12:44:09 +0300 Timo Sirainen (2386c9f53) configure: Fixed (again) --with-ldap=plugin M m4/want_ldap.m4 2016-04-29 12:34:23 +0300 Timo Sirainen (f7ef214d7) lib-index: Memory allocation optimization M src/lib-index/mail-index-map.c 2016-04-29 10:53:37 +0300 Timo Sirainen (b4715b4a4) fts-lucene: Fixed crash on rescan Broken by af2564c7f9e05ad245a032efdfbc5abbb9b70f1e - rescan_ctx can be NULL. M src/plugins/fts-lucene/lucene-wrapper.cc 2016-04-28 14:03:41 +0300 Aki Tuomi (576495f5f) lib-charset: Do not use //IGNORE on non-GNU system M src/lib-charset/charset-iconv.c M src/lib-charset/test-charset.c 2016-04-29 02:33:58 +0300 Timo Sirainen (337ae3d4d) lib-storage: mailbox_set_subscribed() ignores duplicate changes now. M src/lib-storage/mail-storage.c 2016-04-28 15:21:41 +0300 Timo Sirainen (0b1f4c104) lib-storage: Added index_storage_list_index_has_changed_full() This allows the caller to use it to implement a slightly different mailbox.list_index_has_changed() M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c 2016-04-28 15:56:45 +0300 Timo Sirainen (2e1ec423f) lib-charset: Revert f086fd065 - wrong version This wasn't the version that was supposed to be merged.. M src/lib-charset/test-charset.c 2016-04-28 14:03:41 +0300 Aki Tuomi (f086fd065) lib-charset: Do not use //IGNORE on non-GNU system M src/lib-charset/test-charset.c 2016-04-28 15:00:44 +0300 Timo Sirainen (df586de40) lib: [io]stream-rawlog.h should auto-include iostream-rawlog.h Otherwise compiler will warn about the missing enum. M src/lib/istream-rawlog.h M src/lib/ostream-rawlog.h 2016-04-28 12:53:49 +0300 Timo Sirainen (f434b3e43) doveadm dump: Added more index ext records. "msgs" and "vsize" are now expanded. M src/doveadm/doveadm-dump-index.c 2016-04-28 12:45:01 +0300 Timo Sirainen (0ed8bcc50) lib-fs: Allow multiple fs_read_stream() calls to seekable istreams. This fixes for example calling fs_default_copy() for an istream which was already opened: Panic: file fs-api.c: line 528 (fs_read_stream): assertion failed: (!file->istream_open) M src/lib-fs/fs-api.c 2016-04-28 12:47:02 +0300 Timo Sirainen (db5d7fbdb) lib-fs: Fixed multiple concurrent fs_read_stream() calls Return a new limit-istream, so each istream can have its own independent offset. M src/lib-fs/fs-api.c 2016-04-27 23:58:12 +0300 Timo Sirainen (0bcfa2a64) lazy-expunge: Open the mailbox with ACLs ignored. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-04-27 23:47:09 +0300 Timo Sirainen (994d09a23) lazy-expunge: Open mailbox with MAILBOX_FLAG_SAVEONLY flag. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-04-19 19:24:52 -0600 Michael Slusarz (e43979fa0) man: Add more complete description of one-way sync M doc/man/doveadm-sync.1.in 2016-04-20 17:34:53 +0300 Aki Tuomi (df74b8f6f) lib: Add PKCS#5 pbkdf1 and 2 M src/lib/Makefile.am A src/lib/pkcs5.c A src/lib/pkcs5.h M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-pkcs5.c 2016-04-27 09:14:29 +0300 Aki Tuomi (21e185f46) auth: Add PBKDF2 password scheme M src/auth/Makefile.am A src/auth/password-scheme-pbkdf2.c M src/auth/password-scheme.c M src/auth/password-scheme.h 2016-04-26 21:07:57 +0300 Timo Sirainen (ebf3d1a08) fts: Empty "fts" setting should be same as nonexistent. M src/plugins/fts/fts-storage.c 2016-04-26 17:12:25 +0300 Timo Sirainen (0bd2fecf8) stats: Support multiple FIFO listeners. M src/stats/fifo-input-connection.c M src/stats/fifo-input-connection.h M src/stats/main.c 2016-04-26 15:56:40 +0300 Timo Sirainen (a7b9a392a) lib-storage: Remove unused mail_storage_service_all_init() M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2016-04-26 11:12:45 +0300 Timo Sirainen (1c0e48030) doveadm -u: Use mail_storage_service_all_init_mask() M src/doveadm/doveadm-mail.c 2016-04-26 11:11:57 +0300 Timo Sirainen (55e04e565) lib-storage: Added mail_storage_service_all_init_mask() This allows providing a usermask hint to the userdb iteration lookup. For example with LDAP this allows setting the base based on the @domain. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2016-04-26 11:10:35 +0300 Baofeng Wang (92c610a38) lib-storage: fixup the broken search result with \seen or \delete remove side effects of match_always flag during search. M src/lib-storage/index/index-search.c 2016-04-26 10:31:49 +0300 Timo Sirainen (26c0f5a54) lib-sql: Fixed building Cassandra as plugin M src/lib-sql/Makefile.am 2016-04-25 20:14:19 +0300 Timo Sirainen (9a85ec311) fts-lucene: Rescan skipped namespace roots. M src/plugins/fts-lucene/lucene-wrapper.cc 2016-04-25 20:13:54 +0300 Timo Sirainen (af2564c7f) fts-lucene: Cleanup - move code to a separate function M src/plugins/fts-lucene/lucene-wrapper.cc 2016-04-25 16:58:30 +0300 Timo Sirainen (270c7cd66) lib-mail: More fixes to istream-header-filter with large input. Don't assume that when reading the header the second time we'll get exactly the same header blocks as the first time. This commit also prevents the filter callback from switching the matching-decision on non-first header line. This shouldn't be needed and it could just cause confusion. (It also made it a bit easier to implement this fix.) M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2016-04-25 16:34:59 +0300 Timo Sirainen (88d100753) lib-mail: Improved istream-header-filter unit test. Existing code already assumes that the callback is called for all the header data. So it's not used just for filtering headers but also parsing the header contents. Make this assumption now explicit as a unit test. M src/lib-mail/test-istream-header-filter.c 2016-04-25 16:25:46 +0300 Timo Sirainen (76a71915c) lib-mail: istream-header-filter didn't limit memory usage. A large header was always added to hdr_buf, ignoring any max_buffer_size limits. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2016-04-25 16:22:12 +0300 Timo Sirainen (2719970c2) lib-mail: Code cleanup to istream-header-filter unit test The exclude_headers arrays were used in a confusing way. The X-Drop header wasn't actually even used in the exclude_headers. M src/lib-mail/test-istream-header-filter.c 2016-04-25 14:38:35 +0300 Timo Sirainen (805d78344) dsync: If state is invalid, exit with code 2 instead of tempfail. We'll have dsync_mailbox_import_*() just return success to everything until _deinit() is called. The _deinit() will return a failure and set "resync needed"-flag, which caller will know how to handle. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2016-04-25 14:35:21 +0300 Timo Sirainen (3d49dc64d) dsync: If full resync is requested, return empty state string. If the state is wrong, it's better to fully resync all the mailboxes rather than just the one where a problem was noticed. M src/doveadm/dsync/dsync-brain.c 2016-04-25 14:08:37 +0300 Timo Sirainen (808fab194) dsync: Improved detecting state state string. M src/doveadm/dsync/dsync-mailbox-import.c 2016-04-22 12:37:29 +0300 Martti Rannanjärvi (12e5ac049) lib-mail: return void from message_parser_deinit() M src/doveadm/doveadm-mail-fetch.c M src/lib-imap/test-imap-bodystructure.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/message-parser.c M src/lib-mail/message-parser.h M src/lib-mail/message-snippet.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-message-part.c 2016-04-15 16:12:44 +0300 Timo Sirainen (c977ee6ce) lib-storage: Don't use same session ID for multiple mail_storage_service_next() calls. dsync does multiple mail_storage_service_next() calls for the same mail_storage_service_user. This causes stats plugin to send the same session ID to stats process, which complains about duplicates. Solved this in a generic way by having the following mail_storage_service_next() calls append :counter to session ID. M src/lib-storage/mail-storage-service.c 2016-04-11 17:25:51 +0300 Timo Sirainen (3d798ec32) fs-posix: If link() fails, preserve its errno through the following unlink() M src/lib-fs/fs-posix.c 2016-04-11 17:20:52 +0300 Timo Sirainen (23e079a85) fs-posix: Minor code cleanup - removed unnecessary code. If success==TRUE, temp_path==NULL always also. M src/lib-fs/fs-posix.c 2016-04-25 12:07:25 +0300 Timo Sirainen (b540a53c8) imapc: Fixed crash caused by pool_unref() API change. Calling pool_unref() set the mail_private->pool=NULL, which crashed in index_mail_free(). Fixed this by removing the unnecessary ref/unref entirely. We're already waiting in imapc_mail_close() for all the existing FETCHes to finish, so the callback will always have only valid mails with valid pools. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c 2016-04-22 19:37:57 +0300 Timo Sirainen (f7d018e7e) cassandra: Added num_threads, connect_timeout and request_timeout settings. M src/lib-sql/Makefile.am M src/lib-sql/driver-cassandra.c 2016-04-21 19:18:55 +0300 Timo Sirainen (f670747b6) lib-dovecot: Avoid duplication of listing *.la in both Makefile.am and configure M configure.ac M src/lib-dovecot/Makefile.am 2016-04-21 18:58:10 +0300 Timo Sirainen (57729dda3) lib-dict: Moved dict-ldap to lib-dict-extra This also allows moving lib-ldap away from LIBDOVECOT_SUBDIRS in src/Makefile.am, which was wrong because it's not really part of libdovecot.la. M src/Makefile.am M src/lib-dict-extra/Makefile.am R100 src/lib-dict/dict-ldap-settings.c src/lib-dict-extra/dict-ldap-settings.c R100 src/lib-dict/dict-ldap-settings.h src/lib-dict-extra/dict-ldap-settings.h R100 src/lib-dict/dict-ldap.c src/lib-dict-extra/dict-ldap.c M src/lib-dict/Makefile.am 2016-04-21 18:51:57 +0300 Timo Sirainen (ed77b0bf3) Split parts of lib-dict into lib-dict-extra. Otherwise there's a circular dependency because lib-dict/dict-fs.c depends on lib-fs, while lib-fs/fs-dict.c depends on lib-dict. This becomes a problem when compiling --without-shared-libs, although for some reason it works for me while linking the Dovecot core, but not when linking external plugins. M configure.ac M src/Makefile.am A src/lib-dict-extra/Makefile.am R100 src/lib-dict/dict-fs.c src/lib-dict-extra/dict-fs.c R100 src/lib-dict/dict-register.c src/lib-dict-extra/dict-register.c M src/lib-dict/Makefile.am M src/lib-dovecot/Makefile.am 2016-04-22 22:44:01 +0300 Timo Sirainen (576326ec9) .gitignore: Updated to include auto-added m4/* M .gitignore 2016-04-22 22:36:39 +0300 Timo Sirainen (5b0714069) configure, Makefile: Tell autoconf/automake about m4 directory To finally get rid of the complaints: libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac, libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. M Makefile.am M configure.ac 2016-04-19 19:08:52 +0300 Timo Sirainen (5e3b05494) doveadm user: Added -e parameter to expand %variables in This allows expanding any %variable that the mail processes normally expand. For example: % doveadm user -e "%u's home is %h" testuser@example.com testuser@example.com's home is /var/mail/testuser@example.com M src/doveadm/doveadm-auth.c 2016-04-19 19:07:51 +0300 Timo Sirainen (5a1c6ebe5) doveadm user: Code cleanup - move field printing to its own function. No functional changes. M src/doveadm/doveadm-auth.c 2016-04-22 18:35:04 +0300 Timo Sirainen (7195d775e) lib-mail: Improved test-message-parser further M src/lib-mail/test-message-parser.c 2016-04-22 18:28:20 +0300 Timo Sirainen (6df4a174b) lib-mail: Fixed inner MIME part boundary being a prefix of outer boundary. M src/lib-mail/message-parser.c M src/lib-mail/test-message-parser.c 2016-04-22 18:15:44 +0300 Timo Sirainen (7a12331c6) lib-mail: Fixed handling duplicate boundary prefixes. If inner MIME part had the same --boundary prefix as its parent(s) and the MIME part body started with the inner --boundary prefix, we didn't yet have it in the list of valid boundaries, so we thought that the outer boundary was found and the MIME headers were truncated. But due to an extra bug we still treated it as if it were the inner boundary, except the MIME part sizes/offsets were set wrong. This for example fixes a situation where FETCH [1.2.MIME] returns an extra newline before the actual headers. M src/lib-mail/message-parser.c M src/lib-mail/test-message-parser.c 2016-04-22 16:39:49 +0300 Timo Sirainen (088bfb6b2) dsync: Fixed assert-crash in rename algorithm Fixes a crash: Panic: file dsync-mailbox-tree-sync.c: line 1308 (sync_mailbox_child_dirs): assertion failed: (!node_is_existent(local_node)) M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c 2016-04-22 16:28:56 +0300 Timo Sirainen (e51f8aa02) dsync: Determine better when rename-algorithm might have gotten stuck. A hardcoded value of 100 isn't necessarily enough if there are a lot of mailboxes with a lot of renames. Base the max count on the total number of mailboxes on both local and remote. And just in case multiple it by 3. Probably smaller number would be fine too. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2016-04-22 16:25:00 +0300 Timo Sirainen (34b0579f1) dsync: Fixed crash when rename algorithm thinks it has gone to infinite loop. ctx->brain was NULL, so trying to access it crashed. M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.h 2016-04-21 17:59:19 +0300 Timo Sirainen (0ee52dafc) lib-fs: Assert-crash if file's istream isn't closed at fs_file_close() Some backends can't guarantee that the istream stays usable after the file is closed. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2016-04-21 17:55:51 +0300 Timo Sirainen (ab41e122a) lib-fs: fs-metawrap stat() and get_metadata(): use existing istream if possible This may reduce reads from parent fs, but it's at least required for the following commit. M src/lib-fs/fs-metawrap.c 2016-04-21 17:54:54 +0300 Timo Sirainen (b2ff0468c) lib-fs: Added initial fs-metawrap unit test. M src/lib-fs/Makefile.am A src/lib-fs/test-fs-metawrap.c 2016-04-21 17:52:44 +0300 Timo Sirainen (140afad72) lib-fs: Added fs-test backend for helping with creation of fs-wrapper unit tests. M src/lib-fs/Makefile.am M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c A src/lib-fs/fs-test.c A src/lib-fs/fs-test.h 2016-04-20 23:01:45 +0300 Timo Sirainen (800bb6860) lib: var_expand() now expands %{nonexistent} to UNSUPPORTED_VARIABLE_nonexistent Earlier it was expanded to "nonexistent}", which looked more like a bug. This change hopefully makes it clear enough to understand when a variable isn't supported. M src/lib/test-var-expand.c M src/lib/var-expand.c 2016-04-21 21:45:02 +0300 Timo Sirainen (0e6e3cc7e) lib-ssl-iostream: Return stacked errors as single combined string. Instead of logging stacked errors as separate log lines, which don't provide any context of what created them. M src/lib-ssl-iostream/iostream-openssl-common.c 2016-04-22 00:21:12 +0300 Timo Sirainen (90355e35d) imapc: Added support for imapc_features=modseq If the remote server supports CONDSTORE or QRESYNC extensions we'll use the remote's MODSEQ and HIGHESTMODSEQ counts. There are some situations where the HIGHESTMODSEQ isn't updated exactly correctly on an open mailbox, so this feature shouldn't be fully relied on. It was primarily implemented for dsync+imapc support - both for preserving modseqs and also for HIGHESTMODSEQ lookups. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2016-04-20 17:24:06 +0300 Baofeng Wang (84c1b1af9) liblib: pool_unref() should always set pool=NULL (alloconly pool) set pool to NULL before return. M src/lib/mempool-alloconly.c 2016-03-22 10:24:22 -0400 Lennart Weller (972c9172e) Support multiple recipient_delimiters The recipient_delimiter is treated as multiple one-character delimiters rather than one multi-character delimiter if more than one character is supplied. The address is split on the first character in recipient_delimiter found. M src/lmtp/commands.c 2016-04-19 16:55:02 +0300 Timo Sirainen (93c9909f6) lib-http: Include information about number of request attempts and its timing in response reason. Because the reason is usually logged as part of the error string, this causes all of the error messages to include the attempts count and how long the requests took in total. This should make it easier to understand problems in error logs. http_client_request_set_preserve_exact_reason() can be used to disable modifying the reason string. This may also apply to other reason modifications that may be done in the future. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2016-04-19 14:51:15 +0300 Aki Tuomi (cca227d29) configure: Move checks to separate m4 files M Makefile.am M autogen.sh M configure.ac A m4/ac_checktype2.m4 A m4/ac_typeof.m4 A m4/blockdev.m4 A m4/c99_vsnprintf.m4 A m4/cc_clang.m4 A m4/cflags.m4 A m4/clock_gettime.m4 A m4/crypt.m4 A m4/crypt_xpg6.m4 A m4/dbqlk.m4 A m4/dirent_dtype.m4 R100 dovecot.m4 m4/dovecot.m4 A m4/endian.m4 A m4/fd_passing.m4 A m4/fdatasync.m4 A m4/flexible_array_member.m4 A m4/gc.m4 A m4/glibc.m4 A m4/gmtime_max.m4 A m4/gmtime_tm_gmtoff.m4 A m4/ioloop.m4 A m4/iovec.m4 A m4/ipv6.m4 A m4/libcap.m4 A m4/libwrap.m4 A m4/linux_mremap.m4 A m4/mmap_write.m4 A m4/mntctl.m4 A m4/modules.m4 A m4/notify.m4 A m4/nsl.m4 A m4/off_t_max.m4 A m4/pr_set_dumpable.m4 A m4/q_quotactl.m4 A m4/quota.m4 A m4/rlimit.m4 A m4/sendfile.m4 A m4/size_t_signed.m4 A m4/sockpeercred.m4 A m4/sql.m4 A m4/ssl.m4 A m4/st_tim.m4 A m4/test_with.m4 A m4/time_t_signed.m4 A m4/typeof.m4 A m4/typeof_dev_t.m4 A m4/unsetenv.m4 A m4/vararg.m4 A m4/want_bsdauth.m4 A m4/want_bzlib.m4 A m4/want_cassandra.m4 A m4/want_cdb.m4 A m4/want_checkpassword.m4 A m4/want_clucene.m4 A m4/want_db.m4 A m4/want_gssapi.m4 A m4/want_icu.m4 A m4/want_ldap.m4 A m4/want_lz4.m4 A m4/want_lzma.m4 A m4/want_mysql.m4 A m4/want_nss.m4 A m4/want_pam.m4 A m4/want_passwd.m4 A m4/want_pgsql.m4 A m4/want_prefetch.m4 A m4/want_shadow.m4 A m4/want_sia.m4 A m4/want_solr.m4 A m4/want_sqlite.m4 A m4/want_stemmer.m4 A m4/want_textcat.m4 A m4/want_vpopmail.m4 A m4/want_zlib.m4 A m4/warnings.m4 2016-04-22 20:31:02 +0300 Timo Sirainen (a77d7cc71) lib: Fix to previous istream-timeout commit The one commit I didn't bother putting through all the automated testing stages and I of course forgot to even compile after the last change :( M src/lib/istream-timeout.c 2016-04-22 20:10:34 +0300 Timo Sirainen (9766afd8d) lib: Improved istream-timeout error message. We're supposed to check that timeout isn't triggered after a long-running code, but it's not perfect. So provide the actual timing information we saw instead of the expected timeout. M src/lib/istream-timeout.c 2016-04-17 21:15:30 +0300 Timo Sirainen (c72cfe4a2) cassandra: Added support for user and password settings. M src/lib-sql/driver-cassandra.c 2016-04-22 16:00:36 +0300 Timo Sirainen (2d7ad82a3) push-notification: Small optimization - don't lookup uidvalidity for each message. M src/plugins/push-notification/push-notification-txn-msg.c 2016-04-21 21:41:23 +0300 Timo Sirainen (e69026539) lib-ssl-iostream: Fixed reporting errors returned by OpenSSL. We were always logging all errors as "Stacked error" and then returning "Unknown error". M src/lib-ssl-iostream/iostream-openssl-common.c 2016-04-15 13:14:16 +0300 Martti Rannanjärvi (556d69b89) imap: add variables to default imap_logout_format M doc/example-config/conf.d/20-imap.conf M src/imap/imap-settings.c 2016-04-20 14:51:22 +0300 Martti Rannanjärvi (c1f5ec50a) lib-http, lib-mail, lib-storage: parent unrefs Remove some unneccesary parent unrefs from i_stream_*_destroys. Don't know too many or too few were removed. M src/lib-http/http-server-request.c M src/lib-http/http-transfer-chunked.c M src/lib-mail/istream-header-filter.c M src/lib-storage/index/mbox/istream-raw-mbox.c 2016-04-19 14:09:01 +0300 Martti Rannanjärvi (899653bd8) lib: remove unneccesary i_stream_unrefs of parent M src/lib/istream-failure-at.c M src/lib/istream-limit.c M src/lib/istream-rawlog.c M src/lib/istream-sized.c 2016-04-19 12:23:54 +0300 Timo Sirainen (5a1b498b6) lib: When istream is destroyed, it now always unrefs the parent istream if it exists. This way the implementations don't have to do it themselves in their destroy() function. This change doesn't necessarily require changing the existing code, because if the istream implementation already unrefs the parent it gets set to NULL so the auto-unref won't be done. M src/lib/iostream-private.h M src/lib/iostream.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/ostream.c 2016-04-21 14:22:10 +0300 Martti Rannanjärvi (2982cfa23) doveadm: \f\n only between pages in pager No more \f\n in the end. M src/doveadm/doveadm-print-pager.c 2016-04-21 16:02:39 +0300 Baofeng Wang (ac9600ec5) fixup: fix task for `lib-dict: remove dict_append()' M src/lib-dict/dict-db.c M src/lib-dict/dict-fs.c M src/lib-dict/dict-memcached.c 2016-04-20 17:24:51 +0300 Baofeng Wang (373b27178) lib-dict: remove dict_append() Remove all *_dict_append and redis_append functions and corresponding command from lib-dict. M src/dict/dict-commands.c M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dict/dict-ldap.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-private.h M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h 2016-04-20 19:34:05 +0300 Timo Sirainen (d5cfdf518) zlib: Compiling fix to a1630a3b3 - don't return a void function M src/plugins/zlib/zlib-plugin.c 2016-04-20 17:10:17 +0300 Timo Sirainen (f5a105b5e) lazy-expunge: Fixed using a mailbox (instead of namespace) as lazy_expunge destination. The initial implementation in f2d7ae020bda762f78e8e639a69fb129230cbb7d was completely broken. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-04-20 02:23:31 +0300 Timo Sirainen (f330b7d9e) lib-index: If opening a cache file fails, try again later. The previous code would never retry opening the cache file within the same session. M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache.c 2016-04-20 00:29:49 +0300 Timo Sirainen (46d91e9ea) lib-index: Fixed calling mail_cache_open_and_verify() on an already open cache. This was done at least by index_index_rebuild_init(). Either the currently open cache->fd was leaked, or if the cache file open() failed we left the cache in an inconsistent state where cache->fd == -1, but cache->hdr != NULL, so it caused MAIL_CACHE_IS_UNUSABLE() to also be TRUE. This could have ended up in an assert: Panic: file mail-index-lock.c: line 31 (mail_index_lock_fd): assertion failed: (MAIL_INDEX_IS_IN_MEMORY(index)) M src/lib-index/mail-cache.c 2016-04-20 02:47:13 +0300 Timo Sirainen (a1630a3b3) zlib plugin: Make sure we don't keep mail istream referenced after mail is closed. M src/plugins/zlib/zlib-plugin.c 2016-04-18 15:40:56 +0300 Baofeng (d34a07d36) expire-plugin: code cleanup expire_mail_namespaces_created() will check dict_uri after namespace validation check. M src/plugins/expire/expire-plugin.c 2016-04-16 02:05:28 +0200 Stephan Bosch (2a9cadfcc) lib-http: client: Added pure attribute to some of the request property functions. M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2016-04-16 02:03:10 +0200 Stephan Bosch (5a3782467) lib-http: client: Cleaned up headers and added some more documentation there. M src/lib-http/http-client-private.h M src/lib-http/http-client.h 2016-04-15 23:59:24 +0200 Stephan Bosch (7a13cd226) lib-http: client: Implemented means to set request payload buffer rather than an input stream. This is not purely a convenience function: there have been bugs caused by allocating a data input stream from a datastack buffer. With this function, the buffer is copied to the request pool, so that it is durably allocated while the request exists. This prevents futher mishaps. The server already has an equivalent function for its response object. M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2016-04-19 21:14:37 +0300 Timo Sirainen (9e9711ebe) lib: Fixed bits_required64() with 32bit systems. Broken by 84f697c5e30565823619abaaeb57164c789d4b66. M src/lib/bits.h 2016-04-14 19:04:28 +0300 Timo Sirainen (f2d7ae020) lazy-expunge: Allow lazy_expunge setting to point to a mailbox in any namespace. This way we can use an existing namespace without having to create a new one just for a single lazy_expunge mailbox. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-02-05 15:57:30 +0200 Phil Carmody (84f697c5e) lib: bits - GCC (and clang) provide bit-twiddle intrinsics, use them Signed-off-by: Phil Carmody M src/lib/bits.c M src/lib/bits.h 2016-02-05 15:55:15 +0200 Phil Carmody (943ba393d) lib: test-bits - add fraclog test for most usual case, constant fracbits Were there to be any difference between the constant and non-constant tests, then it would be a compiler error, but it's better to be defensive and know about that case. Signed-off-by: Phil Carmody M src/lib/test-bits.c 2016-02-03 19:18:21 +0200 Phil Carmody (20be2a7b3) lib: test-bits - test the new fractional log helpers Ensure that the beginning and end of every bucket range are both mapped into that bucket. It also checks that the bucket ranges are contiguous. Assuming the function's weakly monatonic, this is as good as testing every single value. Signed-off-by: Phil Carmody M src/lib/test-bits.c 2016-02-03 18:34:13 +0200 Phil Carmody (bb0eabc25) lib: bits - new fractional log-like helper For stats gathering, where the data can have a wide range of values, you don't necessarily need the same granularity along the full range of values. For example, 1ms and 11ms latencies are very different, but 1.001s and 1.011s latencies are not worth distinguishing. Something logarithmic seems more apt. Simply looking at power-of-2 sized bands (e.g. doing log2(n)), however, is too granular, so these new helpers let you specify how fine to (linearly) subdivide each of those bands. 1 fractional bit splits each power of 2 band into 2 halves. 2 fractional bits splits each power of 2 band into 4 quarters, and so on. 0 fractional bits is just log2(). Exact identification of percentiles is impossible, but it was anyway, as you simply cannot store all the data required to calculate them. However, a mere 896 buckets will permit you to have 32 bands per power of 2, 5 fracional bits. The above example would have buckets such as 2.432s-2.496s, and 55.3s-56.3s. Assuming smooth distribution lets you calculate percentiles more accurately, just assume within each bucket is a trapezial distribution. This holds even if the distribution is multi-modal, which it will be. However, maths required. Signed-off-by: Phil Carmody M src/lib/bits.h 2016-02-03 17:37:27 +0200 Phil Carmody (070088860) lib: test-array - test new element-assigning iterator Test that both (small) object copying and const/nonconst pointer copies work. Signed-off-by: Phil Carmody M src/lib/test-array.c 2016-02-03 17:33:05 +0200 Phil Carmody (2d7293239) lib: array - new copy-making array iterator Previously macros took a pointer, and that pointer was made to pointed to each element of the array in turn. Typical use cases for things like char* or struct* arrays were to immediately/repeatedly, dereference that pointer. This new iter (only one implementation done so far, more a proof of concept) gets rid of the user-visable pointer, and performs the dereference every time, and only when, a valid element is being iterated over. Empty array => no assignment. No U.B. NOTE: This cannot be done without assuming C99. It breaks the build on compilers that old if any components that are enabled use the macro. It strongly suggests we just need to make C99 mandatory. Signed-off-by: Phil Carmody M src/lib/array.h 2016-04-08 13:34:59 +0300 Martti Rannanjärvi (fc7dde204) Require IPv6 to build M configure.ac M src/auth/auth-penalty.c M src/director/mail-host.c M src/lib-http/test-http-url.c M src/lib-imap/imap-keepalive.c M src/lib-imap/test-imap-url.c M src/lib/net.c M src/lib/net.h M src/lib/test-net.c M src/lib/uri-util.c M src/login-common/client-common.c M src/master/main.c 2016-04-08 14:30:40 +0300 Martti Rannanjärvi (9ef0a41be) doveadm: print to stdout in table formatter M src/doveadm/doveadm-print-table.c 2016-04-14 15:19:09 +0300 Martti Rannanjärvi (575fa28d9) lib-sql: ssl_verify_server_cert=1 default on mysql M src/lib-sql/driver-mysql.c 2016-04-18 16:40:49 +0300 Timo Sirainen (e5a3e4396) lib: Implement utc_mktime() with timegm() if it exists. It should be more efficient than repeatedly calling gmtime() many times. M configure.ac M src/lib/utc-mktime.c 2016-04-19 11:55:00 +0300 Timo Sirainen (b484ab4b5) auth: Added passdb/userdb { auth_verbose } setting. If this is explicitly set to yes or no, it overrides the global auth_verbose setting. However, auth_debug=yes overrides all of the auth_verbose settings. M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-settings.h 2016-04-19 16:59:48 +0300 Timo Sirainen (291ce16ff) lib-storage: Added MAIL_STORAGE_CLASS_FLAG_NO_LIST_DELETES and MAILBOX_LIST_FLAG_NO_DELETES M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.h 2016-04-14 14:39:52 +0300 Martti Rannanjärvi (84d2707fd) director: director_consistent_hashing=yes default M src/director/director-settings.c 2016-04-18 21:52:37 +0300 Timo Sirainen (c1d01419f) director: Compiler warning fix M src/director/main.c 2016-04-14 14:12:08 +0300 Martti Rannanjärvi (378fcd5bd) lib-storage: mdbox_rotate_size=10M default M doc/example-config/conf.d/10-mail.conf M src/lib-storage/index/dbox-multi/mdbox-settings.c 2016-04-15 10:02:20 +0300 Baofeng (5545acdd3) director: Remove director_doveadm_port the flag is obsoleted by inet_listener doveadm name. And listener_get_socket_type_fallback() will fallback to token ring when socket name is missing. M doc/example-config/conf.d/10-director.conf M src/director/director-settings.c M src/director/director-settings.h M src/director/main.c 2016-04-15 14:51:42 +0300 Timo Sirainen (84ba16ca6) stats plugin: stats_notify_path can now specify path to the stats-mail FIFO M src/plugins/stats/stats-plugin.c 2016-04-15 15:01:20 +0300 Timo Sirainen (ba081c6b0) lib-stats: Handle better write() to stats process failing with EAGAIN It only means that the stats process is too busy and the FIFO is filled up. Retrying the write later should work. We also don't want to log too much about the same warning, so do it only once per 30 seconds. M src/lib-stats/stats-connection.c 2016-04-13 23:12:00 +0200 Stephan Bosch (31300f53e) lib-http: server: Prevent aborting finished or already aborted requests again. M src/lib-http/http-server-request.c 2016-04-13 17:19:52 +0300 Timo Sirainen (60c456353) configure: Fixed building lib-ldap / dict-ldap --with-ldap=plugin M configure.ac 2016-04-13 17:17:53 +0300 Timo Sirainen (cabe36c08) lib-dict: Don't build dict-ldap if --with-ldap=no M src/lib-dict/Makefile.am 2016-04-13 13:47:51 +0300 Timo Sirainen (cb445bd4e) doveconf: Improved the warning message about global setting not overriding a filter M src/config/config-parser.c 2016-04-13 13:40:31 +0300 Timo Sirainen (592289f4d) configure: Switched version number to 2.3.devel M configure.ac 2016-04-13 11:22:12 +0300 Aki Tuomi (45fee9df4) lib-dict: Disable debug log unless debug enabled M src/lib-dict/dict-ldap.c 2016-04-13 11:01:29 +0300 Aki Tuomi (d3be0145d) lib-ldap: Allow disabling of TLS M src/lib-dict/dict-ldap-settings.c M src/lib-dict/dict-ldap-settings.h M src/lib-dict/dict-ldap.c M src/lib-ldap/ldap-client.h M src/lib-ldap/ldap-connection.c 2016-04-11 22:56:40 +0300 Aki Tuomi (ccaab3da7) lib-dict: Add option to enforce SSL M src/lib-dict/dict-ldap-settings.c M src/lib-dict/dict-ldap-settings.h M src/lib-dict/dict-ldap.c 2016-04-11 22:56:37 +0300 Aki Tuomi (77475f62f) lib-ldap: Hard fail when SSL is required M src/lib-ldap/ldap-connection.c 2016-04-11 20:44:41 +0300 Aki Tuomi (0f0148981) lib-ldap: Allow and warn insecure LDAP connection M src/lib-ldap/ldap-client.h M src/lib-ldap/ldap-connection.c 2016-04-11 20:32:55 +0300 Aki Tuomi (5a4890695) lib-ldap: Remove callback from connection_connect M src/lib-ldap/ldap-connection.c M src/lib-ldap/ldap-private.h 2016-04-11 17:29:35 +0300 Aki Tuomi (dd8dbd10a) lib-dict: Reuse LDAP connections M src/lib-dict/dict-ldap.c 2016-04-11 17:29:02 +0300 Aki Tuomi (3b8402378) lib-ldap: Max idle time is seconds M src/lib-dict/dict-ldap.c M src/lib-ldap/ldap-client.h M src/lib-ldap/ldap-connection.c 2016-04-11 17:27:31 +0300 Aki Tuomi (d4a4ddf45) lib-ldap: Do not call NULL callback M src/lib-ldap/ldap-connection.c 2016-04-12 21:22:48 +0300 Timo Sirainen (76a58bc86) lib: Moved enum iostream_rawlog_flags to public iostream-rawlog.h This allows using [io]stream-rawlog.h APIs directly. M src/lib/iostream-rawlog-private.h M src/lib/iostream-rawlog.h 2016-04-12 20:00:51 +0300 Timo Sirainen (d1eec04fa) lib: Added ostream-null M src/lib/Makefile.am A src/lib/ostream-null.c A src/lib/ostream-null.h 2016-04-12 16:48:34 +0300 Timo Sirainen (f7cc532e5) lib-storage: Fixed crash when using SEARCH INTHREAD mail_search_args_init() -> mail_search_args_simplify() -> .. -> mail_search_arg_one_equals(), which assumed SEARCH_INTHREAD was already initialized. M src/lib-storage/mail-search.c 2016-04-10 14:41:28 +0300 Timo Sirainen (87404eae4) doveconf: Log a warning if a global setting is updated after it was already set inside a filter For example: protocol imap { mail_plugins = $mail_plugins imap_quota } mail_plugins = $mail_plugins quota Will result in: doveconf: Warning: dovecot.conf line 4: Global setting mail_plugins won't change the setting inside an earlier filter at dovecot.conf line 2 M src/config/config-parser-private.h M src/config/config-parser.c 2016-04-10 14:39:22 +0300 Timo Sirainen (6347bb65e) doveconf, config: Free all memory at deinit M src/config/config-parser.c M src/config/config-parser.h M src/config/doveconf.c M src/config/main.c 2016-04-06 14:45:01 +0300 Timo Sirainen (06116e6a1) imapc: Mark most of the commands retriable. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c 2016-04-06 14:44:00 +0300 Timo Sirainen (461bcfc20) imapc: If root separator lookup fails, fail all further lookups. We already returned a potentially wrong separator (since there's no way to return error), so we don't want to continue and possibly make things worse. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h 2016-04-06 14:43:02 +0300 Timo Sirainen (2a7a7f69b) imapc: Added missing error handling to subscriptions list refreshing. M src/lib-storage/index/imapc/imapc-list.c 2016-04-06 14:41:16 +0300 Timo Sirainen (e74f4afdd) imapc: Fixed mailbox_exists() error handling. M src/lib-storage/index/imapc/imapc-storage.c 2016-04-06 14:24:21 +0300 Timo Sirainen (e4020d174) imapc: Support retrying after connect() failure. M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h 2016-04-06 14:17:02 +0300 Timo Sirainen (1e85b60d6) imapc: Support retrying after connect/authentication timeouts. M src/lib-imap-client/imapc-connection.c 2016-04-06 14:16:13 +0300 Timo Sirainen (3153bce79) imapc: Support retrying for non-mailbox commands. M src/lib-imap-client/imapc-connection.c 2016-04-06 14:12:25 +0300 Timo Sirainen (b60daa2dc) imapc: Prepare for non-mailbox command retrying: Set reconnect_command_count earlier This probably doesn't fix itself anything yet, but is needed for the following changes. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h 2016-04-06 14:09:13 +0300 Timo Sirainen (5e02162c5) imapc: Fixed checking of whether same IMAP command keeps crashing server. reconnect_command_count was counting only the post-login commands, but we were decreasing it also for pre-login commands. This caused it to shrink to 0 too early. M src/lib-imap-client/imapc-connection.c 2016-04-06 14:05:26 +0300 Timo Sirainen (5ba8e641e) imapc: Code cleanup - imapc_connection_reconnect() is now always called when reconnect is ok. M src/lib-imap-client/imapc-client.c 2016-04-06 14:03:20 +0300 Timo Sirainen (8cd9a1249) imapc: Code cleanup - Use a common function for checking/logging if we want to reconnect or disconnect M src/lib-imap-client/imapc-connection.c 2016-04-06 13:52:24 +0300 Timo Sirainen (0e2e52670) lib-storage: Fixed error handling for mailbox_list_iter_init_namespaces() If iteration for the first namespace failed, we tried to copy the error string to error_list, which was the same first namespace's list. This caused the error string to be freed while it was being copied, so the end result was that the error became either an empty or garbage string. M src/lib-storage/list/mailbox-list-iter.c 2016-04-06 12:41:38 +0300 Timo Sirainen (03af8e532) dsync: Don't export header hashes if remote mailbox is empty. This avoids doing a lot of work of reading through all mails' headers and hashing them, when the hashes aren't actually going to be used for anything. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h 2016-04-12 11:42:38 +0200 Stephan Bosch (a1ffc40b4) lib-http: server: Fixed bug in request reference counting caused by earlier fix (390b600a6f7fdb4ccc65950527ee30129f49a6ac). The earlier change erroneously dropped two lines that unreferenced the request object after calling the callback. M src/lib-http/http-server-connection.c 2016-04-12 10:49:50 +0300 Timo Sirainen (a8f11f9d8) lib-master: Fixed assert-crash when HAProxy aborts connections. close() was called before io_remove(), which resulted in: Panic: epoll_ctl(del, 14) failed: Bad file descriptor M src/lib-master/master-service-haproxy.c 2016-04-11 12:24:59 +0300 Timo Sirainen (cc5493dc2) dict-ldap: Compiler warning fix M src/lib-dict/dict-ldap.c 2016-04-11 09:40:22 +0300 Aki Tuomi (1af8b31dc) lib-dict: Add ldap driver M src/lib-dict/Makefile.am A src/lib-dict/dict-ldap-settings.c A src/lib-dict/dict-ldap-settings.h A src/lib-dict/dict-ldap.c 2016-04-11 09:38:27 +0300 Aki Tuomi (b4c47b778) configure: Add lib-ldap M configure.ac M src/Makefile.am 2016-04-11 09:37:39 +0300 Aki Tuomi (844129da3) lib-ldap: Add lib-ldap implementation A src/lib-ldap/Makefile.am A src/lib-ldap/ldap-client.c A src/lib-ldap/ldap-client.h A src/lib-ldap/ldap-compare.c A src/lib-ldap/ldap-connection.c A src/lib-ldap/ldap-entry.c A src/lib-ldap/ldap-iterator.c A src/lib-ldap/ldap-private.h A src/lib-ldap/ldap-search.c 2016-04-10 14:57:48 +0300 Timo Sirainen (9a69030b1) lib-master: Fixed memory leaks when failing to read settings. M src/lib-master/master-service-settings.c 2016-04-07 17:50:28 +0300 Timo Sirainen (e3367d7b5) virtual plugin: struct mail_vfuncs.close() wasn't implemented. This wasn't a problem normally, because the core code wouldn't try to call this. It became a problem only after other plugins were trying to call it. M src/plugins/virtual/virtual-mail.c 2016-04-07 16:35:28 +0300 Timo Sirainen (9f41af1f0) lib-master: Preserve LOG_STDERR_TIMESTAMP environment through doveconf exec. This should be needed only for standalone programs, so don't bother trying to preserve it otherwise. M src/lib-master/master-service-settings.c 2016-04-05 20:14:15 +0300 Timo Sirainen (aeea3dbd1) lmtp: Use separate session ID suffixes for each RCPT TO delivery. Otherwise each delivery will use the same session ID when talking to stats process, which results in errors like: Error: stats: FIFO input error: CONNECT: Duplicate session ID ME3ZHCi+A1dUDQAAvAUe3g for user foobar service lmtp Warning: stats: Couldn't find session ID: ME3ZHCi+A1dUDQAAvAUe3g (There was a DISCONNECT for the session ID between these two log lines.) M src/lmtp/client.h M src/lmtp/commands.c 2016-04-05 20:10:53 +0300 Timo Sirainen (6cb874b7e) lib-storage: Changed separator between session_id_prefix and unique part to be ':' Although '-' wasn't used by default either, it's much more likely that custom session IDs might contain it. ':' is hopefully less likely to be used. This allows log parsers that actually want to find out the original session's all log lines to cut out everything after the initial ':'. M src/lib-storage/mail-storage-service.c 2016-04-06 22:43:52 +0300 Timo Sirainen (a50f8b9c6) lmtp: Changed default LMTP proxy timeout to 125 seconds. The main problem with LMTP proxy timing out too early is that it causes duplicates if the backend actually finishes the mail delivery. The 30 seconds is bad, because there are various timeouts in backend set to 30 seconds also. 125 seconds is hopefully large enough to hit most of the 2 minute timeouts and we'll have a few extra seconds left to see the failure. M src/lmtp/commands.c 2016-04-06 22:12:54 +0300 Timo Sirainen (53c42948d) doveadm sync: -R parameter shouldn't switch to "doveadm backup -R" behavior. Just ignore the -R parameter for doveadm sync, unless -1 parameter is also used. Alternatively we could also fail the command, but maybe that's unnecessary extra work. M src/doveadm/doveadm-dsync.c 2016-04-06 22:08:14 +0300 Timo Sirainen (eba17ecf3) doveadm: Reverted 7a3b52b8f - doveadm sync -1 -R is useful. M src/doveadm/doveadm-dsync.c 2016-04-06 20:19:04 +0300 Timo Sirainen (2fb829dc7) dict-redis: When timeout was reached, we didn't actually stop but just continued waiting. M src/lib-dict/dict-redis.c 2016-04-04 21:05:44 +0300 Aki Tuomi (b0b699954) doveadm-http: Fix mismatch in authorization The code advertizes X-Dovecot-API in WWW-Authenticate header, but expects X-Doveadm-API in Authorization header. This change makes it expect X-Dovecot-API. M src/doveadm/client-connection-http.c 2016-04-05 19:59:18 +0300 Timo Sirainen (e82efb347) imapc: If we get disconnected during SELECT/EXAMINE, retry it once. This seems to be happening especially with dsync migrations from IMAP servers with small timeouts. The initial dsync run opens imapc connection early to do a LIST + SELECT the first mailbox, but then dsync may spend a while creating all the local mailboxes before it continues using the imapc connection. M src/lib-imap-client/imapc-client.c M src/lib-storage/index/imapc/imapc-storage.c 2016-04-05 16:26:08 +0300 Timo Sirainen (dca6152ae) fts-tika: Don't crash on 500 errors (caused by 146f6f85d) http_req=NULL here set by http_client_request_send_payload(). Even if it wasn't, the payload wouldn't be there. M src/plugins/fts/fts-parser-tika.c 2016-04-05 12:05:15 +0300 Aki Tuomi (76537b199) doveadm-proxy: Change to work with doveadm ver2 M src/doveadm/doveadm-proxy.c 2016-04-04 12:22:06 +0300 Timo Sirainen (6fbc1a225) lib-storage: FS layout assert-crashed when trying to list with invalid UTF8 pattern M src/lib-storage/list/mailbox-list-fs-iter.c 2016-04-04 11:11:13 +0300 Timo Sirainen (05e8b3e27) lib: Updated fdpass.h comments. M src/lib/fdpass.h 2016-04-03 22:54:17 +0200 Stephan Bosch (d17a99d9e) istream-unix: Fixed handling of EOF from fd_read() (ret==0). This situation was ignored. M src/lib/istream-unix.c 2016-03-31 16:35:06 +0300 Teemu Huovila (4adefdb40) quota: Fix NetBSD build. M src/plugins/quota/quota-fs.c 2016-03-31 12:41:25 +0300 Aki Tuomi (9ba5c4965) doveadm-mail: Honor -u flag on v1 commands M src/doveadm/doveadm-mail.c 2016-03-30 16:24:56 +0300 Timo Sirainen (a2fdfd2ef) doveadm-server: Register builtin dict drivers always at init This was already done for doveadm. Fixes using doveadm dict commands via doveadm-server. M src/doveadm/main.c 2016-03-30 13:14:40 +0300 Aki Tuomi (c3ffcb7ee) doveadm-mail: Initialize missing cmd context username Fixes assert-crash in doveadm_mail_single_user() M src/doveadm/doveadm-mail.c 2016-03-30 10:51:50 +0300 Timo Sirainen (0be3a0df1) lib-storage: Fixed memory leak when iterating attributes. M src/lib-storage/mailbox-attribute.c 2016-03-30 10:34:06 +0300 Aki Tuomi (4af926f5d) doveadm-mail: Don't lose rip/lip/lport/rport in passdb lookups for doveadm TCP connections M src/doveadm/doveadm-mail.c 2016-03-30 08:24:51 +0300 Timo Sirainen (002eaedb4) director: Avoid a potential assert-crash after removing a director from ring. This should fix the crash: Panic: director: file director-connection.c: line 1926 (director_connection_init_out): assertion failed: (!host->removed) Also moved the last_network_failure timestamp reset a bit later, since there's no need to reset the timestamp if we're not actually connecting to the server. M src/director/director-connection.c 2016-03-29 21:17:22 +0300 Timo Sirainen (315aa3cca) doveadm: Fixed reading USER environment for v1 commands. M src/doveadm/doveadm-mail.c 2016-03-29 20:38:19 +0300 Timo Sirainen (969f57f72) imapc: Don't try to FETCH uncommitted mails, because it would attempt to FETCH uid=0 M src/lib-storage/index/imapc/imapc-mail-fetch.c 2016-03-29 15:17:29 +0300 Timo Sirainen (e052c2247) auth: Disable auth caching for passwd-file Its caching is usually unnecessary, because the passwd-files are efficiently in memory already. It's also problematic, because extra_fields can contain %variables, which can be lookup-dependent. So for example if %{lport} is used in extra_fields, it would need to be included in the cache key. But because different variables can be used by different users' extra_fields, there's really no good way to include all of it in the cache key. M src/auth/passdb-passwd-file.c M src/auth/userdb-passwd-file.c 2016-03-29 15:04:01 +0300 Timo Sirainen (3e25053d0) doveadm-batch: Fixed error message for an unknown subcommand. M src/doveadm/doveadm-mail-batch.c 2016-03-29 14:57:20 +0300 Timo Sirainen (edbc6fe7f) doveadm: Fixed adding username header to commands iterating through multiple users. M src/doveadm/doveadm-mail.c 2016-03-29 14:17:01 +0300 Timo Sirainen (32e1486f9) doveadm-server: v2 mail commands weren't doing a userdb lookup. M src/doveadm/doveadm-mail.c 2016-03-29 14:10:10 +0300 Timo Sirainen (6a8c95b06) doveadm-server: Fixed running multi-word commands. The problem with for example "mailbox status" command is that: - doveadm cli: argv[0] = "mailbox", argv[1] = "status" - doveadm-server: argv[0] = "mailbox status" So with doveadm cli we'll now instead just skip over words until argv[0] is the last word of the command ("status"). M src/doveadm/client-connection.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-mail-batch.c 2016-03-29 14:06:43 +0300 Timo Sirainen (36a052b7b) doveadm: Code cleanup - always use const char *const[] type for argv. Needed to fix compiler warnings in the following patch. M src/doveadm/client-connection.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm.c 2016-03-29 12:15:05 +0300 Timo Sirainen (cbaac1e9a) login-proxy: When logging failures, include the client info prefix. M src/login-common/client-common-auth.c M src/login-common/login-proxy.c 2016-03-29 11:28:55 +0300 Timo Sirainen (200b024c7) login-*: When logging about client certificate validity, include the client info prefix. M src/login-common/ssl-proxy-openssl.c 2016-03-25 03:01:00 +0900 Timo Sirainen (090c9c266) auth: If user is unknown and there are more passdbs/userdb, log about it. M src/auth/auth-request.c 2016-03-25 02:48:55 +0900 Stephan Bosch (173d53863) lib-http: client: Fixed request timeout handling during pipelining. The timeout was not managed correctly. If an earlier request finished, it would not restart the timeout for the next pending request. Also, filling the pipeline caused the timout to be reset inappropriately, postponing its expiry. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2016-03-25 02:47:28 +0900 Stephan Bosch (8cf636305) lib-http: client: Fixed handling of stalled connections that emerge when the client ioloop hasn't run for a long time. Inside the peer's request handler routine, the connections are verified after the ioloop continues. If they turn out to be broken, they self-destruct while the handler routine is active, leading to problems. Solved by referencing the connection and retrying the connection statistics loop when a connection is lost in the process. M src/lib-http/http-client-peer.c 2016-03-25 00:45:54 +0900 Timo Sirainen (4f9855b29) Set postmaster_address=%d by default because imap now loads lda settings and it must be non-empty. We don't want imap to suddenly start failing because of the c15e8f33c change. This isn't a perfect solution either, but should be ok enough. M src/lib-lda/lda-settings.c 2016-03-24 10:07:15 +0900 Timo Sirainen (afbc6221e) director: Make sure freeing a user doesn't leak a timeout. M src/director/user-directory.c 2016-03-24 10:01:17 +0900 Timo Sirainen (6f8d51166) director: Fixed memory leak when killing a user. M src/director/director.c 2016-03-24 10:00:00 +0900 Timo Sirainen (488d92156) director: Make sure a long-delayed kill reply for user doesn't mess up the state. This should fix assert-crash: director: Panic: file director.c: line 690 (director_user_kill_finish_delayed_to): assertion failed: (ctx->user->kill_state == USER_KILL_STATE_DELAY) M src/director/director.c 2016-03-24 09:43:43 +0900 Timo Sirainen (5897c88bd) director: Small improvements to director-test.sh Test with a bigger director ring. Include microseconds in log timestamps to make debugging easier. Changed the name of the info_log_path. M src/director/director-test.sh 2016-03-24 09:42:50 +0900 Timo Sirainen (58b8a301b) director: Don't re-send SYNC unnecessarily often. M src/director/director-connection.c M src/director/director.c M src/director/director.h 2016-03-24 09:36:14 +0900 Timo Sirainen (f8c57c39a) director: Fixed user weakness getting stuck if multiple directors set user weak simultaneously M src/director/director-connection.c 2016-03-23 23:33:49 +0900 Timo Sirainen (a986ef3ac) pop3-login: XCLIENT / XOIP no longer return -ERR for untrusted IP ranges. The command is simply ignored, similarly to imap-login ID. M src/pop3-login/client.c 2016-03-23 09:01:31 +0200 Aki Tuomi (619994941) doveadm: Move getenv to correct place All getenv()s must be done after master_service_init() or the pointer will be corrupted with Linux and other OSes without setproctitle(). M src/doveadm/doveadm.c 2016-03-22 01:16:26 +0100 Stephan Bosch (c15e8f33c) imap: Made LDA settings accessible from plugins. This way, plugins can also send mail. M src/imap/Makefile.am M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/main.c 2016-03-22 09:19:45 +0200 Aki Tuomi (fcb8a4a04) doveadm-server: Fixed initializing username for mail commands. M src/doveadm/client-connection.c 2016-03-23 10:08:06 +0900 Timo Sirainen (7b98fc3ad) doveadm: Getting user from USER environment wasn't done in the right place. doveadm_mail_cmdline_init() is also called when parsing commands from doveadm-server. The USER environment is supposed to be read only from doveadm command line. M src/doveadm/doveadm-mail.c M src/doveadm/doveadm.c 2016-03-21 22:10:08 +0900 Timo Sirainen (4a769606e) lazy-expunge: Fixed crash if lazy_expunge-namespace was not found. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-03-21 21:51:49 +0900 Timo Sirainen (65d8efa66) lib: Avoid assert-crash in istream-concat at close. If stream was seeked to EOF, cur_input=NULL and closing the stream would cause i_stream_concat_skip() to crash. Fixed this by making sure cur_input is never NULL. This also adds a check to not allow seeking past EOF, but this shouldn't happen anyway. M src/lib/istream-concat.c 2016-03-21 21:46:47 +0900 Timo Sirainen (421973339) lib: Small code cleanup to istream-concat - don't use a magic UINT_MAX value as error code M src/lib/istream-concat.c 2016-03-11 17:44:41 +1300 Timo Sirainen (25866546f) lib-storage: Support autoexpunging from wildcards mailbox names. For example: mailbox Trash { autoexpunge = 30d } mailbox Trash/* { autoexpunge = 30d } M src/lib-storage/mail-autoexpunge.c 2016-03-03 19:55:03 -0700 Michael M Slusarz (20ad75b42) doveadm: Fix typos in error messages M src/doveadm/client-connection-http.c 2016-03-11 18:01:33 +1300 Timo Sirainen (8281cfda2) lazy-expunge: If lazy_expunge is set to namespace root, save all mails to the root mailbox. So the difference is: namespace { prefix = expunged/ .. } plugin { # Move expunged mails to expunged/INBOX, expunged/Trash, etc. mailboxes lazy_expunge = expunged/ # Move all expunged mails to "expunged" mailbox, which is the namespace root. lazy_expunge = expunged } M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-03-11 17:57:41 +1300 Timo Sirainen (eade05821) lazy-expunge: Code cleanup - move destination mailbox name generation to its own function M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2016-03-16 09:27:04 +0200 Teemu Huovila (998395f67) lib-fts: Fix unit tests for lib-fts. M src/lib-fts/test-fts-tokenizer.c 2016-03-16 16:34:32 +1100 Timo Sirainen (7a3b52b8f) doveadm sync: Don't allow -R parameter. -R implicitly enabled doveadm backup mode, which wasn't supposed to happen. M src/doveadm/doveadm-dsync.c 2016-02-29 19:29:14 +0200 Phil Carmody (b22dcc3c0) plugins: fts-expunge-log - subtraction from and dumping of a flattened log This permits you to read a whole expunge log, remove records from the in-memory copy of it, and write it back out to file. NOTE: Inefficiently implemented. The hash is effectively rebuilt, this time backed by a file, a record at a time, which implies O(n^2) possibilities. Signed-off-by: Phil Carmody M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-expunge-log.h 2016-03-12 01:56:55 +0100 Stephan Bosch (ca270e31c) lib-http: client: Improved test-http-payload to test partial reading of response payload. M src/lib-http/http-client-connection.c M src/lib-http/test-http-payload.c 2016-03-03 22:29:44 +0100 Stephan Bosch (641ab76d7) lib-http: server: Improved test-http-payload to test partial reading of request payload. M src/lib-http/test-http-payload.c 2016-03-03 22:28:47 +0100 Stephan Bosch (390b600a6) lib-http: server: Fixed handling of partially read request payload. This would sometimes cause the server to hang. M src/lib-http/http-server-connection.c M src/lib-http/http-server-request.c 2016-03-15 10:48:31 +0200 Teemu Huovila (af177be26) lib-fts: Limit maximum length of addresses found. The address tokenizer now takes a "maxlen" parameter, which defaults to 254 bytes. Previously addresses, or something looking like it, could be of any length. This could cause trouble in fts backends. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/test-fts-tokenizer.c 2016-03-15 10:47:20 +0200 Teemu Huovila (00544ad37) lib-fts: Lift helper function out of generic tokenizer. M src/lib-fts/Makefile.am A src/lib-fts/fts-tokenizer-common.c A src/lib-fts/fts-tokenizer-common.h M src/lib-fts/fts-tokenizer-generic.c 2016-03-16 10:55:01 +1100 Timo Sirainen (613d69eb0) virtual plugin: Fixed off-by-one in virtual_max_open_mailboxes check. M src/plugins/virtual/virtual-storage.c 2016-03-16 10:33:26 +1100 Timo Sirainen (74bf1bef1) virtual plugin: Don't assert-crash if backend mailbox is recreated while virtual mailbox is open. M src/plugins/virtual/virtual-sync.c 2016-03-16 10:23:52 +1100 Timo Sirainen (5b7ff90a6) virtual plugin: Handle backend mailbox deletion on backend open/sync M src/plugins/virtual/virtual-sync.c 2016-03-16 10:17:45 +1100 Timo Sirainen (1ce59b0bd) virtual plugin: Code cleanup - remove confusing bbox_index_opened It was originally added because mailbox_open() was always called and we wanted to know if the mailbox was open before it. But this code was already removed. M src/plugins/virtual/virtual-sync.c 2016-03-16 10:04:32 +1100 Timo Sirainen (76fd7aa24) virtual plugin: If we detect backend box to be deleted, mark it permanently deleted. M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c 2016-03-16 09:30:20 +1100 Timo Sirainen (baa93d5ed) dbox: Fixed pop3.order caching for mails without no specified order. M src/lib-storage/index/dbox-common/dbox-mail.c 2016-03-11 19:03:34 +1300 Timo Sirainen (11120acd0) doveadm-auth: Added missing code forgotten from commit 208754367 M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2016-03-11 18:43:57 +1300 Timo Sirainen (6aafdd81a) auth: Code cleanup - avoid using void *context auth_request_callback_t always uses struct auth_client/master_connection* in the context - no need to try to be too generic here. M src/auth/auth-master-connection.c M src/auth/auth-master-connection.h M src/auth/auth-request-handler.c M src/auth/auth-request-handler.h 2016-03-11 18:37:43 +1300 Timo Sirainen (208754367) doveadm-auth: If auth_debug setting is enabled, send "debug" field to auth lookups. The idea is that you could enable auth_debug for specific requests with e.g.: doveadm -o auth_debug=yes user user@example.com M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h M src/lib-auth/auth-master.c M src/lib-auth/auth-master.h 2016-03-11 18:37:04 +1300 Timo Sirainen (d76a91450) auth: If auth request contains "debug" field, enable auth_debug=yes for the request. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/db-ldap.c M src/auth/passdb-imap.c M src/auth/userdb-prefetch.c 2016-03-10 14:59:46 +1300 Timo Sirainen (3b39022ea) lib-fs: Fixed fs-sis to work again M src/lib-fs/fs-posix.c 2016-03-04 16:40:23 +0200 Timo Sirainen (2839c7cdf) doveadm who: Don't require mask parameter. M src/doveadm/doveadm-who.c 2016-03-04 13:12:59 +0200 Timo Sirainen (e50a72961) config: Escape regexps properly in settings-get.pl to avoid warnings with new Perl M src/config/settings-get.pl 2016-03-03 16:10:51 +0200 Timo Sirainen (78d33b52c) fts: Added "doveadm fts tokenize" command. M src/plugins/fts/doveadm-fts.c 2016-03-03 11:53:05 +0200 Aki Tuomi (ab00b5d88) doveadm-http: Fixed crash when no authentication was configured. M src/doveadm/client-connection-http.c 2016-03-03 00:15:30 +0200 Timo Sirainen (5bd1c1d4f) lib-index: After MAIL_INDEX_OPEN_FLAG_SAVEONLY access cache's read_buf wasn't always reset. This could have caused at least errors like: Corrupted index cache file .../dovecot.index.cache: File too small I'm not sure if it might have also returned stale data sometimes. Easy way to reproduce this bug was: imaptest copy=100 copybox=Trash & imaptest box=Trash append=0 M src/lib-index/mail-cache.c 2016-03-01 22:11:05 +0200 Timo Sirainen (d6d9ee111) lib-index: Minor code cleanup - removed duplicate function prototype. M src/lib-index/mail-cache.h 2016-03-02 20:32:25 +0200 Timo Sirainen (6e15d56df) doveadm: Don't treat doveadm_api_key differently when it's unset vs set to empty. M src/doveadm/client-connection-http.c M src/doveadm/doveadm-settings.c 2016-03-02 17:45:18 +0200 Aki Tuomi (6a879801e) doveadm-http: Minor logging improvement - indicate error source M src/doveadm/client-connection-http.c 2016-03-02 17:38:40 +0200 Aki Tuomi (25df2d3b1) doveadm-http: Drop surplus log prefix M src/doveadm/client-connection-http.c 2016-03-02 16:08:06 +0200 Aki Tuomi (51338d9d6) doveadm-http: Set HTTP client's max idletime to 5 seconds M src/doveadm/client-connection-http.c 2016-03-02 16:07:51 +0200 Aki Tuomi (b7c4fe8a4) doveadm-http: For each executed command, log the command name and the user parameter if given. M src/doveadm/client-connection-http.c 2016-03-02 15:36:38 +0200 Aki Tuomi (2642aad18) doveadm-http: Improve authentication related code M src/doveadm/client-connection-http.c 2016-03-02 11:04:35 +0200 Aki Tuomi (0b36cf19e) doveadm-http: Code cleanup - Move authorize to its own function M src/doveadm/client-connection-http.c 2016-03-02 10:58:37 +0200 Aki Tuomi (482833715) doveadm-http: Add API calls and versioning for v1 M src/doveadm/client-connection-http.c 2016-03-01 19:37:30 +0200 Timo Sirainen (e10461a67) auth: Make password_scheme_encryption_rounds extern to allow plugins to read it. M src/auth/password-scheme-crypt.c M src/auth/password-scheme.h 2016-03-01 16:07:53 +0200 Timo Sirainen (3ba6ab5cf) lib: Fixed memory leak io_add_istream()+io_remove() when the stream didn't have fd. M src/lib/ioloop.c 2016-02-29 22:10:06 +0200 Timo Sirainen (153ed0fbc) lib: iostream-temp allows now calling o_stream_seek() on it. M src/lib/iostream-temp.c 2016-03-01 01:34:25 +0200 Timo Sirainen (2029c2cb3) doveadm: A bit nicer way to implement doveadm_cmd_param_array() returning C-string array So replacement of 4afc67eb9, which I accidentally pushed before remembering about this other way. M src/doveadm/client-connection-http.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h 2016-02-28 19:31:10 +0200 Aki Tuomi (6eb1a7a7a) doveadm-kick: Rewrite to ver2 infra M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-kick.c 2016-02-28 19:25:46 +0200 Aki Tuomi (633a1bf10) doveadm-kick: Print kicked usernames via doveadm-print API M src/doveadm/doveadm-kick.c 2016-02-28 19:07:03 +0200 Aki Tuomi (99819adc9) doveadm-who: Rewrite to ver2 infra M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-who.c 2016-02-28 18:59:35 +0200 Aki Tuomi (a7fc192e2) doveadm kick: Don't show who command's help on duplicate network/username masks M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-who.h 2016-02-28 18:48:15 +0200 Timo Sirainen (4afc67eb9) doveadm: Changed doveadm_cmd_param_array() to return C-string array instead of ARRAY() We could support both with separate functions, but perhaps this one is enough. M src/doveadm/client-connection-http.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h 2016-02-29 17:25:31 +0200 Aki Tuomi (19f03098c) doveadm-dict: Use ver2 structures M src/doveadm/doveadm-dict.c 2016-02-29 17:13:32 +0200 Aki Tuomi (aea3116a9) doveadm-dict: Remove i_fatal() usage M src/doveadm/doveadm-dict.c 2016-02-29 16:46:02 +0200 Aki Tuomi (967bcc77f) doveadm-fs: Use doveadm_print instead of printf M src/doveadm/doveadm-fs.c 2016-02-29 13:23:56 +0200 Timo Sirainen (a18da4410) doveadm: Renamed long parameter names. M src/doveadm/doveadm-fs.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-stats.c 2016-02-29 14:04:28 +0200 Timo Sirainen (504f950c5) doveadm mailbox metadata list: Added missing mailbox parameter M src/doveadm/doveadm-mail-mailbox-metadata.c 2016-02-29 12:59:23 +0200 Timo Sirainen (32223e1a3) lib-storage: Use getuid() instead of geteuid() for checking if we're running as root. This fixes running multiple doveadm commands for different users. Running mail_storage_service_init() + _deinit() multiple times left euid non-root, which dropped the MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP flag. M src/lib-storage/mail-storage-service.c 2016-02-29 13:02:40 +0200 Timo Sirainen (999008033) doveadm-server: Drop privileges only temporarily when running mail commands. This allows running mail commands for multiple users within the same doveadm connection. M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-29 10:31:37 +0200 Timo Sirainen (ec862f5c8) doveadm-http: Fixed crash on unknown commands. Also if command had already failed, don't override the existing method_err with 403. M src/doveadm/client-connection-http.c 2016-02-29 09:35:03 +0200 Aki Tuomi (a81dccf32) doveadm-mail-index: Use integer parameter type M src/doveadm/doveadm-mail-index.c 2016-02-28 22:23:03 +0200 Timo Sirainen (489301ee8) lib-storage: When cached mime.parts is detected to be inconsistent, log it as hex-encoded. M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search.c M src/plugins/fts/fts-build-mail.c 2016-02-28 22:22:06 +0200 Timo Sirainen (46114180b) lib-storage: If cached mime.parts is corrupted, log it hex-encoded. M src/lib-storage/index/index-mail.c 2016-02-28 22:08:40 +0200 Timo Sirainen (7cef8159e) lib-mail: message_search_msg() passes through message_parser_deinit_from_parts()'s error string M src/lib-mail/message-search.c M src/lib-mail/message-search.h M src/lib-storage/index/index-search.c 2016-02-28 21:07:27 +0200 Timo Sirainen (8b5b1f6cb) Use mail_set_cache_corrupted_reason() wherever possible. M src/imap/imap-fetch-body.c M src/lib-imap-storage/imap-msgpart.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-search.c M src/lib-storage/index/istream-mail.c M src/plugins/fts/fts-build-mail.c 2016-02-28 21:05:48 +0200 Timo Sirainen (79ec3f274) lib-storage: mail_set_cache_corrupted*() now logs also the mailbox name that was corrupted. M src/lib-storage/index/index-mail.c 2016-02-28 21:03:47 +0200 Timo Sirainen (dd59c7a1f) lib-mail: Minor code cleanup to message_parser_deinit() calls. M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c 2016-02-28 20:46:57 +0200 Timo Sirainen (3ef9cfcb6) lib-mail: Added message_parser_deinit_from_parts() The returned error strings could still be improved to give more details, especially give an approximate offset of where the problem is. M src/lib-mail/message-parser.c M src/lib-mail/message-parser.h 2016-02-28 20:19:45 +0200 Timo Sirainen (6de6ec228) lib-storage: Added mail_set_cache_corrupted_reason() M src/lib-storage/fail-mail.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/plugins/virtual/virtual-mail.c 2016-02-28 19:57:10 +0200 Timo Sirainen (85058e4f6) *-login: If verbose_ssl=yes, make sure all SSL errors are logged. They should already be logged in the client's disconnection line, but log them also with debug level just to make sure no errors are lost or overwritten. M src/login-common/ssl-proxy-openssl.c 2016-02-28 19:55:53 +0200 Timo Sirainen (cb999a76f) lib-ssl-iostream: If verbose=TRUE, internally log all errors. M src/lib-ssl-iostream/iostream-openssl.c 2016-02-28 19:51:54 +0200 Timo Sirainen (20905b89a) lib-ssl-iostream: Log all SSL info lines with debug-level. They're not logged at all if verbose=FALSE, so they're really debug messages. M src/lib-ssl-iostream/iostream-openssl.c 2016-02-27 11:36:29 +0200 Aki Tuomi (5592b0474) doveadm-fs: Use ver2 structures M src/doveadm/doveadm-fs.c 2016-02-27 11:13:24 +0200 Aki Tuomi (0746d8c49) doveadm-cmd: Support non-strings in compat wrapper M src/doveadm/doveadm-cmd.c 2016-02-28 18:33:01 +0200 Aki Tuomi (fa6b2cbb3) doveadm-mail: Rename ctx to mctx to separate from cctx M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.c 2016-02-28 18:27:35 +0200 Aki Tuomi (aaa1b6bb4) doveadm: Changed v2 command APIs to be easier to use. M src/doveadm/client-connection-http.c M src/doveadm/client-connection.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm.c 2016-02-28 18:25:31 +0200 Timo Sirainen (cabf4c96e) doveadm: Minor code cleanup - use arg-> instead of argv[i]. M src/doveadm/doveadm-mail.c 2016-02-26 17:33:02 +0200 Timo Sirainen (3b759465a) doveadm: Code cleanup - Removed unnecessary pointer checks. Originally for some reason added by e16cdc182. M src/doveadm/doveadm-cmd.c 2016-02-26 16:21:38 +0200 Timo Sirainen (6ab6a7d1d) doveadm: Fixed command parameter handling for doveadm-server. M src/doveadm/client-connection.c 2016-02-26 16:05:01 +0200 Timo Sirainen (8fdec3460) doveadm: Add more consts to avoid a cast breaking strict-aliasing rules. M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-mail-batch.c 2016-02-26 15:33:23 +0200 Aki Tuomi (da7c6d731) doveadm: Fixed parsing field/flag/file parameters. M src/doveadm/doveadm-mail.c 2016-02-26 15:25:27 +0200 Timo Sirainen (96f35f249) doveadm-log: Fixed trimming empty prefixes. Too eager (long) cast removal from the original code broke it. Changed to a slightly simplified version now. M src/doveadm/doveadm-log.c 2016-02-26 14:58:33 +0200 Timo Sirainen (50e497003) doveadm: Pass through mail_storage_service_input fields in doveadm_cmd_attributes M src/doveadm/client-connection-http.c M src/doveadm/client-connection.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-26 14:55:02 +0200 Timo Sirainen (79bbb900f) doveadm: Added struct doveadm_cmd_attributes, which is passed around instead of argc/argv M src/doveadm/client-connection.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm.c 2016-02-24 13:59:28 +0200 Aki Tuomi (7616a1520) doveadm-penalty: Convert to ver2 infra M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-penalty.c 2016-02-26 14:38:46 +0200 Aki Tuomi (2d83aa5ee) doveadm-flags: Support giving flags as an array. M src/doveadm/doveadm-mail-flags.c M src/doveadm/doveadm-mail.c 2016-02-25 09:26:39 +0200 Aki Tuomi (4ae632e12) doveadm-copymove: Use ver2 structures M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-26 09:37:06 +0200 Aki Tuomi (db8b22923) doveadm: Code cleanup - coding style fixes for doveadm_cmd_param*() accessors M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h 2016-02-26 09:33:25 +0200 Aki Tuomi (79ec87ea6) doveadm-cmd: Add CMD_PARAM_IP M src/doveadm/client-connection-http.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h 2016-02-25 12:30:45 +0200 Aki Tuomi (1a40f0bde) doveadm-mailbox-status: Fixed declaring and processing args M src/doveadm/doveadm-mail-mailbox-status.c 2016-02-25 12:30:33 +0200 Aki Tuomi (76160a825) doveadm: Fully populate mail_cmd in ver2 wrapper M src/doveadm/doveadm-mail.c 2016-02-25 10:34:34 +0200 Aki Tuomi (e47f08b87) doveadm-fts: Use ver2 structures M src/plugins/fts/doveadm-fts.c 2016-02-25 10:17:16 +0200 Aki Tuomi (57a2881cb) doveadm-acl: Use ver2 structures M src/plugins/acl/doveadm-acl.c 2016-02-25 09:58:55 +0200 Aki Tuomi (c874dcb48) doveadm-search: Use ver2 structures M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-25 09:54:01 +0200 Aki Tuomi (949c3973e) doveadm-purge: Use ver2 structures M src/doveadm/doveadm-mail.c 2016-02-25 09:53:37 +0200 Aki Tuomi (f2c25ca2e) doveadm-force-resync: Use ver2 structures M src/doveadm/doveadm-mail.c 2016-02-25 09:46:40 +0200 Aki Tuomi (ae8c89c81) doveadm-import: Use ver2 structures M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-25 09:44:04 +0200 Aki Tuomi (a893aaa99) doveadm-flags: Use ver2 structures M src/doveadm/doveadm-mail-flags.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-25 09:39:55 +0200 Aki Tuomi (977f08d64) doveadm-expunge: Use ver2 structures M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-25 09:30:41 +0200 Aki Tuomi (e1d08b1c3) doveadm-deduplicate: Use ver2 structures M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-25 09:20:06 +0200 Aki Tuomi (adff71f50) doveadm-batch: Fixed it to work with ver2 commands. M src/doveadm/doveadm-mail-batch.c 2016-02-25 09:08:38 +0200 Aki Tuomi (844929a7b) doveadm-altmove: Use ver2 structures M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-24 11:19:11 +0200 Aki Tuomi (cd75585e2) doveadm: Remove return value from ver2 cmd() - doveadm_exit_code is enough M src/doveadm/client-connection-http.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-stats.c 2016-02-24 11:14:14 +0200 Aki Tuomi (fb8519306) doveadm-cmd: Constify doveadm_cmd_param_*() usage M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h 2016-02-23 14:36:22 +0200 Aki Tuomi (0ed5452f5) doveadm-log: Use ver2 structure M src/doveadm/doveadm-log.c 2016-02-23 14:14:16 +0200 Aki Tuomi (8fdbe2f47) doveadm-log: Use doveadm_print() for output M src/doveadm/doveadm-log.c 2016-02-23 14:13:37 +0200 Aki Tuomi (21e4a561c) doveadm-print: Add "formatted" print formatter This allows using the header names as %{variables} in the format string. M src/doveadm/Makefile.am A src/doveadm/doveadm-print-formatted.c M src/doveadm/doveadm-print-private.h M src/doveadm/doveadm-print.h M src/doveadm/doveadm.c 2016-02-24 19:13:28 +0200 Timo Sirainen (42fcc7082) *-login: Call client.auth_result() also when proxying M src/login-common/client-common-auth.c 2016-02-26 00:15:45 +0200 Stephan Bosch (81ebac6b8) lib-http: client: Decreased request/connect timeout for test-http-client to 10s. M src/lib-http/test-http-client.c 2016-02-26 00:15:17 +0200 Stephan Bosch (5257840e8) lib-http: client: Gave request, connect and dns timeouts defaults that make more sense. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c 2016-02-25 22:46:11 +0100 Stephan Bosch (1f1ba791b) lib-http: client: Fixed crash happening when connection hits an error while handling a new request. At this point the connection dies within the peer request handler loop. Before, the dying connection could free the peer when it ended up being obsolete. But because it was still in the loop, a segfault occurred as the loop continued. Fixed by deferring the the deallocation of the peer from the connection_lost() function to the request handler loop itself if it is active. M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2016-02-25 01:18:06 +0200 Timo Sirainen (b3c9a0882) stats: Minor code cleaup - remove unnecessary includes and fix copyright year M src/stats/client-reset.c 2016-02-24 16:39:59 +0200 Timo Sirainen (2686ef879) lib: Added unit test to iostream-temp. M src/lib/Makefile.am A src/lib/test-iostream-temp.c M src/lib/test-lib.c M src/lib/test-lib.h 2016-02-24 16:39:25 +0200 Timo Sirainen (e245fb130) lib: iostream-temp makes the internal fd visible now to o_stream_get_fd() Mainly for the following unit test. M src/lib/iostream-temp.c 2016-02-24 15:00:31 +0200 Timo Sirainen (07448eb01) lib-storage: Verify settings only after applying settings from userdb This is especially important to verify() functions that parse the settings and store data permanently based on them, e.g. pop3_delete_flag or imap_client_workarounds, which effectively couldn't be overwritten by userdb. M src/lib-storage/mail-storage-service.c 2016-02-23 23:41:28 +0200 Timo Sirainen (8a8a3b439) lib: Added iostream_temp_create_sized() to specify the max in-memory size M src/lib/iostream-temp.c M src/lib/iostream-temp.h 2016-02-23 18:41:35 +0200 Timo Sirainen (87f406492) login-proxy: Use io_add_istream() for adding client_input io. This is required for non-fd istreams to work, e.g. ssl-iostream. M src/login-common/login-proxy.c 2016-02-23 01:48:47 +0200 Timo Sirainen (f1a9b58ae) lib-http: Fix to earlier http_client_connection_unref() change 1dead6 Patch by Stephan Bosch M src/lib-http/http-client-connection.c 2016-02-22 22:23:08 +0200 Timo Sirainen (17bfcf534) doveadm: Code cleanup - remove duplicate code M src/doveadm/client-connection-http.c 2016-02-22 22:10:42 +0200 Timo Sirainen (bef3447d2) doveadm: Fixed usage printing for ver2 commands M src/doveadm/doveadm-mail.c M src/doveadm/doveadm.c 2016-02-22 22:02:03 +0200 Timo Sirainen (c45a841be) doveadm: Define DOVEADM_CMD_MAIL_USAGE_PREFIX, which v2 commands use as their usage prefix. This allows implementing the next changeset without kludging. M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-save.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-22 21:44:40 +0200 Aki Tuomi (7a8ef1158) doveadm: Added doveadm_cmd_get_ver2() helper M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h 2016-02-22 14:18:04 +0200 Aki Tuomi (71f454930) doveadm-index: Use ver2 structures M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-22 13:30:12 +0200 Aki Tuomi (3fd8086f7) doveadm-cmd: Add command flags M src/doveadm/doveadm-cmd.h 2016-02-22 21:39:06 +0200 Timo Sirainen (1e8a6a870) doveadm: Free istream parameters everywhere Based on patch by Aki Tuomi M src/doveadm/client-connection-http.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h 2016-02-22 14:03:41 +0200 Aki Tuomi (e6e568722) quota: Use doveadm ver2 structures M src/plugins/quota/doveadm-quota.c 2016-02-22 21:28:24 +0200 Timo Sirainen (7d500ecf2) doveadm: Minor code cleanup - rename doveadm_cmd_find*() to doveadm_cmd_find_with_args*() M src/doveadm/client-connection.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm.c 2016-02-22 21:24:06 +0200 Timo Sirainen (3d27e1102) doveadm: Code cleanup - remove unnecessary NULL sets and checks M src/doveadm/client-connection-http.c M src/doveadm/doveadm-cmd.c 2016-02-22 21:17:26 +0200 Timo Sirainen (f9d2a1f21) lib-http: Always set *_obj=NULL first in deinit functions (mainly for consistency) This doesn't usually matter, but in case deinit calls some callback they may be trying to access the partially destroyed object. M src/lib-http/http-client-peer.c M src/lib-http/http-client.c M src/lib-http/http-header-parser.c M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c M src/lib-http/http-server-response.c M src/lib-http/http-server.c 2016-02-22 21:15:37 +0200 Timo Sirainen (702ebfdbd) lib-http: http_server_connection_unref() now always sets *conn=NULL This makes its behavior consistent with other APIs in Dovecot. M src/lib-http/http-server-connection.c M src/lib-http/http-server.h 2016-02-22 21:00:41 +0200 Timo Sirainen (8d33944ab) lib-http: Clarify http_server_response_*_payload() API and minor change to it Similar to the change in c3a4c93. Nothing used this API yet. M src/lib-http/http-server-response.c M src/lib-http/http-server.h 2016-02-22 20:58:03 +0200 Timo Sirainen (903f0b388) lib-http: http_server_request_unref() now always sets *req=NULL This makes its behavior consistent with other APIs in Dovecot. M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c 2016-02-22 20:47:37 +0200 Timo Sirainen (c3a4c931e) lib-http: Clarify http_client_request_*_payload() API and minor change to it The earlier behavior was pretty confusing, and potentially could have caused double-freeing memory in some situations. Now it's clear that req is set to NULL always when the request is finished, regardless of whether it has any references left. Changed http_client_request_finish_payload() to return 0 on success instead of 1. This could have been left alone, but it's unlikely that there is any code outside Dovecot core that calls it and this way is cleaner. M src/lib-http/http-client-request.c M src/lib-http/http-client.h M src/plugins/fts-solr/solr-connection.c 2016-02-22 20:34:46 +0200 Timo Sirainen (d1f964d3f) lib-http: http_client_request_unref() now always sets *req=NULL This makes its behavior consistent with other APIs in Dovecot. Also http_client_request_finish() no longer sets req=NULL, because all of its callers already keep a reference. Instead added an assert to make sure the reference is there. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2016-02-22 20:14:57 +0200 Timo Sirainen (1dead6eac) lib-http: http_client_connection_unref() now always sets *conn=NULL This makes its behavior consistent with other APIs in Dovecot. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h 2016-02-22 20:03:44 +0200 Aki Tuomi (331d2de16) doveadm-http: Close client input correctly M src/doveadm/client-connection-http.c M src/doveadm/client-connection.c 2016-02-22 20:00:13 +0200 Timo Sirainen (346ce9e82) doveadm-http: Return HTTP failure on unexpected JSON input M src/doveadm/client-connection-http.c 2016-02-22 19:56:35 +0200 Timo Sirainen (9cd71e2cb) doveadm-http: Handle invalid input better for arrays. M src/doveadm/client-connection-http.c 2016-02-20 23:16:52 +0200 Timo Sirainen (394a87340) doveadm-http: Handle istreams correctly Based on patch by Aki Tuomi M src/doveadm/client-connection-http.c 2016-02-17 10:24:24 +0200 Aki Tuomi (5ba6009f4) doveadm-save: Use ver2 command structure M src/doveadm/doveadm-mail-save.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-22 18:55:03 +0200 Timo Sirainen (0d55fdfbc) doveadm: Added support for "file" parameters M src/doveadm/doveadm-mail.c 2016-02-22 18:46:29 +0200 Timo Sirainen (368ec06f2) doveadm: Fixed memory leak at deinit M src/doveadm/doveadm-cmd.c 2016-02-22 18:42:42 +0200 Timo Sirainen (bce90a4f1) doveadm: Fixed double-free when using -F parameter M src/doveadm/doveadm-mail.c 2016-02-22 18:42:10 +0200 Timo Sirainen (f8e3a08ae) doveadm: Fixed memory leaks when ver2 command parsing fails with invalid parameter. M src/doveadm/doveadm-mail.c 2016-02-22 13:59:14 +0200 Aki Tuomi (13607902e) doveadm-mail: Fixed common parameters to use correct names as in DOVEADM_CMD_MAIL_COMMON M src/doveadm/doveadm-mail.c 2016-02-17 09:19:01 +0200 Aki Tuomi (89d31290d) doveadm-fetch: Use ver2 structures M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-22 18:20:59 +0200 Aki Tuomi (778087c26) doveadm: Add kludge to support field array to fieldstr conversion M src/doveadm/doveadm-mail.c 2016-02-15 15:14:25 +0200 Aki Tuomi (676d5601a) doveadm-stats: Use ver2 structures M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-stats.c M src/doveadm/doveadm.c 2016-02-22 16:12:16 +0200 Timo Sirainen (d68a021c2) lib-index: If mail_transaction_log_lock_head() locking took long, include reason string in warning M src/lib-index/mail-transaction-log.c 2016-02-22 11:47:16 +0200 Timo Sirainen (62958c5ee) mdbox: Use mail_index_sync_set_reason() to give better reason messages for lock wait warnings. M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-map.h M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-multi/mdbox-sync.h 2016-02-22 11:46:13 +0200 Timo Sirainen (5bced341c) lib-index: Added mail_index_sync_set_reason() to improve lock wait log warnings M src/lib-index/mail-index-sync.c M src/lib-index/mail-index.h 2016-02-22 11:15:52 +0200 Timo Sirainen (6ded8819b) lib-index: Small improvements to logging the reason for long transaction log lock waits M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c M src/lib-index/mail-transaction-log.h M src/lib-index/test-mail-transaction-log-append.c 2016-02-22 10:25:56 +0200 Timo Sirainen (2d5fcede6) dovecot.service: Fixed PIDFile path - removed extra /dovecot/ directory from the middle. M dovecot.service.in 2016-02-21 19:01:31 +0200 Timo Sirainen (5dd21e148) lib: mempool-alloconly unit test improvement: verify that data stack isn't used by p_malloc() M src/lib/test-mempool-alloconly.c 2016-02-21 18:58:50 +0200 Timo Sirainen (010341a45) lib: Minor code cleanup to mempool-alloconly unit test - use test_begin/assert/end() M src/lib/test-mempool-alloconly.c 2016-02-21 18:38:24 +0200 Aki Tuomi (b4a7ea605) doveadm-http: Correctly initialize parameters M src/doveadm/client-connection-http.c 2016-02-21 18:37:24 +0200 Aki Tuomi (f169d423d) doveadm: Fixed using array type parameters. M src/doveadm/doveadm-cmd.c 2016-02-21 18:36:19 +0200 Aki Tuomi (909828976) doveadm: Fixed assert-crash when command with CMD_PARAM_FLAG_DO_NOT_EXPOSE was used. M src/doveadm/doveadm-cmd.c 2016-02-21 18:35:03 +0200 Aki Tuomi (25f12bc90) doveadm: Fixed support for --long-option arguments M src/doveadm/doveadm-cmd.c 2016-02-21 18:32:50 +0200 Timo Sirainen (c8d88cb78) lib: Added [pt]_array_const_string_join() Based on patch by Aki Tuomi M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2016-02-21 18:32:03 +0200 Timo Sirainen (1a7f7767b) lib: Move code from t_strarray_join() into a more generic p_strarray_join_n() M src/lib/strfuncs.c 2016-02-21 18:31:12 +0200 Timo Sirainen (1f35f5409) lib: Added unit test for t_strarray_join() M src/lib/test-strfuncs.c 2016-02-21 17:44:38 +0200 Timo Sirainen (11c685e34) quots-fs: Fixed compiling with HP/UX and Solaris M src/plugins/quota/quota-fs.c 2016-02-21 17:44:07 +0200 Timo Sirainen (bb5cede9c) doveadm: Compiler warning fix. M src/doveadm/client-connection.c 2016-02-21 03:40:48 +0200 Timo Sirainen (950a6e61d) lib-index: mail_index_sync_next() didn't always return expunges sorted Maildir and mbox formats were using index_sync_changes_read(), which assumed that they were sorted. So some of the intended expunges weren't actually always being done. This mainly affected when expunges were being done simultaneously by multiple processes or by pipelined commands. For example: printf "a select inbox\nb uid move 2 Trash\nc uid move 1 Trash\nd logout\n" | ./imap M src/lib-index/mail-index-sync.c 2016-02-16 18:05:59 +0100 manuel (ce3509278) imap-hibernate: send connect/disconnect events to anvil make doveadm who + mail_max_userip_connections work with hibernated connections. M src/imap-hibernate/imap-client.c M src/imap-hibernate/imap-client.h 2016-02-20 23:32:59 +0200 Timo Sirainen (202b46742) lib: json_parse_next_stream() wrongly returned -1 even when a stream was returned. M src/lib/json-parser.c M src/lib/test-json-parser.c 2016-02-20 19:47:58 +0200 Stephan Bosch (dbbdcc122) uri-util: Fixed assertion failure for invalid character in path segment. M src/lib/uri-util.c 2016-02-20 19:35:12 +0200 Stephan Bosch (c0a803139) lib-http: server: Implicitly free a request response structure when a new (failure) response is started. M src/lib-http/http-server-response.c 2016-02-20 13:40:18 +0200 Timo Sirainen (0755a3bc1) doveadm: Fix for previous attempt to make static analyzer happier. M src/doveadm/doveadm-cmd.c 2016-02-19 20:20:43 +0200 Timo Sirainen (4e96840f7) doveadm: Make static analyzer happier - cptr can't be NULL here. M src/doveadm/doveadm-cmd.c 2016-02-19 16:36:00 +0200 Timo Sirainen (14102a0c5) doveadm: Use char type for short options instead of a string. The ":" = "has parameters" can be determined from the type. Also removed "?" checks since it wasn't actually used. M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-19 16:34:53 +0200 Timo Sirainen (05128fda8) doveadm: Remove CMD_PARAM_NONE type, since it already defaulted to same as CMD_PARAM_BOOL M src/doveadm/client-connection-http.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h 2016-02-19 19:11:53 +0200 Timo Sirainen (382d45f25) lib-index: Fixed mail_index_lookup_ext_full()'s map_r with transaction-view. M src/lib-index/mail-index-transaction-view.c 2016-02-19 19:08:43 +0200 Timo Sirainen (ecb1ecd37) lib-index: Code cleanup - moved code to tview_lookup_ext_update() No functional changes. M src/lib-index/mail-index-transaction-view.c 2016-02-19 16:13:51 +0200 Timo Sirainen (d09af0967) Makefile: Added missing client-connection-private.h M src/doveadm/Makefile.am 2016-02-19 16:11:58 +0200 Timo Sirainen (22d75d470) dovecot.service: Fixed PIDFile path M Makefile.am M dovecot.service.in 2016-02-19 16:03:30 +0200 Timo Sirainen (721e0f8b2) doveadm: Use correct uoff_t type for printf M src/doveadm/client-connection-http.c 2016-02-19 15:39:35 +0200 Timo Sirainen (f5d30c950) dovecot.service: Disabled ProtectSystem=full for now It's not supported by RHEL7's systemd. M dovecot.service.in 2016-02-19 15:03:51 +0200 Aki Tuomi (0368f3b0a) doveadm: Use ver2 structures for all "doveadm mailbox *" commands. M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2016-02-19 15:02:56 +0200 Aki Tuomi (68cc27871) doveadm: Use ver2 structures for stop & reload. M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-master.c 2016-02-19 14:58:41 +0200 Aki Tuomi (1e11a94ec) doveadm: Implement HTTP server API, slightly based on JMAP API M src/doveadm/Makefile.am A src/doveadm/client-connection-http.c A src/doveadm/client-connection-private.h M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/main.c 2016-02-19 14:40:59 +0200 Timo Sirainen (629074c75) doveadm: Code cleanup - moved code to client_connection_init() No functional changes. M src/doveadm/client-connection.c 2016-02-15 14:02:19 +0200 Aki Tuomi (14af7be4a) doveadm: Add infrastructure for doveadm_cmd_ver2 Version 2 commands have named parameters, which also have types. This is especially useful for reading input from HTTP/JSON API. This also simplifies the parameter parsing for command line input. For v2.3 the plan is to replace all the old doveadm_cmds with this new version and get rid of the _ver2 suffixes. But for now we'll have two versions of commands. For backwards compatibility with old commands we have also implemented wrappers so that v2 structs can be defined and there's a function to convert the named parameters to old v1 style args[] string, so the old command handlers can still be run. This will also be removed in v2.3. This change also adds requirement for getopt_long(). It's already available in all the Linuxes and BSDs, so this shouldn't be too big of a requirement. Other systems can install it from an external library. M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/doveadm.c M src/doveadm/doveadm.h 2016-02-18 15:49:03 +0200 Aki Tuomi (35a2af0c2) doveadm: Add unit tests for i_strccdascmp M src/doveadm/Makefile.am A src/doveadm/test-doveadm-util.c 2016-02-18 15:48:21 +0200 Aki Tuomi (a23210844) doveadm: Add i_strccdascmp() This comparator considers camel case==camel-case==camelCase. This is to help with HTTP API to make it more flexible. M src/doveadm/doveadm-util.c M src/doveadm/doveadm-util.h 2016-02-19 14:08:40 +0200 Timo Sirainen (374fed59c) doveadm: If user lookup fails, log an error but don't kill the process. M src/doveadm/doveadm-mail.c 2016-02-19 14:05:13 +0200 Timo Sirainen (aa1561ec7) doveadm: Code cleanup - Removed passing through unnecessary argv parameter M src/doveadm/doveadm-mail.c 2016-02-18 09:27:10 +0200 Aki Tuomi (1d689069f) doveadm: Code cleanup - move code to doveadm_mail_cmd_exec() No functional changes. M src/doveadm/doveadm-mail.c 2016-02-15 13:55:41 +0200 Aki Tuomi (0c5fef35b) lib-http: Add accessors for some response details M src/lib-http/http-server-response.c M src/lib-http/http-server.h 2016-02-18 19:27:13 +0200 Aki Tuomi (53cc71cae) dovecot: improve systemd support M Makefile.am M dovecot.service.in 2016-02-16 18:34:19 +0200 Timo Sirainen (ebcd7cf40) fts: When searching data headers, don't expand search keys to all languages. For example "SEARCH HEADER Message-Id foo@example.com" works better the less expansion there is for "foo@example.com". M src/plugins/fts/fts-search-args.c M src/plugins/fts/fts-user.c M src/plugins/fts/fts-user.h 2016-02-16 18:33:46 +0200 Timo Sirainen (4ac43ad12) fts: Code cleanup - moved fts_header_has_language() to a global function M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c 2016-02-16 17:50:53 +0200 Timo Sirainen (7fbc81a10) lib-storage: Avoid duplicate work when a search query has multiple header/body keys. M src/lib-storage/index/index-search.c 2016-02-16 17:48:53 +0200 Timo Sirainen (121f820ae) lib-mail: Added message_search_more_get_decoded() M src/lib-mail/Makefile.am M src/lib-mail/message-search.c M src/lib-mail/message-search.h A src/lib-mail/test-message-search.c 2016-02-11 13:25:28 +0200 Timo Sirainen (2d8f66596) auth: Moved all passdb/userdb template handling to auth_passdb/userdb. This is because passdb_find() and userdb_find() attempts to avoid duplicating passdbs and userdbs when they have identical driver+args. This deduplication is useful when using multiple protocol { .. } blocks that duplicate some passdb/userdb backends. For example we might want to have only a single SQL connection regardless of how the protocol-specific passdbs and userdbs are being set up. All the default/override_fields and result_* settings aren't relevant to the passdb/userdb backends, so removing them will again allow the deduplication to work correctly. M src/auth/auth-request.c M src/auth/auth.c M src/auth/auth.h M src/auth/passdb.c M src/auth/passdb.h M src/auth/userdb.c M src/auth/userdb.h 2016-02-11 13:21:18 +0200 Timo Sirainen (74674a53a) auth: Moved cache_key from passdb_module to auth_passdb. This is in preparation for the next changeset, which moves default/override_fields also to auth_passdb. M src/auth/auth-request.c M src/auth/auth.c M src/auth/auth.h M src/auth/passdb-bsdauth.c M src/auth/passdb-dict.c M src/auth/passdb-ldap.c M src/auth/passdb-pam.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/passdb.h M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-sql.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/auth/userdb.h 2016-02-11 13:58:54 +0200 Timo Sirainen (e173fd380) lib-http: server: Error handling fix - avoid potential crash when request is already gone M src/lib-http/http-server-request.c 2016-02-10 22:02:50 +0200 Timo Sirainen (60216d61e) login-proxy: Preserve client's istream even after login. This eventually allows things like using lib-ssl-iostream, moving IMAP COMPRESS handling to login process, etc. M src/login-common/login-proxy.c 2016-02-10 22:02:15 +0200 Timo Sirainen (463f6ea04) lib: Added i_stream_set_persistent_buffers() M src/lib/istream-private.h M src/lib/istream.c M src/lib/istream.h 2016-02-10 19:30:42 +0200 Timo Sirainen (4ff6d11dc) lib: Ignore ENOSYS errors from madvise() calls. For example Raspberry Pi kernels have removed this. We'll wrap all the madvise() calls with my_madvise() to avoid extra checks all over the place. M src/lib/mmap-util.c M src/lib/mmap-util.h 2016-02-10 23:39:25 +0100 Stephan Bosch (d5cdf90f0) lib-http: Created test program that tests payload exchange between client and server with various configurations. It recursively uses all files in the current directory as payload. It is currenrly not part of `make check', because it is a stress-testing tool that can run for a long time. M src/lib-http/Makefile.am A src/lib-http/test-http-payload.c 2016-02-10 22:32:46 +0100 Stephan Bosch (201c3b937) lib-http: server: Implemented blocking request input stream. M src/lib-http/http-server-connection.c M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c M src/lib-http/http-server.h 2016-02-10 22:30:22 +0100 Stephan Bosch (7c7117e54) lib-http: server: Implemented blocking response output stream. M src/lib-http/http-server-private.h M src/lib-http/http-server-response.c M src/lib-http/http-server.h 2016-02-10 22:25:07 +0100 Stephan Bosch (ee2633056) lib-http: server: Created blocking http_server_response_send_payload() API that closely mimics the client equivalent. It allows sending response payload in several chunks in a blocking fashion. M src/lib-http/http-server-connection.c M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c M src/lib-http/http-server.h 2016-02-10 22:19:27 +0100 Stephan Bosch (2f64a4c88) lib-http: server: Added some request debug logging. M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c 2016-02-10 22:17:07 +0100 Stephan Bosch (d7b94e172) lib-http: request parser: Added support for explicitly finishing payload of previous request. M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h 2016-02-10 22:15:12 -0700 Michael M Slusarz (e8434aad9) lib-sql: Allow port to be configured for Cassandra cluster M src/lib-sql/driver-cassandra.c 2016-02-10 19:08:11 +0200 Timo Sirainen (38dac3030) lib-storage: Added missing %{userdb:*:default} handling M src/lib-storage/mail-storage-service.c 2016-02-10 19:06:14 +0200 Timo Sirainen (d23dfc385) lib-storage: Deduplicate %{userdb:*} handling for mail_user and mail_storage_service_user M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lib-storage/mail-user.c 2016-02-10 18:27:52 +0200 Timo Sirainen (6b107c647) *-login: Pass client_auth_reply to client.auth_result() whenever possible. This didn't matter normally, but some plugins might care about it. M src/login-common/client-common-auth.c 2016-02-10 16:54:43 +0200 Timo Sirainen (c43657912) auth: Added "fail" parameter, which fails the passdb lookup. M src/auth/auth-request.c 2016-02-10 16:51:42 +0200 Timo Sirainen (61c2b28eb) auth: Don't revert any previous failed=TRUE status if allow_nets check succeeds M src/auth/auth-request.c 2016-02-10 15:50:48 +0200 Timo Sirainen (ec39e55c7) Makefile: Added missing ostream-escaped.h M src/lib/Makefile.am 2016-02-10 15:39:45 +0200 Timo Sirainen (b9ee73a06) lib-http: Fixed test-http-request-parser unit test Patch by Stephan Bosch M src/lib-http/test-http-request-parser.c 2016-02-08 16:22:34 +0200 Aki Tuomi (662bb64be) lib: Add ostream-escaped filter M src/lib/Makefile.am M src/lib/json-parser.c M src/lib/json-parser.h A src/lib/ostream-escaped.c A src/lib/ostream-escaped.h M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-ostream-escaped.c 2016-02-09 10:03:56 +0200 Aki Tuomi (2d43af543) doveadm-print: Fix doveadm_print_json_print_stream M src/doveadm/doveadm-print-json.c 2016-02-08 22:57:13 +0100 Stephan Bosch (9a07da094) lib-http: message parser: Made sure that payload stream is always destroyed (hence closed) when the next request is to be parsed. This makes sure that the connection input is always at the correct position for the next request. Remaining references to the payload stream could theoretically mess this up. M src/lib-http/http-message-parser.c 2016-02-08 22:55:09 +0100 Stephan Bosch (489fb497f) lib-http: server: Make sure that any pending request is aborted and destroyed before connection FDs are closed. This way, any payload io struct created from the request callback can be freed before the associated FD becomes invalid. This would cause an assert failure otherwise. M src/lib-http/http-server-connection.c 2016-02-08 22:53:50 +0100 Stephan Bosch (14137be59) lib-http: server: Sometimes a success response was sent before all payload from the client request was read. This can confuse clients, so this is supposed to be prevented. M src/lib-http/http-server-connection.c 2016-02-08 22:52:38 +0100 Stephan Bosch (b498cc304) lib-http: server: Fixed memory problem reported by Valgrind, which was caused by the request being freed too early while sending a response. Fixed by referencing the request while it is being sent. M src/lib-http/http-server-connection.c 2016-02-08 22:51:14 +0100 Stephan Bosch (01476c4d6) lib-http: server: Fixed datastack framing problem in error handling of response sending. The returned error string crossed a data stack frame, which wasn't handled correctly. M src/lib-http/http-server-response.c 2016-02-08 22:49:28 +0100 Stephan Bosch (ba9528fee) lib-http: request parser: Made sure that partially parsed requests never have stale string values. Due to the fact that we assign method and target fields early for proper error messages, stale fields from previous requests could have ended up in a partially parsed new request. M src/lib-http/http-request-parser.c 2016-02-08 22:47:30 +0100 Stephan Bosch (e1d8d185f) lib-http: client: Fixed pipelining bug: client sometimes sent new request while still waiting for 100-continue. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2016-02-08 22:45:54 +0100 Stephan Bosch (79f8a2042) lib-http: client: Make sure that any pending request is aborted and destroyed before connection FDs are closed. This way, any payload io struct created from the response callback can be freed before the associated FD becomes invalid. This would cause an assert failure otherwise. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2016-02-08 22:44:52 +0100 Stephan Bosch (da3004725) lib-http: Forgot to assign pointer parameter to NULL in request/response parser deinit functions. M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c 2016-02-09 10:34:29 +0200 Timo Sirainen (af3f70f21) Makefile: Added missing auth-request-stats.h M src/auth/Makefile.am 2016-02-08 18:43:02 +0200 Timo Sirainen (1f1df2d3c) doveadm auth test/login: Added -M parameter. M src/doveadm/doveadm-auth.c 2016-02-08 16:21:40 +0200 Timo Sirainen (38834f0ec) stats: Minor error message cleanup. FIFO stats can come from auth also, not just mail server. M src/stats/fifo-input-connection.c 2016-02-08 16:20:46 +0200 Timo Sirainen (44cf91b7a) auth: If auth_stats=yes, send statistics to stats process. M src/auth/Makefile.am A src/auth/auth-request-stats.c A src/auth/auth-request-stats.h M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-settings.c M src/auth/auth-settings.h A src/auth/auth-stats.c A src/auth/auth-stats.h M src/auth/main.c M src/auth/passdb-cache.c 2016-02-05 11:36:32 -0700 Michael M Slusarz (6cda5e1a9) man: document dsync -m and -R options M doc/man/doveadm-sync.1.in 2016-02-08 12:20:34 +0200 Timo Sirainen (2eed51b45) lib-master: Fail if syslog_facility's value is unknown. M src/lib-master/master-service-settings.c 2016-02-08 12:04:02 +0200 Timo Sirainen (dd5683e19) acl: If acl_user is set, use it for ACL username checks. Overrides master_user. M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-plugin.h M src/plugins/acl/acl-storage.c 2016-02-05 15:55:36 +0200 Timo Sirainen (90cf976e3) auth: Small code cleanup to auth cache - deduplicate code. No functional changes. M src/auth/passdb-cache.c 2016-02-05 15:54:35 +0200 Timo Sirainen (5bb7c9863) auth: Minor code cleanup - fix parameter type M src/auth/passdb-cache.c M src/auth/passdb-cache.h 2016-02-05 15:48:25 +0200 Timo Sirainen (6a6a995b3) auth: If auth cache lookup results in expired entry, it should be tracked in stats as a "miss" M src/auth/auth-cache.c 2016-02-05 15:26:15 +0200 Timo Sirainen (043258367) stats: Removed accidentally commited i_panic() in abb242da M src/stats/mail-session.c 2016-02-05 15:07:00 +0200 Timo Sirainen (800787d72) stats: Split stats-connection.[ch] to lib-stats/ and plugin's mail-specific parts. M src/lib-stats/Makefile.am R056 src/plugins/stats/stats-connection.c src/lib-stats/stats-connection.c A src/lib-stats/stats-connection.h M src/plugins/stats/Makefile.am A src/plugins/stats/mail-stats-connection.c A src/plugins/stats/mail-stats-connection.h D src/plugins/stats/stats-connection.h M src/plugins/stats/stats-plugin.c 2016-02-05 14:55:56 +0200 Timo Sirainen (b7a0a5c1e) stats: Added ADD-USER command to add stats to a user without having a session. This will be used by at least the auth process. Although the auth process does have a session, it's a bit too early to start using it yet. At least the PID should be possible to change when the session moves to imap process. Also the unsuccessful authentication sessions shouldn't really be added at all. M src/stats/fifo-input-connection.c M src/stats/mail-user.c M src/stats/mail-user.h 2016-02-05 14:35:48 +0200 Timo Sirainen (e618403cd) stats: Renamed mail-server-connection to fifo-input-connection. M src/stats/Makefile.am R067 src/stats/mail-server-connection.c src/stats/fifo-input-connection.c A src/stats/fifo-input-connection.h D src/stats/mail-server-connection.h M src/stats/main.c M src/stats/stats-settings.c 2016-02-04 14:02:42 +0200 Timo Sirainen (adb90447f) lib-mail: Reading from istream-header-filter second time reverted callback's eoh change. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2016-02-04 13:32:58 +0200 Timo Sirainen (f6497ac81) lib: Fixed calling json_parse_skip_next() within arrays M src/lib/json-parser.c M src/lib/test-json-parser.c 2016-02-04 13:31:59 +0200 Timo Sirainen (a18503d5d) lib: If json-parser has JSON_PARSER_NO_ROOT_OBJECT set, return the ending root "]" and "}" M src/lib/json-parser.c M src/lib/test-json-parser.c 2016-02-03 17:56:49 +0200 Timo Sirainen (52d50af43) lib: Avoid typeof() if HAVE_TYPEOF isn't set, even if gcc version is high enough. This is mainly to test that we can compile without typeof(). M src/lib/macros.h 2016-02-03 14:05:07 +0200 Timo Sirainen (2812f5744) imap, pop3, imap-urlauth: Added -a parameter M src/imap-urlauth/imap-urlauth.c M src/imap/main.c M src/pop3/main.c 2016-02-03 14:00:16 +0200 Timo Sirainen (74ad0b983) *-login: Added -l parameter to specify the socket where to connect to after authentication M src/login-common/main.c 2016-02-03 13:56:09 +0200 Timo Sirainen (1c75bf248) imap: SETMETADATA shouldn't crash when value parameter is missing. M src/imap/cmd-setmetadata.c 2016-02-03 13:03:36 +0200 Timo Sirainen (5d08475be) lib-sasl: Compiler warning fix for previous EXTERNAL change.. M src/lib-sasl/mech-external.c 2016-02-03 12:29:29 +0200 Timo Sirainen (66ce34294) lib-sasl: Don't require authid for EXTERNAL mechanism, since we're not really authenticating. M src/lib-sasl/mech-external.c 2016-02-03 12:26:10 +0200 Timo Sirainen (405d5f230) lib-sasl: Added support for EXTERNAL SASL mechanism M src/lib-sasl/Makefile.am M src/lib-sasl/dsasl-client-private.h M src/lib-sasl/dsasl-client.c A src/lib-sasl/mech-external.c 2016-02-02 22:06:38 +0200 Aki Tuomi (19d31b445) doveadm: Reset JSON formatter context before reuse This is needed to implement multicommand support in HTTP API. M src/doveadm/doveadm-print-json.c 2016-02-02 12:32:49 +0200 Timo Sirainen (5f8d497e8) pop3c: Compiler warning fixes to earlier change M src/lib-storage/index/pop3c/pop3c-mail.c 2016-02-01 23:32:15 +0200 Timo Sirainen (d78eb0a68) imapc: Compare INBOX in STATUS case-insensitively. M src/lib-storage/index/imapc/imapc-storage.c 2016-02-01 22:48:22 +0200 Timo Sirainen (d1808f883) sdbox: Failing after saved mails' UIDs were already assigned caused unlink()ing garbage Mainly with dsync when it fails, the transaction is still committed and mails are given UIDs. If the transaction commit still fails, it attempts to rollback the saved mails by unlink()ing them, but at that point the path pointed to an already freed memory. This caused unlink() errors with some garbage strings as the path (and hopefully no actually valid paths). The easiest way to reproduce this was to fill up the filesystem with dsync. M src/lib-storage/index/dbox-single/sdbox-file.c 2016-02-01 22:40:15 +0200 Timo Sirainen (7ae655248) dsync: If mailbox importing fails, stop immediately without waiting for exporter to finish. M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2016-02-01 20:30:26 +0200 Timo Sirainen (71caf493c) imap: Removed now-unused cmd_sync_callback(), which doesn't work very well. See commit message in b7b25e0 for more details. M src/imap/imap-sync.c M src/imap/imap-sync.h 2016-02-01 20:26:19 +0200 Timo Sirainen (b7b25e0ae) imap: Removed special EXPUNGE callback for an Outlook workaround. As the comment mentions, this workaround isn't needed if index files are used. Hopefully also the Outlook bug itself is gone nowadays.. In any case the current callback code didn't work, because it was returning FALSE and causing an assert in a pipelined EXPUNGE+APPEND combination after 6e9454f: Panic: file imap-client.c: line 862 (client_check_command_hangs): assertion failed: (!have_wait_unfinished || unfinished_count > 0) It would probably be possible to fix this, but it would complicate the code even further, so it's easier just to get rid of this feature. It was easily triggered by running imaptest stress testing. M src/imap/cmd-expunge.c 2016-02-01 19:08:24 +0200 Timo Sirainen (a58963a8b) pop3-migration: Ignore mails returned as expunged by pop3c. Whether the -ERR actually meant they were expunged or not is another issue, but the answer to that belongs to pop3c code. MAIL_ERROR_EXPUNGED in any case can be safely handled this way here. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-02-01 19:07:59 +0200 Timo Sirainen (f2686912e) pop3c: If prefetch fails, treat it as if prefetching simply wasn't done. This avoids having error handling twice. Also in case the error was caused by -ERR, this should retry the operation, which even might fix it in some situations. M src/lib-storage/index/pop3c/pop3c-mail.c 2016-02-01 17:57:07 +0200 Timo Sirainen (06fda713b) pop3-migration: Use message_header_hash_more() instead of duplicating the code M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-02-01 17:56:49 +0200 Timo Sirainen (988cb706f) lib-mail: Changed message_header_hash_more() to support any hash algorithm M src/doveadm/dsync/dsync-mail.c M src/lib-mail/message-header-hash.c M src/lib-mail/message-header-hash.h M src/lib-mail/test-message-header-hash.c 2016-02-01 17:38:11 +0200 Timo Sirainen (f6ae9ae80) lib: JSON parser can now optionally parse input that isn't an object. Based on patch by Aki Tuomi. M src/lib/json-parser.c M src/lib/json-parser.h M src/lib/test-json-parser.c 2016-02-01 17:30:23 +0200 Timo Sirainen (4bfa47e47) lib: Fixed json-parser to correctly parse numbers at EOF. Numbers are a bit special compared to others, because they don't have any clear character indicating that the number ends. So we can only assume that the number is finished when EOF is reached, although even that isn't necessarily correct in case the stream is terminated unexpectedly. This change is in prepartion for the next change. With current JSON parser this issue could never happen because "}" was expected just before EOF. M src/lib/json-parser.c 2016-02-01 17:00:11 +0200 Timo Sirainen (736b1800b) lib: Code cleanup to json-parser - assume less that the root is an object M src/lib/json-parser.c M src/lib/test-json-parser.c 2016-01-29 00:08:33 +0200 Timo Sirainen (1dc963aff) lib-mail, dsync: Moved dsync_mail_hash_more() to lib-mail/message-header-hash.* M src/doveadm/dsync/Makefile.am M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/lib-mail/Makefile.am A src/lib-mail/message-header-hash.c A src/lib-mail/message-header-hash.h R090 src/doveadm/dsync/test-dsync-mail.c src/lib-mail/test-message-header-hash.c 2016-02-01 14:44:11 +0200 Aki Tuomi (0d0f62049) lib-http: Add function to update HTTP response status M src/lib-http/http-server-response.c M src/lib-http/http-server.h 2016-01-21 19:49:12 +0200 Aki Tuomi (3cd674e54) doveadm: Add JSON formatter support M src/doveadm/Makefile.am A src/doveadm/doveadm-print-json.c M src/doveadm/doveadm-print-private.h M src/doveadm/doveadm-print.h M src/doveadm/doveadm.c M src/doveadm/main.c 2016-01-25 10:50:23 +0200 Aki Tuomi (fe5fcad06) doveadm-print: Add flag indicating number-only field M src/doveadm/doveadm-print.h 2016-01-29 17:47:52 +0200 Timo Sirainen (589a288a0) Compiler warning fix to previous commit M src/lib-lda/smtp-client.c 2016-01-29 17:42:51 +0200 Timo Sirainen (7c925149e) Replace host:port parsers with net_str2hostport(). M src/director/director-host.c M src/doveadm/doveadm-util.c M src/lib-lda/smtp-client.c M src/lib/iostream-rawlog.c 2016-01-29 17:32:30 +0200 Timo Sirainen (8bb311aef) lib: Added net_str2hostport() M src/lib/net.c M src/lib/net.h M src/lib/test-net.c 2016-01-29 16:23:57 +0200 Timo Sirainen (4209bd278) last-login: Added last_login_precision setting M src/plugins/last-login/last-login-plugin.c 2016-01-29 16:07:35 +0200 Timo Sirainen (87066db47) lib-sasl: Allow plugins to override the default SASL client mechanisms. M src/lib-sasl/dsasl-client.c 2016-01-29 15:09:35 +0200 Timo Sirainen (931bc104b) lib-imap: Write invalid Content-Transfer-Encoding value as "7bit" to BODY/BODYSTRUCTURE. M src/lib-imap/imap-bodystructure.c M src/lib-imap/test-imap-bodystructure.c 2016-01-29 10:29:05 +0200 Aki Tuomi (d3a430481) lib: Add tests for str_is_float M src/lib/test-strnum.c 2016-01-29 10:28:53 +0200 Aki Tuomi (e76409232) lib: Add str_is_float check function M src/lib/strnum.c M src/lib/strnum.h 2016-01-28 20:47:02 +0200 Timo Sirainen (f0d1de444) dsync: Improved header hash v2 algorithm to remove repeated '?' chars. This is to help with Yahoo that replaces UTF-8 chars in headers with a single '?' (instead of '?' per each 8bit byte). M src/doveadm/dsync/Makefile.am M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h A src/doveadm/dsync/test-dsync-mail.c 2016-01-28 20:23:51 +0200 Timo Sirainen (96ca70b91) lib-index: Memory leak fix for test-mail-index-map This failed when running make check with valgrind. M src/lib-index/test-mail-index-map.c 2016-01-28 20:16:31 +0200 Timo Sirainen (d430698b6) pop3-migration: Fix to 5407a86 - don't sync POP3 UIDLs when we don't need to M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-28 19:56:38 +0200 Timo Sirainen (e1bef591e) dsync: Avoid finishing importer successfully on exporter failures. At least dsync_mailbox_import_changes_finish() could have been called when exporter was already failed. M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h 2016-01-28 19:55:06 +0200 Timo Sirainen (79490ec1a) doveadm backup: If local mailbox has more mails than remote, detect and delete it earlier. M src/doveadm/dsync/dsync-mailbox-import.c 2016-01-28 19:51:43 +0200 Timo Sirainen (7d8603f26) imapc: Don't mark the initial sync done if it wasn't successful. M src/lib-storage/index/imapc/imapc-sync.c 2016-01-28 19:49:56 +0200 Timo Sirainen (e1fb4dcfe) imapc: Handle disconnection when NOOP is sent to verify if mail is expunged. M src/lib-storage/index/imapc/imapc-mail.c 2016-01-28 19:48:09 +0200 Timo Sirainen (0cc566d5e) lib-index: Added unit test to mail_index_map_lookup_seq_range() M src/lib-index/Makefile.am A src/lib-index/test-mail-index-map.c 2016-01-28 17:53:41 +0200 Timo Sirainen (46d42562f) imapc: Don't ignore FETCH, SEARCH and EXPUNGE returning NO failures in syncing. Especially if the FETCH 1:* (FLAGS) didn't succeed, we expunged all the mails from local index. M src/lib-storage/index/imapc/imapc-sync.c 2016-01-28 17:43:01 +0200 Timo Sirainen (14fb3a2f6) imapc: If FETCH didn't send our wanted data, log the tagged FETCH reply text. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h 2016-01-28 17:29:57 +0200 Timo Sirainen (740e369c0) imapc: Don't use fetch-fix-broken-mails for NO [LIMIT] FETCH replies M src/lib-storage/index/imapc/imapc-mail-fetch.c 2016-01-28 17:15:20 +0200 Timo Sirainen (b8947936e) imapc: Remove X-Message-Flag filtering if imapc_features has rfc822.size M src/lib-storage/index/imapc/imapc-mail-fetch.c 2016-01-28 17:03:15 +0200 Timo Sirainen (956a62e2b) doveadm: All commands iterating mails stop now if doveadm has been killed. M src/doveadm/doveadm-mail-iter.c 2016-01-28 16:59:48 +0200 Timo Sirainen (34fe9f3e6) doveadm: Enable SIGINT and SIGTERM signal handler for all doveadm mail commands. Most importantly this allows stopping dsync. M src/doveadm/doveadm-mail.c 2016-01-28 16:43:37 +0200 Timo Sirainen (69f6407b2) doveadm backup: Detect and handle conflicts earlier. This avoids doing a lot of work, only for the next doveadm backup to just delete the entire mailbox and start from the beginning. M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2016-01-28 16:26:53 +0200 Timo Sirainen (a221d0d25) imapc: Fixed assert-crash in mailbox syncing, if mailbox couldn't be opened. Usually meaning that syncing was attempted when IMAP server couldn't be connected to. Fixes the assert: Panic: file imapc-client.c: line 439 (imapc_client_get_capabilities): assertion failed: (conn != NULL) M src/lib-storage/index/imapc/imapc-sync.c 2016-01-28 15:36:58 +0200 Timo Sirainen (6e9454f1d) imap: Send all pending tagged command replies before APPEND is started. This probably doesn't matter a lot, but it's cleaner. One side effect of this change is that if multiple APPENDs are pipelined (without MULTIAPPEND) on the selected mailbox, this now performs a sync between each APPEND and sends the EXISTS replies. This may be slightly lower in performance, but it's also slightly more correct behavior. M src/imap/imap-commands.c 2016-01-28 15:16:29 +0200 Timo Sirainen (bb869cc24) lib: Added json_append_escaped_data() to escape non-NUL terminated input. M src/lib/json-parser.c M src/lib/json-parser.h M src/lib/test-json-parser.c 2016-01-28 15:05:38 +0200 Timo Sirainen (10972f2a1) lib: json_append_escaped() doesn't need to escape the 8bit chars. We'll assume that the input is valid UTF-8. M src/lib/json-parser.c M src/lib/json-parser.h M src/lib/test-json-parser.c 2016-01-28 13:45:48 +0200 Timo Sirainen (4eccf5310) lib-index: If transaction log was locked for at least 30 secs, log a warning (not at 3min) This is because we log a warning about it already when locking it took 30 seconds, so it's useful to see which process was actually keeping the lock. M src/lib-index/mail-transaction-log-file.c 2016-01-27 15:44:54 +0200 Timo Sirainen (5407a86a0) pop3-migration: Perform UIDL syncing a bit earlier to work around Yahoo IMAP bug. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-27 15:16:18 +0200 Timo Sirainen (638734376) imapc: Don't use fetch-fix-broken-mails for OK and NO [SERVERBUG] FETCH replies Hopefully no servers are actually returning OK without returning a FETCH reply. If they are, maybe we need another workaround.. In any case Yahoo IMAP sometimes loses state and starts returning OK without FETCH replies to all UID FETCH requests (and BADs to FETCHes). It also may return NO [UNAVAILABLE] for both permanent and temporary FETCH failures, so we can't do anything with that. I added NO [SERVERBUG] because that's what Dovecot responds to temporary failures. I'm not sure how useful that check is though. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h 2016-01-27 10:17:44 +0200 Timo Sirainen (c67f6d09c) lib: Make static analyzer happier about istream-chain changes M src/lib/istream-chain.c 2016-01-27 02:04:00 +0200 Timo Sirainen (84a5175b9) pop3c: Fixed assert-crash when prefetching a mail failed. M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-storage.h 2016-01-27 01:12:21 +0200 Timo Sirainen (fd3d06816) *-login: Add all returned passdb fields to struct client_auth_reply.all_fields These will be mainly useful to plugins. M src/login-common/client-common-auth.c M src/login-common/client-common.h 2016-01-27 00:35:34 +0200 Timo Sirainen (f3b0efdcb) fts-solr: Changed default operator to AND to fix multi-word queries. Previously for example searching from:foo@example.com was expanded to foo OR example OR com. Now it's foo AND example AND com, which makes a lot more sense. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2016-01-26 23:51:16 +0200 Timo Sirainen (1ac936bd9) pop3c: Compiler warning fix for using wrong enum type M src/lib-storage/index/pop3c/pop3c-client.c 2016-01-26 22:10:29 +0200 Timo Sirainen (cfb351c1d) pop3-migration: If reading message header for hashing fails, fail immediately. This avoids flooding the log with a ton of errors in case the POP3 connection dies. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-26 19:56:43 +0200 Timo Sirainen (45af47783) dsync: When comparing headers' hashes to match messages, try to normalize the input. This is especially useful because some IMAP servers return different data depending on whether we're fetching only specific header fields, all headers or entire body. For now we're assuming that any non-ASCII is going to be replaced with '?', which helps at least with Zimbra and Yahoo. The header hashing algorithm is now versionable, so it can be modified more easily in future. This change should make imapc_features=zimbra-workarounds setting obsolete. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-26 17:55:10 +0200 Timo Sirainen (ee33544fc) pop3-migration: Don't change TAB to '?' when calculating header hash. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-26 17:53:28 +0200 Timo Sirainen (414d4ee11) pop3-migration: Don't even try to match message sizes with pop3_migration_skip_size_check=yes This skipped the header check for mailboxes that had only a single mail. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-26 15:41:16 +0200 Timo Sirainen (afc77c537) pop3c: Added support for TOP/RETR prefetching when PIPIELINING capability exists. M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-storage.h 2016-01-26 15:40:09 +0200 Timo Sirainen (60d1fdf2c) pop3c: Added full support for running commands asynchronously (with PIPELINING) M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-client.h M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c 2016-01-26 15:38:13 +0200 Timo Sirainen (9999b049d) pop3c: Increased command timeout from 30s to 5mins. Possibly should be made configurable, but use this for now. M src/lib-storage/index/pop3c/pop3c-client.c 2016-01-26 15:22:50 +0200 Timo Sirainen (9abc6ac61) pop3-migration: Cached header hashes weren't actually being used for imapc. We'll need to do the search twice: Once to find out the actual cached header hashes and then second time do a search for the message headers excluding the emails whose hashes we already know. This allows prefetching to work for imapc without prefetching all the emails as it was doing. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-26 15:20:48 +0200 Timo Sirainen (5c92436a6) lib: istream-concat now seeks parent streams to correct offset. All of the streams' offsets were somewhat random. M src/lib/istream-concat.c M src/lib/test-istream-concat.c 2016-01-26 15:17:34 +0200 Timo Sirainen (0c3ec2538) lib: Small istream-concat code cleanup in preperation for next change No actual changes, just moved some code into i_stream_concat_skip(). M src/lib/istream-concat.c 2016-01-26 14:19:23 +0200 Timo Sirainen (96af3e787) lib: Improved test-istream-seekable unit test to check for parent stream's offset at the end M src/lib/test-istream-seekable.c 2016-01-26 13:51:47 +0200 Timo Sirainen (3ab672903) lib: When closing istream-chain, make sure parent stream is seeked to correct offset. We were only seeking it earlier if it ended at EOF. M src/lib/Makefile.am M src/lib/istream-chain.c A src/lib/test-istream-chain.c M src/lib/test-lib.c M src/lib/test-lib.h 2016-01-25 22:34:24 +0200 Timo Sirainen (57e1fdc2f) pop3-migration: Add calculated header hashes to local cache. This allows faster resuming on failures if local pop3c indexes are used. M src/plugins/pop3-migration/Makefile.am M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-25 22:33:29 +0200 Timo Sirainen (2676c973a) pop3c: Preserve local cache even when server reorders messages. M src/lib-storage/index/pop3c/pop3c-sync.c 2016-01-25 21:57:35 +0200 Timo Sirainen (c06f45d06) pop3c: Avoid unnecessarily email deletions from local index when mails have been deleted from remote POP3. M src/lib-storage/index/pop3c/pop3c-sync.c 2016-01-25 17:37:02 +0200 Timo Sirainen (759a60c89) imap: Finish all commands before starting IDLE. We don't want to send tagged command replies only after the DONE. Also this fixes assert-crash: Panic: file imap-client.c: line 852 (client_check_command_hangs): assertion failed: (!have_wait_unfinished || unfinished_count > 0) Which could be reproduced by: printf "0 SELECT INBOX\n1 NOOP\n2 IDLE\n"; read; printf "DONE\n"; read) | ./imap M src/imap/imap-commands.c 2016-01-25 10:26:17 +0200 Timo Sirainen (5085686ff) imapc: Prefetching shouldn't send FETCH requests for headers that are already cached. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h 2016-01-24 22:12:30 +0200 Timo Sirainen (b76737b21) auth: Add any %variables in passdb/userdb { default_fields } to cache key. M src/auth/passdb.c M src/auth/userdb.c 2016-01-24 22:10:01 +0200 Timo Sirainen (80e80d414) auth: Avoid unnecessary work if passdb/userdb { override_fields, default_fields } aren't set. M src/auth/passdb-template.c M src/auth/passdb-template.h M src/auth/userdb-template.c 2016-01-24 22:07:55 +0200 Timo Sirainen (2386f3448) .gitignore: Added *.orig and *.rej They are created often enough to become annoying. M .gitignore 2016-01-24 22:06:30 +0200 Timo Sirainen (0fa40bfd7) config: Fixed '\' line continuation to work again. This had been broken for many years. M src/config/config-parser-private.h M src/config/config-parser.c M src/config/old-set-parser.c 2016-01-24 20:07:58 +0200 Timo Sirainen (72020d0a3) imapc: If command times out, reconnect and retry if possible. M src/lib-imap-client/imapc-connection.c 2016-01-24 19:54:51 +0200 Timo Sirainen (30f6ac0ea) pop3-migration: Fix to 2f19f8 - Don't convert LF also to '?' in header hashes. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-24 19:34:21 +0200 Timo Sirainen (5fa253bd3) pop3-migration: Filter out headers with invalid names. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-24 19:23:59 +0200 Timo Sirainen (2f19f8ff9) pop3-migration: Convert all non-ASCII in headers to '?' M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-24 18:15:53 +0200 Timo Sirainen (2ddc5efd4) imapc: Added imapc_features=fetch-fix-broken-mails This allows ignoring a missing FETCH reply. It shouldn't be used normally, but if there's a mail that the IMAP server simply won't serve, this can be used to finish dsync successfully. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h 2016-01-24 17:41:01 +0200 Timo Sirainen (cff23ec51) imapc: Added imapc_cmd_timeout setting to control the command wait timeouts. M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2016-01-24 17:39:28 +0200 Timo Sirainen (53841bd6c) imapc: Added imapc_features=fetch-msn-workarounds This can be used to work around broken servers that send invalid MSNs. This avoids errors like: imapc: Mailbox 'INBOX' state corrupted: FETCH UID mismatch (78976 != 82589) M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h 2016-01-24 17:38:39 +0200 Timo Sirainen (e9d659ad4) pop3-migration: If we matched all the IMAP (but not all POP3) messages, log about it. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-24 17:13:04 +0200 Timo Sirainen (c39c3d808) pop3-migration: Ignore X-Yahoo-Newman-Property: header This exists only for Yahoo IMAP mails, but not for Yahoo POP3 mails. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-24 16:55:13 +0200 Timo Sirainen (12e32734b) pop3-migration: When logging the first missing POP3 mail, it logged a wrong mail M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-24 16:28:29 +0200 Timo Sirainen (af99ca825) pop3-migration: When failing because some messages couldn't be matched, show the first message's number and UIDL This was already being done for the warning message when pop3_migration_ignore_missing_uidls was set, but not for the error message when it wasn't set. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-24 16:27:21 +0200 Timo Sirainen (b21532236) pop3-migration: Added pop3_migration_skip_size_check setting If we know that we're not going to be able to match any messages by sizes, we might as well not ask for the messages' sizes. This is useful at least with Yahoo. M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-24 16:25:52 +0200 Timo Sirainen (35ef661bd) pop3-migration: Ignore Return-Path: header when matching UIDLs by header hashes This fixes matching between Yahoo IMAP and Yahoo POP3 M src/plugins/pop3-migration/pop3-migration-plugin.c 2016-01-23 15:48:14 +0200 Timo Sirainen (b23317e66) auth: Apply override_fields to userdb also when continuing to the next userdb. M src/auth/auth-request.c 2016-01-23 15:12:37 +0200 Timo Sirainen (cc4723ad7) auth: If userdb result was found from cache, its result_* rules were ignored. M src/auth/auth-request.c 2016-01-23 14:05:19 +0200 Timo Sirainen (9fa4ac629) ldap auth: %variables in pass/user_attrs are now included in auth cache key. This makes sure that the result won't be cached too aggressively, for example if %{lport} or %{rip} was used as a field's value. Although each of these fields just makes the cache less effective, so it's a good idea to avoid variables entirely in the pass/user_attrs. An alternative is to use passdb/userdb { override_fields } M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2016-01-23 13:57:54 +0200 Timo Sirainen (e150cd7c8) auth: Apply passdb/userdb { override_fields } only after caching Now they're not be unnecessarily saved to cache to waste memory. More importantly they will always override the cached fields, which is required for %variables to work. M src/auth/auth-request.c 2016-01-22 19:06:59 +0200 Timo Sirainen (57591c5ea) doveadm: Changed most print formatters to write to ostream. This allows all the formatters to be used when sending replies to the upcoming doveadm HTTP server responses. The "table" formatter wasn't modified, because it writes to both stdout and stderr. M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-print.h M src/doveadm/doveadm-server.h M src/doveadm/doveadm.c 2016-01-22 19:08:11 +0200 Timo Sirainen (78a643146) director: "Host is being updated before previous update had finished" logs now details. M src/director/director-connection.c 2016-01-22 15:15:03 +0000 Alin Dobre (127d0716d) doveadm: Add plugins support for doveadm pw This simply tries to load all the auth plugins. The ones that aren't password scheme plugins will most likely just fail. Hopefully this will work fine so we don't need to require any specific naming rules for the plugins. Signed-off-by: Alin Dobre M src/doveadm/Makefile.am M src/doveadm/doveadm-pw.c 2016-01-22 17:14:37 +0200 Timo Sirainen (34a41fd57) fts-solr: If Solr lookup returns missing or invalid UID, fail the search. We were previously logging the error but still returning success. M src/plugins/fts-solr/solr-connection.c 2016-01-22 16:48:53 +0200 Timo Sirainen (82130fea4) doveadm: Make sure all mail storage hooks are freed at deinit. M src/doveadm/doveadm-mail.c M src/lib-storage/mail-storage-hooks.c 2016-01-18 15:50:23 +0200 Aki Tuomi (5b63d2b3b) master: Do not close stdout if going foreground This lets one to use /dev/stdout for logging. Mainly useful for testing purposes where we can generate log output to stdout and use tee to write it to a file for later examination. M src/master/main.c 2016-01-21 13:59:31 +0200 Timo Sirainen (7ab22fc47) lib-auth: Error message typofix M src/lib-auth/auth-server-connection.c 2016-01-20 19:35:06 +0200 Timo Sirainen (8eac84684) Makefile: Fixed ChangeLog generation with older git versions that don't support --since Changed the oldest changeset to be the v2.0.0 release commit. M Makefile.am 2016-01-20 13:30:43 +0200 Timo Sirainen (1fba10ff6) imap, pop3, lmtp: Enable MAIL_STORAGE_SERVICE_FLAG_AUTOEXPUNGE M src/imap/main.c M src/lmtp/main.c M src/pop3/main.c 2016-01-20 13:30:34 +0200 Timo Sirainen (8cca3b43b) lib-storage: Enable autoexpunge only when MAIL_STORAGE_SERVICE_FLAG_AUTOEXPUNGE is set. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2016-01-20 13:22:15 +0200 Timo Sirainen (8c68d9320) lib-storage: Fixed looking up MAILBOX_METADATA_FIRST_SAVE_DATE from mailbox list index. If the mailbox was cached as empty, we didn't check if it had since received new messages. This caused the first-save-date to be returned as nonexistent, which caused autoexpunging to not always work. M src/lib-storage/list/mailbox-list-index-status.c 2016-01-20 13:13:47 +0200 Timo Sirainen (ebeb528df) lib-storage: Fixed updating first-saved-uid to mailbox list index when first mails were just expunged. M src/lib-storage/list/mailbox-list-index-status.c 2016-01-20 12:55:57 +0200 Timo Sirainen (ec0105e12) lib-storage: Don't set internal error to storage when there's nothing to sync. This may also wrongly overwrite an existing error. M src/lib-storage/index/index-storage.c 2016-01-19 23:47:08 +0200 Timo Sirainen (52fe79113) imap-login: If LOGINDISABLED capability is advertised in banner, don't try to LOGIN without SSL/TLS. This avoids accidentally sending the password in plaintext. Also the server should fail the LOGIN in any case. M src/imap-login/imap-login-client.h M src/imap-login/imap-proxy.c 2016-01-19 20:45:27 +0200 Timo Sirainen (29ca4c801) lib: Don't crash if getenv() is called after process_title_deinit() with Linux/OSX PROCTITLE_HACK Right now the only known issue is GNUTLS's lib_deinit(): e = getenv("GNUTLS_NO_EXPLICIT_INIT"); But we likely never want that to be set. Alternative ways to solve this are more annoying than our clearing the environment. Libraries probably shouldn't rely on it much anyway, because some parts of Dovecot clear the whole environment while running. M src/lib/process-title.c 2016-01-19 15:39:13 +0200 Timo Sirainen (0df899fea) config: Improved error messages for wrong order of nested local/remote/protocol { .. } blocks M src/config/config-parser.c 2016-01-19 15:15:19 +0200 Timo Sirainen (d861bc097) quota-clone: Avoid leaving a dict transaction open for unnecessarily long. Even though the earlier change should fix the dict assert crash due to opening multiple transactions when recursing back, this makes sure of it. It could also be helpful for some dict backends to not keep the transaction open for unnecessarily long. M src/plugins/quota-clone/quota-clone-plugin.c 2016-01-19 15:11:44 +0200 Timo Sirainen (5da08ab71) quota-clone: Fixed update-recursion crash when closing mailbox. We need to avoid recursing for all mailboxes that quota recalculation might open and close, not just the one that triggered the recalculation. M src/plugins/quota-clone/quota-clone-plugin.c 2016-01-19 02:30:53 +0200 Timo Sirainen (934f04e8a) pop3c: If authentication fails, log if it was done with USER+PASS or AUTH PLAIN M src/lib-storage/index/pop3c/pop3c-client.c 2016-01-19 02:26:24 +0200 Timo Sirainen (56b13d0e6) pop3c: Improve authentication debug log messages a bit. M src/lib-storage/index/pop3c/pop3c-client.c 2016-01-18 17:38:22 +0200 Timo Sirainen (aabc4ae99) auth: If passdbs are required, don't allow only master=yes passdbs. This fixes a crash: Panic: file auth-request.c: line 743 (auth_request_is_disabled_master_user): assertion failed: (request->requested_login_user != NULL) Which would happen because request->passdb=NULL because there are only master passdbs. Even if only master passdb is actually needed, there should still be a non-master passdb for non-master logins to specify what happens to them. M src/auth/auth.c 2016-01-18 17:08:04 +0200 Timo Sirainen (c21ce74d5) *-login: Typofix for login_plugins error messages. M src/login-common/main.c 2016-01-18 14:59:50 +0200 Timo Sirainen (741a7e61d) lib-fs: Added default implementations for fs_iter_*(), fs_copy() and fs_stat() The backends can now leave them as NULL, and the callers will get an error that they're not supported. M src/lib-fs/fs-api.c 2016-01-18 14:57:45 +0200 Timo Sirainen (1e6170b4c) lib-mail: istream-binary-converter lost last few chars from root-level binary content. M src/lib-mail/istream-binary-converter.c M src/lib-mail/test-istream-binary-converter.c 2016-01-18 14:56:47 +0200 Timo Sirainen (498eecf19) lib-mail: message-parser unit test now verifies that parsed block parts match input. M src/lib-mail/test-message-parser.c 2016-01-18 14:56:24 +0200 Timo Sirainen (d45a4c7d1) lib-mail: Added message_header_line_write() M src/lib-mail/message-header-parser.c M src/lib-mail/message-header-parser.h 2016-01-15 14:11:34 +0200 Aki Tuomi (5c7c62f1e) ChangeLog: Generate mercurial style changelogs M Makefile.am M autogen.sh 2016-01-18 13:28:23 +0200 Timo Sirainen (96c800846) lib-storage: Ignore ACLs when autoexpunging. M src/lib-storage/mail-autoexpunge.c 2016-01-18 12:31:26 +0200 Timo Sirainen (c80cf58a3) quota: Fixed namespace filtering for dict and count backends. M src/plugins/quota/quota-count.c 2016-01-16 21:47:53 +0200 Timo Sirainen (47a53a806) lib-http: Assign an ID for each HTTP request and log it in debug lines. The ID stays the same when request is retried. Added a "Req" prefix so it's easier to search for the IDs. Based on patch by Stephan Bosch. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2016-01-16 21:31:55 +0200 Timo Sirainen (bd06c77a1) imapc: Added support for PROXYAUTH command by setting imapc_features = proxyauth This can be useful when talking to Sun/Oracle IMAP server, which wants you to use LOGIN+PROXYAUTH to perform master user logins, instead of supporting the standard SASL PLAIN authentication. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2016-01-15 19:36:46 +0200 Timo Sirainen (f8567d895) stats: Added missing #include forgotten in 63393b70 M src/stats/client.c 2016-01-12 09:47:43 +0200 Aki Tuomi (102af9930) doveadm-stats: Add documentation about stats subcommand M .gitignore M doc/man/Makefile.am A doc/man/doveadm-stats.1.in M doc/man/doveadm.1.in 2016-01-11 15:46:35 +0200 Aki Tuomi (f970f2afa) doveadm-stats: Add stats reset command line M src/doveadm/doveadm-cmd.h M src/doveadm/doveadm-stats.c M src/doveadm/doveadm.c 2016-01-11 15:46:28 +0200 Aki Tuomi (63393b70c) stats: Add RESET call to stats client M src/stats/Makefile.am A src/stats/client-reset.c A src/stats/client-reset.h M src/stats/client.c 2016-01-11 15:46:05 +0200 Aki Tuomi (75b12af38) lib-stats: Add stats_reset function M src/lib-stats/stats.c M src/lib-stats/stats.h 2016-01-07 11:09:50 +0200 Aki Tuomi (7d4c8041a) lib-fts: Add lib-fts to CPPFLAGS as include dir Without this, VPATH builds fail because the includes cannot be found as they are not on same directory. M src/lib-fts/Makefile.am 2016-01-15 18:03:11 +0200 Timo Sirainen (9132f9df4) *-login: Allow plugins to hook into client allocation and add module-specific contexts to client. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/login-common.h M src/login-common/main.c 2016-01-15 17:17:05 +0200 Timo Sirainen (ad24c0340) dovecot-config: Added LIBDOVECOT_{AUTH/POP3/IMAP_LOGIN}_INCLUDE M dovecot-config.in.in M dovecot.m4 2016-01-15 16:51:15 +0200 Timo Sirainen (98035bde0) imap-login: Install imap-login-*.h headers so plugins can use them. M src/imap-login/Makefile.am 2016-01-15 16:49:05 +0200 Timo Sirainen (0af9ef2e9) imap-login: Renamed client.[ch] to imap-login-client.[ch] This allows installing the imap-login-client.h without conflicting. M src/imap-login/Makefile.am M src/imap-login/client-authenticate.c R099 src/imap-login/client.c src/imap-login/imap-login-client.c R096 src/imap-login/client.h src/imap-login/imap-login-client.h M src/imap-login/imap-proxy.c 2016-01-15 16:46:34 +0200 Timo Sirainen (ba7db1e00) imap-login: Added API for registering/unregistering commands (for plugins). M src/imap-login/Makefile.am M src/imap-login/client.c A src/imap-login/imap-login-commands.c A src/imap-login/imap-login-commands.h 2016-01-15 16:07:32 +0200 Timo Sirainen (481948836) *-login: Added login_plugins and login_plugin_dir settings. M src/login-common/Makefile.am M src/login-common/login-settings.c M src/login-common/login-settings.h M src/login-common/main.c 2016-01-15 16:20:45 +0200 Timo Sirainen (7d8862f4b) Added v2.2.21 to NEWS. M NEWS 2016-01-15 15:55:26 +0200 Timo Sirainen (fa68ab238) *-login: Changed -D parameter to mean a more generic login_debug option. M src/login-common/login-common.h M src/login-common/main.c 2016-01-15 15:40:56 +0200 Timo Sirainen (df596e34b) imapc: Added imapc_features = no-examine M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2016-01-15 15:12:30 +0200 Timo Sirainen (9d7f23fa2) dsync: Fixed syncing subscription state with doveadm backup. If DSYNC_MAILBOX_TREES_SYNC_TYPE_PRESERVE_REMOTE was set, we could still have preserved the local subscription state. Also cleaned up the code a bit to make it clearer. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2016-01-15 15:04:21 +0200 Timo Sirainen (e21baa33b) imapc: Fixed mailbox name escaping for STATUS M src/lib-storage/index/imapc/imapc-storage.c 2016-01-14 18:52:01 +0200 Timo Sirainen (6e2bb07ff) imapc: Fixed mailbox name escaping for CREATE, DELETE, RENAME, SUBSCRIBE, UNSUBSCRIBE M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c 2016-01-14 18:50:23 +0200 Timo Sirainen (f97b50321) imapc: Fixed escaping/unescaping mailbox names. This fixes accessing mailbox names with '%' (the escape_char). It also fixes local namespace separator being different from the remote separator. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2016-01-14 18:47:40 +0200 Timo Sirainen (a4e210147) lib-storage: Added mailbox_list_[un]escape_name_params() This allows calling the mailbox_list_[un]escape_name() with wanted parameters instead of taking them from mailbox_list. M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2016-01-14 16:28:06 +0200 Timo Sirainen (be3b9374c) imapc: Don't duplicate standard mailbox flags in LIST replies. We added the standard \NoSelect, \NonExistent, \NoInferiors and \Subscribed to special_use string, which caused them to be sent duplicated. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/mailbox-list.h 2016-01-13 14:30:03 +0200 Timo Sirainen (27f174f3b) virtual plugin: Added support for filtering mailboxes by METADATA entries. Usage: [-]/: There can be multiple metadata entries. All the entries must match. For example: * /private/vendor/vendor.dovecot/virtual:* -/private/vendor/vendor.dovecot/virtual:ignore This matches all mailboxes, which contain a virtual METADATA entry that has any value except "ignore". Note that the current implementation requires still opening all the mailboxes before matching the METADATA entries. This could be avoided in v2.3 with some lib-storage API changes. M src/plugins/virtual/Makefile.am M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-storage.h 2016-01-13 14:22:22 +0200 Timo Sirainen (bffa23c1b) lib-imap-storage: imap_metadata_get*() returned 1 also when value wasn't found. M src/lib-imap-storage/imap-metadata.c 2016-01-13 13:46:33 +0200 Timo Sirainen (28d6a9ec6) virtual plugin: Cleaned up behavior of '!' prefix with '+' and '-' It makes a bit more sense now. Mainly the difference is that "!foo*" means to save mails to a mailbox called "foo*", instead of including mailboxes matching "!foo*" pattern to the virtual mailbox. It's unlikely anyone was relying on this behavior. M src/plugins/virtual/virtual-config.c 2016-01-13 13:41:05 +0200 Timo Sirainen (77a236705) virtual plugin: Don't treat "+-box" as a negative entry. This was already documented by wiki to work as a mailbox named "-box", although it didn't actually work that way. There wasn't any practical difference between "+-box" and "-box", so this change is unlikely to break anyone's config. It was mainly done as code cleanup. M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-storage.h 2016-01-13 13:31:54 +0200 Timo Sirainen (fb297df91) virtual plugin: Minor cleanup/fix - find the namespace after we have processed special prefixes. We already skipped over them earlier, but the logic wasn't exactly the same as when they were actually being processed, so there could have been some unexpected mismatches. M src/plugins/virtual/virtual-config.c 2016-01-13 12:24:03 +0200 Timo Sirainen (02c335c23) global: freshen copyright git ls-files | xargs perl -p -i -e 's/(\d+)-201[0-5]/$1-2016/g;s/ (201[0-5]) Dovecot/ $1-2016 Dovecot/' M doc/man/doveadm-acl.1.in M doc/man/doveadm-altmove.1.in M doc/man/doveadm-auth.1.in M doc/man/doveadm-batch.1.in M doc/man/doveadm-deduplicate.1.in M doc/man/doveadm-director.1.in M doc/man/doveadm-dump.1.in M doc/man/doveadm-exec.1.in M doc/man/doveadm-expunge.1.in M doc/man/doveadm-fetch.1.in M doc/man/doveadm-flags.1.in M doc/man/doveadm-force-resync.1.in M doc/man/doveadm-fts.1.in M doc/man/doveadm-help.1.in M doc/man/doveadm-import.1.in M doc/man/doveadm-index.1.in M doc/man/doveadm-instance.1.in M doc/man/doveadm-kick.1.in M doc/man/doveadm-log.1.in M doc/man/doveadm-mailbox.1.in M doc/man/doveadm-mount.1.in M doc/man/doveadm-move.1.in M doc/man/doveadm-penalty.1.in M doc/man/doveadm-proxy.1.in M doc/man/doveadm-purge.1.in M doc/man/doveadm-pw.1.in M doc/man/doveadm-quota.1.in M doc/man/doveadm-replicator.1.in M doc/man/doveadm-search-query.7 M doc/man/doveadm-search.1.in M doc/man/doveadm-sync.1.in M doc/man/doveadm-user.1.in M doc/man/doveadm-who.1.in M doc/man/doveadm.1.in M doc/man/doveconf.1.in M doc/man/dovecot-lda.1.in M doc/man/dovecot.1.in M src/anvil/anvil-connection.c M src/anvil/anvil-settings.c M src/anvil/connect-limit.c M src/anvil/main.c M src/anvil/penalty.c M src/anvil/test-penalty.c M src/auth/auth-cache.c M src/auth/auth-client-connection.c M src/auth/auth-fields.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request-var-expand.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-token.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-checkpassword.c M src/auth/db-dict-cache-key.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-dovecot-token.c M src/auth/mech-external.c M src/auth/mech-plain.c M src/auth/mech-scram-sha1.c M src/auth/mech.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-dict.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-template.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c M src/auth/test-auth-cache.c M src/auth/test-auth-request-var-expand.c M src/auth/test-db-dict.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-template.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/config-settings.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-settings.c M src/dict/main.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-request.c M src/director/director-settings.c M src/director/director-test.c M src/director/director.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/main.c M src/director/notify-connection.c M src/director/test-user-directory.c M src/director/user-directory.c M src/dns/dns-client-settings.c M src/dns/dns-client.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-dict.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-fs.c M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-batch.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-flags.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-save.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-mount.c M src/doveadm/doveadm-mutf7.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-pw.c M src/doveadm/doveadm-replicator.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-zlib.c M src/doveadm/doveadm.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-deserializer.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-state.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox.c M src/doveadm/dsync/dsync-serializer.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/imap-hibernate/imap-client.c M src/imap-hibernate/imap-hibernate-client.c M src/imap-hibernate/imap-hibernate-settings.c M src/imap-hibernate/imap-master-connection.c M src/imap-hibernate/main.c M src/imap-login/client-authenticate.c M src/imap-login/client.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-proxy.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-login-settings.c M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-append.c M src/imap/cmd-cancelupdate.c M src/imap/cmd-capability.c M src/imap/cmd-check.c M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-enable.c M src/imap/cmd-examine.c M src/imap/cmd-expunge.c M src/imap/cmd-fetch.c M src/imap/cmd-genurlauth.c M src/imap/cmd-getmetadata.c M src/imap/cmd-id.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-logout.c M src/imap/cmd-lsub.c M src/imap/cmd-namespace.c M src/imap/cmd-noop.c M src/imap/cmd-notify.c M src/imap/cmd-rename.c M src/imap/cmd-resetkey.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-setmetadata.c M src/imap/cmd-sort.c M src/imap/cmd-status.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/cmd-unselect.c M src/imap/cmd-unsubscribe.c M src/imap/cmd-urlfetch.c M src/imap/cmd-x-cancel.c M src/imap/cmd-x-state.c M src/imap/imap-client-hibernate.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-list.c M src/imap/imap-master-client.c M src/imap/imap-notify.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/imap-state.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/imap/main.c M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-settings.c M src/indexer/indexer-worker-settings.c M src/indexer/indexer-worker.c M src/indexer/indexer.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/indexer/worker-pool.c M src/ipc/client.c M src/ipc/ipc-connection.c M src/ipc/ipc-group.c M src/ipc/ipc-settings.c M src/ipc/main.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-charset/test-charset.c M src/lib-compression/compression.c M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lz4.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c M src/lib-compression/test-compression.c M src/lib-dict/dict-cdb.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-fs.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-register.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-dict/dict-transaction-memory.c M src/lib-dict/dict.c M src/lib-dict/test-dict.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-api.c M src/lib-fs/fs-dict.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/istream-fs-file.c M src/lib-fs/istream-fs-stats.c M src/lib-fs/istream-metawrap.c M src/lib-fs/ostream-cmp.c M src/lib-fs/ostream-metawrap.c M src/lib-fts/fts-filter-contractions.c M src/lib-fts/fts-filter-english-possessive.c M src/lib-fts/fts-filter-lowercase.c M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-icu.c M src/lib-fts/fts-language.c M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/fts-tokenizer.c M src/lib-fts/test-fts-filter.c M src/lib-fts/test-fts-icu.c M src/lib-fts/test-fts-language.c M src/lib-fts/test-fts-tokenizer.c M src/lib-http/http-auth.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-date.c M src/lib-http/http-header-parser.c M src/lib-http/http-header.c M src/lib-http/http-message-parser.c M src/lib-http/http-parser.c M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c M src/lib-http/http-server-connection.c M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c M src/lib-http/http-server.c M src/lib-http/http-transfer-chunked.c M src/lib-http/http-url.c M src/lib-http/test-http-auth.c M src/lib-http/test-http-client.c M src/lib-http/test-http-date.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-server.c M src/lib-http/test-http-transfer.c M src/lib-http/test-http-url.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-msgmap.c M src/lib-imap-storage/imap-metadata.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap/imap-arg.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-keepalive.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-seqset.c M src/lib-imap/imap-url.c M src/lib-imap/imap-utf7.c M src/lib-imap/imap-util.c M src/lib-imap/test-imap-bodystructure.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-quote.c M src/lib-imap/test-imap-url.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-dummy-view.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/duplicate.c M src/lib-lda/lda-settings.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-mail/istream-attachment-connector.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-nonuls.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/mail-html2text.c M src/lib-mail/mail-user-hash.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-binary-part.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-part.c M src/lib-mail/message-search.c M src/lib-mail/message-size.c M src/lib-mail/message-snippet.c M src/lib-mail/ostream-dot.c M src/lib-mail/qp-decoder.c M src/lib-mail/quoted-printable.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-istream-binary-converter.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-mail-html2text.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-message-part.c M src/lib-mail/test-message-snippet.c M src/lib-mail/test-ostream-dot.c M src/lib-mail/test-qp-decoder.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-mail/test-rfc822-parser.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-auth.c M src/lib-master/master-instance.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-haproxy.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl.c M src/lib-master/master-service.c M src/lib-master/mountpoint-list.c M src/lib-master/syslog-util.c M src/lib-master/test-master-service-settings-cache.c M src/lib-sasl/dsasl-client.c M src/lib-sasl/mech-login.c M src/lib-sasl/mech-plain.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-sql/sql-db-cache.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-stats/stats-parser.c M src/lib-stats/stats.c M src/lib-storage/fail-mail-storage.c M src/lib-storage/fail-mail.c M src/lib-storage/fail-mailbox.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-md5-all.c M src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync-update.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-notify-tree.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-autoexpunge.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-error.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-args-cmdline.c M src/lib-storage/mail-search-args-imap.c M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-parser-cmdline.c M src/lib-storage/mail-search-parser-imap.c M src/lib-storage/mail-search-parser.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-thread.c M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/lib-storage/mailbox-attribute-internal.c M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-header.c M src/lib-storage/mailbox-keywords.c M src/lib-storage/mailbox-list-notify.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-recent-flags.c M src/lib-storage/mailbox-search-result.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/mailbox-watch.c M src/lib-storage/test-mail-search-args-imap.c M src/lib-storage/test-mail-search-args-simplify.c M src/lib-storage/test-mailbox-get.c M src/lib-test/test-common.c M src/lib/abspath.c M src/lib/aqueue.c M src/lib/array.c M src/lib/askpass.c M src/lib/backtrace-string.c M src/lib/base32.c M src/lib/base64.c M src/lib/bits.c M src/lib/bsearch-insert-pos.c M src/lib/buffer.c M src/lib/child-wait.c M src/lib/compat.c M src/lib/connection.c M src/lib/crc32.c M src/lib/data-stack.c M src/lib/eacces-error.c M src/lib/env-util.c M src/lib/execv-const.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/fd-set-nonblock.c M src/lib/fdatasync-path.c M src/lib/fdpass.c M src/lib/file-cache.c M src/lib/file-copy.c M src/lib/file-create-locked.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/guid.c M src/lib/hash-format.c M src/lib/hash-method.c M src/lib/hash.c M src/lib/hash2.c M src/lib/hex-binary.c M src/lib/hex-dec.c M src/lib/hmac.c M src/lib/home-expand.c M src/lib/hostpid.c M src/lib/imem.c M src/lib/ioloop-epoll.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/iostream-rawlog.c M src/lib/iostream-temp.c M src/lib/iostream.c M src/lib/ipwd.c M src/lib/iso8601-date.c M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/istream-callback.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-failure-at.c M src/lib/istream-file.c M src/lib/istream-hash.c M src/lib/istream-jsonstr.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream-tee.c M src/lib/istream-timeout.c M src/lib/istream-unix.c M src/lib/istream.c M src/lib/json-parser.c M src/lib/json-tree.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mkdir-parents.c M src/lib/mmap-anon.c M src/lib/mmap-util.c M src/lib/module-dir.c M src/lib/mountpoint.c M src/lib/net.c M src/lib/nfs-workarounds.c M src/lib/numpack.c M src/lib/ostream-buffer.c M src/lib/ostream-failure-at.c M src/lib/ostream-file.c M src/lib/ostream-hash.c M src/lib/ostream-rawlog.c M src/lib/ostream.c M src/lib/primes.c M src/lib/printf-format-fix.c M src/lib/priorityq.c M src/lib/process-title.c M src/lib/rand.c M src/lib/randgen.c M src/lib/read-full.c M src/lib/restrict-access.c M src/lib/restrict-process-size.c M src/lib/safe-memset.c M src/lib/safe-mkdir.c M src/lib/safe-mkstemp.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str-table.c M src/lib/str.c M src/lib/strescape.c M src/lib/strfuncs.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/test-base32.c M src/lib/test-base64.c M src/lib/test-bits.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-buffer.c M src/lib/test-crc32.c M src/lib/test-data-stack.c M src/lib/test-failures.c M src/lib/test-guid.c M src/lib/test-hash-format.c M src/lib/test-hash-method.c M src/lib/test-hash.c M src/lib/test-hex-binary.c M src/lib/test-ioloop.c M src/lib/test-iso8601-date.c M src/lib/test-istream-base64-decoder.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-failure-at.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-istream-unix.c M src/lib/test-istream.c M src/lib/test-json-parser.c M src/lib/test-json-tree.c M src/lib/test-lib.c M src/lib/test-llist.c M src/lib/test-mempool-alloconly.c M src/lib/test-net.c M src/lib/test-numpack.c M src/lib/test-ostream-failure-at.c M src/lib/test-ostream-file.c M src/lib/test-primes.c M src/lib/test-printf-format-fix.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-str-find.c M src/lib/test-str-sanitize.c M src/lib/test-str-table.c M src/lib/test-str.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-strnum.c M src/lib/test-time-util.c M src/lib/test-timing.c M src/lib/test-unichar.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/test-wildcard-match.c M src/lib/time-util.c M src/lib/timing.c M src/lib/unichar.c M src/lib/unix-socket-create.c M src/lib/unlink-directory.c M src/lib/unlink-old-files.c M src/lib/uri-util.c M src/lib/utc-mktime.c M src/lib/utc-offset.c M src/lib/var-expand.c M src/lib/write-full.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c M src/log/doveadm-connection.c M src/log/log-connection.c M src/log/log-error-buffer.c M src/log/log-settings.c M src/log/main.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/master/capabilities-posix.c M src/master/dup2-array.c M src/master/main.c M src/master/master-settings.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/master/service-process.c M src/master/service.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile-update.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-global-file.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c M src/plugins/acl/doveadm-acl.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fs-compress/fs-compress.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search-args.c M src/plugins/fts/fts-search-serialize.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-user.c M src/plugins/fts/xml2text.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/last-login/last-login-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/mail-filter-plugin.c M src/plugins/mail-filter/ostream-ext-filter.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/mailbox-alias/mailbox-alias-plugin.c M src/plugins/notify/notify-plugin.c M src/plugins/notify/notify-storage.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/pop3-migration/test-pop3-migration-plugin.c M src/plugins/push-notification/push-notification-driver-dlog.c M src/plugins/push-notification/push-notification-driver-ox.c M src/plugins/push-notification/push-notification-drivers.c M src/plugins/push-notification/push-notification-drivers.h M src/plugins/push-notification/push-notification-event-flagsclear.c M src/plugins/push-notification/push-notification-event-flagsclear.h M src/plugins/push-notification/push-notification-event-flagsset.c M src/plugins/push-notification/push-notification-event-flagsset.h M src/plugins/push-notification/push-notification-event-mailboxcreate.c M src/plugins/push-notification/push-notification-event-mailboxcreate.h M src/plugins/push-notification/push-notification-event-mailboxdelete.c M src/plugins/push-notification/push-notification-event-mailboxdelete.h M src/plugins/push-notification/push-notification-event-mailboxrename.c M src/plugins/push-notification/push-notification-event-mailboxrename.h M src/plugins/push-notification/push-notification-event-mailboxsubscribe.c M src/plugins/push-notification/push-notification-event-mailboxsubscribe.h M src/plugins/push-notification/push-notification-event-mailboxunsubscribe.c M src/plugins/push-notification/push-notification-event-mailboxunsubscribe.h M src/plugins/push-notification/push-notification-event-message-common.h M src/plugins/push-notification/push-notification-event-messageappend.c M src/plugins/push-notification/push-notification-event-messageappend.h M src/plugins/push-notification/push-notification-event-messageexpunge.c M src/plugins/push-notification/push-notification-event-messageexpunge.h M src/plugins/push-notification/push-notification-event-messagenew.c M src/plugins/push-notification/push-notification-event-messagenew.h M src/plugins/push-notification/push-notification-event-messageread.c M src/plugins/push-notification/push-notification-event-messageread.h M src/plugins/push-notification/push-notification-event-messagetrash.c M src/plugins/push-notification/push-notification-event-messagetrash.h M src/plugins/push-notification/push-notification-events-rfc5423.c M src/plugins/push-notification/push-notification-events-rfc5423.h M src/plugins/push-notification/push-notification-events.c M src/plugins/push-notification/push-notification-events.h M src/plugins/push-notification/push-notification-plugin.c M src/plugins/push-notification/push-notification-plugin.h M src/plugins/push-notification/push-notification-triggers.c M src/plugins/push-notification/push-notification-triggers.h M src/plugins/push-notification/push-notification-txn-mbox.c M src/plugins/push-notification/push-notification-txn-mbox.h M src/plugins/push-notification/push-notification-txn-msg.c M src/plugins/push-notification/push-notification-txn-msg.h M src/plugins/quota-clone/quota-clone-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-status.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota-util.c M src/plugins/quota/quota.c M src/plugins/quota/test-quota-util.c M src/plugins/replication/replication-plugin.c M src/plugins/snarf/snarf-plugin.c M src/plugins/stats/mail-stats-fill.c M src/plugins/stats/mail-stats.c M src/plugins/stats/stats-connection.c M src/plugins/stats/stats-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/pop3-login-settings.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/replication/aggregator/aggregator-settings.c M src/replication/aggregator/aggregator.c M src/replication/aggregator/notify-connection.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/dsync-client.c M src/replication/replicator/notify-connection.c M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue-auth.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-settings.c M src/replication/replicator/replicator.c M src/ssl-params/main.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params.c M src/stats/client-export.c M src/stats/client.c M src/stats/global-memory.c M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-server-connection.c M src/stats/mail-session.c M src/stats/mail-stats.c M src/stats/mail-user.c M src/stats/main.c M src/stats/stats-settings.c M src/util/gdbhelper.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap-settings.c M src/util/tcpwrap.c 2016-01-13 11:22:20 +0200 Timo Sirainen (43bdd9239) lib-storage: Fixed autoexpunge=yes to work with namespace's root mailbox. namespace { mailbox "" { autoexpunge = .. } } M src/lib-storage/mail-autoexpunge.c 2015-12-23 14:45:08 +0200 Teemu Huovila (40bdcc2e5) lib-fts: Create library for development packages. M Makefile.am M src/lib-fts/Makefile.am 2016-01-11 19:00:07 +0200 Timo Sirainen (46ce4d927) lib: i_stream_get_error() now returns "EOF" if stream_errno==0 and eof==TRUE. This can be used to replace a lot of code like: input->stream_errno == 0 ? "EOF" : i_stream_get_error(input) with simply: i_stream_get_error(input) M src/lib/istream.c M src/lib/istream.h 2016-01-09 22:55:15 +0200 Timo Sirainen (513c91107) Removed now-unused is-tagged.py M Makefile.am D is-tagged.py 2016-01-08 18:12:21 +0200 Timo Sirainen (0102fd5f7) auth: Don't crash if passwd-file can't be opened M src/auth/db-passwd-file.c 2016-01-08 17:04:27 +0200 Timo Sirainen (480a5afb2) lib-settings: If SET_UINT_OCT has invalid value, we ignored the error and returned garbage value. M src/lib-settings/settings-parser.c 2016-01-08 17:02:56 +0200 Timo Sirainen (9404dc8e4) lib-settings: Fixed parsing '0' value for SET_UINT_OCT. This was used only by service { *_listener { mode } } M src/lib-settings/settings-parser.c 2016-01-08 13:24:32 +0200 Timo Sirainen (f148466c7) lib-mail: message-parser was counting body_size wrong for truncated MIME headers after 7d800c55 M src/lib-mail/message-parser.c M src/lib-mail/test-message-parser.c 2016-01-07 22:14:59 +0200 Timo Sirainen (5f3523103) lib-storage: mailbox_exists() shouldn't return INBOX as nonexistent if it's not created yet. M src/lib-storage/mail-storage.c 2016-01-07 22:02:18 +0200 Timo Sirainen (bdf3c77e7) update-version.sh: Explicitly specify git directory. M update-version.sh 2016-01-05 11:17:26 -0500 Timo Sirainen (6c510fa9f) pop3: Make sure pop3_lock_session=yes creates the lock's directory if it's missing. This happened at least with mbox if the root .imap/ didn't exist yet. M src/pop3/pop3-client.c 2016-01-05 11:08:01 -0500 Timo Sirainen (e7ff41f10) auth: Fixed allow_nets=local to work correctly with non-local remote IP M src/auth/auth-request.c 2016-01-05 11:01:26 -0500 Timo Sirainen (7dea51952) imap: Don't hang at ambiguous commands when they were pipelined already before login For example if all of these are sent in a single IP packet: a login user pass b select inbox c noop d unselect M src/imap/main.c 2016-01-04 14:34:01 -0500 Timo Sirainen (ddffbb277) imap: Avoid crashing at deinit if mail_user_unref() triggers mail_storage_callbacks This could have happened with Maildir/mbox and autoexpunging. M src/imap/imap-client.c 2016-01-04 14:23:46 -0500 Timo Sirainen (76e5f0fe5) lib-storage: Fixed autoexpunge for namespaces with non-empty prefix M src/lib-storage/mail-autoexpunge.c 2016-01-04 14:15:50 -0500 Timo Sirainen (f53a1b98d) auth: If allow_nets has an invalid value, don't attempt to compare it anymore. This fixes a potential crash because net_is_in_network() was called with garbage net_ip. M src/auth/auth-request.c 2016-01-04 14:10:44 -0500 Timo Sirainen (7375e3825) lib: Added unit tests for net_is_in_network() about IPv4-mapped IPv6 addresses M src/lib/net.h M src/lib/test-net.c 2016-01-04 14:00:19 -0500 Timo Sirainen (3ad31bce4) lib: Fixed assert-crash with net_is_in_network(family=ipv6, family=0, ..) M src/lib/net.c M src/lib/test-net.c 2016-01-04 20:51:34 +0200 Timo Sirainen (f6d8250f9) dict: Avoid a crash when dict connection is already closed when async lookup finishes. M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-connection.h 2016-01-04 13:12:18 -0500 Timo Sirainen (f136b0050) imap: Make sure pending input is handled when a pending command has input locked. This hopefully fixes the last assert-crash in client_check_command_hangs() M src/imap/imap-client.c 2016-01-04 12:40:39 -0500 Timo Sirainen (c7801f830) imap: Fixed crash in IDLE if DONE is received while sending large output to client. Fixes assert-crash with backtrace: M src/imap/cmd-idle.c 2016-01-04 12:02:12 -0500 Timo Sirainen (1a591dbe1) lib-storage: mail_add_temp_wanted_fields() was reading already-freed memory. This mainly happened with mail_log plugin enabled. M src/lib-storage/index/index-mail.c 2016-01-04 11:47:24 -0500 Timo Sirainen (2933174a1) imap: Don't assert-crash if hibernation resumes IDLE, which sends a lot of data to client. M src/imap/imap-state.c 2015-12-31 04:26:01 +0200 Timo Sirainen (6920cf9a4) mysql: Don't require connect setting to have host-parameter if option_file is set. The option_file could also specify the host. M src/lib-sql/driver-mysql.c 2015-12-30 08:21:46 -0500 Timo Sirainen (a4392e9d3) lib-mail: message-parser wasn't returning hdr=NULL blocks after 078c2c8c M src/lib-mail/message-parser.c M src/lib-mail/test-message-parser.c 2015-12-30 08:21:24 -0500 Timo Sirainen (4b994089f) lib-mail: Small test-message-header-parser unit test update M src/lib-mail/test-message-header-parser.c 2015-12-28 06:49:29 -0500 Timo Sirainen (19e161dd9) dsync: Don't restrict what mailbox names can be created (except basic sanity checks) The mailbox names already exist on the other side, so we don't want to add arbitrary limits to them. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2015-12-23 11:48:12 +0200 Timo Sirainen (3e8c8984b) lib-http: Add more timing information to debug logs when HTTP connections get closed. M src/lib-http/http-client-connection.c 2015-12-17 05:52:03 +0200 Timo Sirainen (28b34f3ca) imap: Make static analyzer happier. M src/imap/imap-client.c 2015-12-16 15:37:26 +0200 Timo Sirainen (15307c2c9) imap: Fixed potential assert-crash with command pipelining. Should fix assert-crash: Panic: file imap-fetch.c: line 554: assertion failed: (ctx->client->output_cmd_lock == NULL || ctx->client->output_cmd_lock == cmd) M src/imap/imap-client.c 2015-12-16 15:26:02 +0200 Timo Sirainen (107659c01) doveadm-server: Added -D parameter to enable debugging at startup. This mainly makes it show why plugin loads fail. M src/doveadm/main.c 2015-12-16 15:25:22 +0200 Timo Sirainen (c6be98b52) doveadm-server: Fixed loading doveadm plugins that use doveadm_dump_register() M src/doveadm/Makefile.am M src/doveadm/main.c 2015-12-16 15:06:52 +0200 Timo Sirainen (879dfd4da) lib-compress: lz4 istream wasn't detected reliably in some situations. We requested too few bytes from istream, so there wasn't any guarantee that the istream actually had all the bytes. This caused a problem for example with mdbox when the previous mail was already fetched and the stream happened to end in the middle of the lz4 header. M src/lib-compression/compression.c 2015-12-16 14:11:04 +0200 Timo Sirainen (a2db811b5) configure: Changed version number to v2.2.devel. The actual version numbers live only on the release-branches from now on. M configure.ac 2015-12-16 11:59:41 +0200 Timo Sirainen (c8e9fa2ff) imap: Fixed potential crash when logging about pending commands at logout. M src/imap/imap-client.c 2015-12-16 11:29:36 +0200 Timo Sirainen (3bc62efe5) lib-dict: Improve EACCES error logging for dict-file. M src/lib-dict/dict-file.c 2015-12-15 17:32:09 +0200 Timo Sirainen (7d800c558) lib-mail: message-parser didn't detect MIME part boundaries in the middle of MIME part headers. Instead the --boundary line was thought to be part of the header itself. M src/lib-mail/message-parser.c M src/lib-mail/test-message-parser.c 2015-12-15 17:29:11 +0200 Timo Sirainen (a556e29bb) lib-mail: message_header_parser_next() updates istream position immediately now. Earlier it updated the position only on the next call or at deinit. This was because some earlier code kept pointers to the stream data and stored them to the returned struct message_header_line, but we don't do this anymore. This allows more easily accessing the same istream for other purposes during the header parsing. M src/lib-mail/message-header-parser.c 2015-12-14 17:42:34 +0200 Timo Sirainen (2a8253ebc) lib: Avoid passing NULL to qsort() or bsearch() on empty array. This wouldn't normally matter because count=0 so it wouldn't be dereferenced anyway. But it triggered a run-time warning from clang, so lets fix it. M src/lib/array.c 2015-12-14 12:36:23 +0200 Timo Sirainen (aa8338d49) imapc: Removed commented out code. It was probably accidentally committed debug code. M src/lib-storage/index/imapc/imapc-mailbox.c 2015-12-13 21:25:32 +0200 Timo Sirainen (6971937a6) doveadm expunge: Using "all" parameter didn't work. M src/doveadm/doveadm-mail-expunge.c 2015-12-13 12:33:20 +0200 Timo Sirainen (3a719a01a) stats: Avoid assert-crash with dsync. dsync creates two mail_users and they're deinited at the same time. stats_global_user isn't set after the first one is deinited, so the next deinit crashed because it wasn't set. Fixes: Panic: file stats-plugin.c: line 324 (stats_user_deinit): assertion failed: (stats_global_user == user) M src/plugins/stats/stats-plugin.c 2015-12-11 17:40:36 +0200 Timo Sirainen (88e0ac0d8) configure: Minor cleanup - avoid code duplication. M configure.ac 2015-12-11 17:39:05 +0200 Timo Sirainen (db35cdbe8) dovecot-config: Fixed setting LIBDOVECOT_LIBFTS[_DEPS] M configure.ac M dovecot-config.in.in 2015-12-11 16:33:43 +0200 Timo Sirainen (a93c909cf) director: Don't mark the host desynced if director is alone in ring. M src/director/director.c 2015-12-10 14:40:01 +0200 Timo Sirainen (ed4a4d9b8) director: Don't trigger a ring resync if only last_updown_change has changed. M src/director/director-connection.c 2015-12-10 11:14:26 +0200 Timo Sirainen (b56763005) Makefile: Make ChangeLog depend on .git/index instead of .git/ORIG_HEAD ORIG_HEAD doesn't necessarily exist, so maybe index is good for this. M Makefile.am 2015-12-09 19:40:18 +0200 Timo Sirainen (be16427f4) Switched .hgignore to .gitignore R052 .hgignore .gitignore 2015-12-09 19:40:10 +0200 Timo Sirainen (bafa9906e) Removed .hgsigs and .hgtags D .hgsigs D .hgtags 2015-12-09 18:38:00 +0200 Timo Sirainen (8232ca302) Makefile, update-version.sh: Switched from hg to git. M Makefile.am M update-version.sh 2015-12-09 17:37:13 +0200 Timo Sirainen (da1515d5b) TODO updated M TODO 2015-12-09 17:36:49 +0200 Timo Sirainen (bf04396da) acl: Empty lines and comments in dovecot-acl files weren't handled correctly. M src/plugins/acl/acl-api.c M src/plugins/acl/acl-backend-vfile.c 2015-12-09 15:31:37 +0200 Timo Sirainen (a18335e18) virtual: Fixed assert-crash when opening virtual mailbox triggered backend mailbox autocreation. Fixes assert: Panic: file virtual-storage.c: line 335 (virtual_mailbox_opened_hook): assertion failed: (!bbox->open_tracked) M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2015-12-09 13:51:35 +0200 Timo Sirainen (6de0cbb4a) lib-storage: Fixed mail_search_args_simplify() with empty args. This fixes assert-crash in doveadm mailbox list. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-12-09 13:02:46 +0200 Timo Sirainen (9058f3006) director: If doveadm attempts to change tag for an existing host, return error. M src/director/doveadm-connection.c 2015-12-09 13:02:19 +0200 Timo Sirainen (e307e0fcc) doveadm director update: Tag can't be changed - don't allow -t parameter M src/doveadm/doveadm-director.c 2015-12-09 12:43:18 +0200 Timo Sirainen (1ddf959a7) imap: Added assert to make sure client_command_context isn't freed too early. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c 2015-12-09 10:49:22 +0200 Timo Sirainen (738bdc36e) quota-fs: Fixed getting NFS rquota when the quota was disabled. M src/plugins/quota/quota-fs.c 2015-12-08 15:47:28 +0200 Timo Sirainen (b68472c30) fts: When indexing header names with lib-fts, add them using "data" language. M src/plugins/fts/fts-build-mail.c 2015-12-08 13:28:01 +0200 Timo Sirainen (5ed7a7fd8) fts: Fixed searching for HEADER "" with lib-fts M src/plugins/fts/fts-search-args.c 2015-12-08 13:23:19 +0200 Timo Sirainen (c9099b08b) lib-storage: mail_search_args_simplify() handles now ALL better. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-12-08 13:13:24 +0200 Timo Sirainen (37ce8d49a) lib-storage: mail_search_args_simplify() code cleanup - allow merging first arg M src/lib-storage/mail-search-args-simplify.c 2015-12-08 13:13:10 +0200 Timo Sirainen (1e167fbb2) lib-storage: Fix to a776ee107aa2 - merged-flag wasn't reset between all args. M src/lib-storage/mail-search-args-simplify.c 2015-12-08 12:55:40 +0200 Timo Sirainen (279c6b6d0) lib-storage: Code cleanup - moved BODY/TEXT "" optimization to mail_search_args_simplify() M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/test-mail-search-args-simplify.c 2015-12-08 12:24:42 +0200 Timo Sirainen (9139e1748) lib-settings: Allow using comma as deflist separator. This means that when adding new block {}s via e.g. userdb or post-login script, the block names can now be set with block=a,b,c instead of "block=a b c". This is beneficial with e.g. passwd-file or userdb default_fields where spaces are used to separate parameters entirely. M src/lib-settings/settings-parser.c 2015-12-08 10:18:48 +0200 Timo Sirainen (47c4991dc) quota-fs: Recalculate relative quota rules when FS limit changes are detected. M src/plugins/quota/quota-fs.c 2015-12-08 10:17:10 +0200 Timo Sirainen (191a22ee1) lmtp: Memory leak fixes on handling some RCPT TO failures. M src/lmtp/commands.c 2015-12-07 21:09:47 +0200 Timo Sirainen (fae14d3ca) Added signature for changeset f833b8160e39 M .hgsigs 2015-12-07 21:09:38 +0200 Timo Sirainen (08672b160) Added tag 2.2.20 for changeset f833b8160e39 M .hgtags 2015-12-07 21:09:35 +0200 Timo Sirainen (5124ce635) Released v2.2.20. M NEWS M configure.ac 2015-12-07 16:06:15 +0200 Timo Sirainen (78c27af9d) lib-ssl-iostream, login-*: Hide unnecessary "EVP_PKEY_get1_EC_KEY:expecting a ec key" errors. M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.h M src/login-common/ssl-proxy-openssl.c 2015-12-07 11:29:29 +0200 Timo Sirainen (975c2cdc1) doveadm: Fixed reseting getopt() with glibc when processing multiple commands in a single process. This means commands run with doveadm batch or multiple commands in a single doveadm-server connection. glibc's getopt() man page says that optind=1 should reset it for scanning a new argument vector, but this doesn't actually seem to work. Setting optind=0 does work though, so use it everywhere. M src/doveadm/client-connection.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-mail-batch.c M src/doveadm/doveadm.c M src/lib/lib.c M src/lib/lib.h 2015-12-07 11:21:59 +0200 Timo Sirainen (bc3147200) doveadm-server: Reset getopt() before calling non-mail commands. This fixes parsing their parameters when using multiple such commands within a single doveadm connection. M src/doveadm/client-connection.c 2015-12-06 20:48:55 +0200 Timo Sirainen (dea8bfa31) lib-storage: mail_search_args_simplify() handles now "(a OR b) AND (a OR c)" -> "a OR (b AND c)" M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-12-06 20:46:52 +0200 Timo Sirainen (071543cc1) lib-storage: mail_search_args_simplify() refactoring Removed parent_arg from mail_search_args_simplify_extract_common_and() in preperation for the next changeset. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-12-06 19:27:45 +0200 Timo Sirainen (8d3af185a) lib-storage: mail_search_args_simplify() handles now "a AND (a OR b)" -> "a" M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-12-06 19:26:44 +0200 Timo Sirainen (c89ceadf6) lib-storage: Make sure mail_sesarch_args_simplify_sub() is called enough times. M src/lib-storage/mail-search-args-simplify.c 2015-12-06 19:25:20 +0200 Timo Sirainen (387f9e3b4) lib-storage: Minor test-mail-search-args-simplify unit test improvements M src/lib-storage/test-mail-search-args-simplify.c 2015-12-06 18:14:08 +0200 Timo Sirainen (632018810) lib-storage: mail_search_args_simplify() handles now "(a AND b) OR (a AND c)" -> "a AND (b OR c)" M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-12-06 18:12:24 +0200 Timo Sirainen (27e859cee) lib-storage: mail_search_args_simplify() handles now "a OR (a AND b)" -> "a" M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-12-06 18:09:17 +0200 Timo Sirainen (78f8407de) lib-storage: Made mail_search_arg_[one_]equals() public. M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h 2015-12-06 18:08:20 +0200 Timo Sirainen (914e08a6f) lib-storage: mail_search_args_equal() ignored some differences. - fuzzy flag - MAIL_SEARCH_ARG_FLAG_USE_TZ - INTHREAD thread type M src/lib-storage/mail-search.c 2015-12-06 18:06:45 +0200 Timo Sirainen (86da76e8f) lib-storage: mail_search_arg*_dup() didn't preserve fuzzy-flag. M src/lib-storage/mail-search.c 2015-12-06 16:46:30 +0200 Timo Sirainen (5d3422197) lib-storage: SEARCH BODY "" wasn't properly being translated to SEARCH_ALL. Instead if the next parameter was "" this happened (which could have been an accidental space in doveadm search-query). M src/lib-storage/mail-search-register-imap.c 2015-12-06 16:09:55 +0200 Timo Sirainen (8abe00d5c) lib-storage: dovecot.index.pvt* ignored several settings. mmap_disable=yes, dotlock_use_excl=yes and nfs_flush_index=yes weren't used. M src/lib-storage/mail-storage.c 2015-12-06 15:39:53 +0200 Timo Sirainen (bcecb676b) quota-fs: File count limits with NetBSD shouldn't be multiplied by DEV_BSIZE M src/plugins/quota/quota-fs.c 2015-12-06 15:10:10 +0200 Timo Sirainen (8a0ef8312) lib-charset: Added UTF-7 state checking unit test. This was an idea of a way to test for a bug in FreeBSD iconv(), but nobody reported if it did anything. So lets add it here and see. M src/lib-charset/test-charset.c 2015-12-06 14:57:22 +0200 Timo Sirainen (170834eda) lmtp: quota_full_tempfail=yes didn't work with lmtp_rcpt_check_quota=yes M src/lmtp/commands.c 2015-12-06 14:27:46 +0200 Timo Sirainen (98449946c) sdbox: Fixed assert-crash when message with external attachments was copied between storages. M src/lib-storage/index/dbox-single/sdbox-copy.c 2015-12-04 14:17:45 +0200 Timo Sirainen (23b586b2c) fts: Fixed FTS search query generation after earlier per-language tokenizer changes. M src/plugins/fts/fts-search-args.c 2015-12-04 13:46:00 +0200 Timo Sirainen (231629a38) lib-http: Give a better error message if request times out. Instead of just giving the configured timeout, log how long the timeout actually took for the oldest request in wait list. Also if the request was retried, log how many times the request was sent and how long the request took in total. M src/lib-http/http-client-connection.c 2015-12-04 13:27:28 +0200 Timo Sirainen (7c38d2502) doveadm fts lookup/expand: Don't assert-crash if fts isn't configured. M src/plugins/fts/doveadm-fts.c 2015-12-04 12:29:12 +0200 Timo Sirainen (a8319b1f6) lib: Removed t_str_trim() for now due to collision in Pigeonhole v0.4.9 M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2015-12-04 12:15:49 +0200 Timo Sirainen (89fd04f72) imap: Fixed assert-crash if client disconnected at a specific command state. If there was a command with state=CLIENT_COMMAND_STATE_WAIT_SYNC and output stream was already detected to be closed, we crashed with: Panic: file imap-client.c: line 841 (client_check_command_hangs): assertion failed: (!have_wait_unfinished || unfinished_count > 0) M src/imap/imap-client.c 2015-12-04 11:38:00 +0200 Timo Sirainen (6e1a91037) lib-index: mail_transaction_log_file_map() didn't properly check start_offset If it was too high, it still returned successful mapping. This could have caused an assert-crash later on when the start_offset was actually attempted to be used. M src/lib-index/mail-transaction-log-file.c 2015-12-04 10:52:52 +0200 Timo Sirainen (c892cc160) lib-ssl-iostream: Fixed compiler warning when OpenSSL didn't support ECDH. M src/lib-ssl-iostream/iostream-openssl-context.c 2015-12-04 09:52:26 +0200 Timo Sirainen (c5b642067) fts: Error handling fix for previous per-language tokenizer change. M src/plugins/fts/fts-search-args.c 2015-12-03 15:31:48 +0200 Timo Sirainen (63964d094) Added signature for changeset c35e62a9e710 M .hgsigs 2015-12-03 15:31:41 +0200 Timo Sirainen (b96c3a910) Added tag 2.2.20.rc1 for changeset c35e62a9e710 M .hgtags 2015-12-03 15:31:39 +0200 Timo Sirainen (732f68ad3) Released v2.2.20.rc1. M NEWS M configure.ac 2015-12-03 14:24:06 +0200 Timo Sirainen (dbf26a3ea) fts: Added support for per-language tokenizer settings. fts_tokenizer_ now overrides fts_tokenizers setting. fts_tokenizer__ now overrides fts_tokenizer_ setting. M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-search-args.c M src/plugins/fts/fts-user.c M src/plugins/fts/fts-user.h 2015-12-03 12:22:24 +0200 Timo Sirainen (0ebd8300f) lib-ssl-iostream: Moved openssl_iostream_*error() to -common.c login-common code only links with this file, so that's required for the previous changes to actually work. M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c 2015-12-03 12:19:12 +0200 Timo Sirainen (cc6dfdfaf) login, lib-ssl-iostream: Clear errors caused by manual EC key selection when there was no EC key. EVP_PKEY_get1_EC_KEY() would return an error, which should be ignored instead of being logged later on. M src/lib-ssl-iostream/iostream-openssl-context.c M src/login-common/ssl-proxy-openssl.c 2015-12-03 12:13:11 +0200 Timo Sirainen (2e492d0d1) lib-ssl-iostream: Check for SSL_CTX_set_ecdh_auto() failure. This shouldn't happen though. M src/lib-ssl-iostream/iostream-openssl-context.c 2015-12-03 12:02:56 +0200 Timo Sirainen (8b5d186ec) login, lib-ssl-iostream: Deduplicate code with shared openssl_iostream_use_certificate_error() M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/login-common/ssl-proxy-openssl.c 2015-12-03 11:58:11 +0200 Timo Sirainen (771df0fdc) login-common: Use openssl_iostream_*error() to avoid code duplication. M src/login-common/ssl-proxy-openssl.c 2015-12-03 11:55:33 +0200 Timo Sirainen (1deb13e4a) lib-ssl-iostream: Fixes to error handling. Copy behavior from login-common/ssl-proxy-openssl.c: - Handle stacked errors. - Improve errors with ERR_TXT_STRING flag. M src/lib-ssl-iostream/iostream-openssl-context.c 2015-12-03 11:41:58 +0200 Timo Sirainen (f82dcfb64) lib-ssl-iostream: Don't ignore errors on SSL certificate loading. Patch by Sebastiaan Hoogeveen. M src/lib-ssl-iostream/iostream-openssl-context.c 2015-12-01 17:31:08 +0200 Timo Sirainen (5b79409cf) mail-log: If uid field is used, make sure newly saved mails actually get an UID. With Maildir the UID is otherwise assigned on mail deliveries only if dovecot-uidlist happens to get locked. M src/plugins/mail-log/mail-log-plugin.c 2015-12-01 16:45:37 +0200 Timo Sirainen (1b7cb001c) lib-mail: test-rfc822-parser unit test fix We didn't check that all the output was necessarily verified. Also this makes static analyzer happier. M src/lib-mail/test-rfc822-parser.c 2015-11-30 21:39:56 +0200 Timo Sirainen (0f9c90871) director: Minor code cleanup - removed unnecessary code. M src/director/mail-host.c 2015-11-30 21:39:34 +0200 Timo Sirainen (d9218b8c5) director: Include tag also in the hosts_hash. M src/director/mail-host.c 2015-11-30 21:39:07 +0200 Timo Sirainen (764178ebb) director: Fixed recent tag reimplementation to actually work. We still just created one large vhosts pool for all tags containing all the hosts. M src/director/mail-host.c 2015-11-30 21:36:51 +0200 Timo Sirainen (75aae86df) director: Don't treat empty hostname the same as having it. This could have caused "host not given" errors if an empty "host=" was sent to login process, even though hostip was also sent. Fixed this in two places, although either one should have been enough. M src/director/login-connection.c M src/director/mail-host.c 2015-11-30 21:32:26 +0200 Timo Sirainen (a99dcacb7) director: Fixed "doveadm director status user@domain" not to hang due to missing LF. M src/director/doveadm-connection.c 2015-11-30 13:15:44 +0200 Timo Sirainen (e99bcf69a) lib-imap: Added unit tests for imap_append_[an]string() M src/lib-imap/test-imap-quote.c 2015-11-30 13:14:29 +0200 Timo Sirainen (efb00f1b4) lib-mail: rfc822_parse_content_param() was unescaping already unescaped parameters This caused all Content-* parameter parsing to be unescaped once too many times, resulting in somewhat broken BODY and BODYSTRUCTURE replies if any <\> characters were used. Also MIME boundaries were parsed in case <\> was used in them, but this probably didn't practically happen. M src/lib-mail/Makefile.am M src/lib-mail/rfc822-parser.c A src/lib-mail/test-rfc822-parser.c 2015-11-30 12:22:22 +0200 Timo Sirainen (7dd67cf14) doveadm fetch: Added date.sent/received/saved.unixtime M src/doveadm/doveadm-mail-fetch.c 2015-11-28 23:50:14 +0200 Stephan Bosch (f43734e77) lib: Created t_str_trim() functions to trim characters from beginning and end of string. M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2015-11-28 13:36:14 +0200 Timo Sirainen (9de023162) Makefile: Added missing mail-autoexpunge.h M src/lib-storage/Makefile.am 2015-11-27 15:50:44 +0200 Timo Sirainen (c2cda8cd0) lib: Added extra assert to i_stream_read() M src/lib/istream.c 2015-11-27 15:49:58 +0200 Timo Sirainen (c051fa1a8) fts-solr: Fixed sending empty parameters. Solr probably doesn't do anything useful with them, but we shouldn't get 400 Bad Request errors. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2015-11-27 15:26:31 +0200 Timo Sirainen (422af31ad) Compiler warning fix for 32bit systems M src/lib-storage/mail-autoexpunge.c 2015-11-27 15:24:41 +0200 Timo Sirainen (ebcb8cc4f) fts-solr: Fixed escaping query parameters. Solr documentation says that "quoted string" would already work without escaping, but that doesn't seem to be true (we were also missing the \" escaping there). So we'll now escape all the special characters without quotes around it, which seems to work. Also added '/' to list of special characters, which is used by Solr 4.0. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2015-11-27 14:57:03 +0200 Timo Sirainen (ac99facd4) zlib: Fixed copying causing cache corruption when zlib_save wasn't set. dovecot.index.cache entries were broken/missing if: - The zlib plugin is enabled; - The zlib_save/zlib_save_level options are NOT enabled; - The source message being copied is compressed; - The mail_log plugin is logging "copy" events; - The mail_log_fields setting includes at least one message header; - The destination mailbox folder has an index file that is recording the logged headers; - The source mailbox folder does NOT have an index file recording the logged headers. Found by Robert L Mathews. M src/plugins/zlib/zlib-plugin.c 2015-11-27 14:42:43 +0200 Timo Sirainen (a071ae737) lib: Fixed compiling unit test in systems where NULL isn't of type void* For example Solaris. M src/lib/test-ioloop.c 2015-11-27 14:39:32 +0200 Timo Sirainen (ae23befb6) auth: Fixed test-auth-request-var-expand unit test on big endian CPUs M src/auth/test-auth-request-var-expand.c 2015-11-27 14:24:23 +0200 Timo Sirainen (a9934b12e) Compiler warning fix for 32bit systems M src/lib-storage/list/mailbox-list-index-status.c 2015-11-27 14:11:57 +0200 Timo Sirainen (4e3bcf7fd) lib-storage: Don't add first_saved to mailbox list index unless autoexpunge is set. M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/mail-storage-private.h 2015-11-27 14:01:14 +0200 Timo Sirainen (1001bda65) imap: Free mail_user only after client is disconnected. M src/imap/imap-client.c 2015-11-27 13:59:22 +0200 Timo Sirainen (1ae5d61ec) Added mailbox { autoexpunge } setting. This can be used to automatically expunge mails from specified mailboxes after they're old enough. The expunges are done when the user is being deinitialized. mailbox_list_index=yes should be enabled to have the best performance with this setting. Example: namespace inbox { mailbox Spam { auto = create special_use = \Junk autoexpunge = 30d } } M src/lib-storage/Makefile.am M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index.h A src/lib-storage/mail-autoexpunge.c A src/lib-storage/mail-autoexpunge.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mail-storage.h M src/lib-storage/mail-user.c 2015-11-27 13:06:01 +0200 Timo Sirainen (fe779565b) imap: SETMETADATA didn't set ostream output handler back This caused hangs afterwards when receiving long replies (e.g. FETCH). M src/imap/cmd-setmetadata.c 2015-11-26 15:42:35 +0200 Timo Sirainen (8705e4556) quota-clone: Avoid assert-crash when quota recalculation is triggered. Quota recalculation opened all mailboxes and got us back to quota_clone_flush(), which caused another dict transaction to be opened, which caused a crash with some dict backends. M src/plugins/quota-clone/quota-clone-plugin.c 2015-11-25 15:09:52 +0200 Teemu Huovila (7c1ce38a2) lib-fts: Move ICU transliterator creation to fts-icu.h This allows others to use transliterators without so much code duplication. The transliterator still has to be destroyed by the user, with utrans_close(). M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-icu.c M src/lib-fts/fts-icu.h 2015-11-25 15:09:52 +0200 Teemu Huovila (e467b295e) lib-fts: Fix compilation for systems without libicu. The earlier patch, 194e3622d5e6, did not consider both library dependencies. M src/lib-fts/test-fts-filter.c 2015-11-24 13:42:58 +0200 Timo Sirainen (850b419ef) imap: When logging command disconnection info, log the oldest command's info (not newest) M src/imap/imap-client.c 2015-11-24 13:41:58 +0200 Timo Sirainen (117bc062e) imap: Added extra assert checks to make sure command states are consistent. M src/imap/imap-client.c M src/imap/imap-client.h 2015-11-24 13:40:12 +0200 Timo Sirainen (76c6c1127) imap: IDLE may have called client_continue_pending_input() unnecessarily. M src/imap/cmd-idle.c 2015-11-24 12:56:35 +0200 Timo Sirainen (952148e3d) imap: Fixed crash at FETCH deinit caused by b638e19d3bd4 imap_fetch_free() would have been called twice, which caused problems. M src/imap/cmd-fetch.c 2015-11-24 11:50:15 +0200 Timo Sirainen (6116f4cd5) imap: Fixed hanging if a pipelined IMAP command was waiting for previous command to sync. ..And the previous command was waiting for the next command to finish before it would start syncing. For example FETCH+LOGOUT pipelined. M src/imap/imap-client.c 2015-11-24 11:15:47 +0200 Timo Sirainen (ae32667c5) director: Fixed backend selection when multiple tags were used. The previous algorithm was causing an uneven load for backends. This change breaks compatibility with older director servers that were using tags because of the different selection algorithm. The new director code refuses to run within a cluster with old directors if tags are used. M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/director/mail-host.c M src/director/mail-host.h 2015-11-23 19:47:08 +0200 Timo Sirainen (092f7388e) director: Code cleanup - renamed hosts_unsorted to vhosts_unsorted M src/director/mail-host.c 2015-11-23 19:44:50 +0200 Timo Sirainen (e3751d400) director: Code cleanup - rename tag to tag_name in mail_host_*() parameters. In preparation for the following changes. M src/director/mail-host.c M src/director/mail-host.h 2015-11-23 19:41:38 +0200 Timo Sirainen (093b42b11) director: Code cleanup - access host->tag via mail_host_get_tag() In preparation for the following changes. M src/director/director-connection.c M src/director/director.c M src/director/doveadm-connection.c M src/director/mail-host.c M src/director/mail-host.h 2015-11-23 19:38:31 +0200 Timo Sirainen (87842f621) director: Code cleanup - make most mail_host_*() list parameters unnecessary. M src/director/director-connection.c M src/director/director.c M src/director/doveadm-connection.c M src/director/mail-host.c M src/director/mail-host.h 2015-11-23 19:35:03 +0200 Timo Sirainen (570153aa9) director: With director_consistent_hashing=yes hosts_hash wasn't always calculated right. If different servers had added hosts in different order, the hosts_hash would have become different, which caused errors and resyncs. M src/director/mail-host.c 2015-11-18 16:33:26 +0200 Teemu Huovila (d965f1c17) lib-fts: Fix compilation for systems without libstemmer. M src/lib-fts/test-fts-filter.c 2015-11-18 16:33:26 +0200 Teemu Huovila (5455a9175) fts: Remove default filters and tokenizers. There aren't any specially good defaults that work for all the languages, so it's better to just enforce explicit settings. M src/plugins/fts/fts-user.c 2015-11-19 17:43:47 +0200 Timo Sirainen (0b0285689) fs-posix: Added mode=auto parameter to copy mode from parent directory if setgid-bit is set M src/lib-fs/fs-posix.c 2015-11-19 17:19:19 +0200 Timo Sirainen (3718da941) fs-posix: Code cleanup - don't store dir_mode permanently. Cleanup in preparation for mode=auto. M src/lib-fs/fs-posix.c 2015-11-19 17:39:46 +0200 Teemu Huovila (83bd5fa0e) lib-fts: Silence clang warnings. M src/lib-fts/test-fts-filter.c M src/lib-fts/test-fts-language.c 2015-11-19 14:47:27 +0200 Timo Sirainen (31493ba1b) fts plugin: Install fts-storage.h M src/plugins/fts/Makefile.am 2015-11-19 14:46:54 +0200 Timo Sirainen (3d2d35017) lib-fs: Added fs_stats_get_read/write_usecs() These can be easily used to sum up all the timings for read and write categories. M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2015-11-18 21:06:17 +0200 Timo Sirainen (3e3cc37a7) indexer-worker: Use provided session-id only as a prefix for a unique session ID. Fixes stats process's "Duplicate session ID" errors when LMTP delivers to multiple recipients. M src/indexer/master-connection.c 2015-11-18 21:03:41 +0200 Timo Sirainen (1959accd3) lib-storage: Added mail_storage_service_input.session_id_prefix This should make it easier to pass through the original session_id to worker process sessions. Especially if these sessions are somewhat short-lived it can be useful to assign them a unique session ID while still being able to match it to the parent's session ID. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2015-11-18 20:50:55 +0200 Timo Sirainen (a5b6819fa) stats: Improved logging on invalid CONNECT input. M src/stats/mail-session.c 2015-11-18 19:15:36 +0200 Timo Sirainen (7059b9f2c) stats: Forced sending of UPDATE-SESSION every 5 minutes wasn't working. This caused stats process to forget about idling (imap) sessions if they didn't do anything for over 15 minutes. M src/plugins/stats/stats-plugin.c 2015-11-18 18:54:51 +0200 Timo Sirainen (abb242dae) stats: When logging UPDATE-SESSION stats, log also the session ID. M src/stats/mail-session.c 2015-11-18 18:10:46 +0200 Timo Sirainen (c85e266e4) lib-storage: Create ioloop context for users even if log prefix changing is disabled. This fixes stats plugin to work with lmtp, imap-urlauth and doveadm-server. M src/lib-storage/mail-storage-service.c 2015-11-18 17:45:35 +0200 Timo Sirainen (03baa1c4c) lib-master: master_service_is_master_stopped() now returns FALSE if running standalone. The only caller of this function was stats plugin to see if it should send stats updates. So this fixes dovecot-lda, doveadm and other standalone tools to send stats updates. M src/lib-master/master-service.c M src/lib-master/master-service.h 2015-11-18 14:15:32 +0200 Timo Sirainen (ce4d4d773) lib-master: Fixed timeout leak at deinit when we couldn't connect to ipc-server M src/lib-master/ipc-server.c 2015-11-18 13:12:23 +0200 Timo Sirainen (ac5a1d01f) pop3: When creating session lock file, prefer to write it to the index root dir. This is especially important for mail storage backends that don't have a mail root directory. M src/pop3/pop3-client.c 2015-11-18 13:08:57 +0200 Timo Sirainen (def598470) pop3: Send "OK Logged in" before reading mailbox. This way if the reading takes a long time, the client still sees that the login itself was successful. This is especially useful to avoid unnecessary errors logged by proxies. M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-client.h 2015-11-18 12:40:42 +0200 Timo Sirainen (249291263) imap: Disconnection log message incorrectly logged "input/output" even if only "input" was set. M src/imap/imap-client.c 2015-11-18 12:39:13 +0200 Timo Sirainen (848bc013a) imap: When disconnected during FETCH, include the last byte counts in disconnection log message. M src/imap/cmd-fetch.c M src/imap/imap-client.c 2015-11-17 19:02:13 +0200 Timo Sirainen (fdd858ac6) lib-fs: Improved fs-metawrap's fs_stat() error message. M src/lib-fs/fs-metawrap.c 2015-11-17 19:01:29 +0200 Timo Sirainen (dbe1f7e1c) lib-fs: Fixed fs_stat() for fs-metawrap M src/lib-fs/istream-metawrap.c 2015-11-17 17:26:56 +0200 Timo Sirainen (8ce3071e8) *-login: Added postlogin_socket=path passdb extra field. By default e.g. "imap" or "pop3" is the post-login socket, but this can override it. This could be used for example for per-user debugging (e.g. setting executable to be run via strace or valgrind). M src/login-common/client-common-auth.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2015-11-17 17:23:31 +0200 Timo Sirainen (9498baa8f) lib-master: master_auth_request_full() now supports per-request path. M src/lib-master/master-auth.c M src/lib-master/master-auth.h 2015-11-17 17:11:05 +0200 Timo Sirainen (2d8e25bef) lib-master: Added extensible master_auth_request_full() call. Only the API was changed, no changes to functionality. M src/lib-master/master-auth.c M src/lib-master/master-auth.h M src/login-common/sasl-server.c 2015-11-17 16:30:16 +0200 Timo Sirainen (3b4b517a5) lib-fs: Added asserts to fs_set_metadata() to make sure key and value are non-NULL Otherwise the bug would be noticed only much later when trying to dereference NULL pointer. M src/lib-fs/fs-api.c 2015-11-17 11:51:45 +0200 Teemu Huovila (6dd785e68) fts: Added fts_library_init() and _deinit() Replaces calling three different functions on init and deinit. M src/lib-fts/Makefile.am A src/lib-fts/fts-library.c A src/lib-fts/fts-library.h M src/plugins/fts/fts-plugin.c 2015-11-17 11:50:16 +0200 Teemu Huovila (4b26f71b4) lib-fts: Added fts_language_register() to register more languages in plugins. M src/lib-fts/fts-language.c M src/lib-fts/fts-language.h M src/lib-fts/test-fts-language.c 2015-11-17 11:46:49 +0200 Teemu Huovila (3e9ed1717) dovecot-config: Added LIBFTS. M configure.ac M dovecot-config.in.in M dovecot.m4 2015-11-17 11:45:44 +0200 Teemu Huovila (963e17327) lib-fts: Explicitly state encoding used for stemming. M src/lib-fts/fts-filter-stemmer-snowball.c 2015-11-17 11:45:24 +0200 Teemu Huovila (c6b75b700) lib-fts: Removed TODO comment. The call to uni_utf8_get_char_n() already does easy cases first. Adding more special code paths is not necessary. M src/lib-fts/fts-tokenizer-generic.c 2015-11-17 11:44:53 +0200 Teemu Huovila (9c34a19b6) lib-fts: Minor code cleanup - Rename some internal functions. Maybe the names are more logical this way. M src/lib-fts/fts-tokenizer-generic.c 2015-11-17 11:44:19 +0200 Teemu Huovila (3ec8b0d28) lib-fts: Add Norwegian. Norwegian has two main dialects, Bokmal(nb) and Nynorsk(nn). They are detected separately by libexttextcat, but the stemmer only knows Norwegian. Thus they are treated as a single language, Norwegian (no). This might also make more sense in everyday use of mixed writing style Norwegian. Caveat: The default normalizer filter does not modify U+00F8 (Latin Small Letter O with Stroke). In some configurations it might be desirable to rewrite it to e.g. o. Same goes for the upper case version. This can be done by passing a modified "id" setting to the normalizer filter. M src/lib-fts/Makefile.am M src/lib-fts/fts-language.c A src/lib-fts/stopwords_no.txt M src/lib-fts/test-fts-filter.c M src/lib-fts/test-fts-language.c 2015-11-17 11:43:58 +0200 Teemu Huovila (48afa4224) lib-fts: Add comment to language names. Languages are defined by their ISO 639-1 code, which is a two letters. It is possible, that some languages with only a three letter code, ie. a ISO 639-2 code, could be added in the future. M src/lib-fts/fts-language.c 2015-11-17 11:43:28 +0200 Teemu Huovila (c5effa0f1) lib-fts: Add Swedish (sv) to supported languages. M src/lib-fts/Makefile.am M src/lib-fts/fts-language.c A src/lib-fts/stopwords_sv.txt M src/lib-fts/test-fts-filter.c M src/lib-fts/test-fts-language.c 2015-11-17 11:42:59 +0200 Teemu Huovila (fd15d61d0) lib-fts: Add l' contraction to French unit test. M src/lib-fts/test-fts-filter.c 2015-11-16 14:47:18 +0200 Timo Sirainen (687fd73a7) pop3-migration: Fixed memory leak in unit test. M src/plugins/pop3-migration/test-pop3-migration-plugin.c 2015-11-16 14:46:40 +0200 Timo Sirainen (0989e8ba4) lib-mail: Fixed istream-header-filter when callback excluded multiple headers. This only affected pop3-migration plugin. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2015-11-16 14:16:00 +0200 Timo Sirainen (87c3028e9) dovecot.m4: Run valgrind with --trace-children=yes Some of the unit tests are run via shell and we want to check the unit tests instead of just the shell. M dovecot.m4 2015-11-16 14:15:02 +0200 Timo Sirainen (40569d0f6) Added Valgrind suppressions file for ignoring any bash memory leaks. Some of the unit tests are run via shell. A run-test-valgrind.supp 2015-11-16 12:40:22 +0200 Timo Sirainen (431eebad0) dovecot.m4: Added --leak-check=full to valgrind M dovecot.m4 2015-11-16 12:29:51 +0200 Phil Carmody (19ed8f08b) various - remove 8-bit characters from literal strings in test cases C has a portable way of expressing characters not in the basic character set, namely \xNN escaping. Otherwise, the interpretation of the raw utf-8 is implentation dependent. This has the benefit of making some tests' expected output more obvious, such as "=c3=a4" matching "\xC3\xA4", even if it hinders the readability of some natural-language-based tests. Signed-off-by: Phil Carmody M src/lib-charset/test-charset.c M src/lib-fts/test-fts-filter.c M src/lib-fts/test-fts-tokenizer.c M src/lib-imap/test-imap-utf7.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c 2015-11-16 12:29:21 +0200 Phil Carmody (087272dde) lib: fix memory leak of iterator in str_table_deinit() The deinit function uses an iterator, but never cleared it up. Found by Valgrind. Signed-off-by: Phil Carmody M src/lib/str-table.c 2015-11-16 12:29:09 +0200 Phil Carmody (fddfa139c) lib: make test-istream-failure-at not leak memory This permits Valgrind to run without complaint. Signed-off-by: Phil Carmody M src/lib/test-istream-failure-at.c 2015-11-16 12:27:03 +0200 Phil Carmody (2bee4c378) lib: fix memory leaks in failure-at streams The parent wasn't getting unref'ed, and would hang around for ever. Signed-off-by: Phil Carmody M src/lib/istream-failure-at.c M src/lib/ostream-failure-at.c 2015-11-16 12:26:50 +0200 Phil Carmody (ded6d6820) lib-master: stop tests from leaking memory This permits Valgrind to run without complaint. Signed-off-by: Phil Carmody M src/lib-master/test-master-service-settings-cache.c 2015-11-16 12:26:32 +0200 Phil Carmody (5968fa815) lib-http: free resources used in the tests Signed-off-by: Phil Carmody M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-transfer.c 2015-11-16 12:26:06 +0200 Phil Carmody (269627263) lib-http: ref/unref input stream in http message parser To prevent assidental disappearance of the stream while it's in use. Also, the caller can create and forget - we'll do the cleanup later. Signed-off-by: Phil Carmody M src/lib-http/http-message-parser.c 2015-11-16 12:24:53 +0200 Timo Sirainen (0de8aaf4e) imapc: Treat literal8 input the same as regular literal. This is mainly for migrating away from broken servers (a patched Cyrus) that send literal8 if a (corrupted) message contains NULs. M src/lib-imap-client/imapc-connection.c 2015-11-12 18:27:54 +0200 Timo Sirainen (02889f5ce) imap: When client disconnects during a running command, log the command wait state. M src/imap/imap-client.c 2015-11-12 12:28:58 +0200 Timo Sirainen (53c1549e6) imap: If IDLE or FETCH notices a disconnection, log the running command statistics. M src/imap/cmd-fetch.c M src/imap/cmd-idle.c M src/imap/imap-client.c 2015-11-12 12:17:04 +0200 Timo Sirainen (56eaa07a3) imap: When client disconnects during a running command, log the IO input/output wait status. This is mainly useful for debugging to make sure that the hang isn't happening because of a bug (missing io) in Dovecot. M src/imap/imap-client.c 2015-11-12 12:14:20 +0200 Timo Sirainen (7f52e276c) lib: Added io_loop_find_fd_conditions() M src/lib/ioloop.c M src/lib/ioloop.h M src/lib/test-ioloop.c 2015-11-12 11:29:29 +0200 Timo Sirainen (bb1c6e2b0) quota: When recalculating quota, don't try to access nonexistent autocreate-mailboxes. There's no need to physically create them, since they're empty anyway. M src/plugins/quota/quota-count.c 2015-11-11 17:40:23 +0200 Timo Sirainen (56dcb49a4) login proxy: If writing to ostream fails, log the ostream's error string. Although for now it's always just based on the errno anyway. M src/login-common/login-proxy.c 2015-11-11 17:35:10 +0200 Timo Sirainen (9940125be) login proxy: Include some extra information in disconnect log lines. M src/login-common/login-proxy.c 2015-11-11 13:15:30 +0200 Timo Sirainen (fb3178a19) auth: Added hardcoded 5 second timeout to LDAP connect() Although it doesn't look like the timeout is exactly 5 seconds always due to OpenSSL's internal workings, but this should be good enough. M src/auth/db-ldap.c M src/auth/db-ldap.h 2015-11-10 10:00:11 +0200 Timo Sirainen (2f57edb01) push-notification: Removed unused code. M src/plugins/push-notification/push-notification-events.h 2015-11-09 14:49:26 +0200 Timo Sirainen (8f90ef65d) virtual: Include mailbox name in "Backend mailbox added by another session." error. M src/plugins/virtual/virtual-sync.c 2015-11-09 14:11:12 +0200 Timo Sirainen (54a1b3574) auth: Don't crash when trying to use CRYPT scheme when crypt() doesn't support DES M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c 2015-11-09 13:16:50 +0200 Timo Sirainen (265cb53cf) lib-storage: Support %{userdb:*} variables in mail_home and mail_chroot settings. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c 2015-11-09 13:02:56 +0200 Timo Sirainen (1d562be5f) lib: Removed unnecessary includes from bits.h All of them are already in lib.h, and bits.h gets included from lib.h. This also solves a compiling problem for systems where stdint.h doesn't exist. M src/lib/bits.h 2015-11-09 09:31:48 +0200 Timo Sirainen (4544c7cf1) replicator: Send initial status notification to master before listing all users To avoid master process from killing us after 30 seconds if the user listing takes longer than that. M src/replication/replicator/replicator.c 2015-11-05 11:41:52 +0200 Timo Sirainen (c30bcc83a) auth: Fixed crash when using %{passdb:} or %{userdb:} functions when escape_func was NULL Patch by Michael Slusarz. M src/auth/auth-request-var-expand.c 2015-11-04 11:39:58 +0200 Phil Carmody (8dd4464c0) lib: test-istream-crlf - fix expected output strings, add more coverage Fix an out-by-one which was missing trailing carriage returns in _lf mode. Debug: input = [19]:``...........N.N....R'' Debug: output= [19]:``...........N.N....R'' Debug: data = [18]:``...........N.N....'' test-istream-crlf.c:78: Assert(#20) failed: size == str_len(output) Add some randomised tests to get better coverage of all possibilities. Signed-off-by: Phil Carmody M src/lib/test-istream-crlf.c 2015-10-27 21:54:26 -0600 Michael M Slusarz (1265ab7fd) push-notification: Fix linking against notify plugin M src/plugins/push-notification/Makefile.am 2015-10-29 15:29:24 +0200 Timo Sirainen (1c1e591e4) imap: Fixed crash in NOTIFY when there were watched namespaces that didn't support NOTIFY. M src/imap/imap-notify.c 2015-10-29 15:06:16 +0200 Timo Sirainen (5b945a474) dsync: Fixed handling of deleted directories. We may still know about the directory node even if it doesn't exist, and we still want to delete it. M src/doveadm/dsync/dsync-mailbox-tree-fill.c 2015-10-29 14:09:52 +0200 Timo Sirainen (d3b2c07f9) auth: Avoid a crash by not trying to save empty delayed credentials. M src/auth/auth-request.c 2015-10-29 12:55:20 +0200 Timo Sirainen (e293d46ff) acl: acl_object_list_*() now duplicates rights at init to avoid them changing during listing. Depending on the calling code the acl_object could have been refreshed during the listing and caused bugs/crashes. This fixes a crash at least in mailbox deletion during attribute deletion where iter->idx was higher (2) than the number of rights at the time (0). M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c 2015-10-28 12:28:12 +0200 Timo Sirainen (3cad7d363) auth: Typofix for error message. M src/auth/auth-master-connection.c 2015-10-28 12:25:08 +0200 Timo Sirainen (0401fa677) auth: nopassword field is specific to a single passdb, remove before next passdb is processed M src/auth/auth-request.c 2015-10-27 23:56:48 +0200 Timo Sirainen (00a50d6dc) lib-mail, fts: Put application/xhtml+xml MIME parts through html parser as well. M src/lib-mail/mail-html2text.h M src/lib-mail/message-snippet.c M src/lib-mail/test-message-snippet.c M src/plugins/fts/fts-parser-html.c 2015-10-26 17:20:49 +0200 Timo Sirainen (8c6884ab6) acl: If mailbox is autocreated, assume it already exists and don't require "create" ACL M src/plugins/acl/acl-mailbox.c 2015-10-26 16:28:51 +0200 Timo Sirainen (fca5548c5) acl: Fixed handling mailbox deletion when only "delete" right was available. So especially when there were no "lookup" or "read" rights. M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-mailbox.c 2015-10-23 15:21:15 +0300 Timo Sirainen (75b4cc305) auth: Fixed userdb changing username via auth-worker M src/auth/auth-worker-client.c M src/auth/userdb-blocking.c 2015-10-22 16:59:01 +0300 Timo Sirainen (2f564433c) notify plugin: Don't access already freed memory. In the same changeset I even added a comment just above that it shouldn't be accessed.. M src/plugins/notify/notify-storage.c 2015-10-22 13:55:27 +0300 Timo Sirainen (6b0e35b29) quota-dict: Added "no-unset" parameter. M src/plugins/quota/quota-dict.c 2015-10-21 19:12:45 +0300 Timo Sirainen (453278403) LAYOUT=index: Fixed error handling in mailbox creation race condition. If two processes create the same mailbox, the other one ends up being deleted on failure. However, if the deletion itself also failed the state becomes a big ambiguous. We don't want to return MAIL_ERROR_EXISTS in that case, because the caller may try to open the mailbox with the inconsistent state and fail. So we'll instead return the original mailbox_delete() error to the caller. M src/lib-storage/list/mailbox-list-index-backend.c 2015-10-21 15:50:31 +0300 Timo Sirainen (e03c02db6) login proxy: Separate admin kicks, director kicks and shutdowns in log messages. M src/login-common/login-proxy.c 2015-10-21 13:32:58 +0300 Timo Sirainen (ea6bcfde3) ssl_options: Added support for no_ticket M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-ssl.h M src/login-common/ssl-proxy-openssl.c 2015-10-20 21:23:03 +0300 Timo Sirainen (3d8059535) doveadm fs: Log also the exact reason for "file doesn't exist" M src/doveadm/doveadm-fs.c 2015-10-20 20:15:20 +0300 Timo Sirainen (6477a2edb) dict: Show number of clients in process title M src/dict/main.c 2015-10-20 18:43:32 +0300 Timo Sirainen (a7d68c0a6) lib-index: tail_offset wasn't updated as often as it should have been. ctx->last_tail_offset was being increased for every non-external transaction and at the end we checked if head was larger than it. This logic didn't really make any sense, since non-external transactions specifically were supposed to update the tail_offset. M src/lib-index/mail-index-sync.c 2015-10-20 18:22:53 +0300 Timo Sirainen (8da332203) lib-imap-storage: Mark METADATA transactions as external. We never write the metadata values to any storage backend, so they also don't need to be explicitly synced. M src/lib-imap-storage/imap-metadata.c 2015-10-20 17:07:20 +0300 Timo Sirainen (2d3342939) mysql: Added connect/read/write_timeout settings. Default to 30s read/write_timeout. M src/lib-sql/driver-mysql.c 2015-10-20 16:57:34 +0300 Timo Sirainen (e180615c1) mysql: Fixed client_flags parameter M src/lib-sql/driver-mysql.c 2015-10-20 16:56:23 +0300 Timo Sirainen (9250f1bc4) mysql: Use the correct way of setting a connect timeout. I'm not sure if this didn't exist earlier, or if I just somehow missed it. M src/lib-sql/driver-mysql.c 2015-10-20 15:29:07 +0300 Timo Sirainen (14b1d2a26) dsync: Added DSYNC_BRAIN_FLAG_NO_NOTIFY to enable MAILBOX_TRANSACTION_FLAG_NO_NOTIFY It's arguable that this should be enabled by default, but people might like to keep mail_log notifications for dsync. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2015-10-20 15:27:42 +0300 Timo Sirainen (8ccb1a013) lib-storage/notify: Added MAILBOX_TRANSACTION_FLAG_NO_NOTIFY This flag could potentially apply for other things as well, not just notify plugin. In general anything that could do external notifications shouldn't do anything for transactions with this flag. M src/lib-storage/mail-storage.h M src/plugins/notify/notify-storage.c 2015-10-20 13:12:24 +0300 Timo Sirainen (4ca910c09) dict-sql: Fixed async iteration with MySQL and SQLite M src/lib-dict/dict-sql.c 2015-10-20 00:25:14 +0300 Timo Sirainen (5f7fcc523) lib-charset: Added UTF-7 iconv() unit test Possibly crashes on FreeBSD? Not verified yet. But a good test in any case. M src/lib-charset/test-charset.c 2015-10-20 00:23:56 +0300 Timo Sirainen (e9257b0d3) lib-charset: Run iconv unit tests by giving iconv() new data 1 byte at a time. M src/lib-charset/test-charset.c 2015-10-19 14:29:10 +0300 Timo Sirainen (d464e2ef8) imapc: Set storage's error to "internal error" if we detect mailbox state corruption. This fixes "unknown internal error" in at least syncing code when an expunged message reappears. M src/lib-storage/index/imapc/imapc-mailbox.c 2015-10-19 14:05:26 +0300 Timo Sirainen (a03a29b0b) lib: net_gethostbyname() now supports [ipv6] style bracketed addresses. M src/lib/net.c 2015-10-19 14:04:46 +0300 Timo Sirainen (a05375f23) director: Fix to previous change - mail_host_dup() wasn't strdup()ing hostname. This could have caused a crash at deinit. M src/director/mail-host.c 2015-10-19 13:49:54 +0300 Timo Sirainen (9de5eb9e1) director: Remember backends' hostnames and send them in login reply. This allows login processes to verify the remote server's hostname in SSL certificate. M src/director/director-connection.c M src/director/director-request.c M src/director/director-request.h M src/director/director.c M src/director/login-connection.c M src/director/mail-host.c M src/director/mail-host.h 2015-10-19 13:40:52 +0300 Timo Sirainen (c5279d575) director: Small code cleanup - make it easier to add parameters to HOST M src/director/director-connection.c 2015-10-19 13:37:25 +0300 Timo Sirainen (616c36034) man: Changed "pattern" to "string" in doveamd-search-query(7) M doc/man/doveadm-search-query.7 2015-10-15 14:44:03 +0300 Phil Carmody (47dba7db7) lib-mail: fix html2text parser Silly typo. Fixes bug reported on dovecot list by Akash on Oct 14. Signed-off-by: Phil Carmody M src/lib-mail/mail-html2text.c 2015-10-14 17:34:23 +0300 Timo Sirainen (dad72548f) dsync: If rename algorithm seems go to an infinite loop, log an error and stop. Ideally we would of course fix the algorithm (especially to not require this kind of looping). M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2015-10-14 17:28:11 +0300 Timo Sirainen (63a570107) imap/pop3-login: If LOGIN/USER is used with plaintext auth disabled, remember the username for logging. It's still useful to see the username that was sent in the logout message. This won't work for AUTHENTICATE PLAIN, but hopefully the clients that use it understand the LOGINDISABLED capability better. M src/imap-login/client-authenticate.c M src/pop3-login/client-authenticate.c 2015-10-14 14:06:35 +0300 Timo Sirainen (1128c1144) cassandra: Added read/write/delete_fallback_consistency settings. The fallback is attempted if the primary consistency can't be satisfied. One useful use case for this is to have: write_consistency=each-quorum write_fallback_consistency=local-quorum Which means that during regular operation all writes go to all data centers before they are finished, but if one of the data centers go down we'll switch to just waiting for local data center writes to finish. M src/lib-sql/driver-cassandra.c 2015-10-14 13:32:02 +0300 Timo Sirainen (ce79dd496) dict-sql: dict_lookup_async() didn't call callback on query build failures. M src/lib-dict/dict-sql.c 2015-10-13 21:57:29 +0300 Timo Sirainen (4cce36128) lib-storage: Support latest cache fields in struct mailbox_metadata.precache_fields M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-status.c 2015-10-13 21:40:33 +0300 Timo Sirainen (c24ef1e78) imap: APPEND crashed if invalid keyword was given as parameter. M src/imap/cmd-append.c 2015-10-13 21:21:48 +0300 Timo Sirainen (9e56d7403) auth ldap: If tls_* settings are used, pass them to LDAP library even if tls=no Most importantly this allows using the settings for ldaps URLs. And they hopefully won't hurt anything if neither STARTTLS nor ldaps are used. M src/auth/db-ldap.c 2015-10-13 20:41:36 +0300 Timo Sirainen (72fc989c4) lib: uri_parser_init() wasn't using pool parameter for anything. Now everything is allocated from it instead of from data stack. M src/lib/uri-util.c 2015-10-13 20:40:38 +0300 Timo Sirainen (b0c9213ef) dict-sql: Added support for value_type field, which deprecates value_hexblob. value_type=string|hexblob|uint are supported now. M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql-settings.h M src/lib-dict/dict-sql.c 2015-10-13 20:39:50 +0300 Timo Sirainen (b096ecf31) cassandra: Added support for returning "int" type values. It looks like we need to explicitly convert all types to strings. M src/lib-sql/driver-cassandra.c 2015-10-13 13:44:48 +0300 Timo Sirainen (fb1927dad) auth: passwd-file now stat()s the file max once per second. It's quite unnecessary to do it more often. M src/auth/db-passwd-file.c M src/auth/db-passwd-file.h 2015-10-12 17:12:17 +0300 Timo Sirainen (1126bfe4e) fs-dict: Implemented hex-encoding for values. M src/lib-fs/fs-dict.c 2015-10-12 15:57:42 +0300 Timo Sirainen (9054b5f92) director: Log a warning if directors' clocks are too much out of sync. M src/director/director-connection.c 2015-10-12 15:47:46 +0300 Timo Sirainen (abe29107f) director: Detect if directors' hosts have become desynced by sending hosts_hash in SYNC parameter. Also fix up such a situation by resending all HOSTs. M src/director/director-connection.c M src/director/director-host.h M src/director/director.c M src/director/director.h 2015-10-12 15:41:55 +0300 Timo Sirainen (1574df6b0) director: Use mail_hosts_hash() to improve debug log messages. M src/director/director-connection.c M src/director/director-request.c M src/director/director.c 2015-10-12 15:41:25 +0300 Timo Sirainen (131cb5910) director: Added mail_hosts_hash(), which identifies the current mail_hosts configuration. M src/director/mail-host.c M src/director/mail-host.h 2015-10-12 15:39:36 +0300 Timo Sirainen (417885782) director: Added another debug log message. M src/director/director-request.c 2015-10-11 18:45:58 +0300 Timo Sirainen (dd81d8857) director: Small code cleanup - make it easier to add parameters to SYNC M src/director/director-connection.c 2015-10-10 18:32:56 +0300 Timo Sirainen (28789c7ce) director: Don't allow doveadm to update backend's state if the state is already being changed. M src/director/doveadm-connection.c 2015-10-10 18:32:06 +0300 Timo Sirainen (8752573c4) director: Don't become desynced if two directors change the same backend in incompatible ways. This would have caused "User hash .. is being redirected to two hosts" errors, which wouldn't easily go away as the directors have a different view of what hosts currently exist. M src/director/director-connection.c M src/director/director.c M src/director/mail-host.c M src/director/mail-host.h 2015-10-06 18:17:45 +0300 Timo Sirainen (fc61333d2) lib-http: Minor improvement to "disconnected during payload read" error message. The same error is also used for http-server for parsing client input, so the message shouldn't say anything about reading the input from server. M src/lib-http/http-message-parser.c 2015-10-06 18:14:05 +0300 Stephan Bosch (7387c86ae) lib-http: client: Fixed handling of response timout if there is no payload going to the server. M src/lib-http/http-client-request.c 2015-10-04 21:52:29 +0300 Timo Sirainen (2988b4cbf) lib-index: Removed some unnecessary fields. M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-write.c 2015-10-04 21:51:55 +0300 Timo Sirainen (1937094f5) lib-index: Fixed checking when we want to update dovecot.index This has been broken since 76f576fc28dc. After that dovecot.index was usually updated only when dovecot.index.log was being rotated. M src/lib-index/mail-index-sync.c 2015-10-04 21:49:08 +0300 Timo Sirainen (44d77d20c) lib-index: When writing new index, rotate the log file first before writing it. This way the index contains the new log's seq+offset instead of having to recreate the index almost immediately afterwards. M src/lib-index/mail-index-write.c 2015-10-02 19:02:47 +0300 Timo Sirainen (568920fe5) Added signature for changeset d7e14d388a7e M .hgsigs 2015-10-02 19:02:43 +0300 Timo Sirainen (487191a51) Added tag 2.2.19 for changeset d7e14d388a7e M .hgtags 2015-10-02 19:02:42 +0300 Timo Sirainen (bff2170a9) Released v2.2.19. M NEWS M configure.ac 2015-10-02 18:30:22 +0300 Timo Sirainen (d54067d8e) pop3: Fixed buffer overflow with handling pop3_deleted_flag setting. This has been broken since v2.2.10, although the setting wasn't working completely correctly before that version either. Afterwards it should have become obvious quickly enough that the setting is broken, because it started crashing POP3 sessions in normal use quite soon. So I doubt there are any installations that are accidentally exploitable. M src/pop3/pop3-client.c M src/pop3/pop3-client.h M src/pop3/pop3-commands.c 2015-10-02 12:23:22 +0300 Timo Sirainen (630c1df5b) push-notification: Use setting_get_time() parsing for cache_lifetime OX driver setting. M src/plugins/push-notification/Makefile.am M src/plugins/push-notification/push-notification-driver-ox.c 2015-10-02 12:16:11 +0300 Timo Sirainen (923e21784) push-notification: Compiler warning fix. M src/plugins/push-notification/push-notification-driver-ox.c 2015-10-02 12:10:41 +0300 Timo Sirainen (fe1fb4c86) push-notification: Allow drivers to set only "key" without "=value" to parameters. M src/plugins/push-notification/push-notification-drivers.c 2015-10-02 12:09:30 +0300 Timo Sirainen (0f58da3fd) push-notification: Added timeout_msecs and max_retries parameters to OX driver. For configuring HTTP lookups. M src/plugins/push-notification/push-notification-driver-ox.c 2015-10-02 11:46:30 +0300 Timo Sirainen (101becc10) push-notification: Don't allocate cached metadata from memory pool in OX driver. It slowly keeps increasing memory usage over time. M src/plugins/push-notification/push-notification-driver-ox.c 2015-10-02 11:17:53 +0300 Timo Sirainen (f61bbf70e) push-notification: OX driver error handling fix - garbage metadata was returned on failure. M src/plugins/push-notification/push-notification-driver-ox.c 2015-10-01 21:02:55 -0600 Michael Slusarz (8b4073f4a) push-notification: Add cache lifetime config parameter to OX driver M src/plugins/push-notification/push-notification-driver-ox.c 2015-10-01 20:49:20 -0600 Michael Slusarz (41dc355b0) push-notification: OCD fix for lining up function parameters M src/plugins/push-notification/push-notification-plugin.c 2015-10-02 11:13:14 +0300 Timo Sirainen (33cbadf01) push-notification: Removed optimization to init drivers only once. Different users may have different drivers. And the previous metadata-caching change especially isn't working without this change. M src/plugins/push-notification/push-notification-driver-ox.c M src/plugins/push-notification/push-notification-drivers.h M src/plugins/push-notification/push-notification-plugin.c 2015-10-01 13:48:24 +0300 Timo Sirainen (da2423165) push-notification: Free all events at plugin deinit. M src/plugins/push-notification/push-notification-events-rfc5423.c M src/plugins/push-notification/push-notification-events-rfc5423.h M src/plugins/push-notification/push-notification-plugin.c 2015-10-01 13:45:17 +0300 Timo Sirainen (cad784f10) push-notification: Allow OX driver to use "user" from METADATA only if user_from_metadata is set. Otherwise users could send push-notifications to each others' if imap_metadata=yes. M src/plugins/push-notification/push-notification-driver-ox.c 2015-10-01 12:49:25 +0300 Timo Sirainen (dfebce684) push-notification: Cache the metadata lookup in OX driver. M src/plugins/push-notification/push-notification-driver-ox.c 2015-10-01 12:34:43 +0300 Timo Sirainen (3e13cdffb) push-notification: Don't crash at ox driver cleanup if init() hadn't been called. M src/plugins/push-notification/push-notification-driver-ox.c 2015-09-30 18:22:52 -0600 Michael Slusarz (e7e9ca33a) push-notification: Improved struct naming of driver list data M src/plugins/push-notification/push-notification-drivers.h M src/plugins/push-notification/push-notification-plugin.c 2015-09-30 17:59:07 -0600 Michael Slusarz (f6fb60c7d) push-notification: On-demand initialization of transaction data M src/plugins/push-notification/push-notification-drivers.h M src/plugins/push-notification/push-notification-plugin.c 2015-09-30 17:49:24 -0600 Michael Slusarz (cf93f9d7d) push-notification: Fix infinite recursive loop in OX driver M src/plugins/push-notification/push-notification-driver-ox.c 2015-09-30 17:45:49 -0600 Michael Slusarz (3cbb235b0) push-notification: If other drivers triggered a non-MessageNew successful event, don't assert M src/plugins/push-notification/push-notification-driver-ox.c 2015-09-30 17:43:20 -0600 Michael Slusarz (4ee5a85e7) push-notification: Fix distinguishing between IMAP APPEND and MTA deliveries M src/plugins/push-notification/push-notification-plugin.c 2015-09-30 18:50:09 +0300 Timo Sirainen (7d56dc75f) doveadm fetch: Added "storageid" field. M src/doveadm/doveadm-mail-fetch.c 2015-09-30 18:49:39 +0300 Timo Sirainen (5eb85ec95) lib-storage: Renamed MAIL_FETCH_UIDL_FILE_NAME to MAIL_FETCH_STORAGE_ID. Keep MAIL_FETCH_UIDL_FILE_NAME for backwards compatibility for now. M src/lib-storage/index/index-mail.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage.h M src/pop3/pop3-commands.c 2015-09-30 18:11:53 +0300 Timo Sirainen (b5f00248a) dict-sql: Added support for "uint" field type. M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql-settings.h M src/lib-dict/dict-sql.c 2015-09-30 17:38:12 +0300 Timo Sirainen (3e59d3393) dict-sql: Added support for extensible field types. M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql-settings.h M src/lib-dict/dict-sql.c 2015-09-29 21:02:37 +0300 Timo Sirainen (43da9b961) fts-solr: Removed Content-Type header from "select" requests to fix Solr v5.1. M src/plugins/fts-solr/solr-connection.c 2015-09-28 23:39:31 +0300 Timo Sirainen (36af6ff6b) lib: s/EDEADLOCK/EDEADLK/ It felt wrong since the beginning, but my first attempt at EDEADLCK didn't work and EDEADLOCK did. Of course, not everywhere. M src/lib/file-lock.c 2015-09-28 17:26:04 +0300 Timo Sirainen (d228839c1) Added signature for changeset 7a5726201e40 M .hgsigs 2015-09-28 17:26:00 +0300 Timo Sirainen (93ca503c9) Added tag 2.2.19.rc2 for changeset 7a5726201e40 M .hgtags 2015-09-28 17:25:59 +0300 Timo Sirainen (d664d6bfe) Released v2.2.19.rc2. M configure.ac 2015-09-28 16:37:37 +0300 Timo Sirainen (9d44feefe) quota: Fix to previous commit - counting quota-disabled-storages may have returned random failures. M src/plugins/quota/quota-count.c 2015-09-28 16:20:02 +0300 Timo Sirainen (9e99739b1) quota: Fixed "count" backend to ignore storages that have quota disabled. For example virtual mailboxes shouldn't be counted in quota. M src/plugins/quota/quota-count.c 2015-09-28 16:17:13 +0300 Timo Sirainen (d46f8fb3c) quota: The new quota counting code was counting only the last mailbox. M src/plugins/quota/quota-count.c 2015-09-28 16:15:00 +0300 Timo Sirainen (adbaf368e) virtual plugin: Fixed assert-crash on mailbox_status() if virtual mailbox wasn't opened yet. We no longer require that mailboxes must not be auto-opened. M src/plugins/virtual/virtual-storage.c 2015-09-28 16:13:00 +0300 Timo Sirainen (ca203035e) virtual plugin: Fixed crash on mailbox_status() if virtual mailbox wasn't opened yet. mbox->backend_boxes is initialized only when mailbox is opened. M src/plugins/virtual/virtual-storage.c 2015-09-28 16:07:12 +0300 Timo Sirainen (ddd7c3b36) quota: doveadm quota recalc works now for "count" backend by rebuilding vsize header. M src/plugins/quota/quota-count.c 2015-09-28 16:06:43 +0300 Timo Sirainen (88b06199c) quota: Code cleanup - abstract out iteration of mailboxes related to a quota root. M src/plugins/quota/quota-count.c 2015-09-28 15:51:45 +0300 Timo Sirainen (8e0eb6a0c) lib: Using istream-timeout with timeout disabled caused excessive CPU usage. M src/lib/istream-timeout.c 2015-09-28 15:10:29 +0300 Timo Sirainen (c9ac17980) lib-storage: Added assert - mailbox has to be open when starting vsize header update. M src/lib-storage/index/index-mailbox-size.c 2015-09-28 15:10:02 +0300 Timo Sirainen (07ddf7a92) lib-storage: Don't try to update index vsize if syncing failed. M src/lib-storage/index/index-sync.c 2015-09-28 15:00:04 +0300 Timo Sirainen (1492e7c2c) lib-http: Don't silently truncate response payload if server disconnects during it. M src/lib-http/http-message-parser.c 2015-09-28 14:59:04 +0300 Timo Sirainen (8e7ea0291) lib: Added i_stream_create_sized_with_callback(). The callback returns the wanted error string. M src/lib/istream-sized.c M src/lib/istream-sized.h 2015-09-28 14:41:15 +0300 Timo Sirainen (5e0607406) lib: When destroying istream-sized stream, it seeks the parent input at the end offset. This is also how istream-limit works. M src/lib/istream-sized.c 2015-09-28 14:34:05 +0300 Timo Sirainen (d08e49550) lib-http: When receiving unexpected input in HTTP response, include a longer snippet of it in the error. M src/lib-http/http-response-parser.c 2015-09-28 13:54:28 +0300 Timo Sirainen (e9228a391) lib-http: Added asserts to all refcount increments. These could catch situations where an already freed object's refcount is attempted to be increased. M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c M src/lib-http/http-server-connection.c M src/lib-http/http-server-request.c 2015-09-28 13:53:22 +0300 Timo Sirainen (76beac266) lib-http: Avoid crashes when server is already disconnected. I'm not sure if this is the nicest fix, but seems to work for now at least. M src/lib-http/http-client-connection.c 2015-09-28 13:51:49 +0300 Timo Sirainen (e312e229f) lib-http: Disconnection from HTTP server could have caused accessing already freed memory. Freeing a request could have freed the connection. M src/lib-http/http-client-connection.c 2015-09-28 12:33:33 +0300 Timo Sirainen (169b67920) quota: Avoid crash in quota_root_iter_init() if mailbox has no quota enabled. This allows quota_get_mail_user_quota() to be called even when quota doesn't exist. Cleaned up all the code using it to now check for the NULL result. This fixes a crash in quota_clone plugin. M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2015-09-28 12:19:20 +0300 Timo Sirainen (f39a06c37) quota-clone: Memory leak fix when mailbox had no quota roots. M src/plugins/quota-clone/quota-clone-plugin.c 2015-09-27 21:48:34 +0300 Timo Sirainen (6b88b35aa) push-notification: Log about unexpectedly failing mailbox functions. Found by Coverity. M src/plugins/push-notification/push-notification-driver-ox.c M src/plugins/push-notification/push-notification-event-mailboxcreate.c 2015-09-27 21:42:17 +0300 Timo Sirainen (81623c8ec) Added NULL-check asserts to make static analyzer happier. These shouldn't be happening. M src/config/doveconf.c M src/plugins/push-notification/push-notification-driver-ox.c 2015-09-27 21:34:48 +0300 Timo Sirainen (a030246e8) lib-storage: Removed unnecessary code - nnode is never NULL at this point. Found by Coverity. M src/lib-storage/list/mailbox-list-index-notify.c 2015-09-27 21:33:30 +0300 Timo Sirainen (bd78cb1d7) dsync: Removed unnecessary code - cur_mail is never NULL at this point. Found by Coverity. M src/doveadm/dsync/dsync-mailbox-import.c 2015-09-27 21:30:56 +0300 Timo Sirainen (948b685d8) imapc: Fixed crash if imapc_host or imapc_password setting was missing. Instead of giving a nice error message about it. Found by Coverity. M src/lib-storage/index/imapc/imapc-list.c 2015-09-27 21:28:25 +0300 Timo Sirainen (7fb4bc035) dict-client: Avoid crash if server disconnects during transaction commit. Found by Coverity. M src/lib-dict/dict-client.c 2015-09-27 21:25:59 +0300 Timo Sirainen (a7d14da6c) *-login: Session ID generator wasn't encoding remote port number correctly to it. The upper 8bits of the port number were always written as 0. This could have lead to duplicate session ID strings in some rare cases. Found by Coverity. M src/login-common/client-common.c 2015-09-27 20:47:20 +0300 Timo Sirainen (37ed92c2c) lib-http: Avoid compiler warnings in printf() strings. Cast fields explicitly as long, which should be large enough. M src/lib-http/http-server-connection.c 2015-09-27 20:46:29 +0300 Timo Sirainen (a326f9da3) Fixed compiler warnings in some systems. major() and minor() are unsigned ints nowadays, but in Solaris it's major_t. Cast them explicitly to avoid compiler warnings, and use unsigned longs instead of unsigned ints just in case. M src/imap-hibernate/imap-client.c M src/imap/imap-client-hibernate.c M src/imap/imap-master-client.c 2015-09-27 19:03:31 +0300 Timo Sirainen (648a6034e) Make static analyzer happier. M src/lib-mail/test-message-id.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/mail-namespace.c 2015-09-27 18:58:08 +0300 Timo Sirainen (9229d5ecc) lib-http: Removed "pure" attribute from http_header_field_find_unique(). It's a bit questionable if returning a pointer via parameter is allowed for a pure function. Also having this attribute seems to confuse clang static analyzer, because it gives false positives for code using http_header_field_find_unique(). It's not important for performance anyway, so better to avoid using it. M src/lib-http/http-header.h 2015-09-25 18:16:56 +0300 Timo Sirainen (e7b5b7149) dict-sql: If value isn't a hexblob as expected, log an error instead of killing the whole process. M src/lib-dict/dict-sql.c 2015-09-24 20:58:04 +0300 Timo Sirainen (be59f9ae9) cassandra: copy&paste mistake - use monotonic timestamp generator, not server side.. M src/lib-sql/driver-cassandra.c 2015-09-24 20:51:16 +0300 Timo Sirainen (f9eee3653) cassandra: Added "version" parameter to specify a protocol version. Mainly to avoid warnings logged when connecting to an older Cassandra server. M src/lib-sql/driver-cassandra.c 2015-09-24 20:28:51 +0300 Timo Sirainen (4d10133c6) doveconf: Don't if _password value is empty, don't hide it. M src/config/doveconf.c 2015-09-24 19:40:41 +0300 Timo Sirainen (f0e416aa4) cassandra: Use a local monotonic timestamp generator. Otherwise we run into race conditions on server side timestamps, which cause problems. M src/lib-sql/driver-cassandra.c 2015-09-24 19:27:10 +0300 Timo Sirainen (dd37e2ff2) virtual plugin: Auto-close mailboxes by hooking into backend's mailbox_open() This is a more reliable way of doing it. The earlier version had problems that all the backend mailboxes could be opened when doing a search on the virtual mailbox (for getting the GUID of the mailboxes). M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c 2015-09-24 19:07:12 +0300 Timo Sirainen (9cb0fe28a) virtual plugin: Fixed assert-crash when closing a virtual mailbox consisting of many real mailboxes. M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2015-09-24 18:42:58 +0300 Timo Sirainen (38f51958d) dict-client: Verify that the correct transaction ID is returned for commit reply. M src/lib-dict/dict-client.c 2015-09-24 18:41:48 +0300 Timo Sirainen (54a8bb6e9) quota: Avoid triggering quota recalc in dict transaction commit callback. This mainly causes trouble if it again does more dict accesses. M src/plugins/quota/quota-dict.c 2015-09-24 16:41:10 +0300 Timo Sirainen (ccd8afd85) pgsql: Avoid crash in multi-command transaction if one of the queries couldn't be sent to server. M src/lib-sql/driver-pgsql.c 2015-09-24 16:30:23 +0300 Timo Sirainen (169351147) indexer: Use a slightly different session ID than the session that requested indexing. Required to avoid "duplicate session ID" errors in stats process. Alternative would have been to change the stats protocol a bit and always send the service name along with session ID, and use those two together as the primary key. Maybe this could be done in future if we get more of these kind of processes. M src/indexer/master-connection.c 2015-09-24 16:16:43 +0300 Timo Sirainen (154ee3563) doveconf: Unless -P parameter is used, hide all keys ending with "_password" A little bit ugly way, but implementing a proper SET_PASSWORD type was getting too difficult with the current config code. Then again as a bonus this also hides plugin { *_password } settings, if there are any, which wouldn't have been possible with SET_PASSWORD. M src/config/doveconf.c 2015-09-24 15:19:53 +0300 Timo Sirainen (f67a12c7a) lib: Fixed __builtin_object_size() usage in buffer.h With type=3 size for unknown objects is set to 0, which causes a compiler failure. With type=1 it's (size_t)-1, which passes the check. M src/lib/buffer.h 2015-09-24 12:32:24 +0300 Timo Sirainen (f990dde09) Don't try to pass through void function's return value I wish gcc or clang complained about these. M src/lib-dict/dict.c M src/lib-settings/settings-parser.c 2015-09-24 10:11:29 +0300 Timo Sirainen (9366a287a) push-notification: Added missing newlines to end of files to prevent compiler warnings. M src/plugins/push-notification/push-notification-driver-dlog.c M src/plugins/push-notification/push-notification-drivers.c M src/plugins/push-notification/push-notification-event-flagsset.c M src/plugins/push-notification/push-notification-event-messageappend.c M src/plugins/push-notification/push-notification-event-messageexpunge.c M src/plugins/push-notification/push-notification-event-messageread.h M src/plugins/push-notification/push-notification-events-rfc5423.c M src/plugins/push-notification/push-notification-events.c 2015-09-24 01:13:36 +0300 Timo Sirainen (b087ad415) master: stdlib.h wasn't supposed to be removed from systemd's sd-daemon.c It's not using our lib.h M src/master/sd-daemon.c 2015-09-24 01:04:00 +0300 Timo Sirainen (d1a0845ae) pgsql: Fixed committing a single sql_update_get_rows() transaction. The rows weren't being set. M src/lib-sql/driver-pgsql.c 2015-09-24 01:02:32 +0300 Timo Sirainen (e8db44d3d) pgsql: Fixed committing multiple transactions. This code is quite horrible and could use a larger redesign. But it appears to be working for now.. M src/lib-sql/driver-pgsql.c 2015-09-24 01:00:45 +0300 Timo Sirainen (191eb75dd) lib-sql: sqlpool needs to change transaction queries' transaction pointer Otherwise query->trans points to the sqlpool's transaction, while our backends want it to point to the backend's transaction. M src/lib-sql/driver-sqlpool.c 2015-09-23 23:01:27 +0300 Timo Sirainen (563b8bb42) dict: Include PID in the log prefix. M src/dict/main.c 2015-09-23 23:00:30 +0300 Timo Sirainen (2333ef65e) dict-client: Improved broken iterate reply logging. M src/lib-dict/dict-client.c 2015-09-23 22:59:55 +0300 Timo Sirainen (9e7a30991) dict-client: If dict iteration was aborted, the rest of the connection state became broken. We never continued skipping over the rest of the iteration, instead the iteration replies were treated as replies to the following commands. M src/lib-dict/dict-client.c 2015-09-23 22:57:55 +0300 Timo Sirainen (7e74fadc6) dict-client: Catch more invalid protocol replies. M src/lib-dict/dict-client.c 2015-09-23 22:49:41 +0300 Timo Sirainen (feac4d832) dict-client: Disconnect from server on unexpected errors. M src/lib-dict/dict-client.c 2015-09-23 16:10:27 +0300 Timo Sirainen (76f6d8b6c) Added signature for changeset 60057d955db3 M .hgsigs 2015-09-23 16:10:24 +0300 Timo Sirainen (18ceb7ad3) Added tag 2.2.19.rc1 for changeset 60057d955db3 M .hgtags 2015-09-23 16:10:24 +0300 Timo Sirainen (782ad0e4b) Released v2.2.19.rc1. M NEWS M configure.ac 2015-09-23 16:09:47 +0300 Timo Sirainen (504337186) virtual: The virtual index may have sometimes been unnecessarily deleted. Due to uninitialized broken_r value. M src/plugins/virtual/virtual-sync.c 2015-09-23 16:08:33 +0300 Timo Sirainen (2d07c751b) example-config: Added imap_hibernate_timeout M doc/example-config/conf.d/20-imap.conf 2015-09-23 14:52:45 +0300 Teemu Huovila (814bf6745) Remove now-unnecessary direct stdlib.h #includes. M src/anvil/anvil-connection.c M src/anvil/main.c M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-token.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/checkpassword-reply.c M src/auth/db-checkpassword.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-gssapi.c M src/auth/mech-scram-sha1.c M src/auth/mech-winbind.c M src/auth/mech.c M src/auth/passdb-blocking.c M src/auth/passdb-cache.c M src/auth/passdb-dict.c M src/auth/passdb-ldap.c M src/auth/passdb-pam.c M src/auth/passdb-sql.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-scram.c M src/auth/userdb-blocking.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-parser.c M src/config/doveconf.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/director/director-test.c M src/director/test-user-directory.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-pw.c M src/doveadm/doveadm-replicator.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/imap-hibernate/imap-hibernate-settings.c M src/imap-login/client-authenticate.c M src/imap-login/imap-proxy.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-fetch.c M src/imap/cmd-select.c M src/imap/cmd-store.c M src/imap/imap-client.c M src/imap/imap-commands.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/main.c M src/indexer/indexer-client.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-compression/test-compression.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-randomfail.c M src/lib-fts/test-fts-tokenizer.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-view-sync.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-lda/duplicate.c M src/lib-lda/mail-send.c M src/lib-mail/istream-header-filter.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/test-message-header-decode.c M src/lib-master/master-auth.c M src/lib-master/master-login-auth.c M src/lib-master/master-service-settings.c M src/lib-master/master-service.c M src/lib-master/test-master-service-settings-cache.c M src/lib-otp/otp-parse.c M src/lib-settings/settings-parser.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/sql-api.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-md5-all.c M src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-user.c M src/lib-storage/mailbox-header.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/mailbox-watch.c M src/lib-test/test-common.c M src/lib/abspath.c M src/lib/array.c M src/lib/backtrace-string.c M src/lib/compat.c M src/lib/data-stack.c M src/lib/env-util.c M src/lib/failures.c M src/lib/file-dotlock.c M src/lib/home-expand.c M src/lib/hostpid.c M src/lib/lib.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mmap-anon.c M src/lib/module-dir.c M src/lib/net.c M src/lib/process-title.c M src/lib/rand.c M src/lib/randgen.c M src/lib/restrict-access.c M src/lib/test-array.c M src/lib/test-base32.c M src/lib/test-base64.c M src/lib/test-buffer.c M src/lib/test-data-stack.c M src/lib/test-hash.c M src/lib/test-istream-concat.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-llist.c M src/lib/test-numpack.c M src/lib/test-ostream-file.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-strfuncs.c M src/lib/test-strnum.c M src/lib/test-timing.c M src/lib/test-unichar.c M src/lib/timing.c M src/lib/unlink-old-files.c M src/lib/var-expand.c M src/lmtp/main.c M src/log/log-connection.c M src/login-common/client-common.c M src/login-common/login-proxy.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-gnutls.c M src/master/main.c M src/master/sd-daemon.c M src/master/service-monitor.c M src/master/service-process.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-storage.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-storage.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/notify/notify-plugin.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-util.c M src/plugins/quota/quota.c M src/plugins/replication/replication-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-settings.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params.c M src/util/gdbhelper.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap.c 2015-09-23 14:52:44 +0300 Teemu Huovila (d3fa9b61b) lib: Include stdlib.h in lib.h. It's already included in so many files that we might as well include it in lib.h for everything. This is especially needed to be able to use sort.h, which currently is included in lib.h anyway. M src/lib/lib.h 2015-09-22 22:33:41 -0600 Michael M Slusarz (51ed19752) Added push-notification plugin M configure.ac M dovecot-config.in.in M src/plugins/Makefile.am A src/plugins/push-notification/Makefile.am A src/plugins/push-notification/push-notification-driver-dlog.c A src/plugins/push-notification/push-notification-driver-ox.c A src/plugins/push-notification/push-notification-drivers.c A src/plugins/push-notification/push-notification-drivers.h A src/plugins/push-notification/push-notification-event-flagsclear.c A src/plugins/push-notification/push-notification-event-flagsclear.h A src/plugins/push-notification/push-notification-event-flagsset.c A src/plugins/push-notification/push-notification-event-flagsset.h A src/plugins/push-notification/push-notification-event-mailboxcreate.c A src/plugins/push-notification/push-notification-event-mailboxcreate.h A src/plugins/push-notification/push-notification-event-mailboxdelete.c A src/plugins/push-notification/push-notification-event-mailboxdelete.h A src/plugins/push-notification/push-notification-event-mailboxrename.c A src/plugins/push-notification/push-notification-event-mailboxrename.h A src/plugins/push-notification/push-notification-event-mailboxsubscribe.c A src/plugins/push-notification/push-notification-event-mailboxsubscribe.h A src/plugins/push-notification/push-notification-event-mailboxunsubscribe.c A src/plugins/push-notification/push-notification-event-mailboxunsubscribe.h A src/plugins/push-notification/push-notification-event-message-common.h A src/plugins/push-notification/push-notification-event-messageappend.c A src/plugins/push-notification/push-notification-event-messageappend.h A src/plugins/push-notification/push-notification-event-messageexpunge.c A src/plugins/push-notification/push-notification-event-messageexpunge.h A src/plugins/push-notification/push-notification-event-messagenew.c A src/plugins/push-notification/push-notification-event-messagenew.h A src/plugins/push-notification/push-notification-event-messageread.c A src/plugins/push-notification/push-notification-event-messageread.h A src/plugins/push-notification/push-notification-event-messagetrash.c A src/plugins/push-notification/push-notification-event-messagetrash.h A src/plugins/push-notification/push-notification-events-rfc5423.c A src/plugins/push-notification/push-notification-events-rfc5423.h A src/plugins/push-notification/push-notification-events.c A src/plugins/push-notification/push-notification-events.h A src/plugins/push-notification/push-notification-plugin.c A src/plugins/push-notification/push-notification-plugin.h A src/plugins/push-notification/push-notification-triggers.c A src/plugins/push-notification/push-notification-triggers.h A src/plugins/push-notification/push-notification-txn-mbox.c A src/plugins/push-notification/push-notification-txn-mbox.h A src/plugins/push-notification/push-notification-txn-msg.c A src/plugins/push-notification/push-notification-txn-msg.h 2015-09-22 21:16:51 +0300 Stephan Bosch (13bdd67aa) lib-http: client: Tunneled https peer addresses were not compared properly. The https_name field was ignored in that case. M src/lib-http/http-client-peer.c 2015-09-22 21:16:34 +0300 Stephan Bosch (8192e6fca) lib-http: client: Fixed bug that caused queues to be duplicated over time when host has multiple IPs. The peer address comparison did not account for the fact that the initial queue address has no IP assigned. M src/lib-http/http-client-peer.c M src/lib-http/http-client-request.c 2015-09-22 21:15:45 +0300 Stephan Bosch (7b572cf52) lib-http: client: Improved hash function for peer addresses. M src/lib-http/http-client-peer.c 2015-09-22 16:40:58 +0300 Timo Sirainen (c981098a5) lib-storage: If stats plugin is enabled, set fs_settings.enable_timings=TRUE. M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h M src/plugins/stats/stats-plugin.c 2015-09-22 16:38:59 +0300 Timo Sirainen (12d31981c) lib-fs: debug and enable_timing settings weren't being permanently copied to fs->set M src/lib-fs/fs-api.c 2015-09-22 16:09:41 +0300 Timo Sirainen (df5b253f1) lib: Added timing_get_sum() M src/lib/test-timing.c M src/lib/timing.c M src/lib/timing.h 2015-09-22 14:33:33 +0300 Teemu Huovila (bda082b4c) imap: Fix typo in error message. M src/imap/imap-state.c 2015-09-22 14:32:51 +0300 Teemu Huovila (ab0eb4b10) auth: Remove redundant if M src/auth/auth-request.c 2015-09-22 14:26:25 +0300 Timo Sirainen (9549f50a9) Make static analyzer happier. M src/lib/test-timing.c 2015-09-22 14:26:08 +0300 Timo Sirainen (68d7af0bb) quota: Make sure the limit return value is initialized when quota_get_resource() returns 0 Later on a debug log message in quota_over_flag_check_root() was accessing the limit, which wasn't necessarily initialized. Also initialized value return value just as well to be safe. M src/plugins/quota/quota.c 2015-09-22 13:53:47 +0300 Timo Sirainen (086dacad0) lib-master: Slightly improved "process_limit reached?" error message. M src/lib-master/master-auth.c 2015-09-22 13:50:08 +0300 Timo Sirainen (013c0431b) virtual plugin: Disable caching via mailbox list indexes. Otherwise e.g. STATUS can give stale replies. M src/plugins/virtual/virtual-storage.c 2015-09-22 01:05:09 +0300 Timo Sirainen (cb44fd2f8) lib-http: Optimized http_client_request_send_payload() fix Badly copy&pasted my original fix, instead of noticing that Stephan's fix was slightly different. Probably shouldn't have made actual difference other than for performance. M src/lib-http/http-client-request.c 2015-09-22 00:55:15 +0300 Timo Sirainen (47ff1eaf3) lib-http: Avoid crashes on failing http_client_request_send_payload() calls It HTTP server connection died, ioloop might not have anything to do anymore: Panic: file ioloop-epoll.c: line 187 (io_loop_handler_run_internal): assertion failed: (msecs >= 0) M src/lib-http/http-client-request.c 2015-09-22 00:40:14 +0300 Timo Sirainen (d9e3a9484) Makefile: Added missing sort.h M src/lib/Makefile.am 2015-09-21 19:52:32 +0300 Phil Carmody (ec8eacaa2) lib: timings - added quantiles Just sub-sample the stream. On the assumption that the samples come from one distribution, then any randomly selected subset will share the same distribution. Therefore the quantiles should be at approximately the same value. However, that's a big assumption, as there will almost certainly be time dependency, and periodicity (24hrs, 7 days). Signed-off-by: Phil Carmody M src/lib/test-timing.c M src/lib/timing.c M src/lib/timing.h 2015-09-21 19:51:05 +0300 Phil Carmody (2c886f02d) lib: extract sort-helpers into separate sort.h file The macro definition was nothing to do with strings, and we can put trivial common-type comparators here. They didn't need to be static inline, as they can never be inlined anyway, being only used via function pointers, but that preserves the closest equivalent to the current code. Signed-off-by: Phil Carmody M src/lib-imap-client/imapc-msgmap.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/list/mailbox-list-index-sync.c A src/lib/sort.h M src/lib/strfuncs.h M src/lib/test-timing.c M src/plugins/fts-squat/squat-uidlist.c 2015-09-21 17:03:19 +0300 Timo Sirainen (e716e8ef3) lib-storage: Forgot to add index-mailbox-size.h to e29d2f7fe53f A src/lib-storage/index/index-mailbox-size.h 2015-09-21 17:01:05 +0300 Timo Sirainen (a8dcd4e23) fts: Send session ID to indexer and indexer-worker for logging purposes. M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-queue.h M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-storage.c 2015-09-21 16:36:05 +0300 Timo Sirainen (c4db12186) quota: Added "count" backend, which simply sums up mailboxes' vsizes. In a way this is similar to the simple "dirsize" backend, but much more efficient. As long as mailbox_list_index=yes, the quota can typically be looked up only by reading the dovecot.list.index* files. This backend enforces using quota_vsizes=yes setting to keep the performance good, because physical sizes don't have a similar optimized vsize header. There's also no especially good reason why this backend should support physical sizes - they were originally mainly used to allow quickly stat()ing Maildir files. M src/plugins/quota/quota-count.c M src/plugins/quota/quota.c 2015-09-21 16:32:27 +0300 Timo Sirainen (9963bef62) lib-storage: Update mailbox vsize header on save/copy/expunge. This allows always efficiently looking up maiboxes' vsizes after they're initially calculated. The expunge handling is unfortunately done currently in quota handling code, so it works only if quota is enabled. Ideally this would be solved in v2.3 with some lib-storage core changes. M src/lib-storage/index/Makefile.am M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/mbox/mbox-sync.c M src/plugins/quota/quota-storage.c 2015-09-21 16:24:30 +0300 Timo Sirainen (93f164239) quota: Added quota_vsizes=yes setting to count quotas using virtual sizes instead of physical sizes. This doesn't work with all the quota backends. M src/plugins/quota/quota-count.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2015-09-21 16:12:43 +0300 Timo Sirainen (93eb96e09) quota: Commit expunge transaction instead of rolling back. This likely won't make much of a difference, since it should have accessed only expunged mails. But it's a bit cleaner this way. M src/plugins/quota/quota-storage.c 2015-09-21 16:09:37 +0300 Timo Sirainen (a4922fa0c) quota: Code cleanup - extract default init() handling to quota_root_default_init() M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2015-09-21 15:41:49 +0300 Timo Sirainen (c9b76ca21) imap: If client disconnects, log the in-progress commands' input/output bytes. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c 2015-09-21 15:32:02 +0300 Timo Sirainen (fa5c3e6eb) imap: If client disconnects, log how long the in-progress commands were running. M src/imap/imap-client.c 2015-09-21 14:18:51 +0300 Timo Sirainen (f56f01d9c) Compiler warning fix. M src/imap/imap-commands.c 2015-09-21 14:02:47 +0300 Timo Sirainen (266d72b0b) imap: Improved command timing information reporting. We now report also the time we spent waiting on ioloop. Also fixed reporting command timing information when multiple commands were running in parallel (e.g. SEARCH + FETCH). If multiple commands are running in parallel they all report the same ioloop wait time, because there's no easy way to know which one of them caused the wait. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c 2015-09-21 13:59:41 +0300 Timo Sirainen (fb4bd85e7) lib: Added io_loop_get_wait_usecs() M src/lib/ioloop-private.h M src/lib/ioloop.c M src/lib/ioloop.h 2015-09-21 13:59:22 +0300 Timo Sirainen (b7c841fd6) imap: When running SEARCH on "background", run it through command_exec() Otherwise all the timing information isn't right and the pre/post hooks weren't being called so stats counting was also wrong. M src/imap/imap-search.c 2015-09-20 22:25:11 +0300 Timo Sirainen (5fb7f2086) lib-index: Added mail_index_sync_have_any_expunges() This can be used to quickly check before mail_index_sync_begin() if there are likely to be any expunges that will be synced. M src/lib-index/mail-index-sync.c M src/lib-index/mail-index.h 2015-09-20 21:49:51 +0300 Stephan Bosch (4ac2e38bd) auth: The mechanisms configured using the auth_mechanisms setting were not enforced. The login service would check whether the mechanism is supported by auth, but auth performed no such check of its own. This means that any implemented mechanism was accessible from a login, even though was presumably disabled. M src/auth/auth-request-handler.c M src/auth/mech.c M src/auth/mech.h 2015-09-20 01:04:50 +0300 Timo Sirainen (3d2fd3816) lib: file_wait_lock*(): Improve the panic log message on EDEADLOCK. M src/lib/file-lock.c 2015-09-17 07:33:22 +0900 Timo Sirainen (48eb19f79) lib-fs: Fixed compiling with some OSes M src/lib-fs/fs-api-private.h 2015-09-17 07:33:01 +0900 Timo Sirainen (db6fe1b4c) lib-fs: timing_deinit()s was called too late - fs was already freed. M src/lib-fs/fs-api.c 2015-09-17 07:26:49 +0900 Timo Sirainen (37e8420b3) cassandra: With debugging, log also how many rows were iterated. M src/lib-sql/driver-cassandra.c 2015-09-17 07:24:28 +0900 Timo Sirainen (2ccb478c3) cassandra: With debugging, log also how long result was used for before it was freed. This includes the time spent on SELECT query's iterator. M src/lib-sql/driver-cassandra.c 2015-09-17 07:20:32 +0900 Timo Sirainen (3e8842470) cassandra: Don't crash if connection to Cassandra failed. M src/lib-sql/driver-cassandra.c 2015-09-17 07:07:57 +0900 Timo Sirainen (de5f478d9) cassandra: If log_level=debug, log also how long the queries take. M src/lib-sql/driver-cassandra.c 2015-09-16 10:46:44 +0900 Timo Sirainen (caa154657) lib: file_wait_lock_error() assert-crashes now on EDEADLOCK It's always a bug and a crash can help debug it. M src/lib/file-lock.c 2015-09-16 05:01:40 +0900 Timo Sirainen (1c244f6fd) lib-fs: Track operation timing statistics if enable_timing setting is set. M src/lib-fs/Makefile.am M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h A src/lib-fs/istream-fs-stats.c A src/lib-fs/istream-fs-stats.h 2015-09-16 04:44:37 +0900 Timo Sirainen (273a7cf98) lib: Added a simple timing.h API for tracking min/max/avg for events. M src/lib/Makefile.am M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-timing.c A src/lib/timing.c A src/lib/timing.h 2015-09-15 15:20:08 +0900 Timo Sirainen (4db61af2c) cassandra: Added delete_consistency parameter. M src/lib-sql/driver-cassandra.c 2015-09-13 16:42:32 +0300 Timo Sirainen (33c7e0521) lib: file_create_locked() may have leaked memory on some race conditions. M src/lib/file-create-locked.c 2015-09-12 13:00:58 +0300 Timo Sirainen (03ba84927) doveadm mailbox metadata list: Fixed not giving the prefix parameter. M src/doveadm/doveadm-mail-mailbox-metadata.c 2015-09-11 14:02:21 +0300 Timo Sirainen (d993d49e8) doveadm mailbox attribute list: Prefix parameter was ignored. M src/doveadm/doveadm-mail-mailbox-metadata.c 2015-09-11 14:02:01 +0300 Timo Sirainen (42f2d982a) lib-storage: Fixed iterating attribute prefix that matched the attribute itself. So if attribute key was "foo", iterating "foo" returned garbage because it skipped over the trailing \0. M src/lib-storage/mailbox-attribute.c 2015-09-11 01:20:28 +0300 Timo Sirainen (27f5066c7) master: systemd's sd_listen_fds() error handling was wrong. M src/master/service-listen.c 2015-09-09 11:31:41 +0300 Timo Sirainen (ec937f21a) lib-storage: Fixed crash in mailbox list index notifying caused by fa979ccfa34c M src/lib-storage/list/mailbox-list-index-notify.c 2015-09-08 19:28:31 +0300 Phil Carmody (d6bbf8580) lib: test-strnum - do not invite undetectable errors The very numbers which could cause a broken parser to over-run, the ones we are testing, are the ones which will be parsed as having a value similar to 'value', so check that no value was returned by using a number completely dissimilar to that. Otherwise, there might be an accidental mis-parse that overwrote value, but left its value the same. Signed-off-by: Phil Carmody M src/lib/test-strnum.c 2015-09-08 19:12:26 +0300 Timo Sirainen (275cc4c04) lib-storage: Replaced some unlink()s with i_unlink*()s where we could. This changes some mail_storage_set_critical() calls to i_error()s, but because these unlink() failures don't actually fail the operation it doesn't matter. M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c 2015-09-08 19:11:45 +0300 Timo Sirainen (39087f589) lib-index: Replaced some unlink()s with i_unlink*()s where we could. This changes some mail_index_set_error() calls to i_error()s, but because these unlink() failures don't actually fail the operation it doesn't matter. In fact it may be even better that it doesn't overwrite the existing index->error if it exists. M src/lib-index/mail-index-write.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log.c 2015-09-08 19:07:02 +0300 Timo Sirainen (46b823ac3) Replaced unlink() calls with i_unlink*() wherever possible. M src/auth/auth-token.c M src/doveadm/doveadm-sis.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-stream.c M src/lda/main.c M src/lib-compression/test-compression.c M src/lib-fs/fs-posix.c M src/lib-imap-client/imapc-client.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-lda/duplicate.c M src/lib-lda/smtp-client.c M src/lib-mail/test-istream-attachment.c M src/lib-master/mountpoint-list.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/mailbox-uidvalidity.c M src/lib/file-copy.c M src/lib/file-create-locked.c M src/lib/file-dotlock.c M src/lib/iostream-rawlog.c M src/lib/iostream-temp.c M src/lib/istream-seekable.c M src/lib/net.c M src/lib/safe-mkstemp.c M src/lib/test-istream-seekable.c M src/lib/test-ostream-file.c M src/lib/unlink-old-files.c M src/lmtp/commands.c M src/login-common/ssl-proxy-gnutls.c M src/master/main.c M src/master/master-settings.c M src/master/service-listen.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/fts-expunge-log.c M src/plugins/mail-filter/mail-filter-plugin.c M src/plugins/quota/quota-maildir.c M src/ssl-params/ssl-params.c 2015-09-08 18:49:00 +0300 Timo Sirainen (8dc04cf60) lib: Added i_unlink() and i_unlink_if_exists() These log the error message on a failed unlink(). They also include the source code file and line number to make it easier to find which unlink() actually failed if the path itself doesn't already clearly identify it. This can be especially useful if the path is (null), "" or contains some corrupted garbage. M src/lib/lib.c M src/lib/lib.h 2015-09-08 18:45:57 +0300 Timo Sirainen (b14153995) lib-storage: Mailbox deletion shouldn't fail when trying to delete read-only attributes. M src/lib-storage/index/index-storage.c 2015-09-08 18:45:28 +0300 Timo Sirainen (5e09e2839) lib-storage: Use MAIL_ERROR_NOTPOSSIBLE if mailbox_attribute_*set() fails for read-only attribute. MAIL_ERROR_PARAMS indicates that there was something wrong with the parameters itself. But the caller can't know (at least with current APIs) if it's a read-only attribute it's trying to change before actually doing it. M src/lib-storage/mailbox-attribute.c 2015-09-08 13:41:21 +0300 Timo Sirainen (1228d5752) lib-storage: If mail_attribute_dict is set, ignore non-authority rank internal attributes. This way dsync can still sync things like Sieve scripts, but it doesn't attempt to sync anything that actually requires dict. M src/lib-storage/mailbox-attribute.c 2015-09-08 13:30:21 +0300 Stephan Bosch (6fef776b1) example-config: 10-mail.conf: Added example configuration for the new settings relating to IMAP METADATA. M doc/example-config/conf.d/10-mail.conf M doc/example-config/conf.d/15-mailboxes.conf 2015-09-08 13:27:41 +0300 Stephan Bosch (bb353b0b1) example-config: Added more detailed documentation for mailbox settings. M doc/example-config/conf.d/10-mail.conf M doc/example-config/conf.d/15-mailboxes.conf 2015-09-08 13:26:38 +0300 Stephan Bosch (87b4215ac) lib: strnum: Fixed test suite failure on 32 bit systems. M src/lib/test-strnum.c 2015-09-08 13:18:58 +0300 Timo Sirainen (0e731a17e) acl: Log which ACL groups are enabled with mail_debug=yes M src/plugins/acl/acl-backend.c 2015-09-08 13:07:59 +0300 Timo Sirainen (64d895bcc) lib-charset: Fixed assert-crash with some iconv() versions. Older glibc iconv() versions seem to skip over invalid characters, at least with some charsets, while newer versions don't. We were assuming that the skipping never happened, so if the invalid character was at the end of the string we could have wrapped size to (size_t)-1 and caused a crash later on. M src/lib-charset/charset-iconv.c M src/lib-charset/test-charset.c 2015-04-25 11:42:06 +0200 Stephan Bosch (186c198e2) imap: METADATA: Implemented mailbox and server comment entries and the server admin entry. M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mailbox-attribute-internal.c M src/lib-storage/mailbox-attribute-internal.h 2015-04-25 11:42:06 +0200 Stephan Bosch (1b0c12018) imap: Implemented /private/specialuse METADATA entry for SPECIAL-USE capability. M src/lib-storage/Makefile.am A src/lib-storage/mailbox-attribute-internal.c A src/lib-storage/mailbox-attribute-internal.h M src/lib-storage/mailbox-attribute.c 2015-09-08 01:27:18 +0300 Stephan Bosch (4a272f5b8) lib: Added some tests for the new strnum _hex() and _oct() function variants. M src/lib/test-strnum.c 2015-09-08 01:20:51 +0300 Timo Sirainen (0348cf684) lib: Added assert to Solaris sendfile() return value. M src/lib/sendfile-util.c 2015-09-08 00:51:30 +0300 Timo Sirainen (738e548a4) doveadm: Fixed hiding titles' tabs with tab formatter (-h -f tab) M src/doveadm/doveadm-print-tab.c 2015-09-08 00:46:11 +0300 Timo Sirainen (25f959d63) Make static analyzer happier. M src/config/config-request.c M src/lib-storage/mail-search-args-simplify.c 2015-09-08 00:34:14 +0300 Timo Sirainen (0139e1e63) lib-charset: Added more asserts to checking iconv() results. M src/lib-charset/charset-iconv.c 2015-09-08 00:33:21 +0300 Timo Sirainen (f9291653e) lib-charset: Updated test-charset unit test to check for iconv() E2BIG result M src/lib-charset/test-charset.c 2015-09-08 00:07:55 +0300 Timo Sirainen (9dd7c6f7f) lib-storage: Mailbox list notifications didn't work for INBOX. Because of some earlier optimizations that changes to INBOX aren't written to dovecot.list.index.log file. M src/lib-storage/list/mailbox-list-index-notify.c 2015-09-07 23:55:31 +0300 Timo Sirainen (e27db67b4) Mailbox list notify API changed to return multiple events at once. This fixes some issues where a single event could actually trigger multiple different kinds of events. M src/imap/imap-notify.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/mailbox-list-notify.h 2015-09-07 23:08:44 +0300 Timo Sirainen (8868eddb5) imap: NOTIFY (SUBSCRIPTIONS) assert-crashed when subscriptions hadn't been refreshed. M src/imap/cmd-notify.c M src/imap/imap-notify.h 2015-09-07 22:35:30 +0300 Timo Sirainen (25fb39738) Various passthrough istreams didn't preserve readable_fd. M src/lib-storage/index/istream-mail.c M src/lib/istream-failure-at.c M src/lib/istream-hash.c M src/lib/istream-timeout.c 2015-07-16 14:41:24 +0200 Sebastian Wiedenroth (158e0bc89) lib: Fix hang in safe_sendfile on SmartOS The call to sendfile on SmartOS can fail with EOPNOTSUPP. This is a valid error code and documented in the man page. This error code needs to be handled or else dovecot will retry the sendfile call endlessly and hang. M src/lib/sendfile-util.c 2015-09-07 22:14:18 +0300 Timo Sirainen (5bf4e28d6) imap: Fixed assert-crash in NOTIFY when using multiple namespaces. I'm not sure why the original code was trying to add it to multiple namespaces. A single mailbox name should be matching only a single namespace (visible one at least). In any case we can't use mail_namespace_find() with only partial namespaces-list, because it'll assert-crash if it can't find a namespace for the mailbox. M src/imap/cmd-notify.c 2015-09-07 22:06:16 +0300 Timo Sirainen (4439a1780) lib-storage: Fixed assert-crash when reading binary streams. M src/lib-storage/index/index-mail-binary.c 2015-09-07 21:54:20 +0300 Timo Sirainen (fb6168354) doveadm: Added new "auth login" command to simulate an actual client login. This performs both passdb and userdb lookups and prints their results. M src/doveadm/doveadm-auth.c 2015-09-07 21:24:01 +0300 Timo Sirainen (d1d04674f) auth: If userdb lookup was found from auth cache, don't clear the earlier userdb fields. M src/auth/auth-request.c 2015-09-07 21:02:51 +0300 Timo Sirainen (2373c8449) auth: If multiple userdbs are used, default_fields was ignored for all but the first one. M src/auth/auth-request.c 2015-09-07 20:24:25 +0300 Timo Sirainen (3e10cd470) director: Added director_user_kick_delay setting. This replaces the hardcoded 2 seconds delay. This setting specifies how long to wait for after user has been kicked from all directors before letting the user login to the new server. This timeout should be large enough that the user's existing processes in the old backend should be finished. M src/director/director-settings.c M src/director/director-settings.h M src/director/director.c 2015-09-07 18:50:24 +0300 Timo Sirainen (c9d685897) login proxy: Added delayed disconnection of clients on server mass-disconnect. login_proxy_max_disconnect_delay setting (default 0 = disabled) controls for how long time period the disconnections are spread to. The idea behind this is to avoid load spikes due to client reconnections when a backend server dies or is restarted. M src/login-common/login-proxy-state.h M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/login-settings.h 2015-09-07 17:10:19 +0300 Timo Sirainen (3a3f0bb25) auth: Ignore first passdbs that contain skip=unauthenticated. They can never match anything. M src/auth/auth.c 2015-09-07 16:39:28 +0300 Timo Sirainen (3c7dbe9bd) lib-storage: Added mailbox_attribute_register_internals() Just for making it easier to register multiple attributes. M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-attribute.h 2015-09-07 16:23:40 +0300 Timo Sirainen (e8f12bf52) lib-storage: Allow MAIL_ATTRIBUTE_INTERNAL_RANK_DEFAULT to use get=NULL This is useful for registering internal attributes whose only purpose is to be able to set/get them via dict. (Because normally the dict access would be denied completely.) M src/lib-storage/mailbox-attribute.c 2015-09-07 16:22:11 +0300 Timo Sirainen (ab5269901) lib-storage: Allow set/get for Dovecot-private attributes via internal attributes. This allows registering attributes with MAILBOX_ATTRIBUTE_PREFIX_DOVECOT_PVT prefix and having them be get/set via dict, instead of failing them. M src/lib-storage/index/index-attribute.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mailbox-attribute.c 2015-09-07 16:38:24 +0300 Timo Sirainen (72baffa31) lib-storage: Added MAIL_ATTRIBUTE_INTERNAL_FLAG_CHILDREN This also adds the key to get() and set() functions, so they can know exactly what key is wanted to be accessed. M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-attribute.h 2015-04-25 11:42:06 +0200 Stephan Bosch (bf79967ee) mail-storage: Added registration API for builtin mailbox attributes. M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-attribute-private.h M src/lib-storage/mailbox-attribute.c M src/lib-storage/mailbox-attribute.h 2015-09-07 15:07:55 +0300 Timo Sirainen (326c86b1c) lib-storage: mail_user_init() wasn't always expanding %h correctly to settings. This mainly affected users autocreated for accessing shared mailboxes. M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2015-09-07 15:06:40 +0300 Timo Sirainen (69e0311cb) lib-storage: Updated MAILBOX_ATTRIBUTE_KEY_IS_USER_ACCESSIBLE() to not allow private server attributes. M src/lib-storage/mailbox-attribute.h 2015-09-07 14:16:39 +0300 Timo Sirainen (ffe2ea046) dovecot.m4: Added LIBDOVECOT_ACL_INCLUDE M dovecot-config.in.in M dovecot.m4 2015-09-07 14:08:52 +0300 Timo Sirainen (8affeb8ac) auth: Fixed passdb skip_password_check / result_success=continue-fail handling If passdb returned success, but result_success=continue-fail, it means that the authentication didn't succeed. So we still want to check the password again and in general treat the request as unauthenticated (especially for the passdb { skip } setting). So the current logic means that there are 2 ways for the request to be treated as authenticated and skipping any password checking: 1) passdb lookup succeeding, with result_success=continue, continue-ok, return or return-ok 2) passdb lookup not succeeding, with result_failure=continue-ok or return-ok It's a bit questionable though if 2) should be allowed. M src/auth/auth-request.c 2015-09-07 13:40:41 +0300 Timo Sirainen (c07fb2247) imap: Don't allow IMAP METADATA to access Dovecot's private server attributes. M src/lib-imap-storage/imap-metadata.c 2015-09-07 11:40:08 +0300 Timo Sirainen (1310fa409) auth: Aborting auth request didn't abort a pending proxy DNS lookup. M src/auth/auth-request.c 2015-09-06 22:28:07 +0300 Timo Sirainen (691f802ef) lib-storage: Store pointer to mail_storage_service_user to mail_user if it exists. M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2015-09-06 22:27:29 +0300 Timo Sirainen (95dcc0f8e) lib-storage: Added mail_storage_service_user_get_service_ctx() M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2015-09-04 13:00:25 +0300 Timo Sirainen (7b31f9fe6) acl: Install most of the header files. M src/plugins/acl/Makefile.am 2015-09-04 13:00:14 +0300 Timo Sirainen (1f6186dbc) acl: acl_object_list_next() should return -1 if acl refreshing failed earlier. M src/plugins/acl/acl-api.c 2015-09-04 11:21:39 +0300 Timo Sirainen (837661600) dsync: If remote disconnects, log the last sent/recv state. M src/doveadm/dsync/dsync-ibc-stream.c 2015-09-04 11:17:30 +0300 Timo Sirainen (0443351f9) dsync: If we disconnect with I/O timeout, log the last sent/recv state. M src/doveadm/dsync/dsync-ibc-stream.c 2015-09-04 01:23:28 +0300 Timo Sirainen (d87f5ce4f) login proxy: Code cleanup - separate login_proxy_free_final() M src/login-common/login-proxy.c 2015-09-04 01:21:28 +0300 Timo Sirainen (772f054b4) login proxy: Always keep proxy->state_rec available. M src/login-common/login-proxy.c 2015-09-04 01:18:04 +0300 Timo Sirainen (623eaaf53) login proxy: Added asserts to track that num_waiting_connections are correct. M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c 2015-09-04 01:10:29 +0300 Timo Sirainen (40f7b31e6) login proxy: Small code cleanup M src/login-common/login-proxy.c 2015-09-03 22:12:14 +0300 Timo Sirainen (57c5e1194) dsync: Assert-crashfix Fixes: Panic: file mail-storage.c: line 1897 (mailbox_save_alloc): assertion failed: (!ctx->unfinished) M src/doveadm/dsync/dsync-mailbox-import.c 2015-09-03 21:37:09 +0300 Timo Sirainen (1fb5e5069) cassandra: Handle async queries internally - don't use sql pooling code. There's no need to create multiple Cassandra instances, since the single instance is capable of doing multiple asynchronous requests in parallel. M src/lib-sql/driver-cassandra.c 2015-09-03 20:55:18 +0300 Timo Sirainen (9a02f482e) lib-storage: Another fix to using index_storage_mailbox_close() without an opened view. Calling mail_index_close() without mail_index_open() caused it to assert-crash. M src/lib-storage/index/index-storage.c 2015-09-03 20:54:27 +0300 Timo Sirainen (ac00e3051) dict: Various reference counting and other fixes related to using freed memory. M src/dict/dict-commands.c M src/dict/dict-commands.h M src/dict/dict-connection.c M src/dict/dict-connection.h 2015-09-03 19:59:16 +0300 Timo Sirainen (d206a491a) dsync: Crashfix in certain situation. M src/doveadm/dsync/dsync-mailbox-import.c 2015-09-03 19:58:39 +0300 Timo Sirainen (40feca9b8) lib-storage: Allow index_storage_mailbox_close() to be called without an opened view. Some failing mailbox_open() call may leave it in such a state. M src/lib-storage/index/index-storage.c 2015-09-03 16:04:26 +0300 Timo Sirainen (a4502a718) doveadm director update command added. The difference to "doveadm director add" is that if the IP doesn't already exist, it's not added. M src/director/doveadm-connection.c M src/doveadm/doveadm-director.c 2015-09-03 14:10:36 +0300 Timo Sirainen (3ba70a3fa) Removed SET_IN_PORT_ZERO - SET_IN_PORT now always allows zeros as well. A zero in all the port settings means that the port is disabled, which is also the default. So it shouldn't be an error to explicitly set it to zero in the config file. M src/config/config-request.c M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h M src/master/master-settings.c M src/replication/aggregator/aggregator-settings.c 2015-09-03 14:01:57 +0300 Phil Carmody (d5c443131) lib: strnum - simplify hex and oct overflow code uintmax_t is defined to have modulo-2^n semantics, and therefore the bottom bits of (uintmax_t) are guaranteed to be all set. Therefore the checking of the next character read is unnecessary, as it's already done in the loop control statement itself. (This is not true about the bottom digit base 10, which is why the check remains in the decimal case) Signed-off-by: Phil Carmody M src/lib/strnum.c 2015-08-31 22:31:19 +0000 Pascal Volk (7be9203e6) man: doveadm-sync.1: Added description for option `-T secs'. M doc/man/doveadm-sync.1.in 2015-09-02 20:30:07 +0300 Timo Sirainen (84b2c459e) dict-sql: Fixed iteration with blob fields. M src/lib-dict/dict-sql.c 2015-09-02 19:46:36 +0300 Timo Sirainen (ac1e5c22e) dict-sql: Implemented support for binary fields. Example: map { pattern = shared/blobtest/$key table = blobtest value_field = value value_hexblob = yes fields { key = ${hexblob:key} } } Now you can access both field and value as hex data. For example: doveadm dict set proxy::sqldict shared/blobtest/746573746b6579 7465737476616c7565 This adds "testkey" and "testvalue" to key and value fields blobs. M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql-settings.h M src/lib-dict/dict-sql.c 2015-09-02 19:43:26 +0300 Timo Sirainen (b87761f9b) lib-sql: Implemented sql_escape_blob() M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api-private.h M src/lib-sql/sql-api.c M src/lib-sql/sql-api.h 2015-09-02 19:42:45 +0300 Timo Sirainen (61f39b035) cassandra: Implemented support for binary values. M src/lib-sql/driver-cassandra.c 2015-09-02 19:41:23 +0300 Timo Sirainen (efa1a91c5) doveadm dict iter: Added -V parameter to return only keys. M src/doveadm/doveadm-dict.c 2015-09-02 19:38:35 +0300 Timo Sirainen (ce06a5036) dict-sql: Fixed iteration with DICT_ITERATE_FLAG_NO_VALUE M src/lib-dict/dict-sql.c 2015-09-02 18:42:01 +0300 Timo Sirainen (02a0277d8) dict-client: Prefix relative socket paths with base_dir. M src/lib-dict/dict-client.c 2015-09-02 17:51:23 +0300 Timo Sirainen (30d76359c) dict: Added dict-async service. This allows running separate dict processes with separate settings for async and non-async backends. M src/dict/dict-settings.c 2015-09-02 17:37:16 +0300 Timo Sirainen (fa04cb1e6) dict-sql: Added support for async operations. M src/lib-dict/dict-sql.c 2015-09-02 17:36:47 +0300 Timo Sirainen (1a8837182) dict: Use the new async APIs for everything. If the dict backend supports async operations, this means that dict service can now be configured with client_count>1. M src/dict/dict-commands.c M src/dict/dict-commands.h M src/dict/dict-connection.c M src/dict/dict-connection.h 2015-09-02 17:34:43 +0300 Timo Sirainen (d694b6009) lib-dict: Added async API for lookup and iteration. M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dict/dict-fs.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-private.h M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h 2015-09-02 17:28:41 +0300 Timo Sirainen (32afa8344) dict-sql: Code cleanup - added sql_dict_transaction_has_nonexistent() M src/lib-dict/dict-sql.c 2015-09-02 17:27:09 +0300 Timo Sirainen (dce02dcdf) dict-sql: Code cleanup - use a common sql_dict_transaction_free() M src/lib-dict/dict-sql.c 2015-09-02 17:26:08 +0300 Timo Sirainen (1f9785193) dict-sql: Fixed memory leak when committing/rollbacking unchanged transaction. M src/lib-dict/dict-sql.c 2015-09-02 17:23:45 +0300 Timo Sirainen (743d40073) dict-sql: Code cleanup - separated SQL query building function from sending it. M src/lib-dict/dict-sql.c 2015-09-02 17:21:06 +0300 Timo Sirainen (c02488b7f) lib-dict: Code cleanup - give name for enum dict_protocol_cmd/reply M src/lib-dict/dict-client.h 2015-09-02 17:20:02 +0300 Timo Sirainen (a916985b7) lib-sql: Mark Cassandra driver as pooled. Otherwise all the asynchronous operations will assert-crash, since all the auto-connecting code is in the sqlpool code. M src/lib-sql/driver-cassandra.c 2015-09-02 17:19:08 +0300 Timo Sirainen (1856c361a) lib-sql: Debugging help - Added assert before clearing sql_result.callback. If result is unrefed too many times, this still allows accessing the callback from a debugger. M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-pgsql.c 2015-09-02 17:16:41 +0300 Timo Sirainen (b457d2ecf) lib-sql: sql_result.free() should never be reached from the query callback. This code was probably added before sql_result refcounting. M src/lib-sql/driver-cassandra.c M src/lib-sql/driver-pgsql.c 2015-09-01 16:25:11 +0300 Timo Sirainen (f5d5b8aab) lib-imap-client: If connect() fails immediately, log an error and retry the next IP. Only if all IPs fail return a full failure. This is mainly intended to skip IPv6 addresses when IPv6 connectivity doesn't work. M src/lib-imap-client/imapc-connection.c 2015-09-01 00:11:37 +0300 Timo Sirainen (ecc01266b) auth: Added ":protected" suffix to passdb and userdb field names. This means that if the field is set only if it hasn't already been set. Usually an earlier passdb/userdb would have set the field and this is setting a default (e.g. per-user settings override per-domain settings). M src/auth/auth-request.c 2015-08-31 23:54:24 +0300 Timo Sirainen (6c0d8dc7c) lib-fs: Added "dict" backend, which is a wrapper to using lib-dict. M src/lib-fs/Makefile.am M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c A src/lib-fs/fs-dict.c 2015-08-31 23:46:05 +0300 Timo Sirainen (2bc963ea0) imap-hibernate: Use sockets' st_dev and st_ino to verify that the passed fd is correct. M src/imap-hibernate/imap-client.c M src/imap-hibernate/imap-client.h M src/imap-hibernate/imap-hibernate-client.c M src/imap/imap-client-hibernate.c M src/imap/imap-master-client.c 2015-08-31 23:25:12 +0300 Timo Sirainen (fa2e547a3) lib: Added str_to_ino() M src/lib/strnum.c M src/lib/strnum.h 2015-08-31 23:11:17 +0300 Timo Sirainen (11ea98b55) imap: NOTIFY SET STATUS didn't send HIGHESTMODSEQ in STATUS reponses when needed. M src/imap/cmd-notify.c 2015-08-31 22:45:17 +0300 Timo Sirainen (ce0d9d3da) *-login: mail_max_userip_connections=0 was broken by f8ab4f979e92 M src/login-common/sasl-server.c 2015-08-31 22:25:57 +0300 Timo Sirainen (6ea145a99) cassandra: Changed default consistency levels to local-quorum. It is a much safer default than "one". M src/lib-sql/driver-cassandra.c 2015-08-31 21:31:46 +0300 Timo Sirainen (ce74395e2) cassandra: Split consistency setting to read_consistency and write_consistency. M src/lib-sql/driver-cassandra.c 2015-08-31 20:23:32 +0300 Teemu Huovila (87af299c8) lib-fts: Add missing "j'" to French contractions. M src/lib-fts/fts-filter-contractions.c M src/lib-fts/test-fts-filter.c 2015-08-31 14:24:54 +0300 Stephan Bosch (0004409e7) Earlier in_port_t fix was ineffective due to one small detail. The new SET_IN_PORT_ZERO did not actually use the new net_str2port_zero() function. M src/lib-settings/settings-parser.c 2015-08-31 13:33:26 +0300 Teemu Huovila (c8eaee2ad) lib-fts: Add UTF-8 unit test for lowercase filter. M src/lib-fts/test-fts-filter.c 2015-08-31 13:33:26 +0300 Teemu Huovila (440b62548) lib-fts: Add prefixing contraction filter. Filters away prefixing contracted words, e.g. "l'homme" -> "homme". Tokens to be filtered must be lower case. Only supports French in this initial version. M src/lib-fts/Makefile.am A src/lib-fts/fts-filter-contractions.c M src/lib-fts/fts-filter-private.h M src/lib-fts/fts-filter.c M src/lib-fts/fts-filter.h M src/lib-fts/test-fts-filter.c 2015-08-30 01:00:30 +0300 Timo Sirainen (4d811490c) aggregator: Allow replicator_port=0 setting (fix to previous in_port_t changes) M src/replication/aggregator/aggregator-settings.c 2015-08-30 00:46:32 +0300 Stephan Bosch (84296542c) Earlier in_port_t fix created problems with service listener configuration. Listeners are disabled with port=0, which was not allowed anymore. M src/config/config-request.c M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h M src/lib/net.c M src/lib/net.h M src/master/master-settings.c 2015-08-30 00:42:16 +0300 Timo Sirainen (08c518f05) lib-master: Compiler warning fix M src/lib-master/master-service.c 2015-04-25 11:42:06 +0200 Stephan Bosch (ede750711) http-client: Added support for using an HTTP proxy running on a unix socket. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2015-08-29 14:42:49 +0300 Stephan Bosch (e48f289d2) Removed all invocations of strtoll() and friends. M configure.ac M src/anvil/anvil-connection.c M src/auth/checkpassword-reply.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-who.c M src/doveadm/dsync/dsync-ibc-stream.c M src/lib-dict/dict-file.c M src/lib-fs/fs-posix.c M src/lib-otp/otp-parse.c M src/lib-settings/settings-parser.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/mailbox-uidvalidity.c M src/lib/compat.c M src/lib/compat.h M src/lib/rand.c M src/lib/var-expand.c M src/log/log-connection.c M src/login-common/sasl-server.c M src/master/main.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-util.c M src/util/maildirlock.c 2015-08-29 14:31:51 +0300 Stephan Bosch (7b58c089a) strnum: Implemented many more numeric string parsing functions. Created macros for most of the implementation to avoid further code duplication. M src/lib/strnum.c M src/lib/strnum.h 2015-08-29 14:30:37 +0300 Stephan Bosch (c93aca832) Removed all invocations of atoi(). M src/auth/db-ldap.c M src/auth/mech-digest-md5.c M src/auth/passdb-blocking.c M src/dict/dict-connection.c M src/director/director-connection.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-who.c M src/imap-login/client.c M src/lib-dict/dict.h M src/lib-master/master-service.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-storage/mail-storage-service.c M src/lmtp/commands.c M src/login-common/client-common-auth.c M src/master/main.c M src/util/script.c 2015-08-29 14:26:30 +0300 Stephan Bosch (009217abb) Changed type of internet port values to in_port_t everywhere. Created special SET_IN_PORT setting type for internet port values. Created net_str2port() for parsing internet port values. Removed several atoi() invocations in the process. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/passdb-imap.c M src/config/config-request.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-host.h M src/director/director-settings.c M src/director/director-settings.h M src/director/director-test.c M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/main.c M src/doveadm/client-connection.h M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/doveadm-util.c M src/doveadm/doveadm-util.h M src/doveadm/doveadm-zlib.c M src/doveadm/server-connection.c M src/imap-hibernate/imap-client.h M src/imap-hibernate/imap-hibernate-client.c M src/imap-login/client.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.h M src/imap/imap-client-hibernate.c M src/imap/imap-master-client.c M src/imap/imap-settings.c M src/imap/imap-settings.h M src/lib-auth/auth-client.h M src/lib-auth/auth-master.h M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-http/http-client-connection.c M src/lib-http/http-server-connection.c M src/lib-http/test-http-server.c M src/lib-imap-client/imapc-client.h M src/lib-imap-urlauth/imap-urlauth-private.h M src/lib-imap-urlauth/imap-urlauth.h M src/lib-lda/lmtp-client.c M src/lib-lda/lmtp-client.h M src/lib-lda/smtp-client.c M src/lib-master/master-service-haproxy.c M src/lib-master/master-service.h M src/lib-master/service-settings.h M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h M src/lib-sql/driver-mysql.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/pop3c/pop3c-client.h M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-settings.h M src/lib-storage/mail-storage-service.h M src/lib/connection.c M src/lib/connection.h M src/lib/fd-close-on-exec.c M src/lib/iostream-rawlog.c M src/lib/net.c M src/lib/net.h M src/lib/uri-util.c M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/lmtp-proxy.h M src/login-common/client-common-auth.c M src/login-common/client-common.h M src/login-common/login-common.h M src/login-common/login-proxy-state.c M src/login-common/login-proxy-state.h M src/login-common/login-proxy.c M src/login-common/login-proxy.h M src/master/master-settings.c M src/master/service-listen.c M src/master/service.c M src/pop3-login/client.c M src/replication/aggregator/aggregator-settings.c M src/replication/aggregator/aggregator-settings.h M src/replication/aggregator/replicator-connection.c M src/replication/aggregator/replicator-connection.h 2015-08-29 14:21:27 +0300 Stephan Bosch (b116c06e4) ioloop-epoll: Fix fatal epoll_wait() error occurring when there are only ios with no fd. M src/lib/ioloop-epoll.c 2015-08-29 14:20:57 +0300 Stephan Bosch (62812c68a) lib-http: client: Added proper handling of 408 response status. This is treated as a special server connection close event, rather than a response to the last issued request. M src/lib-http/http-client-connection.c 2015-08-28 15:44:34 +0200 Timo Sirainen (23152672e) lib-storage: Added %{userdb:*} expansion to mail settings. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2015-08-28 15:43:45 +0200 Timo Sirainen (fd3994922) lib-settings: Added settings_var_expand_with_funcs() M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h 2015-08-28 15:07:35 +0200 Timo Sirainen (654b46078) lib: If var_expand_with_funcs() function returns NULL, it should be treated the same as "" The previous behavior was to return "%{foo:bar}" as "foo:bar}". M src/lib/test-var-expand.c M src/lib/var-expand.c 2015-08-28 14:43:35 +0200 Timo Sirainen (2dfd08e8a) *-login: Added %{passdb:*} fields to login_log_format_elements M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2015-08-27 18:39:58 +0200 Timo Sirainen (89f9c7bf3) doveadm fs delete: Support giving multiple filename parameters. M src/doveadm/doveadm-fs.c 2015-08-27 17:38:12 +0200 Timo Sirainen (414b2d3b6) dsync: Include mailboxes' full path in debug messages. M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree.h 2015-08-27 17:35:17 +0200 Timo Sirainen (d1d6887e8) imapc: Don't crash with mailbox_list_index=yes M src/lib-storage/list/mailbox-list-index.c 2015-08-27 17:34:52 +0200 Timo Sirainen (9b3565b09) lib: Try fixing ec6e672a6e32 (ioloop timeout fixing) Previous code was broken at least when moving a timeout between ioloops. This is now tested and works. M src/lib/Makefile.am M src/lib/ioloop-private.h M src/lib/ioloop.c M src/lib/test-ioloop.c M src/lib/test-lib.c M src/lib/test-lib.h 2015-08-27 15:46:23 +0200 Timo Sirainen (36f8309ee) dsync: Fixed running with tcp/tcps destination. M src/doveadm/doveadm-dsync.c 2015-08-27 15:28:21 +0200 Timo Sirainen (66e5a5a1b) dsync: Fixed another crash with recent end-of-list changes. M src/doveadm/dsync/dsync-brain-mails.c 2015-08-27 15:07:35 +0200 Timo Sirainen (9c0c600b3) Reverted ec6e672a6e32 for now due to some bugs. M src/lib/Makefile.am M src/lib/ioloop-private.h M src/lib/ioloop.c M src/lib/test-lib.c M src/lib/test-lib.h 2015-08-27 13:38:44 +0200 Timo Sirainen (1a1d00fd0) dsync: Added -D parameter to disable mailbox renaming. The renaming logic is annoyingly complex and there are some bugs left in it. With this parameter renames are never even attempted, but instead a rename would be done (slowly) with mailbox delete + create + fill. Although with imapc protocol mailbox renames are rarely detected anyway. M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.h 2015-08-27 12:33:47 +0200 Timo Sirainen (8c2c9a864) dsync: Fixed again waiting for remote process wait to die. We can't rely on stderr getting closed. It doesn't happen if the remote process crashes. Now waiting for SIGCHLD in ioloop should solve this and still log all the error messages at exit. M src/doveadm/doveadm-dsync.c 2015-08-27 10:39:26 +0200 Stephan Bosch (72a7c4f2b) ioloop: Delay actual start of a new normal timeout until the next io_loop_run() cycle. This makes sure that timeouts will not expire before they get a chance to run. M src/lib/Makefile.am M src/lib/ioloop-private.h M src/lib/ioloop.c A src/lib/test-ioloop.c M src/lib/test-lib.c M src/lib/test-lib.h 2015-08-26 17:00:55 +0200 Timo Sirainen (ae9b70a44) imapc: Fixed handling escape-char The current code should now handle all kinds of mailbox names correctly, including: ~/foo %7e/bar M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c 2015-08-26 16:59:47 +0200 Timo Sirainen (d3e5a14ea) lib-storage: mailbox_list_[un]escape_name() can now be called globally M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2015-08-26 16:59:07 +0200 Timo Sirainen (33409f344) dsync: Earlier end-of-list change broke single-process dsync. M src/doveadm/dsync/dsync-brain-mails.c 2015-08-26 15:44:45 +0200 Timo Sirainen (c892c8b59) dsync: Make sure we print all the stderr output from remote processes at deinit. Earlier the final messages may have been lost, especially if debug logging was enabled. M src/doveadm/doveadm-dsync.c 2015-08-26 15:19:27 +0200 Timo Sirainen (1ff34185c) dsync: Added -T parameter to specify the I/O stall timeout. M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h 2015-08-26 15:05:06 +0200 Timo Sirainen (7abb6c894) dsync: If mailbox export deinit failed, the failure state may not have reached mailbox importer. The "end of list" was sent to the importer side dsync before export noticed the failure. This could have caused import to complain about missing mails. M src/doveadm/dsync/dsync-brain-mails.c 2015-08-26 13:38:52 +0200 Timo Sirainen (189f639bd) dsync: Added assert to make sure end-of-list isn't sent when brain has already failed. M src/doveadm/dsync/dsync-brain-mails.c 2015-08-25 23:20:49 +0300 Timo Sirainen (83228b3f9) imap: If mailbox state couldn't be exported for hibernation, log also the mailbox name. M src/imap/imap-client-hibernate.c 2015-08-25 23:12:51 +0300 Timo Sirainen (c12d96f12) login_log_format_elements: Added %{listener} variable to expand to the listener socket name. M src/login-common/client-common.c M src/login-common/client-common.h 2015-08-25 22:39:16 +0300 Timo Sirainen (e64b3633c) example-config: Updated mail_attribute_dict comment M doc/example-config/conf.d/10-mail.conf 2015-08-25 18:32:23 +0300 Timo Sirainen (f3fa33be5) imap: Fail silently if selected mailbox format doesn't support GUIDs. M src/imap/imap-state.c 2015-08-25 18:27:44 +0300 Timo Sirainen (b4318afaa) imap: Fixed hibernation to work with non-TCP connections. Mainly meaning UNIX socket connections from login processes, which are proxying TLS connections. M src/imap/imap-client-hibernate.c 2015-08-25 17:03:19 +0300 Timo Sirainen (03435aae7) lib-http: Added more debug logging. Patch by Stephan Bosch. M src/lib-http/http-client-peer.c 2015-08-25 16:57:57 +0300 Timo Sirainen (639ba5ff2) lib-imap-client: Allow reconnecting to IMAP server even if there had been no idle moments. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h 2015-08-25 16:55:00 +0300 Timo Sirainen (1e95710be) lib-imap-client: Removed unused pending_box_command_count M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-connection.c 2015-08-25 16:50:17 +0300 Timo Sirainen (14fd61e73) imapc: If FETCH commands fail, have imapc_mail_fetch() always return failure. Earlier it may have returned success and imapc would later complain about a missing FETCH field. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.h 2015-08-25 01:07:04 +0300 Timo Sirainen (a350c75b6) lib: Fixed io_loop_extract_notify_fd() to compile with kqueue. M src/lib/ioloop-notify-kqueue.c 2015-08-24 18:06:42 +0300 Timo Sirainen (13f4d4d4a) lib-master: struct master_service_connection.name must never be NULL, use "" instead. Fixes crash at least in auth process when there are inet_listeners without names. M src/lib-master/master-service.c 2015-08-24 15:33:36 +0300 Timo Sirainen (472f3cbaa) dsync: Compiler warning fix to previous change. M src/doveadm/dsync/dsync-mailbox-import.c 2015-08-24 14:59:52 +0300 Timo Sirainen (eb7299686) dsync: Fixed memory leaks when importing attributes whose values were in istreams. M src/doveadm/dsync/dsync-mailbox-import.c 2015-08-24 14:40:11 +0300 Timo Sirainen (f43b035d7) doveadm backup: Fixed assert-crash due to duplicate 'R' in getopt args. M src/doveadm/doveadm-dsync.c 2015-08-24 14:32:52 +0300 Timo Sirainen (8b9a69edc) imap: Compiler warning fix to imap-hibernate commit M src/imap/imap-state.c 2015-08-24 14:13:02 +0300 Timo Sirainen (5ef28f68e) Added imap-hibernate process for gathering IDLEing imap processes. imap_hibernate_timeout setting controls how quickly the connection is moved from imap process to imap-hibernate process. Some IMAP extensions like NOTIFY, SEARCH=CONTEXT and COMPRESS aren't supported yet. There's also a new X-STATE command, which can be used to export the current IMAP connection state to a string and later on imported to get back to the original state (a quick resync feature for IMAP clients). However, this command is disabled for now due to the current code being unoptimized for untrusted input. M .hgignore M configure.ac M src/Makefile.am A src/imap-hibernate/Makefile.am A src/imap-hibernate/imap-client.c A src/imap-hibernate/imap-client.h A src/imap-hibernate/imap-hibernate-client.c A src/imap-hibernate/imap-hibernate-client.h A src/imap-hibernate/imap-hibernate-settings.c A src/imap-hibernate/imap-master-connection.c A src/imap-hibernate/imap-master-connection.h A src/imap-hibernate/main.c M src/imap/Makefile.am M src/imap/cmd-idle.c A src/imap/cmd-x-state.c A src/imap/imap-client-hibernate.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c M src/imap/imap-commands.h M src/imap/imap-common.h A src/imap/imap-master-client.c A src/imap/imap-master-client.h M src/imap/imap-settings.c M src/imap/imap-settings.h A src/imap/imap-state.c A src/imap/imap-state.h M src/imap/main.c M src/lib-storage/mail-user.c M src/plugins/imap-zlib/imap-zlib-plugin.c 2015-08-24 14:14:59 +0300 Timo Sirainen (179d6dfa0) lib-storage: Added mailbox_watch_extract_notify_fd() M src/lib-storage/mailbox-watch.c M src/lib-storage/mailbox-watch.h 2015-08-24 14:02:52 +0300 Timo Sirainen (dad206f83) lib: Added io_loop_extract_notify_fd() M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-kqueue.c M src/lib/ioloop-notify-none.c M src/lib/ioloop.h 2015-08-24 14:01:04 +0300 Timo Sirainen (b2fa9f195) lib-storage: Added mailbox_recent_flags_set_uid_forced() This allows adding recent flags to mails whose UID is lower than the existing recent mails. M src/lib-storage/mailbox-recent-flags.c M src/lib-storage/mailbox-recent-flags.h 2015-08-24 13:57:03 +0300 Timo Sirainen (192488b41) lib-storage: mail_storage_service_user_free() needs to update log prefix if current user is freed. M src/lib-storage/mail-storage-service.c 2015-08-24 12:56:07 +0300 Timo Sirainen (872876c29) lib-storage: mail_user_var_expand_table() may not have returned %{auth_username} correctly M src/lib-storage/mail-user.c 2015-08-24 12:14:40 +0300 Timo Sirainen (c5f932968) Use io_stream_get_disconnect_reason() instead of duplicating its code all over the place. M src/imap/imap-client.c M src/lib/connection.c M src/lmtp/client.c M src/login-common/client-common-auth.c M src/pop3/pop3-client.c 2015-08-24 12:10:08 +0300 Timo Sirainen (b554101f7) lib: Added io_stream_get_disconnect_reason() to iostream.h M src/lib/Makefile.am M src/lib/iostream-private.h M src/lib/iostream.c A src/lib/iostream.h 2015-08-24 12:04:55 +0300 Timo Sirainen (8d54ab986) lib: connection_disconnect_reason() now returns the full iostream error string. M src/lib/connection.c 2015-08-20 16:04:48 +0300 Timo Sirainen (ef8187766) imap: Fixed memory leak in SELECT QRESYNC error handling path. M src/imap/cmd-select.c 2015-08-19 21:41:55 +0300 Timo Sirainen (695332ded) imap: Code cleanup Keep client_add_input() functionality separate from client_create_from_input(). Also this way temporary buffer doesn't need to be created to add the input in login_client_connected(). M src/imap/main.c 2015-08-19 21:31:56 +0300 Timo Sirainen (fefe9afdb) lib: Log notify IO leaks when ioloop is destroyed. M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-kqueue.c 2015-08-19 21:24:50 +0300 Timo Sirainen (f6845101f) lib: io_add_notify() wasn't setting struct io.source_linenum M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-kqueue.c M src/lib/ioloop-notify-none.c M src/lib/ioloop.h 2015-08-19 20:49:12 +0300 Timo Sirainen (495a74cd1) imap: If command has no imap_parser, don't crash when freeing the command. All the current commands have a parser though, so this doesn't actually fix anything. M src/imap/imap-client.c 2015-08-19 16:50:10 +0300 Timo Sirainen (85e2264f7) lib: inotify doesn't need to watch for IN_CLOSE This doesn't indicate that the file was modified. We don't care if some reader accessed a watched file. M src/lib/ioloop-notify-inotify.c 2015-08-19 15:12:09 +0300 Timo Sirainen (7e2671b29) lib-storage: Moved index/index-mailbox-check.c code to mailbox-watch.c This changes the API, but adds backwards compatibility macros. M src/lib-storage/Makefile.am M src/lib-storage/index/Makefile.am M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/mail-storage-private.h R051 src/lib-storage/index/index-mailbox-check.c src/lib-storage/mailbox-watch.c A src/lib-storage/mailbox-watch.h 2015-08-19 14:47:51 +0300 Timo Sirainen (88e52b9ca) Removed support for dnotify. Everybody should be using inotify by now. M configure.ac M doc/example-config/conf.d/10-mail.conf M src/lib/Makefile.am D src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-fd.c M src/master/main.c 2015-08-19 14:33:09 +0300 Timo Sirainen (bb464f79a) pop3: Added %{deleted_bytes} variable to pop3_logout_format M doc/example-config/conf.d/20-pop3.conf M src/pop3/pop3-client.c 2015-08-19 14:30:09 +0300 Timo Sirainen (febb892a3) pop3: If transcation commit failed at QUIT, don't log any messages as expunged. M src/pop3/pop3-client.c M src/pop3/pop3-client.h M src/pop3/pop3-commands.c 2015-08-19 13:41:54 +0300 Timo Sirainen (f3739947c) lib: kqueue notification should trigger also on file renames. For example if dovecot.index.log is renamed to dovecot.index.log.2, we should notice that since there's now a new dovecot.index.log containing new changes. M src/lib/ioloop-notify-kqueue.c 2015-08-19 13:40:35 +0300 Timo Sirainen (a24e1400b) lib-storage: Code cleanup - Don't keep a separate notify_ios list. M src/lib-storage/index/index-mailbox-check.c M src/lib-storage/index/index-storage.h 2015-08-19 12:56:55 +0300 Timo Sirainen (817d02759) lib-storage: Moved most of the \Recent flag handling code to mailbox-recent-flags.c There are also some API changes, because functions were renamed and the recent_* fields were moved to struct mailbox. I'm not aware of any plugins using these though, except for index_mailbox_set_recent_seq() which for now is kept as a backwards compatibility macro. No changes were made to the actual code logic. M src/lib-storage/Makefile.am M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c A src/lib-storage/mailbox-recent-flags.c A src/lib-storage/mailbox-recent-flags.h M src/plugins/virtual/virtual-sync.c 2015-08-19 11:34:36 +0300 Timo Sirainen (aeba69ffa) *-login: Removed dead assignment to make static analyzer happy. M src/login-common/main.c 2015-08-18 23:20:35 +0300 Timo Sirainen (2e51f501c) fts-solr: Flush Solr indexing HTTP requests every 1000 mails. This avoids the HTTP request from becoming too huge. M src/plugins/fts-solr/fts-backend-solr.c 2015-08-18 23:20:07 +0300 Timo Sirainen (1a115c1eb) fts-solr: If HTTP request fails, log the status number as well. M src/plugins/fts-solr/solr-connection.c 2015-08-18 23:17:47 +0300 Timo Sirainen (068585377) fts-solr: Fix to previous memory leak fix - second request was failing. Duplicated data was sent to Solr because string wasn't truncated. M src/plugins/fts-solr/fts-backend-solr.c 2015-08-18 23:07:19 +0300 Timo Sirainen (5e19da15f) fts-solr: Fixed memory leak when indexing multiple mailboxes in one update context. M src/plugins/fts-solr/fts-backend-solr.c 2015-08-18 23:02:01 +0300 Stephan Bosch (3d1edb8e3) lib-http: client: Fixed handling of request timeout. It was inappropriately active when the client needed to take action. This showed particularly with large payloads sent using http_client_request_send_payload(). M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2015-08-18 21:10:41 +0300 Timo Sirainen (acff3d8f0) lib-http: Previous test-http-client safe_memset() change broke in some systems. Since there's no easy way to fix this in Makefile.am, just do it by actually using safe_memset().. M src/lib-http/Makefile.am M src/lib-http/test-http-client.c 2015-08-18 20:59:25 +0300 Timo Sirainen (5c46ec741) lib-http: test-http-client may have failed to load SSL library plugin. safe_memset() wasn't necessarily compiled into test-http-client. This is a bit kludgy way of just adding it. Another possibility could have been to use -Wl,--whole-archive with GNU ld, but it's a bit tricky here. M src/lib-http/Makefile.am 2015-08-18 20:54:47 +0300 Timo Sirainen (6a62f58e2) lib-http: test-http-client double-freed memory M src/lib-http/test-http-client.c 2015-08-18 20:39:24 +0300 Stephan Bosch (4356563bc) lib-http: url: Implemented http_url_clone_authority() to clone authority part of existing HTTP URL. M src/lib-http/http-url.c M src/lib-http/http-url.h 2015-08-18 20:39:24 +0300 Stephan Bosch (92c227278) lib-http: url: Implemented functions to copy/clone URLs including the userinfo part (normally skipped). M src/lib-http/http-url.c M src/lib-http/http-url.h 2015-08-18 20:39:24 +0300 Stephan Bosch (d01c7c7df) lib-http auth: Implemented cloning/copying of credentials struct. M src/lib-http/http-auth.c M src/lib-http/http-auth.h 2015-08-18 20:39:24 +0300 Stephan Bosch (4c4c4a740) lib-http client: Implemented proxy authentication using Basic scheme. M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2015-08-18 20:39:24 +0300 Stephan Bosch (91a4eaad6) lib-http client: Added inline function to check whether request is directed at a proxy. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2015-08-18 20:39:24 +0300 Stephan Bosch (30f35cf5d) lib-http client: Implemented simple authentication using Basic scheme. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h M src/lib-http/test-http-client.c 2015-08-18 20:39:24 +0300 Stephan Bosch (fb2098157) lib-http client: Removed useless assignment of request->authority in http_client_request_redirect(). It is assigned again in http_client_request_do_submit(). M src/lib-http/http-client-request.c 2015-08-18 20:39:24 +0300 Stephan Bosch (8aa91c0f7) lib-http client: Minor whitespace cleanups in struct http_client_request. M src/lib-http/http-client-private.h 2015-08-18 20:39:24 +0300 Stephan Bosch (af6baaa25) lib-http: url: Make sure destination url struct is cleared in http_url_copy(). M src/lib-http/http-url.c 2015-08-18 20:39:24 +0300 Stephan Bosch (79fa0267d) lib-http auth: Implemented client-side handling of basic authentication scheme. M src/lib-http/http-auth.c M src/lib-http/http-auth.h 2015-08-18 20:39:24 +0300 Stephan Bosch (68adc380c) lib-http auth: Fixed assertion on the validity of the token68 encountered during conversion to string. M src/lib-http/http-auth.c 2015-08-18 20:39:24 +0300 Stephan Bosch (06c6330d6) lib-http auth: Made second argument of http_auth_create_challenges() const as it should be. M src/lib-http/http-auth.c M src/lib-http/http-auth.h 2015-08-18 20:39:24 +0300 Stephan Bosch (77f3d7fc6) lib-http auth: Fixed segfault occurring in http_auth_challenge_copy() when there are no parameters. M src/lib-http/http-auth.c 2015-08-18 20:39:06 +0300 Timo Sirainen (8761992b5) lib-master: Added support for HAProxy protocol. Patch by Stephan Bosch - with some small changes. M src/lib-master/Makefile.am A src/lib-master/master-service-haproxy.c M src/lib-master/master-service-private.h M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-master/master-service.c M src/lib-master/service-settings.h M src/master/master-settings.c M src/master/service-process.c 2015-08-18 20:23:45 +0300 Timo Sirainen (71056e0f5) master: Changed passing of listener settings from master to process to be more flexible. This is needed to allow adding new listener settings, such as `haproxy'. Patch by Stephan Bosch - with some small changes. M src/lib-master/master-service-private.h M src/lib-master/master-service.c M src/master/service-process.c 2015-06-15 18:50:53 +0200 Stephan Bosch (a05fec120) lmtp, *-login: Use ip/port values from struct master_service_connection instead of from the socket. This way, a proxy protocol like HAProxy can transparently override these addresses with what is seen by the proxy. M src/lmtp/client.c M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/main.c 2015-06-15 18:50:53 +0200 Stephan Bosch (72f21884c) lib-master: Added local and real IP addresses and ports to struct master_service_connection. M src/lib-master/master-service.c M src/lib-master/master-service.h 2015-08-18 20:03:28 +0300 Timo Sirainen (8ab32a83c) lib-master: Moved connection accepting code to its own functions. No functional changes. M src/lib-master/master-service-private.h M src/lib-master/master-service.c 2015-08-17 19:31:42 +0300 Timo Sirainen (42562240c) lazy-expunge: If MAIL_FETCH_REFCOUNT fails because mail is expunged, ignore the error. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2015-08-17 19:28:55 +0300 Timo Sirainen (0f277a064) lazy-expunge: If MAIL_FETCH_REFCOUNT fails, log the storage error. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2015-08-17 14:25:59 +0300 Timo Sirainen (7b3f0e0a4) lib-fts: Minor cleanup - initialize err with U_ZERO_ERROR instead of 0. They're the same though. M src/lib-fts/fts-icu.c 2015-08-17 13:18:03 +0300 Teemu Huovila (3a54211bd) lib-fts: Add Unicode TR29 rule WB5a setting to tokenizer. Splits prefixing contracted words from base word. E.g. "l'homme" -> "l" "homme". Together with a language specific stopword list unnecessary contractions can thus be filtered away. This is disabled by default and only works with the TR29 algorithm. Enable by "fts_tokenizer_generic = algorithm=tr29 wb5a=yes" M src/lib-fts/fts-common.h M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/test-fts-tokenizer.c 2015-08-17 13:15:11 +0300 Teemu Huovila (bcc55b154) lib-fts: Add note about possible additional apostrophe. M src/lib-fts/fts-common.h 2015-08-17 13:14:44 +0300 Teemu Huovila (d1623103c) lib-fts: Update comment on tr29 rules. M src/lib-fts/fts-tokenizer-generic.c 2015-08-17 12:56:25 +0300 Timo Sirainen (ff32ec7f6) indexer: Removed counting worker processes as service clients to prevent idle-kill. lib-master handles this internally now. Also if the max client count was reached, we assert-crashed: indexer: Panic: file master-service.c: line 672 (master_service_client_connection_created): assertion failed: (service->master_status.available_count > 0) M src/indexer/worker-pool.c 2015-08-17 12:53:52 +0300 Timo Sirainen (2f94ca6b0) lib-master: If idle-die callback returns FALSE, notify master that we don't want to die. This avoids the master thinking that we're ignoring its idle-kill signal and logging an error. M src/lib-master/master-service.c 2015-08-17 12:51:43 +0300 Timo Sirainen (b17d7bbd2) lib-master: Code cleanup - split master_status_update() to two functions. No functional changes. M src/lib-master/master-service.c 2015-08-16 13:22:14 +0200 Timo Sirainen (a578aaf57) lib-fs: Moved enum fs_op from fs-randomfail.c to fs-api-private.h These are useful for other purposes as well. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-randomfail.c 2015-08-16 13:17:06 +0200 Timo Sirainen (8f8858ba3) lib-fs: Fix to earlier write_stream_finish() commit 2f1378beeef6 accidentally reversed == and != check. M src/lib-fs/fs-api.c 2015-08-16 13:14:11 +0200 Timo Sirainen (1445b15b4) lib-fs: fs_copy*() didn't update metadata_changed correctly. It was supposed to be (only) set when the copying actually finished. M src/lib-fs/fs-api.c 2015-08-16 13:10:48 +0200 Timo Sirainen (825e349a8) lib-fs: Small code cleanup for handling write_stream_finish() M src/lib-fs/fs-api.c 2015-08-16 13:07:21 +0200 Timo Sirainen (b76b97a5b) lib-fs: fs_write() didn't update stats.write_count correctly. If backend implemented asynchronous write(), the write_count was updated multiple times. If backend didn't implement write(), then it was counted twice. M src/lib-fs/fs-api.c 2015-08-15 12:14:35 +0200 Timo Sirainen (1132d309c) dsync: Fixed syncing a recursive delete of mailbox with children. For example if 1/2/3 exists in both sides and then 1/2/3, 1/2 and 1 are deleted from one side, the next dsync would delete 1/2/3, but leave 1/2 and 1 undeleted. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2015-08-15 12:05:34 +0200 Timo Sirainen (34256c024) dsync: If mailbox is already deleted locally, don't attempt to delete it again. This only caused an unnecessary desync warning / exit code. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2015-08-12 12:52:06 +0300 Timo Sirainen (3a6376147) pop3: Added pop3_delete_type setting with values "default", "expunge" or "flag". This is related to pop3_deleted_flag setting. The main behefit here is that you can now hide messages from POP3 by setting pop3_deleted_flag, but without changing the actual deletion behavior by setting pop3_delete_type=expunge. M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/pop3/pop3-settings.h 2015-08-11 14:27:01 +0300 Timo Sirainen (f1306b3d2) lib-fts: Install headers on make install. M src/lib-fts/Makefile.am 2015-08-10 15:39:50 +0300 Timo Sirainen (67e599e10) rawlog: Removed unnecessary/duplicate 'o' from getopt_args This caused assert-crash at startup after ff17864ba6e0. M src/util/rawlog.c 2015-08-10 15:35:43 +0300 Timo Sirainen (809751b9a) lda: Removed unnecessary/duplicate 'k' from getopt_args This caused assert-crash at startup after ff17864ba6e0. M src/lda/main.c 2015-08-09 21:54:33 +0300 Timo Sirainen (48ed692c4) man: doveadm-import -s description updated The previously mentioned subscriptions-file is specific to Maildir format. M doc/man/doveadm-import.1.in 2015-08-07 15:32:28 +0300 Timo Sirainen (22b88a9dd) doveadm: Make sure we can't accidentally add duplicate getopt args. M src/doveadm/doveadm-mail.c 2015-08-07 15:32:14 +0300 Timo Sirainen (9b0f6b90f) lib-master: Make sure we can't accidentally add duplicate getopt args. M src/lib-master/master-service.c M src/lib-master/master-service.h 2015-08-07 15:30:26 +0300 Timo Sirainen (2759d1452) stats: Added session= filter to doveadm dump session|command M src/stats/client-export.c 2015-08-07 15:13:34 +0300 Timo Sirainen (7fbad92f3) dsync: Renamed -F parameter to -O to avoid a conflict doveadm mail commands already had a generic -F parameter. M src/doveadm/doveadm-dsync.c 2015-08-07 13:32:02 +0300 Timo Sirainen (e99ffa6ab) fts-solr: "highest UID for mailbox" lookup was actually returning "highest UID for user" If the default operator was OR instead of AND. This affected indexing mails in newly created mailboxes. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2015-08-07 12:58:30 +0300 Timo Sirainen (29cda2d6e) lib: istream-timeout could have triggered timeout too early after long-running code. M src/lib/istream-timeout.c 2015-08-07 11:31:29 +0300 Timo Sirainen (146f6f85d) fts: If Tika returns 500, retry it a couple of times and then fallback to ignoring the problem. M src/plugins/fts/fts-parser-tika.c 2015-08-06 22:36:20 +0300 Timo Sirainen (6b757d07f) lib-storage: Make sure tryagain_r is never randomly set in mailbox_search_next_nonblock() This infinite looping in some fts plugin failure situations. M src/lib-storage/mail-storage.c 2015-08-06 12:17:45 +0300 Timo Sirainen (38db7268f) stats: If process was used for multiple sessions, some of the fields weren't set correctly. For example the second user's disk_output was increased at startup by the same amount as what the previous user's last disk_output value was. M src/plugins/stats/stats-plugin.c 2015-08-04 11:31:17 +0300 Timo Sirainen (f0d09be40) lib-storage: escape_char and broken_char settings weren't copied on mailbox_list_create() M src/lib-storage/mailbox-list.c 2015-07-20 10:33:39 +0300 Timo Sirainen (668f92ab0) lib-storage: Another fix for doing multiple changes via mailbox_attribute_set/unset M src/lib-storage/index/index-attribute.c 2015-07-19 16:45:23 +0300 Timo Sirainen (5199b5765) lib-mail: Fixed message_part_to_idx() M src/lib-mail/message-part.c M src/lib-mail/test-message-part.c 2015-07-19 16:21:04 +0300 Timo Sirainen (cd889f59c) pop3-migration: Compiling fix in some systems M src/plugins/pop3-migration/Makefile.am 2015-07-19 10:57:26 +0300 Timo Sirainen (4a9bbf81a) lib-storage: Fixed doing multiple changes via mailbox_attribute_set/unset() Only the last change was committed and the earlier changes were just leaking memory. M src/lib-storage/index/index-attribute.c 2015-07-16 19:37:22 +0300 Timo Sirainen (b3070aca2) pop3-migration: Fetch physical sizes instead of virtual sizes so pop3c uses LIST 4bebfbb32410 caused the fetching to break entirely. M src/plugins/pop3-migration/pop3-migration-plugin.c 2015-07-16 18:10:12 +0300 Timo Sirainen (7e8bfb5b0) pop3-migration: Use LIST instead of RETRs to get the messages' sizes. M src/plugins/pop3-migration/pop3-migration-plugin.c 2015-07-16 18:09:17 +0300 Timo Sirainen (bca734e14) lib-mail: Updated test-message-header-parser unit test M src/lib-mail/test-message-header-parser.c 2015-07-16 18:08:40 +0300 Timo Sirainen (e18e90938) pop3-migration: Truncate header if there's line containing only CR(s). This fixes matching IMAP <-> POP3 messages when the servers behave differently. M src/plugins/pop3-migration/Makefile.am M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/pop3-migration/pop3-migration-plugin.h A src/plugins/pop3-migration/test-pop3-migration-plugin.c 2015-07-14 15:08:24 +0200 Timo Sirainen (7faf475a2) pop3-migration: Show the first message's number and UIDL which wasn't found from IMAP. M src/plugins/pop3-migration/pop3-migration-plugin.c 2015-07-11 12:16:56 +0300 Timo Sirainen (e048e63fe) lib-storage: If mailboxes' vsizes are used, keep them updated also in mailbox list index. This allows looking them up quickly without opening the actual mailbox indexes. M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/list/mailbox-list-notify-tree.c 2015-07-11 12:14:48 +0300 Timo Sirainen (c16bf6335) quota: Use MAILBOX_METADATA_PHYSICAL_SIZE for recalculating mailbox's size. M src/plugins/quota/quota-count.c 2015-07-11 12:11:48 +0300 Timo Sirainen (dae42444a) lib-storage: Added MAILBOX_METADATA_PHYSICAL_SIZE If backend always uses the same virtual and physical sizes, this is implemented via the MAILBOX_METADATA_VIRTUAL_SIZE code. Otherwise it searches all the messages and sums up their physical sizes. M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.h M src/lib-storage/mail-storage.h 2015-07-11 12:06:44 +0300 Timo Sirainen (382f23541) lib-storage: Moved vsize_hdr_ext_id to struct mailbox for more global access. M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/mail-storage-private.h 2015-07-11 12:03:56 +0300 Timo Sirainen (2c7008613) lib-storage: Renamed struct index_vsize_header to struct mailbox_index_vsize Also moved the struct to mail-storage-private.h for more global access. M src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/mail-storage-private.h 2015-07-11 12:00:38 +0300 Timo Sirainen (2c759e519) lib-storage: Moved mailbox vsize calculation code to its own file. No functional differences. M src/lib-storage/index/Makefile.am A src/lib-storage/index/index-mailbox-size.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.h 2015-07-03 13:55:17 +0300 Timo Sirainen (67d4da9d5) quota: Even if quota counting fails, commit the mailbox transaction. The only changes in the transaction are changes to dovecot.index.cache file and we don't want to rollback those. M src/plugins/quota/quota-count.c 2015-07-03 13:54:18 +0300 Timo Sirainen (e7c8048ee) quota: Fixed error handling in quota counting code. Errors weren't logged and some error checking was missing. M src/plugins/quota/quota-count.c 2015-07-02 11:06:04 +0200 Timo Sirainen (c5c244da9) mdbox: Make sure rebuilding doesn't try to add a copy of the message too many times. Currently it just silently overflowed the 16bit refcount, which caused problems later. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2015-06-30 14:26:00 +0300 Timo Sirainen (5a3ff8dc3) istream-zlib: Don't overwrite parent istream's error on gz header/trailer read errors. M src/lib-compression/istream-zlib.c 2015-06-30 13:58:15 +0300 Timo Sirainen (c4d1ceab4) doveadm: Added doveadm_username to specify the username for authentication. The default is still "doveadm" and the server side doesn't currently support anything except "doveadm". M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/server-connection.c 2015-06-30 12:18:08 +0300 Timo Sirainen (2c0f1cb7a) istream filters: If parent's i_stream_stat() fails, copy the stream_errno. This doesn't actually change any functionality yet, since most i_stream_stat() callers aren't using i_stream_get_error(). M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-fs/istream-metawrap.c M src/lib-mail/istream-header-filter.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib/istream-limit.c M src/lib/istream-sized.c M src/lib/istream.c M src/plugins/mail-filter/istream-ext-filter.c 2015-06-30 12:17:35 +0300 Timo Sirainen (e17d72cec) lib: istream_file.stat() fails, set stream_errno and error string. For now we'll also keep logging the error since everybody isn't using i_stream_get_error(). M src/lib/istream-file.c 2015-06-30 11:26:47 +0300 Timo Sirainen (ffc2b0165) master: When sending SIGTERM/SIGKILL to processes, log which services they were sent to. M src/master/service.c 2015-06-29 20:25:15 +0300 Timo Sirainen (0a9d52be3) imap/pop3-login: If auth failure reason already begins with [resp-code], don't prefix it with another one. M src/imap-login/client-authenticate.c M src/pop3-login/client.c 2015-06-29 13:36:38 +0300 Timo Sirainen (5291b4f7a) lib: Fixed unit test with big-endian CPUs. Patch by Michal Hlavinka / Redhat M src/lib/test-net.c 2015-06-29 13:06:03 +0300 Timo Sirainen (55e8c2dec) lib: Fixed read buffer overflow in wildcard_match*() Patch by Hanno Böck. Note that input to wildard_match*() is always coming only from trusted sources, like config file or doveadm commands. M src/lib/wildcard-match.c 2015-06-29 12:05:25 +0300 Timo Sirainen (29ffe7066) indexer: Properly fix crashing at deinit when there are pending requests. M src/indexer/indexer-queue.c 2015-06-29 12:00:05 +0300 Timo Sirainen (d03ffc649) indexer: Reverted 5945ba000a45 - it didn't really help M src/indexer/indexer.c 2015-06-29 11:44:00 +0300 Timo Sirainen (1d69f58db) indexer: Fixed crash at deinit if there were still queued requests. M src/indexer/indexer.c 2015-06-24 07:54:35 +0200 Timo Sirainen (2d0c822bc) imapc: Fixed check to see if prefix!="" in previous commit. M src/lib-storage/index/imapc/imapc-list.c 2015-06-23 11:31:21 +0200 Timo Sirainen (db3325d02) lib-storage: Set MAILBOX_SELECT/NONEXISTENT for namespace prefix even if no flags are wanted. This fixes doveadm commands attempting to access such nonexistent mailbox prefixes. M src/lib-storage/list/mailbox-list-iter.c 2015-06-23 11:30:27 +0200 Timo Sirainen (7882e10fd) imapc: Don't return mailbox list entries that would result in name="". So basically don't return namespace prefix if imapc_list_prefix="". M src/lib-storage/index/imapc/imapc-list.c 2015-06-23 11:12:38 +0200 Timo Sirainen (9a717bf84) imapc: If login is aborted at deinit, don't log an error. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2015-06-23 11:02:20 +0200 Timo Sirainen (c1a2ab409) imapc: Don't automatically login to IMAP server for list=no namespaces. M src/lib-storage/index/imapc/imapc-storage.c 2015-06-18 11:10:05 +0300 Timo Sirainen (2ff548b46) lib-http: http_client_request_send() failure returned already-freed error string. M src/lib-http/http-client-request.c 2015-06-17 16:37:37 +0300 Timo Sirainen (976459a13) fs-posix: Hide temporary files from fs_iter_*() Those could exist just because another process is just using them to create new files to the directory. Although they could also be older files caused by earlier crashes. It would probably be a good idea to have fs_iter_*() delete the old temporary files automatically. M src/lib-fs/fs-posix.c 2015-06-17 14:25:48 +0300 Timo Sirainen (96d85fb36) virtual: virtual_uids weren't always set to all mails, causing missing mails and crashes in search. M src/plugins/virtual/virtual-sync.c 2015-06-17 14:24:06 +0300 Timo Sirainen (a5a443375) virtual: Added more asserts when DEBUG is enabled. M src/plugins/virtual/virtual-sync.c 2015-06-17 14:23:38 +0300 Timo Sirainen (cc7e2c390) virtual: Added more asserts. M src/plugins/virtual/virtual-storage.c 2015-06-17 14:04:42 +0300 Timo Sirainen (d4fbb3317) fts-solr: Avoid sending too large queries to Solr due to listing wanted mailboxes. This is mainly a problem if there are a lot of mailboxes and "All Mails" virtual mailbox. For now hardcoded to send max 10 mailboxes in the query, afterwards it just returns matches in all the mailboxes and we'll filter out the unwanted mailboxes. M src/plugins/fts-solr/fts-backend-solr.c 2015-06-17 13:55:37 +0300 Timo Sirainen (57cefeb34) fts-solr: Removed assert to fix indexing multiple mailboxes. fts plugin may want to do last-uid lookup for a new mailbox while we still have posting open for the previous one. M src/plugins/fts-solr/solr-connection.c 2015-06-17 13:12:37 +0300 Timo Sirainen (ae19dcf61) fts-tika: Fixed crashes when indexing larger attachments with fts-solr. We were mixing ioloops without switching back to the original ioloop in the middle. Also io_remove() at deinit caused another timeout to be added, so this needs to be done while original ioloop is active or we'll just leak the just-added timeout in io_loop_destroy() and crash later. M src/plugins/fts/fts-parser-tika.c 2015-06-17 12:22:17 +0300 Timo Sirainen (30605b7bd) lib-fs: Removed redundant o_stream_nfinish() calls M src/lib-fs/fs-posix.c M src/lib-fs/fs-randomfail.c M src/lib-fs/fs-sis.c 2015-06-17 12:21:52 +0300 Timo Sirainen (4244105be) lib-fs: Call o_stream_nfinish() automatically for all backends in fs_write_stream_finish() Otherwise each backend needs to do it internally. fs-metawrap for example was missing this and causing assert-crashes. M src/lib-fs/fs-api.c 2015-06-17 11:42:53 +0300 Phil Carmody (03e0be246) lib: test-data-stack - simplify #if-ing out of DEBUG-only fatal test With no canaries, nothing can be tested, so just reduce this to a trivial 1-line return on the non-DEBUG case. Signed-off-by: Phil Carmody M src/lib/test-data-stack.c 2015-06-17 11:42:30 +0300 Phil Carmody (f4a820824) lib: test-data-stack - ensure t_push() and t_pop() are balanced in fatal tests If the t_pop() unexpectedly succeeds, we won't want to do another one upon entering the function again. Signed-off-by: Phil Carmody M src/lib/test-data-stack.c 2015-06-17 11:31:02 +0300 Timo Sirainen (1cd595423) auth: Added allow_real_nets setting. The difference to allow_nets is that it matches against the connection's "real IP" rather than what the connection told was the original client's IP address (%{rip} vs %{real_rip}) M src/auth/auth-request.c 2015-06-16 17:19:12 +0300 Timo Sirainen (4487c6612) lib: Added unix_client_connect_msecs setting to connection API. M src/lib/connection.c M src/lib/connection.h 2015-06-16 16:56:08 +0300 Timo Sirainen (c1d99776b) lib: Compiler warning fix for test-ostream-failure-at. M src/lib/test-ostream-failure-at.c 2015-06-16 16:40:29 +0300 Timo Sirainen (5a441a6d9) lib-fs: Added "randomfail" driver. Using this in front of fs drivers allows randomly injecting failures. For example: mail_attachment_fs = randomfail:all=10,read=30,read-range=2000-3000:sis posix This means that all FS operations have a 10% chance of failing, except reads have a 30% chance of failing. If the read fails, it'll fail somewhere between offsets 2000-3000 (the default is 0, so it'll fail at the start of file). The supported operations are: wait metadata prefetch read write lock exists stat copy rename delete iter. "all" applies to all of them. The supported ranges are: read-range, write-range, iter-range. M src/lib-fs/Makefile.am M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c A src/lib-fs/fs-randomfail.c 2015-06-16 16:22:18 +0300 Timo Sirainen (9294b9ad2) lib: Added o_stream_create_failure_at() to inject EIO at given offset in ostream M src/lib/Makefile.am A src/lib/ostream-failure-at.c A src/lib/ostream-failure-at.h M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-ostream-failure-at.c 2015-06-16 16:21:56 +0300 Timo Sirainen (289bb3985) lib: Added i_stream_create_failure_at() to inject EIO at given offset in istream. M src/lib/Makefile.am A src/lib/istream-failure-at.c A src/lib/istream-failure-at.h A src/lib/test-istream-failure-at.c M src/lib/test-lib.c M src/lib/test-lib.h 2015-06-16 14:12:59 +0300 Timo Sirainen (85dd5fe0b) dsync: If we stop because of a signal, log a warning about it. M src/doveadm/doveadm-dsync.c 2015-06-16 14:12:33 +0300 Timo Sirainen (eff345287) doveadm: Added doveadm_killed_signo() M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2015-06-16 00:29:07 +0300 Timo Sirainen (44ca7644e) fts: Avoid expanding mail_search_args multiple times (for optimization & crash-avoidance) Primarily this fixes the crash: index-search-result.c: line 132 (index_search_result_update_flags): assertion failed: (result->search_args->args == &search_arg) It could be triggered by: a search return (update) body body seen b store 1 +flags \seen c store 1 -flags \seen M src/lib-storage/mail-search.h M src/plugins/fts/fts-search-args.c 2015-06-16 00:16:42 +0300 Timo Sirainen (0084f25dd) fs-posix: fs_copy() didn't work with prefix= parameter M src/lib-fs/fs-posix.c 2015-06-15 14:55:03 +0300 Phil Carmody (15595e862) lib-stats: fix tristate-int vs. bool return value confusion -1 was being silently converted to true. However, this was an error condition. The callers don't need anything more complex than a bool, so kill the int. Signed-off-by: Phil Carmody M src/lib-stats/stats.c 2015-06-15 14:55:01 +0300 Phil Carmody (085a87d32) lib-fts: use NULL rather than 0 to shut up sparse Signed-off-by: Phil Carmody M src/lib-fts/fts-tokenizer.c 2015-06-15 14:54:58 +0300 Phil Carmody (ff060dcf7) director: explicitly mark _disconnect() helper static to match proto No functional change, compiler would not have exported the symbol, this just shuts up sparse. Signed-off-by: Phil Carmody M src/director/director-connection.c 2015-06-15 14:51:46 +0300 Timo Sirainen (b5439deff) fs-metawrap: If written file unexpectedly shrinks, return error instead of assert-crash. This shouldn't be happening, but we can't fully control it so an error is better. M src/lib-fs/fs-metawrap.c 2015-06-15 14:49:46 +0300 Timo Sirainen (4107ad482) fs-metawrap: Don't assert-crash when writing an empty file. M src/lib-fs/fs-metawrap.c 2015-06-15 14:35:25 +0300 Teemu Huovila (998e17137) lib-fts: Fix comment in fts-filter.h M src/lib-fts/fts-filter.h 2015-06-15 14:31:19 +0300 Phil Carmody (8549b59aa) lib: test-failures - tests get/set handlers and the various log levels Also indirectoy tests the new lib-test test_expect* family. Signed-off-by: Phil Carmody M src/lib/Makefile.am A src/lib/test-failures.c M src/lib/test-lib.c M src/lib/test-lib.h 2015-06-15 14:31:19 +0300 Phil Carmody (1b3a9b9e7) lib-test: test_expect_error_string() to match a single known message This gives us very fine control over what is acceptable as an expected warning. Alas you have to do it for each message individually. Signed-off-by: Phil Carmody M src/lib-test/test-common.c M src/lib-test/test-common.h 2015-06-15 14:31:19 +0300 Phil Carmody (7d442a685) lib-test: let tests invoke i_warning/i_error behaviour Error-handling paths should be testable too. Permit a test case to register that a known number of warnings/errors are to be expected, and to verify that those warnings did occur afterwards. Too many messages will fail the test exactly as it did in the past, they're unexpected messages. However, too few messages will also cause the test case to fail. Signed-off-by: Phil Carmody M src/lib-test/test-common.c M src/lib-test/test-common.h 2015-06-15 14:31:19 +0300 Phil Carmody (04e7cfc5e) lib-test: flush test-assert failure messages Diagnostic output to stderr may overtake these stdout logs if the streams are combined by the shell or on the console. fflush() might help realign them. Signed-off-by: Phil Carmody M src/lib-test/test-common.c 2015-06-15 14:25:07 +0300 Phil Carmody (fdc468280) lib: array - permit array_swap with uninitialised arrays Before initialisation, all fields are blank, so the element_size field is not the actual size, and the i_assert would fire. Signed-off-by: Phil Carmody M src/lib/array.h 2015-06-13 17:05:49 +0300 Timo Sirainen (ea9186123) lib-index: Added mail_index_ext_register_resize_defaults() M src/lib-index/mail-index.c M src/lib-index/mail-index.h 2015-06-13 16:46:06 +0300 Timo Sirainen (b50234708) cassandra: Commit failures returned an already freed error string. M src/lib-sql/driver-cassandra.c 2015-06-13 15:10:23 +0300 Timo Sirainen (98add73eb) lib-fts: Removed unnecessary data stack frames from test-fts-filter. They are already added by lib-test/test-common.c M src/lib-fts/test-fts-filter.c 2015-06-13 14:36:43 +0300 Timo Sirainen (0df566822) config: Added hook_config_parser_end for plugins. M src/config/config-parser-private.h M src/config/config-parser.c 2015-06-12 15:14:52 +0300 Timo Sirainen (28c669e01) doveadm mailbox delete -r: Delete all mailboxes when empty mailbox name is given. M src/doveadm/doveadm-mail-mailbox.c 2015-06-12 13:02:08 +0300 Timo Sirainen (f07e31181) lib-fts: Don't crash if fts_icu_*() are used after fts_icu_deinit() M src/lib-fts/fts-icu.c 2015-06-11 19:21:16 +0300 Timo Sirainen (b356019bc) lib-index: Avoid writing tail offset update to transaction log if it's not necessary. This should avoid extra writes that do nothing but update the tail offset. mdbox's map requires this behavior, so disable it for it. For others it might cause the next sync to read more data unnecessarily, but it should be worth the extra cost of write most of the times. M src/lib-index/mail-index-sync.c M src/lib-index/mail-index.h M src/lib-storage/index/dbox-multi/mdbox-map.c 2015-06-11 19:08:13 +0300 Timo Sirainen (e1ba96345) doveadm fetch: Added "refcount" field. M src/doveadm/doveadm-mail-fetch.c 2015-06-11 16:19:05 +0300 Timo Sirainen (e22ec7998) cassandra: Error handling cleanup. Probably doesn't fix any actual bugs. M src/lib-sql/driver-cassandra.c 2015-06-11 15:28:46 +0300 Timo Sirainen (6b4b3e5fe) cassandra: Minor code cleanup to make sure we don't try to access freed transaction memory. M src/lib-sql/driver-cassandra.c 2015-06-11 15:28:05 +0300 Timo Sirainen (b23a8d351) cassandra: Don't access freed memory when doing an assert-check. M src/lib-sql/driver-cassandra.c 2015-06-11 15:19:53 +0300 Timo Sirainen (01c4df2ad) doveadm fs delete -R: More fixes to handling errors without crashing. M src/doveadm/doveadm-fs.c 2015-06-10 20:29:35 +0300 Timo Sirainen (2010ab3fb) lmtp: Fixed assert-crash on anvil lookup failures. If anvil_client_query() fails, it immediately calls the callback and returns NULL. So we need to increase anvil_queries even before calling anvil_client_query() M src/lmtp/commands.c 2015-06-10 19:50:29 +0300 Timo Sirainen (2f9266ae8) doveadm fs delete -R: Fixed hang when some of the deletions failed. M src/doveadm/doveadm-fs.c 2015-06-10 16:18:10 +0300 Timo Sirainen (48ce7a375) cassandra: If log_level=debug/trace, log each query and its result. M src/lib-sql/driver-cassandra.c 2015-06-10 16:09:13 +0300 Timo Sirainen (b650f04c3) cassandra: Added extra asserts and sanity checks to make sure query errors are caught. M src/lib-sql/driver-cassandra.c 2015-06-10 16:08:28 +0300 Timo Sirainen (f0e811f0e) cassandra: Don't crash on failed queries. M src/lib-sql/driver-cassandra.c 2015-06-09 19:32:09 +0300 Timo Sirainen (bda46f9a6) dict-sql: Don't try to optimize finding a matching map by using the previous match. In some setups multiple maps can match and it's important that the matching is done in the same order always, otherwise the results could become somewhat random. M src/lib-dict/dict-sql.c 2015-06-05 16:37:24 +0300 Teemu Huovila (091932d9b) man: doveadm-pw.1: Fix typo. M doc/man/doveadm-pw.1.in 2015-06-04 21:03:42 +0000 Pascal Volk (74befaa48) man: doveadm-pw.1: Added a note about quoting password hashes. M doc/man/doveadm-pw.1.in 2015-06-04 21:57:32 +0300 Timo Sirainen (fe3f637ef) fts: lib-fts search arg expansion wasn't done for non-TEXT/BODY searches when fts_enforced=no M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c 2015-06-04 00:45:11 +0300 Timo Sirainen (be1126eef) fts: Added "doveadm fts expand" to show lib-fts search query expanded. M src/plugins/fts/doveadm-fts.c 2015-06-04 00:44:42 +0300 Timo Sirainen (9bafaf2be) lib-storage: Added mail_search_args_to_cmdline() This isn't entirely correct yet, but it's only going to be used for debugging for now. M src/lib-storage/Makefile.am A src/lib-storage/mail-search-args-cmdline.c M src/lib-storage/mail-search.h 2015-06-03 23:56:32 +0300 Timo Sirainen (2e3e24888) fts: Added "doveadm fts lookup" command. This is mainly useful for debugging lib-fts. It doesn't perform any of the lib-fts tokenization / filtering so you can do raw lookups. M src/plugins/fts/Makefile.am M src/plugins/fts/doveadm-fts.c 2015-06-03 22:39:52 +0300 Timo Sirainen (12952c18d) lib-fts: fts_tokenizer_reset() didn't reset the entire state. M src/lib-fts/fts-tokenizer.c 2015-06-03 22:30:05 +0300 Timo Sirainen (218095792) indexer: Improved handling multiple indexing requests to the same mailbox. If a request arrives for a mailbox that we were already indexes, the previous code simply sent the indexing request to the existing worker process. This could have caused a lot of requests to be buffered to the same mailbox if the indexing took a long time, which could have taken a while to process even though they weren't really doing anything indexing work. The new code instead just keeps track in memory that when the earlier indexing is finished, it's done again once to finish any pending changes. M src/indexer/indexer-queue.c M src/indexer/indexer-queue.h M src/indexer/indexer.c 2015-06-03 22:26:05 +0300 Timo Sirainen (be98c0c6d) indexer: Try to always flush as many requests from queue as possible. I don't think this changes the behavior much. It's mainly a code cleanup. M src/indexer/indexer.c 2015-06-03 22:25:28 +0300 Timo Sirainen (7fb611afe) indexer: Use array.h API instead of writing our own. The space savings aren't worth the extra complexity. M src/indexer/indexer-queue.c M src/indexer/indexer-queue.h 2015-06-03 21:50:40 +0300 Timo Sirainen (4462eb835) fts: If mail indexing fails, don't log a "BUG: Unknown internal error" M src/plugins/fts/fts-storage.c 2015-06-03 21:49:52 +0300 Timo Sirainen (07fcb647e) fts: If reading mail fails, log an error. M src/plugins/fts/fts-build-mail.c 2015-06-03 16:47:25 +0300 Teemu Huovila (fcf9e8a62) lib-lda: Fixed crash in mail_deliver_get_log_var_expand_table(). Discovered by clang static analyzer. This caused crashes with older versions of Pigeonhole. M src/lib-lda/mail-deliver.c 2015-06-03 01:04:49 +0300 Timo Sirainen (471167b97) lib-fts: Added "english-possessive" filter. M src/lib-fts/Makefile.am A src/lib-fts/fts-filter-english-possessive.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-filter.h M src/lib-fts/test-fts-filter.c 2015-06-03 01:04:07 +0300 Timo Sirainen (e8ee7a23b) lib-fts: Use UTF8_IS_START_SEQ() M src/lib-fts/fts-tokenizer-generic.c 2015-06-03 01:03:52 +0300 Timo Sirainen (3b02371c1) lib: Added UTF8_IS_START_SEQ() helper macro M src/lib/unichar.h 2015-06-03 00:46:23 +0300 Timo Sirainen (be7085921) lib-fts: fts-filter API changed to have a non-pointer vfuncs variable. The main benefit being that the fts-filter implementations can save a few lines of code. M src/lib-fts/fts-filter-lowercase.c M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter-private.h M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/fts-filter.c 2015-06-03 00:43:51 +0300 Timo Sirainen (9a5ff31ae) lib-fts: fts-lowercase can now use the default destroy function. M src/lib-fts/fts-filter-lowercase.c 2015-06-03 00:43:28 +0300 Timo Sirainen (bc180e646) lib-fts: Implemented default create/destory functions for fts-filters. M src/lib-fts/fts-filter.c 2015-06-03 00:39:11 +0300 Timo Sirainen (5a2910119) lib-fts: Moved IS_APOSTROPHE() to fts-common.h M src/lib-fts/Makefile.am A src/lib-fts/fts-common.h M src/lib-fts/fts-tokenizer-generic.c 2015-06-02 23:46:28 +0300 Timo Sirainen (a1f623619) example-config: Updated deliver_log_format comments M doc/example-config/conf.d/10-logging.conf 2015-06-02 23:43:05 +0300 Timo Sirainen (eda402832) lib-lda: Added %{to_envelope} to deliver_log_format M src/lib-lda/mail-deliver.c 2015-06-02 23:35:23 +0300 Timo Sirainen (7a0d71773) lib-fts: Compiling fix without libicu M src/lib-fts/fts-filter.c 2015-06-02 23:28:35 +0300 Timo Sirainen (266c879b4) lib-fts: Avoid compiler warning when building without libicu M src/lib-fts/fts-filter-lowercase.c 2015-06-02 22:47:21 +0300 Timo Sirainen (014cfdf92) imapc: If auth fails due to connection failure, don't treat it the same as failed login. M src/lib-storage/index/imapc/imapc-storage.c 2015-06-02 22:20:03 +0300 Timo Sirainen (b5440e0ae) lib-fts: Fixed compiling without libicu M src/lib-fts/fts-filter-lowercase.c 2015-06-02 22:16:46 +0300 Timo Sirainen (0894188da) lib-fts: Added more supported languages. This includes now all the ones that are currently supported by both snowball and exttextcat. M src/lib-fts/fts-language.c 2015-06-02 22:01:07 +0300 Timo Sirainen (1b8da092e) lib-fts: Optimized truncation of partial trailing UTF-8 characters in tokenizers. M src/lib-fts/fts-tokenizer-generic.c 2015-06-02 21:56:29 +0300 Timo Sirainen (c8b49c079) lib-fts: Use fts_icu_lcase() for fts-filter-lowercase if possible. M src/lib-fts/fts-filter-lowercase.c 2015-06-02 21:56:03 +0300 Timo Sirainen (887b04f7b) lib-fts: Added string_t *token to struct fts_filter This makes the work a bit easier for simple filters that don't need any state but want to use a string_t. M src/lib-fts/fts-filter-private.h 2015-06-02 21:54:52 +0300 Timo Sirainen (37dfa8907) lib-fts: Added fts_icu_lcase() M src/lib-fts/fts-icu.c M src/lib-fts/fts-icu.h M src/lib-fts/test-fts-icu.c 2015-06-02 21:49:46 +0300 Timo Sirainen (d3acad538) lib-fts: Do all the ICU cleanup in fts_icu_deinit(). M src/lib-fts/fts-filter.c M src/lib-fts/fts-icu.c M src/lib-fts/fts-icu.h 2015-06-02 21:45:46 +0300 Timo Sirainen (3e462730e) lib-fts: Include fts-filter.h in fts-filter-private.h This avoids having to always include them both. M src/lib-fts/fts-filter-lowercase.c M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter-private.h M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/fts-filter.c 2015-06-02 21:43:27 +0300 Timo Sirainen (87607475d) lib-fts: Renamed variable. This is a lowercase-filter, not a normalizer. M src/lib-fts/fts-filter-lowercase.c 2015-06-02 21:41:46 +0300 Timo Sirainen (db451bddb) lib-fts: Removed unnecessary array.h include from fts-filter.h M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter.h 2015-06-02 20:50:23 +0300 Timo Sirainen (3448096d5) lib-fts: Fixed tr29 tokenizer to delete last character correctly when it's preceded by non-ASCII M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/test-fts-tokenizer.c 2015-06-02 19:59:45 +0300 Timo Sirainen (cd97e999b) pop3-login: Added support for Zimbra proxy's XOIP command. M src/pop3-login/client.c 2015-06-02 19:52:37 +0300 Timo Sirainen (c2c6342db) fts: If we fail while indexing headers, return failure immediately. M src/plugins/fts/fts-build-mail.c 2015-06-02 19:52:15 +0300 Timo Sirainen (3d00e356f) fts: Error logging fix. 1) We were logging the error after it was already freed from data stack. 2) We were logging uninitialized error string when fts indexing was the one that failed. M src/plugins/fts/fts-build-mail.c 2015-06-02 02:39:20 +0300 Timo Sirainen (6634e4550) fts: Fixed memory leak at deinit when using multiple fts plugins at the same time using libfts. M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts/fts-user.c 2015-06-02 02:26:44 +0300 Teemu Huovila (88f5dbec2) lib-fts: Correct comment in filter internal API. M src/lib-fts/fts-filter-private.h 2015-06-02 02:26:44 +0300 Teemu Huovila (093e68f3c) lib-fts: Call libicu u_cleanup. M src/lib-fts/fts-filter.c 2015-06-01 22:16:19 +0300 Phil Carmody (6aadd1c52) various: use new uni_utf8_get_char*() interface No need for additional uni_utf8_char_bytes() calls if you can parse and know the size with one call. Signed-off-by: Phil Carmody M src/lib/str-sanitize.c M src/lib/unichar.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2015-06-01 22:14:19 +0300 Timo Sirainen (cf755ce29) lib-fts: Use new uni_utf8_get_char*() interface M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 22:11:55 +0300 Timo Sirainen (2c8b34a5f) lib: Improved unit test for uni_utf8_get_char() return value check. M src/lib/test-unichar.c 2015-06-01 22:08:43 +0300 Phil Carmody (304a9d2db) lib: API change - have uni_utf8_get_char*() return _char_bytes Often the two functions are called in close proximity (both ways round). As _get_char*() calls _char_bytes() early on the success path, we may as well return that value to the caller for immediate use. The callers which call _char_bytes() first are simply rejecting the truncated case quickly - all other invalid cases still call both functions, and all other valid cases (which should be the fast path) likewise call both. Signed-off-by: Phil Carmody M src/lib/unichar.c M src/lib/unichar.h 2015-06-01 22:08:27 +0300 Phil Carmody (d69318e50) fts-solr: laxer check of uni_utf8_get_char_n() return value If uni_utf8_get_char*() were changed to return the number of bytes in the character on success, then all we care about is it being > 0 (i.e. not error, not truncated). Signed-off-by: Phil Carmody M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2015-06-01 22:07:44 +0300 Phil Carmody (7c1b72e1a) lib: test-unichar - test invalid utf8 encodings Chop trailing characters off valid encodings, and watch them fail. (There's no need to do this on most of the test characters, as they're truncated to the same byte sequence - only do 1 in 64.) Signed-off-by: Phil Carmody M src/lib/test-unichar.c 2015-06-01 22:06:44 +0300 Phil Carmody (5fea87f05) lib: test-unichar - streamline the unichars test It's doing 2 kinds of tests, split them into separate test cases. And the first part has started to get expensive, so just make sure all code paths are tested by skipping most values. Only 3 from each set of 64 (lowest 6 bits) are tested. Signed-off-by: Phil Carmody M src/lib/test-unichar.c 2015-06-01 21:59:02 +0300 Timo Sirainen (83172e28d) lib-fts: Added unit testing for unicode apostrophe handling. M src/lib-fts/test-fts-tokenizer.c 2015-06-01 21:58:30 +0300 Timo Sirainen (b6b06530d) lib-fts: tokenizers - Fixed removal of trailing character in truncated tokens. If the token is truncated, we don't want to remove the trailing character since it's not actually there. Also we don't want to remove trailing apostrophes from a truncated word, because they're not actually at the end of the (untruncated) token there. This doesn't make a big difference, but it's slightly more correct. M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/test-fts-tokenizer.c 2015-06-01 21:51:33 +0300 Timo Sirainen (a2b6f7f91) lib-fts: Optimize tokenizers - Rewrite of apostrophe handling. We parse through the UTF8 characters only once now, not twice. M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 21:49:18 +0300 Timo Sirainen (67360bc4d) lib-fts: tr29 tokenizer - rename variable in preparation for the next patch M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 21:48:59 +0300 Timo Sirainen (202468f94) lib-fts: tokenizers - don't include removed apostrophes as part of the token size M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/test-fts-tokenizer.c 2015-06-01 21:35:39 +0300 Timo Sirainen (3fe4e251c) lib-fts: simple tokenizer minor cleanup - removed unnecessary token length > 0 check fts_tokenizer_generic_simple_current_token() will check it in any case. M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 21:33:11 +0300 Timo Sirainen (050315016) lib-fts: tr29 tokenizer cleanup - Avoid unnecessary goto. M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 21:28:42 +0300 Timo Sirainen (dfc9cfd5b) lib-fts: simple tokenizer optimization - don't check unicode word breaks for ASCII chars. M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 21:27:09 +0300 Timo Sirainen (e3f8b4fd8) lib-fts: simple tokenizer cleanup - make prev_letter updating more explicit. It was now hidden inside one of the functions, which didn't make the prev_letter very consistent when a word break was found. It didn't actually matter what the prev_letter was at that point, but now the behavior is more consistent. M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 21:19:47 +0300 Timo Sirainen (8acf0a855) lib-fts: simple tokenizer cleanup - removed unnecessary variables M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 21:16:35 +0300 Timo Sirainen (bf8b21a66) lib-fts: tr29 cleanup - consistently call valid chars "token" and "non-token" chars. Instead of word/token/text. M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 21:11:55 +0300 Timo Sirainen (afb62c7a5) lib-fts: tr29 cleanup - Avoid i++ in the for loop to avoid extra calculations M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 21:10:11 +0300 Timo Sirainen (3deb8a4df) lib-fts: tr29 cleanup - token can never be empty by the time it's being returned. M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 21:08:27 +0300 Timo Sirainen (b15ff9096) lib-fts: Optimization for tr29 - we don't need to track last_size explicitly M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 18:35:58 +0300 Teemu Huovila (73e7fedf7) lib-fts: Correct internal helper function for tr29. M src/lib-fts/fts-tokenizer-generic.c 2015-06-01 18:35:58 +0300 Teemu Huovila (fdf70410d) lib-fts: Fix unit tests for TR29 full stop change. M src/lib-fts/test-fts-tokenizer.c 2015-06-01 18:35:58 +0300 Teemu Huovila (65a2c8fef) lib-fts: Change TR29 tokenizer to break at full stop (and others). Diverge from the TR29 rules and always break at MidNumLet letters. This fixes tokenizing first.last@domain.tld email addresses. M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer-generic.c 2015-05-29 21:39:33 +0300 Timo Sirainen (38ceb710e) auth: Added %{passdb:field} and %{userdb:field} variables The field expands to either the passdb or userdb extra field. You can also use %{passdb:field:defaultvalue} where if field doesn't exist, it's expanded to defaultvalue. Note that an empty value means that the field still exists and it's not expanded to defaultvalue. M src/auth/Makefile.am M src/auth/auth-request-var-expand.c M src/auth/auth-request-var-expand.h M src/auth/auth-request.c M src/auth/db-checkpassword.c M src/auth/db-passwd-file.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-pam.c M src/auth/passdb-passwd-file.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-template.c M src/auth/test-auth-request-var-expand.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-passwd-file.c M src/auth/userdb-sql.c M src/auth/userdb-template.c 2015-05-29 20:56:13 +0300 Timo Sirainen (9b9db49ad) auth: Added unit test for auth %variable expansion. M src/auth/Makefile.am A src/auth/test-auth-request-var-expand.c 2015-05-29 20:55:58 +0300 Timo Sirainen (de2cba085) auth: Make sure %{mech} and %{session} is escaped in %var expansion. %{mech} is already very trusted and %{session} should be only from trusted sources as well, so this doesn't fix any actual security holes. They are also unlikely to have ever even been used in anything that requires escaping. M src/auth/auth-request-var-expand.c 2015-05-29 19:55:47 +0300 Timo Sirainen (4b7957c5e) auth: Moved var_expand() related code to its own file. M src/auth/Makefile.am A src/auth/auth-request-var-expand.c A src/auth/auth-request-var-expand.h M src/auth/auth-request.c M src/auth/auth-request.h 2015-05-29 19:11:50 +0300 Timo Sirainen (a1044a46a) cassandra: Added log_level parameter to connect_string. Available values are critical, error, warn (default), info, debug and trace. M src/lib-sql/driver-cassandra.c 2015-05-29 18:22:17 +0300 Timo Sirainen (372a9dd98) lib-fs: Updated fs_write_stream_*() comments related to ostream corking and nfinish. M src/lib-fs/fs-api.h 2015-05-29 17:51:21 +0300 Timo Sirainen (9750790da) lib-fs: fs_write_stream_abort() now ignores missing o_stream_nfinish() call M src/lib-fs/fs-api.c 2015-05-29 11:50:18 +0300 Timo Sirainen (04f70d9dc) fts: If precaching fails, stop precaching the rest of the mails. If there are a lot of mails to be precached, this could mean that the precaching is attempted for a long time and every one of them fails the same way. M src/plugins/fts/fts-storage.c 2015-05-29 11:08:29 +0300 Timo Sirainen (2a0c3f9a6) dovecot.m4: If run-test.sh fails, print the failing command to stderr. Currently otherwise the way Dovecot tests are run it's not clearly visible. M dovecot.m4 2015-05-29 10:43:38 +0300 Timo Sirainen (68aaffc9d) dovecot.m4: If NOVALGRIND environment is set, don't run tests via valgrind in "make check" M dovecot.m4 2015-05-29 07:03:15 +0300 Timo Sirainen (af8e97225) lib-fs: fs_write_stream() now automatically corks the ostream and uncorks at _finish(). M src/lib-fs/fs-api.c 2015-05-29 05:43:25 +0300 Timo Sirainen (e7f8009c9) fts: If last-uid lookup fails, return "Internal error" instead of "BUG" to client. M src/plugins/fts/fts-storage.c 2015-05-25 11:50:48 -0400 Timo Sirainen (a6bb10d40) lib: Avoid race conditions in mkdir*() if directory is being deleted at the same time. Mainly this allows the call to return failure silently without logging unnecessary errors. M src/lib/mkdir-parents.c 2015-05-25 11:35:53 -0400 Timo Sirainen (da3aebb67) log: read() errors weren't logged. M src/log/log-connection.c 2015-05-25 14:27:22 +0000 Pascal Volk (fc4f5358a) systemd service: Fixed typos in the comment section. The settings for the file descriptor limit is LimitNOFILE. Removed quotes around the value infinity. Otherwise systemd will fail to parse that resource value. M dovecot.service.in 2015-05-17 11:54:42 +0000 Pascal Volk (b00fbdb63) systemd: Small improvements to the unit configuration file: * Added Documentation URIs * Added ExecReload, to reload the config instead of restarting * Added a comment for modifying/extending the unit file. M dovecot.service.in 2015-05-24 17:55:33 -0400 Timo Sirainen (96df95e61) doveadm user: Don't change privileges when looking up users. We don't need to and it might fail. M src/doveadm/doveadm-auth.c 2015-05-24 17:50:26 -0400 Timo Sirainen (b4277135f) lib-storage: If no namespaces were defined, the autocreated namespace settings were a bit wrong. M src/lib-storage/mail-namespace.c 2015-05-24 17:40:53 -0400 Timo Sirainen (d6601a0bc) lib-storage: If session_id isn't given, generate a new one. This is useful for tracking logs written by services that aren't directly related to any specific user session. M src/lib-storage/mail-storage-service.c 2015-05-24 16:13:57 -0400 Timo Sirainen (3079d05c4) lib-index: Unit test fix. M src/lib-index/test-mail-index-transaction-update.c 2015-05-24 13:40:46 -0400 Timo Sirainen (cac6b8b1a) lib: file_lock_try_update() comment updated. It should possibly be removed entirely from the API. M src/lib/file-lock.h 2015-05-24 13:24:19 -0400 Timo Sirainen (715fa0c14) lib: file_create_locked() lock method is now configurable M src/lib/file-create-locked.c M src/lib/file-create-locked.h 2015-05-24 13:22:56 -0400 Timo Sirainen (799b19bb4) lib: file_create_locked() was leaking fds and locks. M src/lib/file-create-locked.c 2015-05-23 19:21:10 -0400 Timo Sirainen (6307daf93) lib: file_create_locked() no longer logs an error if temp file is deleted under it. M src/lib/file-create-locked.c 2015-05-23 16:51:52 -0400 Timo Sirainen (d32fce86c) lib: file_create_locked() wasn't deleting the temp file after successful link() M src/lib/file-create-locked.c 2015-05-23 16:41:34 -0400 Timo Sirainen (a63907c14) lib: Added file_create_locked() M src/lib/Makefile.am A src/lib/file-create-locked.c A src/lib/file-create-locked.h 2015-05-22 19:07:56 -0400 Timo Sirainen (e9b69732e) auth: Don't crash if trying to add password with TAB or LF to auth cache. This would happen only if the passwords were stored as plaintext in passdb and the valid password actually contained TAB or LF. M src/auth/auth-request.c 2015-05-22 16:37:07 -0400 Timo Sirainen (01e29d9d2) lib-index: Added asserts to make sure invalid extension records aren't written to log. M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-update.c 2015-05-21 22:41:43 -0400 Timo Sirainen (2e5170d1d) fts: Fixed fts_enforced=yes when it has to wait for indexing to finish M src/plugins/fts/fts-storage.c 2015-05-21 22:20:10 -0400 Timo Sirainen (0211537cb) fts: Added fts_enforced setting to disable fallbacking to slow search on errors. M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h 2015-05-21 22:03:10 -0400 Timo Sirainen (3e786e2a4) lib-fts: ICU normalization changes some characters to spaces - remove them. We don't really want to add spaces to our index. It would be nice if the words between spaces were actually split to different tokens, but that's more of the fts-tokenizer's job and at filter stage that's probably not wanted anymore. M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/test-fts-filter.c 2015-05-21 08:38:56 -0400 Timo Sirainen (091a2dea9) lib: Cork connection output while handling input M src/lib/connection.c 2015-05-21 06:35:59 -0400 Timo Sirainen (72c4ef3b4) lib-fts: Fixed handling tokens that contain only apostrophes M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/test-fts-tokenizer.c 2015-05-21 06:29:15 -0400 Teemu Huovila (0c5854b68) lib-fts: Fix simple tokenizer apostrophe handling. Apostrophes and quotation marks are now treated as word breaks, except U+0027 between non-wordbrek characters. The characters U+2019 and U+FF07 are transformed to U+0027 before processing. M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/test-fts-tokenizer.c M src/lib-fts/word-properties.pl 2015-05-21 06:17:32 -0400 Teemu Huovila (6018cfb92) lib-fts: Fix tr29 tokenizer apostrophe handling. U+0027, which is called Single Quote in tr29, was not properly handled as a word boundary. M src/lib-fts/fts-tokenizer-generic.c 2015-05-18 14:53:52 +0300 Timo Sirainen (98ed0b24d) lib-fts: Partially reverted d097a9779c37 - don't use lib_atexit() Because fts is loaded as plugin lib_atexit() is called after the plugin is already unloaded, so it crashes. M src/lib-fts/fts-filter-normalizer-icu.c 2015-05-18 07:49:15 -0400 Timo Sirainen (a5ddfd7a8) director: Added "up" vs "down" states and doveadm director up/down commands. These commands are intended to be used by automated watchdogs that detect if backends are up or down. This way the vhost count doesn't get forgotten after server goes down. It also means that admin can manually take down a server by setting its vhost count to 0 without the watchdog automatically bringing it back up. M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c M src/director/mail-host.c M src/director/mail-host.h M src/doveadm/doveadm-director.c 2015-05-18 13:56:07 +0300 Timo Sirainen (f3779c054) lib-charset: test-charset unit test - Don't use invalid UTF-8 text in source code M src/lib-charset/test-charset.c 2015-05-18 06:53:20 -0400 Timo Sirainen (b45985536) lib-fts: Fixed memory leaks in test-fts-filter unit test M src/lib-fts/test-fts-filter.c 2015-05-18 06:51:24 -0400 Timo Sirainen (156027ee3) lib-fts: Call u_clean() at deinit to free up all of libicu's memory. M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/test-fts-icu.c 2015-05-18 06:46:32 -0400 Timo Sirainen (5ae974564) lib-fts: test-fts-icu memory leak fix M src/lib-fts/test-fts-icu.c 2015-05-18 06:37:28 -0400 Timo Sirainen (6eca434b4) fts + lib-fts: Fixed crash with some search queries that contained uninitialized search args. M src/plugins/fts/fts-search-args.c 2015-05-18 06:36:56 -0400 Timo Sirainen (e614fad70) lib-storage: Added mail_search_init/deinit_arg() For forcibly initializing/deinitializing search args. M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h 2015-05-18 06:21:50 -0400 Timo Sirainen (8d5eb4f80) lib-storage: Cleanup - separate search arg values that are set by mail_search_init() M src/lib-storage/index/index-search.c M src/lib-storage/mail-search-args-imap.c M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h 2015-05-17 00:51:50 +0300 Timo Sirainen (2d7ec47e6) lib-mail: Make sure iconv state is reset between MIME parts. M src/lib-mail/message-decoder.c 2015-05-16 18:47:20 +0300 Timo Sirainen (bf698b98d) lib-fts: Rewrite ICU handling functions. Some of the changes: - Use buffers instead of allocating everything from data stack. - Optimistically attempt to write the data directly to the buffers without first calculating their size. Grow the buffer if it doesn't fit first. - Use u_strFromUTF8Lenient() instead of u_strFromUTF8(). Our input is already supposed to be valid UTF-8, although we don't check if all code points are valid, while u_strFromUTF8() does check them and return failures. We don't really care about if code points are valid or not and u_strFromUTF8Lenient() passes through everything. Added unit tests to make sure all the functions work as intended and all the UTF-8 input passes through them successfully. M src/lib-fts/Makefile.am M src/lib-fts/fts-filter-normalizer-icu.c A src/lib-fts/fts-icu.c A src/lib-fts/fts-icu.h M src/lib-fts/test-fts-filter.c A src/lib-fts/test-fts-icu.c 2015-05-16 18:41:44 +0300 Timo Sirainen (e915ba86f) lib: Added buffer_get_writable_size() M src/lib/buffer.c M src/lib/buffer.h 2015-05-16 18:20:08 +0300 Timo Sirainen (0983b2432) fts: Avoid excessive data stack usage with lib-fts M src/plugins/fts/fts-build-mail.c 2015-05-16 13:50:48 +0300 Timo Sirainen (b1b3d99b2) lib-charset: Fixed compile warning caused by earlier commit. This UNICODE_REPLACEMENT_CHAR_UTF8 part of the change was actually supposed to be a separate commit.. M src/lib-charset/charset-iconv.c 2015-05-16 13:20:22 +0300 Timo Sirainen (c8b84f03c) lib: Added UNICODE_REPLACEMENT_CHAR_UTF8 M src/lib/unichar.h 2015-05-16 12:51:08 +0300 Timo Sirainen (04e66ac3d) lib: Added p_memdup() M src/lib/strfuncs.c M src/lib/strfuncs.h 2015-05-16 12:46:38 +0300 Timo Sirainen (936676547) lib-charset: Added a minimal unit test M src/lib-charset/Makefile.am M src/lib-charset/charset-iconv.c A src/lib-charset/test-charset.c 2015-05-16 11:47:09 +0300 Timo Sirainen (461b1f9c7) imap: Fixed crash in FETCH RFC822* caused by earlier commit M src/imap/imap-fetch-body.c 2015-05-15 21:36:07 +0300 Timo Sirainen (5c4d9baec) replication plugin: s/transction/transaction/ in debug log messages M src/plugins/replication/replication-plugin.c 2015-05-15 16:50:27 +0300 Timo Sirainen (db8ca445e) doveadm director flush: Unless -F parameter is used, do the flush by moving users. User moving causes the users to be properly kicked out of the old backends before new connections are made to the new backends. This way the user isn't accessed simultaneously by different backends. M src/doveadm/doveadm-director.c 2015-05-15 16:46:14 +0300 Timo Sirainen (8a1e19986) lib-master: Added data stack frames to handling IPC input. M src/lib-master/ipc-client.c 2015-05-15 16:45:14 +0300 Timo Sirainen (7bccaece9) director: Added HOST-RESET-USERS command to move users to their hash-assigned hosts. M src/director/doveadm-connection.c 2015-05-15 16:44:45 +0300 Timo Sirainen (5c1733e9e) director: Moving a user to another host sometimes caused the move to fail. It could have given "User hash .. is being redirected to two hosts" error and afterwards moved the user back to its original host. M src/director/director-connection.c M src/director/user-directory.h 2015-05-15 14:55:21 +0300 Timo Sirainen (760245ee0) imap: Added %{deleted}, %{expunged} and %{trashed} to imap_logout_format M doc/example-config/conf.d/20-imap.conf M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-expunge.c M src/imap/cmd-store.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-expunge.c M src/imap/imap-expunge.h 2015-05-15 14:35:01 +0300 Timo Sirainen (defeb23b4) Added %{fetch_hdr/body_count/bytes} variables to imap_logout_format M doc/example-config/conf.d/20-imap.conf M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-fetch-body.c M src/imap/imap-fetch.h 2015-05-15 14:34:54 +0300 Timo Sirainen (bbb5807ed) lib-imap-storage: Added imap_msgpart_contains_body() M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-storage/imap-msgpart.h 2015-05-15 14:03:02 +0300 Timo Sirainen (8065a71a0) Added signature for changeset 917d027836d0 M .hgsigs 2015-05-15 14:02:58 +0300 Timo Sirainen (6673337cc) Added tag 2.2.18 for changeset 917d027836d0 M .hgtags 2015-05-15 14:02:58 +0300 Timo Sirainen (f2a1dbe02) Released v2.2.18. M NEWS M configure.ac 2015-05-15 13:55:46 +0300 Timo Sirainen (cf5533e38) replication plugin: Fixed handling EAGAIN errors when writing to replication-pipe. M src/plugins/replication/replication-plugin.c 2015-05-15 13:54:49 +0300 Timo Sirainen (5b994364b) replication plugin: Added debug logging when mail_debug=yes M src/plugins/replication/replication-plugin.c 2015-05-15 13:48:45 +0300 Timo Sirainen (c9ed5cae5) replication plugin: A small optimization to check the user's "dsyncing" status only once. M src/plugins/replication/replication-plugin.c 2015-05-15 13:27:29 +0300 Timo Sirainen (af98c413e) pgsql: Don't crash at disconnect/deinit if there's an unfinished query. M src/lib-sql/driver-pgsql.c 2015-05-15 13:07:27 +0300 Timo Sirainen (a99b64f7d) pgsql: Log a warning if DNS lookup takes too long. Don't include it in connect timeout. M src/lib-sql/driver-pgsql.c 2015-05-15 12:48:07 +0300 Timo Sirainen (a5563dc79) Reverted d592417ec815 which added unnecessary code to Makefiles. The original problem it tried to solve was properly fixed by 46969c4cc57e. make will actually wait for processes to finish creating files before it continues to the next program that wants to access the file. As long as the dependencies are correct. M src/config/Makefile.am M src/lib-dict/Makefile.am M src/lib-fts/Makefile.am M src/lib-sql/Makefile.am M src/lib-storage/register/Makefile.am M src/lib/Makefile.am M src/plugins/quota/Makefile.am 2015-05-15 12:43:13 +0300 Timo Sirainen (06d1238dd) quota: Fixed dependency tracking in Makefile The earlier fix attempt was done by creating a .tmp file first, but that didn't really solve anything. M src/plugins/quota/Makefile.am 2015-05-15 11:15:50 +0300 Timo Sirainen (2a7704439) sdbox: When hardlink-copying a mail in alt storage, keep it within the alt storage. Also make sure that the alt-flag is set correctly no matter where we copy the mail. M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c 2015-05-14 23:49:12 +0300 Timo Sirainen (d4e8dbd07) lib: Use /dev/zero instead of /dev/stderr in test-istream-unix unit test Some distros don't seem to allow opening stderr. M src/lib/test-istream-unix.c 2015-05-14 21:44:50 +0300 Timo Sirainen (4aeb50a83) lib-imap: Fixed crash in IDLE for non-TCP connections. M src/lib-imap/imap-keepalive.c 2015-05-14 14:02:13 +0300 Timo Sirainen (e0d0e7f37) lib-fts: Fixed test-fts-filter when building without libstemmer M src/lib-fts/test-fts-filter.c 2015-05-14 12:36:38 +0300 Matti Hamalainen (69b435cb9) configure: Use consistent quotation for AC_DEFINEs as per autoconf recommendations. Also fix one minor typo. M configure.ac 2015-05-14 13:33:59 +0300 Timo Sirainen (1d132fe27) pgsql: Include connect state string on connect failure errors. M src/lib-sql/driver-pgsql.c 2015-05-14 11:27:04 +0300 Timo Sirainen (629cb309f) lib-lda: Added missing include file. This fixes building Pigeonhole in some systems. M src/lib-lda/mail-deliver.h 2015-05-14 11:26:00 +0300 Timo Sirainen (973c8fc1d) director: UNIX auth sockets were wrongly detected as doveadm or ring sockets. A workaround would be to use login/director-auth socket name instead of login/director. M src/director/main.c 2015-05-13 21:35:56 +0300 Timo Sirainen (e5fcfef14) fts-lucene: Removed dead code Found by Coverity M src/plugins/fts-lucene/fts-backend-lucene.c 2015-05-13 20:47:35 +0300 Timo Sirainen (b9495c944) lib-fts: Makefile compiling dependency fix M src/lib-fts/Makefile.am 2015-05-13 19:45:11 +0300 Timo Sirainen (642f95b81) Added signature for changeset 166106aaefc5 M .hgsigs 2015-05-13 19:45:07 +0300 Timo Sirainen (28ce7d89c) Added tag 2.2.17 for changeset 166106aaefc5 M .hgtags 2015-05-13 19:45:07 +0300 Timo Sirainen (17c41e50c) Released v2.2.17. M NEWS M configure.ac 2015-05-13 19:36:29 +0300 Timo Sirainen (7fb35b357) lib-lda: Don't crash if postmaster_address is given as command line parameter. M src/lib-lda/lda-settings.c 2015-05-13 19:26:45 +0300 Timo Sirainen (f2b4fd3ca) mbox: If we notice our internal state is wrong, avoid further corruption by returning error. M src/lib-storage/index/mbox/mbox-sync-rewrite.c 2015-05-13 19:24:55 +0300 Timo Sirainen (fcc2880f8) mbox: Fixed corruption in some usage patterns. Something like: - first mail is being expunged - other mails are being rewritten and they get their space from the expunged mail - there's not enough space for the last mail to get space - we add more space - we'll now need to use up the space. We can't just decide to mark the mails dirty. M src/lib-storage/index/mbox/mbox-sync.c 2015-05-13 17:16:21 +0300 Timo Sirainen (f7fa93fb4) fts-solr: Fixed memory leak at user deinit. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-solr/solr-connection.h 2015-05-13 16:54:27 +0300 Timo Sirainen (c9445d17b) fts-solr: Crashfixes M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-solr/solr-connection.h 2015-05-13 16:46:14 +0300 Timo Sirainen (d2f1759dd) fts-solr: Don't update "last indexed UID" if we couldn't actually add the mails to Solr. M src/plugins/fts-solr/fts-backend-solr.c 2015-05-13 16:22:27 +0300 Timo Sirainen (db3b95d5a) director: Added "authreply" socket type. This allows defining a socket, which receives auth replies. Director then adds the "host" field to it if it's missing and returns back the original string. The idea is that eventually a director ring could be running independently from Dovecot proxies. M src/director/login-connection.c M src/director/login-connection.h M src/director/main.c 2015-05-13 15:59:48 +0300 Timo Sirainen (4ae5f4a10) director: Removed accidentally committed debug log message M src/director/main.c 2015-05-13 15:47:14 +0300 Timo Sirainen (cf89092df) lib-master: If executing doveconf, use master_service_settings_input.service for filter Instead of hardcoding to the master_service->name, which may be different. This fixes reading protocol sieve {} settings when if managesieve was reading settings via doveconf (= executed from command line). M src/lib-master/master-service-settings.c 2015-05-13 15:33:27 +0300 Timo Sirainen (6468191d6) director: Cleanup for director socket type configuration. It's now possible to use any type of a socket for inet listeners by specifying the name for the listener. The available types are: auth (default), userdb, ring (= director<->director connection), admin/doveadm. This change should be backwards compatible with previous configuration. This setting also deprecates director_doveadm_port setting. M src/director/main.c 2015-05-13 15:32:54 +0300 Timo Sirainen (7f1b89720) lib-master: Added master_service_get_socket_name() M src/lib-master/master-service.c M src/lib-master/master-service.h 2015-05-13 13:57:24 +0300 Timo Sirainen (2cc34f340) director: Minor code cleanup - allow access to auth connection's ostream directly. M src/director/auth-connection.c M src/director/auth-connection.h M src/director/login-connection.c 2015-05-13 13:15:57 +0300 Timo Sirainen (2cd04598a) director: Reverted previous e178413a905d commit after all - do it a bit differently. M src/director/auth-connection.c M src/director/auth-connection.h M src/director/login-connection.c 2015-05-13 12:24:02 +0300 Timo Sirainen (1f2f38f51) Added quota-clone plugin. M NEWS M configure.ac M src/plugins/Makefile.am A src/plugins/quota-clone/Makefile.am A src/plugins/quota-clone/quota-clone-plugin.c A src/plugins/quota-clone/quota-clone-plugin.h 2015-05-13 05:34:16 +0300 Timo Sirainen (b816cad28) lib-sql: sqlite and cassandra libs were mixed up in the Makefile M src/lib-sql/Makefile.am 2015-05-13 05:25:31 +0300 Timo Sirainen (0388fd5e0) director: Added a new DIRECTOR-LOOKUP command that auth connections can use. The parameters are the same as what auth lookup would receive from auth process. So the idea is that a proxy could do an auth lookup, then forward the reply to director, which would return back the updated reply with the host field added. M src/director/auth-connection.c M src/director/auth-connection.h M src/director/login-connection.c 2015-05-13 05:22:22 +0300 Timo Sirainen (336cdc999) director: Don't send DIRECTOR command infinitely in loop if that director got disconnected. M src/director/director-connection.c 2015-05-13 04:11:34 +0300 Timo Sirainen (ece0a2024) director: Include useful statistics in process title. M src/director/director-connection.c M src/director/director-request.c M src/director/director.h M src/director/main.c M src/director/user-directory.c M src/director/user-directory.h 2015-05-13 04:10:53 +0300 Timo Sirainen (341152241) director: Fixed crash if director sent invalid data too early. M src/director/director-connection.c 2015-05-13 04:10:18 +0300 Timo Sirainen (d3ee83b4c) director: If we disconnect a director, pass the reason all the way to deinit's debug logging. M src/director/director-connection.c 2015-05-13 04:07:46 +0300 Timo Sirainen (447653aca) director: Improved debug logging about connecting to another director. M src/director/director.c 2015-05-13 00:33:18 +0300 Timo Sirainen (ac393b4b8) Make static analyzer happier. M src/doveadm/doveadm-dict.c 2015-05-12 23:06:33 +0300 Timo Sirainen (0ac524348) Added signature for changeset 2c1ce55de520 M .hgsigs 2015-05-12 23:06:30 +0300 Timo Sirainen (331e44985) Added tag 2.2.17.rc2 for changeset 2c1ce55de520 M .hgtags 2015-05-12 23:06:30 +0300 Timo Sirainen (adaa511df) Released v2.2.17.rc2. M NEWS M configure.ac 2015-05-12 21:58:03 +0300 Timo Sirainen (cb3ab2fd5) lib: connection API: Added delayed_unix_client_connected_callback setting. 092a51d80bad commit changed this functionality first to fix lib-http code, but it broke other code. 1fac17a2bc53 reversed the original behavior. This change allows either behavior optionally. M src/lib/connection.c M src/lib/connection.h 2015-05-12 21:52:07 +0300 Timo Sirainen (f79ba7136) doveadm fs: Improved error message logging. M src/doveadm/doveadm-fs.c 2015-05-12 19:43:48 +0300 Timo Sirainen (90de1644a) doveadm dict iter: Added -1 parameter to enable DICT_ITERATE_FLAG_EXACT_KEY M src/doveadm/doveadm-dict.c 2015-05-12 19:43:25 +0300 Timo Sirainen (062ee0039) dict-sql: Fixed non-recursive iteration. If path has e.g. "a/$var/b/$var2" and we're iterating "a/", we shouldn't return anything under "a/*/b/". M src/lib-dict/dict-sql.c 2015-05-12 19:14:13 +0300 Timo Sirainen (7fa451bfb) cassandra: Leave consistency to default if it's not specified in config. M src/lib-sql/driver-cassandra.c 2015-05-12 19:13:31 +0300 Timo Sirainen (038b90b6d) lib: connection API was unnecessarily delaying client_connected() calls for UNIX sockets. M src/lib/connection.c 2015-05-12 19:12:34 +0300 Timo Sirainen (eee378574) doveadm: Register builtin dict drivers always at init M src/doveadm/doveadm.c 2015-05-12 19:12:11 +0300 Timo Sirainen (8ed4757c2) lib-dict: Allow registering builtin dict drivers multiple times. M src/lib-dict/dict-register.c 2015-05-12 18:16:54 +0300 Timo Sirainen (e07677bb1) lib-sql: Don't crash in Cassandra if connection to it failed. M src/lib-sql/driver-cassandra.c 2015-05-12 16:44:45 +0300 Teemu Huovila (bd69de668) lib-fts: ICU normalizer code cleanup. Fold some long lines. Rename the internal struct to be more aligned with the other filters. M src/lib-fts/fts-filter-normalizer-icu.c 2015-05-12 16:12:29 +0300 Phil Carmody (91d2e560e) lib-fts: autogenerate C arrays using perl The sh script had bashisms, the awk script crashed mawk, so let's try perl... Signed-off-by: Phil Carmody M src/lib-fts/Makefile.am D src/lib-fts/word-boundary-data.sh D src/lib-fts/word-break-data.sh A src/lib-fts/word-properties.pl 2015-05-12 12:45:34 +0300 Timo Sirainen (37a2e3655) fs-compress: Added NOPLUGIN_LDFLAGS to Makefile for helping with linking M src/plugins/fs-compress/Makefile.am 2015-05-12 12:30:40 +0300 Timo Sirainen (375606047) lib-fts: .sh scripts weren't executable - changed them to be run via bash directly. Better to avoid relying on the executable bit. M src/lib-fts/Makefile.am 2015-05-12 12:20:56 +0300 Timo Sirainen (5d8dad014) lib-fts: Reverted e80969ea8684 which replaced .sh scripts with awk Bugs in older awk versions (used at least by Debian squeeze & wheezy) caused awk to crash while processing the script. M src/lib-fts/Makefile.am D src/lib-fts/word-boundary-data.awk A src/lib-fts/word-boundary-data.sh D src/lib-fts/word-break-data.awk A src/lib-fts/word-break-data.sh 2015-05-11 22:38:38 +0300 Timo Sirainen (412bd45e0) Makefile: Fixed build concurrency issues with lib-fts M src/lib-fts/Makefile.am 2015-05-11 22:37:21 +0300 Timo Sirainen (644e99197) lib-fts: Replaced word-boundary/break-data.sh with more portable awk scripts Patch by Michael Grimm. M src/lib-fts/Makefile.am A src/lib-fts/word-boundary-data.awk D src/lib-fts/word-boundary-data.sh A src/lib-fts/word-break-data.awk D src/lib-fts/word-break-data.sh 2015-05-11 21:55:42 +0300 Timo Sirainen (b772ddf3c) lib-sql: Added support for Cassandra CQL as lib-sql backend. Implemented using DataStax's cpp-driver. Many things are still unimplemented. Column name specific functionality isn't even supported by the Cassandra library. So this can currently mainly be used as one of the dict backends for some simple functionality. M configure.ac M src/lib-sql/Makefile.am A src/lib-sql/driver-cassandra.c 2015-05-11 21:48:45 +0300 Timo Sirainen (2e53e088b) dict-sql: If DICT_ITERATE_FLAG_EXACT_KEY is used, use only the first found map. M src/lib-dict/dict-sql.c 2015-05-11 19:12:45 +0300 Timo Sirainen (76b420727) lib-dict: Added DICT_ITERATE_FLAG_EXACT_KEY flag. This is mainly useful with SQL for iterating through a result that has multiple rows. M src/lib-dict/dict-file.c M src/lib-dict/dict-fs.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.h 2015-05-11 16:01:13 +0300 Timo Sirainen (f5b6f113b) lib-fts: Fixed/improved test-fts-filter unit tests for previous changes. M src/lib-fts/test-fts-filter.c 2015-05-11 16:00:53 +0300 Timo Sirainen (bb726ed32) lib-fts: normalizer-icu no longer returns empty tokens. M src/lib-fts/fts-filter-normalizer-icu.c 2015-05-11 16:00:21 +0300 Timo Sirainen (4d44a03eb) lib-fts: Added assert to fts_filter_filter() to make sure input token isn't empty M src/lib-fts/fts-filter.c 2015-05-11 14:42:18 +0300 Timo Sirainen (759c11290) lib-fts: Fixed assert-crash in fts-tokenizer-generic M src/lib-fts/fts-tokenizer-generic.c 2015-05-11 14:35:49 +0300 Timo Sirainen (b04e76cbc) lib-fts: Test trailing "number." for TR29 in test-fts-tokenizer M src/lib-fts/test-fts-tokenizer.c 2015-05-11 14:34:50 +0300 Timo Sirainen (62fc0b4f0) lib-fts: Improved test-fts-tokenizer to run multiple text inputs M src/lib-fts/test-fts-tokenizer.c 2015-05-11 14:22:05 +0300 Timo Sirainen (47fb62a01) lmtp: Earlier compiler warning fix broke compiling completely.. M src/lmtp/commands.c 2015-05-11 14:10:24 +0300 Timo Sirainen (9bbc62421) lib-fts: Added asserts to make sure we don't return empty tokens. M src/lib-fts/fts-filter.c M src/lib-fts/fts-tokenizer.c 2015-05-11 12:28:58 +0300 Timo Sirainen (f87938eab) Compiler warning fixes M src/imap-urlauth/imap-urlauth.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/pop3/main.c 2015-05-11 12:27:39 +0300 Timo Sirainen (de05e7b6a) lmtp: chdir() to base_dir shouldn't fail - log an error if it does M src/lmtp/commands.c 2015-05-10 12:28:09 +0300 Timo Sirainen (45b0d8d0b) lib-index: If header is corrupted after syncing, log the reason why. M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-sync-update.c 2015-05-10 12:05:06 +0300 Timo Sirainen (9bee6caa0) fts: Fixed crash when not using lib-fts M src/plugins/fts/fts-build-mail.c 2015-05-10 11:20:37 +0300 Timo Sirainen (0d7dc1d6c) lib-http: http-server now always creates a payload istream, even empty one. This simplifies the caller's logic so that it doesn't need to explicitly check if payload is NULL everywhere. M src/lib-http/http-server-connection.c 2015-05-09 21:22:50 +0300 Timo Sirainen (ba57ea2c6) pop3-migration: Added more debug and error logging. M src/plugins/pop3-migration/pop3-migration-plugin.c 2015-05-09 20:29:55 +0300 Timo Sirainen (8b9e2a7ec) Added signature for changeset da685736985a M .hgsigs 2015-05-09 20:29:52 +0300 Timo Sirainen (157db8463) Added tag 2.2.17.rc1 for changeset da685736985a M .hgtags 2015-05-09 20:29:52 +0300 Timo Sirainen (44a0465ed) Released v2.2.17.rc1. M NEWS M configure.ac 2015-05-09 20:26:06 +0300 Timo Sirainen (ba40be5b2) Moved fs-compress to a separate plugin directory. Mainly because I couldn't figure out how to make automake dependencies work on "make install" stage. It was trying to link fs-compress.so using -ldovecot-storage, but libdovecot-storage.so was also concurrently being installed. M configure.ac M src/lib-compression/Makefile.am M src/plugins/Makefile.am A src/plugins/fs-compress/Makefile.am R100 src/lib-compression/fs-compress.c src/plugins/fs-compress/fs-compress.c 2015-05-09 19:58:59 +0300 Timo Sirainen (8409959d6) Make Coverity happier. M src/lib-http/http-server-connection.c M src/lib-index/mail-transaction-log-file.c M src/lib-mail/ostream-dot.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/maildir/maildir-uidlist.c 2015-05-09 19:57:28 +0300 Timo Sirainen (9c0cd052c) quota-dict: It wasn't possible to use multiple quota settings. Found by Coverity M src/plugins/quota/quota-dict.c 2015-05-09 19:50:14 +0300 Timo Sirainen (7f29b3246) anvil: Penalty tracking was moving last checksums wrongly with memcpy(). Depending on the OS/etc this could have caused the checksum tracking to go wrong. Found by Coverity. M src/anvil/penalty.c 2015-05-09 19:41:45 +0300 Timo Sirainen (90f953632) doveadm-server: Fixed potential crash if doveadm client disconnected Found by Coverity M src/doveadm/server-connection.c 2015-05-09 19:39:39 +0300 Timo Sirainen (e4ba52b82) doveadm: Removed unused doveadm_mailbox_find_and_sync() function M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2015-05-09 19:35:31 +0300 Timo Sirainen (cbccc3318) imap: Don't crash if APPEND command is given with invalid parameters. Found by Coverity. M src/imap/cmd-append.c 2015-05-09 19:31:17 +0300 Timo Sirainen (9bc1a7f4a) lib-mail: Improved istream-attachment-extractor error logging. M src/lib-mail/istream-attachment-extractor.c 2015-05-09 19:31:05 +0300 Timo Sirainen (2be6479ae) lib-mail: Fixed crash in istream-attachment-extractor error handling path M src/lib-mail/istream-attachment-extractor.c 2015-05-09 19:28:46 +0300 Timo Sirainen (73a707839) indexer-worker: Don't crash if we failed to get mailbox path. Found by Coverity M src/indexer/master-connection.c 2015-05-09 19:26:01 +0300 Timo Sirainen (8b1a9a4d6) lib-fts: Changed fts_tokenizer_next/final() to return error string. The current tokenizers can't fail, but if we're doing tokenization via external services they could fail. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/fts-tokenizer-private.h M src/lib-fts/fts-tokenizer.c M src/lib-fts/fts-tokenizer.h M src/lib-fts/test-fts-tokenizer.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-search-args.c 2015-05-09 19:21:45 +0300 Timo Sirainen (56a21d5d4) lib-fts: Minor code cleanup - avoid functions always returning same value Makes it clearer to see in the code that the function can't return any failures. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-generic.c 2015-05-09 19:14:07 +0300 Timo Sirainen (a9b3887f4) lib-fts: fts_language_list_init() API changed to return errors. M src/lib-fts/fts-language.c M src/lib-fts/fts-language.h M src/lib-fts/test-fts-language.c M src/plugins/fts/fts-user.c 2015-05-09 19:04:11 +0300 Timo Sirainen (0eef579fa) virtual: Don't crash if trying to save mail to a virtual mailbox without configured save-mailbox. Found by Coverity M src/plugins/virtual/virtual-save.c 2015-05-09 19:00:36 +0300 Timo Sirainen (a052f297c) lib-fs: Minor code cleanup Both temp_output and super_output are NULL so it doesn't matter which we use, but this change makes it use the intended variable. M src/lib-fs/fs-metawrap.c 2015-05-09 18:53:02 +0300 Timo Sirainen (bfcd43029) lib-compression: Fixed dependency tracking in Makefile M src/lib-compression/Makefile.am 2015-05-09 15:29:21 +0000 Pascal Volk (e7f1247b5) man: Added description of option `-F file'. M doc/man/Makefile.am M doc/man/doveadm-acl.1.in M doc/man/doveadm-altmove.1.in M doc/man/doveadm-batch.1.in M doc/man/doveadm-deduplicate.1.in M doc/man/doveadm-expunge.1.in M doc/man/doveadm-fetch.1.in M doc/man/doveadm-flags.1.in M doc/man/doveadm-force-resync.1.in M doc/man/doveadm-fts.1.in M doc/man/doveadm-import.1.in M doc/man/doveadm-index.1.in M doc/man/doveadm-mailbox.1.in M doc/man/doveadm-move.1.in M doc/man/doveadm-purge.1.in M doc/man/doveadm-quota.1.in M doc/man/doveadm-search.1.in M doc/man/doveadm-sync.1.in A doc/man/option-F-file.inc M doc/man/option-u-user.inc M doc/man/sed.sh 2015-05-09 18:28:04 +0300 Timo Sirainen (568fec5b1) lib-fts: Various improvements to test-fts-tokenizer M src/lib-fts/test-fts-tokenizer.c 2015-05-09 18:00:58 +0300 Timo Sirainen (16dd1fd16) lib-fts: Added fts_tokenizer_final() as a convenience wrapper. M src/lib-fts/fts-tokenizer.c M src/lib-fts/fts-tokenizer.h M src/plugins/fts/fts-search-args.c 2015-05-09 17:34:59 +0300 Timo Sirainen (868aa947b) lib-fts: Fixed token truncation. M src/lib-fts/fts-tokenizer-generic.c 2015-05-09 17:07:32 +0300 Timo Sirainen (4a692dfa3) lib-fts: Fixed compiling without libicu M src/lib-fts/fts-filter-normalizer-icu.c 2015-05-09 17:06:42 +0300 Timo Sirainen (041cb0205) lib-storage: Run each storage hook inside its own data stack frame. M src/lib-storage/mail-storage-hooks.c 2015-05-09 17:05:17 +0300 Timo Sirainen (fe0dff63d) fts: Renamed filter and tokenizer specific setting keys. Having the plural in the name didn't make a lot of sense, so all the settings are now: fts_filters = name1 name2 fts_filters_ = name3 name 4 fts_filter_ = key1=value1 fts_filter__ = key2=value2 fts_tokenizers = name1 name2 fts_tokenizer_ = key1=value1 So this also removes the confusion in settings if there existed a filter with one of the language names. M src/plugins/fts/fts-user.c 2015-05-09 17:00:12 +0300 Timo Sirainen (fac865bad) fts: Simplify error messages a little bit to be more consistent with other such errors. Only the setting name is really important. M src/plugins/fts/fts-user.c 2015-05-09 16:58:09 +0300 Timo Sirainen (0ebeb1831) fts: Use key=value instead of "key value" settings for tokenizers and filters. M src/plugins/fts/fts-user.c 2015-05-09 15:11:48 +0300 Timo Sirainen (07dabfd18) fts: If fts_filters setting doesn't exist, use built-in defaults. M src/plugins/fts/fts-user.c 2015-05-09 15:10:17 +0300 Timo Sirainen (57dc9669d) fts: Prefer language-specific filter settings over global fts_filters setting. M src/plugins/fts/fts-user.c 2015-05-09 15:07:13 +0300 Timo Sirainen (2bb1ef0b6) lib-fts: Minor code cleanups M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-filter.h M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer.c M src/lib-fts/fts-tokenizer.h 2015-05-09 15:06:45 +0300 Timo Sirainen (34c7e8b10) lib-fts: fts-tokenizer-generic-private.h had content that didn't really belog there. M src/lib-fts/fts-tokenizer-generic-private.h M src/lib-fts/fts-tokenizer-generic.c 2015-05-09 15:00:28 +0300 Timo Sirainen (61eb91ed6) lib-fts: Removed supports() function from filter API I think the original idea was that this could be used to automatically create filters for many languages, but this probably won't be needed or wanted. M src/lib-fts/fts-filter-lowercase.c M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter-private.h M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/fts-filter-stopwords.c 2015-05-09 14:56:33 +0300 Timo Sirainen (f5c0d5cad) lib-fts: Removed tokenizer name macros from fts-tokenizer.h The tokenizers can be directly accessed via their class structs. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/fts-tokenizer.h M src/lib-fts/test-fts-tokenizer.c 2015-05-09 14:55:47 +0300 Timo Sirainen (a46abae27) lib-fts: Store pointers to fts_tokenizer classes instead of copying the data. The same reason as for doing this for fts-filter. M src/lib-fts/fts-tokenizer.c 2015-05-09 14:53:46 +0300 Timo Sirainen (b1965419f) lib-fts: test-fts-tokenizer cleanup - moved tokenizers_init/deinit() to be done globally M src/lib-fts/test-fts-tokenizer.c 2015-05-09 14:50:10 +0300 Timo Sirainen (a7d8afaad) lib-fts: Removed filter name macros from fts-filter.h The filters can be directly accessed via their class structs. M src/lib-fts/fts-filter-lowercase.c M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/fts-filter.h M src/lib-fts/test-fts-filter.c 2015-05-09 14:49:20 +0300 Timo Sirainen (1ef271d30) lib-fts: Store pointers to fts_filter classes instead of copying the data. Doesn't really matter, but it's a bit cleaner when fts_filter_find() returns the same pointer as the fts_filter class originally was. M src/lib-fts/fts-filter.c 2015-05-09 14:41:05 +0300 Timo Sirainen (60ba197d1) fts: Lowecase non-human language input while indexing. M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-user.c M src/plugins/fts/fts-user.h 2015-05-09 14:26:42 +0300 Timo Sirainen (acfcf88e4) lib-fts: Added "lowercase" filter. For now it handles only ASCII characters, but that's enough for our use. M src/lib-fts/Makefile.am A src/lib-fts/fts-filter-lowercase.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-filter.h M src/lib-fts/test-fts-filter.c 2015-05-09 14:09:37 +0300 Timo Sirainen (eac88e31b) lib-fts: Removed "simple" normalizer. It translated input to titlecase, which wasn't suitable for snowball stemming that wanted lowercase input. Since that doesn't work, there's probably no good for the existence of this (perhaps in future it's replaced by unicode-aware lowercaser). M src/lib-fts/Makefile.am D src/lib-fts/fts-filter-normalizer-simple.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-filter.h 2015-05-09 14:19:48 +0300 Timo Sirainen (5916f19b4) lib-fts: Minor unit test cleanups M src/lib-fts/test-fts-filter.c 2015-05-09 13:57:41 +0300 Timo Sirainen (5ea079ceb) fts: Reset tokenizers before using them This is mainly needed if the previous tokenization had failed. M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-search-args.c 2015-05-09 13:52:37 +0300 Timo Sirainen (273060583) lib-fts: Added fts_tokenizer_reset() M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/fts-tokenizer-private.h M src/lib-fts/fts-tokenizer.c M src/lib-fts/fts-tokenizer.h M src/lib-fts/test-fts-tokenizer.c 2015-05-09 13:46:37 +0300 Timo Sirainen (c4b772bfb) lib-fts: fts-tokenizer-address didn't reset state properly when input ended. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/test-fts-tokenizer.c 2015-05-09 13:31:14 +0300 Timo Sirainen (0c827d209) fts: When tokenizing a search word, give "search" parameter to all the tokenizers. M src/lib-fts/fts-tokenizer-generic.c M src/plugins/fts/fts-user.c 2015-05-09 13:30:41 +0300 Timo Sirainen (aaed9e3ce) fts: Don't crash if search arg string expands to empty token list. M src/plugins/fts/fts-search-args.c 2015-05-09 13:20:29 +0300 Timo Sirainen (505bba1d2) lib-fts: Use case-sensitive settings comparisons in fts-tokenizer Dovecot in general doesn't allow case-insensitive settings. M src/lib-fts/fts-tokenizer-generic.c 2015-05-09 13:19:21 +0300 Timo Sirainen (d1356a777) lib-fts: Minor unit test fix - use case sensitive checks for word comparison. M src/lib-fts/test-fts-filter.c 2015-05-09 13:15:43 +0300 Timo Sirainen (1cc4d4d1a) lib-storage: mail_search_arg_dup() is now a public function. M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h 2015-05-09 13:15:09 +0300 Timo Sirainen (e4bf76afb) lib-fts: Implemented "search" parameter to fts-tokenizer-address. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/test-fts-tokenizer.c 2015-05-09 13:01:45 +0300 Timo Sirainen (98fe03eca) fts: If filtering fails during search arg expansion, fail the fts search. M src/plugins/fts/fts-search-args.c 2015-05-09 12:50:54 +0300 Timo Sirainen (1d8bcf118) lib-fts: Compiler warning fix when building without libicu M src/lib-fts/fts-filter-normalizer-icu.c 2015-05-09 12:50:11 +0300 Timo Sirainen (3743d05a3) lib-fts: Minor fts-tokenizer-address cleanups M src/lib-fts/fts-tokenizer-address.c 2015-05-09 12:48:13 +0300 Timo Sirainen (908c417cc) lib-fts: Removed explicit no_parent setting from fts-address-tokenizer It was used only by unit tests and we can check it without the setting as well. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/test-fts-tokenizer.c 2015-05-09 12:41:59 +0300 Timo Sirainen (12bc47bca) lib-fts: Use rfc822-parser in fts-tokenizer-address instead of duplicating its code. M src/lib-fts/Makefile.am M src/lib-fts/fts-tokenizer-address.c 2015-05-09 12:39:21 +0300 Timo Sirainen (173d34afe) lib-fts: Don't treat empty domains as valid addresses. This actually pretty much reverts the previous patch and just fixes the original code's chars_after_at() to work correctly. Also renamed the function to make it a bit clearer what was intended. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/test-fts-tokenizer.c 2015-05-09 12:32:46 +0300 Timo Sirainen (81fd40df7) lib-fts: Removed unnecessary code from fts-address-tokenizer. chars_after_at() was only used to check if local-part was empty, but it was checked at a state where it never could have been empty. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/test-fts-tokenizer.c 2015-05-09 12:01:42 +0300 Timo Sirainen (20f03fe09) lib-fts: Various fixes and cleanups to stopwords filter. Most importantly words added to hash table needs to be allocated from the pool and not data stack. M src/lib-fts/fts-filter-stopwords.c 2015-05-09 12:04:56 +0300 Timo Sirainen (927f6e67f) lib-fts: Assume that fts_language.name is always lowercased and has two letters. Anything else just unnecessarily complicates the code. M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/fts-language.h M src/lib-fts/test-fts-filter.c 2015-05-09 11:57:40 +0300 Timo Sirainen (b58ad1c4a) lib-fts: Fixed test-fts-filter unit test to handle errors a bit better. M src/lib-fts/fts-filter.c M src/lib-fts/test-fts-filter.c 2015-05-09 11:46:09 +0300 Timo Sirainen (611137071) lib-fts: Changed filter's internal APIs to return error_r directly. It's not very safe to store strings allocated from data stack to any permanent structs. M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter-normalizer-simple.c M src/lib-fts/fts-filter-private.h M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-filter.h 2015-05-09 11:33:45 +0300 Timo Sirainen (c5c58fbb1) lib-fts: Snowball's sb_stemmer_stem() can only fail because it runs out of memory. M src/lib-fts/fts-filter-stemmer-snowball.c 2015-05-09 11:17:03 +0300 Teemu Huovila (ade9b3596) lib-fts: Improve using max_length in tr29 tokenizer M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/test-fts-tokenizer.c 2015-05-09 11:16:22 +0300 Teemu Huovila (78f87ea1d) lib-fts: Fixed using max_length setting in simple tokenizer M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/test-fts-tokenizer.c 2015-05-09 11:15:50 +0300 Teemu Huovila (50f659bc4) lib-fts: Default to simple tokenizer algorithm M src/lib-fts/fts-tokenizer-generic.c 2015-05-09 11:15:34 +0300 Teemu Huovila (dfb9243af) lib-fts: Delay stopwords filter full initialization until it's needed. M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/test-fts-filter.c 2015-05-09 11:14:51 +0300 Teemu Huovila (55be4b067) lib-fts: Delay snowball filter initialization until it's needed. M src/lib-fts/fts-filter-stemmer-snowball.c 2015-05-09 11:13:49 +0300 Teemu Huovila (1d0f568e2) fts: Improve filter error handling. In lib-fts: Move error storage to the generic filter struct level. Change make_utf8 helper to void also. In fts: Add the error argument to _filter() calls. M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter-private.h M src/lib-fts/fts-filter.c M src/lib-fts/fts-filter.h M src/lib-fts/test-fts-filter.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-search-args.c 2015-05-09 11:10:31 +0300 Teemu Huovila (a53953d8b) lib-fts: Removed make_uchar() return value. It was already de facto meaningless, so best we remove it. M src/lib-fts/fts-filter-normalizer-icu.c 2015-05-09 11:09:37 +0300 Teemu Huovila (f65a6ee21) lib-fts: normalizer-icu now delays initialization of libicu. This way the normalizer can be quickly created even if it's never even used. M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/test-fts-filter.c 2015-05-09 11:06:45 +0300 Teemu Huovila (db090e2a4) fts: Change filter API to be able to return errors Modify fts_filter_filter() to return integer status codes. It returns 1 if a token was returned, 0 if it was filtered away and -1 on error. M src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter-normalizer-simple.c M src/lib-fts/fts-filter-private.h M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/fts-filter-stopwords.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-filter.h M src/lib-fts/test-fts-filter.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-search-args.c 2015-05-09 11:05:04 +0300 Teemu Huovila (3dc5a2311) fts: Change tokenizer API to be able to return errors Modify fts_tokenizer_next() to return integer status codes. It returns 1 if a token was returned in *token_r, 0 if more input is needed and -1 on error. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer-generic.c M src/lib-fts/fts-tokenizer-private.h M src/lib-fts/fts-tokenizer.c M src/lib-fts/fts-tokenizer.h M src/lib-fts/test-fts-tokenizer.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-search-args.c 2015-05-09 11:03:21 +0300 Teemu Huovila (957b0b4c9) fts: Replace '-' with '_' in tokenizer-specific fts_tokenizers_* settings M src/plugins/fts/fts-user.c 2015-05-09 11:02:22 +0300 Teemu Huovila (4ef1f9f32) fts: Create tokenizers differently Create tokenizers earlier. Create separate tokenizers for search and indexing. Enable configuration of tokenizers. Add some helpers in fts-tokenizer.h api. Change tokenizer unit tests to match those changes. lib-fts: Refactor lib-fts settings a bit Turned address tokenizer settings into "boolean" values. Changed have_parent to "no_parent" and added "search" setting. Added documentation in fts-tokenizer.h. Change unit tests accordingly. M src/lib-fts/fts-tokenizer-address.c M src/lib-fts/fts-tokenizer.c M src/lib-fts/fts-tokenizer.h M src/lib-fts/test-fts-tokenizer.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search-args.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-user.c M src/plugins/fts/fts-user.h 2015-05-09 10:53:25 +0300 Teemu Huovila (09aed882b) fts: Create filters earlier This builds on the assumption that early initialization will be made less costly, in a coming change. M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-search-args.c M src/plugins/fts/fts-user.c M src/plugins/fts/fts-user.h 2015-05-08 16:00:16 +0300 Timo Sirainen (6f29823de) fts: Fixed handling NOT when using lib-fts M src/plugins/fts/fts-search-args.c 2015-05-08 14:47:26 +0300 Timo Sirainen (344bb4abc) dsync: Stop running if SIGINT/SIGTERM is received. M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2015-05-08 10:44:18 +0300 Timo Sirainen (3ee40ecd5) Moved fs-compress from lib-fs to lib-compression. This solves build ordering issues. M src/lib-compression/Makefile.am R100 src/lib-fs/fs-compress.c src/lib-compression/fs-compress.c M src/lib-fs/Makefile.am 2015-05-07 20:35:23 +0300 Timo Sirainen (29b8c2bd6) lib-fs: Fixed fs-compress code to actually build and run. It's a plugin (because it depends on extra compression libraries). We want to register it only when it's explicitly attempted to be used, not before. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-compress.c 2015-05-07 20:25:44 +0300 Timo Sirainen (d0c3964c8) lib-fs: Added fs-compress wrapper. Future TODO could include automatically detecting the format of the input file, but this should be optional. M src/lib-fs/Makefile.am M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c A src/lib-fs/fs-compress.c 2015-05-07 18:21:35 +0300 Timo Sirainen (441f0e0d8) lib-storage: Fixed LAYOUT=imapdir to work again Patch by Jason Gunthorpe M src/lib-storage/list/mailbox-list-maildir.c 2015-05-07 18:04:33 +0300 Timo Sirainen (a56fcfa52) director: Fixed "doveadm director status " lookup to return "Current" correctly. M src/director/doveadm-connection.c 2015-05-07 17:29:55 +0300 Timo Sirainen (2f41b2cef) example-config: s/Recipient:/Received:/ M doc/example-config/conf.d/20-lmtp.conf 2015-05-07 17:29:00 +0300 Timo Sirainen (8f2af06e4) exmaple-config: Added lmtp_hdr_delivery_address setting. M doc/example-config/conf.d/20-lmtp.conf 2015-05-07 17:18:44 +0300 Timo Sirainen (f0ecd925c) auth: Added assert to make sure previous change is correct. M src/auth/auth-worker-client.c 2015-05-07 11:27:55 +0300 Timo Sirainen (3db05c8c0) auth: Fixed credentials lookups via auth-workers when no actual password was returned. For example LDAP lookup with auth_bind=yes should still return any extra fields. M src/auth/auth-worker-client.c 2015-05-07 11:21:33 +0300 Timo Sirainen (0a66c1234) ldap auth: If password is already verified (e.g. master user login), skip LDAP auth binding. This happens only if auth_bind_userdn isn't set, i.e. it only makes sense if the LDAP DN lookup also returns some extra fields. M src/auth/passdb-ldap.c 2015-05-07 00:01:16 +0300 Timo Sirainen (867c109fc) mbox: Added an extra assert M src/lib-storage/index/mbox/mbox-sync-rewrite.c 2015-05-07 00:01:08 +0300 Timo Sirainen (f76f483f0) mbox: Fixed crash/corruption in some situations when the first mail was expunged. This could be reproduced with default mbox settings, IMAP session that does - STORE 1 +FLAGS \DELETED - EXPUNGE With mbox containing: === From root@example.com Tue Jan 13 10:18:16 2015 a From root@example.com Tue Jan 13 10:18:20 2015 a === M src/lib-storage/index/mbox/mbox-sync.c 2015-05-06 19:50:23 +0300 Timo Sirainen (6ba5d739f) imap: Don't advertise SPECIAL-USE if there are no such mailboxes configured. M configure.ac M src/imap/imap-client.c 2015-05-06 16:16:11 +0300 Timo Sirainen (d12ea923b) dsync: Don't try to rename namespace roots. It'll just cause an assert-crash. M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c 2015-05-06 16:01:45 +0300 Timo Sirainen (24072b49b) doveadm: Changed -U to -F Otherwise -U collides with doveadm sync -U parameter. -F isn't currently used by anything. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.c 2015-05-06 15:45:43 +0300 Timo Sirainen (f7141101e) doveadm: Added -U parameter for executing the command for all the users in the file. This is similar to -A parameter, but instead of getting the list of users from userdb they are read from the file. The file contains one username per line. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2015-05-06 15:42:31 +0300 Timo Sirainen (98e8f95ff) doveadm-server: Invalid parameters for some commands caused crash at deinit handlers. deinit() can be called even if init() was never called. M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.h 2015-05-06 14:14:09 +0300 Timo Sirainen (95d41d210) script: Another comment update about protocol - the previous one was wrong. M src/util/script.c 2015-05-06 11:10:09 +0300 Timo Sirainen (7439b55b8) script: Updated comment to describe the current script protocol. M src/util/script.c 2015-05-05 23:07:03 +0300 Timo Sirainen (ab1e085cf) doveadm fs delete: Fixed function return type M src/doveadm/doveadm-fs.c 2015-05-05 16:24:07 +0300 Timo Sirainen (e0f57c552) lib-storage: After mailbox_list_init_fs() is finished, notify fs about it. Creating a separate fs_init_finish() would perhaps have been clearner, but it's a lot more work and usually isn't even necessary for most backends. So I simply chose to use fs_get_properties() which is a fast call in all fs backends and the few ones that actually care about the initialization finish can then do their work in there. M src/lib-storage/mailbox-list.c 2015-05-05 16:18:21 +0300 Timo Sirainen (c0273594f) fts-lucene: Removed lazy initialization code. This is no longer needed after the previous fts commit. M src/plugins/fts-lucene/fts-backend-lucene.c 2015-05-05 16:17:14 +0300 Timo Sirainen (11f12ca1c) fts: Initialize fts backend in mail_namespaces_added(), not in mailbox_list_created() This way the storage has already been created by the time fts initialization starts, which simplifies things. M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h 2015-05-05 16:14:07 +0300 Timo Sirainen (a41f6dd2a) lib-storage: mailbox_list_fs_get_list() shouldn't crash if fs wasn't created by mailbox_list_init_fs() M src/lib-storage/mailbox-list.c 2015-05-05 14:16:31 +0300 Timo Sirainen (917b4e1a9) auth: If passdb has non-matching allow_nets, don't fail the other passdb lookups also. We might want to use e.g.: passdb { driver = static args = password=secretmasterpass allow_nets=10.1.2.3 } passdb { ... } If allow_nets didn't match in the first passdb, we should just ignore it and continue to the next passdb. M src/auth/auth-request.c 2015-05-05 13:35:52 +0300 Timo Sirainen (f942b7b96) doveadm fs delete: Another attempt at fixing recursive deletion. I'm not entirely sure anymore what the original infinite looping was, but this fixes all the potential problems that I see. M src/doveadm/doveadm-fs.c 2015-05-05 13:30:38 +0300 Timo Sirainen (f86f7ec83) doveadm fs delete: Reverted last two patches - they were all completely wrong.. M src/doveadm/doveadm-fs.c 2015-05-05 13:13:42 +0300 Timo Sirainen (f98a07969) doveadm fs delete: Recent changes broke it completely. M src/doveadm/doveadm-fs.c 2015-05-04 23:27:42 +0300 Timo Sirainen (7f0fad65a) lib-storage: Fixed setting/getting server metadata. Also added a MAILBOX_ATTRIBUTE_KEY_IS_USER_ACCESSIBLE() macro to make it a bit easier to check if a key should be accessible to a user or not. M src/lib-storage/index/index-attribute.c M src/lib-storage/mailbox-attribute.h 2015-05-04 19:53:53 +0300 Stephan Bosch (146f9076c) mail-storage: Moved mailbox attributes API to separate module. M src/lib-storage/Makefile.am M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h A src/lib-storage/mailbox-attribute-private.h A src/lib-storage/mailbox-attribute.c A src/lib-storage/mailbox-attribute.h 2015-05-04 19:15:10 +0300 Timo Sirainen (70f202ae7) lib-fs: Forgot to initialize refcount in previous commit M src/lib-fs/fs-api.c 2015-05-04 19:06:11 +0300 Timo Sirainen (e853125ec) lib-fs: Added fs_ref() and fs_unref() for reference counting. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2015-05-04 18:44:29 +0300 Timo Sirainen (c01e99359) imap: FETCH BODY.PEEK[HEADER.FIELDS (..)] didn't set wanted_headers optimization. Primarily this fixes imapc's prefetching. M src/imap/imap-fetch-body.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-storage/imap-msgpart.h 2015-05-04 18:31:27 +0300 Timo Sirainen (50ffc1283) imapc: Various optimization fixes to fetching messages' virtual size. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c 2015-05-04 18:15:00 +0300 Timo Sirainen (7ac6e63e0) imapc: imapc-features=rfc822.size didn't work for fetching mail's virtual size. Physical and virtual sizes are the same for imapc. M src/lib-storage/index/imapc/imapc-mail.c 2015-05-04 12:07:16 +0300 Timo Sirainen (baf4695c4) configure: When compiling with sqlite3, don't forcibly link with zlib. Looks like -lz was originally added when it was copy&pasted from some other code. Hopefully this isn't actually needed by any (current) system. M configure.ac 2015-05-04 11:55:11 +0300 Timo Sirainen (c8c6f2fda) man: Fixed -Dv parameter position in doveadm-sync.1 M doc/man/doveadm-sync.1.in 2015-05-03 17:07:02 +0300 Timo Sirainen (e2e6f40d5) acl: Log more debug info with mail_debug=yes M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-global-file.c M src/plugins/acl/acl-global-file.h 2015-05-03 16:26:46 +0300 Timo Sirainen (971f89b14) lib-mail: Removed quoted_printable_decode*() quoted_printable_q_decode() was still left in quoted-printable.h, but maybe it should be moved to qp-decoder.c as well. M src/lib-mail/quoted-printable.c M src/lib-mail/quoted-printable.h M src/lib-mail/test-quoted-printable.c 2015-05-03 16:23:41 +0300 Timo Sirainen (1a6a2a131) lib-mail: Switched message-decoder to use qp-decoder. This probably doesn't fix any actual bugs, but allows getting rid of the quoted_printable_decode*() M src/lib-mail/Makefile.am M src/lib-mail/message-decoder.c M src/lib-mail/test-message-decoder.c 2015-05-03 16:22:55 +0300 Timo Sirainen (76adf7943) lib-mail: Fixed various istream-qp-decoder bugs by switching to qp-decoder API M src/lib-mail/Makefile.am M src/lib-mail/istream-qp-decoder.c M src/lib-mail/test-istream-qp-decoder.c 2015-05-03 14:50:01 +0300 Timo Sirainen (722702762) lib-mail: Added qp-decoder, which is a rewritten quoted_printable_decode() The main benefit is that qp-decoder allows feeding data to it in smaller pieces. It can also give better error reporting. M src/lib-mail/Makefile.am A src/lib-mail/qp-decoder.c A src/lib-mail/qp-decoder.h A src/lib-mail/test-qp-decoder.c 2015-04-29 17:45:30 +0200 Timo Sirainen (f0d8efc20) director: Log error if auth sends invalid lip/lport/port parameter. This also fixes compiler warnings. M src/director/login-connection.c 2015-04-29 17:43:13 +0200 Timo Sirainen (77f05ffe7) lib: Added unit test for net_ip2addr() and fixed net_is_in_network() test. M src/lib/test-net.c 2015-04-29 17:36:44 +0200 Timo Sirainen (68ae5d661) lib: Renamed test-network to test-net Since network.c had been renamed to net.c some time ago. M src/lib/Makefile.am M src/lib/test-lib.c M src/lib/test-lib.h R098 src/lib/test-network.c src/lib/test-net.c 2015-04-29 17:35:18 +0200 Timo Sirainen (d1e20cdf4) lib: net_addr2ip() sets the family now only after address is successfully converted. M src/lib/net.c 2015-04-29 17:19:34 +0200 Timo Sirainen (3fbc12d56) lib-imap: imap_utf7_to_utf8() returns failure now for encoded NULs. All the callers change the string to NUL-terminated string, so the earlier behavior was just truncating the string at the encoded NUL. It's a bit safer to just return failure so in future if the callers didn't convert the string to NUL-terminated string it wouldn't be handled inconsistently in different places. M src/lib-imap/imap-utf7.c 2015-04-29 11:33:21 +0200 Timo Sirainen (0dc72981f) director: Implemented director_proxy_maybe passdb extra field. This allows running director and backend in the same Dovecot instance. It was implemented into director instead of login-common to allow doveadm and lmtp proxying to work as well (although currently lmtp can't handle mixed proxying and non-proxying destinations, which makes this a bit less useful). M src/auth/auth-request.c M src/director/login-connection.c 2015-04-25 11:42:06 +0200 Stephan Bosch (7a545edbd) uri-util: Added the possibility of only checking the URI without parsing any of the data. M src/lib/uri-util.c M src/lib/uri-util.h 2015-04-25 11:42:06 +0200 Stephan Bosch (bcd6c1393) uri-util: Improve errors about invalid characters in URI by reporting the component where the offending character is located. M src/lib-http/http-url.c M src/lib-imap/imap-url.c M src/lib/uri-util.c 2015-04-25 11:42:06 +0200 Stephan Bosch (f3cf2f021) uri-util: Allow empty host name in the generic URI syntax as specified in RFC 3986. M src/lib-http/http-url.c M src/lib-imap/imap-url.c M src/lib/uri-util.c 2015-04-25 11:42:06 +0200 Stephan Bosch (8c80cd4e9) lib-http: client: Fixed memory leak in CONNECT tunnel support. Forgot to dereference streams once tunnel was completed and passed to the new connection object. M src/lib-http/http-client-connection.c 2015-04-25 11:42:06 +0200 Stephan Bosch (6793538c3) lib: connection: Connect to unix socket asynchronously if connected callback is set. Prevents problems in lib-http unix socket support. M src/lib/connection.c 2015-04-29 10:34:33 +0200 Timo Sirainen (afbd17685) fts: Do not deinit uncreated fts context Fixes crash with fts-lucene and fts-solr when lib-fts wasn't used. Patch by Teemu Huovila M src/plugins/fts/fts-user.c 2015-04-29 10:27:50 +0200 Timo Sirainen (bcdf3baac) trash plugin: Count more correctly the number of bytes/messages needed to get under quota. If there already were some messages saved, those weren't counted when figuring out how many/much mails are still needed to be expunged. Patch by Alexei Gradinari M src/plugins/trash/trash-plugin.c 2015-04-29 10:22:26 +0200 Timo Sirainen (50e7732ee) trash plugin: Fixed handling unlimited quota limits. Patch by Alexei Gradinari M src/plugins/trash/trash-plugin.c 2015-04-29 10:13:19 +0200 Timo Sirainen (4c7e360ab) quota: Don't assume mail is too large if a quota root has mail count limit but not size limit. Based on patch by Alexei Gradinari M src/plugins/quota/quota.c 2015-04-28 14:20:39 +0200 Timo Sirainen (82705acc8) lib-mail: Fixed modifying headers with i_stream_header_filter_add() If the stream was read twice, the second time the callback wasn't called and the header wasn't modified. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2015-04-28 11:27:04 +0200 Timo Sirainen (ebf631358) *-login: Don't try to flush SSL output if SSL handshake fails. This fixes a crash on failed handshakes on some OpenSSL builds. M src/login-common/ssl-proxy-openssl.c 2015-04-25 12:16:07 +0300 Timo Sirainen (efc70d056) Forgot to include year 2015 in earlier new files' Copyright lines. M src/lib-imap/imap-keepalive.c M src/lib/istream-unix.c 2015-04-25 12:07:44 +0300 Timo Sirainen (ffafd76c9) log: Don't confuse process sending a partial log line to process sending logs too fast. If it's a partial line we don't want to show the "service too fast" error in ps title. M src/log/log-connection.c 2015-04-25 11:52:02 +0300 Timo Sirainen (b78d8dbe4) lib: Fixed crash in connection API if input streams aren't used (only input fd). M src/lib/connection.c 2015-04-25 11:40:23 +0300 Timo Sirainen (4c1a936be) lib: Fixed test-istream-unix to not send uninitialized bytes. Fixes Valgrind errors in make check. M src/lib/test-istream-unix.c 2015-04-25 11:27:17 +0300 Timo Sirainen (9805f5093) imap: Code cleanup: Moved IDLE keepalive timer calculation to lib-imap. M src/imap/cmd-idle.c M src/lib-imap/Makefile.am A src/lib-imap/imap-keepalive.c A src/lib-imap/imap-keepalive.h 2015-04-25 11:23:00 +0300 Timo Sirainen (bf132be3f) lib: Added istream-unix for reading fd sockets via istream. M src/lib/Makefile.am A src/lib/istream-file-private.h M src/lib/istream-file.c A src/lib/istream-unix.c A src/lib/istream-unix.h A src/lib/test-istream-unix.c M src/lib/test-lib.c M src/lib/test-lib.h 2015-04-25 11:22:39 +0300 Timo Sirainen (e88b20c65) lib: Added numpack_decode32() M src/lib/numpack.c M src/lib/numpack.h 2015-04-24 16:03:51 +0300 Timo Sirainen (eeb034344) fts: Fixed infinite looping at deinit. fts_mail_user_deinit() was calling itself. Now the fts backend is responsible for calling it at deinit. M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts/fts-user.c M src/plugins/fts/fts-user.h 2015-04-24 15:45:42 +0300 Timo Sirainen (46241d83c) doveadm fs delete -R: Fixed infinite looping when deleting a lot of files with some backends. After file was deleted, we closed it. Then later on we tried to delete it all over again. M src/doveadm/doveadm-fs.c 2015-04-24 15:41:55 +0300 Timo Sirainen (f9ca41ec7) doveadm fs delete -R: When deleting directories, include "/" suffix in the name. M src/doveadm/doveadm-fs.c 2015-04-24 15:13:59 +0300 Timo Sirainen (1ac7b6969) lmtp: Added lmtp_hdr_delivery_address=final|original|none setting. This controls what username is used for logging Delivered-To: header and the "for user@domain" in Received: header. The default "final" is the regular username as earlier, "original" logs the RFC822 address received via ORCPT parameter or fallbacks to username, "none" logs nothing. M src/lmtp/commands.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2015-04-24 14:47:43 +0300 Timo Sirainen (55257755b) doveadm-server: Fixed returning command input stream when its data was already in the input stream. M src/doveadm/doveadm-mail.c 2015-04-24 14:25:06 +0300 Timo Sirainen (1e60d516e) fts-solr: fts_solr=use_libfts send data to Solr via space-separated tokens. In this case Solr should be configured to not do any kind of filtering and use only WhitespaceTokenizerFactory. M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/fts-solr-plugin.h 2015-04-24 14:08:51 +0300 Timo Sirainen (a32b055a1) fts: Minor error messagage prefix change. M src/plugins/fts/fts-build-mail.c 2015-04-24 14:08:39 +0300 Timo Sirainen (4ba3717a0) fts: Don't always try to initialize lib-fts. Require backend to explictly do it now. M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-user.c M src/plugins/fts/fts-user.h 2015-04-24 14:03:01 +0300 Timo Sirainen (36723229d) fts: Install fts-user.h header M src/plugins/fts/Makefile.am 2015-04-24 13:10:17 +0300 Timo Sirainen (4c61d6b6a) fts: Replace '-' with '_' in filter-specific fts_filters_* settings. So for example using fts_filters_normalizer_icu instead of fts_filters_normalizer-icu. M src/plugins/fts/fts-user.c 2015-04-24 13:08:16 +0300 Timo Sirainen (e0593474a) lib-fs: Use the new t_str_replace() instead of doing it ourself. M src/lib-fs/fs-api.c 2015-04-24 13:07:39 +0300 Timo Sirainen (be1749e24) lib: Added t_str_replace() to replace one character with another one M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2015-04-23 21:32:43 +0300 Timo Sirainen (ad0131e97) dict: Fixed unescaping strings from lib-dict. This may potentially break backwards compatibility with someone, but it's probably pretty rare that anybody is yet using dict proxy with multi-line fields. Also even though the current behavior happens to work, it's very much non-ideal and can be potentially dangerous. M src/dict/dict-commands.c 2015-04-23 21:26:50 +0300 Timo Sirainen (51d7baa05) auth: Don't assert-crash if master user login attempts to use empty login username. M src/auth/auth-request.c 2015-04-23 21:19:54 +0300 Timo Sirainen (cc935aff9) lib-storage: mail_search_args_simplify() handles now SEARCH_HEADER*/TEXT/BODY These are especially useful with lib-fts, where stemming and other filtering can produce duplicates. There's some internal deduplication, but it doesn't catch all of these. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-04-23 21:00:43 +0300 Timo Sirainen (f5e8a76a1) lib-storage: mail_search_args_simplify() handles now SEARCH_SMALLER/LARGER M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-04-23 20:50:23 +0300 Timo Sirainen (d6a7cb184) lib-storage: mail_search_args_simplify() handles now SEARCH_BEFORE/ON/SINCE M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-04-23 20:16:54 +0300 Timo Sirainen (700081078) lib-storage: mail_search_args_simplify() merges now seqsets and uidsets. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-04-23 19:49:49 +0300 Timo Sirainen (fb79b36eb) lib-storage: If mail_search_args_simplify() merges flags, check again if any SUBs can be removed. The subquery may have been replaced with a single SEARCH_FLAGS parameter. M src/lib-storage/mail-search-args-simplify.c M src/lib-storage/test-mail-search-args-simplify.c 2015-04-23 19:42:13 +0300 Timo Sirainen (78278319a) lib-storage: Makefile fixes for previous test programs M src/lib-storage/Makefile.am 2015-04-23 19:37:25 +0300 Timo Sirainen (45a3ea334) imapc: Don't write SEARCH YOUNGER/OLDER queries if server doesn't support WITHIN extension M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-storage/index/imapc/imapc-search.c 2015-04-23 19:29:43 +0300 Timo Sirainen (f8740ac53) lib-storage: Moved mail_search_args_simplify() to its own file and added unit tests. No functional changes. M src/lib-storage/Makefile.am A src/lib-storage/mail-search-args-simplify.c M src/lib-storage/mail-search.c A src/lib-storage/test-mail-search-args-simplify.c 2015-04-23 19:28:04 +0300 Timo Sirainen (ae1b2f554) imapc: Use mail_search_arg_to_imap() to write IMAP SEARCH parameters. This also fixes a few bugs, since some of the search parameters weren't written entirely correctly. M src/lib-storage/index/imapc/imapc-search.c 2015-04-23 19:24:50 +0300 Timo Sirainen (9b92e7962) lib-storage: Added mail_search_args_to_imap() Useful for writing IMAP SEARCH parameters from struct mail_search_arg. M src/lib-storage/Makefile.am A src/lib-storage/mail-search-args-imap.c M src/lib-storage/mail-search.h A src/lib-storage/test-mail-search-args-imap.c 2015-04-23 19:20:00 +0300 Timo Sirainen (4fe4f6e13) lib-storage: Added mail_thread_type_to_str() M src/lib-storage/mail-thread.c M src/lib-storage/mail-thread.h 2015-04-23 19:19:10 +0300 Timo Sirainen (120dd01f5) lib-imap: Added imap_to_date() M src/lib-imap/imap-date.c M src/lib-imap/imap-date.h 2015-04-23 16:33:19 +0300 Timo Sirainen (2848ed047) lib-storage: Fixed assert-crash with mailbox_list_index=yes if root mailbox name was empty. This happened if the index was used for a non-listable namespace whose prefix started with the namespace separator (e.g. prefix="/expunged/") M src/lib-storage/list/mailbox-list-index-iter.c 2015-04-23 13:37:22 +0300 Timo Sirainen (a7348c7fd) imapc: After auth failed, return failure immediately when opening a mailbox. Instead of trying to re-authenticate which again will most likely fail. Based on patch by Michael M Slusarz M src/lib-storage/index/imapc/imapc-storage.c 2015-04-23 13:27:17 +0300 Timo Sirainen (471eed36d) lib-storage: Small code cleanup for index_mail_get_binary_stream() stream_r is always non-NULL here. Also move unreferencing cache istream to be last in case it might fix data.stream=NULL being here in some situations. M src/lib-storage/index/index-mail-binary.c 2015-04-23 13:01:50 +0300 Timo Sirainen (75157863d) lib: Fixed reference counting in iostream-rawlog if either i/ostream wasn't used. M src/lib/iostream-rawlog.c 2015-04-23 11:40:03 +0300 Timo Sirainen (fc64b2b53) lib: iostream_rawlog_create_from_stream() now allows input or output to be NULL. M src/lib/iostream-rawlog.c 2015-04-23 11:20:53 +0300 Timo Sirainen (59eba6fc8) lib-storage: Fixed subscription file reading when file was (nearly) empty. Broken by the earlier changes. M src/lib-storage/list/subscription-file.c 2015-04-22 18:17:10 +0300 Timo Sirainen (4b11f9688) lib-storage: Added support for subscriptions file version 2 format. The v2 format's main benefit is that it doesn't write the hierarchy separator to the subscriptions file, which allows the separator to be changed without breaking subscriptions. This mainly affects LAYOUT=INDEX, which doesn't have a native hardcoded separator. The plan is to start writing v2 subscription files in Dovecot v2.3. So for now we simply read such files and if we find v2 file we also modify it in v2 format, but we never create new v2 format files or convert v0 to v2. M src/lib-storage/list/subscription-file.c 2015-04-21 23:00:08 +0300 Timo Sirainen (36716baee) fts-lucene: Fix to earlier commit: Header names must be indexed without libfts, not with. M src/plugins/fts-lucene/lucene-wrapper.cc 2015-04-21 21:29:42 +0300 Timo Sirainen (4f4daf7df) fts-lucene: Optionally use lib-fts instead of CLucene's own analyzers. fts_lucene = use_libfts enables this. M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/fts-lucene-plugin.h M src/plugins/fts-lucene/lucene-wrapper.cc 2015-04-21 21:28:41 +0300 Timo Sirainen (76cb5c2b6) fts: If backend has FTS_BACKEND_FLAG_TOKENIZED_INPUT set, index also the header name. We were sending the hdr_name to the backend without tokenizing it or filtering it, so the backend couldn't have done anything useful about it. M src/plugins/fts/fts-build-mail.c 2015-04-21 20:59:48 +0300 Timo Sirainen (0c509a394) lib-fs: Fixed fs-posix to work with fs_iter_init(path="") when fs prefix wasn't set. M src/lib-fs/fs-posix.c 2015-04-21 20:16:36 +0300 Timo Sirainen (ec930ce90) lib-fts: Added normalizer-simple for doing normalization without libicu. M src/lib-fts/Makefile.am A src/lib-fts/fts-filter-normalizer-simple.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-filter.h 2015-04-21 19:40:42 +0300 Timo Sirainen (2f2faa96a) lib-fts: Fixed test-fts-filter to work again after previous normalizer changes. M src/lib-fts/test-fts-filter.c 2015-04-21 19:36:27 +0300 Timo Sirainen (63713f16b) lib-fts: Renamed normalizer to icu-normalizer, including the source code. M src/lib-fts/Makefile.am R078 src/lib-fts/fts-filter-normalizer.c src/lib-fts/fts-filter-normalizer-icu.c M src/lib-fts/fts-filter.c M src/lib-fts/fts-filter.h 2015-04-21 19:31:14 +0300 Timo Sirainen (cb6f6ef50) configure: s/normalizer/libicu/ since we it could be used for something else as well. M configure.ac M src/lib-fts/Makefile.am M src/lib-fts/fts-filter-normalizer.c 2015-04-21 17:01:39 +0300 Timo Sirainen (e298a331a) lmtp proxy: Include in log messages how long it took to deliver the mail. In multi-RCPT TO sessions it's a bit unreliable to split the single DATA reply's times to multiple lines, so instead each line just says "(2/3 at 123 ms)" meaning that the second mail was delivered at the time when 123 milliseconds had elapsed since the delivery was started. M src/lmtp/lmtp-proxy.c 2015-04-21 16:54:51 +0300 Timo Sirainen (da0420f1b) lib-lda: Assume that the caller sets delivery_time_started This is required because parts of the delivery time may be done at the time the user is being initialized, so it needs to be set before the user init is done. M src/lda/main.c M src/lib-lda/mail-deliver.c M src/lmtp/commands.c 2015-04-21 16:52:59 +0300 Timo Sirainen (078336467) lib-lda: mail_deliver_log() now updates the %{delivery_time} instead of using the first cached value. The first time the cached values are set the transaction isn't committed and the mailbox isn't synced. M src/lib-lda/mail-deliver.c 2015-04-21 16:50:43 +0300 Timo Sirainen (5072e5009) lib-lda: Added lmtp-client to track timestamps when various events happen. M src/lib-lda/lmtp-client.c M src/lib-lda/lmtp-client.h 2015-04-21 14:08:12 +0300 Timo Sirainen (cb29b57f6) imap: Finishing previous commit by removing now-unnecessary code. M src/imap/cmd-select.c 2015-04-21 14:06:41 +0300 Timo Sirainen (115cf0320) imap: Removed separate time counting from SELECT and SEARCH commands. M src/imap/cmd-select.c M src/imap/imap-search.c M src/imap/imap-search.h 2015-04-21 14:06:22 +0300 Timo Sirainen (8808ae641) imap: Include in tagged reply how much running time each IMAP command takes. The running time doesn't include time spent waiting for the client on ioloop. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c 2015-04-21 14:03:52 +0300 Timo Sirainen (900cbc1dc) imap: Small code cleanup. Removed all the checks of CLIENT_COMMAND_STATE_DONE to command_exec() itself. M src/imap/cmd-append.c M src/imap/imap-client.c M src/imap/imap-commands.c 2015-04-21 13:19:24 +0300 Timo Sirainen (6b6011c22) lda, lmtp: Added delivery_time and session_time variables to deliver_log_format session_time is meaningful only with LMTP. The delivery_time is separate for each mail delivery. The results are in milliseconds now. If needed we could add a new %modifier that converts it into secs.millisecs. M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h M src/lmtp/client.h M src/lmtp/commands.c 2015-04-21 11:13:51 +0300 Timo Sirainen (dbd7b5ee9) stats: num_cmds was always 0 in global stats M src/stats/mail-command.c 2015-04-21 09:59:32 +0300 Timo Sirainen (e162baa2d) lib-fts: Added udhr_fra.txt to EXTRA_DIST M src/lib-fts/Makefile.am 2015-04-20 19:57:37 +0300 Timo Sirainen (4bf6941cc) lib-fts: Added PropList.txt to EXTRA_DIST M src/lib-fts/Makefile.am 2015-04-20 18:08:56 +0300 Timo Sirainen (82eadbc43) lib-fts requires libexttextcat actually - don't even try to use textcat for it. I'm also not sure yet if some libexttextcats are too old for it. M configure.ac M src/lib-fts/fts-language.c 2015-04-20 18:02:31 +0300 Timo Sirainen (0ebe49880) lib-fts: Updated Finnish/French stopword lists from Lucene code. Most importantly they added the licensing info to the files. M src/lib-fts/stopwords_fi.txt M src/lib-fts/stopwords_fr.txt 2015-04-20 17:45:32 +0300 Timo Sirainen (556c189ce) lib-fts: Fixed using FTS_NORMALIZER_CFLAGS/LIBS. M src/lib-fts/Makefile.am 2015-04-20 17:44:21 +0300 Timo Sirainen (632d21819) lib-fts: Don't crash in test-fts-filter if libstemmer support isn't built in M src/lib-fts/test-fts-filter.c 2015-04-20 17:43:32 +0300 Timo Sirainen (ec976e5dd) lib-fts: Fixed some wrong macro name checks. Forgot to change these ones while renaming them.. M src/lib-fts/fts-filter-normalizer.c M src/lib-fts/fts-filter-stemmer-snowball.c M src/lib-fts/test-fts-filter.c 2015-04-20 17:40:12 +0300 Timo Sirainen (9cff78f3c) lib-fts: Added missing stopwords_fi.txt M src/lib-fts/Makefile.am A src/lib-fts/stopwords_fi.txt 2015-04-20 17:33:09 +0300 Timo Sirainen (4e07da7f2) lib-fts: Fixed test-fts-language to use TEXTCAT_DATADIR This may still make too many assumptions about what data exists where.. So we may need to remove this test from "make check". But for now leave it there. M src/lib-fts/Makefile.am M src/lib-fts/test-fts-language.c 2015-04-20 17:24:37 +0300 Timo Sirainen (30106a5a9) configure: Fixed building without textcat. M configure.ac 2015-04-20 17:08:42 +0300 Timo Sirainen (44f6dba7a) configure: Added Debian Wheezy workaround for finding textcat.h M configure.ac 2015-04-20 17:01:12 +0300 Timo Sirainen (a6f1ded5a) lib-fts: Fixed default textcat datadir paths. M configure.ac M src/lib-fts/fts-language.c 2015-04-20 16:34:31 +0300 Timo Sirainen (fb32aea49) configure: Fixed linking with libexttextcat when it was found via pkg-config M configure.ac 2015-04-20 16:22:36 +0300 Timo Sirainen (1537d20b8) fts: Added FTS_BACKEND_FLAG_TOKENIZED_INPUT, which is implemented via lib-fts. M src/plugins/fts/Makefile.am M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-plugin.c A src/plugins/fts/fts-search-args.c A src/plugins/fts/fts-search-args.h M src/plugins/fts/fts-storage.c A src/plugins/fts/fts-user.c A src/plugins/fts/fts-user.h 2015-04-20 16:19:07 +0300 Timo Sirainen (c865b0e9c) Initial import for lib-fts. Parts of what this code does was already implemented internally by fts-lucene. lib-fts is intended to be usable for all the FTS backends. The APIs are still going to change a bit, but hopefully not after v2.2.17 release. Mostly written by Teemu Huovila. M .hgignore M configure.ac M src/Makefile.am A src/lib-fts/Makefile.am A src/lib-fts/fts-filter-normalizer.c A src/lib-fts/fts-filter-private.h A src/lib-fts/fts-filter-stemmer-snowball.c A src/lib-fts/fts-filter-stopwords.c A src/lib-fts/fts-filter.c A src/lib-fts/fts-filter.h A src/lib-fts/fts-language.c A src/lib-fts/fts-language.h A src/lib-fts/fts-tokenizer-address.c A src/lib-fts/fts-tokenizer-generic-private.h A src/lib-fts/fts-tokenizer-generic.c A src/lib-fts/fts-tokenizer-private.h A src/lib-fts/fts-tokenizer.c A src/lib-fts/fts-tokenizer.h A src/lib-fts/stopwords_en.txt A src/lib-fts/stopwords_fr.txt A src/lib-fts/test-fts-filter.c A src/lib-fts/test-fts-language.c A src/lib-fts/test-fts-tokenizer.c A src/lib-fts/udhr_fra.txt A src/lib-fts/word-boundary-data.sh A src/lib-fts/word-break-data.sh 2015-04-20 15:27:02 +0300 Timo Sirainen (5f9231534) configure: Fixed/improved finding and using libexttextcat. libexttextcat wasn't actually being used at all by fts-lucene. Now we'll first prefer finding it via pkg-config, next finding exttextcat and only last look up textcat. M configure.ac M src/plugins/fts-lucene/Makefile.am M src/plugins/fts-lucene/lucene-wrapper.cc 2015-04-20 15:12:14 +0300 Timo Sirainen (db9ad8c82) configure: Stemmer and textcat checks are now done even if CLucene isn't used. They'll be useful for other FTS backends as well. This patch doesn't change any actual functionality. M configure.ac M src/plugins/fts-lucene/Makefile.am M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/lucene-wrapper.cc 2015-04-20 15:02:04 +0300 Timo Sirainen (fed97f5be) fts: Code cleanup to do all index updates via fts_build_data() This doesn't actually change the behavior. M src/plugins/fts/fts-build-mail.c 2015-04-17 11:52:24 +0300 Timo Sirainen (ab0475b6f) doveadm fs delete -R: Don't add extra '/' chars in the middle of paths M src/doveadm/doveadm-fs.c 2015-04-17 11:20:23 +0300 Timo Sirainen (ead160b74) dovecot-config: Added lib-stats to LIBDOVECOT_INCLUDE M dovecot-config.in.in 2015-04-16 18:20:15 +0300 Timo Sirainen (60eda4918) lib-fs: fs_class_register() can now be called externally. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2015-04-16 14:19:51 +0300 Timo Sirainen (c17957c85) doveadm mailbox metadata: The keys must always be lowercased. The keys need to be case-insensitive in IMAP, so the IMAP code always also lowercases them. M src/doveadm/doveadm-mail-mailbox-metadata.c 2015-04-16 12:59:05 +0300 Timo Sirainen (7c7e4eef7) stats: Fixed compiling with some OSes. struct timeval wasn't necessarily already defined by existing includes. M src/stats/mail-stats.h 2015-04-16 11:46:22 +0300 Phil Carmody (8b814dfef) lib: test-array build warnings on Solaris 10 Solaris cc doesn't think I've read N1570 6.7.9p11, 6.5.16.1p2, and 6.3.1.3p2, and wants to save me from myself. Reported-by: Juergen Obermann Signed-off-by: Phil Carmody M src/lib/test-array.c 2015-04-15 21:01:11 +0300 Timo Sirainen (eb1365e61) imapc: Added imapc_features=zimbra-workarounds Zimbra (at least v5.0.18_GA_3011.RHEL4_64) can return different headers depending on whether the whole message body was fetched or only (partial) headers. This probably happens only for invalid characters that are translated into '?'. With this workaround enabled we don't use FETCH BODY.PEEK[], but we do FETCH (BODY.PEEK[HEADER] BODY.PEEK[TEXT]) and merge the results together. This way the results are always consistent and headers don't suddenly change. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h 2015-04-14 09:58:01 +0300 Timo Sirainen (1f366614a) dict-file: Use tabescaping for keys and values to allow LFs in them. Although this makes the format slightly incompatible, it's doubtful anybody is using dict values containing \001 characters. M src/lib-dict/dict-file.c 2015-04-13 20:38:10 +0300 Timo Sirainen (b523ce632) auth: If passdb/userdb changes the username, add the changed username also to the cache. M src/auth/auth-request.c 2015-04-13 20:37:48 +0300 Timo Sirainen (87c4b7750) auth: Setting userdb fields from cache didn't set handle any special fields. The special fields were relatively rarely used though. M src/auth/auth-request.c 2015-04-13 10:04:47 +0300 Timo Sirainen (d8128f68d) replication plugin: Don't crash for users who don't have replication enabled. M src/plugins/replication/replication-plugin.c 2015-04-08 13:55:35 +0900 Timo Sirainen (31e6dbee5) lib: Added json-tree API for parsing JSON input into a tree structure. This makes it easier to access complicated JSON structs that can fit into memory. M src/lib/Makefile.am A src/lib/json-tree.c A src/lib/json-tree.h A src/lib/test-json-tree.c M src/lib/test-lib.c M src/lib/test-lib.h 2015-04-06 12:07:32 +0900 Timo Sirainen (1f4f81ba8) lib-index: Added reason_r parameter to mail_transaction_log_view_set() This is used to improve some of the error messages about index corruption. M src/doveadm/dsync/dsync-transaction-log-scan.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.h M src/lib-index/test-mail-transaction-log-view.c M src/lib-storage/mailbox-get.c M src/lib-storage/test-mailbox-get.c 2015-04-06 11:39:34 +0900 Timo Sirainen (189c53b4a) rawlog: Flush output to disk every second instead of only when buffer is full. M src/util/rawlog.c 2015-04-03 08:53:45 +0900 Timo Sirainen (e94ce0c7f) configure: Added --with-textcat parameter M configure.ac 2015-04-02 08:12:41 +0900 Timo Sirainen (eef454740) dsync: Improved error message when remote dsync-server couldn't be started. M src/doveadm/doveadm-dsync.c 2015-04-01 01:16:57 +0900 Timo Sirainen (a166cdfba) dsync: Don't try to use the new "finish" state with old dsync versions. M src/doveadm/dsync/dsync-ibc-stream.c 2015-03-28 01:23:47 +0200 Timo Sirainen (8b7e479f8) Makefile: Build lib-dovecot before lib-compression Because lib-compression depends on it. M src/Makefile.am 2015-03-27 23:39:30 +0200 Timo Sirainen (9871c4b8a) quota: Added debug information for quota_over_flag handling. M src/plugins/quota/quota.c 2015-03-25 10:11:35 +0200 Teemu Huovila (50e06c056) configure: Add missing (auto) to autodetected options. M configure.ac 2015-03-27 18:04:51 +0200 Timo Sirainen (54f93d2ba) lib-compression: Use libdovecot.so as dependency. Don't include liblib.a itself! M src/lib-compression/Makefile.am 2015-03-27 15:12:50 +0200 Timo Sirainen (603cfcf51) imapc: Don't assert-crash when trying to sync a mailbox with MAILBOX_FLAG_SAVEONLY. We can just skip the sync, because we don't do anything except save mails. M src/lib-storage/index/imapc/imapc-sync.c 2015-03-27 14:31:01 +0200 Timo Sirainen (e265563be) quota: When reporting quota value/limit in kilobytes, round the value upwards. Most importantly this doesn't truncate <1024 values to 0, which also in quota limit means unlimited. M src/plugins/quota/quota.c 2015-03-27 11:02:18 +0200 Timo Sirainen (e5d6ec333) auth: Don't add original_user or auth_user to passdb reply if they already exist. This allows passdb to override their values cleanly. M src/auth/auth-request-handler.c 2015-03-24 11:27:26 +0200 Timo Sirainen (4ce25b6f7) imapc: Fix to previous change - labels are strings and not atoms. Allow also atoms just in case M src/lib-storage/index/imapc/imapc-mailbox.c 2015-03-24 10:14:58 +0100 Timo Sirainen (dce8b3399) imapc: Ignore \Muted GMail label M src/lib-storage/index/imapc/imapc-mailbox.c 2015-03-22 20:54:29 +0200 Timo Sirainen (697ff56bf) lib-storage: Added mailbox_list_fs_get_list() Using mailbox_list_init_fs() now sets the mailbox_list pointer to root fs, which allows the fs backends to lookup the list. Although this can't be done in the init() function since the list is set only afterwards. M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2015-03-22 20:52:56 +0200 Timo Sirainen (ea19bfdfc) lib-fs: Added support for module_contexts in fs. They could also be added to fs_file if needed, but for now I didn't bother adding it. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2015-03-22 20:52:16 +0200 Timo Sirainen (0bf2d5782) lib-fs: When autoloading fs plugins with '-' in the name, translate them to '_' It's not possible for the function names to contain '-' in any case. Also Dovecot in general uses '-' instead of '_' in the configuration names. This change actually allows using either of them. M src/lib-fs/fs-api.c 2015-03-22 18:59:51 +0200 Timo Sirainen (11e8e38b5) Cleanup for libcharset's iconv linking. Linking libcharset.la now automatically links with the necessary iconv libraries. M src/lib-charset/Makefile.am M src/lib-dovecot/Makefile.am M src/lib-mail/Makefile.am 2015-03-20 21:58:16 +0200 Timo Sirainen (4898b00d5) lib: Fixed potential build error when building without modules. M src/lib/module-dir.c 2015-03-20 21:13:21 +0200 Timo Sirainen (4d65df350) lib-dict: Fixed crash when transaction failed due to dict server disconnection. M src/lib-dict/dict-client.c 2015-03-20 21:01:08 +0200 Timo Sirainen (93936b4e7) lib: o_stream_create_rawlog_from_stream() should preserve the output stream fd. ostream-rawlog is just a passthrough stream after all. M src/lib/ostream-rawlog.c 2015-03-20 20:46:52 +0200 Timo Sirainen (ce9619645) doveadm: Added -h parameter to hide header line from tab and table formatter output. M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-print.h M src/doveadm/doveadm.c 2015-03-20 13:27:00 +0200 Timo Sirainen (4a14ae552) Removed mountpoint checking and updating code. After a few years it seems like it has just caused more problems than it has actually fixed. The only thing it's been used for is to make sure that Dovecot can't create empty user directories when the user's mail filesystem isn't mounted. But that's supposed to be normally prevented already if the mount root directory permissions are only writable by root. For now the mountpoint listing code and doveadm mount code still exists just in case people have some scripts using those. Those could be removed in v2.3. If we somehow figured out which mountpoints existed (not so easy because they could be only visible in userdb lookups for different users), we could maybe create some kind of a script that checks the permissions at startup. This would work with Linux at least: mkdir test mount / -o bind test ls -ld test/var/mail # assuming /var/mail mountpoint umount test M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h M src/lib-storage/mailbox-list.c M src/master/main.c 2015-03-19 10:01:18 +0200 Timo Sirainen (28d084caf) dsync: Fixed returning wrong mail_error in some remote dsync. M src/doveadm/dsync/dsync-ibc-stream.c 2015-03-19 01:24:32 +0200 Timo Sirainen (535646abe) imapc: Don't wait for login to succeed at mailbox list creation. The failure will be visible in the next command. This wait was here mainly for imap, but cbdfca7d24a6 implements the wait in imap process directly. Other (current) protocols don't need such wait at all. Most importantly this change allows doveadm to handle imapc login failures by seeing them as MAIL_ERROR_PERM errors when listing mailboxes or opening a mailbox. This allows it to return a different exit code from temporary failure (which it is not). M src/lib-storage/index/imapc/imapc-list.c 2015-03-19 01:21:20 +0200 Timo Sirainen (4733d3729) imapc: Don't crash in mailbox_is_inconsistent() with unopened mailbox. M src/lib-storage/index/imapc/imapc-storage.c 2015-03-19 01:20:38 +0200 Timo Sirainen (58ab5b9e7) imap: If mailbox list is unusable at startup, return failure immediately. This is currently used only by imapc when login fails. M src/imap/main.c 2015-03-19 00:41:19 +0200 Timo Sirainen (ce0e25f26) dsync: Use storage's mail_error to choose the doveadm exit code. Instead of always assuming that all errors are EX_TEMPFAIL. M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-private.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree.h 2015-03-19 00:38:01 +0200 Timo Sirainen (ce7c2091c) imapc: If authentication fails, preserve the error message as storage/list error. This isn't very helpful yet, because the mailbox list creation itself fails. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2015-03-19 00:32:44 +0200 Timo Sirainen (d3d2e50d6) lib-storage: mailbox_list_mailbox() now copies the mailbox_exists() error. Instead of assuming it has to be an internal error. M src/lib-storage/mailbox-list.c 2015-03-18 17:10:23 +0200 Phil Carmody (0248b1c21) lib: buffer - paranoid compile-time check for struct sizes At the moment, nothing guarantees that the public struct is big enough to contain the private struct. Signed-off-by: Phil Carmody M src/lib/buffer.c 2015-03-18 17:10:03 +0200 Phil Carmody (62684181b) lib: bits - improve bits_required to recurse downwards, not sideways Ooops. Signed-off-by: Phil Carmody M src/lib/bits.h 2015-03-18 17:09:30 +0200 Phil Carmody (db1015682) lib: bits - Add macro for '1 << i' It's used all over the place. It feels weird not having access to such a macro. Signed-off-by: Phil Carmody M src/lib/bits.h 2015-03-18 13:43:35 +0200 Timo Sirainen (70fc76bbc) fts: Fixed assert-crash if fts-parser was created for a body part that backend didn't want to index. M src/plugins/fts/fts-build-mail.c 2015-03-17 17:30:33 +0200 Timo Sirainen (cd58b6bbd) auth ldap: Crashfixes for earlier changes. Hopefully works correctly now M src/auth/db-ldap.c 2015-03-17 10:49:20 +0200 Timo Sirainen (cc3cbeae6) auth ldap: Fixed crash when handling invalid SSL option. M src/auth/db-ldap.c 2015-03-17 09:58:03 +0200 Timo Sirainen (e3c410263) auth ldap: Fixed assert-crash when both passdb ldap and userdb ldap was used M src/auth/db-ldap.c M src/auth/db-ldap.h 2015-03-16 23:25:34 +0200 Timo Sirainen (99363aeac) auth ldap: Start LDAP connection only after auth process initialization is finished. This way even if connecting to LDAP takes a while it won't cause the master process to kill the auth process due to it not sending the startup "I'm ok" notification early enough. M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2015-03-16 23:21:05 +0200 Timo Sirainen (67d650c5a) auth ldap: Make sure config file path is included in all fatal error messages. M src/auth/db-ldap.c 2015-03-16 23:17:39 +0200 Timo Sirainen (d492e2f0d) auth ldap: If any tls_* settings are given when they're not supported, fail with fatal instead of just warning. These may be important for intended security, especially tls_cipher_suite. We shouldn't allow setting them and then somewhat silently just ignore them. M src/auth/db-ldap.c 2015-03-16 23:14:49 +0200 Timo Sirainen (e885bb21d) auth ldap: Call ldap_init*() already at db_ldap_init(). ldap_init*() doesn't start connecting yet, but this way we can verify that all the settings are correct. M src/auth/db-ldap.c 2015-03-16 23:03:10 +0200 Timo Sirainen (6332ef752) auth ldap: More concentration of i_fatal() calls to db_ldap_init() M src/auth/db-ldap.c M src/auth/db-ldap.h 2015-03-16 22:55:47 +0200 Timo Sirainen (41e360a76) auth ldap: Moved more LDAP fatal checks to db_ldap_init() M src/auth/db-ldap.c 2015-03-16 22:48:39 +0200 Timo Sirainen (22513dfda) auth ldap: Improved ldap_initialize() failure's error logging. M src/auth/db-ldap.c 2015-03-16 22:46:16 +0200 Timo Sirainen (f2dda28eb) auth ldap: Include LDAP config path in all fatal errors. Also moved all such error checks to db_ldap_init(). M src/auth/db-ldap.c 2015-03-16 13:54:50 +0200 Timo Sirainen (8e8795e08) stats: Don't allow stats_refresh setting to be set too large. M src/plugins/stats/stats-plugin.c 2015-03-16 13:53:54 +0200 Timo Sirainen (9445ac01c) stats: Initial stats refresh timeout callback wasn't set. This broke after the ioloop change that caused stats_io_deactivate() not to be called immediately anymore. M src/plugins/stats/stats-plugin.c 2015-03-13 20:08:34 +0200 Timo Sirainen (24bd83190) dsync: Added an extra "finish" state to allow slave-dsync to report error to master-dsync. I'm not sure if that's actually necessary, but just trying to follow the different possibilities on how dsync run can finish made me unsure about it. This should make it at least clear that if a slave-dsync has a failure flag set at deinit master-dsync will know about it before it returns success. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-private.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-ibc.h 2015-03-13 20:05:03 +0200 Timo Sirainen (b0a06fd1c) dsync: Added an extra assert. M src/doveadm/dsync/dsync-mailbox-export.c 2015-03-13 20:03:27 +0200 Timo Sirainen (f4fdc28d5) imapc: If reconnect fails during syncing, don't treat all mails as expunged in error handling code. M src/lib-storage/index/imapc/imapc-mail.c 2015-03-13 16:28:31 +0200 Timo Sirainen (051c44cfe) lib-imap-client: If we get disconnected and reconnect, log it as warning instead of as error. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c 2015-03-13 16:12:37 +0200 Timo Sirainen (657f76e8b) fts: fts-parser doesn't need to be asked about all the known-plaintext content-types. M src/plugins/fts/fts-parser.c 2015-03-13 16:04:10 +0200 Timo Sirainen (88b90ce9d) fts-tika, fts-solr: Added timeouts to requests so they aren't attempted infinitely. M src/plugins/fts-solr/solr-connection.c M src/plugins/fts/fts-parser-tika.c 2015-03-13 16:04:01 +0200 Timo Sirainen (5518182f1) fts: If fts-parser fails, stop indexing instead of ignoring the error and continuing. This is especially important in case there's just some temporary error. M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-parser.h 2015-03-13 15:06:10 +0200 Timo Sirainen (ca20a1099) Makefile: Avoid make race conditions when generating files that are used as dependencies. The file creation needs to be atomic, otherwise another process can start trying to use an unfinished file. So we first create .tmp file and then mv it into the final one. M src/config/Makefile.am M src/lib-dict/Makefile.am M src/lib-sql/Makefile.am M src/lib-storage/register/Makefile.am M src/lib/Makefile.am M src/plugins/quota/Makefile.am 2015-03-12 19:39:03 +0200 Timo Sirainen (3818c2a96) lib-mail: Added HEADER_FILTER_CRLF_PRESERVE flag to istream-header-filter. M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-header-filter.h 2015-03-12 17:41:09 +0200 Timo Sirainen (c999c1f50) Added signature for changeset 0f8f0d8ee607 M .hgsigs 2015-03-12 17:41:05 +0200 Timo Sirainen (c51297071) Added tag 2.2.16 for changeset 0f8f0d8ee607 M .hgtags 2015-03-12 17:41:05 +0200 Timo Sirainen (c08719494) Released v2.2.16. M NEWS M configure.ac 2015-03-12 15:50:59 +0200 Timo Sirainen (55171d029) rawlog: Updated -i -> -I also in usage string. M src/util/rawlog.c 2015-03-12 15:50:07 +0200 Timo Sirainen (49f88c99b) rawlog: Changed -i to -I parameter We can't use -i, because it's handled by lib-master for instance selection. M src/util/rawlog.c 2015-03-12 15:42:31 +0200 Timo Sirainen (ac4ec9d17) dict: cdb support should be available only to dict process. Because otherwise we need to link libcdb into pretty much all Dovecot binaries, which is part of what having the dict proxy tries to avoid. We could implement the direct linking optionally as well, but that would need to be done in a bit more generic way rather than just hardcoding it only to cdb support. M configure.ac M src/lib-dict/Makefile.am 2015-03-12 15:33:13 +0200 Timo Sirainen (2aa48777a) doveadm: Fixed table formatter for UTF-8 output. Based on patch by Hardy Flor M src/doveadm/doveadm-print-table.c 2015-03-12 12:32:54 +0200 Timo Sirainen (78199a8ad) fts: Added missing error logging/setting. M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-storage.c 2015-03-12 12:32:30 +0200 Timo Sirainen (6a262c9bd) doveadm: Added several missing error logging calls. M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-mailbox-status.c 2015-03-11 23:05:34 +0200 Timo Sirainen (13a7cda8a) imapc: Prefetching wasn't done for headers if there weren't also other fields. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2015-03-11 20:38:52 +0200 Timo Sirainen (60df0886a) lib-master: Crashfix to earlier anvil query timeout change. M src/lib-master/anvil-client.c 2015-03-11 20:02:20 +0200 Timo Sirainen (de26c21cf) imapc: Added throttling settings to imapc_features=throttle:a:b:c This change could be reverted once good settings are found. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2015-03-11 19:44:48 +0200 Timo Sirainen (8557c3b6d) lib-imap-client: Implemented a bit more complicated [THROTTLING] behavior. The throttling is now more continuous and decreases more slowly. M src/lib-imap-client/imapc-connection.c 2015-03-11 18:30:19 +0200 Timo Sirainen (71417d43a) imapc: If imapc_features has gmail-migration, fetch X-GM-MSGID at startup and cache it. This works only if index files haven't been disabled. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2015-03-11 17:54:27 +0200 Timo Sirainen (eda647108) imapc: Use GUIDs from cache. M src/lib-storage/index/imapc/imapc-mail.c 2015-03-11 17:54:21 +0200 Timo Sirainen (3e546c443) imapc: Add prefetched GUIDs to cache. M src/lib-storage/index/imapc/imapc-mail.c 2015-03-11 17:29:12 +0200 Timo Sirainen (4f75b5bff) imapc: Removed Exchange-workaround for ignoring missing BODY[] replies. This causes data loss if server was actually returning a NO temporary error that would have succeeded later on. M src/lib-storage/index/imapc/imapc-mail.c 2015-03-11 16:40:05 +0200 Timo Sirainen (2c16769fb) lib-master: Timeout anvil queries after 5 seconds. M src/lib-master/anvil-client.c 2015-03-11 16:39:24 +0200 Timo Sirainen (34f7d3a80) lib-master: If write() to anvil fails, reconnect to it. M src/lib-master/anvil-client.c 2015-03-11 14:39:52 +0200 Timo Sirainen (b43d7e2b7) imapc: Don't flush prefetch FETCH command before it has mail_prefetch_count number of mails. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2015-03-11 14:39:26 +0200 Timo Sirainen (2a1d9dda6) imapc: Make sure we don't flush prefetch FETCH command unneededly. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.h 2015-03-11 13:28:24 +0200 Timo Sirainen (851404049) doveadm: Initialize logging. Most importantly so that LOG_STDERR_TIMESTAMP can be used to prefix each line with a timestamp. M src/doveadm/doveadm.c 2015-03-11 13:27:49 +0200 Timo Sirainen (e52f55c08) lib-master: Get log timestamp prefix from LOG_STDERR_TIMESTAMP environment. M src/lib-master/master-service.c 2015-03-09 21:27:51 +0200 Timo Sirainen (a7b2e5e2a) lib-fs: Optimized fs_stat() for fs-metawrap after writing a file. M src/lib-fs/fs-metawrap.c 2015-03-09 20:33:13 +0200 Timo Sirainen (876cc4333) fs-posix: Don't close fd after successful write. 5bd6e2eee650 should have been done only on failures. M src/lib-fs/fs-posix.c 2015-03-09 20:26:50 +0200 Timo Sirainen (664bf3e23) fs-posix: Implement fs_stat() with fstat() if fd is already open. M src/lib-fs/fs-posix.c 2015-03-09 19:29:04 +0200 Timo Sirainen (b82a8dd9a) fs-posix: Don't try to unlink() the temp file twice after failure. M src/lib-fs/fs-posix.c 2015-03-09 17:36:11 +0200 Timo Sirainen (737c22276) lib: And another module_dir_load() bugfix.. M src/lib/module-dir.c 2015-03-09 17:15:03 +0200 Timo Sirainen (4d9cd7ab2) lib: Small error logging improvements for module_dir_load() M src/lib/module-dir.c 2015-03-09 17:14:35 +0200 Timo Sirainen (a870ffe75) lib: Recent module_dir_load() changes broke error logging. If there was a required list of modules, the error was properly returned. But when loading all plugins, the errors weren't logged. M src/lib/module-dir.c 2015-03-09 16:17:08 +0200 Timo Sirainen (2e429f793) indexer-worker: Added missing error logging. M src/indexer/master-connection.c 2015-03-09 15:32:23 +0200 Timo Sirainen (46e227c13) lib-imap-client: Fixed GMail [THROTTLED] detection. It's not a resp-text-code, but appended at the end of line. M src/lib-imap-client/imapc-connection.c 2015-03-09 15:26:45 +0200 Timo Sirainen (08f429b66) fs-posix: Don't close file fd after its writing is finished. This allows reading the file after writing without having to re-open the file (which in turn might fail in some situations). M src/lib-fs/fs-posix.c 2015-03-09 15:26:01 +0200 Timo Sirainen (6ff4d08b3) fs-posix: Make sure the file isn't attempted to be opened for reading while it's being written. Also if the write failed, the read should fail. M src/lib-fs/fs-posix.c 2015-03-06 17:47:38 +0200 Timo Sirainen (cc8bf5e5b) Added signature for changeset a3c27cec4112 M .hgsigs 2015-03-06 17:47:34 +0200 Timo Sirainen (50ed84230) Added tag 2.2.16.rc1 for changeset a3c27cec4112 M .hgtags 2015-03-06 17:47:34 +0200 Timo Sirainen (3dad5b157) Released v2.2.16.rc1. M NEWS M configure.ac 2015-03-06 17:46:26 +0200 Timo Sirainen (846adf6cf) lib-mail: Unit test fix to make static analyzer happier M src/lib-mail/test-message-part.c 2015-03-06 16:37:07 +0200 Timo Sirainen (f24f2b5e1) lmtp: Fixed lmtp_user_concurrency_limit=0 to actually mean unlimited M src/lmtp/commands.c 2015-03-06 16:33:23 +0200 Timo Sirainen (d25877a69) lda/lmtp: Added a hardcoded LDA_SUBMISSION_TIMEOUT_SECS=30 timeout for SMTP client. Maybe we could have a new setting if needed later on, but we've been working pretty successfully without any timeout for a long time.. M src/lda/main.c M src/lib-lda/mail-deliver.h M src/lib-lda/mail-send.c M src/lmtp/commands.c 2015-03-06 16:32:05 +0200 Timo Sirainen (0d4483bc4) lib-lda: Added smtp_client_deinit_timeout() to give a session timeout. M src/lib-lda/smtp-client.c M src/lib-lda/smtp-client.h 2015-03-06 16:30:55 +0200 Timo Sirainen (18dad02ae) lib-lda: lmtp client now supports checking for timeouts internally. The default is still to have no timeout. M src/lib-lda/lmtp-client.c M src/lib-lda/lmtp-client.h 2015-03-06 11:55:45 +0200 Timo Sirainen (c793a28b3) lib-fs: struct fs_stats comment updates M src/lib-fs/fs-api.h 2015-03-06 11:51:55 +0200 Timo Sirainen (4dfd8a717) lib-fs: Minor code cleanup: Merge read_counted & prefetch_counted into read_or_prefetch_counted M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2015-03-06 02:23:56 +0200 Timo Sirainen (87845ba7d) lib-master: Added anvil_client_query_abort() M src/lib-master/anvil-client.c M src/lib-master/anvil-client.h 2015-03-06 02:10:02 +0200 Timo Sirainen (42abccd9b) lmtp: Added lmtp_user_concurrency_limit setting. This allows limiting the number of concurrent deliveries to a single user. Useful in case one user is receiving a lot of mails and causing other deliveries to be delayed. If the limit is reached, Dovecot returns temporary failure error at DATA stage. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h M src/lmtp/main.c M src/lmtp/main.h 2015-03-06 02:06:10 +0200 Timo Sirainen (b02e7bac5) lmtp: Changed rcpt_to array to contain pointers to struct mail_recipient This allow storing the pointers so they don't change. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c 2015-03-06 01:01:28 +0200 Timo Sirainen (9ab339518) pop3-login: Disconnect client on 3rd invalid command (not 11th). M src/pop3-login/client.c 2015-03-06 00:41:14 +0200 Timo Sirainen (52b61e1df) lib: Minor improvement to test-wildcard-match unit test. M src/lib/test-wildcard-match.c 2015-03-06 00:40:46 +0200 Timo Sirainen (666286d8e) quota: If overquota-flag in userdb is wrong, execute a configured script. The idea here is that a quota_warning script could set user's overquota-flag to e.g. LDAP where MTA could reject mails already at RCPT TO stage. The quota_warning scripts however have race conditions that are difficult (or impossible) to fix, so sometimes the overquota-flag could become wrong and might require manual intervention to fix it. This feature is supposed to solve the issue by comparing the overquota-flag's status to the actual current quota usage and execute a script to fix up the situation if needed. This script is of course racy as well, but there's always the next login that can fix the situation. Also it's pretty rare that user's quota is jumping just around the limit. The overquota-flag name in userdb must be "quota_over_flag". There are two settings to configure what to do: plugin { # If quota_over_flag=TRUE, the overquota-flag is enabled. Otherwise not. quota_over_flag_value = TRUE # Any non-empty value for quota_over_flag means user is over quota. # Wildcards can be used in a generic way, e.g. "*yes" or "*TRUE*" #quota_over_flag_value = * # Service script to execute if overquota-flag is wrong. Configured the # same as quota_warning scripts. The current quota_over_flag's value is # appended as the last parameter. quota_over_script = quota-warning mismatch %u } M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2015-03-05 23:02:48 +0200 Timo Sirainen (379175cfb) stats process/plugin redesign to be more modular. The visible functionality doesn't actually change with this patch yet, but it allows other plugins/services to add their own fields to stats process. For example auth process could send auth success/failures or auth cache hits/misses. M configure.ac M src/Makefile.am M src/lib-dovecot/Makefile.am A src/lib-stats/Makefile.am A src/lib-stats/stats-parser.c A src/lib-stats/stats-parser.h A src/lib-stats/stats.c A src/lib-stats/stats.h M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h M src/plugins/imap-stats/Makefile.am M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/stats/Makefile.am A src/plugins/stats/mail-stats-fill.c A src/plugins/stats/mail-stats.c A src/plugins/stats/mail-stats.h M src/plugins/stats/stats-connection.c M src/plugins/stats/stats-connection.h M src/plugins/stats/stats-plugin.c M src/plugins/stats/stats-plugin.h M src/stats/Makefile.am M src/stats/client-export.c M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-domain.h M src/stats/mail-ip.c M src/stats/mail-ip.h M src/stats/mail-server-connection.c M src/stats/mail-session.c M src/stats/mail-session.h M src/stats/mail-stats.c M src/stats/mail-stats.h M src/stats/mail-user.c M src/stats/mail-user.h M src/stats/main.c 2015-03-05 22:19:02 +0200 Timo Sirainen (bebc9fe20) lib: Don't call ioloop context deactivate() if activate() hasn't been called yet. This could have happened immediately after the callback was registered. M src/lib/ioloop-private.h M src/lib/ioloop.c 2015-03-05 22:18:04 +0200 Timo Sirainen (302167a8a) lib-fs: Track how many different operations have been done on the fs. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2015-03-05 22:17:09 +0200 Timo Sirainen (4c827a092) lib-fs: Added fs_get_parent() and fs_get_driver() These can be used to iterate through fs wrappers and see what they are. M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2015-03-03 19:48:23 +0200 Timo Sirainen (bcd946aee) doveadm backup: Try to avoid crashing on unexpected destination changes. It's a bit difficult to reproduce this bug.. But at least this change should change the assert, if nothing else. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2015-03-03 19:34:59 +0200 Timo Sirainen (f771d4d1f) dsync: Open mailboxes with readonly-flag whenever possible. There shouldn't be any actual functional difference though. M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c 2015-03-03 19:32:28 +0200 Timo Sirainen (de3175adb) doveadm backup -R: Open the mailbox as readonly, so with imapc EXAMINE is used. M src/doveadm/dsync/dsync-brain-mailbox.c 2015-03-03 17:25:33 +0200 Timo Sirainen (3f50c1381) lib-imap-client: Get capabilities again after reconnection to server. This is needed most importantly if we're not using plaintext authentication to log in. M src/lib-imap-client/imapc-connection.c 2015-03-03 01:05:49 +0200 Timo Sirainen (a0d065037) lib-fs: Added FS_ITER_FLAG_NOCACHE M src/lib-fs/fs-api.h 2015-03-02 21:14:55 +0200 Timo Sirainen (ddc8fe263) rawlog: Removed double '.' chars from log filenames M src/util/rawlog.c 2015-03-02 15:07:20 +0200 Timo Sirainen (640d32044) dict-redis: Added support for changing the Redis database. Adding :db=N to the dict string specifies the database. M src/lib-dict/dict-redis.c 2015-03-02 14:41:11 +0200 Timo Sirainen (d907b51d2) lib: Added assert to i_stream_create_seekable*() to have non-zero max_buffer_size. This size is used for the created fd istream and it can't be zero. M src/lib/istream-seekable.c 2015-03-02 14:36:15 +0200 Timo Sirainen (ac6bba612) lib: Give a name for istream-seekable's temporary fd istream. M src/lib/istream-seekable.c 2015-03-01 22:14:01 +0200 Timo Sirainen (1bf1a24a9) lib-storage: Allow up to 255 chars in a single mailbox hierarchy name. This also reduces the max number of hierarchy levels, but 16 should still be enough for normal uses. M src/lib-storage/mailbox-list.c 2015-02-27 14:29:10 +0200 Timo Sirainen (be5a825ed) fts-lucene: Fixed lookups from virtual mailboxes with over 32 physical mailboxes. M src/plugins/fts-lucene/fts-backend-lucene.c 2015-02-26 20:24:16 +0200 Timo Sirainen (5dc8572f1) dsync: If we get disconnected from remoset server, exit with EX_TEMPFAIL Instead of 1000, which gets truncated to 232. M src/doveadm/doveadm-dsync.c 2015-02-25 18:58:50 +0200 Timo Sirainen (1bea99519) lib-index: Added an assert. It seems to be triggering later on, but not sure how it's happening. M src/lib-index/mail-transaction-log-file.c 2015-02-25 15:06:29 +0200 Timo Sirainen (68801dacb) doveadm: If command going through multiple users fails with user-specific error, don't stop. M src/doveadm/doveadm-mail-server.c 2015-02-25 15:05:22 +0200 Timo Sirainen (83b7b796c) lib-auth: auth_master_pass/user_lookup() now returns -2 for user-specific errors. Compared to -1 which are about a more generic error with auth process communication. If -2 is returned the lookup could still succeed for another user. M src/doveadm/doveadm-auth.c M src/lib-auth/auth-master.c M src/lib-auth/auth-master.h 2015-02-24 18:42:43 +0200 Timo Sirainen (b78bed724) expire plugin: If expire_cache=yes, cache the dict db value in dovecot.index file. This avoids all of the dict lookups when mails are being saved to a mailbox that is tracked for expiring. The only downside is that if the dict is externally modified, the changes won't reflect the cached value. This isn't normally a problem (except maybe in initial testing stages). M src/plugins/expire/expire-plugin.c 2015-02-21 11:40:40 +0200 Timo Sirainen (98935c840) dsync: Debug logging was attempting to read already freed memory. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2015-02-20 14:04:28 +0200 Timo Sirainen (8d56694af) LAYOUT=index: Reversed d977a746819d - use storage's list_index_*() callbacks after all. Just because we have all the mailbox information in the mailbox list index doesn't mean that we necessarily trust the folder mail counts and such to be correct. Setting mailbox_list_index_very_dirty_syncs=yes pretty much reverts to the earlier behavior. M src/lib-storage/list/mailbox-list-index-backend.c 2015-02-20 12:56:43 +0200 Timo Sirainen (399a7f628) dsync: Added more debug output for mailbox renaming. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2015-02-19 19:31:49 +0200 Timo Sirainen (1497234a2) lib-storage: Index rebuilding (for [sm]dbox) caused it to reset dovecot.index.cache file Although in some situations this might be wanted, usually it's not needed and simply makes the performance worse. If caching is explicitly unwanted the dovecot.index.cache file can be deleted manually for now. Perhaps there could be a separate doveadm force-resync parameter to do it as well. M src/lib-storage/index/index-rebuild.c 2015-02-19 13:45:23 +0200 Timo Sirainen (5dcaffaa3) Makefile: Added run-test.sh to be cleaned by distclean M Makefile.am 2015-02-19 13:05:49 +0200 Timo Sirainen (d47bd663d) lib: Make static analyzer happier M src/lib/test-istream.c 2015-02-19 13:05:31 +0200 Timo Sirainen (96f75b44a) lib: Another test_assert() -> i_assert() change to avoid static analyzer warnings. M src/lib/test-data-stack.c 2015-02-19 13:03:46 +0200 Timo Sirainen (98c59517e) lib: Replaced two test_assert()s checking for NULLs with i_assert()s These can never happen anyway, and keeping them as test_assert()s cause static analyzer to give warnings. M src/lib/test-data-stack.c M src/lib/test-printf-format-fix.c 2015-02-19 12:00:11 +0200 Timo Sirainen (1183340bf) fs-posix: Removed the FS_PROPERTY_DIRECTORIES after all. We could have kept it if we removed the auto-rmdir()-parents feature in fs_delete(), but SIS code already somewhat relies on it so it's better not to change it for now at least. The downside here though is that directories are rmdir()ed only if fs_settings.root_dir is set. So for example "doveadm fs delete -R" doesn't ever rmdir() any directories. But that's probably not a real problem. M src/lib-fs/fs-posix.c 2015-02-19 10:24:09 +0200 Timo Sirainen (abf9eb24d) Makefile: Removed run-test.sh from EXTRA_DIST since it's now generated by configure M Makefile.am 2015-02-17 23:13:22 +0200 Timo Sirainen (e545e42a4) lib-fs: fs-posix needs to return FS_PROPERTY_DIRECTORIES M src/lib-fs/fs-posix.c 2015-02-17 23:13:00 +0200 Timo Sirainen (95c13a273) doveadm fs delete -R: Delete the root directory also. M src/doveadm/doveadm-fs.c 2015-02-17 23:07:00 +0200 Timo Sirainen (aab0e25f2) doveadm fs delete: When recursively deleting files, delete directories with "/" prefix. Some backends require this to properly delete the file. Those that don't can ignore it easily. M src/doveadm/doveadm-fs.c 2015-02-17 22:06:14 +0200 Timo Sirainen (fb10881ee) doveadm fetch: Removed unused code. M src/doveadm/doveadm-mail-fetch.c 2015-02-17 20:43:57 +0200 Timo Sirainen (41843bdb6) lib-fs: Added FS_METADATA_OBJECTID macro. M src/lib-fs/fs-api.h M src/lib-fs/fs-metawrap.c 2015-02-17 20:42:59 +0200 Timo Sirainen (8656b625c) lib-fs: Added flag for iteration returning object IDs. The flag is only allowed to be used if FS_PROPERTY_OBJECTIDS is set (to avoid writing extra code for backends that don't support this). M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2015-02-17 16:02:49 +0200 Timo Sirainen (acfdd1b16) imapc: Fixed STATUS_FIRST_RECENT_UID to return the (mostly) correct UID. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2015-02-15 10:11:01 +0200 Timo Sirainen (e617d6e7d) doveadm: Added "save" command to directly save mail to specified mailbox. The mail is read from stdin. M src/doveadm/Makefile.am A src/doveadm/doveadm-mail-save.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2015-02-15 10:09:19 +0200 Timo Sirainen (32c779d5d) doveadm: Added support for mail commands to read an input stream (from stdin) This is done by calling doveadm_mail_get_input() from the command's init() function. Currently it reads the entire input into a seekable istream with hardcoded 5 minute timeout. The input stream sending works also through doveadm proxying. This could probably be used by dsync at some point to support proxying over doveadm proxies, but that would require some more work. Especially a flag for commands to specify that they allow non-blocking input streams. M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/server-connection.c M src/doveadm/server-connection.h 2015-02-15 10:03:10 +0200 Timo Sirainen (83773f7eb) lib-mail: ostream-dot API changes The dot-line sending is now done when o_stream_flush() is called. This should be used instead of relying on close() doing it, because it still needs to write a few bytes and there are no guarantees that the parent stream allows sending them. Also added force_extra_crlf parameter, which specifies whether CRLF should always be written before the dot-line, even when it already contained CRLF. This is useful if the input is read with i_stream_create_dot(send_last_lf=FALSE), since it allows sending a stream that doesn't have to end with LF. M src/lib-mail/ostream-dot.c M src/lib-mail/ostream-dot.h M src/lib-mail/test-ostream-dot.c 2015-02-15 09:55:56 +0200 Timo Sirainen (f7355a577) lib-mail: istream-dot should have immediately returned error if dot-line was missing at EOF. M src/lib-mail/istream-dot.c 2015-02-15 09:55:05 +0200 Timo Sirainen (fb502495e) lib: If i_stream_read() sets stream_errno even if it didn't return -1, make sure we set eof=TRUE M src/lib/istream.c 2015-02-15 09:54:45 +0200 Timo Sirainen (b8c009e16) lib: If istream-seekable's parent stream returns error, make sure we set eof=TRUE M src/lib/istream-seekable.c 2015-02-14 09:47:41 +0200 Timo Sirainen (77706d164) lib-imap-client: Improved error message a bit if server disconnects. M src/lib-imap-client/imapc-connection.c 2015-02-13 16:39:30 +0200 Timo Sirainen (fc63bad6a) configure: Removed unnecessary lines left by the previous commit. M configure.ac 2015-02-13 16:38:35 +0200 Timo Sirainen (e42dd7149) Link all libstorage.la dependencies into the library itself instead. Instead of keeping a lot of different libraries in LIBDOVECOT_STORAGE, which have circular dependencies and may cause linking issues. M configure.ac M src/lib-storage/Makefile.am 2015-02-13 14:35:54 +0200 Timo Sirainen (a76bcf87b) dovecot-config: Added DOVECOT_INSTALLED parameter. Also added dovecot_installed_moduledir to dovecot.m4 These can be used by external plugins to access some headers and libraries that don't already have existing DOVECOT_* parameters in dovecot-config. M Makefile.am M dovecot.m4 2015-02-12 14:38:18 +0200 Timo Sirainen (bd5b580c0) dovecot-config: Added LIBDOVECOT_NOTIFY_INCLUDE M dovecot-config.in.in M dovecot.m4 2015-02-12 13:29:23 +0200 Timo Sirainen (076cc7791) dovecot-config: Added lib-storage/index/imapc also to LIBDOVECOT_IMAPC_INCLUDE M dovecot-config.in.in 2015-02-12 12:42:39 +0200 Timo Sirainen (0d2a67d57) dovecot-config: Added LIBDOVECOT_IMAPC_INCLUDE and LIBDOVECOT_FTS_INCLUDE M dovecot-config.in.in M dovecot.m4 2015-02-12 10:49:28 +0200 Timo Sirainen (432dd1f5d) fts: Fixed memory leak in HTML parsing M src/plugins/fts/fts-parser-html.c 2015-02-11 11:56:59 +0200 Timo Sirainen (0226f0f91) fts: Fixed error printing if fts wasn't enabled for user's default namespace. M src/plugins/fts/doveadm-fts.c 2015-02-10 17:29:31 +0200 Timo Sirainen (fd2ede339) dovecot-config: Added lib-sasl path into LIBDOVECOT_INCLUDE. M dovecot-config.in.in 2015-02-10 13:12:42 +0200 Timo Sirainen (cd244bb81) dovecot.m4: External plugins can now more easily run their tests via Valgrind. DC_DOVECOT macro automatically adds RUN_TEST variable to Makefiles, which can be used to call any test programs. If valgrind exists, the tests are run through it. This is done by writing run-test.sh to the build directory, so the original run-test.sh in hg is no longer needed. M .hgignore M configure.ac M dovecot.m4 D run-test.sh 2015-02-10 12:31:12 +0200 Phil Carmody (212a34c06) lib: istream create helpers for common cases Several clients want to create streams from buffer_t and string_t, we may as well make it easy for them Signed-off-by: Phil Carmody M src/lib/istream.h 2015-02-09 21:58:13 +0200 Timo Sirainen (7676a044f) dsync: Don't try to rename namespace prefixes. M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c 2015-02-09 21:45:04 +0200 Timo Sirainen (84a1abefd) dsync: Fixed assert-crash when the two mailbox trees differed only by their directory names. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2015-02-09 15:38:42 +0200 Timo Sirainen (68b386546) doveadm copy/move/import: Delay initializing source user until run() This fixes using them with doveadm proxying. M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-import.c 2015-02-09 15:21:55 +0200 Timo Sirainen (42681892b) doveadm: Added comments to struct doveadm_mail_cmd_vfuncs M src/doveadm/doveadm-mail.h 2015-02-09 13:03:47 +0200 Timo Sirainen (a03f2228e) doveadm: Reverted changeset 3b89f2f4ffb3, which avoided calling init() for proxied commands. The init() is required for all commands that print something, because otherwise the doveadm_print_header*() isn't called and the commands crash. The reason for the original change was that some commands' init() attempted to do too much work on the proxy, which ended up failing. So looks like the proper fix is to just remove this kind of extra work from init(). M src/doveadm/doveadm-mail.c 2015-02-09 04:03:12 +0200 Timo Sirainen (f2880c3c3) log: If too much logging data is sent, show it in process title. M src/log/log-connection.c M src/log/log-connection.h M src/log/main.c M src/master/service-process.c 2015-02-07 18:39:05 +0200 Timo Sirainen (aed2118ef) log: Log a warning if some connection is logging faster than we can write. M src/log/log-connection.c 2015-02-07 18:23:58 +0200 Timo Sirainen (f45d90794) log: Don't spend more than 100 msecs at a time logging one connection. M src/log/log-connection.c 2015-02-07 18:17:59 +0200 Timo Sirainen (f6849394b) log: Small cleanup: Include log connection prefix when logging read() errors. M src/log/log-connection.c 2015-02-07 18:14:53 +0200 Timo Sirainen (452455bb3) log: Minor cleanup: Update ioloop_timeval whenever reading input from log client. M src/log/log-connection.c 2015-02-06 19:03:20 +0200 Timo Sirainen (842a57e10) lib: Accidentally committed a nonexistent function call in previous commit. M src/lib/module-dir.c 2015-02-06 18:18:19 +0200 Timo Sirainen (351668ae6) lib-storage: Use module_dir_try_load_missing() to load user plugins. M src/lib-storage/mail-storage-service.c 2015-02-06 18:18:10 +0200 Timo Sirainen (e05a7d176) lib: Added module_dir_try_load_missing() that returns error instead of logging it. Also module_names now can be given for it without i_fatal() being called. M src/lib/module-dir.c M src/lib/module-dir.h 2015-02-06 18:17:10 +0200 Timo Sirainen (a48ccadf6) lib-storage: Previous log prefix changing code started accessing freed memory. M src/lib-storage/mail-storage-service.c 2015-02-06 17:06:36 +0200 Timo Sirainen (39f5c2b21) lib-storage: Set the user log prefix earlier when initializing user. So the full prefix with session and other useful information is included in the log message as early as possible. Some fatal/panic errors wouldn't even have shown the username. M src/lib-storage/mail-storage-service.c 2015-02-06 17:04:52 +0200 Timo Sirainen (d894bcdc7) lib: Added i_get_failure_prefix() M src/lib/failures.c M src/lib/failures.h 2015-02-05 19:40:25 +0200 Timo Sirainen (ed6d4c22d) dsync: Fixed crash in earlier patch if node didn't have a namespace. This shouldn't have happened except in test-dsync-mailbox-tree-sync, but easier and safer to fix it here. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2015-02-05 19:36:29 +0200 Timo Sirainen (5a470af15) dsync: Added assert to make sure namespace prefix isn't attempted to be renamed. This can happen, I'm just not sure how exactly.. The previous behavior caused assert-crashes also, this change just makes it happen earlier. M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c 2015-02-05 19:20:17 +0200 Timo Sirainen (6a479389c) dsync: Don't assert-crash in configs where INBOX doesn't have a parent namespace. The inbox=yes namespace of course exists, but if there is no prefix="" or prefix=INBOX/ namespace, then INBOX doesn't clearly belong to any namespace. M src/doveadm/dsync/dsync-mailbox-tree-fill.c 2015-02-03 20:27:49 +0200 Timo Sirainen (a46162e64) dsync: Make sure when fixing mailbox names we don't try to change the namespace prefix. Although in normal installations this it wouldn't have happened in any case. M src/doveadm/dsync/dsync-brain-mailbox-tree.c 2015-02-03 20:23:52 +0200 Timo Sirainen (a590a80b3) lib-storage: Avoid assert-crashing on mailbox_verify_*_name() with invalid namespace prefix. M src/lib-storage/mail-storage.c 2015-02-03 18:47:54 +0200 Timo Sirainen (4d2e65d9c) imapc: Fixed modseq search for previous imapc_features=search change M src/lib-storage/index/imapc/imapc-search.c 2015-02-03 18:33:12 +0200 Timo Sirainen (6e1cac3de) imapc: Added imapc_features=search support for sending SEARCH commands. Currently requires the remote server to support ESEARCH (but this would be easy to avoid). This is only minimally tested for now, so bugs may exist (especially related to sub-queries). M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-storage/index/imapc/Makefile.am M src/lib-storage/index/imapc/imapc-mailbox.c A src/lib-storage/index/imapc/imapc-search.c A src/lib-storage/index/imapc/imapc-search.h M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2015-02-03 10:15:38 +0200 Timo Sirainen (190e48dfe) lib-imap-client: Implemented support for GMail [THROTTLED] resp-text-code. If we receive it, start throttling future commands by waiting exponentially longer until we no longer receive [THROTTLED]. Max wait time is currently 16 seconds. M src/lib-imap-client/imapc-connection.c 2015-02-02 23:48:30 +0200 Stephan Bosch (5e4cdaaf5) lib-http: client: Fixed double unref of request when error occurs during http_client_request_try_retry(). Much like when the request is first submitted, any errors that occur while attempting a retry from within the callback are now delayed in a zero timer. M src/lib-http/http-client-request.c 2015-02-02 10:26:44 +0200 Phil Carmody (cca8abdc4) lib: array - test count/isempty/nonepty Signed-off-by: Phil Carmody M src/lib/test-array.c 2015-02-02 10:24:42 +0200 Phil Carmody (fbb70476f) lib: array - two helpers to avoid wasteful array_count There's no need to dereference array->element_size and perform a division when all you care about is the boolean isempty/nonempty predicate: $ git grep 'array_count(.*) > 0' | wc -l 77 $ git grep 'array_count(.*) == 0' | wc -l 95 Changing 6 of them has the following impact on the code: $ size src/lib-imap-client/imapc-connection.o text data bss dec hex filename 20879 0 4 20883 5193 src/lib-imap-client/imapc-connection.o $ size src/lib-imap-client/imapc-connection.o text data bss dec hex filename 20796 0 4 20800 5140 src/lib-imap-client/imapc-connection.o Signed-off-by: Phil Carmody M src/lib/array.h 2015-01-31 01:10:56 +0200 Timo Sirainen (6b70a713f) replicator: Previous "last successful sync" timestamp change wrote data wrong to replicator.db Patch by Matthew Via / Rackspace M src/replication/replicator/replicator-queue.c 2015-01-30 12:29:25 +0200 Timo Sirainen (a1a79357a) imap: If GETMETADATA fails for some mailbox, don't send the error message mixed in the METADATA reply line. M src/imap/cmd-getmetadata.c 2015-01-30 12:19:58 +0200 Timo Sirainen (e05ccef48) imap: Dynamic capabilities weren't being added correctly when imap_capability setting was used. They were supposed to be added when '+' prefix was used in imap_capability and not added when it wasn't. But the behavior was exactly the opposite. M src/imap/imap-client.c 2015-01-30 11:53:12 +0200 Timo Sirainen (e05471455) lib: str_sanitize*() max_len parameter renamed to max_bytes to describe it more accurately. M src/lib/str-sanitize.c M src/lib/str-sanitize.h 2015-01-30 11:52:33 +0200 Timo Sirainen (5a43bb5d5) lib: Various fixes to str_sanitize*() - UTF-8 sequences could have been truncated to become partial sequences - Truncation may not have happened at all to text containing UTF-8 - str_sanitize_append() might have truncated string beyond what we were appending, although that happened only if max_len was very small M src/lib/str-sanitize.c M src/lib/test-str-sanitize.c 2015-01-30 03:12:37 +0200 Timo Sirainen (69c92cbe7) replicator: Remember last successful sync and show it in "doveadm replicator status" Patch by Matthew Via / Rackspace M src/doveadm/doveadm-replicator.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-queue.h 2015-01-29 18:43:15 +0200 Timo Sirainen (eefcf71c7) lib-ssl-iostream: Don't set EPIPE/ECONNRESET error to istream when connection is closed. Several istream users verify at EOF that stream_errno=0 and fail if it isn't. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/istream-openssl.c 2015-01-27 02:19:01 +0200 Timo Sirainen (a5f7c7c3e) fts: When indexing address headers, don't add MISSING_MAILBOX or MISSING_DOMAIN. M src/plugins/fts/fts-build-mail.c 2015-01-27 02:07:10 +0200 Timo Sirainen (1d3ee23f5) fts: Added back fts_expunge_log_uid_count() This was accidentally removed by commit 5091f03d70e1 M src/plugins/fts/fts-expunge-log.c 2015-01-25 10:37:35 -0800 Timo Sirainen (da273d3b0) lib-mail: Test program wasn't linked with libiconv, causing linking failures. M src/lib-mail/Makefile.am 2015-01-24 02:15:45 +0200 Phil Carmody (9a6250aec) lib: array - helper to swap array buffer ownership Currently there's no simple way to create a replacement for an array, and then atomically switch in that replacement. With this helper, you can just exchange ownership of the two lists and then free the new list (which now contains the old buffer). Signed-off-by: Phil Carmody M src/lib/array.h M src/lib/test-array.c 2015-01-23 23:19:24 +0200 Timo Sirainen (f424c157f) imapc: Merged gmail-pop3 and gmail-labels-keyword features into a single gmail-migration feature There's really no other reason to use them except for migration. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-sync.c 2015-01-23 23:18:01 +0200 Timo Sirainen (2813037cc) imapc: With gmail-labels-keyword feature add the $GMailHaveLabels only to \All mailbox This is primarily intended for migration, and with this behavior dsync can be run just once so it's faster. M src/lib-storage/index/imapc/imapc-sync.c 2015-01-21 02:21:35 +0200 Timo Sirainen (9fd6f70ed) sdbox: Fixed assert-crash when copying mails due to earlier change. M src/lib-storage/index/dbox-single/sdbox-copy.c 2015-01-21 01:53:34 +0200 Phil Carmody (6b2f82c7e) plugins/fts: use common guid_128 helpers Signed-off-by: Phil Carmody M src/plugins/fts/fts-expunge-log.c 2015-01-21 01:52:59 +0200 Phil Carmody (5433d56d3) plugins/fts: expunge-log - query function to lookup GUID/UID Constant time hash lookup for GUID. Log time lookup in seq_range array. Signed-off-by: Phil Carmody M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-expunge-log.h 2015-01-21 01:51:46 +0200 Phil Carmody (8d4428cee) plugins/fts: expunge-log - create flattened in-RAM log with no backing storage Combine each record in a source expunge log. This source log does not get deleted afterwards. Signed-off-by: Phil Carmody M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-expunge-log.h 2015-01-21 01:48:00 +0200 Phil Carmody (228294444) plugins/fts: expunge-log - pull mailbox finding/creating into a helper There will be more clients than just this one. Signed-off-by: Phil Carmody M src/plugins/fts/fts-expunge-log.c 2015-01-21 01:47:25 +0200 Phil Carmody (2442c230b) plugins/fts: expunge-log - permit append helpers to have no log to write to This is for creating an in-RAM, later queriable, structure which you do not want to be written to backing storage. As when you've finished with one, there's no concept of a "commit", provide an alternative "abort" way out. These are identical apart from the call to the write() routine, so refactor the two. Signed-off-by: Phil Carmody M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-expunge-log.h 2015-01-21 01:46:13 +0200 Phil Carmody (87b5c1fc0) plugins/fts: expung-log - add the concept of not unlinking at the end No behavioural differences, the default is to unlink. Signed-off-by: Phil Carmody M src/plugins/fts/fts-expunge-log.c 2015-01-21 01:44:31 +0200 Phil Carmody (ba66ac555) lib: seq-range-array - add range changes Pull the _add_range() guts into a private helper function, and add a new _add_range_count() helper which also returns the number of SEQs added. Expand the tests to test this new functionality. Signed-off-by: Phil Carmody M src/lib/seq-range-array.c M src/lib/seq-range-array.h M src/lib/test-seq-range-array.c 2015-01-21 01:42:01 +0200 Phil Carmody (50c05dde0) lib: data-stack - fix pointer arithmetic compiler warning Clang's -fsanitize=unsigned-integer-overflow barfs as follows: data-stack.c:477:29: runtime error: negation of 8 cannot be represented in type 'unsigned long' data-stack.c:495:15: runtime error: negation of 8 cannot be represented in type 'unsigned long' Which is of course complete bollocks. There is no 8, there's only an 8ul, and the negation of 8ul is 0xfffffff8ul (or a wider equivalent). That's the law. However, the pointer arithmetic which follows the negation, whilst almost certainly working in practice, is probably bogus, so just make the thing signed before the negation, and both problems go away. Reported-by: Teemu Huovila Signed-off-by: Phil Carmody M src/lib/data-stack.c 2015-01-21 00:19:17 +0200 Timo Sirainen (9a9f3310d) master: Fixed a check to see if login directory has any unix listeners. M src/master/master-settings.c 2015-01-20 21:54:58 +0200 Timo Sirainen (6b23e5a3f) imapc: Implemented imapc_features=gmail-pop3 that also migrates pop3_deleted_flag. This also caused gmail-pop3-uidl feature to be renamed to simply gmail-pop3, which includes both the features. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2015-01-20 21:49:04 +0200 Timo Sirainen (2d4995828) lib-imap-client: Added imapc_command_get_tag() M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c 2015-01-20 05:41:23 +0200 Timo Sirainen (e2b63d479) imapc: Added imapc_features=gmail-pop3-uidl This allows imapc to generate GMail POP3 compatible UIDL so that pop3-migration plugin isn't needed. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h 2015-01-20 04:46:51 +0200 Timo Sirainen (46a9a338c) dsync: Allow -m parameter to specify \Special-use mailboxes. Similarly to how -x parameter allows them. M src/doveadm/dsync/dsync-mailbox-tree-fill.c 2015-01-20 04:46:26 +0200 Timo Sirainen (845bac8af) dsync: Crashfix to -F parameter handling. M src/doveadm/dsync/dsync-mailbox-import.c 2015-01-20 04:30:27 +0200 Timo Sirainen (3394dcb43) imapc: Added imapc_features=gmail-labels-keyword This is a bit kludgy feature mainly intended for migrations from GMail. Unfortunately I couldn't figure out any nicer way to do this for now. GMail's "All Mail" folder contains all messages in all folders, but it also contains some messages that don't exist in other folders. For migrations we want to copy only those messages that don't exist elsewhere. This can now be achieved with something like: doveadm -o imapc_features='gmail-labels-keyword ...' \ backup -F '-$GmailHaveLabels' mdbox:~/mdbox Note that dsync can't handle inserting mails into folders, so if doveadm backup is already run once and one of the existing mails loses all labels, doveadm backup will delete the whole folder and start again. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-sync.c 2015-01-20 04:07:09 +0200 Timo Sirainen (2e652d265) dsync: Added -F parameter to sync only mails with[out] specific flag. M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2015-01-20 03:23:29 +0200 Timo Sirainen (70df8f39f) dsync: If same GUID already exists in storage, try to copy it instead of recreating the mail. This way most mailbox backends can reduce disk space by only doing a reference count update. This feature isn't enabled by default. A virtual "All Mails" mailbox needs to be configured using the virtual plugin. Then you need to give this mailbox as -a parameter, e.g.: doveadm sync -a "Virtual/All Mails" ... Currently this is implemented by reading through all the GUIDs in the virtual mailbox. This of course isn't very efficient for things like incremental replication. An upcoming conversation plugin will keep track of all the mails' GUIDs, so in future replication should be able to have this functionality efficiently as well. M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2015-01-20 03:14:37 +0200 Timo Sirainen (d85a1a9d9) virtual plugin: Read virtual index header when opening virtual mailbox. This allows doing some mailbox accessing without actually syncing the mailbox. For example MAIL_FETCH_MAILBOX_NAME can be used without crashing. M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c 2015-01-20 00:20:27 +0200 Timo Sirainen (da215fe5c) dsync: Added more debug logging. M src/doveadm/dsync/dsync-mailbox-import.c 2015-01-19 23:43:37 +0200 Timo Sirainen (3561c7bb4) dsync: Added -t parameter to save only mails newer than If one side has old mails that don't exist on the other side, they are ignored (not synced and not deleted). M src/doveadm/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2015-01-19 23:40:27 +0200 Timo Sirainen (d81bbb694) lib-storage: Added mail_parse_human_timestamp() to parse human-writable timestamps. This isn't really the ideal location for the function, but since it uses both lib-settings and lib-imap, there's not any good location for it that I can think of.. M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2015-01-19 22:24:42 +0200 Timo Sirainen (bb25bed75) doveadm: Added missing error handling to various mail commands. This fixes assert-crash that happened when the commands failed, because they hadn't set any exit_code. M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/doveadm-mailbox-list-iter.c 2015-01-19 22:12:58 +0200 Timo Sirainen (4947cf082) lib-storage: Comment updates to mailbox_list_iter_*() M src/lib-storage/mailbox-list-iter.h 2015-01-19 22:11:29 +0200 Timo Sirainen (ded274d94) doveadm: If mailbox list iteration fails, log the error reason. M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c 2015-01-19 22:10:17 +0200 Timo Sirainen (168204692) imap-urlauth: If mailbox list iteration fails, log the error. M src/lib-imap-urlauth/imap-urlauth-backend.c 2015-01-19 22:09:14 +0200 Timo Sirainen (a5056d1e9) virtual plugin: If mailbox list iteration fails, log the error. M src/plugins/virtual/virtual-config.c 2015-01-19 21:58:19 +0200 Timo Sirainen (6358619ca) lib-storage: Removed caching body snippet while message is being saved. This broke saving mails with dbox, because it attempts to open the mails too early. Also the generation was a bit costly operation to do if it wasn't actually wanted to be cached. So in future we'd first want to check if body snippet is actually wanted. If it is, then generate the potential snippets while the message is being parsed (always generate the snippet for the best found MIME part, replacing existing snippets when needed). This requires the message_snippet_generate() API to support sending input as partial message_blocks. M src/lib-storage/index/index-mail-headers.c 2015-01-19 21:53:00 +0200 Timo Sirainen (e4d054789) lib-storage: MAIL_FETCH_BODY_SNIPPET should seek the mail stream back to original position. M src/lib-storage/index/index-mail.c 2015-01-19 21:52:21 +0200 Timo Sirainen (cc0a65196) dbox: Added asserts to make sure the mail body isn't tried to be read too early while saving. If the mail headers are still being written, the opening will just fail thinking the mail is corrupted. M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-file.h M src/lib-storage/index/dbox-single/sdbox-save.c 2015-01-19 21:11:29 +0200 Timo Sirainen (9456cdbeb) fts: Fixed assert-crash in HTML parsing, broken by the earlier changes. M src/plugins/fts/fts-parser-html.c 2015-01-17 04:14:58 +0200 Timo Sirainen (76d4ff1c1) lib: iostream-rawlog now writes to ostreams instead of directly to fds. M src/lib/iostream-rawlog-private.h M src/lib/iostream-rawlog.c M src/lib/iostream-rawlog.h M src/lib/istream-rawlog.c M src/lib/istream-rawlog.h M src/lib/ostream-rawlog.c M src/lib/ostream-rawlog.h 2015-01-17 04:14:09 +0200 Timo Sirainen (981139bb2) lib: Added o_stream_create_passthrough() for creating simple wrapper ostreams M src/lib/ostream.c M src/lib/ostream.h 2015-01-17 04:13:13 +0200 Timo Sirainen (eb98a038c) lib: Added o_stream_add_destroy_callback() M src/lib/iostream-private.h M src/lib/iostream.c M src/lib/istream.c M src/lib/ostream.c M src/lib/ostream.h 2015-01-17 02:40:11 +0200 Timo Sirainen (7d26aee0c) auth: Changed passdb { continue-ok } handling for credentials lookups. If the last passdb after it doesn't return credentials, use the first passdb's credentials. This allows implementing plugins that modify the passdb result without actually changing the credentials. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/passdb.c 2015-01-17 02:31:24 +0200 Timo Sirainen (1701b354e) lib-storage: Added mail_user_init_fs_settings() Also changed mailbox_list_init_fs() to use it internally. M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h M src/lib-storage/mailbox-list.c 2015-01-17 01:19:42 +0200 Timo Sirainen (26d0966d6) doveadm user: If username is changed by userdb lookup, return it. M src/doveadm/doveadm-auth.c 2015-01-17 00:32:10 +0200 Timo Sirainen (ed897f9e0) doveadm fetch: Added body.snippet field. M src/doveadm/doveadm-mail-fetch.c 2015-01-17 00:31:35 +0200 Timo Sirainen (52fbebc87) lib-storage: Added MAIL_FETCH_BODY_SNIPPET. M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/mail-storage.h 2015-01-17 00:24:36 +0200 Timo Sirainen (ed9f9fe03) fts: Parse HTML MIME parts using lib-mail's mail-html2text. M src/plugins/fts/Makefile.am M src/plugins/fts/fts-parser-html.c D src/plugins/fts/html-entities.h 2015-01-17 00:23:36 +0200 Timo Sirainen (7f7be2cbf) lib-mail: Added message_snippet_generate() to produce a short text snippet of a mail. M src/lib-mail/Makefile.am A src/lib-mail/message-snippet.c A src/lib-mail/message-snippet.h A src/lib-mail/test-message-snippet.c 2015-01-17 00:15:44 +0200 Timo Sirainen (c91411252) lib-mail: Added mail-html2text API What makes it mail-specific is that it allows skipping over data inside
. This code probably doesn't parse HTML perfectly, but hopefully good enough for HTML emails. M src/lib-mail/Makefile.am A src/lib-mail/html-entities.h A src/lib-mail/mail-html2text.c A src/lib-mail/mail-html2text.h A src/lib-mail/test-mail-html2text.c 2015-01-15 01:26:02 +0200 Timo Sirainen (b4d14c264) lib-mail: Forgot to commit .h file for message_decoder_current_content_type() change. M src/lib-mail/message-decoder.h 2015-01-15 01:22:04 +0200 Timo Sirainen (01eef0626) lib-mail: Added message_decoder_current_content_type() M src/lib-mail/message-decoder.c M src/lib-mail/test-message-decoder.c 2015-01-15 01:11:34 +0200 Timo Sirainen (d60a5611b) lib-mail: message-decoder now always sets output->size=0 when headers are returned. M src/lib-mail/message-decoder.c M src/lib-mail/test-message-decoder.c 2015-01-15 01:10:11 +0200 Timo Sirainen (c389f8bf1) lib-mail: Fixed crash in message-decoder with unknown charsets. Caused by earlier changes. M src/lib-mail/message-decoder.c 2015-01-15 01:08:00 +0200 Timo Sirainen (2c70dc3ca) lib-mail: Replaced MAX_TRANSLATION_BUF_SIZE with the new CHARSET_MAX_PENDING_BUF_SIZE M src/lib-mail/message-decoder.c 2015-01-15 01:05:36 +0200 Timo Sirainen (63f7632bf) lib-charset: Added CHARSET_MAX_PENDING_BUF_SIZE macro and asserts for it. M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-charset/charset-utf8.h 2015-01-15 01:05:13 +0200 Timo Sirainen (d62d6e780) lib-charset: Added charset_utf8_to_utf8_begin() wrapper function. It's never supposed to fail, so it makes it nicer for the callers who need to use it. M src/lib-charset/charset-utf8.c M src/lib-charset/charset-utf8.h 2015-01-15 01:03:58 +0200 Timo Sirainen (32ae62001) lib: Fixed NUL-handling in uni_utf8_*strlen*() uni_utf8_strlen() could have skipped over the ending NUL byte and caused read buffer overflows with invalid input. uni_utf8_strlen_n() and uni_utf8_partial_strlen_n() now allow NUL bytes in the input and they're treated as regular control characters. Previously the size was actually treated as max_size with early NUL byte termination. Technically this is an API change, but I'm not aware of anything using these functions in an incompatible way. M src/lib/test-unichar.c M src/lib/unichar.c M src/lib/unichar.h 2015-01-15 00:10:56 +0200 Timo Sirainen (ce763c83d) lib-storage: Added "oldestonly" search arg to stop searching after the first non-match. This parameter works only for doveadm search queries. It's not fully exact currently, because if mailbox.search_next_update_seq() skips over non-matching messages we don't stop if the next message matches. So this parameter is mainly useful for optimization of commands like: doveadm expunge -u user@domain mailbox inbox savedsince 30d oldestonly Where the timestamps should be ascending all the time anyway and there's no point in continuing to search for more mails after the first timestamp is too high. M src/lib-storage/index/index-search.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-build.h M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search.h 2015-01-10 04:32:42 +0200 Timo Sirainen (47e90cc0d) lib-mail: message-decoder no longer skips lib-charset for UTF8 -> UTF8 translations. With the previous lib-charset fix this makes message-decoder handle partial UTF-8 text in input blocks correctly. M src/lib-mail/Makefile.am M src/lib-mail/message-decoder.c M src/lib-mail/test-message-decoder.c 2015-01-10 04:30:40 +0200 Timo Sirainen (f66c8939c) lib: Added uni_utf8_partial_strlen_n() M src/lib/test-unichar.c M src/lib/unichar.c M src/lib/unichar.h 2015-01-10 04:25:21 +0200 Timo Sirainen (7ed3861ff) lib-charset: UTF-8 -> UTF-8 translation was never returning CHARSET_RET_INCOMPLETE_INPUT Instead the incomplete input was just being modified into broken output. M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-charset/charset-utf8.h 2015-01-08 23:07:54 +0200 Timo Sirainen (fdf8020fa) lib-imap-client: Compiler warning fixes M src/lib-imap-client/imapc-connection.c 2015-01-08 22:52:11 +0200 Timo Sirainen (c6033074a) imapc: Added imapc_sasl_mechanisms setting The first supported SASL mechanism is used, otherwise the login fails entirely. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-storage/Makefile.am M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/mail-storage.c 2015-01-08 22:32:20 +0200 Timo Sirainen (2f351279c) lib-imap-client: Use lib-sasl to perform the AUTHENTICATE command handling. M src/lib-imap-client/Makefile.am M src/lib-imap-client/imapc-connection.c 2015-01-07 00:37:50 +0200 Timo Sirainen (fea532348) lib: Defined array type for guid_128_t M src/lib/guid.h 2015-01-06 03:15:11 +0200 Timo Sirainen (fb655ad59) lib: Remove OpenBSD workaround in i_getpw*() Originally added in 801714cba91b. It was requested to be removed now that 1) it's fixed in OpenBSD v5.6+ and 2) The workaround caused nonexistent users to not work correctly (process running out of memory I guess?) M src/lib/ipwd.c 2015-01-05 15:48:55 +0200 Teemu Huovila (38a79b5a7) fts: Correct returned value to match type signature. M src/plugins/fts/fts-parser.c 2015-01-05 22:20:10 +0200 Phil Carmody (7cb128dc4) global: freshen copyright Robomatically: git ls-files | xargs perl -p -i -e 's/(\d+)-201[0-4]/$1-2015/g;s/ (201[0-4]) Dovecot/ $1-2015 Dovecot/' Happy 2015 everyone! Signed-off-by: Phil Carmody M doc/man/doveadm-acl.1.in M doc/man/doveadm-altmove.1.in M doc/man/doveadm-auth.1.in M doc/man/doveadm-batch.1.in M doc/man/doveadm-deduplicate.1.in M doc/man/doveadm-director.1.in M doc/man/doveadm-dump.1.in M doc/man/doveadm-exec.1.in M doc/man/doveadm-expunge.1.in M doc/man/doveadm-fetch.1.in M doc/man/doveadm-flags.1.in M doc/man/doveadm-force-resync.1.in M doc/man/doveadm-fts.1.in M doc/man/doveadm-help.1.in M doc/man/doveadm-import.1.in M doc/man/doveadm-index.1.in M doc/man/doveadm-instance.1.in M doc/man/doveadm-kick.1.in M doc/man/doveadm-log.1.in M doc/man/doveadm-mailbox.1.in M doc/man/doveadm-mount.1.in M doc/man/doveadm-move.1.in M doc/man/doveadm-penalty.1.in M doc/man/doveadm-proxy.1.in M doc/man/doveadm-purge.1.in M doc/man/doveadm-pw.1.in M doc/man/doveadm-quota.1.in M doc/man/doveadm-replicator.1.in M doc/man/doveadm-search-query.7 M doc/man/doveadm-search.1.in M doc/man/doveadm-sync.1.in M doc/man/doveadm-user.1.in M doc/man/doveadm-who.1.in M doc/man/doveadm.1.in M doc/man/doveconf.1.in M doc/man/dovecot-lda.1.in M doc/man/dovecot.1.in M src/anvil/anvil-connection.c M src/anvil/anvil-settings.c M src/anvil/connect-limit.c M src/anvil/main.c M src/anvil/penalty.c M src/anvil/test-penalty.c M src/auth/auth-cache.c M src/auth/auth-client-connection.c M src/auth/auth-fields.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-token.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-checkpassword.c M src/auth/db-dict-cache-key.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-dovecot-token.c M src/auth/mech-external.c M src/auth/mech-plain.c M src/auth/mech-scram-sha1.c M src/auth/mech.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-dict.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-template.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c M src/auth/test-auth-cache.c M src/auth/test-db-dict.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-template.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/config-settings.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-settings.c M src/dict/main.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-request.c M src/director/director-settings.c M src/director/director-test.c M src/director/director.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/main.c M src/director/notify-connection.c M src/director/test-user-directory.c M src/director/user-directory.c M src/dns/dns-client-settings.c M src/dns/dns-client.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-cmd.c M src/doveadm/doveadm-dict.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dsync.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-fs.c M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-batch.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-flags.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-mount.c M src/doveadm/doveadm-mutf7.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-pw.c M src/doveadm/doveadm-replicator.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-zlib.c M src/doveadm/doveadm.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-deserializer.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-state.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox.c M src/doveadm/dsync/dsync-serializer.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/imap-login/client-authenticate.c M src/imap-login/client.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-proxy.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-login-settings.c M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-append.c M src/imap/cmd-cancelupdate.c M src/imap/cmd-capability.c M src/imap/cmd-check.c M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-enable.c M src/imap/cmd-examine.c M src/imap/cmd-expunge.c M src/imap/cmd-fetch.c M src/imap/cmd-genurlauth.c M src/imap/cmd-getmetadata.c M src/imap/cmd-id.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-logout.c M src/imap/cmd-lsub.c M src/imap/cmd-namespace.c M src/imap/cmd-noop.c M src/imap/cmd-notify.c M src/imap/cmd-rename.c M src/imap/cmd-resetkey.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-setmetadata.c M src/imap/cmd-sort.c M src/imap/cmd-status.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/cmd-unselect.c M src/imap/cmd-unsubscribe.c M src/imap/cmd-urlfetch.c M src/imap/cmd-x-cancel.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-list.c M src/imap/imap-notify.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/imap/main.c M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-settings.c M src/indexer/indexer-worker-settings.c M src/indexer/indexer-worker.c M src/indexer/indexer.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/indexer/worker-pool.c M src/ipc/client.c M src/ipc/ipc-connection.c M src/ipc/ipc-group.c M src/ipc/ipc-settings.c M src/ipc/main.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-compression/compression.c M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lz4.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lz4.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c M src/lib-compression/test-compression.c M src/lib-dict/dict-cdb.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-fs.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-register.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-dict/dict-transaction-memory.c M src/lib-dict/dict.c M src/lib-dict/test-dict.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-api.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/istream-fs-file.c M src/lib-fs/istream-metawrap.c M src/lib-fs/ostream-cmp.c M src/lib-fs/ostream-metawrap.c M src/lib-http/http-auth.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-date.c M src/lib-http/http-header-parser.c M src/lib-http/http-header.c M src/lib-http/http-message-parser.c M src/lib-http/http-parser.c M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c M src/lib-http/http-server-connection.c M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c M src/lib-http/http-server.c M src/lib-http/http-transfer-chunked.c M src/lib-http/http-url.c M src/lib-http/test-http-auth.c M src/lib-http/test-http-client.c M src/lib-http/test-http-date.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-server.c M src/lib-http/test-http-transfer.c M src/lib-http/test-http-url.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-msgmap.c M src/lib-imap-storage/imap-metadata.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap/imap-arg.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-seqset.c M src/lib-imap/imap-url.c M src/lib-imap/imap-utf7.c M src/lib-imap/imap-util.c M src/lib-imap/test-imap-bodystructure.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-quote.c M src/lib-imap/test-imap-url.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-dummy-view.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/duplicate.c M src/lib-lda/lda-settings.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-mail/istream-attachment-connector.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-nonuls.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/mail-user-hash.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-binary-part.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-part.c M src/lib-mail/message-search.c M src/lib-mail/message-size.c M src/lib-mail/ostream-dot.c M src/lib-mail/quoted-printable.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-istream-binary-converter.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-message-part.c M src/lib-mail/test-ostream-dot.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-auth.c M src/lib-master/master-instance.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl.c M src/lib-master/master-service.c M src/lib-master/mountpoint-list.c M src/lib-master/syslog-util.c M src/lib-master/test-master-service-settings-cache.c M src/lib-sasl/dsasl-client.c M src/lib-sasl/mech-login.c M src/lib-sasl/mech-plain.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-sql/sql-db-cache.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-storage/fail-mail-storage.c M src/lib-storage/fail-mail.c M src/lib-storage/fail-mailbox.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-check.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-md5-all.c M src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync-update.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-notify-tree.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-error.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-parser-cmdline.c M src/lib-storage/mail-search-parser-imap.c M src/lib-storage/mail-search-parser.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-thread.c M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-header.c M src/lib-storage/mailbox-keywords.c M src/lib-storage/mailbox-list-notify.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-search-result.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/test-mailbox-get.c M src/lib-test/test-common.c M src/lib/abspath.c M src/lib/aqueue.c M src/lib/array.c M src/lib/askpass.c M src/lib/backtrace-string.c M src/lib/base32.c M src/lib/base64.c M src/lib/bits.c M src/lib/bsearch-insert-pos.c M src/lib/buffer.c M src/lib/child-wait.c M src/lib/compat.c M src/lib/connection.c M src/lib/crc32.c M src/lib/data-stack.c M src/lib/eacces-error.c M src/lib/env-util.c M src/lib/execv-const.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/fd-set-nonblock.c M src/lib/fdatasync-path.c M src/lib/fdpass.c M src/lib/file-cache.c M src/lib/file-copy.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/guid.c M src/lib/hash-format.c M src/lib/hash-method.c M src/lib/hash.c M src/lib/hash2.c M src/lib/hex-binary.c M src/lib/hex-dec.c M src/lib/hmac.c M src/lib/home-expand.c M src/lib/hostpid.c M src/lib/imem.c M src/lib/ioloop-epoll.c M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/iostream-rawlog.c M src/lib/iostream-temp.c M src/lib/iostream.c M src/lib/ipwd.c M src/lib/iso8601-date.c M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/istream-callback.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-file.c M src/lib/istream-hash.c M src/lib/istream-jsonstr.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream-tee.c M src/lib/istream-timeout.c M src/lib/istream.c M src/lib/json-parser.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mkdir-parents.c M src/lib/mmap-anon.c M src/lib/mmap-util.c M src/lib/module-dir.c M src/lib/mountpoint.c M src/lib/net.c M src/lib/nfs-workarounds.c M src/lib/numpack.c M src/lib/ostream-buffer.c M src/lib/ostream-file.c M src/lib/ostream-hash.c M src/lib/ostream-rawlog.c M src/lib/ostream.c M src/lib/primes.c M src/lib/printf-format-fix.c M src/lib/priorityq.c M src/lib/process-title.c M src/lib/rand.c M src/lib/randgen.c M src/lib/read-full.c M src/lib/restrict-access.c M src/lib/restrict-process-size.c M src/lib/safe-memset.c M src/lib/safe-mkdir.c M src/lib/safe-mkstemp.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str-table.c M src/lib/str.c M src/lib/strescape.c M src/lib/strfuncs.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/test-base32.c M src/lib/test-base64.c M src/lib/test-bits.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-buffer.c M src/lib/test-crc32.c M src/lib/test-data-stack.c M src/lib/test-guid.c M src/lib/test-hash-format.c M src/lib/test-hash-method.c M src/lib/test-hash.c M src/lib/test-hex-binary.c M src/lib/test-iso8601-date.c M src/lib/test-istream-base64-decoder.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-istream.c M src/lib/test-json-parser.c M src/lib/test-lib.c M src/lib/test-llist.c M src/lib/test-mempool-alloconly.c M src/lib/test-network.c M src/lib/test-numpack.c M src/lib/test-ostream-file.c M src/lib/test-primes.c M src/lib/test-printf-format-fix.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-str-find.c M src/lib/test-str-sanitize.c M src/lib/test-str-table.c M src/lib/test-str.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-strnum.c M src/lib/test-time-util.c M src/lib/test-unichar.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/test-wildcard-match.c M src/lib/time-util.c M src/lib/unichar.c M src/lib/unix-socket-create.c M src/lib/unlink-directory.c M src/lib/unlink-old-files.c M src/lib/uri-util.c M src/lib/utc-mktime.c M src/lib/utc-offset.c M src/lib/var-expand.c M src/lib/write-full.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c M src/log/doveadm-connection.c M src/log/log-connection.c M src/log/log-error-buffer.c M src/log/log-settings.c M src/log/main.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/master/capabilities-posix.c M src/master/dup2-array.c M src/master/main.c M src/master/master-settings.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/master/service-process.c M src/master/service.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile-update.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-global-file.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c M src/plugins/acl/doveadm-acl.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search-serialize.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/xml2text.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/last-login/last-login-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/mail-filter-plugin.c M src/plugins/mail-filter/ostream-ext-filter.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/mailbox-alias/mailbox-alias-plugin.c M src/plugins/notify/notify-plugin.c M src/plugins/notify/notify-storage.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-status.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota-util.c M src/plugins/quota/quota.c M src/plugins/quota/test-quota-util.c M src/plugins/replication/replication-plugin.c M src/plugins/snarf/snarf-plugin.c M src/plugins/stats/stats-connection.c M src/plugins/stats/stats-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/pop3-login-settings.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/replication/aggregator/aggregator-settings.c M src/replication/aggregator/aggregator.c M src/replication/aggregator/notify-connection.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/dsync-client.c M src/replication/replicator/notify-connection.c M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue-auth.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-settings.c M src/replication/replicator/replicator.c M src/ssl-params/main.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params.c M src/stats/client-export.c M src/stats/client.c M src/stats/global-memory.c M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-server-connection.c M src/stats/mail-session.c M src/stats/mail-stats.c M src/stats/mail-user.c M src/stats/main.c M src/stats/stats-settings.c M src/util/gdbhelper.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap-settings.c M src/util/tcpwrap.c 2015-01-05 22:16:59 +0200 Phil Carmody (33750ba29) lib: guid - centralise a 'reset to the empty value' helper function This helper just ensures that the caller never has to get the sizeof() right. (Were a guid passed as a function parameter, mistakes could happen.) Signed-off-by: Phil Carmody M src/lib/guid.h M src/lib/test-guid.c 2015-01-05 22:15:31 +0200 Phil Carmody (518781a0a) lib: guid - declare some functions as pure As the functions aren't inline, the compiler can't know if they can be optimised away, so give it a helping hand. Signed-off-by: Phil Carmody M src/lib/guid.h 2015-01-05 22:15:07 +0200 Phil Carmody (fe08c73b0) lib: array - explain implications of ARRAY_TYPE() in comment If you use ARRAY_TYPE() to pass an array around, then you must also use ARRAY_TYPE() to define the array itself, ARRAY() will no longer do. Reported-by: Arnt Gulbrandsen Signed-off-by: Phil Carmody M src/lib/array.h 2015-01-05 22:13:59 +0200 Phil Carmody (bf38d5760) lib: test-array - test new lsearch helper Just piggy-back on to the current reverse test, as that's got an array nicely set up for us already. Signed-off-by: Phil Carmody M src/lib/test-array.c 2015-01-05 22:12:48 +0200 Phil Carmody (c029156a6) lib: array - new linear search helper There are large numbers of array_foreach loops which do nothing but search for the first element which matches some key. This can be abstracted out into a helper. Signed-off-by: Phil Carmody M src/lib/array.c M src/lib/array.h 2014-12-26 17:28:30 +0200 Timo Sirainen (6613ff7b8) configure: Don't break when using --without-shared-libs and CC with '/' chars. M configure.ac 2014-12-17 14:43:30 +0100 Timo Sirainen (6af140746) auth: Don't crash if master user login is attempted without master=yes passdbs M src/auth/auth-request.c 2014-12-17 13:39:57 +0100 Timo Sirainen (acab9b293) lib: Small optimization / unnecessary code removal from array_*() functions. M src/lib/array.c 2014-12-05 05:50:19 +0200 Timo Sirainen (823af4a2c) lib-storage: Mail prefetching was still not working right. I wonder if it ever actually worked (except for SEARCH TEXT). M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search.c 2014-12-05 04:39:11 +0200 Timo Sirainen (8b7feed47) doveadm: Avoid calling init() in doveadm binary if the command is sent to doveadm-server. The init() is still always called when -A or -u *wildcards* are used though. I'm not sure if that can be delayed. At least all commands should be verified that they don't rely on the current init() location. M src/doveadm/doveadm-mail.c 2014-12-05 03:53:02 +0200 Timo Sirainen (ae3691496) doveadm: Support changing proxy destination username with "user" and "destuser" passdb field. M src/doveadm/doveadm-mail-server.c 2014-12-05 03:38:08 +0200 Timo Sirainen (ba342e38a) auth: Don't allow changing username to an empty string. This is most likely always accidental and Dovecot in general hasn't been designed to support empty usernames. M src/auth/auth-request.c 2014-12-05 03:11:14 +0200 Timo Sirainen (5f4f58c81) fts: Install some of the header files that other external plugins might want to use. M src/plugins/fts/Makefile.am 2014-12-05 03:10:32 +0200 Timo Sirainen (16db13752) fts: Compiler warning fix when using fts-indexer.h directly M src/plugins/fts/fts-indexer.h 2014-12-02 00:29:13 -0800 Timo Sirainen (c935c4494) dict-redis: Use timeout_msecs parameter also for transaction commit waits. M src/lib-dict/dict-redis.c 2014-12-02 00:26:24 -0800 Timo Sirainen (5890b141d) dict-redis: Use EXPIRE also after INCRBY commands. M src/lib-dict/dict-redis.c 2014-12-01 22:43:33 +0200 Phil Carmody (4f3374cf6) lib: test-array - really really really stop gcc optimising away fatal tests Gcc 4.6 also was determined to optimise away the calls that should crash. We therefore have to do *something*, no matter how stupid, with the return values. This should do it. (please, oh please, oh please, ...) Signed-off-by: Phil Carmody M src/lib/test-array.c 2014-12-01 12:11:54 -0800 Timo Sirainen (3f7583189) quota: Added "hidden" option to hide the quota root from IMAP GETQUOTAROOT command. M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2014-11-28 10:57:43 +0200 Phil Carmody (842f5a5eb) lib: array - array_foreach_idx is just a generic ptr_to_idx helper Signed-off-by: Phil Carmody M src/lib/array.h 2014-11-28 10:57:43 +0200 Phil Carmody (173b12537) lib: test-array - remove possibility to optimise out tests (void) on a call to a "pure" function was causing some compilers (gcc 4.8) to not reach the assert within the pure function. Technically it's not a pure function, as (in the assert fail case) it has effects other than its return value. However, simply removing the void cast (and then actually using the return value) also prevents this optimisation. An additional fatal test was added - there's a difference between an access outside the allocated range and outside the initialised range. Signed-off-by: Phil Carmody M src/lib/array.h M src/lib/test-array.c 2014-11-28 10:57:43 +0200 Phil Carmody (16c9a74e2) lib-test: more delicate *assert() behaviour when doing fatal tests We shouldn't be i_asserting ourselves when we're in the state of wanting a test to fail. Therefore instead test_assert to get the assert message, and ensure that the success flag is cleared to get the FAILED at the end. Signed-off-by: Phil Carmody M src/lib-test/test-common.c 2014-11-25 03:48:42 +0200 Phil Carmody (70c380a7b) lib: array - additional compile-time checks to array_append The new two-array helper macro works in this context too. Note: array_copy doesn't have any protection currently, it isn't obvious how to wrap that with some safety without breaking interfaces. It only seems to have one internal user, lib/aqueue. Signed-off-by: Phil Carmody M src/lib/array.h 2014-11-25 03:45:35 +0200 Phil Carmody (5d017bb2f) lib: test-array - fix off-by-one in test_reverse i is not used as an index, but as a count. Therefore, it can attain the array size in the loop without causing any buffer overflows. Signed-off-by: Phil Carmody M src/lib/test-array.c 2014-11-25 03:44:55 +0200 Phil Carmody (824809e64) lib: test-array - fatal tests Tests both of the i_asserts which aren't already protected by TYPEOF compile-time checks. Signed-off-by: Phil Carmody M src/lib/test-array.c M src/lib/test-lib.c M src/lib/test-lib.h 2014-11-25 03:44:31 +0200 Phil Carmody (a7e3651cb) lib: test-array - new equality testers One using strings that get dereferenced, the other using the context pointer to pass in external data. Signed-off-by: Phil Carmody M src/lib/test-array.c 2014-11-25 03:43:02 +0200 Phil Carmody (0f111ddfc) lib: array - element-wise comparison via callback 2 are provided - with and without a context pointer. Signed-off-by: Phil Carmody M src/lib/array.c M src/lib/array.h 2014-11-25 03:43:02 +0200 Phil Carmody (afb48f82b) lib: test-array - test array_cmp() Signed-off-by: Phil Carmody M src/lib/test-array.c 2014-11-25 03:31:34 +0200 Phil Carmody (efaa1272c) lib: guid - turn uint8_t * parameters into guid_128_t As we expose the type's internals, there's no concrete difference between the two, but it might help static code checkers to detect misuse of the library, or sloppy typing. Signed-off-by: Phil Carmody M src/lib/guid.c M src/lib/guid.h 2014-11-25 03:12:25 +0200 Timo Sirainen (2480bdc0a) dict-redis: Small error handling fix to previous change. M src/lib-dict/dict-redis.c 2014-11-25 03:10:41 +0200 Timo Sirainen (e85a0dac7) dict-redis: Added support for expire_secs=n parameter. It performs EXPIRE command for the added keys immediately after the SET. M src/lib-dict/dict-redis.c 2014-11-25 02:56:37 +0200 Timo Sirainen (96a410ece) lib-storage: Don't fetch wanted_fields for messages that don't match the search query. For example "doveadm fetch text subject foo" was opening all the mails, even though only a few matched the subject (that was hopefully already in cache file). The behavior still isn't perfect though. The wanted_fields should probably be split into search_wanted_fields and fetch_wanted_fields, but the current behavior is likely good enough for now. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search.c 2014-11-21 18:17:00 +0900 Timo Sirainen (0dc719a06) lmtp: Added TLS security information to Received: header when STARTTLS was used. M src/lmtp/commands.c 2014-11-20 22:03:25 +0900 Timo Sirainen (3217ecd2d) stats: Removed extra TAB from global stats exporting. M src/stats/client-export.c 2014-11-20 15:15:20 +0900 Timo Sirainen (e1ad2d13f) lib-index: If transaction log is unexpectedly recreated while it was locked, log a nice error. Instead of just assert-crashing. M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log.c 2014-11-20 05:40:55 +0900 Timo Sirainen (416b11af0) auth: Increase timeout for multi-line auth-worker replies to 30 minutes. This should help with running long-running doveadm -A commands. M src/auth/auth-worker-server.c 2014-11-19 17:37:57 +0900 Timo Sirainen (3063bd8ff) mbox: Added more (and earlier) detection for errors in mbox istreams. M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/istream-raw-mbox.h M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-private.h M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync.c 2014-11-19 17:37:18 +0900 Timo Sirainen (1cf25eb44) mbox: istream_raw_mbox_seek() needs to reset all corruption errors. We now reset all errors, but it doesn't really matter. M src/lib-storage/index/mbox/istream-raw-mbox.c 2014-11-15 03:26:16 +0200 Timo Sirainen (11a418b12) lib-fs: Added FS_PROPERTY_ASYNC. M src/lib-fs/fs-api.h 2014-11-15 02:39:04 +0200 Stephan Bosch (75f7e423e) Added support for base32 encode/decode. M src/lib/Makefile.am A src/lib/base32.c A src/lib/base32.h A src/lib/test-base32.c M src/lib/test-lib.c M src/lib/test-lib.h 2014-11-15 02:37:45 +0200 Stephan Bosch (836e690c0) Implemented dot output stream. This outputs data in the dot-escaped format needed for the SMTP data command. The sequence CRLF.CRLF is sent upon closing the stream. M src/lib-mail/Makefile.am A src/lib-mail/ostream-dot.c A src/lib-mail/ostream-dot.h A src/lib-mail/test-ostream-dot.c 2014-11-15 02:37:03 +0200 Stephan Bosch (c9421d67e) lib-http: client: Removed connection code that is already in src/lib/connection.c. M src/lib-http/http-client-connection.c 2014-11-15 02:36:22 +0200 Stephan Bosch (4388ddff2) lib: connection: Now uses io_add_istream() instead of io_add(). M src/lib/connection.c 2014-11-15 02:27:27 +0200 Stephan Bosch (8ccdf1957) lib-imap-storage: Created new METADATA API. M dovecot-config.in.in M src/imap/Makefile.am M src/imap/cmd-getmetadata.c M src/imap/cmd-setmetadata.c D src/imap/imap-metadata.c D src/imap/imap-metadata.h M src/lib-imap-storage/Makefile.am A src/lib-imap-storage/imap-metadata.c A src/lib-imap-storage/imap-metadata.h 2014-11-15 02:22:56 +0200 Timo Sirainen (9a1ab9488) lib-fs: Added fs_lookup_metadata() wrapper to fs_get_metadata() M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2014-11-15 00:30:06 +0200 Timo Sirainen (c53dd9a6e) lib-master: Don't even attempt to initialize SSL context if ssl=no M src/lib-master/master-service-ssl.c 2014-11-15 00:27:27 +0200 Timo Sirainen (40ba79bfb) lib-ssl-iostream: Close the plain iostreams when ssl-iostream is destroyed. M src/lib-ssl-iostream/iostream-openssl.c 2014-11-15 00:14:20 +0200 Phil Carmody (887e05e03) lib: array/hash - enable typof checks for more compilers We have a HAVE_TYPEOF macro from autoconf, we may as well make use of it. Signed-off-by: Phil Carmody M src/lib/array.h M src/lib/hash.h 2014-11-15 00:06:09 +0200 Phil Carmody (fcb19f9e9) lib: array/hash - protect macro parameters If a pointer parameter p is ``ptr + offset'', then sizeof(*p) becomes sizeof(*ptr + offset), which isn't what was wanted. sizeof(*(p)) is the safe expression to use instead. Ditto for just ``*data'' in array.h. The macros in hash.h which have been changed have been reindented for better readability and consistency. The bracketting of elem in (elem)++ in both of the array_foreach* macros isn't actually useful, as elem participates in token-pasting elsewhere. However, the two macros have been made more similar to each other for better parallelism. Signed-off-by: Phil Carmody M src/lib/array.h M src/lib/hash.h 2014-11-14 00:59:57 -0800 Timo Sirainen (500532230) imap: namespace { order } parameter now specifies the order returned in NAMESPACE reply. This is relevant only if there are multiple visible namespaces with the same type. The default order depends primarily on the length of the prefix because of internal sorting (the order of equal length prefixes can't really be relied on). M src/imap/cmd-namespace.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2014-11-14 02:29:27 +0200 Timo Sirainen (94b4104f8) imap: Added client_disconnect_if_inconsistent() to remove code duplication. Based on patch by Stephan Bosch M src/imap/imap-commands-util.c M src/imap/imap-commands-util.h 2014-11-13 22:55:59 -0800 Timo Sirainen (22d87bd26) doveadm: If passdb lookup returns port, use it to override the doveadm_port setting. M src/doveadm/doveadm-mail-server.c 2014-11-14 02:00:12 +0200 Timo Sirainen (2ff375730) lib-fs: fs-metawrap now supports adding more metadata fields while file is being saved. This potentially adds yet another temporary file write though. M src/lib-fs/fs-metawrap.c 2014-11-14 01:19:37 +0200 Timo Sirainen (2f4f603d4) lib: Added iostream_temp_create_named() M src/lib/iostream-temp.c M src/lib/iostream-temp.h 2014-11-13 11:29:41 +0200 Timo Sirainen (26b007545) lib-index: Make sure dovecot.index.cache parsing doesn't go to infinite loop. Although we guarantee this only for files generated with Dovecot v2.2+ because it's too much trouble to check for older versions. M src/lib-index/mail-cache-fields.c 2014-11-13 11:14:08 +0200 Timo Sirainen (8901f9484) lib-storage: If storage creation fails, destroy all the already created namespaces/storages. M src/lib-storage/mail-namespace.c 2014-11-13 10:57:07 +0200 Timo Sirainen (6a275b8e6) lib-storage: Fixed crash if mail_namespaces_init_add() failed due to invalid settings. Normally the invalid settings were caught by config process already. M src/lib-storage/mail-namespace.c 2014-11-13 10:09:28 +0200 Timo Sirainen (3d77cc0d5) lib: ostream.stream_errno is now exactly the same as last_failed_errno. There's a lot of code that checks only for stream_errno instead of last_failed_errno at the flush time where the stream_errno might have already been cleared. I'm not sure why these were separated in the first place. I don't think there are any stream errors which just correctly go away by retrying the operation. Perhaps some code could have attempted seeking and try to handle the ESPIPE error, but that kind of code paths are rare and they could clear the errors themselves if needed. M src/lib/ostream.c 2014-11-13 10:01:37 +0200 Timo Sirainen (42b087dcb) lib: ostream-file checks "sendfile() not supported" a bit better. There are other reasons why stream_errno=EINVAL could have been set, at least in theory. M src/lib/ostream-file.c 2014-11-13 09:53:35 +0200 Timo Sirainen (645d76bbb) lib-storage: Added "creator" for mail_user. This allows fixing stats plugin to update stats also for shared mailboxes. That's a bit complicated change though, so I'm not sure how soon it'll happen. But at least this change makes it possible more easily later on. Might have other uses too. M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-user.h 2014-11-13 09:39:24 +0200 Timo Sirainen (7a77b9488) lib: Never implicitly clear istream's stream_errno. I'm not really sure why these were added in the first place. At some point the stream_errno was cleared in more places, such as just before reading, but those were also removed already. I don't see any benefit for these, just potential problems. M src/lib/istream.c 2014-11-13 09:35:59 +0200 Timo Sirainen (e5b48cb13) lib-mail: message_search_msg() shouldn't clear istream's stream_errno. If the input stream failed, retrying the operation without cached message_parts is unlikely to help. This also loses the original error message. M src/lib-mail/message-search.c 2014-11-13 09:12:38 +0200 Timo Sirainen (ac51b1285) dsync: Set MAILBOX_TRANSACTION_FLAG_SYNC also for exporter. This doesn't really do much because exporter shouldn't be writing anything, but it allows plugins to find out if transactions is coming from dsync. M src/doveadm/dsync/dsync-mailbox-export.c 2014-11-13 03:58:51 +0200 Timo Sirainen (38f624b42) lmtp: Added support for DSN ORCPT parameter. If the parameter is specified, it's used as the original recipient address in Sieve. The ORCPT parameter is also proxied to destination LMTP server if used (without checking if it supports it). We don't currently advertise DSN extension, so this feature won't be enabled automatically. M src/lib-lda/lmtp-client.c M src/lib-lda/lmtp-client.h M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2014-11-13 02:48:22 +0200 Timo Sirainen (fa8fbd8cb) imap-stats: Fixed truncation of command args. M src/plugins/imap-stats/imap-stats-plugin.c 2014-11-13 02:39:51 +0200 Timo Sirainen (cf07b6716) stats: Use the same session ID string for stats tracking as everywhere else. Generate a new ID only if there is no session ID assigned. M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/stats/stats-connection.c M src/plugins/stats/stats-plugin.c M src/plugins/stats/stats-plugin.h M src/stats/client-export.c M src/stats/mail-session.c M src/stats/mail-stats.h 2014-11-13 02:37:39 +0200 Timo Sirainen (b5f58ca1c) ssl-params: Removed duplicate lib-ssl-iostream.la linking M src/ssl-params/Makefile.am 2014-11-13 02:28:46 +0200 Timo Sirainen (31b5f26bf) stats: Use the new str-table API to reduce memory usage for service strings. There are only a couple of services, while there can be a lot of sessions. M src/stats/mail-session.c M src/stats/mail-stats.h 2014-11-13 02:24:46 +0200 Timo Sirainen (639587335) lib: Added str-table API for keeping reference counted strings in a hash table. M src/lib/Makefile.am A src/lib/str-table.c A src/lib/str-table.h M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-str-table.c 2014-11-13 01:41:07 +0200 Timo Sirainen (89ca3ba9e) stats: Added support for "global" stats type. M src/stats/client-export.c M src/stats/mail-domain.c M src/stats/mail-stats.c M src/stats/mail-stats.h M src/stats/main.c 2014-11-12 06:58:37 +0200 Timo Sirainen (09060303d) director: Added support for backend cluster "tags". This allows using a single director ring for multiple backend clusters. By default everything has an empty tag. A passdb lookup can return "director_tag" field containing the wanted tag name. If there aren't any backend servers with the wanted tag, it's treated the same as if there aren't any backend servers available (= wait for 30 secs for a backend and then return temporary failure). Tags can be added to configuration by adding @tag suffix to IPs/hosts. For example: director_mail_servers = 10.0.0.100-10.0.0.110@name1 10.0.0.120@name2 "doveadm director add" can also add tags either with @tag suffix or with -t parameter. "doveadm director status user@domain" requires giving the user's correct tag with -t parameter or the results won't be correct (empty tag's results are shown). Tags can't currently be changed for an existing host without removing it first. M src/director/director-connection.c M src/director/director-request.c M src/director/director-request.h M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/mail-host.h M src/director/main.c M src/doveadm/doveadm-director.c 2014-11-12 06:46:45 +0200 Timo Sirainen (5b4d189a0) director: Don't restart request timeout when director state changes. If the state keeps changing all the time we'll never return timeouts for the requests. M src/director/main.c 2014-11-12 03:29:04 +0200 Timo Sirainen (eb209d12e) director: Added director_consistent_hashing setting. This should have been the default since the beginning. I didn't thik it was worth the trouble originally because in theory it shouldn't matter much if users jump between multiple backends. But this makes caching behavior worse, especially for systems which are using local cache files. M src/director/director-connection.c M src/director/director-settings.c M src/director/director-settings.h M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c M src/director/mail-host.c M src/director/mail-host.h 2014-11-12 02:04:14 +0200 Timo Sirainen (56c69b4b1) director: When logging a warning about ring being synced again, log how many seconds it took M src/director/director.c 2014-11-12 01:59:48 +0200 Timo Sirainen (8420ca2c4) director: Always log a message when director handshake finishes. M src/director/director-connection.c 2014-11-12 01:51:29 +0200 Timo Sirainen (ad404d294) doveadm director ring status shows now more information M src/director/director-connection.c M src/director/director-connection.h M src/director/doveadm-connection.c M src/doveadm/doveadm-director.c 2014-11-12 01:26:04 +0200 Timo Sirainen (d65cc3312) lmtp: Show more information in process title. Most importantly show the username while messages are being delivered. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c 2014-11-12 01:06:02 +0200 Timo Sirainen (45ead2326) doveadm: Support running non-mail commands via doveadm server. There are still some commands that print their output via printf though, so they need to be fixed separately. M src/doveadm/Makefile.am M src/doveadm/client-connection.c M src/doveadm/main.c 2014-11-12 01:04:27 +0200 Timo Sirainen (55accf49e) doveadm: Moved commands related code to doveadm-cmd.[ch] Commands are already split for command line-only commands and commands that can be run via doveadm-server also. M src/doveadm/Makefile.am A src/doveadm/doveadm-cmd.c A src/doveadm/doveadm-cmd.h M src/doveadm/doveadm.c M src/doveadm/doveadm.h 2014-11-12 00:52:44 +0200 Timo Sirainen (d4c6c0412) doveadm who: If parameters are invalid, print help text for who command instead of the whole doveadm usage. M src/doveadm/doveadm-who.c 2014-11-12 00:20:40 +0200 Timo Sirainen (e16cdc182) doveadm: Code cleanups to prepare server code for non-mail commands. M src/doveadm/client-connection.c M src/doveadm/doveadm.c 2014-11-11 05:06:09 +0200 Timo Sirainen (a8b37b688) lib: Compiler warning fix in 32bit systems to previous change M src/lib/file-lock.c 2014-11-11 03:13:16 +0200 Timo Sirainen (4eb418849) lib: file_wait/try_lock() treats EINTR differently now for timeouts and for actual signals. M src/lib/file-lock.c 2014-10-31 04:27:27 +0200 Timo Sirainen (31a8f59ac) lib-storage: Mailbox list index now detects duplicate mailbox names. With LAYOUT=index the duplicates are renamed. M src/lib-storage/list/mailbox-list-index.c 2014-11-05 13:00:14 +0200 Timo Sirainen (bb1a7da5a) doveadm: Removed duplicate subcommands from list of commands. For example don't show "mailbox ..|metadata|metadata|metadata|.." M src/doveadm/doveadm.c 2014-11-04 14:49:44 +0200 Timo Sirainen (730f8250f) imap: If GETMETADATA with wildcards can't open some mailbox, don't assert-crash. Just send an untagged NO for the mailbox. M src/imap/cmd-getmetadata.c 2014-10-31 17:05:31 -0700 Timo Sirainen (bc7c48e8b) ssl-params: Use lib-ssl-iostream's ssl_iostream_generate_params() instead of OpenSSL directly M src/ssl-params/Makefile.am D src/ssl-params/ssl-params-openssl.c M src/ssl-params/ssl-params.c M src/ssl-params/ssl-params.h 2014-10-31 17:04:58 -0700 Timo Sirainen (7ef7f34c3) lib-ssl-iostream: Added dh_length parameter to ssl_iostream_generate_params() This is an API change, but nobody was actually using this function. M src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2014-10-31 16:54:07 -0700 Timo Sirainen (c5b7a9068) lib-ssl-iostream: Support non-1024bit DH parameters in ssl-parameters.dat. M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.h 2014-10-30 22:02:52 +0200 Timo Sirainen (0aaded804) lib-ssl-iostream: Destroy SSL module later in the atexit-callbacks. M src/lib-ssl-iostream/iostream-ssl.c 2014-10-30 22:00:14 +0200 Timo Sirainen (cd7cecf14) lib: Added lib_atexit_priority() M src/lib/lib.c M src/lib/lib.h 2014-10-30 04:41:11 +0200 Timo Sirainen (84e4f27dd) *-login: Also increase MASTER_AUTH_MAX_DATA_SIZE and add a check to make sure it's large enough. M src/imap-login/client.c M src/lib-master/master-auth.h 2014-10-30 04:36:50 +0200 Timo Sirainen (82fb1ead3) *-login: And actually make the previous changes work. M src/imap-login/client.c M src/login-common/client-common.h M src/pop3-login/client.c 2014-10-29 18:33:46 -0700 Timo Sirainen (85cbbbe62) imap-login: Added "x-session-ext-id" parameter for ID command. It's exactly the same as "x-session-id", but this one can be safely used by external software without having to worry about causing error messages in older versions about too long session-id. M src/imap-login/client.c 2014-10-29 18:32:36 -0700 Timo Sirainen (404150692) lib-master: Removed fixed length limit for session-id. M src/lib-master/master-login.c M src/lib-master/master-login.h 2014-10-29 11:46:50 -0700 Timo Sirainen (959eca738) lib: connection_switch_ioloop() should switch also input stream's ioloop. M src/lib/connection.c 2014-10-29 09:58:01 -0700 Timo Sirainen (4fbf59562) lmtp: Added support for STARTTLS command. M src/lmtp/Makefile.am M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/commands.h M src/lmtp/main.c 2014-10-28 17:15:31 -0700 Timo Sirainen (83db24db7) lib-http: Make sure we don't access already freed client connection in payload-destroyed callback. M src/lib-http/http-client-connection.c 2014-10-28 17:07:21 -0700 Timo Sirainen (fde887215) lib: io_remove() should finish closing the io before unreferencing its istream. This is because the istream unreferencing may close the fd. M src/lib/ioloop.c 2014-10-28 16:12:09 -0700 Stephan Bosch (85c41e096) lib-http: client: Fixed assertion failure in http_client_queue_fail(). Don't explicitly clear the request array after looping through all requests, since new requests may be added during the loop, not only removed. M src/lib-http/http-client-queue.c 2014-10-27 21:48:29 -0700 Timo Sirainen (decdff03c) lib: istream-timeout logs how long the stream was open if parent read fails with ECONNRESET/EPIPE. M src/lib/istream-timeout.c 2014-10-27 21:43:10 -0700 Timo Sirainen (ac3d5a11f) lib-http: If there's an error reading chunked http stream, set the error to the istream. Previously the error string was set, but it was never read by anything. M src/lib-http/http-transfer-chunked.c 2014-10-28 05:45:59 +0200 Timo Sirainen (cb091e2f7) dsync: Fixed notifying replicator (-U parameter) if it didn't answer instantly. M src/doveadm/doveadm-dsync.c 2014-10-27 23:29:39 +0200 Timo Sirainen (5ef6906c8) lib: Make sure ostream.last_failed_errno is always set when stream_errno is set. M src/lib/ostream.c 2014-10-27 23:26:10 +0200 Timo Sirainen (d08e08aeb) lib: o_stream_uncork() could also cause write errors. Make sure last_failed_errno is updated. This caused some write errors not to be detected, such as in code like: o_stream_cork() o_stream_nsend(..) o_stream_uncork() if (o_stream_nfinish() < 0) { // error not detected because last_failed_errno was 0 } M src/lib/ostream.c 2014-10-27 22:05:27 +0200 Teemu Huovila (f45aa6634) lib-index: Remove assert that can never happen. M src/lib-index/mail-index-sync-update.c 2014-10-27 20:24:34 +0200 Timo Sirainen (451391ab7) master: Don't send broken BYE notifications to log process. M src/master/service-log.c 2014-10-27 20:14:47 +0200 Timo Sirainen (d695286ee) log: Don't crash if master sends a negative service_fd number. M src/log/log-connection.c 2014-10-27 20:10:19 +0200 Timo Sirainen (46ad586b6) master: Added an assert to catch duplicate fork() PIDs. This really shouldn't be happening, but apparently it does sometimes. This should make it easier to debug. M src/master/service-process.c 2014-10-27 17:05:52 +0200 Timo Sirainen (34b858a45) lib-storage: Recent change broke deleting mailboxes with LAYOUT=index M src/lib-storage/list/mailbox-list-index-backend.c 2014-10-26 18:43:57 +0200 Stephan Bosch (659ab82ad) lib-http: server: Fixed a hang occurring sometimes when response is sent for a request that had payload. Forgot to always trigger sending response when processing request payload finishes. M src/lib-http/http-server-connection.c 2014-10-26 18:43:57 +0200 Stephan Bosch (bf1134c9c) lib-http: client: Removed asssert in http_client_connection_is_ready(). There is no reason why the input stream couldn't be full. M src/lib-http/http-client-connection.c 2014-10-26 18:43:57 +0200 Stephan Bosch (4e1039a8f) lib-http: client: The asserts recently added to http_connection_check_idle() are bogus. M src/lib-http/http-client-connection.c 2014-10-26 02:03:22 +0300 Timo Sirainen (fc525738d) fs-posix: fs_copy() no longer fails if destination exists and FS_OPEN_MODE_REPLACE is used M src/lib-fs/fs-posix.c 2014-10-26 01:59:05 +0300 Timo Sirainen (3f6a3951a) lib-http server: If i/ostream fails, don't return wrong "stream input size changed" error. Also handle the real case in a bit nicer way. M src/lib-http/http-server-response.c 2014-10-25 22:18:07 +0000 Pascal Volk (2e10491ae) man: Global options includes: Added back the newline at end of files. They were accidentally removed in the previous commit. M doc/man/global-options-formatter.inc M doc/man/global-options.inc 2014-10-25 21:24:06 +0000 Pascal Volk (57552b052) man: Global options includes: Added description of `-o setting=value'. M doc/man/global-options-formatter.inc M doc/man/global-options.inc 2014-10-26 01:00:36 +0300 Timo Sirainen (b80c329a2) lib: If i_stream_seek() works by reading forward and read() fails, don't override the error message. M src/lib/istream.c 2014-10-26 00:08:05 +0300 Timo Sirainen (a03a9aa80) master: Don't start new processes while shutting down. M src/master/service-monitor.c 2014-10-25 22:53:35 +0300 Timo Sirainen (a3e96a912) dsync: Added debug logging for attribute importing M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-25 06:57:25 +0300 Timo Sirainen (9803c762c) Added signature for changeset e8b793f2c409 M .hgsigs 2014-10-25 06:57:11 +0300 Timo Sirainen (1234a3f0e) Added tag 2.2.15 for changeset e8b793f2c409 M .hgtags 2014-10-25 06:57:11 +0300 Timo Sirainen (6ba458d40) Released v2.2.15. M NEWS M configure.ac 2014-10-25 06:40:03 +0300 Timo Sirainen (18458233e) lmtp: Use mail_log_prefix while mails are being delivered. M src/lmtp/commands.c 2014-10-25 06:37:35 +0300 Timo Sirainen (baca4c450) lmtp: Added missing session_id to mail_user M src/lmtp/commands.c 2014-10-25 06:19:41 +0300 Timo Sirainen (bb2471ff1) lib-storage: LAYOUT=index now first creates the backend mailbox and only then adds it to list index. This avoids any race conditions with mailbox creation and opening it. M src/lib-storage/list/mailbox-list-index-backend.c 2014-10-25 06:18:45 +0300 Timo Sirainen (7f0ad4a2b) lib-storage: Don't update mailbox list index status fields when deleting a mailbox. M src/lib-storage/list/mailbox-list-index-status.c 2014-10-25 06:18:06 +0300 Timo Sirainen (b63c064e9) lib-storage: When mailbox is deleted, reset its cached paths. If mailbox is still later on recreated, the paths may have changed. M src/lib-storage/mail-storage.c 2014-10-25 06:16:47 +0300 Timo Sirainen (8739d6bf4) lib-storage: Fully unreference indexes when deleting mailboxes. M src/lib-storage/index/index-storage.c 2014-10-25 02:56:42 +0300 Timo Sirainen (458b283a2) lib-index: Don't assert-crash if expunge event handling finds that everything is already expunged. M src/lib-index/mail-index-sync-update.c 2014-10-25 02:53:55 +0300 Timo Sirainen (73ac4a4b1) quota: Fixed including the right system quota.h with NetBSD Patch by Manuel Bouyer. I guess the quota.h could be renamed to something at some point.. M src/plugins/quota/quota-fs.h 2014-10-25 02:52:50 +0300 Timo Sirainen (5f83be0c5) quota: Fixed NetBSD quota I guess it's because quota is refreshed only at quota_open() time. Based on patch by Manuel Bouyer M src/plugins/quota/quota-fs.c 2014-10-25 02:42:47 +0300 Timo Sirainen (bbdd683dd) auth: Some unsuccessful passdb lookups weren't returned as failures to passdb lookups. These lookups were only being done internally, so it usually didn't matter. Also this only affected things like allow_nets checking and some non-common passdb { result_* } settings. M src/auth/auth-master-connection.c 2014-10-25 02:39:00 +0300 Timo Sirainen (42e23ab53) auth: allow_nets=local matches now connections without any IP address M src/auth/auth-request.c 2014-10-25 02:13:36 +0300 Timo Sirainen (ce930f99c) virtual plugin: Fixed assert-crash when backend mailbox was auto-closed while it had pending expunges. M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c 2014-10-25 01:38:43 +0300 Stephan Bosch (1a2ce9ef1) lib-http: client: Handle situation in which server sends response before request payload is fully sent. M src/lib-http/http-client-connection.c 2014-10-25 01:38:42 +0300 Stephan Bosch (30ccfe4fd) lib-http: client: Fixed handling of requests aborted while still sending payload to server. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h 2014-10-25 01:38:42 +0300 Stephan Bosch (9145c8b5e) lib-http: client: Fixed conflict between request abort and request delayed error. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2014-10-25 01:38:42 +0300 Stephan Bosch (7e5ead02b) lib-http: client: Fixed cleanup of remaining waiting requests at connection destroy. Forgot to dereference the requests for the reference that the connection itself holds for each waiting request. M src/lib-http/http-client-connection.c 2014-10-25 01:38:42 +0300 Stephan Bosch (23f432e57) lib-http: client: Aborted requests were not counted as finished in the connection's response receive loop. This caused a hang. M src/lib-http/http-client-connection.c 2014-10-24 23:00:56 +0300 Timo Sirainen (46453c751) lib-fs: Improved error logging M src/lib-fs/fs-api.c 2014-10-24 22:18:29 +0300 Timo Sirainen (b5351cfc5) Use i_stream_get_error() wherever possible instead of %m M src/director/notify-connection.c M src/lib-imap-storage/imap-msgpart.c M src/lib-settings/settings-parser.c M src/lib-storage/index/index-search.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-storage.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-script.c 2014-10-24 22:11:50 +0300 Timo Sirainen (8dccbdbe3) lib-storage: Added data stack frames for most calls. So neither the callers nor the implementations need to worry about those so much. M src/lib-storage/mail-storage.c M src/lib-storage/mail.c 2014-10-24 22:10:25 +0300 Timo Sirainen (9e406b04b) lib: Added "istream-seekable: " error message prefixes. M src/lib/istream-seekable.c 2014-10-24 04:24:40 +0300 Timo Sirainen (299451d50) dsync: Added some debugging output for mailbox trees. M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree.h 2014-10-24 03:58:35 +0300 Timo Sirainen (49c7e0ae3) dsync: Removed in/out state from debugging. This was initially added for debugging hangs, but those haven't existed for a long time now. Maybe we should eventually make debug categories configurable, but for now nobody wants to see these messages. M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c 2014-10-24 03:54:21 +0300 Timo Sirainen (f0101f9dd) login proxy: If proxy_timeout is set, try to reconnect until the timeout is reached. This allows quickly restarting/upgrading backend servers without returning login failures. M src/login-common/login-proxy.c 2014-10-23 06:38:20 +0300 Timo Sirainen (2c57ebc90) doveadm: Added metadata set/unset/get/list commands. M src/doveadm/Makefile.am A src/doveadm/doveadm-mail-mailbox-metadata.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2014-10-23 06:37:48 +0300 Timo Sirainen (7fbd5e7ce) doveadm fetch: Use doveadm_print_istream() M src/doveadm/doveadm-mail-fetch.c 2014-10-23 06:37:30 +0300 Timo Sirainen (80bc6f4fe) doveadm: Added doveadm_print_istream() for easily printing istreams. M src/doveadm/doveadm-print.c M src/doveadm/doveadm-print.h 2014-10-23 05:55:51 +0300 Stephan Bosch (0d24f1550) lib-http: client: Fixed proxied client connect timeout. Timeout didn't cause requests to be aborted with error. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h 2014-10-23 05:55:51 +0300 Stephan Bosch (94d1b08c9) lib-http: client: Implemented maximum for connection backoff time. Without a maximum, the backoff time grows exponentially to enormous values, because it isn't reset until the connection succeeds. This causes recovery from connection failures to become very slow. Current maximum is one minute. M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c M src/lib-http/http-client.h 2014-10-23 05:55:51 +0300 Stephan Bosch (a83045887) lib-http: client: Assertion in http_client_queue_fail() was wrong. It is not guaranteed that all queue lists are empty, because new requests can be submitted from the callbacks. Changed this into a proper invariant check, which asserts tbat the number of requests in sub-queues add up to the total number in the main queue. M src/lib-http/http-client-queue.c 2014-10-23 05:55:51 +0300 Stephan Bosch (5e3c6e998) lib-http: client: Clear req->conn when request is finished. This prevents a spurious assert failure. M src/lib-http/http-client-connection.c 2014-10-23 05:04:37 +0300 Timo Sirainen (537598efa) lib-index: Detect broken log_file_tail_offset updates without assert-crashing. M src/lib-index/mail-transaction-log-file.c 2014-10-23 04:16:48 +0300 Timo Sirainen (ab841a241) dsync: Fixed assert-crash / memory leak on error handling path. M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-23 03:10:12 +0300 Timo Sirainen (483268a37) lib-storage: Make sure mailbox names are valid UTF-8 with LAYOUT=index M src/lib-storage/list/mailbox-list-index.c 2014-10-22 14:15:23 -0700 Timo Sirainen (10732e0d1) replication plugin: Use low priority for mail copying operations. M src/plugins/replication/replication-plugin.c 2014-10-22 05:40:44 +0300 Timo Sirainen (3bb59b47d) lib: Added unit tests for guid_128_*() M src/lib/Makefile.am A src/lib/test-guid.c M src/lib/test-lib.c M src/lib/test-lib.h 2014-10-22 02:59:22 +0300 Timo Sirainen (8562f8de4) lib: Added guid_128_copy() M src/lib/guid.h 2014-10-21 23:34:50 +0300 Stephan Bosch (4aaec94d5) lib-http: client: If peer is unlinked from queue and no other links remain, close any pending connections. Those pending connections would no longer serve any purpose. M src/lib-http/http-client-peer.c 2014-10-21 05:46:22 +0300 Timo Sirainen (3a177dbf6) lib-storage: LAYOUT=index no longer keeps list index locked while creating mailbox. Mailbox opening can be slow and complicated and could even try to lock the list index again. So it's a bit more racy now, but all mailbox formats can already handle races with mailbox creation. M src/lib-storage/list/mailbox-list-index-backend.c 2014-10-21 05:44:09 +0300 Timo Sirainen (330865e1e) lib-storage: Partially reverted previous change. Added mailbox_list_index_sync_delete() instead. M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index-sync.h 2014-10-21 03:58:56 +0300 Timo Sirainen (c44f7761b) lib-storage: Added mailbox_list_index_delete_entry() M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index-sync.h 2014-10-21 02:48:20 +0300 Timo Sirainen (74fe10b32) lib: test-buffer was randomly crashing with SIGFPE M src/lib/test-buffer.c 2014-10-20 08:54:27 -0700 Stephan Bosch (a991cfe21) lib-http: client: Created list of all submitted requests. Currently only needed to improve debugging of hanging requests. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2014-10-20 08:54:27 -0700 Stephan Bosch (8d5b57113) lib-http: client: Fixed behavior of connection backoff timer when multiple IPs are returned for hostname. Peer backoff data was lost because peer was destroyed quickly. Now the peer object is retained during the backoff period, so that new connection attempts adhere to the backoff period. M src/lib-http/http-client-peer.c 2014-10-20 08:54:27 -0700 Stephan Bosch (72383415a) lib-http: client: Connection erroneously indicated that it was ready while SSL handshake was not yet completed. M src/lib-http/http-client-connection.c 2014-10-20 08:54:27 -0700 Stephan Bosch (e4e4b8544) lib-http: client: Fixed behavior for max_connect_attempts with fewer IPs than attempts. This was broken by earlier 'fix'. M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c 2014-10-20 08:54:26 -0700 Stephan Bosch (60381d37e) lib-http: client: Fixed handling of connection timeouts. A timeout caused an assert failure, because the connection status was altered before the peer_connection_failure handler was called. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h 2014-10-19 19:29:34 +0000 Pascal Volk (da2555e11) man: Reworked some formatting requests. On some systems, for example SunOS 5.10, the example commands were cut off. M doc/man/doveadm-altmove.1.in M doc/man/doveadm-auth.1.in M doc/man/doveadm-batch.1.in M doc/man/doveadm-deduplicate.1.in M doc/man/doveadm-expunge.1.in M doc/man/doveadm-flags.1.in M doc/man/doveadm-mailbox.1.in M doc/man/doveadm-move.1.in M doc/man/doveadm-search.1.in M doc/man/doveadm-sync.1.in M doc/man/doveconf.1.in 2014-10-19 11:24:12 -0700 Timo Sirainen (e9c0bb1f4) imap, pop3, lmtp: If client gets disconnected due to iostream error, log the full error. M src/imap/imap-client.c M src/lmtp/client.c M src/pop3/pop3-client.c 2014-10-18 02:13:30 +0300 Timo Sirainen (9f7a3d6bb) doveadm fetch: If istream reading fails, log a better error message. M src/doveadm/doveadm-mail-fetch.c 2014-10-18 02:12:47 +0300 Timo Sirainen (6a268ef95) lib-storage: When logging about corrupted cached message size, log the filename also. M src/lib-storage/index/istream-mail.c 2014-10-18 01:55:02 +0300 Timo Sirainen (b5188ceb8) lib-storage: If we detect a broken cached message size, log more information about it. Also try to include one of the cached headers in the message, which could allow detecting if the cached data pointed to a completely different message. M src/lib-storage/index/istream-mail.c 2014-10-17 10:02:54 -0700 Timo Sirainen (aa21a546c) lib-lda: And fixed the earlier commit. M src/lib-lda/duplicate.c 2014-10-17 09:59:21 -0700 Timo Sirainen (ad31667f8) lib-lda: duplicate_flush() now unlocks the duplicate database even if nothing had changed. M src/lib-lda/duplicate.c 2014-10-16 08:19:03 -0700 Timo Sirainen (f3391d65c) lib-storage: LAYOUT=index doesn't reserve '~' as internal separator anymore. The index doesn't reserve any character as hierarchy separator, so the internal separator can change at any time. Use the namespace's configured hierarchy separator as the internal separator to avoid reserving any characters. If namespace separator isn't configured, fallback to the original '~' so this change shouldn't break anything. M src/lib-storage/list/mailbox-list-index-backend.c 2014-10-16 07:25:17 -0700 Timo Sirainen (136ba0ed2) doveconf: Changed _doveconf_comment symbol suffix to _doveconf_banner That describes its behavior better. M src/config/doveconf.c 2014-10-15 07:37:05 -0700 Timo Sirainen (4fcf9b577) doveconf: Allow settings plugins to print comments to the output header. If plugin contains _doveconf_comment string, it's written as part of the doveconf output. The idea mainly being that the major plugins (such as Pigeonhole) could print their version number there to avoid having to ask for it separately. M src/config/doveconf.c 2014-10-14 16:57:13 -0700 Timo Sirainen (910a51672) imap-zlib: Removed check for disallowing COMPRESS to be used with TLS compression. Clients shouldn't be doing this in any case, and this check doesn't work properly with proxies. We could solve the check properly for Dovecot proxies by having them send the TLS compression state to backends, but it would still leave non-Dovecot proxies broken. Although we could just not advertise COMPRESS=DEFLATE extension if TLS compression is enabled and non-Dovecot proxies at least wouldn't cause failures. Still, overall seems like a lot of work for such a small and probably unnecessary extra check. M src/plugins/imap-zlib/imap-zlib-plugin.c 2014-10-14 12:17:36 -0700 Timo Sirainen (1b225669e) lib-ssl-iostream: Allow commas also in ssl_protocols setting. M src/lib-ssl-iostream/iostream-openssl-common.c 2014-10-14 12:14:14 -0700 Timo Sirainen (3cd314070) Compiling fix for some systems. M src/lib-storage/list/mailbox-list-index.h 2014-10-14 10:17:26 -0700 Timo Sirainen (d4f80a4e2) auth: Minor fix to previous commit. M src/auth/auth-request.c 2014-10-14 10:16:03 -0700 Timo Sirainen (1323ac1fd) auth: Check for empty username after doing all the username changes. M src/auth/auth-request.c 2014-10-14 19:49:58 +0300 Timo Sirainen (d6ecafb8b) Added signature for changeset 6dad1f6e8930 M .hgsigs 2014-10-14 19:49:55 +0300 Timo Sirainen (9d128253a) Added tag 2.2.14 for changeset 6dad1f6e8930 M .hgtags 2014-10-14 19:49:55 +0300 Timo Sirainen (0ec69c4f2) Released v2.2.14. M NEWS M configure.ac 2014-10-14 09:39:50 -0700 Timo Sirainen (bacd4f6e6) lib-storage: Added X-REAL-UID search parameter. M src/lib-storage/index/index-search.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h 2014-10-14 09:36:15 -0700 Timo Sirainen (74c09aceb) Compiler warning fix M src/lib-http/http-client.h 2014-10-14 09:22:40 -0700 Timo Sirainen (89c8d5f33) lib: i_stream_read_next_line() now sets a better error message if line is too long. M src/lib/istream.c 2014-10-13 09:13:53 -0700 Timo Sirainen (228eff728) auth: Fix to earlier commit: Don't try to resume already finished user iteration. M src/auth/auth-worker-server.c 2014-10-13 08:50:44 -0700 Timo Sirainen (aa938aea6) lib-index: Automatically grow header size on header updates. This fixes assert-crashes when it didn't happen. For example an old Maildir index could have had a header size 24. Dovecot crashed then when trying to update it, because the new header size is 36 and there wasn't an explicit mail_index_ext_resize_hdr() call. M src/lib-index/mail-index-transaction-export.c 2014-10-13 06:55:15 -0700 Timo Sirainen (2e29c5838) Compile fix for systems without dlopen() M src/lib/module-dir.c 2014-10-12 08:58:40 -0700 Stephan Bosch (fca68889b) lib-http: client: Moved delayed failed requests from host to client object. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2014-10-12 08:58:40 -0700 Stephan Bosch (501d0f9aa) lib-http: client: With the recent addition of a connection attempt limit, connection failures weren't always handled correctly. M src/lib-http/http-client-queue.c 2014-10-12 08:58:40 -0700 Stephan Bosch (68fb5a74d) lib-http: client: Fixed segfault caused by earlier change. M src/lib-http/http-client-connection.c 2014-10-11 00:02:00 +0300 Timo Sirainen (47b5ef748) auth: Make sure userdb iteration is destroyed if worker connection disconnects. M src/auth/auth-master-connection.c M src/auth/auth-master-connection.h 2014-10-11 00:01:09 +0300 Timo Sirainen (f26b9bb2c) auth: Userdb iteration optimization. Don't keep re-creating the timeout after iterating each user. M src/auth/auth-worker-server.c 2014-10-11 00:43:38 +0300 Stephan Bosch (f1b04cf99) lib-dns: The dns_lookup() call caused a crash upon a connect error, because dns_client_disconnect() can indirectly call itself recursively. Solved by dropping the list of lookups from the client object before the lookups are destroyed. M src/lib-dns/dns-lookup.c 2014-10-10 23:59:52 +0300 Timo Sirainen (f3c4f76a2) auth: If userdb iteration client disconnects early, make sure we don't get stuck. M src/auth/userdb-blocking.c 2014-10-10 18:11:58 +0300 Timo Sirainen (834dcbc78) maildir: Don't limit uidlist line lengths to 4096 bytes. Although this always indicates corruption, the current code doesn't handle that very nicely. One fix would be to just ignore such long lines, but this is easier to implement.. M src/lib-storage/index/maildir/maildir-uidlist.c 2014-10-10 00:46:15 +0300 Stephan Bosch (840abb812) lib-http: client: Fixed assert crash occurring when DNS lookup fails immediately during request submission. In that situation, the request was not dropped from the queue immediately, triggering the assert crash. M src/lib-http/http-client-request.c 2014-10-09 21:23:08 +0300 Timo Sirainen (1837e1363) lib-lda: Compiler warning fix M src/lib-lda/smtp-client.c 2014-10-09 21:22:45 +0300 Timo Sirainen (474da741b) mbox: Removed obsolete code that also wasn't compiling because of previous commit. M src/lib-storage/index/mbox/mbox-lock.c 2014-10-09 18:19:03 +0000 Pascal Volk (411ae691e) man: doveadm-acl.1: Corrected description of default output formatter. M doc/man/doveadm-acl.1.in 2014-10-09 20:46:31 +0300 Timo Sirainen (cfadd9a17) lib-index: Removed dovecot.index locking related code, which is no longer used. M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c 2014-10-09 18:41:06 +0300 Timo Sirainen (d77fb3be5) lib: Updated comment to o_stream_send_istream() M src/lib/ostream.h 2014-10-09 18:40:54 +0300 Timo Sirainen (63866b7a8) lib: Fixed assert-crash in o_stream_send_istream() if input stream was the one that failed. M src/lib/ostream.c 2014-10-09 18:27:14 +0300 Timo Sirainen (f6ae4001e) lib-index: Added mail_index_sync_no_warning() to prevent "long transaction lock" warnings. Use it with Maildir to prevent double-warning. M src/lib-index/mail-index-sync.c M src/lib-index/mail-index.h M src/lib-storage/index/maildir/maildir-sync-index.c 2014-10-09 18:26:05 +0300 Timo Sirainen (2f8da04d7) lib-index: Include reason string in warnings about keeping transaction log locked for too long. M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c M src/lib-index/mail-transaction-log.h M src/lib-index/test-mail-transaction-log-append.c 2014-10-09 18:23:41 +0300 Timo Sirainen (da4376093) lib-index: Replaced some automatic transaction log unlocks with asserts. Some earlier Dovecot versions were read-locking transaction logs and this was useful there. But now we only do exclusive locking for the log head, so it's an error not to explicitly unlock the files. M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log.c 2014-10-09 18:20:56 +0300 Timo Sirainen (94cb0544b) lib-index: If locking transaction log times out, show the PID which has it locked. M src/lib-index/mail-transaction-log-file.c 2014-10-09 18:19:11 +0300 Timo Sirainen (565790b06) maildir: Use MAIL_TRANSACTION_LOG_LOCK_WARN_SECS as threshold for logging a "long sync" warning. This is because the index syncing keeps the log locked, and other processes trying to lock the log will start logging warnings as well. M src/lib-storage/index/maildir/maildir-sync.h 2014-10-09 18:17:26 +0300 Timo Sirainen (e307c8202) lib-index: Moved MAIL_TRANSACTION_LOG_LOCK_WARN_SECS as part of public API. M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-private.h 2014-10-09 18:14:43 +0300 Timo Sirainen (a34d06ac6) lib: o_stream_send_istream() shouldn't ignore EINTRs for file ostreams. Also added extra asserts to make sure that either we return an error or we write everything from input stream to output stream. This should make it safe to write to files using just: if (o_stream_send_istream(ostream, istream) < 0) { // failed } else { // everything in istream was written to ostream } M src/lib/ostream-file.c 2014-10-09 18:12:46 +0300 Timo Sirainen (db3ebf659) lib: o_stream_send_istream() should return -1 if there was an error reading input stream. M src/lib/ostream.c 2014-10-09 18:12:14 +0300 Timo Sirainen (1107c86ff) lib: Added file_lock_find() to find which process has a file locked. M src/lib/file-lock.c M src/lib/file-lock.h 2014-10-09 16:51:22 +0300 Timo Sirainen (e19e36fc3) lib-storage: Small comment update M src/lib-storage/mail-storage.h 2014-10-09 16:42:01 +0300 Timo Sirainen (073f96535) lib-storage: If uncached header unfolding fails, panic instead of returning error. This really shouldn't be happening. This also makes it clear that return value -1 means some kind of I/O error instead of corruption. M src/lib-storage/index/index-mail-headers.c 2014-10-09 16:41:23 +0300 Timo Sirainen (8b12e7b44) lib-storage: Fixed header parsing when there were multiple same header names. For example if a mail had: Name1: a Name1: b Name2: c If the Name1: was initially added to cache and Name2: not, but later on both were attempted to be added to cache, the Name2: lookup would have been added with "b" instead of "c" value. M src/lib-storage/index/index-mail-headers.c 2014-10-09 12:02:21 +0300 Timo Sirainen (0f4831341) lib-lda: Added smtp_client_abort() M src/lib-lda/smtp-client.c M src/lib-lda/smtp-client.h 2014-10-08 22:10:34 +0300 Timo Sirainen (1ee1a73bd) lda, lmtp: Use mail_deliver_context.tempfail_error first if it exists (instead of storage error). M src/lda/main.c M src/lmtp/commands.c 2014-10-08 16:28:40 +0300 Timo Sirainen (f2841ed46) lib: Compiling fix for FreeBSD Patch by Eero Hänninen M src/lib/net.c 2014-10-08 11:34:05 +0300 Timo Sirainen (b056d19b7) lib-storage: LAYOUT=index small code cleanup M src/lib-storage/list/mailbox-list-index-backend.c 2014-10-08 11:33:50 +0300 Timo Sirainen (28f7485aa) lib-storage: Fixed earlier LAYOUT=index change to refresh index before opening a view to it. Fixes an assert-crash. M src/lib-storage/list/mailbox-list-index-backend.c 2014-10-07 22:24:21 +0000 Pascal Volk (6ae7a38d1) man: Added doveadm-proxy.1. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-proxy.1.in M doc/man/doveadm.1.in 2014-10-07 21:35:44 +0300 Timo Sirainen (f663bdd9d) lib-storage: Fixed some race condition crashes with LAYOUT=index M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2014-10-07 20:29:16 +0300 Timo Sirainen (ca315235c) lib-storage: Fixed assert-crash when BODYSTRUCTURE parsing fails due to broken mail size. M src/lib-storage/index/index-mail.c 2014-10-07 20:28:06 +0300 Timo Sirainen (02d8f3457) lib-mail: Added asserts M src/lib-mail/message-parser.c 2014-10-07 20:13:36 +0300 Timo Sirainen (425cbcea6) lib-index: Fixed assert-crash in some cache locking race conditions. If mail_index_map() is being called, we can't refresh the index or it'll crash. It wouldn't help anyway, since the index was just refreshed. M src/lib-index/mail-cache.c 2014-10-07 19:48:34 +0300 Phil Carmody (6a53a5183) lib-fs: struct fs_file's write_pending is a flag Signed-off-by: Phil Carmody M src/lib-fs/fs-api-private.h 2014-10-07 19:07:16 +0300 Timo Sirainen (0f833d18a) lib-index: Delay unlocking cache compression until changes to transaction log are committed. This should fix race condition with two processes compressing the file at the same time with same file_seq and becoming confused. M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.h M src/lib-index/mail-index-sync.c M src/lib-storage/index/index-rebuild.c 2014-10-07 19:04:36 +0300 Timo Sirainen (06fc580f6) lib-index: Added path parameter to mail_index_create_tmp_file() This allows using it for creating any kind of a new index file with proper file permissions. Some of the old code should probably be changed to use this. Maybe even move this function to public mail-index.h M src/lib-index/mail-index-private.h M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c 2014-10-07 18:58:01 +0300 Timo Sirainen (cfd0e35fc) lib-index: Try to minimize race conditions while compressing cache. There are some unavoidable race conditions, but try to keep their time window as small as possible. M src/lib-index/mail-cache-compress.c 2014-10-07 18:47:09 +0300 Timo Sirainen (ab70f55bb) lib-index: mail_cache_lock() partial rewrite. require_same_reset_id is no longer needed, if it ever was. If we're locking the cache file, we always want the latest one. The logic of locking in general was somewhat confusing and it probably didn't always successfully lock when it should have, because the reset_id happened to match an old file. M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c 2014-10-07 02:54:35 +0300 Timo Sirainen (620b5ed41) lib-index: Code cleanup - avoid code duplication. M src/lib-index/mail-cache.c 2014-10-07 02:35:41 +0300 Timo Sirainen (e4b242684) lib-index: Fixed cache file creation race condition. If two processes are creating the index files at the same time, don't have one of them delete the dovecot.index.cache that the other one just created. This means we never should be calling mail_cache_create(), so it was removed entirely. M src/lib-index/mail-cache.c M src/lib-index/mail-cache.h M src/lib-index/mail-index.c 2014-10-07 02:33:03 +0300 Timo Sirainen (2219015cc) lib-index: Don't keep cache file locked for as long while syncing index. The earlier code was required for updating the cache offsets, but this code no longer exists. Now we just need to update the record counts in the header, which can be done quickly at the end of the sync. M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c 2014-10-06 20:50:34 +0000 Pascal Volk (80bd97a01) man: Fixed broken syntax in doveadm-sync.1. M doc/man/doveadm-sync.1.in 2014-10-06 22:12:01 +0300 Timo Sirainen (c85f661da) lib-dict: Fixed race condition in mkdir()ing dict file's parent directory. M src/lib-dict/dict-file.c 2014-10-06 21:15:31 +0300 Timo Sirainen (a4828c444) sdbox: Fixed race condition when two processes mkdir() the same directory M src/lib-storage/index/dbox-single/sdbox-file.c 2014-10-06 20:17:19 +0300 Timo Sirainen (482c0b9cb) Minor code cleanup to previous change. No need to have a data stack frame here. M src/lib/failures.c 2014-10-06 20:16:07 +0300 Timo Sirainen (d4f004105) log_timestamp setting supports now %{usecs} This is mainly useful for debugging. M src/lib/failures.c M src/lib/failures.h M src/log/log-connection.c 2014-10-05 23:36:10 +0000 Pascal Volk (af59148d4) man: Added doveadm-replicator.1. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-replicator.1.in M doc/man/doveadm.1.in 2014-10-05 23:25:48 +0000 Pascal Volk (1c8426904) man: Forgot to update doveadm.1 in previous commit (fec91a386bb0). M doc/man/doveadm.1.in 2014-10-05 20:18:20 +0000 Pascal Volk (b0bc86df0) man: Reworked dsync.1 and renamed it to doveadm-sync.1. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-backup.1 A doc/man/doveadm-sync.1.in A doc/man/dsync.1 D doc/man/dsync.1.in 2014-10-06 13:17:00 +0300 Timo Sirainen (34422d89f) dsync: Debug logging improvements and comment clarifications. M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-06 13:13:04 +0300 Timo Sirainen (f4842590c) dsync: Fixed potential crash when deleting mailbox. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c 2014-10-06 13:15:10 +0300 Timo Sirainen (f6a50ab94) doveadm backup: Don't unnecessarily delete mailbox when handling expunges M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-06 12:21:52 +0300 Timo Sirainen (2176c7c7a) doveadm backup: Local mailbox was deleted also when there were just new messages. M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-06 12:21:24 +0300 Timo Sirainen (f502a549a) doveadm backup: When deleting a mailbox, log a warning, not just a debug message. Because we're also returning temporary failure in any case, so there needs to be some kind of a warning/error logged. M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-05 20:56:39 +0300 Timo Sirainen (01a486e33) dsync: Fixed linking with some systems. M src/doveadm/dsync/Makefile.am 2014-10-05 13:24:02 +0300 Timo Sirainen (75fe5f1b4) doveadm sync/backup: Updated usage string M src/doveadm/doveadm-dsync.c 2014-10-04 17:48:03 +0300 Stephan Bosch (efbeceffc) lib: Added support for connecting UDP sockets. M src/lib/net.c M src/lib/net.h 2014-10-04 17:32:48 +0300 Stephan Bosch (22215c2d7) lib-http: Fixed detecting disconnection when ioloop is running only intermittently. This fix only applies to ioloops created and run by lib-http itself. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2014-10-04 17:32:48 +0300 Stephan Bosch (b66def5da) lib-http: client: Added support for absolute request timeout. Requests cannot survive beyond this deadline. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2014-10-04 17:31:38 +0300 Stephan Bosch (de0181258) lib-http: client: Added support for delaying requests in milliseconds. M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2014-10-04 17:31:38 +0300 Stephan Bosch (06d1b658d) lib-http: client queue: Start using new timeval_cmp_margin function for delay handling. M src/lib-http/http-client-queue.c 2014-10-04 17:31:38 +0300 Stephan Bosch (b3ba8f622) lib: Fixed io_loop_move_timeout() to retain the next_run time, so that the timeout is not implicitly reset. This problem became with timeout_add_absolute(), since resetting an absolute timeout causes it to fire immediately (msecs == 0). M src/lib/ioloop.c 2014-10-04 17:31:14 +0300 Stephan Bosch (dad72f974) lib: ioloop: Fixed absolute timeout removal. Absolute timeouts fire only once, so the timeout should be removed from the priority queue once it fires. M src/lib/ioloop.c 2014-10-04 17:30:54 +0300 Stephan Bosch (9f4f35957) lib-http: client: Fixed problem occuring when a nested ioloop was run inside a request callback using the same client. If requests in the nested ioloop would use the same connection as the one that called the callback, the requests would (in the best scenario) all be doomed to time out. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h 2014-10-04 00:29:30 +0300 Timo Sirainen (792737e5c) fs-posix: Compile fix for systems without flock() M src/lib-fs/fs-posix.c 2014-10-03 22:44:31 +0300 Timo Sirainen (c64840e98) Make static analyzer happier M src/auth/passdb-static.c M src/doveadm/doveadm-dict.c M src/plugins/virtual/virtual-config.c 2014-10-03 22:39:53 +0300 Timo Sirainen (924af2adb) lib-lda: smtp client may have crashed if remote returned a permanent error. M src/lib-lda/smtp-client.c 2014-10-03 18:18:44 +0300 Timo Sirainen (8abfdb77d) Added signature for changeset 34e52cbeb837 M .hgsigs 2014-10-03 18:18:41 +0300 Timo Sirainen (823190efd) Added tag 2.2.14.rc1 for changeset 34e52cbeb837 M .hgtags 2014-10-03 18:18:41 +0300 Timo Sirainen (4c808c48d) Released v2.2.14.rc1. M NEWS M configure.ac 2014-10-03 17:36:11 +0300 Timo Sirainen (c93993015) example-config: Added ssl_options setting. M doc/example-config/conf.d/10-ssl.conf 2014-10-03 17:11:58 +0300 Timo Sirainen (5d786275b) imap: GETMETADATA was returning mailbox name as UTF-8 instead of mUTF-7 M src/imap/cmd-getmetadata.c 2014-10-03 16:57:39 +0300 Timo Sirainen (b6c48e71a) fs-posix: Added prefix parameter that is prefixed to all paths. M src/lib-fs/fs-posix.c 2014-10-03 16:31:33 +0300 Timo Sirainen (2d9b6a31e) lib-lda, lmtp: Separate internal errors from remote errors. LMTP proxy shouldn't log remote errors with error level, because the proxy itself didn't have any failure. This is an API change, but I'm not aware of any plugins actually using the lmtp-client.h directly. M src/lib-lda/lmtp-client.c M src/lib-lda/lmtp-client.h M src/lib-lda/smtp-client.c M src/lmtp/lmtp-proxy.c 2014-10-03 16:04:06 +0300 Timo Sirainen (0f430e0a5) master: If log process crashes, restart it immediately. The regular service_monitor_listen_start() doesn't work for it, because the log fds aren't in the listeners. M src/master/service-monitor.c 2014-10-02 19:43:25 +0300 Timo Sirainen (61f258ff6) dsync: Debug message fix M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-02 19:43:09 +0300 Timo Sirainen (f182955da) lib-storage: Added %{session} to mail_user_var_expand_table() M src/lib-storage/mail-user.c 2014-10-02 13:15:22 +0300 Timo Sirainen (de39002e8) dsync: Improved debug logging. M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-02 12:56:30 +0300 Timo Sirainen (3df1930bc) dsync: Added more debug logging. M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-02 12:48:00 +0300 Timo Sirainen (532702661) doveadm backup: Fix to earlier commit - don't try to delete an already empty mailbox. M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-02 12:31:34 +0300 Timo Sirainen (2faaca21f) doveadm backup: Locally expunged mails weren't always added back. M src/doveadm/dsync/dsync-mailbox-import.c 2014-10-01 10:33:49 +0300 Stephan Bosch (a40a55556) lib-http: client: Fixed recovery after connection failure. If a parallel already connected connection was active, the queue wasn't notified of the failure. Only pending connections should be considered in this case and not established ones. M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2014-10-01 10:33:39 +0300 Stephan Bosch (aab7256cd) lib-http: client: Fixed aborting request in the middle of sending payload. If the request payload is so big that it cannot be sent all at once, the caller may at some point abort the request when it is still being sent. The bug occurred when the request finally finished sending. It erroneously advanced the state to WAITING rather than remaining ABORTED, thus 'reviving' the request unexpectedly. M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c 2014-10-01 00:17:09 +0300 Timo Sirainen (9aa6561ac) lib: Fixed earlier timeout_add_absolute() commit. I removed too much from Stephan's patch. M src/lib/ioloop.c 2014-10-01 00:13:36 +0300 Stephan Bosch (e28b88ee8) lib: Created timeval_cmp_margin(). It's identical to timeval_cmp(), except that it ignores tv_usec differences smaller than a specified margin. M src/lib/time-util.c M src/lib/time-util.h 2014-10-01 00:06:19 +0300 Stephan Bosch (2753f93e5) lib: Added support for adding milliseconds to struct timeval time values. M src/lib/time-util.h 2014-10-01 00:03:17 +0300 Stephan Bosch (43a2fa018) lib: Added support for setting timeouts at absolute time, rather than relative to current time. M src/lib/ioloop-private.h M src/lib/ioloop.c M src/lib/ioloop.h 2014-09-30 23:49:52 +0300 Stephan Bosch (0d30ec5be) lib-http: client: The http_client_queue_fail() function aborted requests in an unsafe manner. Copied queues before freeing the requests, because the destroyed requests modify the queue. M src/lib-http/http-client-queue.c 2014-09-30 23:49:45 +0300 Stephan Bosch (16eb9a737) lib-http: client: Fixed crash occurring sometimes when delay timeout expired. Forgot to drop destroyed requests from delay queue. M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c 2014-09-30 23:49:35 +0300 Stephan Bosch (f1767771d) lib-sasl: Added reference counting to lib-sasl initialization. M src/lib-sasl/dsasl-client.c 2014-09-29 22:44:03 +0300 Timo Sirainen (5024c4799) lib: Improved istream-file's failing read()/pread() error message. M src/lib/istream-file.c 2014-09-29 22:43:44 +0300 Timo Sirainen (73b9c241e) lib: If i_stream_default_seek_nonseekable() can't seek, set a more readable error message. M src/lib/istream.c 2014-09-29 15:56:02 +0300 Timo Sirainen (ccb0406a4) lib-lda: smtp_client_deinit() may have returned NULL error strings. M src/lib-lda/smtp-client.c 2014-09-29 14:57:42 +0300 Timo Sirainen (b5014077f) lib-http: Fixed assert-crash when http_client_connection_disconnect() is called multiple times. M src/lib-http/http-client-connection.c 2014-09-29 14:16:06 +0300 Timo Sirainen (d519a0449) dsync: Added DSYNC_BRAIN_FLAG_NO_MAIL_PREFETCH to avoid opening mails unnecessarily. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h M src/doveadm/dsync/dsync-mailbox-import.c 2014-09-26 00:32:03 +0300 Timo Sirainen (232ee7c66) lib-storage: Don't assume that we must read the whole message to get its virtual size. This is true only with mbox format. All the other formats have various metadata available where it's stored. M src/lib-storage/index/index-mail.c 2014-09-25 19:43:28 +0300 Timo Sirainen (eec75bde5) imap: die-callback didn't set log prefixes correctly for client handlers Calling mail_storage_service_io_activate_user() unfortunately doesn't set the ioloop context itself, so timeouts weren't inheriting it. It seemed a bit difficult to change this, so for now I just moved the call to the timeout handler. M src/imap/main.c 2014-09-25 15:50:03 +0300 Timo Sirainen (b5ff74693) lib: If file_wait_lock*() fails, try to include the current pid holding the lock in error message. This is currently supported via fcntl(F_GETLK) and also via Linux /proc/locks. M src/lib/file-lock.c 2014-09-25 15:37:48 +0300 Timo Sirainen (2df651ae1) imap, pop3: Show user's proper log prefix when deinitializing users at exit. M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/main.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-client.h 2014-09-25 15:37:01 +0300 Timo Sirainen (85779ec11) lib-storage: Allow calling storage service's ioloop activate/deactivate functions manually. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2014-09-25 15:15:20 +0300 Timo Sirainen (85b145558) lib: Code cleanup - check io_loop_context_add/remove_callbacks() callback parameters. M src/lib-storage/mail-storage-service.c M src/lib/ioloop.c M src/lib/ioloop.h M src/plugins/stats/stats-plugin.c 2014-09-25 13:40:54 +0300 Timo Sirainen (45324f1ea) Mark more memory pools as growing M src/lib-http/http-server-request.c M src/lib-index/mail-cache-lookup.c 2014-09-25 13:38:09 +0300 Timo Sirainen (1b81b28b2) auth: Mark memory pools as growing and use the same sizes for all mechanisms. Mainly to have DEBUG log fewer warnings. M src/auth/auth-request.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/mech-anonymous.c M src/auth/mech-apop.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-dovecot-token.c M src/auth/mech-external.c M src/auth/mech-gssapi.c M src/auth/mech-login.c M src/auth/mech-ntlm.c M src/auth/mech-otp.c M src/auth/mech-plain.c M src/auth/mech-rpa.c M src/auth/mech-scram-sha1.c M src/auth/mech-skey.c M src/auth/mech-winbind.c 2014-09-25 13:28:39 +0300 Timo Sirainen (33bd898e7) Avoid logging warnings about increasing memory pool/data stack with DEBUG on. These could have a minor effect on memory usage, but shouldn't be much. M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/doveconf.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/lib-master/master-instance.c M src/lib-master/master-service-settings.c M src/lib-settings/settings-parser.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/master/service.c 2014-09-25 13:26:20 +0300 Timo Sirainen (0dc789123) lib: Added file_wait_lock_error() and file_try_lock_error() M src/lib/file-lock.c M src/lib/file-lock.h 2014-09-25 02:55:34 +0300 Timo Sirainen (96c5e558b) fs-posix: fs_read_stream() now returns an istream that can live even after the fs_file is closed. M src/lib-fs/fs-posix.c 2014-09-25 01:13:12 +0300 Timo Sirainen (546335814) lib-storage: Added mailbox_get_index_path() and caching of the index path. This solves some potential assert-crashes on race conditions when opening a mailbox while it's being deleted. M src/lib-storage/index/index-rebuild.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2014-09-25 00:42:56 +0300 Timo Sirainen (70612e071) lib-storage: Headers were sometimes added to dovecot.index.cache with wrong line number value. This happened if the header parsing was done multiple times for the same mail. The end result being that when fetching multiple headers as a stream, the headers could have been returned in the wrong order. This messed up at least dsync's header hash comparisons. M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.h 2014-09-25 00:41:15 +0300 Timo Sirainen (ad9403d54) imapc: Fixed potential crash when trying to send NOOP before mailbox was fully opened. M src/lib-storage/index/imapc/imapc-storage.c 2014-09-25 00:40:48 +0300 Timo Sirainen (bf684c50b) imapc: If connection isn't in selected state when deleting mailbox, don't try to UNSELECT it. M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/imapc/imapc-list.c 2014-09-24 20:01:46 +0000 Pascal Volk (269cd8a29) man: Added doveadm-fts.1. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-fts.1.in M doc/man/doveadm.1.in 2014-09-24 19:50:37 +0000 Pascal Volk (ca5b7ceba) man: Added doveadm-acl.1. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-acl.1.in M doc/man/doveadm.1.in 2014-09-23 16:58:59 +0300 Timo Sirainen (45c763dbe) imap: Don't send MODSEQ in untagged FETCH reply if IMAP client didn't enable CONDSTORE/QRESYNC. We should have been checking client->enabled_features, not mailbox_get_enabled_features(). The former contains the features enabled by the IMAP client, while the latter contains also some automatically added features. M src/imap/imap-sync.c 2014-09-22 16:08:25 +0300 Timo Sirainen (1cf8b6dc4) lib-master: Increased instances file's dotlock timeout to 2 seconds. The 1 second would have been enough, except the current dotlocking code uses second-level precision in checking timeouts, so it could end up trying the lock only once. A better fix would be to fix the dotlocking code to use millisecond-level precision (internally), but since this is the only user so far where it would have mattered, it's not really worth the effort (yet). M src/lib-master/master-instance.c 2014-09-22 15:56:31 +0300 Phil Carmody (1f0b3ea95) lib: bsearch - make BINARY_NUMBER_SEARCH more widely usable This template is more widely usable if we do not hard-code into it the method of accessing the value being compared. For the default case we already use, this accessor is just a simple array dereferencing macro. As rewriting with the array access happens in the preprocessor, the code generated is completely unchanged. Expected future use: : #define MY_GETTER(array, index) ((array)[(index)].index_field) : #define MY_BINARY_SEARCH(data, count, value, idx_r) \ : BINARY_NUMERIC_SEARCH(MY_GETTER, data, count, value, idx_r); Signed-off-by: Phil Carmody M src/lib/bsearch-insert-pos.h 2014-09-18 17:46:18 +0200 Timo Sirainen (02a38d859) lib-dict: dict-fs implements now minimal iteration support. M src/lib-dict/dict-fs.c 2014-09-18 17:39:49 +0200 Timo Sirainen (8b03b93ea) doveadm dict iter: Use recursion flag only if -R parameter is specified. M src/doveadm/doveadm-dict.c 2014-09-18 02:19:32 +0200 Timo Sirainen (29449424b) fs-posix: When deleting a directory, automatically fallback to rmdir()ing it M src/lib-fs/fs-posix.c 2014-09-16 23:22:59 +0300 Timo Sirainen (7bdd29cf2) virtual: Using modseq-based syncing while mailbox was open didn't handle expunges correctly. The expunges were handled only after EXPUNGE command was given, which should have been done only for mails that no longer matched the search query but still existed. M src/plugins/virtual/virtual-sync.c 2014-09-16 20:59:48 +0300 Timo Sirainen (5be5d8759) quota: Quota recalculation didn't include INBOX in some configurations. If one inbox=yes and another inbox=no namespace shared the same mail location, and the inbox=no namespace was first, only it was used to list all mailboxes. M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2014-09-16 20:29:04 +0300 Phil Carmody (260faead6) lib: test-var-expand - disambiguate tests Two test cases had the same name. Signed-off-by: Phil Carmody M src/lib/test-var-expand.c 2014-09-16 20:29:04 +0300 Phil Carmody (c97176895) lib: hash-format - fix leak on _init() failure path If any of the analysis/parse helpers return failure, then the whole pool will leak. Signed-off-by: Phil Carmody M src/lib/hash-format.c 2014-09-16 15:43:42 +0300 Timo Sirainen (fbf0acc4c) lib-storage: SEARCH_MAILBOX* value is now also compared to to the (virtual) mailbox name. This fixes for example "doveadm fetch uid mailbox virtual/all" M src/lib-storage/index/index-search.c 2014-09-16 15:23:51 +0300 Timo Sirainen (263d455e9) doveadm fts rescan: For virtual namespaces just mark the last indexed UID to 0. M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c 2014-09-16 14:32:20 +0300 Timo Sirainen (d06e11170) fts: dovecot-expunges.log wasn't closed at deinit M src/plugins/fts/fts-expunge-log.c 2014-09-16 14:03:52 +0300 Phil Carmody (b800cdab6) lib: test-strnum - fix format size mismatch Signed-off-by: Phil Carmody M src/lib/test-strnum.c 2014-09-16 13:38:30 +0300 Phil Carmody (629e96c5e) lib: test-strnum - add size-oblivious str_to/parse_uintmax tests Test a value of every bit-length. Also test the 10/9*MAX corner case. And due to crappy helper functions, test lots of leading zeroes too! Signed-off-by: Phil Carmody M src/lib/test-strnum.c 2014-09-16 13:38:30 +0300 Phil Carmody (bee4935fb) lib: remove uintmax tests from uint64 tests These log a warning on OSX with clang. Signed-off-by: Phil Carmody M src/lib/test-strnum.c 2014-09-16 13:38:30 +0300 Phil Carmody (f1fab6f1b) lib: strnum - ensure str_to_uintmax doesn't return a value on error It was clobbering the _r parameter even though the spec says it shouldn't. Signed-off-by: Phil Carmody M src/lib/strnum.c 2014-09-16 12:32:09 +0300 Timo Sirainen (54f559f2e) dsync: Moved doveadm-specific code to doveadm directory. M src/doveadm/Makefile.am R099 src/doveadm/dsync/doveadm-dsync.c src/doveadm/doveadm-dsync.c R100 src/doveadm/dsync/doveadm-dsync.h src/doveadm/doveadm-dsync.h M src/doveadm/doveadm-mail.c M src/doveadm/doveadm.c M src/doveadm/dsync/Makefile.am 2014-09-16 12:04:07 +0300 Timo Sirainen (56cf7fccd) fs-metawrap: Fixed iteration wrapping, broken by earlier changes. M src/lib-fs/fs-metawrap.c 2014-09-16 01:12:21 +0300 Timo Sirainen (a7f818f53) Makefile: Fixed linking libdovecot-dsync M src/doveadm/dsync/Makefile.am 2014-09-16 01:09:53 +0300 Timo Sirainen (c32552ea7) Compiler warning fix M src/lib-storage/mail-namespace.c 2014-09-16 00:43:36 +0300 Timo Sirainen (f89e4933a) lib-fs: fs-metawrap now fully wraps fs_iter_* to fix tracking struct fs.iters M src/lib-fs/fs-metawrap.c 2014-09-16 00:21:52 +0300 Timo Sirainen (90804278d) lib-storage: Added mail_namespaces_init_add/finish() to manually initializing namespaces. M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h 2014-09-16 00:21:13 +0300 Timo Sirainen (1e40531c1) lib-storage: Added mail_user_dup() M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2014-09-16 00:01:33 +0300 Timo Sirainen (e13e79869) lib-fs: Keep track of all fs_iters in fs. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2014-09-15 23:57:45 +0300 Timo Sirainen (5804dddda) lib-fs: Added wait_ioloop/prev_ioloop helpers to struct fs. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2014-09-15 18:04:20 +0300 Timo Sirainen (faeca024c) Install libdovecot-dsync.so library, which can be used separately. M Makefile.am M configure.ac M dovecot-config.in.in M dovecot.m4 M src/doveadm/Makefile.am M src/doveadm/dsync/Makefile.am 2014-09-15 18:02:02 +0300 Timo Sirainen (0219a0549) dsync: Moved all doveadm-specific code to doveadm-dsync.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-mailbox-tree.c 2014-09-15 11:19:50 +0300 Stephan Bosch (711e8e4c5) lib-http: server: Fixed connection reference counting. Connection often still got destroyed too early. Particularly submitting responses would potentially destroy the connection, which is often unexpected. Sending responses is now postponed until handled by the stream output handler, which is explicitly triggered when necessary. M src/lib-http/http-server-connection.c M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c 2014-09-14 11:29:35 +0300 Timo Sirainen (e84429cf1) fs-posix: Fixed fs_iter_deinit() when opendir() had failed. M src/lib-fs/fs-posix.c 2014-09-13 23:42:17 +0300 Timo Sirainen (6f6b74fef) lib-http server: Keep output stream referenced to avoid accessing it after destroy. M src/lib-http/http-server-response.c 2014-09-13 22:15:35 +0300 Timo Sirainen (98ac7027d) fs-metawrap: Add FS_PROPERTY_COPY_METADATA property for wrapped fs backends. This is because if we simply use the parent copy the metadata gets copied as well. M src/lib-fs/fs-metawrap.c 2014-09-13 22:14:09 +0300 Timo Sirainen (bda58aef5) fs-posix: Fixed memory leak in fs_iter_deinit() M src/lib-fs/fs-posix.c 2014-09-12 12:55:12 +0300 Timo Sirainen (6efdbeab1) lib-master: Earlier config file path fix broke reusing existing config socket lookups. M src/lib-master/master-service-private.h M src/lib-master/master-service-settings.c M src/lib-master/master-service.c 2014-09-11 18:15:04 +0300 Timo Sirainen (7fc0ca6c1) virtual: Recent optimizations had broken fast mailbox syncing. We wrongly assumed that all_mails array could have been accessed using vseqs. Broken by 8abf7eea2966 M src/plugins/virtual/virtual-sync.c 2014-09-11 16:40:00 +0300 Timo Sirainen (9514798ef) lib-mail: Message decoder now runs normalizer also for unknown charsets. M src/lib-mail/message-decoder.c 2014-09-11 16:14:24 +0300 Timo Sirainen (264629908) fts-lucene: No .. the rebuilding warning was still in the wrong place. M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc 2014-09-11 16:12:38 +0300 Timo Sirainen (e1f07b96c) fts-lucene: Include the mailbox name also in the rebuilding warning. M src/plugins/fts-lucene/fts-backend-lucene.c 2014-09-11 16:11:37 +0300 Timo Sirainen (bfb05d270) fts-lucene: Log a warning when rebuilding index because of settings changes M src/plugins/fts-lucene/fts-backend-lucene.c 2014-09-10 18:41:39 +0300 Timo Sirainen (f1f877d66) man: Forgot to remove XXX prefixes from doveadm-director.1.in M doc/man/doveadm-director.1.in 2014-09-10 16:05:32 +0300 Timo Sirainen (0799033d1) replication plugin: Actually, use empty mail_replica as "replication is disabled". M src/plugins/replication/replication-plugin.c 2014-09-10 15:54:58 +0300 Timo Sirainen (42882b9aa) replication plugin: Added replication_disabled setting. M src/plugins/replication/replication-plugin.c 2014-09-10 14:48:58 +0300 Pascal Volk (5bfb64d91) man: doveadm-director man page updated M doc/man/doveadm-director.1.in 2014-09-10 14:42:34 +0300 Pascal Volk (96e19b9ca) man: doveadm-auth man page updated M doc/man/doveadm-auth.1.in 2014-09-10 14:37:50 +0300 Pascal Volk (66ac9aee0) man: doveadm-dump man page updated M doc/man/doveadm-dump.1.in 2014-09-10 14:08:58 +0300 Phil Carmody (b85ff8f5b) lib-test: don't use 0 for old size in realloc call We have the real size, use it. Signed-off-by: Phil Carmody M src/lib-test/test-common.c 2014-09-10 14:08:58 +0300 Phil Carmody (8fcf84e6b) lib-index: test suite memory leak cleanup So that memory leak checkers can be active while running the test suites, ensure that the suite itself doesn't leak. Signed-off-by: Phil Carmody M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c 2014-09-10 14:08:58 +0300 Phil Carmody (9f5db9cf8) lib: test-seq-range-array - clean up array after use Removes noise when memory-leak debugging during unit tests. Signed-off-by: Phil Carmody M src/lib/test-seq-range-array.c 2014-09-10 14:08:58 +0300 Phil Carmody (bf1683b08) lib: test-aqueue - clean up the test queue each time round the loop Helps keep noise out of memory leak debugging during unit tests. Signed-off-by: Phil Carmody M src/lib/test-aqueue.c 2014-09-10 14:08:58 +0300 Phil Carmody (0abffe970) lib: test-istream-concat - clean up our test-istreams This reduces noise when memory leak debugging the unit tests. Signed-off-by: Phil Carmody M src/lib/test-istream-concat.c 2014-09-10 13:59:31 +0300 Timo Sirainen (b38866de5) dsync: Reset I/O timeout every time when receiving input. This could have caused unwanted I/O timeouts when receiving large mails. M src/doveadm/dsync/dsync-ibc-stream.c 2014-09-09 17:26:52 -0600 Michael M Slusarz (e540115bc) pop3: Optimize POP3 UIDL processing when duplicate renaming is not active. M src/pop3/pop3-commands.c 2014-09-10 13:39:37 +0300 Stephan Bosch (fe2b0e3de) lib-http: client: Implemented support for connection failure backoff. M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c M src/lib-http/http-client.h 2014-09-10 13:39:37 +0300 Stephan Bosch (9d746c678) lib-http: client: Added support for attempting a single IP several times. Also limits the number of attempts when there are many IPs. M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2014-09-10 13:39:37 +0300 Stephan Bosch (e4322927c) lib-http: client: Tunnel connection failure would cause segfault. That happened because it tried to retry waiting requests, which makes no sense for a CONNECT tunnel. M src/lib-http/http-client-connection.c 2014-09-10 13:39:37 +0300 Stephan Bosch (564e117d8) lib-http: server: Added support for authentication. M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c M src/lib-http/http-server.h 2014-09-10 13:39:37 +0300 Stephan Bosch (0b5bdb5ba) lib-http: Implemented HTTP auth (RFC 7235). M src/lib-http/Makefile.am A src/lib-http/http-auth.c A src/lib-http/http-auth.h M src/lib-http/http-parser.c M src/lib-http/http-parser.h A src/lib-http/test-http-auth.c 2014-09-10 13:39:37 +0300 Stephan Bosch (394006e60) lib-http: server: Added assert to connect callback which makes sure request is either responded to or referenced. Earlier change added this only to callback for normal requests, but CONNECT should be handled the same in this respect. M src/lib-http/http-server-connection.c 2014-09-10 13:39:37 +0300 Stephan Bosch (22b6576f1) lib-http: server: Fixed delayed request destruction. Destruction was actually delayed indefinitely, because the delay flag was not reset. Obviously, this caused a memory leak. M src/lib-http/http-server-connection.c 2014-09-10 13:39:37 +0300 Stephan Bosch (9f8cef4cb) lib-http: server: Made sure destroy callback is called only once. M src/lib-http/http-server-request.c 2014-09-10 13:39:37 +0300 Stephan Bosch (0998d8af9) lib-http: server: Fixed segfault occurring in connection input handler. Request handlers could close and destroy the connection early. Fixed by holding a reference in the input handler. M src/lib-http/http-server-connection.c 2014-09-10 13:39:36 +0300 Stephan Bosch (1ec91e045) lib-http: server: Fixed handling of disconnection while request is being handled. This would cause an assert failure. M src/lib-http/http-server-connection.c 2014-09-09 17:09:30 +0300 Timo Sirainen (553f96fdb) lib-master: Fixed -c & -i command line parameters when config socket was readable. The config socket was always being read, even if another config file was attempted to be used. M src/lib-master/master-service-settings.c 2014-09-08 18:11:31 +0300 Timo Sirainen (aec1d6f3c) pop3c: Added missing support for pop3c_ssl=starttls M src/lib-storage/index/pop3c/pop3c-client.c 2014-09-08 13:39:25 +0300 Timo Sirainen (0917a1bdc) COPYING.LGPL: Updated FSF mailing address. Also some whitespace and line wrapping changes. Used the same file as http://www.gnu.org/licenses/lgpl-2.1.txt M COPYING.LGPL 2014-09-08 10:14:42 +0300 Timo Sirainen (7a88e726e) pop3c: If base_dir isn't set, lookup pop3c_host with regular blocking DNS lookup. M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-storage.c 2014-09-03 07:29:25 -0700 Timo Sirainen (d74a4126a) lib-storage: Compile fix to previous change The original patch was correct, my copy&pasting by hand just sucked. :) M src/lib-storage/mail-storage-settings.c 2014-09-03 06:29:52 -0700 Timo Sirainen (4c0e20db1) lib-storage: Fixed off-by-one memory allocation in dynamic settings allocation code. This didn't actually affect normal Dovecot builds, because there were always some storages with get_setting_parser_info=NULL that added the necessary padding. Patch by Michael M Slusarz M src/lib-storage/mail-storage-settings.c 2014-08-29 13:22:11 +0900 Timo Sirainen (ad396be1d) fs layout: Absolute paths as mailbox names shouldn't return index with INDEX=MEMORY M src/lib-storage/list/mailbox-list-fs.c 2014-08-29 02:14:43 +0900 Timo Sirainen (f90cbe597) lib-index, lib-storage: Fixed race conditions with deleting mailbox. Now only one process can successfully finish mailbox_mark_index_deleted(). M src/lib-index/mail-index-sync.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-file.c M src/lib-storage/index/index-sync.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2014-08-29 00:41:07 +0900 Timo Sirainen (92093e6d8) lib-fs: Keep a linked list of all files within fs to help debugging. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2014-08-28 23:52:46 +0900 Timo Sirainen (aaaa6e07c) Added UNLINK_EISDIR() helper macro. M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/list/mailbox-list-delete.c M src/lib/compat.h 2014-08-28 23:50:25 +0900 Timo Sirainen (77d122b07) maildir: Handle unlink()=EPERM failure the same as EISDIR. EPERM is POSIX, while EISDIR is Linux-specific. M src/lib-storage/index/maildir/maildir-sync-index.c 2014-08-28 22:44:18 +0900 Timo Sirainen (f1177d2dc) lib-fs: Fixed metawrap_fs.copy() to work with FS_PROPERTY_COPY_METADATA backends. This is done by simply copying the entire file with the metadata included instead of rewriting it. M src/lib-fs/fs-metawrap.c 2014-08-28 22:10:25 +0900 Timo Sirainen (9346506a9) Replaced dict_init() with dict_init_full() in various places. M src/lib-storage/index/index-attribute.c M src/plugins/last-login/last-login-plugin.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota.c 2014-08-28 21:57:34 +0900 Timo Sirainen (a6a6ad107) lib-dict: file backend now expands ~/ paths if home_dir setting is set. M src/lib-dict/dict-file.c M src/lib-dict/dict.h 2014-08-28 21:56:41 +0900 Timo Sirainen (39ea57172) lib-dict: Changed dict.init() API to take struct dict_settings and added dict_init_full(). This allows giving more settings to dict in future as needed. Unfortunately it also breaks the internal dict API, but there aren't really any plugins widely using it, so it's not a big problem. M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dict/dict-fs.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-private.h M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h 2014-08-28 22:06:29 +0900 Timo Sirainen (4d8d947a6) dict: Renamed struct dict_settings to dict_server_settings. M src/dict/dict-settings.c M src/dict/dict-settings.h 2014-08-27 07:53:39 +0300 Timo Sirainen (5308e1a2e) auth ldap: Compile fix to previous change.. Looks like on my local build system ldap wasn't enabled.. M src/auth/passdb-ldap.c 2014-08-27 13:38:53 +0900 Timo Sirainen (3f647ff6e) auth ldap: Don't require password field to exist for passdb lookups when auth_bind=yes. This should fix lmtp/doveadm proxy lookups with auth_bind=yes M src/auth/passdb-ldap.c 2014-08-26 16:00:37 +0900 Timo Sirainen (42630b23d) lib-http: Added http_client_request_get_method() M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2014-08-26 14:50:15 +0900 Timo Sirainen (d5091e531) auth: Allow passdb credentials lookup also with auth_bind=yes Although we probably can't lookup the password itself, we're also doing passdb lokups for proxying and other purposes. These lookups will still work as long as pass_attrs & pass_filter is specified. M src/auth/passdb-ldap.c 2014-08-21 20:56:40 +0200 Timo Sirainen (cc52f1943) doveadm exec: Show help if binary name wasn't given. M src/doveadm/doveadm.c 2014-08-21 20:54:46 +0200 Timo Sirainen (0c9ba0554) doveadm ring status: Help text was shown for wrong command. M src/doveadm/doveadm-director.c 2014-08-21 15:52:14 +0300 Timo Sirainen (8d14b5fc9) fts-lucene: Compiling fix for earlier change. M src/plugins/fts-lucene/lucene-wrapper.cc 2014-08-21 14:51:11 +0200 Timo Sirainen (a02d49764) fts-lucene: Don't crash when index building fails but we were still planning to optimize the index. M src/plugins/fts-lucene/fts-backend-lucene.c 2014-08-21 14:49:34 +0200 Timo Sirainen (61435a588) fts-lucene: When deleting corrupted lucene-indexes/ directory, don't rmdir it. This at least avoids errors with NFS when some of the files are still open inside it by other processes. M src/plugins/fts-lucene/lucene-wrapper.cc 2014-08-21 14:48:41 +0200 Timo Sirainen (4d72a9941) fts-lucene: Automatically close index after 2 minutes of idling. M src/plugins/fts-lucene/lucene-wrapper.cc 2014-08-21 14:46:47 +0200 Timo Sirainen (e8d556114) fts-lucene: Make sure Lucene indexes are always closed at deinit to avoid memory leaks. At least optimize leaked memory. M src/plugins/fts-lucene/lucene-wrapper.cc 2014-08-21 11:40:51 +0200 Timo Sirainen (ba9ec8849) redis: Added support for path=/unix/socket/path parameter instead of host/port. M src/lib-dict/dict-redis.c 2014-08-20 15:35:43 +0200 Timo Sirainen (f7b1126ce) pop3: Fixed potential assert-crash on disconnect. M src/pop3/pop3-client.c 2014-08-20 15:32:15 +0200 Timo Sirainen (ee77aba32) lmtp: Put back the deduplication code. Too dangerous after all to change it in the middle of v2.2.x. It's also not causing that much trouble even when it breaks.. M src/lmtp/client.h M src/lmtp/commands.c 2014-08-20 14:35:27 +0200 Timo Sirainen (b8a6abfd2) auth: protocol-specific username settings weren't used for userdb lookups. The username was set before the service-specific settings were looked up, so global settings were always used. This affected auth_default_realm, auth_username_translation and auth_username_format settings. M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c 2014-08-20 14:22:28 +0300 Timo Sirainen (aadd92e09) fts-lucene: If whitespace_chars was set, we may have ended up indexing some garbage words. The final \0 was replaced with space, so everything beyond that was also being indexed. M src/plugins/fts-lucene/lucene-wrapper.cc 2014-08-20 12:47:10 +0200 Timo Sirainen (5c5e738bc) lib-dict: Hide internal ioloop from async commit callbacks. (Redis & memcached fix) M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-redis.c 2014-08-20 12:36:37 +0200 Timo Sirainen (8aa049fd9) last-login plugin: Added ABI version check. M src/plugins/last-login/last-login-plugin.c 2014-08-20 12:35:27 +0200 Timo Sirainen (477082109) last-login: Fixed timeout leak at user deinit. M src/plugins/last-login/last-login-plugin.c 2014-08-20 12:07:19 +0200 Timo Sirainen (b6c6c4f64) lib-storage: Added data stack frame to mail_prefetch(). M src/lib-storage/mail.c 2014-08-20 11:19:15 +0200 Timo Sirainen (7103d82e6) doveconf: local and remote net/bits addresses were printed with /bits twice. M src/config/doveconf.c 2014-08-20 11:09:27 +0200 Timo Sirainen (3d4648e56) Several services weren't enforcing their process_limit=1 requirement. M src/indexer/indexer-settings.c M src/ipc/ipc-settings.c M src/replication/replicator/replicator-settings.c M src/stats/stats-settings.c 2014-08-19 23:53:18 +0200 Timo Sirainen (5a9c7366e) lib: Added unit tests for wildcard_match() M src/lib/Makefile.am M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-wildcard-match.c 2014-08-19 23:51:14 +0200 Timo Sirainen (6bde03b98) lib: wildcard_match() should have matched "*" wildcard against an empty "" string also. This fixes global ACL "*" matching the root namespace when creating new mailboxes. M src/lib/wildcard-match.c 2014-08-18 22:39:56 +0200 Timo Sirainen (9ffd3c8ca) director: Log a warning when using "director host flush" for all hosts. M src/director/doveadm-connection.c 2014-08-18 10:43:59 +0200 Timo Sirainen (935a2434c) istream-chain: Fixed crash caused by earlier io_add_stream() support change. M src/lib/istream-chain.c 2014-08-15 16:00:07 +0300 Timo Sirainen (1bb62819c) lib-http server: Use io_add_istream() to wait for the payload istream. This way the stream doesn't necessarily have to have a fd. M src/lib-http/http-server-response.c 2014-08-15 15:59:17 +0300 Timo Sirainen (f07090a16) lib-http: Added asserts to make sure CR or LF can't be added accidentally to HTTP headers. M src/lib-http/http-server-response.c 2014-08-15 15:22:46 +0300 Timo Sirainen (d295cff1b) istream-chain: Support using io_add_istream() for the chain stream. The callback is notified whenever new streams are added to the chain. It's currently not possible to have nonblocking istreams added to the chain and the callback being called when they have new data, but it would be possible to implement as well if needed at some point. M src/lib/istream-chain.c 2014-08-15 15:19:24 +0300 Timo Sirainen (cc80e458f) io_add_istream(): Allow the istream to be added even if it doesn't have fd. M src/lib/ioloop.c 2014-08-15 15:02:59 +0300 Phil Carmody (a9d6c2ebc) pop3: satisfy some strict parsing rules in RFC 1939 "Commands in the POP3 consist of a case-insensitive keyword, possibly followed by one or more arguments. All commands are terminated by a CRLF pair. Keywords and arguments consist of printable ASCII characters. Keywords and arguments are each separated by a single SPACE character." "A server MUST respond to an unrecognized, unimplemented, or syntactically invalid command by responding with a negative status indicator." Therefore the following commands must be rejected: LIST 2600Hz LIST 99 red balloons TOP 1 2 buckle-my-shoe Signed-off-by: Phil Carmody M src/pop3/pop3-commands.c 2014-08-15 15:02:59 +0300 Phil Carmody (797dc456a) pop3: fix msgnum/size parsers The outer if()s are completely unnecessary, and permit `num' to remain uninitialised. Spotted by clang's static analysis. Bug introduced in changeset: 17563:2ed2ab04b63d Note that the lack of a parameter from a broken client is no longer treated as "0". Before the bug was introduced: DELE -ERR There's no message 0. After this patch: DELE -ERR Invalid message number: Signed-off-by: Phil Carmody M src/pop3/pop3-commands.c 2014-08-15 14:48:08 +0300 Timo Sirainen (a69dfb7f6) Compiling fix for previous change.. M src/lib-storage/mail-error.h 2014-08-15 14:41:03 +0300 Timo Sirainen (2ed2459db) Handle "out of disk space" and "out of user quota" as separate cases. "Out of disk space" is a temporary error that should be logged as error and the failure should be sent to user as "Internal server error". Obsolete the use of MAIL_ERROR_NOSPACE and MAIL_ERRSTR_NO_SPACE. Use the clearer MAIL_ERROR_NOQUOTA and MAIL_ERRSTR_NO_QUOTA instead. M src/doveadm/doveadm-mail.c M src/imap/imap-commands-util.c M src/lda/main.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/mail-error.c M src/lib-storage/mail-error.h M src/lib/compat.h M src/lmtp/commands.c M src/plugins/quota/quota-storage.c M src/plugins/snarf/snarf-plugin.c M src/pop3/pop3-client.c 2014-08-15 14:05:21 +0300 Timo Sirainen (749f6acd6) ldap: Treat "No such object" errors to search the same as if no results were returned. Trying to look up a nonexistent base returns this error. M src/auth/db-ldap.c 2014-08-15 13:58:47 +0300 Timo Sirainen (e86708178) auth: Internal passdb failures were always failing the request even if another passdb succeeded later. M src/auth/auth-request.c 2014-08-13 13:34:22 +0300 Phil Carmody (833bed942) lib-http: server_request/connection - improve encapsulation It just feels a bit dirty having the request mess around with the connection's internals, have the connection manage its linked lists itself. No functional changes. Signed-off-by: Phil Carmody M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c 2014-08-13 12:51:41 +0300 Timo Sirainen (66b9c9afe) virtual plugin: Optimized memory allocation. Patch by Teemu Huovila. M src/plugins/virtual/virtual-sync.c 2014-08-12 19:30:37 +0300 Timo Sirainen (33326dbee) Compiler warning fix M src/lib-storage/mail-storage.c 2014-08-12 19:24:10 +0300 Timo Sirainen (e5536fd67) virtual plugin: Handle physical mailbox deletion while virtual mailbox is open. M src/plugins/virtual/virtual-sync.c 2014-08-12 19:12:04 +0300 Timo Sirainen (139e39b12) mailbox_list_index=yes: Make sure storage error doesn't change when updating STATUS info. M src/lib-storage/list/mailbox-list-index-status.c 2014-08-12 19:05:14 +0300 Timo Sirainen (97ae33602) lib-storage: Added mail_storage_last_error_push/pop() M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2014-08-12 18:48:03 +0300 Timo Sirainen (5948e3e12) virtual plugin: Optimized syncing a large number of physical mailboxes. Especially when the number of mails was large the old code took a lot of CPU time. Based on patch by Teemu Huovila. M src/plugins/virtual/virtual-sync.c 2014-08-12 14:44:11 +0300 Timo Sirainen (80587a044) stats: Added num_connected_sessions for domains and IPs. M src/stats/client-export.c M src/stats/mail-domain.c M src/stats/mail-domain.h M src/stats/mail-ip.c M src/stats/mail-ip.h M src/stats/mail-session.c M src/stats/mail-stats.h M src/stats/mail-user.c M src/stats/mail-user.h 2014-08-12 13:12:01 +0300 Timo Sirainen (14bd2410d) lib-http server: Delay calling the request's destroy callback until handle_request() callback is finished. This simplifies the code in the handle_request() so it doesn't need to keep track of whether the response is already submitted or not. M src/lib-http/http-server-connection.c M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c 2014-08-12 12:39:46 +0300 Timo Sirainen (a078043bc) fts-lucene: If lucene-indexes dir is unexpectedly lost, rescan when expunge log update fails. This mainly fixes a repeating error about failing to open the expunge log. It should happen only if dovecot.index thinks that the mailbox is indexed while in reality the entire lucene-indexes directory doesn't exist. M src/plugins/fts-lucene/fts-backend-lucene.c 2014-08-11 19:30:15 +0300 Timo Sirainen (9929820d5) ostream-buffer: Allow modifying the buffer outside ostream, unless o_stream_seek() is used. Now we'll just append to the end of the buffer instead of forcibly trying to write at the offset where the last ostream write ended. M src/lib/ostream-buffer.c 2014-08-11 19:19:45 +0300 Timo Sirainen (3b4374ee8) istream-callback: Added i_stream_callback_get_buffer(). M src/lib/istream-callback.c M src/lib/istream-callback.h 2014-08-11 17:43:25 +0300 Timo Sirainen (605ebd475) lib: Added istream-callback API M src/lib/Makefile.am A src/lib/istream-callback.c A src/lib/istream-callback.h 2014-08-11 16:08:44 +0300 Timo Sirainen (36ec5b36b) Compiler warning fix M src/lib/ostream-file.c 2014-08-11 15:55:03 +0300 Timo Sirainen (bbda51eb3) lib-http server: Comment updates M src/lib-http/http-server-connection.c M src/lib-http/http-server.h 2014-08-11 15:54:43 +0300 Timo Sirainen (46631c1d9) lib: io_stream_copy() no longer attempts to read full block sizes from input. Although that may be more efficient for writing (to files), it causes unnecessary work for the input stream. The writing part should also be optimized anyway if the caller corks the output stream. M src/lib/iostream-temp.c M src/lib/ostream-file.c M src/lib/ostream-private.h M src/lib/ostream.c 2014-08-11 15:47:57 +0300 Timo Sirainen (93ed69606) lib-http server: Added http_server_request_is_finished() This is intended mainly to be used in asserts and such checks. M src/lib-http/http-server-request.c M src/lib-http/http-server.h 2014-08-11 15:46:29 +0300 Timo Sirainen (91a482473) lib-http: Call the destroy callback also when request is aborted. M src/lib-http/http-server-request.c 2014-08-11 15:45:21 +0300 Timo Sirainen (50ba4fe3a) lib-http: Don't leak memory if HTTP client disconnects unexpectedly. http_server_connection_disconnect() has several cleanup calls, which weren't done because closed=TRUE was set explicitly and that skipped the cleanup. M src/lib-http/http-server-connection.c 2014-08-11 14:18:53 +0300 Timo Sirainen (faa8995f1) lib-http server: Call request destroy callback immediately after response is finished sending. Regardless of any other references to the request. M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c M src/lib-http/http-server.h 2014-08-11 13:32:06 +0300 Timo Sirainen (ace2d837c) lib-mail: Added comments to message-parser.h M src/lib-mail/message-parser.h 2014-08-11 13:30:25 +0300 Timo Sirainen (7b61cb25a) lib-mail: Message parser now always returns block->data=NULL when it's not supposed to be used. M src/lib-mail/message-parser.c 2014-08-09 10:10:34 +0300 Timo Sirainen (4d981bcd0) doveadm fs put: Added -h parameter to specify the file's hash. The hash (in hex) is automatically detected to be either MD5 or SHA256 based on its size. If the fs backend doesn't support the hash it'll fail. Otherwise it'll make sure that the written file matches the given hash. M src/doveadm/doveadm-fs.c 2014-08-08 16:27:40 +0300 Timo Sirainen (a693adf01) fts: fts_no_autofuzzy shouldn't disable fuzzying when FUZZY search parameter is set. M src/plugins/fts/fts-storage.c 2014-08-08 16:20:31 +0300 Timo Sirainen (117fb8c00) fts: Added fts_no_autofuzzy setting to require exact matches for found results. This is done by using the FTS search results as only filters on which the regular non-FTS search is done. M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c M src/plugins/fts/fts-api.h M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h 2014-08-08 15:15:03 +0300 Timo Sirainen (212a8a251) doveadm search: If mailbox GUID lookup fails, print an error. M src/doveadm/doveadm-mail-search.c 2014-08-08 14:54:46 +0300 Timo Sirainen (762d8af0b) virtual: Allow "*" to match inbox=yes namespace if there's otherwise no prefix="" namespace. M src/plugins/virtual/virtual-config.c 2014-08-08 14:54:20 +0300 Timo Sirainen (676a42c1d) virtual: Make sure virtual mailbox doesn't try to access itself as a backend mailbox. M src/plugins/virtual/virtual-config.c 2014-08-08 13:46:05 +0300 Timo Sirainen (dac7e6a33) lib-storage: mailbox_get_*status(STATUS_HIGHESTMODSEQ) now enables CONDSTORE feature. This makes sure that the highestmodseq is added to the mailbox list index if not already there. M src/lib-storage/mail-storage.c 2014-08-08 13:32:08 +0300 Timo Sirainen (074055dad) virtual: Make sure modseqs are always enabled for backend mailboxes. mailbox_get_status() wasn't adding a missing highestmodseq otherwise to the mailbox list index. M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c 2014-08-06 16:39:27 +0300 Timo Sirainen (78d1160c7) auth: passdb static assumed that missing "password" field meant empty password Missing password should be an error unless nopassword is set. If an empty password is wanted then "password=" can be used. M src/auth/passdb-static.c 2014-08-05 20:23:32 +0200 Stephan Bosch (b37e11d37) lib-http: server: Fixed server waiting for payload of already failed request. M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c 2014-08-05 17:43:31 +0200 Timo Sirainen (738561f5f) lib-http server: Require handle_request() to either send a response or reference the request. This should make it more difficult to accidentally forget to send a response and cause a hang. Currently this assert-crashes, although it would have been possible to make it return some internal error instead also. M src/lib-http/http-server-connection.c M src/lib-http/http-server.h 2014-08-05 17:37:25 +0200 Timo Sirainen (1e9296de3) lib-http server: Made http_server_request_[un]ref() public. Also http_server_request_unref() now returns if this was the last reference or not. M src/lib-http/http-server-private.h M src/lib-http/http-server-request.c M src/lib-http/http-server.h 2014-08-05 16:28:15 +0200 Timo Sirainen (b97937615) lib-http server: Create a new data stack frame for all the callbacks. M src/lib-http/http-server-connection.c 2014-08-05 16:22:43 +0200 Timo Sirainen (85f3bd592) lib-http server: Added http_server_request_get_response() Also make sure that only a single response can be created for a request. M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c M src/lib-http/http-server.h 2014-08-05 16:09:44 +0200 Timo Sirainen (14c0ef17f) lib-http server: Removed extra "return;" that was never called. M src/lib-http/http-server-connection.c 2014-08-05 16:07:25 +0200 Timo Sirainen (95e0b82fd) lib-http server: Removed "bool close" parameters in favor of _close() functions. Most callers don't want to close the connection so it's an extra parameter usually. Also it's difficult to remember what the TRUE/FALSE means so it's easy to cause bugs by copy&pasting the code. http_server_request_fail() will also now forcibly close the connection if conn->input_broken is set. M src/lib-http/http-server-connection.c M src/lib-http/http-server-request.c M src/lib-http/http-server-response.c M src/lib-http/http-server.h 2014-08-04 14:05:51 +0200 Timo Sirainen (877912710) expire plugin: Fixed crash at deinit if expire_dict initialization failed. M src/plugins/expire/expire-plugin.c 2014-08-01 17:17:53 +0300 Timo Sirainen (9008daea4) imap-urlauth: Error message typofix. Patch by Jelmer Vernooij M src/imap-urlauth/imap-urlauth-worker.c 2014-07-31 15:58:18 +0300 Timo Sirainen (f53915d18) lib-mail: rfc822_parse_dot_atom() didn't return error if "." wasn't followed by ATEXT It simply skipped over the invalid character and continued. M src/lib-mail/rfc822-parser.c 2014-07-30 15:01:29 +0300 Phil Carmody (ee2298ffa) lib: test-data-stack - add some fatal tests. Extra caution is necessary as data-stack is such a fundamental component. All of the brokenness that we add must be undone as soon as possible, or there will be an endless loop of catastrophic errors. In order to avoid that, at least try to detect some issues, and abort as quickly as possible. Alas, due to the reliance of these tests on DEBUG code, if that's not set, this test is a no-op. Signed-off-by: Phil Carmody M src/lib/test-data-stack.c M src/lib/test-lib.c M src/lib/test-lib.h 2014-07-30 15:01:29 +0300 Phil Carmody (8bec19723) lib: test fatal cases for printf_format_fix Signed-off-by: Phil Carmody M src/lib/test-lib.c M src/lib/test-lib.h M src/lib/test-printf-format-fix.c 2014-07-30 15:01:29 +0300 Phil Carmody (8b2839664) lib: test-lib - add a real fatal test for mempool-alloconly Crazily huge memory allocation must fail. Signed-off-by: Phil Carmody M src/lib/test-lib.c M src/lib/test-lib.h M src/lib/test-mempool-alloconly.c 2014-07-30 15:01:29 +0300 Phil Carmody (a4e0dc5b1) lib-test: permit tests of fatal conditions Some functions have no mechanism of reporting an error, and mustn't continue, so fatality is the only way out. (E.g. memory allocation failures.) This addition is for those situations. Semantics of failure tests are very different from normal tests: - The test function must have the following prototype: enum fatal_test_state test_fatal_things(int index); - The index it will be called with starts at 0, and increments each time. - It must call test_start() at the start of its first call. - Apart from its final call, it must call a function it expects to trap the fatal error handler. If that fails to trap, it must return FATAL_TEST_FAILURE - After returning FATAL_TEST_FAILURE, it will continue to be called as normal. - When there are no more tests to perform, it must clean up, call test_end() and return FATAL_TEST_FINISHED. It will not be called again. - If it detects errors in this protocol, it must not i_assert(), as that will be treated as an expected fatal, it must return FATAL_TEST_ABORT. It will then not be called again. It must not call test_end() in this case. Signed-off-by: Phil Carmody M src/lib-test/test-common.c M src/lib-test/test-common.h 2014-07-29 17:27:24 +0300 Timo Sirainen (79ce5b0d2) quota: Avoid assert-crash in Maildir++ quota if backend doesn't support control dirs. We'll delay looking up the control dir until we've checked that the storage is Maildir. M src/plugins/quota/quota-maildir.c 2014-07-29 14:27:49 +0300 Timo Sirainen (531b96353) libressl fix: Fixed compiling with SSL compression disabled. Patch by Pascal Stumpf M src/lib-ssl-iostream/iostream-openssl.c M src/login-common/ssl-proxy-openssl.c 2014-07-29 14:25:13 +0300 Timo Sirainen (5ea089e1b) libressl fix: Check for SSL_CTRL_SET_ECDH_AUTO macro instead of OpenSSL version number Patch by Hanno Böck M src/lib-ssl-iostream/iostream-openssl-context.c M src/login-common/ssl-proxy-openssl.c 2014-07-29 13:58:10 +0300 Timo Sirainen (003385823) mbox: Fixed infinite looping and other incorrectness in istream-raw-mbox. This was caused by the recent istream invalidation checks in i_stream_get_data(). M src/lib-storage/index/mbox/istream-raw-mbox.c 2014-07-29 12:47:47 +0300 Timo Sirainen (bf3544900) last-login plugin: Added missing configure and Makefile entries. M configure.ac M src/plugins/Makefile.am 2014-07-28 16:50:47 +0300 Phil Carmody (c35c0f722) lib-http: http-server-connection - don't resume closed connections Signed-off-by: Phil Carmody M src/lib-http/http-server-connection.c 2014-07-28 16:49:47 +0300 Phil Carmody (4de995007) lib-imap: imap-utf7 - only encode in-range 7-bit values 0x01-0x1F and 0x7f-... must be mBASE64 encoded. Signed-off-by: Phil Carmody M src/lib-imap/imap-utf7.c 2014-07-28 16:49:47 +0300 Phil Carmody (585017cae) lib-imap: imap-utf7 - reject encoded simple ASCII "Modified BASE64 MUST NOT be used to represent any printing US-ASCII character which can represent itself." "The character "&" (0x26) is represented by the two-octet sequence "&-"" Therefore any mBASE64 sequence containing any character between 0x20 and 0x7e is invalid. Signed-off-by: Phil Carmody M src/lib-imap/imap-utf7.c 2014-07-28 16:49:47 +0300 Phil Carmody (807d831b2) lib-imap: imap-utf7 - reject bogus characters in the mUTF7 Only 0x20..0x7e are permitted, as "All other characters (octet values 0x00-0x1f and 0x7f-0xff) are represented in modified BASE64, ...". Signed-off-by: Phil Carmody M src/lib-imap/imap-utf7.c 2014-07-28 16:49:47 +0300 Phil Carmody (50052bca9) lib-imap: test-imap-utf7 - comprehensive test suite Several MUST NOTs or other standards violations were not being trapped. test_imap_utf7_unnecessary() tests: Modified BASE64 MUST NOT be used to represent any printing US-ASCII character which can represent itself. test_imap_utf7_bad_ascii() tests: All other characters (octet values 0x00-0x1f and 0x7f-0xff) are represented in modified BASE64, ... test_imap_utf7_non_utf16() tests that data containing a single straggling octet is trapped. test_imap_utf7_by_example() and test_imap_utf7_ucs4_cases() are just the previous test suite split into 2 smaller tests. Signed-off-by: Phil Carmody M src/lib-imap/test-imap-utf7.c 2014-07-28 16:49:47 +0300 Phil Carmody (68828bda5) lib-imap: test-imap-utf7 - migrate to test_assert_idx Signed-off-by: Phil Carmody M src/lib-imap/test-imap-utf7.c 2014-07-28 16:49:47 +0300 Phil Carmody (83060e2c2) lib: test-str-sanitize - tighten tests Check that the identical string is returned in the no-change case, not just a copy. Signed-off-by: Phil Carmody M src/lib/test-str-sanitize.c 2014-07-28 16:45:33 +0300 Phil Carmody (0db47f171) lib-test: make internal helpers static These functions should only be called from within test_run(), as some of the test-suite sanity checks can be subvirted if these are exposed. Signed-off-by: Phil Carmody M src/lib-test/test-common.c M src/lib-test/test-common.h 2014-07-28 16:45:33 +0300 Phil Carmody (c447f8985) lib-test: quieten the random seed printfs We only need to know the seed once. Signed-off-by: Phil Carmody M src/lib-test/test-common.c 2014-07-28 16:45:33 +0300 Phil Carmody (0a568c1e8) lib: compile time checks for buffer creation Ensure the data buffer has as much space as the size parameter claims. This uses the strictest test GCC provides - the smallest containing object, and returning 0 for unknown size. Signed-off-by: Phil Carmody M src/lib/buffer.c M src/lib/buffer.h 2014-07-28 16:45:33 +0300 Phil Carmody (61dd0a240) lib: data-stack - start sentry checks immediately after the reserved buffer Our sentries are written with byte-precision, no need to round up before doing the checks. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (c538e7faa) lib: data-stack - add DEBUG size and sentry updating to t_try_realloc Without this, t_pop() will report errors. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (f9a1f7b60) lib: test-data-stack - add realloc tests These will fail noisily with a DEBUG build until the realloc/DEBUG bug is fixed. M src/lib/test-data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (6f8cb3859) lib: data-stack - fix incorrect pointer comparison in t_try_realloc in DEBUG builds When trying to work out if it's a valid realloc, we need to remember that in DEBUG builds, we have hidden a size value (in a MEM_ALIGNED space) before the pointer we return. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (50a0a88ee) lib: data-stack - fix realloc/lowwater bug If DEBUG is enabled, then it can try to look past the low-water mark as the low-water mark wasn't moved during successful reallocs. This condition is detected, and causes a panic. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (8aa1afdcd) lib: data-stack - t_try_realloc get alloc size right in DEBUG builds Also introduce a helper variable for the common expression for readability. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (395a730fa) lib: data-stack - helper for last alloc ends at block.data+(size-left) Less to read, and less noisy. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (f9bee0806) lib: data-stack - add vital sanity-preserving assert to t_pop If something has re-ordered those two offsets, the following memset will explode. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (f0a98b359) lib: data-stack - pull common code out of if/else branches in t_malloc_real Once the new block is set up nicely empty for use, it can be used exactly like an old block that has enough space - so just merge the code paths. (This changeset best viewed ignoring whitespace.) Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (8dabb70ca) lib: data-stack - reorder full current block code Make the "enough space" and "block is full" branches in t_malloc_real have the same code structure for parallelism. The 'block' variable is only needed very locally, so shrink its scope, and avoid its use once it is assigned to current_block, use that instead. Compacter readable expressions have been favoured at the expense of longer lines (which will soon shrink). Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (e964357ce) lib: data-stack - helper macro for requested/allocated size Rather than #if/#else/#endif around such calculations, or even having the possibility to mistype such expressions, just extract the calculation into a helper macro defined appropriately for the DEBUG mode. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (d9d576a2f) lib: data-stack - disambiguate sizes in t_pop_verify In DEBUG mode, the allocated size is bigger than the requested size, so rename the variable to reflect its real meaning, and move it into a tighter scope in the process. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (992a1726a) lib: test-data-stack - too important a library not to be thrashed hard OK, it's thrashed a bit by other tests such as aqueue, str, etc., but these tests attempt to probe all corner cases given detailed knowledge of the limits of the block/frame implementation. At the moment, no realloc functionality is tested, as with DEBUG builds they would fail very noisily. Signed-off-by: Phil Carmody M src/lib/Makefile.am A src/lib/test-data-stack.c M src/lib/test-lib.c M src/lib/test-lib.h 2014-07-28 16:45:33 +0300 Phil Carmody (801d6aa65) lib: data-stack - simplify expressions in data_stack_last_buffer_reset Noisy expression used more than once, give it a meaningful name. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (437d3c470) lib: data-stack - enable tighter sanity checks on stack_block allocations The canary doesn't have to be NULL. That's only effective if it will be read and dereferenced as a pointer. If used as an integer, it's a perfectly boring one, and not likely to draw attention to itself. Once the canary is in place, at least in debug mode, we can check it in every function as a sanity check. Make our poison stand out from other poison used elsewhere in the code. Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (5517afec3) lib: cosmetic - whitespace cleanup in allocator/memory-related code Indentation used spaces. Some trailing whitespace found. $ git diff -w $ Signed-off-by: Phil Carmody M src/lib/data-stack.c M src/lib/data-stack.h M src/lib/imem.c M src/lib/mempool-alloconly.c M src/lib/mempool-system.c M src/lib/mempool.h 2014-07-28 16:45:33 +0300 Phil Carmody (eb8d31180) lib: add rudementary statistics gathering to data-stack debugging These currently just enhance the overly-large alloc_size warning message in t_malloc_real() to show what the history of allocations is. New warnings look like this: Warning: Growing data stack by 32768 as 'test_run_funcs' reaches 16416 bytes from 202 allocations. Future possible directions: t_malloc_real() could be further modified to identify badly-behaved regions of code that allocate lots of smaller blocks as it happens (which might be noisy). t_pop() could be modified to detect such code after it exits its block (so just one warning per instance of misbehaviour). Signed-off-by: Phil Carmody M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (053e605c3) lib: add markers to data-stack debug prints Only the DEBUG code will have access to the frame's marker. M src/lib/data-stack.c 2014-07-28 16:45:33 +0300 Phil Carmody (33b0119d4) lib: add identifying markers to data-stack frames Add a string parameter to t_push() so that in DEBUG mode, misbehaviour inside a stack level can be blamed on someone. Default the T_BEGIN macro to automatigally use __FUNCTION__ or __FILE__:__LINE__ as that identifier, therefore no clients of those macros need to change. ioloop used t_push() directly as it wanted customised diagnostic strings. To preserve this friendliness, also introduce a t_push_named() which takes a format string with paramters. Apart from the unused paramter, a non-DEBUG build should see no changes. Signed-off-by: Phil Carmody M src/lib/data-stack.c M src/lib/data-stack.h M src/lib/ioloop.c 2014-07-28 16:40:25 +0300 Timo Sirainen (26f14cde1) doveadm: Added dict commands to access lib-dict via command line. For debugging and data dumping purposes. M src/doveadm/Makefile.am A src/doveadm/doveadm-dict.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h 2014-07-28 15:14:17 +0300 Timo Sirainen (625042f95) lib-storage: Don't allow '/' for filesystem based mailbox list backends if their internal separator isn't '/'. Basically this means that Maildir++ shouldn't be allowed to create mailboxes with '/' in the name. M src/lib-storage/mailbox-list.c 2014-07-25 14:10:04 +0300 Timo Sirainen (3008b3090) last-login plugin added. It updates user's login timestamp to configured dict. Example config: plugin { last_login_dict = redis:host=127.0.0.1:port=6379 #last_login_key = last-login/%u # default } A src/plugins/last-login/Makefile.am A src/plugins/last-login/last-login-plugin.c A src/plugins/last-login/last-login-plugin.h 2014-07-25 13:35:57 +0300 Timo Sirainen (330096f20) lib-storage: Set mail_user->session_id before calling mail_user_init() M src/lib-storage/mail-storage-service.c 2014-07-21 11:00:59 +0300 Timo Sirainen (ee60381fe) lib-http: Fixed linking test programs. M src/lib-http/Makefile.am 2014-07-21 10:54:05 +0300 Stephan Bosch (3fcb3d2d1) lib-http: Added initial support for server-side HTTP API. M TODO M src/lib-http/Makefile.am A src/lib-http/http-server-connection.c A src/lib-http/http-server-private.h A src/lib-http/http-server-request.c A src/lib-http/http-server-response.c A src/lib-http/http-server.c A src/lib-http/http-server.h 2014-07-21 10:53:19 +0300 Timo Sirainen (abdb48272) rawlog: Added -i parameter to include the remote IP address in the filename. M src/util/rawlog.c 2014-07-11 16:49:35 +0300 Timo Sirainen (22228926a) mailbox_list_index=yes: Don't update INBOX's STATUS information to index. This should reduce disk I/O M src/lib-storage/list/mailbox-list-index-status.c 2014-07-11 14:27:52 +0300 Timo Sirainen (3febd15e4) auth: If userdb prefetch is configured wrong, return temporary failure instead of "user not known" M src/auth/userdb-prefetch.c 2014-07-11 14:17:17 +0300 Timo Sirainen (31fa52902) lib-http: Debug log now includes where HTTP requests spent their time on. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2014-07-11 12:10:02 +0300 Timo Sirainen (255c47a46) lib: Added fd=-1 assert to i_close_fd() macro. This way we'll see clearly where it fails, instead of just seeing assert in close_keep_errno() without an easy way to see where it crashed. M src/lib/macros.h 2014-07-11 11:14:41 +0300 Timo Sirainen (909701481) lib: ioloop-epoll didn't correctly check if there were any IO events. Alternatively we could have checked for array_count(&ctx->events) > ctx->deleted_count, but this code is a bit more understandable. This change doesn't actually fix any proper bugs, it just causes the process to crash instead of going to infinite wait loop. M src/lib/ioloop-epoll.c 2014-07-11 00:20:41 +0300 Timo Sirainen (301b1524a) lib: file_*_lock() with flock() timeouts should have returned errno=EAGAIN (Instead of EINTR.) M src/lib/file-lock.c 2014-07-10 18:31:10 +0300 Timo Sirainen (a192134d1) lmtp: Remove <> from Delivered-To: header. This annoyingly changes Dovecot behavior in the middle of v2.2.x series, but the earlier value was definitely wrong.. Perhaps we still need to provide a setting for this, but that's pretty annoying as well. M src/lmtp/commands.c 2014-07-10 18:17:44 +0300 Timo Sirainen (2290ecac1) lib: Compiler warning fixes for 32bit systems M src/lib/test-istream-tee.c 2014-07-10 15:59:53 +0300 Phil Carmody (755a39d2c) lib: test-istream-tee - randomise which tee stream lags behind the others Just in case there's something special about the start or the end of the list of children, make each file be the one that lags behind the others. Signed-off-by: Phil Carmody M src/lib/test-istream-tee.c 2014-07-10 15:59:53 +0300 Phil Carmody (5e821185c) lib: test-istream-tee - more randomisation to the tests Signed-off-by: Phil Carmody M src/lib/test-istream-tee.c 2014-07-10 15:59:53 +0300 Phil Carmody (0539ac5ef) lib: test-istream-tee - verify _read returns correct values after _set_size() Previously, only an increase of 1 in the size was tested. This ensures that 0 and numbers > 1 are also tested. Also add _idx to the asserts, so we know where in the loop it failed. Signed-off-by: Phil Carmody M src/lib/test-istream-tee.c 2014-07-10 15:59:53 +0300 Phil Carmody (1d020f1c1) lib: test-istream-concat - add simultanious limit streams back into the mix Return to the previous complex nested stream-type case. 1 time in 10, it tests the simple case of: test_stream \ test_stream -}- concat_stream test_stream / (2-11 of these) 9 times in 10, it tests this configuration instead: test_stream \ / limit_stream test_stream -}- concat_stream {- limit_stream test_stream / \ limit_stream (2-11 of these) (1-9 of these) Since 31efe2d04793 lib: istream-concat read() returned -2 too early., all tests pass every time. Signed-off-by: Phil Carmody M src/lib/test-istream-concat.c 2014-07-10 15:59:53 +0300 Phil Carmody (a028ac787) lib: test-istream-concat - test only concat, not simultanious limit streams Test just concat functionality in this unit test. Simultanious access of limit streams can be tested elsewhere. Without the fix in: 31efe2d04793 lib: istream-concat read() returned -2 too early. The failure previously seen in test-istream-concat would be still reproducable: test-istream-concat.c:84: Assert failed: size >= TEST_MAX_BUFFER_SIZE istream concat random ................................................ : FAILED test: random seed #1 was 1403118493 Signed-off-by: Phil Carmody M src/lib/test-istream-concat.c 2014-07-10 15:40:08 +0300 Timo Sirainen (392538eef) lib-fs: Added FS_PROPERTY_COPY_METADATA and fs_set_metadata() tracking. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2014-07-09 15:55:59 +0300 Timo Sirainen (02cc28525) lib-fs: Added username and session_id to struct fs directly. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2014-07-09 15:24:21 +0300 Timo Sirainen (11538e79a) lib-fs: Added fs_settings.username and .session_id M src/lib-fs/fs-api.h M src/lib-storage/mailbox-list.c 2014-07-09 15:20:59 +0300 Timo Sirainen (bff606130) lib-storage: Added struct mail_user.session_id M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.h 2014-07-09 10:55:27 +0300 Stephan Bosch (abc818041) lib-http: Made sure that connections that are still connecting to the server aren't marked as idle. M src/lib-http/http-client-connection.c 2014-07-07 16:21:08 +0300 Timo Sirainen (082e82792) lib-index: Don't update log_file_tail_offset unnecessarily. Update it only if we're already writing to transaction log anyway or if we're required to update the offset because mail_index_sync_commit() has increased it past non-external transactions (this is especially important with mdbox map index). M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log.h M src/lib-index/test-mail-transaction-log-append.c 2014-07-07 13:24:22 +0300 Timo Sirainen (a09ff38dc) lib-storage: Minor code cleanup to istream-mail. eof=TRUE shouldn't be possible with ret=-2, so this just makes it clearer what the code's intention is. M src/lib-storage/index/istream-mail.c 2014-07-07 13:15:33 +0300 Timo Sirainen (66dc739bb) lib: i_stream_read_copy_from_parent() needs to update access counter also when returning -2 This finishes the 467a4d19f873 fix. M src/lib/istream.c 2014-07-06 19:08:59 +0300 Timo Sirainen (d979c1179) virtual: Fixed assert-crashes where trying to open an already opened backend mailbox. M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-storage.c 2014-07-04 15:33:12 +0300 Timo Sirainen (50332744d) lib: istream-tee wasn't returning data correctly always. This fixes an assert-crash in istream-tee.c. (Hopefully it was always assert-crashing instead of returning corrupted data.) M src/lib/istream-tee.c 2014-07-04 14:48:44 +0300 Phil Carmody (e9baf4071) lib: failures - cosmetic write_full cleanup Error message should have a trailing newline. Use the POSIX macro for stderr's file number, rather than its numeric value. Signed-off-by: Phil Carmody M src/lib/failures.c 2014-07-04 14:18:25 +0300 Phil Carmody (f34e5fbfc) config: parser - trivial error message typo Signed-off-by: Phil Carmody M src/config/config-parser.c 2014-07-04 14:17:54 +0300 Timo Sirainen (0c7087c65) lmtp: Small code cleanup M src/lmtp/client.h M src/lmtp/commands.c 2014-07-04 14:16:16 +0300 Timo Sirainen (adde698a4) imap: If FETCH fails because mail has already been expunged, don't log an error. M src/imap/imap-fetch-body.c 2014-07-04 14:15:41 +0300 Timo Sirainen (eed20b28d) lib-storage: Bodystructure parsing flags weren't updated correctly on error conditions. This fixes an assert-crash sometimes when mail parsing failed. M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c 2014-07-04 14:14:21 +0300 Timo Sirainen (bc15c6934) lib-storage: istream-mail updates mail->expunged if it notices ENOENT from parent stream. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/istream-mail.c 2014-07-04 14:01:53 +0300 Timo Sirainen (d052dcfff) lib-storage: Log mail istream read failures in one place. Also handle ENOENT errors by checking if the mail has already been expunged, and if so don't log an error, just return "mail is already expunged" error to client. M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2014-07-04 13:16:59 +0300 Timo Sirainen (b3f4c31f1) When creating istream-error, give an error string whenever possible. M src/lib-fs/fs-posix.c M src/lib-imap-storage/imap-msgpart.c M src/lib/iostream-temp.c 2014-07-04 13:16:01 +0300 Timo Sirainen (3a06d97ce) lib-storage: If mail body reading failed, the error message may have contained only minimal errno string. Even though the istream could have had a much better internal error message. So show it. M src/lib-storage/index/index-mail.c 2014-07-04 11:48:27 +0300 Timo Sirainen (62ff6002b) lib-dict: Removed NFS flushing from dict-file backend. M src/lib-dict/dict-file.c 2014-07-03 22:24:05 +0300 Timo Sirainen (99e11aeca) mbox: If GUID lookup fails because mbox_min_index_size skipped indexes, say so in error message. M src/lib-storage/index/mbox/mbox-storage.c 2014-07-03 22:17:49 +0300 Timo Sirainen (fa96f616b) acl: Global ACLs now support "patterns with spaces inside quotes" M src/plugins/acl/acl-global-file.c 2014-07-03 22:16:48 +0300 Timo Sirainen (8d834fd10) acl: Oops, ignore_acls check was reversed. M src/plugins/acl/acl-mailbox.c 2014-07-03 21:55:31 +0300 Timo Sirainen (b045cb4df) lib-compression: Compression ostreams may have caused parent ostream to use too much memory. M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c 2014-07-03 21:54:52 +0300 Timo Sirainen (d691782ae) lib: Added o_stream_flush_parent_if_needed() for wrapper ostreams. M src/lib/ostream-private.h M src/lib/ostream.c 2014-07-03 20:42:08 +0300 Timo Sirainen (7d6d78822) acl: Create struct acl_mailbox also for shared root namespace mailboxes. This fixes crashes where imap_acl code attempts to access ACLs for nonexistent mailboxes inside shared root namespace. Alternatively the imap_acl plugin could have checked the nonexistence of ACLs but this is probably easier and more guaranteed to work. M src/plugins/acl/acl-mailbox.c 2014-07-03 20:28:16 +0300 Timo Sirainen (c61164c50) lmtp: Removed code that attempts to deduplicate mail files by copying them between user mailboxes. This sometimes started failing if the mail that was being used for copying was deleted by the user. There's no good way for lmtp code to fix that situation. If deduplication is needed, it could be implemented in a more generic way inside mailbox_copy() where after initial copy it would store the destination struct mail to src_mail->last_copy_dest_mail. If another mail is copied, the last_copy_dest_mail could be attempted to be used for the copying and if that doesn't work it would fallback to regular copying. This should probably be attempted only for lda/lmtp processes as it would just cause extra overhead for others. M src/lmtp/client.h M src/lmtp/commands.c 2014-07-03 19:34:57 +0300 Timo Sirainen (7103db837) Compile fix for old systems without SSL_OP_NO_COMPRESSION M src/lib-ssl-iostream/iostream-openssl-context.c M src/login-common/ssl-proxy-openssl.c 2014-07-03 19:27:45 +0300 Timo Sirainen (761078be4) fts-lucene: Delay initialization to fix assert-crash with mbox M src/plugins/fts-lucene/fts-backend-lucene.c 2014-07-03 19:17:16 +0300 Phil Carmody (9864489d1) openssl: optionally disable TLS compression Make ssl compression optional, but enabled by default. Other ssl options might be tweakable in the future, so have a single ssl_options string, and explode it into individual flags. (Compare postfix configuration.) Based on an idea by Andreas Schulze Signed-off-by: Phil Carmody M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h M src/lib-master/master-service-ssl.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-ssl.h M src/login-common/ssl-proxy-openssl.c 2014-07-03 19:12:02 +0300 Timo Sirainen (14b551180) lib-storage: Added mail_namespace_is_shared_user_root() and used it where useful. Most importantly this should fix a crash in ACL plugin where type=shared namespace was used without any kind of per-user prefix/location (i.e. it probably should have been a type=public namespace instead). M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h M src/plugins/acl/acl-mailbox.c 2014-07-03 19:10:33 +0300 Timo Sirainen (e66e79eae) acl: Compile fix caused by previous change M src/plugins/acl/acl-shared-storage.c 2014-07-03 19:03:59 +0300 Timo Sirainen (1a5573ebc) lib-storage: Move "shared" storage name to mail-storage-private.h where it can be used. M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/index/shared/shared-storage.h M src/lib-storage/mail-namespace.c M src/lib-storage/mail-storage-private.h 2014-07-03 19:00:46 +0300 Timo Sirainen (5b8dcdcff) lib-storage: Minor parsing fix to namespace types: Use strcmp() instead of strncmp(). M src/lib-storage/mail-namespace.c 2014-07-03 17:44:32 +0300 Timo Sirainen (212e9e43a) virtual: Never keep more than specified number of physical mailboxes open. This should make virtual mailboxes work for users who have a a ton of mailboxes with a ton of mails. Earlier code would likely have failed either with "Too many open files" or crashed with "Out of memory". You can change the max number of open mailboxes with: plugin { virtual_max_open_mailboxes = 64 } The default is 64. M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c 2014-07-03 17:40:37 +0300 Timo Sirainen (0bd15afe9) lib-index: Fixed error handling in mail_index_open() M src/lib-index/mail-index.c 2014-07-03 17:29:58 +0300 Timo Sirainen (0cfdf8ba0) lib-index: Index cache could have kept too many indexes open. If a lot of indexes were allocated and then later on they were opened and closed, the alloc-cache simply kept all the indexes open even after they should have been closed. M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-alloc-cache.h M src/lib-index/mail-index.c 2014-07-03 16:07:09 +0300 Timo Sirainen (1139a1f61) lib: DLLIST*_REMOVE*() no longer breaks the linked list if we try to remove item that doesn't exist there. Hopefully there wasn't any code that actually did this, but it's safer this way anyway. Perhaps it could be even made to assert-crash if it happens. M src/lib/llist.h M src/lib/test-llist.c 2014-07-03 15:26:32 +0300 Timo Sirainen (7ebb54952) lib-storage: mailbox_get_metadata() now opens the mailbox only if it's necessary. M src/lib-storage/index/index-status.c 2014-07-03 14:54:43 +0300 Timo Sirainen (15b5076a2) virtual: Recent flags dropping wasn't working as intended. In the old code '+' meant that \Recent flags were dropped also when the virtual mailbox was EXAMINEd. SELECTing a mailbox always dropped \Recent flags regardless of the '+' flag. What should have happened (and does in new code) is that the \Recent flags are dropped only on SELECT and only if '+' flag is set. M src/plugins/virtual/virtual-storage.c 2014-07-03 14:37:08 +0300 Timo Sirainen (9afa8aff5) fts: If we detect corrupted fts expunge log, unlink it. This avoids the same error repeating forever. M src/plugins/fts/fts-expunge-log.c 2014-07-03 12:44:50 +0300 Phil Carmody (289ce1246) lib-imap: test-imap-url - cosmetic whitespace cleanup Only whitespace changes. All trailing space removed, reindented: $ grep '[[:space:]]$' src/lib-imap/test-imap-url.c $ git diff -w $ Signed-off-by: Phil Carmody M src/lib-imap/test-imap-url.c 2014-07-03 12:42:11 +0300 Phil Carmody (e87b25495) lib-imap: test-imap-url - quieten successful sub-tests Every sub-component of a URL doesn't need its own successful log, so use the only-print-on-error test_out_quiet() function instead. All failures are just as explicit as before. Signed-off-by: Phil Carmody M src/lib-imap/test-imap-url.c 2014-07-03 12:42:11 +0300 Phil Carmody (00a34f888) lib-test: test-common - add test_out_quiet() to reduce verbosity Like test_out() but only prints anything if success is false. This makes it quite much like test_assert(), except that it doesn't print the code fragment, it prints a custom string. However, it still counts as a test in the total count, unlike test_assert*()s. Signed-off-by: Phil Carmody M src/lib-test/test-common.c M src/lib-test/test-common.h 2014-07-03 12:42:11 +0300 Phil Carmody (53630790d) lib-imap: test_imap_url didn't compare port numbers It only compare them when they were unset, and defaulting both to 0. Signed-off-by: Phil Carmody M src/lib-imap/test-imap-url.c 2014-07-03 11:37:07 +0300 Timo Sirainen (1774ab4b7) quota: Quota count tracking still was still incorrect in over-quota conditions. M src/plugins/quota/quota-util.c M src/plugins/quota/test-quota-util.c 2014-07-02 23:41:10 +0300 Timo Sirainen (00cc12d66) lib-index: Recent idx->seq change in strmap forgot to initialize uid_lookup_seq in one place. M src/lib-index/mail-index-strmap.c 2014-07-02 20:53:46 +0300 Timo Sirainen (c35e049bf) test-quota-util: Link to quota-util.lo instead of .o Hopefully fixes dependency tracking to work correctly? M src/plugins/quota/Makefile.am 2014-07-02 20:36:49 +0300 Timo Sirainen (de02255bb) quota: Fixed quota_transaction_is_over() to handle "user is already over quota" case. If size=0 we didn't return failure. This change also fixes various potential integer overflows in the check. Added unit test for the function. M src/plugins/quota/Makefile.am M src/plugins/quota/quota-util.c A src/plugins/quota/test-quota-util.c 2014-07-02 20:34:43 +0300 Timo Sirainen (b863b7e3f) quota: Moved some functions to quota-util.c M src/plugins/quota/Makefile.am M src/plugins/quota/quota-private.h A src/plugins/quota/quota-util.c M src/plugins/quota/quota.c 2014-07-02 20:13:35 +0300 Timo Sirainen (cbc01fc84) lib: Added UINT64_SUM_OVERFLOWS() Maybe the unit tests are kind of unnecessary since the macro is so simple, but at least it's now a well tested simple macro :) M src/lib/bits.h M src/lib/test-bits.c 2014-07-02 18:21:24 +0300 Phil Carmody (8ce201908) pop3: pop3-commands - harden integer parsers against integer overflow In get_msgnum(), the invalid input "4772185884" (2^32*10/9) would be parsed as being valid. In get_size(), the invalid input "204963823041217240178" (2^64*10/9) would be parsed as being valid. We have helpers now, so use them. Signed-off-by: Phil Carmody M src/pop3/pop3-commands.c 2014-07-02 18:21:24 +0300 Phil Carmody (7943dd081) lib: strnum - add permissive str_parse_uint() helper Signed-off-by: Phil Carmody M src/lib/strnum.c M src/lib/strnum.h 2014-07-02 18:21:24 +0300 Phil Carmody (0e7027161) lib: uri-util - hardern uri_parse_dec_octet() against overflow Invalid input 284 (2^8*10/9) is incorrectly parsed as valid. 28 * 10 + 4 = 284 == 28 (mod 2^8), so the wrap detection fails. Signed-off-by: Phil Carmody M src/lib/uri-util.c 2014-07-02 18:21:24 +0300 Phil Carmody (bf3dbfd29) lib-http: test-http-url - add some tricky invalid numeric hostname URLs Try to get the numeric octet parser to fail. The RFCs specify that we should fall back onto parsing them as domain names instead, and hence the unexpected legitimacy of out-of-range numbers. NOTE: This causes make check to report the following error: http url valid [11]: http_url_parse(http://127.0.0.284/this/also/reverts/to/DNS) : ok test-http-url.c:328: Assert failed: urlp->have_host_ip == urlt->have_host_ip http url valid [11] .................................................. : FAILED Signed-off-by: Phil Carmody M src/lib-http/test-http-url.c 2014-07-02 18:21:24 +0300 Phil Carmody (601eea426) lib: uri-util - harden uri_parse_port against overflow The invalid input 72817 (2^16*10/9) is parsed as a valid value. 7281 * 10 + 7 = 72817 == 7281 (mod 2^16), so the prev check fails. Signed-off-by: Phil Carmody M src/lib/uri-util.c 2014-07-02 18:21:24 +0300 Phil Carmody (ffb2949c6) lib-http: test-http-url - make port number test cases harder Exploit common parser weakeneses - out by one, and overflow detection failure. NOTE: causes make check to fail with the following error: http url invalid [13]: parse http://example.com:72817/index.html ..... : FAILED http url invalid [13] ................................................ : FAILED Signed-off-by: Phil Carmody M src/lib-http/test-http-url.c 2014-07-02 18:21:24 +0300 Phil Carmody (94e6665b1) imap: harden read_uoff_t() against overflow Invalid strings like "20496382304121724029" (2^64*10/9) can be parsed as valid. Use the new helper. Change in error behaviour - previously overflows, if they were detected, caused *p to point to the digit causing the overflow. Now it's undefined. Current clients don't care about this difference, they just bail. Signed-off-by: Phil Carmody M src/imap/imap-fetch-body.c 2014-07-02 18:21:24 +0300 Phil Carmody (dbebc3b55) lib: strnum - add a permissive uoff_t parser Functions like these are so cookie-cutter, we may as well use a macro. Note that signed helpers, if they ever appear, will need more care. Signed-off-by: Phil Carmody M src/lib/strnum.c M src/lib/strnum.h 2014-07-02 18:21:24 +0300 Phil Carmody (47ca7a853) lib: test-strnum - tests for the new partial-string parser We can simplify the main tests by always testing whether an appended non-digit causes parsing to fail at the same time that we test it doesn't fail with the new more permissive helpers. Signed-off-by: Phil Carmody M src/lib/test-strnum.c 2014-07-02 18:21:24 +0300 Phil Carmody (0d73aae8d) lib: strnum - add permissive partial-string integer parser Not all strings we want to parse are already strtok'ed into separate pieces. Therefore add helpers which will read the integer, and return a pointer past the parsed integer. The previous helpers can be considered a special case which just follows up with a check that the '\0' has been reached. Showing a preference for const pointers generally, this does not try to mimic the non-const interface of strto{l,ul,ll,ull}(). Signed-off-by: Phil Carmody M src/lib/strnum.c M src/lib/strnum.h 2014-07-02 18:21:24 +0300 Phil Carmody (662b2a7ec) lib-imap: number parsing simplification and hardenning The invalid string "4772185884" (2^32*10/9) will be misparsed as being valid. In uint32_t's, 477218588 * 10 + 4 = 477218588 Many large ranges have this issue, 477218588x-858993459x, 954437176x-... We have helper functions - use them. Signed-off-by: Phil Carmody M src/lib-imap/imap-url.c 2014-07-02 18:21:24 +0300 Phil Carmody (bfdca13a8) lib: strnum - harden str_to_uintmax against overflows The invalid number "20496382304121724020" (2^64*10/9) will be parsed as valid. 2049638230412172402 * 10 does not noticably wrap, it becomes 2049638230412172404 Do not perform operations which might wrap, and then try to detect the issue, just compare with the known fixed bounds before doing the multiplication. Signed-off-by: Phil Carmody M src/lib/strnum.c 2014-07-02 18:21:24 +0300 Phil Carmody (42826d96c) lib: test-lib - add unit tests for str_to_*() helpers This doesn't test all the helpers, but ensures both signed and unsigned are tested, as are 32-bit and 64-bit cases. All the other helpers fall back onto using one of those cases. Unless uintmax_t is larger than 64 bits, in which case this needs a revisit. NOTE: This causes the following make check errors: test-strnum.c:35: Assert(#7) failed: ret == u64tests[i].ret test-strnum.c:35: Assert(#10) failed: ret == u64tests[i].ret test-strnum.c:37: Assert(#10) failed: val == u64tests[i].val str_to_uint64 ........................................................ : FAILED Corresponding to test cases: [7] = INVALID(18446744073709551616), This does not wrap-past-0 (become smaller) on multiply, but wraps-past-0 on addition. [10]= INVALID(20496382304121724020), This wraps-past-n (becomes larger) on multiply. Signed-off-by: Phil Carmody M src/lib/Makefile.am M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-strnum.c 2014-07-02 18:21:23 +0300 Phil Carmody (552a9b01e) lib: test-var-expand - use test_assert_idx() inside loops It helps narrow down which test has failed. Signed-off-by: Phil Carmody M src/lib/test-var-expand.c 2014-07-02 00:10:16 +0300 Stephan Bosch (6ee9ce5ed) lib-http: Updated comments to RFC7230/RFC7231. M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-date.c M src/lib-http/http-header-parser.c M src/lib-http/http-message-parser.c M src/lib-http/http-parser.c M src/lib-http/http-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c M src/lib-http/http-transfer-chunked.c M src/lib-http/http-url.c 2014-07-01 23:24:08 +0300 Stephan Bosch (aefccddf6) lib-http: Fixed bug in parsing of quoted string with escape sequences. M src/lib-http/http-parser.c 2014-07-01 16:04:20 +0300 Timo Sirainen (e3734a660) doveadm fs delete: Added -n to usage text. M src/doveadm/doveadm-fs.c 2014-07-01 00:10:21 +0300 Timo Sirainen (b2a3fbfe1) lib-http: Added http_client_request_get_target() This can be useful in error message logging without having to duplicate the string. M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2014-06-30 17:25:02 +0300 Timo Sirainen (c6e0d6a55) fts-tika: Hiden "Unsupported Media Type" errors. Log HTTP status code on errors. M src/plugins/fts/fts-parser-tika.c 2014-06-30 16:41:32 +0300 Timo Sirainen (a666438d7) fts-tika: Fixed crash if Tika returned 200 reply without payload. M src/plugins/fts/fts-parser-tika.c 2014-06-30 14:35:32 +0300 Timo Sirainen (62dbc0f29) lib-storage: Shrink "mailbox is being deleted" timeout from 5 mins to 30 secs. Even 30s may be too much since normally a few seconds would be enough, but keep it high enough just in case. M src/lib-storage/mail-storage.c 2014-06-30 14:34:00 +0300 Timo Sirainen (b67f674f5) lib-storage: When deleting mailbox, finish the expunges before marking mailbox deleted. This decreases the amount of time the mailbox is visible but not accessible. M src/lib-storage/index/index-storage.c 2014-06-30 14:31:47 +0300 Timo Sirainen (a3de33a82) lib-storage: mailbox_delete() now handled "mailbox is being deleted" explicitly. Earlier we just treated it as \NoSelect mailbox and failed later. M src/lib-storage/mail-storage.c 2014-06-30 14:30:43 +0300 Timo Sirainen (fae21eb25) lib-storage: Added index_storage_mailbox_delete_pre/post(). This avoids reimplementing the whole index_storage_mailbox_delete() for storage backends that need to do more work in the middle. M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h 2014-06-30 14:29:26 +0300 Timo Sirainen (e63b55925) imap: If we disconnect client because mailbox is inconsistent, send the error message before BYE. M src/imap/imap-commands-util.c 2014-06-30 14:28:31 +0300 Timo Sirainen (4e1f733fa) imap: Don't disconnect due to inconsistent mailbox unless the mailbox is the selected mailbox. M src/imap/imap-commands-util.c 2014-06-27 17:39:52 +0300 Stephan Bosch (62aa68310) imap-url: Fixed handling of ipath-empty syntax (basically empty relative URLs). This also normalizes Mailbox/ to Mailbox. Initial indication reported by Coverity. M src/lib-imap/imap-url.c M src/lib-imap/test-imap-url.c M src/lib/uri-util.c 2014-06-27 17:37:56 +0300 Timo Sirainen (8bb7d8563) auth: Added assert to make sure sysconf() returns what we expect. userdb nss shouldn't even be used though. So this is mainly to silence Coverity. M src/auth/userdb-nss.c 2014-06-27 16:29:18 +0300 Timo Sirainen (a095363e4) lib: istream-concat read() returned -2 too early. M src/lib/istream-concat.c 2014-06-27 16:20:25 +0300 Phil Carmody (fc7474aac) lib: rand - force reseeding with known seed from environment Use DOVECOT_SRAND=12345 as an environmental variable to force seeding to that number. The logic behind the logging is that the subsequent calls will almost certainly be from random_fill_weak() which expects to have been seeded from a CSPRNG - not a constant! Having this environmental variable set in a production system that expects CSPRNG seeding should be flagging diagnostics. Signed-off-by: Phil Carmody M src/lib/rand.c 2014-06-27 16:17:50 +0300 Phil Carmody (dd8a8566d) lib: remove unwanted srand()s from unit tests We'll get better coverage without them. Note: this change causes the following test case failure occasionally: test-istream-concat.c:88: Assert failed: size >= TEST_MAX_BUFFER_SIZE istream concat random ................................................ : FAILED test: random seed #1 was 1403027537 (The seed may vary, obviously.) Signed-off-by: Phil Carmody M src/lib/test-buffer.c M src/lib/test-istream-concat.c 2014-06-27 16:17:07 +0300 Phil Carmody (a2818f9ff) lib-test: use the new srand() tracking helpers to aid debugging We can only be sure we know the entirity of the stream of numbers returned by rand if rand_set_seed has been called precisely once, as after that we can't be sure when it was called a 2nd or further time. However, at least we can know that that has happened. (Likewise, any calls to srand() will disturb the flow.) Most unit test cases should be simple enough that there should be only one seeding. Signed-off-by: Phil Carmody M src/lib-test/test-common.c 2014-06-27 16:16:16 +0300 Phil Carmody (02da7bcc4) lib: use new srand() wrapper in lib Of course, multiple seeding calls make it harder to know exactly what numbers have been generated. But this is better than nothing. Signed-off-by: Phil Carmody M src/lib/lib.c M src/lib/randgen.c 2014-06-27 16:15:24 +0300 Phil Carmody (1b139ee4d) lib: add rand helper library Initially, just wrap srand() so that we can find out what the last-used seed was. In situations where srand() is called only once (via this helper) this lets us reproduce exactly the same stream of random data again in order to reproduce rare crashes. Signed-off-by: Phil Carmody M src/lib/Makefile.am M src/lib/lib.h A src/lib/rand.c A src/lib/rand.h 2014-06-27 16:13:37 +0300 Phil Carmody (5a3ed55cd) lib: two quite literally random little cleanups file-dotlock.c does not use randgen.h, remove the #include test-buffer.c random() has been used rather than rand() Signed-off-by: Phil Carmody M src/lib/file-dotlock.c M src/lib/test-buffer.c 2014-06-27 16:13:09 +0300 Phil Carmody (1dcf22e98) lib: make printf_format_fix safer against shadowed %m behaviour If there's a %m followed by a %n or %m, then the %n or %m won't be seen. For %m, that's mostly harmless, but for %n it's potentially kaboom. Signed-off-by: Phil Carmody M src/lib/printf-format-fix.c 2014-06-27 16:12:40 +0300 Phil Carmody (1d940afbc) lib: test printf_format_fix() Signed-off-by: Phil Carmody M src/lib/Makefile.am M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-printf-format-fix.c 2014-06-27 16:11:40 +0300 Phil Carmody (95be1d899) lib: test-istream-concat - early abort test loop on failure No point in continuing past the first failure. Signed-off-by: Phil Carmody M src/lib/test-istream-concat.c 2014-06-27 16:10:27 +0300 Phil Carmody (dad57bb15) lib-test: Enable looped tests to abort early on first failure Give them the ability to query the current failure state. Signed-off-by: Phil Carmody M src/lib-test/test-common.c M src/lib-test/test-common.h 2014-06-27 14:23:46 +0300 Timo Sirainen (75e2c45e2) lmtp: Reduce corking so we get command replies more quickly even if they are pipelined. This may help avoid some LMTP client timeouts. M src/lmtp/client.c M src/lmtp/commands.c 2014-06-27 14:06:56 +0300 Timo Sirainen (39cfd16e1) lmtp proxy: Make sure DATA stream size doesn't change unexpectedly. M src/lmtp/lmtp-proxy.c 2014-06-27 14:06:08 +0300 Timo Sirainen (9320cc247) lib-lda: If DATA input stream read fails, return error instead of truncating the mail. M src/lib-lda/lmtp-client.c 2014-06-26 20:48:13 +0300 Timo Sirainen (f8e6e85ab) lib: Moved rawlog dir stat()s to iostream_rawlog_create() internally. This is required to allow TCP rawlogs to actually work. M src/lib-http/http-client-connection.c M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib/iostream-rawlog.c 2014-06-26 20:46:21 +0300 Timo Sirainen (f9b6b5e9c) lib: iostream-rawlog now supports TCP target with "tcp:host:port" as the path. We'll use blocking sockets, so a slow rawlog server causes performance problems also for Dovecot while it's waiting on rawlog writes. M src/lib/iostream-rawlog.c 2014-06-26 17:50:57 +0300 Timo Sirainen (463d6c355) lib-storage: BODYSTRUCTURE parsing failures weren't treated correctly. We still assumed that the parsing succeeded and assert-crashed later or maybe returned invalid results. (This could have happened only if there was a problem reading the mail stream.) M src/lib-storage/index/index-mail.c 2014-06-26 17:27:31 +0300 Timo Sirainen (faca9429a) dsync: Fixed infinite looping on error condition. M src/doveadm/dsync/dsync-mailbox-import.c 2014-06-26 17:27:22 +0300 Timo Sirainen (bcc25e5a1) dbox: mail_get_special() may have returned MAIL_FETCH_POP3_ORDER allocated from data stack. Although this seems to have worked for now, it shouldn't have been done. M src/lib-storage/index/dbox-common/dbox-mail.c 2014-06-25 16:16:02 +0300 Timo Sirainen (89221f7f6) lib-test: Fixed "Trying to allocate 0 bytes" assert-crash caused by recent test-istream changes. M src/lib-test/test-common.c 2014-06-20 12:18:32 +0300 Timo Sirainen (87ddb4d99) lib: fd_recv() no longer checks for msghdr.msg_controllen It doesn't work at least in OpenBSD and Tru64, and apparently it shouldn't really be needed anyway, so don't bother with it. We'll still keep checking the cmsghdr since that appears to work everywhere now. M src/lib/fdpass.c 2014-06-19 17:16:24 +0300 Timo Sirainen (11f743d84) mbox: istream-tee wasn't being used as expected with the new changes, causing crashes/hangs. After wondering about this for a while I decided this was the only fully reliable way of doing this. Although it would have been possible to change the istream-tee code to support this: child1 and child2 are tee-istream children: - i_stream_read(child1) - i_stream_read(child2) - i_stream_get_data(child1) Because reading from the parent istream-tee updates all of its childrens' buffer, there's no big problem (other than access_counter currently messing up). But if one of the children weren't a direct child of tee-istream, but there was a wrapper istream, the wrapper's buffer wouldn't have been updated by the istream-tee read. So rather than spending time figuring out to fix the access_counter it's probably better to have it clearly fail as the use case can't be fully safe anyway. M src/lib-storage/index/mbox/mbox-save.c 2014-06-19 15:50:40 +0300 Timo Sirainen (a07bc6007) lmtp: Create all proxy DATA streams before reading from them. I'm not sure if this actually fixes anything or not, but it's still safer to do it this way. M src/lmtp/lmtp-proxy.c 2014-06-19 15:15:24 +0300 Timo Sirainen (c6b6ac781) lib: i_stream_read_copy_from_parent() now directly updates the access counter This fixes a bug in istream-mail where it called i_stream_get_data() after it and reset the stream's skip/pos. M src/lib/istream.c 2014-06-19 14:58:26 +0300 Timo Sirainen (4106a2539) lib: i_stream_get_data() should also reset eof=FALSE if it truncates the output. M src/lib/istream.c M src/lib/istream.h 2014-06-19 14:34:54 +0300 Timo Sirainen (5dcdc153e) lib-mail: Fixed istream-dot unit test to work with the istream-test changes. M src/lib-mail/test-istream-dot.c 2014-06-19 14:02:56 +0300 Timo Sirainen (aaa5d9493) Compiler warning fix M src/lib/istream.c 2014-06-19 13:52:36 +0300 Timo Sirainen (f5982bb5b) lib: If two istreams share one parent, i_stream_get_data() may have returned corrupted data to another. This happened only for istreams that used parent's buffer directly instead of having their own buffer. For now at least we've solved this by truncating the other stream's buffer so it needs to be read again. Hopefully this is good enough. Added also unit test to check this functionality. M src/lib/Makefile.am M src/lib/istream.c A src/lib/test-istream.c M src/lib/test-lib.c M src/lib/test-lib.h 2014-06-19 12:38:11 +0300 Timo Sirainen (ce8daf893) lib-test: Improved test-istream to catch more bugs M src/lib-test/test-common.c 2014-06-19 12:32:45 +0300 Timo Sirainen (098319673) lib: Fixed read buffer overflow in istream-base64-decoder error handling M src/lib/istream-base64-decoder.c 2014-06-19 12:31:55 +0300 Timo Sirainen (b1b8ac3b3) lib: Fixed potential read buffer overflow in JSON parser. M src/lib/json-parser.c 2014-06-16 19:52:11 +0300 Timo Sirainen (c51644e9e) login proxy: Added login_source_ips setting. The setting contains a list of IPs/hosts. The setting may be prefixed with "?" character to indicate that only those IPs should be used that exist in the current server (allowing the same config to be shared by multiple servers). The IPs are used round robin as the source IP address when proxy creates TCP connections. This becomes useful when there are a ton of connections from the proxy to the same destination IP, because TCP ports run out after ~64k connections. M src/login-common/client-common-auth.c M src/login-common/login-common.h M src/login-common/login-settings.c M src/login-common/login-settings.h M src/login-common/main.c 2014-06-16 19:21:36 +0300 Timo Sirainen (d694a52bc) login proxy: If passdb returns "source_ip" extra field, use it for outgoing connections. M src/login-common/client-common-auth.c M src/login-common/client-common.h M src/login-common/login-proxy.c M src/login-common/login-proxy.h 2014-06-16 18:01:58 +0300 Timo Sirainen (17654607d) lib: Use __attribute__((returns_nonnull)) for the common memory/string functions. Also added a couple of missing ATTR_MALLOCs. M src/lib/data-stack.h M src/lib/imem.h M src/lib/macros.h M src/lib/mempool.h M src/lib/strfuncs.h 2014-06-16 17:40:51 +0300 Timo Sirainen (3b364681a) lib: Changed mempool.h to use inline functions instead of macros. This way we can also mark p_malloc() with ATTR_MALLOC. M src/lib/mempool.h 2014-06-16 16:27:12 +0300 Timo Sirainen (ffcf7f97c) doveadm who: Don't crash if server happens to send broken input (second try). Found by Coverity M src/doveadm/doveadm-who.c 2014-06-16 16:26:09 +0300 Timo Sirainen (fcb584b14) doveadm dump: Avoid crashes with corrupted log files M src/doveadm/doveadm-dump-log.c 2014-06-16 15:47:12 +0300 Timo Sirainen (bb33d479f) doveadm dump log: Fixed potential crash when log header size was corrupted. M src/doveadm/doveadm-dump-log.c 2014-06-16 15:42:39 +0300 Timo Sirainen (b36b8c984) Added (void) prefix for ignoring return values we don't care about. Hopefully this quiets down Coverity warnings also of them? M src/doveadm/dsync/dsync-ibc-stream.c M src/login-common/ssl-proxy-openssl.c 2014-06-16 15:41:52 +0300 Timo Sirainen (cee99a130) Check for syscall errors that are quite unlikely to happen. Flagged by Coverity. M src/doveadm/doveadm-dump-log.c M src/lib-storage/index/dbox-common/dbox-file.c M src/master/main.c M src/util/maildirlock.c 2014-06-16 15:35:07 +0300 Timo Sirainen (de1ba3e65) xml2text: Check for read()/write() failures and exit if they fail. M src/plugins/fts/xml2text.c 2014-06-16 13:12:40 +0300 Timo Sirainen (d57941238) lmtp: Proxying now logs successful and failed deliveries after DATA. M src/lmtp/lmtp-proxy.c 2014-06-16 13:03:31 +0300 Timo Sirainen (5b946df48) lmtp: Removed some unnecessary code M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2014-06-15 11:03:32 +0300 Timo Sirainen (b43bbd392) auth: Fixed wrong assert added by recent commit. M src/auth/auth-request.c 2014-06-14 11:58:57 +0300 Phil Carmody (c1dbcb608) trivial variable-non-use fixes Flagged by coverity. In one, as we're printing an error message, we can actually put the string to use, which might aid debugging. In the other, the variable can just be killed. Signed-off-by: Phil Carmody M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-storage/list/mailbox-list-subscriptions.c 2014-06-13 16:12:27 +0300 Phil Carmody (6e4f7451b) fts-lucene: Fix SnowballAnalyzer constructors Coverity found the uninitialised pointers in the latter constructor (which is never used - kill it?). In comparing the other constructor, the lack of strdup() jumped out at me. In fixing them both I migrated them to actual C++ initialisers, rather than dumb assignments to uninitialised members. Also migrated to dovecot's i_* functions. Also fixed indentation for the 3 functions touched. Signed-off-by: Phil Carmody M src/plugins/fts-lucene/Snowball.cc 2014-06-13 15:14:44 +0300 Timo Sirainen (fd05c4721) Added several asserts to make sure duplicates aren't inserted into hash table. The previous commit hopefully fixed the problem causing auth and login processes to sometimes die with "key not found from hash" error, but if not maybe one of these will catch it. M src/lib-auth/auth-server-connection.c M src/lib-master/master-auth.c M src/lib-master/master-login-auth.c M src/lib-settings/settings-parser.c M src/login-common/ssl-proxy-openssl.c 2014-06-13 15:13:26 +0300 Timo Sirainen (788a914ed) lib-master: Fixed caching settings where both local_name and local_ip was specified. Since cache_find() didn't use local_ip for a lookup when local_name existed, cache_add() shouldn't add both of them either, otherwise it could be inserting duplicate values to the cache hash and cause crashes. M src/lib-master/master-service-settings-cache.c 2014-06-13 11:35:40 +0300 Timo Sirainen (f6d79884d) Make sure we don't shift signed integers left by 24. They should be unsigned. M src/lib-index/mailbox-log.c M src/lib/hmac-cram-md5.c 2014-06-13 11:21:07 +0300 Timo Sirainen (54c4c55a7) dbox: Fixed potential infinite looping when scanning a broken dbox file. M src/lib-storage/index/dbox-common/dbox-file-fix.c 2014-06-13 10:25:22 +0300 Timo Sirainen (d65adb971) auth: Fixed handling userdb_userdb_import passdb extra field. Looks like some hg merging went wrong. Found by Coverity M src/auth/auth-request.c 2014-06-13 10:22:49 +0300 Timo Sirainen (59bc0bc0c) lib-http: Removed unnecessary for loop. Found by Coverity M src/lib-http/http-transfer-chunked.c 2014-06-13 03:09:26 +0300 Timo Sirainen (a59b10304) dbox: Added asserts to dbox file fixing to make sure it doesn't go to infinite loop. There apparently is a bug in here that will trigger this assert. M src/lib-storage/index/dbox-common/dbox-file-fix.c 2014-06-13 02:54:21 +0300 Timo Sirainen (5952b8445) imap, pop3: Remove the client from clients-list at the very end of the destroy function. Especially with imap code the process title could have been refreshed too early. M src/imap/imap-client.c M src/pop3/pop3-client.c 2014-06-13 02:34:19 +0300 Timo Sirainen (0abbd167f) Compiler warning fix M src/lib/ioloop-notify-inotify.c 2014-06-13 02:19:15 +0300 Timo Sirainen (bace943c6) Use the new [io]_stream_create_fd_*autoclose() functions wherever possible. M src/auth/mech-winbind.c M src/auth/userdb-passwd-file.c M src/config/config-parser.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-replicator.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-zlib.c M src/lib-compression/test-compression.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-lda/smtp-client.c M src/lib-master/master-instance.c M src/lib-master/mountpoint-list.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/list/subscription-file.c M src/lib/iostream-temp.c M src/lib/istream-seekable.c M src/plugins/fts/fts-parser-script.c M src/plugins/zlib/zlib-plugin.c M src/replication/replicator/replicator-queue.c M src/ssl-params/main.c M src/util/rawlog.c 2014-06-13 02:18:53 +0300 Timo Sirainen (43834f87b) lib: Added [io]_stream_create_fd_*autoclose() These make it clearer that the fd parameter will be closed automatically when the stream is closed. Eventually (in v2.3) we'll want to get rid of the autoclose boolean parameter in [io]_stream_create_fd(). M src/lib/istream-file.c M src/lib/istream.h M src/lib/ostream-file.c M src/lib/ostream.h 2014-06-13 02:04:12 +0300 Timo Sirainen (bd16363ff) doveadm stats top: Fixed double-close()ing stats connection M src/doveadm/doveadm-stats.c 2014-06-13 02:01:55 +0300 Timo Sirainen (fb2fb0e5c) director-test: Fixed double-close() on admin connection deinit M src/director/director-test.c 2014-06-13 01:57:04 +0300 Timo Sirainen (48325adac) Added various asserts to try to silence Coverity false positives. M src/auth/auth-request.c M src/lib-imap-client/imapc-client.c M src/lib-index/mail-index-map-read.c M src/lib-settings/settings.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib/connection.c M src/lib/ioloop-notify-inotify.c M src/master/main.c 2014-06-13 01:52:13 +0300 Timo Sirainen (86b29828b) lib-mail: message_parser_parse_next_block() now fully clears block_r to be safe case. I'm not away of this hitting any bugs, but better to be safe. M src/lib-mail/message-parser.c 2014-06-13 01:35:13 +0300 Timo Sirainen (b383c9112) Added "fall through" comments to switch statements where break is intentionally missing. This should make Coverity quiet about these.. M src/doveadm/doveadm-dump-index.c M src/lib-http/http-request-parser.c M src/lib/iso8601-date.c 2014-06-13 01:30:14 +0300 Timo Sirainen (f8c53b752) lib-storage: Fixed parsing corrupted mailbox list index header. Duplicate IDs should have caused an error instead of being silently ignored. Found by Coverity M src/lib-storage/list/mailbox-list-index.c 2014-06-13 01:26:14 +0300 Timo Sirainen (2d72e8492) imap-urlauth: Fatal failure error handling wasn't done correctly. Found by Coverity M src/imap-urlauth/imap-urlauth-worker.c 2014-06-13 01:22:23 +0300 Timo Sirainen (ca321ff5b) replication plugin: Synchronous notification timeout error wasn't logged as intended. Found by Coverity M src/plugins/replication/replication-plugin.c 2014-06-13 01:20:25 +0300 Timo Sirainen (d19412e30) lib-otp: OTP_MAX_WORD_LEN wasn't actually enforced, any word lengths could have been used. Doesn't look like this could have caused any real problems. Found by Coverity M src/lib-otp/otp-parse.c 2014-06-13 01:11:24 +0300 Timo Sirainen (739f4f284) fts: Improved doveadm fts dump for corrupted expunge log Although we may still be trying to allocate up to 2 GB of memory, but at least no more than that now. Found by Coverity M src/plugins/fts/doveadm-dump-fts-expunge-log.c 2014-06-13 01:02:48 +0300 Timo Sirainen (6b5b3d9d0) lib: Fixed file_dotlock_replace(flags=DOTLOCK_REPLACE_FLAG_VERIFY_OWNER|DOTLOCK_REPLACE_FLAG_DONT_CLOSE_FD) The verification check failed because fd was already set to -1 by that time. Found by Coverity M src/lib/file-dotlock.c 2014-06-13 00:57:06 +0300 Timo Sirainen (456f3c79a) director: Fixed crash if master_user_separator is set, but we didn't do a proxy lookup. Found by Coverity M src/director/login-connection.c 2014-06-13 00:51:44 +0300 Timo Sirainen (2d2d7c4d0) imapc: Avoid crashing if server happens to send invalid resp-text-codes. If [KEY VALUE] is missing the VALUE, just set it to "" instead of NULL. Found by Coverity M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/imapc/imapc-mailbox.c 2014-06-13 00:46:34 +0300 Timo Sirainen (0b9392b67) fts: Minor code cleanup: Don't increment NULL pointer. M src/plugins/fts/doveadm-dump-fts-expunge-log.c 2014-06-13 00:45:43 +0300 Timo Sirainen (7be1a5530) Removed pointless NULL checks. Found by Coverity M src/director/director.c M src/doveadm/dsync/dsync-mailbox-import.c M src/lib-index/mail-index.c M src/plugins/acl/doveadm-acl.c 2014-06-13 00:30:27 +0300 Timo Sirainen (48b28b918) auth: Invalid userdb passwd-file and userdb templates may have caused crashes. Using just "key" parameter instead of "key=value" usually worked, but for some keys the code assumed that there was a value and it dereferenced NULL. We'll solve this by just using value="" instead of value=NULL. Found by Coverity M src/auth/auth-request.c M src/auth/userdb-passwd-file.c M src/auth/userdb-template.c 2014-06-13 00:15:47 +0300 Timo Sirainen (29a826288) auth: passdb/userdb dict settings file parsing didn't handle errors correctly. Found by Coverity M src/auth/db-dict.c 2014-06-13 00:09:23 +0300 Timo Sirainen (bed2cec1e) lib: Changed net_geterror() to return errno instead of -1 if getsockopt() fails. None of the callers were actually checking for the -1 error value but instead just passing it to strerror(). Since this error should just about never happen it's better to just return a usable return value than try to remember to handle errors that can't normally even happen. Found by Coverity M src/lib/net.c 2014-06-13 00:05:16 +0300 Timo Sirainen (bdb5cc256) doveadm sis deduplicate: Error handling fix if open() fails. Found by Coverity. M src/doveadm/doveadm-sis.c 2014-06-13 00:03:11 +0300 Timo Sirainen (8f80d2d1a) lib: Added (void) prefixes to some setsockopt() calls which we don't care if they fail. M src/lib/net.c 2014-06-13 00:00:31 +0300 Timo Sirainen (0c8f8dcbe) dsync: Fixed potential crash when debug logging was enabled. Found by Coverity. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c 2014-06-12 23:51:28 +0300 Timo Sirainen (956af7102) mbox: X-Delivery-ID: and X-IMAP: headers weren't dropped from incoming mails. Because of a missing comma.. Found by Coverity. M src/lib-storage/index/mbox/mbox-storage.c 2014-06-12 23:47:55 +0300 Timo Sirainen (c03f71227) doveadm who: Don't crash if server happens to send broken input. Found by Coverity. M src/doveadm/doveadm-who.c 2014-06-12 23:16:40 +0300 Timo Sirainen (7042d9244) configure: Don't actually run the test to see if inotify works. It's definitely no longer needed in modern Linux systems and the test itself can also unintentionally fail sometimes. M configure.ac 2014-06-12 12:51:34 +0300 Timo Sirainen (c04da04cc) lib: Changed hash_table_remove() "key not found" panic to be in a macro itself. This makes it much easier to find out where such crashes are coming from. Since this breaks the ABI in such a many places the ABI version number was increased immediately.. M configure.ac M src/lib/hash.c M src/lib/hash.h 2014-06-10 17:49:45 +0200 Phil Carmody (147dbf5e7) lib: test-bits - fix nearest_power for 32-bit size_t The test blindly went up to b=63, and the function correctly asserted. Signed-off-by: Phil Carmody M src/lib/test-bits.c 2014-06-10 16:40:46 +0200 Timo Sirainen (552487e70) rawlog: Buffer writing to rawlog files to improve performance. M src/util/rawlog.c 2014-06-09 23:08:18 +0300 Timo Sirainen (53895e436) lib-fs: Fixed crash in fs-sis if hard linking failed. (For example because there were too many hard links.) Pointed out by Pavel Stano M src/lib-fs/fs-sis.c 2014-06-09 23:02:52 +0300 Phil Carmody (a6050e85d) lib: fix numpack overflow checking As on broken input, bits may grow without limit, so << bits becomes Undefined Behaviour. Add a simple check to the while loop to prevent this. Also, the (presumably) final byte adds something to the bit length, so include that in the tally. If we didn't get to a final byte due to the above while() condition, then this extra addition does no harm Now we can precisely check for overflow conditions. Note that 64 bits is perfectly OK, only 65+ is an overflow. Note - no longer moving *p if there was a decode error. Expand the test suite to check for overflow cases. Also checked for short-input cases too, while I was there. Signed-off-by: Phil Carmody M src/lib/numpack.c M src/lib/test-numpack.c 2014-06-09 23:02:52 +0300 Phil Carmody (9fe077804) lib: unit tests for lib/bits Signed-off-by: Phil Carmody M src/lib/Makefile.am A src/lib/test-bits.c M src/lib/test-lib.c M src/lib/test-lib.h 2014-06-09 23:02:52 +0300 Phil Carmody (aebf030c0) lib-test: test_assert helper for loops If you're repeatedly testing the same expression in a loop, it's good to know where you are in the loop. Add an additional parameter for these cases. Signed-off-by: Phil Carmody M src/lib-test/test-common.c M src/lib-test/test-common.h 2014-06-09 23:02:52 +0300 Phil Carmody (3637a2ad3) lib: bit twiddles bits_requiredXX() gives the number of bits required to store an unsigned integer. Here, XX is 8, 16, 32, 64, reperesenting the size of the operand. It belongs in the same file as nearest_power(), which makes most sense in a separate bit twiddles file. Universal enough to stay in lib.h by inclusion. Signed-off-by: Phil Carmody M src/lib/Makefile.am A src/lib/bits.c A src/lib/bits.h M src/lib/lib.c M src/lib/lib.h 2014-06-09 22:59:59 +0300 Phil Carmody (7df0ae570) lib: Fix MEM_ALIGN to cope with huge allocations Attempting to allocate 2^32+1 bytes will look like it succeeds, as MEM_ALIGN will set alloc_size = 8. The caller will then think it's got 4 gig to play with. e.g. t_malloc0 will wipe vast areas of memory before segfaulting, which might include useful information we'd like in a corefile. Signed-off-by: Phil Carmody M src/lib/macros.h 2014-06-09 22:53:16 +0300 Timo Sirainen (4f8f6d697) lib-index: modseq -> {log file, offset} lookup often ignored dovecot.index.log.2 This caused the code to think that the modseq was too old and fall back into slower sync. So this change should fix the dsync "Modseq .. nom longer in transaction log" warnings as well as improve IMAP QRESYNC efficiency. M src/lib-index/mail-index-modseq.c 2014-06-09 18:15:51 +0300 Timo Sirainen (44af44edb) lib: Added some kind of a unit test for hash table. Just try out some insert+deletes randomly. Mainly I wrote this to check if there is some obvious problem, but looks like not. M src/lib/Makefile.am A src/lib/test-hash.c M src/lib/test-lib.c M src/lib/test-lib.h 2014-06-09 15:11:50 +0300 Timo Sirainen (31df48d66) lib-ssl-iostream: Implement get_used_size() method. Previously we were always returning that we didn't have anything buffered, which could have caused huge memory usage (or malloc failures) with its users (e.g. dsync). M src/lib-ssl-iostream/ostream-openssl.c 2014-06-09 13:41:59 +0300 Timo Sirainen (a117008f0) login-common: Fixed potential crash at client disconnect. Broken by recent change M src/login-common/client-common.c 2014-06-09 12:14:42 +0300 Teemu Huovila (2529a04d5) login-common: Fixed infinite loop in ssl proxy flushing. M src/login-common/ssl-proxy-openssl.c 2014-06-09 12:12:58 +0300 Timo Sirainen (d065c1e18) login proxy: Fixed connection hanging due to wrong ostream cork pairing M src/login-common/login-proxy.c 2014-06-05 13:43:11 +0300 Timo Sirainen (b09c165ba) lib-storage: Mailbox list index updating didn't check properly if modseq tracking is enabled. mail_index_modseq_enable() can be enabled (e.g. by virtual plugin) without enabling MAILBOX_FEATURE_CONDSTORE. (Actually the MAILBOX_FEATURE_* probably should be removed from lib-storage entirely. They're too much of an IMAP feature.) M src/lib-storage/list/mailbox-list-index-status.c 2014-06-05 13:38:36 +0300 Timo Sirainen (83b777d8b) maildir: Mailbox list index refreshing shouldn't check cur/new dirs with maildir_very_dirty_syncs=yes The recent mailbox_list_index_very_dirty_syncs change broke this. Just because maildir_very_dirty_syncs=yes, it doesn't mean that mailbox_list_index_very_dirty_syncs=yes also. M src/lib-storage/index/maildir/maildir-sync-index.c 2014-06-05 11:30:19 +0300 Timo Sirainen (0270e64c5) *-login: Flush SSL output when logging out. The BYE and LOGOUT replies weren't being sent when they were sent from imap-login process (before logging in). M src/login-common/client-common.c M src/login-common/ssl-proxy-openssl.c 2014-06-04 00:35:27 +0300 Timo Sirainen (d4b03b1b2) doveadm fs delete: When doing recursive deletion, delete also the directories if needed. M src/doveadm/doveadm-fs.c 2014-06-03 23:52:39 +0300 Timo Sirainen (0218e28d1) dsync: Fixed renaming duplicate mailbox GUIDs. We were trying to use only the last part of the hierarchical name instead of the full name. M src/doveadm/dsync/dsync-mailbox-tree-fill.c 2014-06-02 23:58:26 +0300 Timo Sirainen (6e952586d) lib-ssl-iostream: Use SSL_MODE_RELEASE_BUFFERS if it exists to reduce memory usage. M src/lib-ssl-iostream/iostream-openssl-context.c 2014-06-02 14:50:34 +0300 Phil Carmody (030e24734) mail-index: make uid_lookup_idx hold a sequence number, not a 0-based C array index Rename it to _seq, and make it hold values 1.. rather than 0.. . Several uses of the value are simplified by this change, and none are made more confusing, so I think it helps improve maintainability of the code. Signed-off-by: Phil Carmody M src/lib-index/mail-index-strmap.c 2014-06-02 14:50:34 +0300 Phil Carmody (7604ee75a) mail-index: use _REC_AT_SEQ not _MAP_IDX in view_sync_get_log_lost_changes Shifting i and j up by one to use in the new macro means we don't need the +1's in the calls to view_sync_apply_lost_changes and mail_index_map_lookup_keywords. Rename them as seq variables too. Signed-off-by: Phil Carmody M src/lib-index/mail-index-view-sync.c 2014-06-02 14:50:34 +0300 Phil Carmody (c308d70af) mail-index: use _REC_AT_SEQ not _MAP_IDX in backward loops [seq-1 .. 0] becomes [seq .. 1] Don't pre-decrement, and terminate before you process seq=0. Signed-off-by: Phil Carmody M src/lib-index/mail-index-view.c 2014-06-02 14:50:34 +0300 Phil Carmody (be8c8479f) mail-index: use _REC_AT_SEQ not _MAP_IDX in loops from [seq1..seq2] [seq1-1..seq2) becomes [seq1..seq2] Don't decrement before starting, and include the upper bound. Signed-off-by: Phil Carmody M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c 2014-06-02 14:50:34 +0300 Phil Carmody (2f16d2e0b) mail-index: use _REC_AT_SEQ not _MAP_IDX in loops over every record Just change the loop bounds from [0..count) to [1..count], and make the loop variale explicitly a seq. Signed-off-by: Phil Carmody M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-update.c 2014-06-02 14:50:34 +0300 Phil Carmody (1df526903) mail-index: trivial robomatic migration from _MAP_IDX to new helper All users which have a '-1' in their MAIL_INDEX_MAP_IDX have been changed to the new mail_index_rec_at_seq() helper using this sed script: $ sed -ie 's/MAIL_INDEX_MAP_IDX(\([^,]*[^)]*[^ ]\) \?- \?1)/MAIL_INDEX_REC_AT_SEQ(\1)/' src/lib-index/*.[ch] No other users have been changed. Signed-off-by: Phil Carmody M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c 2014-06-02 14:50:34 +0300 Phil Carmody (f5e06b955) mail-index: new helper macro with more user-friendly semantics As the record ids range from 1..records_count, but the data is stored as if in a C-style 0-based array, current clients of MAIL_INDEX_MAP_IDX() must subtract 1 from the index themselved. New MAIL_INDEX_REC_AT_SEQ() macro does the subtraction for you, it gives you (the address of) the record from a seq number. Uglified users of the former will be migrated to the latter. Signed-off-by: Phil Carmody M src/lib-index/mail-index-private.h 2014-06-02 14:50:34 +0300 Phil Carmody (53e0e6889) mail-index: optimise memmoves in expunge, only move each region once Rather than shifting things back and back and back with potentially O(N^2) (more precisely O(count*rec_count')) work factor, move each slice of memory only once, directly where we want it to end up (O(rec_count') work factor). Based on draft patch by Timo Sirainen. Signed-off-by: Phil Carmody M src/lib-index/mail-index-sync-update.c 2014-06-02 14:50:34 +0300 Phil Carmody (4e6629cb5) mail-index: trivial paranoia check in expunge loop We will later be moving the zone between the current seqs and the (end of the) previous seqs - this check ensures that the range is indeed monotonic, and thus that zone is positive in size. It can be zero right at the start, if the first seqs is (1,...) Based on draft patch by Timo Sirainen. Signed-off-by: Phil Carmody M src/lib-index/mail-index-sync-update.c 2014-06-02 14:50:34 +0300 Phil Carmody (aba9cc9bf) mail-index: Preparatory HACK - reverse the loop order in the expunge This is the final step before the actual optimisation of the memmoves. HACK, as it it de-optimises the moves so as much as possible gets moved as many times as possible. It clears the path for a later patch which optimises them far better. Based on draft patch by Timo Sirainen. Signed-off-by: Phil Carmody M src/lib-index/mail-index-sync-update.c 2014-06-02 14:50:34 +0300 Phil Carmody (070df93a3) mail-index: hoist initialisation of mail index map out of expunge loop Based on draft patch by Timo Sirainen. Signed-off-by: Phil Carmody M src/lib-index/mail-index-sync-update.c 2014-06-02 14:50:34 +0300 Phil Carmody (89b7d6ce9) mail-index: explicitly inline contents of sync_expunge() To later optimise the memmoves, we will need to be aware of previous seqs. It's easier to just have the guts inlined, so too much state doesn't need to be passed around. For review, this change is best viewed with a whitespace-insensitive diff, to verify that the new contents of the loop are identical to the contents of the now-absorbed function. Based on draft patch by Timo Sirainen. Signed-off-by: Phil Carmody M src/lib-index/mail-index-sync-update.c 2014-06-02 14:50:34 +0300 Phil Carmody (74896b89e) mail-index: call all expunge handlers first Firstly, the init checking only needs to be done once. More importantly, moving this preparatory stage into its own per-seqs loop means there's less to juggle when we optimise the memmoving loop in subequent patches. Based on draft patch by Timo Sirainen. Signed-off-by: Phil Carmody M src/lib-index/mail-index-sync-update.c 2014-06-02 14:50:34 +0300 Phil Carmody (b32de04eb) mail-index: move expunge handler init into helper function Preparatory for later optimisation patches where the call to this will be lifted out of the expunge(seq1,seq2) inner function and done once for the whole range of seqs in one go. Based on draft patch by Timo Sirainen. Signed-off-by: Phil Carmody M src/lib-index/mail-index-sync-update.c 2014-06-02 04:16:08 +0300 Timo Sirainen (36e091dc7) director: If we detect that a user is being proxied to multiple backends, disconnect wrong connections. Especially IMAP connections can otherwise stay alive for a long time and cause problems. M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/login-common/login-proxy.c 2014-06-02 04:00:19 +0300 Timo Sirainen (550d2fe09) doveadm director kick command added. The kick gets sent to all the proxies within the director ring. M src/director/director-connection.c M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c M src/doveadm/doveadm-director.c 2014-05-28 18:17:52 +0300 Timo Sirainen (b8864211b) lib-index: Fixed somewhat random assert-crashes during extension resizes. M src/lib-index/mail-index-transaction-export.c 2014-05-28 15:53:58 +0300 Timo Sirainen (dfdd228ab) lib-index: Optimize removing large number of expunges. M src/lib-index/mail-index-sync-update.c 2014-05-28 04:20:58 +0300 Timo Sirainen (884228e54) lib-storage: "Message has no NUL characters" flag was being set wrong to cache file. Only the first MIME part was checked for its existence. When this flag was wrong, IMAP FETCH may have returned NUL characters instead of converting them to 0x80 character. This apparently caused Outlook to hang. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2014-05-27 23:11:07 +0300 Timo Sirainen (ffcd97574) Compiler warning fix M src/stats/main.c 2014-05-27 21:17:34 +0300 Phil Carmody (9d47b3d53) auth: checkpassword callback callback type bike-shedding This change doesn't change the compiler's (gcc) view on the correctness of the code. It moves sparse's attention of where the potential issues are though. Sparse used to complain about dodgy function pointer conversions on both the way out (passing the callback function pointer), and on the way in (entering the callback). Making the callback not lie about what it receives gets rid of the way in warnings, but adds warnings as we pass the new function pointer out. However, it already complains about that call anyway. So it complains about 6 things in 3 functions rather than 6 things in 6 functions. Of dubious worth, but it at least reduces the number of lines you need to inspect to verify correctness. Signed-off-by: Phil Carmody M src/auth/passdb-checkpassword.c M src/auth/userdb-checkpassword.c 2014-05-27 21:17:34 +0300 Phil Carmody (fbb631cee) imap: exit imap_fetch_binary_init() identically on all failures This changes the behaviour, as -1 is TRUE as a boolean. Signed-off-by: Phil Carmody M src/imap/imap-fetch-body.c 2014-05-27 21:17:34 +0300 Phil Carmody (bbd5d7316) imap: use human-readable helper macro in remote_ip_is_usable More readable, but helpfully shuts up sparse which complained about some constants being long. Signed-off-by: Phil Carmody M src/imap/cmd-idle.c 2014-05-27 21:17:34 +0300 Phil Carmody (ed7b5bc90) imap: cmd_getmetadata_stream_continue returns bool, not int The behaviour is unchanged, but we shouldn't pretend that -1 is different from TRUE in a boolean context. Its only caller only cares about whether it's 0 or not. Signed-off-by: Phil Carmody M src/imap/cmd-getmetadata.c 2014-05-27 21:17:34 +0300 Phil Carmody (71e32f990) indexer: fix indexer_queue_cancel_all behaviour -1 is TRUE. Presumably -1 was intended to be passed to the callbacks via indexer_queue_request_status_int(), not 100. Signed-off-by: Phil Carmody M src/indexer/indexer-queue.c 2014-05-27 21:17:34 +0300 Phil Carmody (6094fe2df) auth: master-connection - bail on malformed list If master is not communicating to us in a syntax we understand, just ask for it to be unplugged. This changes the behaviour in this error case. Previously, we returned -1, which is TRUE when converted to a boolean, and thus this changes the error semantics, and may be horribly wrong. However, the i_error()s in auth_master_input_line follow the same pattern. Signed-off-by: Phil Carmody M src/auth/auth-master-connection.c 2014-05-27 21:17:34 +0300 Phil Carmody (cc363c8f5) auth: set_credentials callback being passed an enum, not a bool This changes the behaviour, as the error case is now mapped onto FALSE. All non-zero values of course get squashed into true. Found by sparse. Signed-off-by: Phil Carmody M src/auth/auth-request.c 2014-05-27 21:17:34 +0300 Phil Carmody (8e018b1e8) lib-otp: cast to the correct type of function pointer sparse complains about the result of the F() cast being the wrong type for the initialisation, which is true. So just cast to the right type in the first place. Signed-off-by: Phil Carmody M src/lib-otp/otp-hash.c 2014-05-27 21:17:34 +0300 Phil Carmody (42149f486) imap: fix missing-command check It's impossible for the command's pointer to be NULL at this point. Previously, the command_find() would have returned NULL, but this check presumably short-circuits that search in the trivial case, so has some real use. Signed-off-by: Phil Carmody M src/imap/imap-client.c 2014-05-27 21:17:34 +0300 Phil Carmody (dc78180b5) lib-imap: API change - add const to imap_url *base parameter We do not change what's there, therefore we can promise to not change what is there. Signed-off-by: Phil Carmody M src/lib-imap/imap-url.c M src/lib-imap/imap-url.h 2014-05-27 21:17:34 +0300 Phil Carmody (36f63d7d4) auth: sparse static cleanup, and some const cleanup All the consts that are added to pointers represent deep const semantics. There are other shallow consts that I've not added, as sometimes it's better to not be const than have something you rely on change when you think it won't. Signed-off-by: Phil Carmody M src/auth/auth.c 2014-05-27 21:17:34 +0300 Phil Carmody (c2d398246) various - 'static' sparse cleanup Signed-off-by: Phil Carmody M src/anvil/anvil-connection.c M src/config/config-connection.c M src/indexer/indexer-client.c M src/pop3-login/client-authenticate.c M src/ssl-params/main.c M src/stats/mail-stats.c M src/stats/main.c 2014-05-27 21:17:34 +0300 Phil Carmody (5a09d089b) lib-mail: tests - trivial sparse cleanups One static const, and one more obviously not-an-int integer. Signed-off-by: Phil Carmody M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-message-date.c 2014-05-27 21:17:34 +0300 Phil Carmody (e9c433c5b) lib-imap: tests - trivial static and const sparse cleanups Signed-off-by: Phil Carmody M src/lib-imap/test-imap-url.c 2014-05-27 21:17:34 +0300 Phil Carmody (ba592dc74) lib-http: trivial sparse cleanups - statics and explicit NULLs Signed-off-by: Phil Carmody M src/lib-http/test-http-date.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-server.c 2014-05-27 21:17:34 +0300 Phil Carmody (ba5c8b0ae) various - trivial NULL-related sparse cleanups These zero-alikes are all pointers, so should explicitly be NULL. Signed-off-by: Phil Carmody M src/config/sysinfo-get.c M src/director/user-directory.c M src/doveadm/doveadm-mail.c M src/imap/imap-sync.c M src/lib-http/http-transfer-chunked.c M src/lib-sql/driver-sqlite.c M src/util/script-login.c 2014-05-27 21:17:34 +0300 Phil Carmody (da7f1a07f) treewide - mass cleanup of 0 used to end a settings list This also includes a change to the perl script which generates the all-settings.c file. Signed-off-by: Phil Carmody M src/anvil/anvil-settings.c M src/auth/auth-settings.c M src/config/config-settings.c M src/config/settings-get.pl M src/dict/dict-settings.c M src/director/director-settings.c M src/dns/dns-client-settings.c M src/doveadm/doveadm-settings.c M src/imap-login/imap-login-settings.c M src/imap-urlauth/imap-urlauth-login-settings.c M src/imap-urlauth/imap-urlauth-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap/imap-settings.c M src/indexer/indexer-settings.c M src/indexer/indexer-worker-settings.c M src/ipc/ipc-settings.c M src/lmtp/lmtp-settings.c M src/log/log-settings.c M src/pop3-login/pop3-login-settings.c M src/pop3/pop3-settings.c M src/replication/aggregator/aggregator-settings.c M src/replication/replicator/replicator-settings.c M src/ssl-params/ssl-params-settings.c M src/stats/stats-settings.c 2014-05-27 21:17:34 +0300 Phil Carmody (fa4da02c2) lib: pair VA_COPY with va_end A va_copy creates a initialised va_list, as if a va_start had been done on it. Therefore, pedantically, a va_end should also be done on it. On most platforms this is a no-op, and for those where it isn't, the pairing is important. Signed-off-by: Phil Carmody M src/lib/str.c M src/lib/strfuncs.c M src/master/main.c 2014-05-27 21:17:34 +0300 Phil Carmody (9432f88be) fts: parser-html - parser can fail on attributes='with values in single quotes' If that value were to contain an odd number of double quotes, then the HTML_STATE_TAG_(D)QUOTED state would be entered and not exited. The two quoting types behave basically the same, so just add two new cases and duplicate the state transition code. M src/plugins/fts/fts-parser-html.c 2014-05-27 21:17:34 +0300 Phil Carmody (c6fea6c51) fts: parser-html - parse_tag_name returns wrong value for comments This function returns 1 more than the number of additional characters to be swallowed up by the state transition. M src/plugins/fts/fts-parser-html.c 2014-05-27 21:17:34 +0300 Phil Carmody (aef3f281e) fts: parser-html - parse_tag_name really does return an integer not a bool It seems to return 1 more than the number of additional characters (after '<') are swallowed up by the state change, not a bool. This would imply that '3' is wrong. M src/plugins/fts/fts-parser-html.c 2014-05-27 21:17:34 +0300 Phil Carmody (915bb1572) lib-storage: functions returning bool actually return ints Their return values are compared as if they are at least tri-state (-ve, 0, +ve), so really aren't bools at all. Note - this should cause the code to change in behaviour, and thus might introduce regressions as previously all non-zeroes would have been mapped to 1. Signed-off-by: Phil Carmody M src/lib-storage/index/mbox/mbox-mail.c 2014-05-27 21:17:34 +0300 Phil Carmody (a9a368761) lib-storage: context's dotlock_last_stale really is bool It's only ever read as if it's a bool, so it really is a bool. Fix a write treating it as an int. Signed-off-by: Phil Carmody M src/lib-storage/index/mbox/mbox-lock.c 2014-05-27 17:01:15 +0300 Stephan Bosch (d3d941cc8) lib-http: Fixed assertion failure in http_client_request_send_payload() caused by inappropriate retry attempt. M src/lib-http/http-client-request.c 2014-05-26 04:26:01 +0300 Timo Sirainen (3bbc5038b) virtual: Crashfix: Don't deinitialize search args that haven't been initialized. M src/plugins/virtual/virtual-storage.c 2014-05-26 04:05:34 +0300 Timo Sirainen (5b59856b8) lib-storage: Avoid refreshing mailbox list index too often. M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2014-05-26 03:58:16 +0300 Timo Sirainen (64c615dc2) lib-storage: Optimize mailbox_exists() with mailbox_list_index=yes We can return the existence from the index itself to avoid stat()s. M src/lib-storage/list/mailbox-list-index-status.c 2014-05-21 18:12:05 -0700 Timo Sirainen (53cc097d3) lib-storage: Added mailbox_list_index_very_dirty_syncs setting. This setting assumes that the mailbox list index is up to date and uses it without stat()ing backend mailbox files/dirs. (As a possible future TODO it might be useful to still do the stat()ing, but only rarely.) M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2014-05-21 06:28:36 -0700 Timo Sirainen (b36a03e5a) imap: If we're waiting for client to read data, show in process title how many bytes are buffered. M src/imap/imap-client.c M src/imap/main.c 2014-05-21 06:21:16 -0700 Timo Sirainen (10ff47d5d) lib: Added o_stream_is_corked(). M src/lib/ostream.c M src/lib/ostream.h 2014-05-15 23:41:55 +0300 Timo Sirainen (aac7ed9f7) lib-imap: Use case-insensitive comparisons everywhere for imap_id_send setting parsing. "os" and "os-version" were case-sensitive while others were not. Patch by Apple. M src/lib-imap/imap-id.c 2014-05-15 13:26:40 +0300 Timo Sirainen (7ab62198b) virtual: If backend mailbox hasn't changed, we still need to build its uidmap. M src/plugins/virtual/virtual-sync.c 2014-05-14 12:46:25 +0300 Timo Sirainen (bd7fe09b7) imap: Fixed enabling METADATA if imap_capability string was explicitly set M src/imap/imap-client.c 2014-05-14 12:28:17 +0300 Timo Sirainen (5e9e9f07b) lib-fs: Make sure we don't leak data stack. M src/lib-fs/fs-api.c 2014-05-13 15:46:01 +0200 Timo Sirainen (917f7f4f7) lib-storage: Don't leak memory if mailbox_save_set_flags() is used multiple times for keywords. This affected only some external plugins. M src/lib-storage/mail-storage.c 2014-05-12 13:21:28 +0300 Timo Sirainen (70058d29c) dsync: If incremental sync fails because of desync, log the reason why M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/dsync-transaction-log-scan.h 2014-05-12 12:51:50 +0300 Timo Sirainen (9f240e2ce) dsync: mailbox_metadata.cache_fields must be copied to permanent memory. Any other call to mailbox_get_metadata() would have cleared the memory. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c 2014-05-12 12:18:46 +0300 Timo Sirainen (82038c5b8) acl: Empty negative rights list should be the same as NULL negative rights list. There may be other places where this should be fixed, but this at least fixes errors with dsync where "-user" entry without any rights was attempted to be synced in dovecot-acl (although such entry shouldn't really have existed in the first place). M src/plugins/acl/acl-api.c 2014-05-11 22:52:30 +0300 Timo Sirainen (948a14de7) lib-mail: Compiler warning fix M src/lib-mail/message-header-encode.c 2014-05-11 22:33:21 +0300 Timo Sirainen (4a723b1e7) Added signature for changeset c55c660d6e9d M .hgsigs 2014-05-11 22:33:08 +0300 Timo Sirainen (37e437f4e) Added tag 2.2.13 for changeset c55c660d6e9d M .hgtags 2014-05-11 22:33:08 +0300 Timo Sirainen (dc95c51f7) Released v2.2.13. M NEWS M configure.ac 2014-05-11 22:32:19 +0300 Timo Sirainen (2d310b66c) lib-mail: test-message-header-decoder unit test fixed M src/lib-mail/test-message-header-decode.c 2014-05-11 22:31:54 +0300 Timo Sirainen (e701ffed3) lib-mail: Fix to previous message_header_encode() commit M src/lib-mail/message-header-encode.c 2014-05-11 22:19:15 +0300 Timo Sirainen (ff2619b17) doveadm penalty: Fixed using -a parameter M src/doveadm/doveadm-penalty.c 2014-05-11 22:15:08 +0300 Timo Sirainen (a7dcd5b93) lib-mail: message_header_encode() now preserves folding whitespace This function could still use some cleaning up, but good enough for now.. Also it should try to minimize the encoded words, not necessarily encoding everything between the first and the last words that have to be encoded. M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-encode.h M src/lib-mail/test-message-header-encode.c 2014-05-11 21:08:51 +0300 Timo Sirainen (5b6e0b656) lib-mail: message_header_encode_[bq]() now explicitly takes the first line length parameter. So this change partially reverts the previous change, because message_header_encode() was actually internally relying on this behavior. The explicit parameter makes it clearer. M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-encode.h M src/lib-mail/test-message-header-encode.c 2014-05-11 18:28:03 +0300 Timo Sirainen (63007f6d2) lib-mail: message_header_encode() no longer tries to lookup the first line's length from output string. This function is used only by Pigeonhole, which only uses it for empty output strings, so it's not useful there. Also that behavior is somewhat unexpected and confusing. M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-encode.h 2014-05-08 18:07:30 +0300 Timo Sirainen (2be0260de) Added signature for changeset 791ec610422c M .hgsigs 2014-05-08 18:07:23 +0300 Timo Sirainen (afde22a2f) Added tag 2.2.13.rc1 for changeset 791ec610422c M .hgtags 2014-05-08 18:07:23 +0300 Timo Sirainen (c4d59dcd7) Released v2.2.13.rc1. M Makefile.am M NEWS M configure.ac 2014-05-08 15:53:27 +0300 Phil Carmody (8d35582f2) treewide - use of explicit NULL in pointer comparisons rather than 0-alikes Found by sparse. M src/doveadm/dsync/dsync-mailbox-tree.c M src/lib-imap/imap-url.c M src/lib-index/mail-cache-fields.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/mail-search-build.c 2014-05-08 17:01:26 +0300 Phil Carmody (aac02871f) lib-storage: maildir - don't use a bool to store a char M src/lib-storage/index/maildir/maildir-mail.c 2014-05-08 15:56:25 +0300 Phil Carmody (b49aa341d) lib-storage: pop3c - fix invalid blank password check The pointer will never be NULL, as it's initialised pointing to an empty string, and can only be overridden by setting it to another string. So the test always failed. Instead, check the 1st character of the password. M src/lib-storage/index/pop3c/pop3c-storage.c 2014-05-08 17:02:19 +0300 Timo Sirainen (7da0a157d) lib-storage: Removed unnecessary code. mailbox_dir_name is never NULL, and when it's empty it can be handled exactly the same as when it's non-empty. M src/lib-storage/list/mailbox-list-index-backend.c 2014-05-08 15:11:26 +0300 Teemu Huovila (016157607) Removed unnecessary #includes. M src/lda/main.c M src/lib-lda/smtp-client.h 2014-05-08 14:57:56 +0300 Teemu Huovila (99399f061) run-tests.sh: Add support for reading valgrind suppressions if they exist. M run-test.sh 2014-05-08 14:34:39 +0300 Timo Sirainen (07c2fc409) lib: fd_read() didn't check the msg.msg_controllen size correctly M src/lib/fdpass.c 2014-05-06 12:44:38 +0300 Phil Carmody (ff0dc0d91) lib: cosmetic - rename parameters so that .h and .c files match These functions were flagging sparse warnings, but those warnings are trivially (robotically) dismissable if the parameters are identically named in the two contexts. Opted for whichever name seemed to be more meaningful or sensible. e.g. char** became p rather than s, as it's a pointer more than a string. M src/lib/strfuncs.c M src/lib/strfuncs.h 2014-05-08 11:20:36 +0300 Phil Carmody (f71ebf27d) lib: wildcard-match - use NULL not 0 for pointers Flagged by sparse. M src/lib/wildcard-match.c 2014-05-07 16:52:22 +0300 Phil Carmody (df831edaa) lib: a couple of trivial sparse cleanups The #include isn't needed on modern linux, as the macros are already defined The compiler seems to silently ignore redefinitions in system header files, so didn't throw a warning, but probably should have, as redefinitions can lead to insanity. The cast just makes it explicit that we're changing the prototype. M src/lib/file-set-size.c M src/lib/istream.c 2014-05-08 14:11:46 +0300 Timo Sirainen (274c54ac7) lib-storage: Make struct fail_storage/mailbox/mail_vfuncs properly extern. These could be useful when implementing some new dummy storage backends. M src/lib-storage/fail-mail-storage.c M src/lib-storage/fail-mail-storage.h M src/lib-storage/fail-mail.c 2014-05-06 18:10:55 +0300 Phil Carmody (0b3e92b60) treewide sparse cleanup - make single-unit-only data static Helps keep the global namespace clean. Not all the things suggested by sparse have been moved. All DOVECOT_ABI_VERSION strings, and anything replicated in all-settings.c by src/config/settings-get.pl has been left untouched. Some of the latter could be moved, but the script would need to be modified to replicate the 'static' (it outputs 'extern'). M src/lib-index/mail-index-strmap.c M src/lib-lda/mail-send.c M src/lib-storage/mail-search-register-imap.c M src/lib/child-wait.c M src/lib/hash-method.c M src/login-common/client-common.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser.c 2014-05-08 13:45:37 +0300 Timo Sirainen (64e75f0c9) lib-storage: Code cleanups and potential crashfix. Usually in blocks_count_lines() the full_input stream reading doesn't return eof=true in the last read but only on the next. If this had changed for some reason the code would have crashed in the assert checks. M src/lib-storage/index/index-mail-binary.c 2014-05-08 13:27:43 +0300 Timo Sirainen (543879eef) fts-tika: Removed lib-http kludgy workaround, which is no longer needed. M src/plugins/fts/fts-parser-tika.c 2014-05-08 12:39:10 +0300 Timo Sirainen (d8fc51fca) Make static analyzer happier M src/lib-mail/test-message-part.c 2014-05-08 11:29:34 +0300 Timo Sirainen (258fd0e4b) Fixed compiling when building without SSL support. M src/login-common/ssl-proxy.c 2014-05-08 10:21:56 +0300 Timo Sirainen (497803a92) run-test.sh: Valgrind version check was broken for v3.10+, removed it entirely. RHEL 5.9 has valgrind v3.5 already, so there shouldn't really be any important OSes using old valgrind that we need to support. M run-test.sh 2014-05-07 23:32:28 +0300 Timo Sirainen (ea918d503) dsync: Make static analyzer happier (hopefully) M src/doveadm/dsync/dsync-mailbox-import.c 2014-05-07 23:26:57 +0300 Timo Sirainen (0d238cec9) lib-mail: Added asserts to make static analyzer happier M src/lib-mail/message-parser.c 2014-05-07 23:25:50 +0300 Timo Sirainen (1b6228f23) Fixed compiling on systems without MAP_ANONYMOUS For example OSX. M src/lib/test-hash-method.c 2014-05-07 23:22:13 +0300 Timo Sirainen (a8672a757) auth: Minor code cleanup M src/auth/mech-rpa.c 2014-05-07 20:24:05 +0300 Timo Sirainen (55bfe6c00) auth: LDAP errors may have crashed the auth process. M src/auth/db-ldap.c 2014-05-07 20:21:02 +0300 Teemu Huovila (ac4f179bd) lib-index: Fixed detecting broken strmap index file (thread index). M src/lib-index/mail-index-strmap.c 2014-05-07 20:18:39 +0300 Teemu Huovila (8208398b7) pop3: Remove dead assignment detected by scan-build. M src/pop3/pop3-commands.c 2014-05-07 20:14:32 +0300 Timo Sirainen (42b6ab2c6) doveadm: table formatter printed header unaligned if it had hidden titles. This was broken by the previous table formatter change. M src/doveadm/doveadm-print-table.c 2014-05-07 19:47:12 +0300 Timo Sirainen (7e428afa3) lib-imap: IMAP parser didn't parse atoms correctly that started with '~' character. literal8 begins only after "~{", not immediately after "~" which is a valid ATOM-CHAR. M src/lib-imap/imap-parser.c 2014-05-07 18:39:23 +0300 Phil Carmody (c9c20b280) lib: fix md4/md5 buffer read overrun uint_fast32_t may be 64 bits and read too many bytes at the end of the buffer. This didn't actually break anything as long as there was 32 bits of readable memory past the buffer. M src/lib/md4.c M src/lib/md5.c 2014-05-07 19:34:42 +0300 Timo Sirainen (acc72c40c) fts-lucene: Don't mix definite + maybe queries for now, since it returns broken results. M src/plugins/fts-lucene/lucene-wrapper.cc 2014-05-07 17:26:21 +0300 Timo Sirainen (6da2d4fae) *-login: SSL connections didn't get closed when the client got destroyed. M src/login-common/client-common.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.h 2014-05-07 17:12:19 +0300 Timo Sirainen (3b65d5b30) acl: Global ACL file used only the first matching rights line, not merging all the matches. M src/plugins/acl/acl-global-file.c 2014-05-07 16:41:34 +0300 Timo Sirainen (0737a4fe0) lib-storage: Fixed assert-crash when looking up private flags for a mail being saved. M src/lib-storage/index/index-mail.c 2014-05-07 16:36:54 +0300 Timo Sirainen (48d831248) mdbox: Fixed race condition when creating a new mailbox and another process getting its GUID. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-storage.c 2014-05-07 13:02:29 +0300 Timo Sirainen (b0114f934) liblib: Added unit test for hash methods to make sure they don't do read access beyond buffer. This currently fails for MD4 and MD5, so they need to be fixed/replaced.. M src/lib/Makefile.am A src/lib/test-hash-method.c M src/lib/test-lib.c M src/lib/test-lib.h 2014-05-07 13:01:17 +0300 Timo Sirainen (443fd76b8) lib-compression: Added some unit testing for lib-compression. Not perfect in any way, but at least tests if things are completely broken. M src/lib-compression/Makefile.am A src/lib-compression/test-compression.c 2014-05-07 12:27:36 +0300 Timo Sirainen (e01414d09) lib-compression: gz compression didn't handle multiple flushes correctly. M src/lib-compression/ostream-zlib.c 2014-05-07 12:26:58 +0300 Timo Sirainen (f6a21dbf7) lib-compression: istream-lz4 shouldn't crash when closing the stream multiple times. M src/lib-compression/istream-lz4.c 2014-05-07 12:26:38 +0300 Timo Sirainen (38ec64f18) lib-compression: Fixed LZMA compression. The code now looks more like the doc/examples/01_compress_easy.c distributed with xz-utils. Most importantly this changes LZMA_OK to be allowed as a result for lzma_code(zs, LZMA_FINISH). M src/lib-compression/ostream-lzma.c 2014-05-06 15:34:00 +0300 Timo Sirainen (d97801ee5) pop3: Fixed assert-crash with some settings when there are 0 mails. M src/pop3/pop3-commands.c 2014-05-05 18:37:16 +0300 Timo Sirainen (d8d50edd0) mkdir_parents(): Handle mkdir() EEXIST errors that may happen during race conditions. We don't care about EEXIST errors that happen when trying to mkdir() parent directories, only if it happens when mkdir()ing the last directory. M src/lib/mkdir-parents.c 2014-05-05 16:24:53 +0300 Timo Sirainen (3d14f452f) auth: If authentication fails, never send back "nologin" field. This only causes confusion. M src/auth/auth-request-handler.c 2014-05-05 16:02:48 +0300 Timo Sirainen (edd3573b2) message_header_decode_utf8() wasn't used correctly with NULL instead of FALSE parameter. M src/doveadm/doveadm-mail-fetch.c M src/lib-storage/index/index-sort.c 2014-05-05 16:01:58 +0300 Timo Sirainen (66f9709e0) lib-storage: mail_get_headers_utf8() now replaces NULs with spaces. Perhaps there should also be another API function which actually allows returning strings with NULs in them. M src/lib-storage/index/index-mail-headers.c 2014-05-05 16:00:52 +0300 Timo Sirainen (b5ad250ae) doveadm mail fetch: Use mail_get_headers_utf8() when fetching hdr.*.utf8 This doesn't really matter but may allow minor optimizations later. M src/doveadm/doveadm-mail-fetch.c 2014-05-05 15:39:58 +0300 Timo Sirainen (a5f1628ad) lib-mail: Added message_header_encode_data() to support encoding also NUL characters. M src/lib-mail/Makefile.am M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-encode.h M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c 2014-05-05 15:05:20 +0300 Timo Sirainen (513928e1d) liblib: Added str_append_data(), which is simply a wrapper to buffer_append() This is intended for appending data that may contain NUL characters that are wanted to be added to the string. M src/lib/str.c M src/lib/str.h 2014-05-05 15:09:27 +0300 Phil Carmody (36f614569) lib: quell sparse "warning: Using plain integer as NULL pointer" The first element of the structure is a pointer, make that explicit. M src/lib/array-decl.h 2014-05-05 14:57:13 +0300 Timo Sirainen (fb69cdfbc) lib-mail: message_header_encode() needs to encode control characters as well. M src/lib-mail/message-header-encode.c M src/lib-mail/test-message-header-encode.c 2014-05-05 14:28:33 +0300 Timo Sirainen (fc5f51f1c) auth: Added %{orig_user}, %{orig_username} and %{orig_domain} variables M src/auth/auth-request.c M src/auth/auth-request.h 2014-05-05 14:18:31 +0300 Timo Sirainen (7da99e97d) imap: Brought back the original SEARCH PARTIAL code with the minor fix that it actually needed. The new code in v2.2.11 was completely wrong. The code in previous commit was broken with SORT. The original code was correct otherwise, except it couldn't handle partial1 pointing past the valid range. M src/imap/imap-search.c 2014-05-05 14:02:58 +0300 Timo Sirainen (e0bca7e18) imap: Fixed SEARCH PARTIAL to work correctly with UIDs and with SORT results. M src/imap/imap-search.c 2014-05-05 14:02:16 +0300 Timo Sirainen (199566f5a) Added seq_range_array_remove_nth() M src/lib/seq-range-array.c M src/lib/seq-range-array.h M src/lib/test-seq-range-array.c 2014-05-02 19:31:49 +0300 Timo Sirainen (464e82904) dsync: If we notice that incremental sync won't work, don't continue doing it. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c 2014-05-02 15:43:30 +0300 Timo Sirainen (27712ff41) imap: Allow longer ID command parameters without disconnecting the client. M src/imap-login/client.c M src/imap-login/client.h M src/lib-imap/imap-id.c M src/lib-imap/imap-id.h M src/lib-master/master-auth.h 2014-05-02 13:48:36 +0300 Timo Sirainen (9559586a7) maildir: Maildir S=size fixing now works also with zlib etc. plugins that modify the files. M src/lib-storage/index/maildir/maildir-mail.c 2014-05-02 13:36:00 +0300 Timo Sirainen (fe0d19245) maildir: Returning mail's received/saved date or refcount was sometimes broken with zlib plugin. If the value wasn't already cached and the same transaction also accessed the message body, i_stream_stat() was used, which ended up to i_stream_seekable_stat() due to caching the file, which didn't again fstat() the actual maildir file but just used some internal values. M src/lib-storage/index/maildir/maildir-mail.c 2014-05-02 13:21:18 +0300 Timo Sirainen (61114b471) kqueue: Changed all i_fatal() calls to i_panic()s to make debugging them possible. M src/lib/ioloop-kqueue.c 2014-05-02 12:11:54 +0300 Timo Sirainen (c5bf07c13) lib-index: Fixed crash when header fields count was too high in cache file. M src/lib-index/mail-cache-fields.c 2014-05-02 11:58:52 +0300 Timo Sirainen (15bfe73fb) lib-storage: mailbox_settings_find() now takes namespace parameter instead of user. This fixes an infinite (until stack gets full) loop with shared mailboxes: mail_namespace_find() -> mailbox_list_get_storage() -> mailbox_settings_find() -> mail_namespace_find() -> ... M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mailbox-list.c 2014-05-02 11:40:05 +0300 Timo Sirainen (bddb1ba6c) auth: Fixed userdb extra fields handling in passdb failure. userdb prefetch -flag wasn't correctly set, causing the prefetch userdb in some situations incorrectly either to be called or not be called. This also fixes a crash when using userdb static and multiple passdbs. The userdb_reply was set to NULL, which caused a crash later. M src/auth/auth-request.c M src/auth/auth-request.h 2014-05-02 11:12:58 +0300 Timo Sirainen (be48f0e56) imap: Make sure we don't return empty "* n FETCH ()" reply, which violates RFC 3501 ABNF. It happened only during error conditions, and it would be a bit too much trouble to try to remove the reply entirely, so just append the message UID there. M src/imap/imap-fetch.c M src/imap/imap-fetch.h 2014-05-02 11:06:27 +0300 Timo Sirainen (6165a82cd) imap: If FETCH BINARY fails because of invalid MIME part data, return [UNKNOWN-CTE] error. M src/imap/cmd-fetch.c M src/imap/imap-fetch-body.c 2014-05-02 10:40:12 +0300 Timo Sirainen (2a5d68cfb) example-config: Removed mail_nfs_* settings, since they shouldn't be used anyway. M doc/example-config/conf.d/10-mail.conf 2014-05-02 10:35:05 +0300 Timo Sirainen (5d2c8976d) lib-storage: Mailbox list indexes didn't use mail_fsync setting. M src/lib-storage/list/mailbox-list-index.c 2014-05-02 09:29:05 +0300 Timo Sirainen (a406615fb) virtual: Fixed assert-crash when doing changes to backend mailbox via the virtual mailbox. Caused by the recent lazy mailbox opening changes. M src/plugins/virtual/virtual-sync.c 2014-04-30 18:46:55 +0300 Timo Sirainen (9456a4a3e) lib-storage: mail_never_cache_fields=* means now to disable all caching. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-private.h 2014-04-30 17:37:43 +0300 Timo Sirainen (ceac44e75) lib-storage: Partially reverted the mail.get_real_mail() API change for backwards compatibility. I hadn't realized Pigeonhole was also using it. (I thought it was using only the mail_get_real_mail() public API.) This fixes Pigeonhole v0.4.2 to work again. M src/lib-storage/fail-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail.c M src/plugins/virtual/virtual-mail.c 2014-04-30 06:08:46 +0300 Timo Sirainen (8bc87e22f) dsync: saved-date doesn't need to be looked up until mail body is being read. This should improve the performance when the saved-date isn't already cached or otherwise quickly accessible. This change also makes dsync slightly incompatible with earlier versions. When using dsync with an earlier version the saved-dates aren't synced. It would be too much trouble to try to preserve full backwards compatibility, especially because saved-date doesn't matter so much and isn't even visible to IMAP clients. M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c 2014-04-30 06:03:56 +0300 Timo Sirainen (9f09d0832) maildir: Make sure the filename contains S=size and W=size even if GUID doesn't. M src/lib-storage/index/maildir/maildir-save.c 2014-04-29 16:44:58 +0300 Timo Sirainen (5192589b0) maildir: Make sure we don't replace correct mail sizes with broken ones when preserving GUID. M src/lib-storage/index/maildir/maildir-save.c 2014-04-29 16:14:14 +0300 Timo Sirainen (108340ffa) lib-mail: test-istream-attachment updated M src/lib-mail/test-istream-attachment.c 2014-04-29 16:15:09 +0300 Timo Sirainen (dce10c2f6) lib-mail: istream-attachment-extractor didn't correctly handle increasing base64 line length. Based on patch by Pavel Stano M src/lib-mail/istream-attachment-extractor.c 2014-04-29 16:03:17 +0300 Timo Sirainen (ba8c3c767) lib-mail: istream-attachment-extractor handled mixed LFs vs CRLFs correctly. Unless all the lines have the same newlines, the attachment can't be recreated back exactly the same. M src/lib-mail/istream-attachment-extractor.c 2014-04-29 13:57:44 +0300 Timo Sirainen (a7c8901e0) lib-mail: Added more tests to test-istream-dot. M src/lib-mail/test-istream-dot.c 2014-04-29 13:35:06 +0300 Timo Sirainen (ba8ff75a1) lib-storage: Fixed crash if mailbox_save_cancel() was called in save_finish()/copy() method. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2014-04-29 13:10:28 +0300 Timo Sirainen (b9ec0443d) lib-index: Small code cleanup M src/lib-index/mail-index-sync-update.c 2014-04-29 12:35:05 +0300 Timo Sirainen (a0261d4fe) istream-lf: Cleanup & performance improvement. memchr() is faster than lopping through the data ourself. M src/lib/istream-crlf.c 2014-04-29 00:53:01 +0300 Timo Sirainen (fd4eaea7f) dsync: Yet another fix to working with old versions. M src/doveadm/dsync/dsync-ibc-stream.c 2014-04-29 00:50:08 +0300 Timo Sirainen (b8cf3beb9) lib-lda: More smtp-client.h API changes to support multiple destination addresses. M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-lda/smtp-client.h 2014-04-29 00:48:54 +0300 Timo Sirainen (816fa4d6c) dsync: Fixed new dsync versions to work again with older versions. M src/doveadm/dsync/dsync-ibc-stream.c 2014-04-28 20:14:03 +0300 Timo Sirainen (40440c0fe) dsync: If incremental dsync finds that its state is stale, retry (later) with full sync. This works only when the master itself notices such changes locally. Remote changes aren't noticed, because the master doesn't send the state to remote dsync and the master is also the one that decides which mailboxes are synced. The fix to this probably means sending the state string to remote dsync and have it check if the state is still valid (= protocol change). M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-transaction-log-scan.c 2014-04-28 20:10:56 +0300 Timo Sirainen (7d315281a) dsync: Include messages_count in the mailbox states. This allows detecting that stateful dsync can't be done when message count is suddenly wrong. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h M src/doveadm/dsync/dsync-mailbox-state.c M src/doveadm/dsync/dsync-mailbox-state.h 2014-04-28 19:12:01 +0300 Timo Sirainen (089acbfed) dsync: Finished previous change to actually compile M src/doveadm/dsync/dsync-brain-private.h 2014-04-28 18:34:27 +0300 Timo Sirainen (f59c16625) doveadm replicator add command added. This allows quickly adding users from userdb that don't exist in replicator. For example "doveadm replicator add '*'" adds all the new users from userdb. This isn't really necessary though. Users will be automatically added as soon as their mailboxes change in some way and replicator gets notified about them. M src/doveadm/doveadm-replicator.c M src/replication/replicator/Makefile.am M src/replication/replicator/doveadm-connection.c A src/replication/replicator/replicator-queue-auth.c M src/replication/replicator/replicator-queue.h M src/replication/replicator/replicator.c 2014-04-28 18:24:04 +0300 Timo Sirainen (466d1b777) dsync: If dsync was started via doveadm-server, show the remote client's IP address in ps output. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h 2014-04-27 19:05:38 +0300 Stephan Bosch (b36e026fb) lib-http: http-client: Prevented http_client_request_continue_payload() from segfaulting when the callback sets the request pointer to NULL. M src/lib-http/http-client-request.c 2014-04-27 19:05:35 +0300 Stephan Bosch (0d5c9a80e) lib-http: http-client: Forgot to switch dns-client io_loop in http_client_request_continue_payload() in ealier change (6c3bd941e153). M src/lib-http/http-client-request.c 2014-04-26 22:40:14 +0300 Stephan Bosch (880230bc2) lib-http: Fixed problem with connections idling indefinitely. Forgot to check for idle connections when request finished after waiting for payload to be read by application. M src/lib-http/http-client-connection.c 2014-04-25 19:01:09 +0300 Timo Sirainen (ea2c9ff03) lib-http: Better error handling fix for payload read/write failures M src/lib-http/http-client-request.c 2014-04-25 18:55:31 +0300 Timo Sirainen (5777eef99) lib-http: Failed payload read/write error was handled wrongly as "stream input size changed". M src/lib-http/http-client-request.c 2014-04-25 18:03:36 +0300 Timo Sirainen (d5e839aea) iostream-temp: Improved stream naming. M src/lib/iostream-temp.c 2014-04-25 17:29:18 +0300 Timo Sirainen (cd8a262bd) Compiler warning fixes M src/doveadm/dsync/dsync-mailbox-import.c 2014-04-25 17:28:39 +0300 Timo Sirainen (e475db821) dsync: Added more debug output M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain.c 2014-04-25 16:35:51 +0300 Timo Sirainen (eac7ab8d3) doveadm dump: Added support for mobox extensions in dovecot.index. M src/doveadm/doveadm-dump-index.c 2014-04-25 16:18:09 +0300 Timo Sirainen (290ef5155) lib-lda: Use the new smtp_client_init(), not _open() M src/lib-lda/mail-send.c 2014-04-25 16:15:20 +0300 Timo Sirainen (829b29f8b) lib-lda: When non-RCPT/DATA command fails permanently, translate it internally to temporary failure. We shouldn't be answering permanent failures to RCPT/DATA command when the failure really had nothing to do with the recipient/content itself. Most likely it's just some server misconfiguration, which should be treated as temporary error. M src/lib-lda/lmtp-client.c 2014-04-25 15:57:03 +0300 Timo Sirainen (b78d055f9) lib-lda: mail_send_rejection() logs permanent rejections now with info level. There's no need to log an error when return-path is invalid. M src/lib-lda/mail-send.c 2014-04-25 15:54:49 +0300 Timo Sirainen (d9424f379) lib-lda: Added new smtp_client_init/deinit() APIs The new API allows better error handling. M src/lib-lda/smtp-client.c M src/lib-lda/smtp-client.h 2014-04-25 15:52:37 +0300 Timo Sirainen (2262531bc) safe_memset(size=0) triggered read access to data[0], possibly crashing. M src/lib/safe-memset.c 2014-04-25 15:46:20 +0300 Timo Sirainen (b7540564b) lib-http: Added more information to "stream input size changed" error M src/lib-http/http-client-request.c 2014-04-25 15:31:08 +0300 Timo Sirainen (3a61b68f1) lib-lda: Removed unused mail_send_forward() M src/lib-lda/mail-send.c M src/lib-lda/mail-send.h 2014-04-25 10:49:45 +0300 Timo Sirainen (66f7fc500) dsync: If a parent \Noselect gets autocreated, don't fail later when trying to re-create it. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c 2014-04-24 18:18:42 +0300 Timo Sirainen (3ef4aca8c) dsync: Fixed high data stack memory usage M src/doveadm/dsync/dsync-mailbox-import.c 2014-04-24 13:49:25 +0300 Timo Sirainen (f20e7fbdc) i_stream_read_next_line(): Set also errno=ENOBUFS on too large line. Some callers assume that errno is set to same as istream->stream_errno M src/lib/istream.c 2014-04-23 23:26:49 +0300 Timo Sirainen (ab779efe6) director: Fixed handling weak users when there were exactly 2 director servers in the ring. M src/director/director-connection.c M src/director/director-request.c M src/director/director.c M src/director/director.h 2014-04-23 22:33:48 +0300 Timo Sirainen (e256ae453) doveadm director map -u: Don't connect to director socket, it's not needed. M src/doveadm/doveadm-director.c 2014-04-23 22:30:28 +0300 Timo Sirainen (3957200d9) doveadm director map: Added -h and -u parameters to quickly map between username and hash. M src/doveadm/doveadm-director.c 2014-04-23 22:15:28 +0300 Timo Sirainen (cac19595c) doveadm director map: Show also the username hash. M src/doveadm/doveadm-director.c 2014-04-23 22:13:08 +0300 Timo Sirainen (6d568a2a5) director: When logging about request timeout, log also the username hash. M src/director/director-request.c 2014-04-23 20:55:04 +0300 Timo Sirainen (f57e4c0f2) doveadm replicator replicate: Added -f parameter to force a full sync for user. M src/doveadm/doveadm-replicator.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue.h 2014-04-23 20:53:55 +0300 Timo Sirainen (cb9d0f307) doveadm replicator replicate: -p parameter wasn't working correctly. We were just replicating the "-p" as the username. M src/doveadm/doveadm-replicator.c 2014-04-23 19:21:40 +0300 Timo Sirainen (5b59eecbc) dsync: Added assert M src/doveadm/dsync/dsync-ibc-stream.c 2014-04-23 19:20:23 +0300 Timo Sirainen (dc4f9e039) dsync: When initializing via doveadm-server, change the iostream buffer sizes to unlimited. M src/doveadm/dsync/doveadm-dsync.c 2014-04-23 19:19:24 +0300 Timo Sirainen (556f95092) Added o_stream_get_max_buffer_size() M src/lib/ostream.c M src/lib/ostream.h 2014-04-23 16:45:10 +0300 Timo Sirainen (a38539949) virtual: Fixed assert-crash in IDLE caused by earlier changes. This change negates all the improvements of the earlier changes when IDLE is used. This could be fixed by using mailbox-list-notify.h API. M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c 2014-04-23 16:31:36 +0300 Timo Sirainen (3e1d94509) virtual: Delay initializing search args until the mailbox is actually opened. Fixes assert-crash caused by recent changes when virtual mailbox search args contained e.g. keywords. M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c 2014-04-22 13:15:21 +0300 Timo Sirainen (b13a8e19e) safe_memset() wasn't safe with modern compilers anymore. Another try based on David Jacobson's code in https://www.mail-archive.com/openssl-dev@openssl.org/msg34134.html : """ Since vs points to a volatile, the load in the while clause actually has to be done. That forces the compiler to actually store c into at least the byte that is tested, in practice byte zero. But the fact that the index is volatile zero, and since it is volatile it could spontaneously change to anything, the compiler has to store c into all bytes. The key observation is that while you can't pass a volatile to memset (you get a warning and the volatile gets stripped away), you can use a volatile in a test that could go the wrong way if the memset were elided. """ M src/lib/safe-memset.c 2014-04-19 11:23:18 +0200 Stephan Bosch (67e0afe62) connection: Added support for creating a stream from input/output stream pair. M src/lib/connection.c M src/lib/connection.h 2014-04-19 11:21:47 +0200 Timo Sirainen (856ae2ad9) lib-http: Fixed resource leaks in http_client_wait() occurring a dns_client is used. If all DNS lookups finished before the end of the wait cycle, the dns_client would not be switched back to the original ioloop. M src/lib-http/http-client-host.c M src/lib-http/http-client.c M src/lib-http/test-http-client.c 2014-04-19 11:21:19 +0200 Timo Sirainen (994a2b017) lib-dns: Added dns_client_switch_ioloop(). M src/lib-dns/dns-lookup.c M src/lib-dns/dns-lookup.h 2014-04-19 11:07:45 +0200 Timo Sirainen (7cb40f223) ioloop: Fixed segfault crash in io_loop_call_pending(). When a callback called io_set_pending(), the io_loop_call_pending() loop crossed the end of the ioloop->io_files list. Based on patch by Stephan Bosch M src/lib/ioloop.c 2014-04-17 16:42:02 +0200 Timo Sirainen (57b523eeb) fts-lucene: Added mime_parts parameter to index MIME parts as separate documents. This is in preparation for being able to actually read such information and show it to clients via some new IMAP extension. Also it might be better to index some MIME parts together to avoid wasting disk space, but for now this is all or nothing. For example anything that is "message body" could probably be indexed without the part number at all. M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/fts-lucene-plugin.h M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h 2014-04-17 16:35:05 +0200 Timo Sirainen (ad3951538) fts-lucene: Fixed "doveadm dump" crash when built with stemmer M src/plugins/fts-lucene/lucene-wrapper.cc 2014-04-17 16:18:02 +0200 Timo Sirainen (3e7c452d7) lib-mail: Compile fix for last change.. M src/lib-mail/message-part.c 2014-04-17 16:12:00 +0200 Timo Sirainen (69111aa5f) fts: Added message_part to fts_backend_build_key. This allows FTS backends to index MIME parts separately from each others. M src/plugins/fts/fts-api.h M src/plugins/fts/fts-build-mail.c 2014-04-17 16:09:52 +0200 Timo Sirainen (6b8d5b8d0) lib-mail: Added support for struct message_part <-> index number translations. M src/lib-mail/Makefile.am M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c A src/lib-mail/message-part.c M src/lib-mail/message-part.h A src/lib-mail/test-message-part.c 2014-04-17 16:04:13 +0200 Timo Sirainen (f684e87d4) lib-mail: Moved struct message_part to a separate message-part.h M src/lib-mail/Makefile.am M src/lib-mail/message-parser.h A src/lib-mail/message-part.h 2014-04-17 14:24:18 +0200 Timo Sirainen (544a727de) auth: If passdb/userdb has a name, use it for the log prefix instead of the driver name. M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-settings.h M src/auth/auth.c 2014-04-17 14:21:55 +0200 Timo Sirainen (613526009) auth: Use special AUTH_SUBSYS_DB/MECH parameters as auth_request_log*() subsystem. This avoids hardcoded strings all over the place and also allows assigning the correct passdb/userdb name for log messages generated by generic passdb/userdb code, which doesn't know exactly where it was called from. M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/db-checkpassword.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/mech-anonymous.c M src/auth/mech-apop.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-dovecot-token.c M src/auth/mech-external.c M src/auth/mech-gssapi.c M src/auth/mech-login.c M src/auth/mech-ntlm.c M src/auth/mech-otp.c M src/auth/mech-plain.c M src/auth/mech-rpa.c M src/auth/mech-scram-sha1.c M src/auth/mech-skey.c M src/auth/mech-winbind.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-dict.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-pam.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sia.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c 2014-04-17 12:26:46 +0200 Timo Sirainen (214fc90c6) imapc: Fixed fetching specific headers without imapc_features=fetch-headers M src/lib-storage/index/imapc/imapc-mail.c 2014-04-17 10:29:10 +0200 Timo Sirainen (ce87b647a) fts: Added fts-parser support for Tika It can be enabled by setting: plugin { fts_tika = http://localhost:9998/tika/ } M src/plugins/fts/Makefile.am A src/plugins/fts/fts-parser-tika.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-parser.h 2014-04-17 10:27:43 +0200 Timo Sirainen (4682f86ba) fts: Never put text/plain contents through fts-parsers. M src/plugins/fts/fts-parser.c 2014-04-17 10:26:11 +0200 Timo Sirainen (3ad57148a) fts: Added unload() method to fts-parsers to allow them to cleanup before plugin unload. M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-parser.h M src/plugins/fts/fts-plugin.c 2014-04-17 10:17:09 +0200 Timo Sirainen (a0613a630) lib-http: http_client_request_finish_payload() no longer waits for the entire result payload. The caller can now read it instead, or just discard it by not reading it. M src/lib-http/http-client-request.c 2014-04-17 09:45:55 +0200 Timo Sirainen (f8e6a1246) fts: Free fts-parser on failures. M src/plugins/fts/fts-build-mail.c 2014-04-16 18:19:57 +0200 Timo Sirainen (c61a85ec5) doveadm replicator dsync-status: Show replication type as "-" for non-working dsyncs. M src/replication/replicator/doveadm-connection.c 2014-04-16 16:05:12 +0200 Timo Sirainen (0dfacbe4c) maildir: Added maildir_empty_new setting to avoid keeping mails in new/ directory. This is useful for example when using an external MDA that calls "doveadm index" and the user hasn't opened the mailbox for a long time. Also this removes the delay that user may see when opening a rarely accessed mailbox, which renames a ton of files to cur/ while the user is waiting. M doc/example-config/conf.d/10-mail.conf M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-settings.h M src/lib-storage/index/maildir/maildir-sync.c 2014-04-16 15:44:46 +0200 Timo Sirainen (b20018e45) fts-solr: Removed unnecessary code M src/plugins/fts-solr/solr-connection.c 2014-04-16 10:40:28 +0200 Timo Sirainen (8af300dd6) replicator: Improve logging import/export errors. M src/replication/replicator/replicator-queue.c 2014-04-16 00:13:42 +0200 Timo Sirainen (d48fcf2c0) fts-lucene: Fix to previous change. We allocated way too little memory. M src/plugins/fts-lucene/lucene-wrapper.cc 2014-04-16 00:04:29 +0200 Timo Sirainen (4c0aff96f) lib-storage: Further changes to mailbox_alloc_guid() caching. We'll now cache the GUIDs forever and force invalidation after mailbox rename or when mailbox GUIDs have been updated. This is what dsync needs, especially for good performance, and currently there aren't any other users for this API. M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-list-private.h 2014-04-15 23:44:54 +0200 Timo Sirainen (d6499957e) lib-storage: mailbox_alloc_guid() shouldn't refresh GUID cache on every nonexistent GUID. Refresh it only if we know it has had some changes (made by our process) or timestamp has changed. This should handle the cases that are currently important (=single dsync run). M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-list-private.h 2014-04-15 23:41:50 +0200 Timo Sirainen (debafc38f) dsync: Fix to previous commit to actually compile.. M src/doveadm/dsync/dsync-brain.c 2014-04-15 23:23:37 +0200 Timo Sirainen (a4667f423) replicator: Fixed crash caused by "doveadm replicator dsync-status" in some situations. M src/replication/replicator/doveadm-connection.c 2014-04-15 23:02:11 +0200 Timo Sirainen (f038c71a9) dsync: Fixed giving -n "" followed by other -n parameters. M src/doveadm/dsync/dsync-brain.c 2014-04-15 22:28:26 +0200 Timo Sirainen (37e5638dd) fts-lucene: Don't allocate large amounts of memory from stack. This probably only happened for huge header values. M src/plugins/fts-lucene/lucene-wrapper.cc 2014-04-15 18:24:31 +0200 Timo Sirainen (2e08b126f) replicator: Added "doveadm replicator dsync-status" command. M src/doveadm/doveadm-replicator.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/doveadm-connection.h M src/replication/replicator/dsync-client.c M src/replication/replicator/dsync-client.h M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-brain.h M src/replication/replicator/replicator.c 2014-04-15 17:42:31 +0200 Timo Sirainen (079951cc7) dsync: If remote command fails, show the full command in the error message. M src/doveadm/dsync/doveadm-dsync.c 2014-04-15 17:33:12 +0200 Timo Sirainen (46d352bb5) doveadm-server: Using any command line parameters caused crashes due to missing getopt() reset. M src/doveadm/client-connection.c 2014-04-15 17:20:02 +0200 Timo Sirainen (18a41cbd3) virtual: Delay opening the backend mailboxes until it's really necessary. This should improve the performance a lot with mailbox_list_index=yes when opening virtual mailboxes whose backend mailboxes are mostly unchanged. M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c 2014-04-15 17:08:34 +0200 Timo Sirainen (d8615e0be) Replaced mail_get_real_mail() callers with mail_get_backend_mail() M src/imap/imap-fetch.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2014-04-15 17:06:57 +0200 Timo Sirainen (541b251a9) lib-storage: Replaced mail_get_real_mail() with mail_get_backend_mail() that can fail. For now the mail_get_real_mail() can still be used for backwards compatibility. M src/lib-storage/fail-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/plugins/virtual/virtual-mail.c 2014-04-15 16:37:26 +0200 Timo Sirainen (9e6bc7ee1) Removed unused code. M src/lib/primes.c 2014-04-15 15:21:37 +0200 Timo Sirainen (aaf162d4e) lib-storage: Don't open mailbox on mailbox_get_status() if we have no status items left to get. M src/lib-storage/index/index-status.c 2014-04-15 15:13:28 +0200 Timo Sirainen (faad8eaec) lib-storage: Avoid rebuilding the whole mailbox list index when one mailbox changes. M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index.h 2014-04-09 23:19:29 +0300 Timo Sirainen (92878b897) lazy_expunge: If setting is empty, disable the plugin. Instead of assuming that we want to use prefix="" as the lazy_expunge namespace, which is highly unlikely anyone will ever want to do. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2014-04-09 23:17:09 +0300 Timo Sirainen (a3036257f) lazy_expunge: If lazy-expunge mailbox open/create fails, show the mailbox name in error message. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2014-04-09 18:14:33 +0300 Timo Sirainen (1240586a6) doveadm backup: Another attempt at fixing assert-crashes when deleting mailboxes. Only two-way syncs really care about the mailbox deletion logs which set existence=DELETED. So actually the log reading could be skipped entirely for doveadm backup to speed things up. In any case the code currently relies that after sync_tree_sort_and_delete_mailboxes() the tree no longer has nodes with existence=DELETED and mailbox_guid!=0, because that assert-crashes in sync_create_mailboxes(). The assert() could probably simply be changed into an if(), but might as well keep the code as it was originally intended and not have the sync/backup behave more differently than needed. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2014-04-09 17:05:12 +0300 Timo Sirainen (b9de28ca5) maildir: If GUID can't be preserved in filename due to size change, set it in dovecot-uidlist This fixes problems with dsync when zlib is used and filenames/GUIDs don't contain (correct) S=sizes. M src/lib-storage/index/maildir/maildir-save.c 2014-04-08 17:07:31 +0200 Timo Sirainen (93ae7fcd3) liblib: Fixed crash using str_c() in different stack frame with str_new(0) allocated string. M src/lib/str.c M src/lib/test-str.c 2014-04-08 08:49:53 +0200 Timo Sirainen (a14a28af0) Compiler warning fix M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2014-04-08 00:20:57 +0300 Timo Sirainen (488548926) doveadm backup: Fix to handling mailbox deletions. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2014-04-08 00:09:03 +0300 Timo Sirainen (a1fff8941) liblib: Added unit test for t_strsplit(data="") M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2014-04-08 00:08:21 +0300 Timo Sirainen (e569900bb) dsync: Fixed using -n "" parameter M src/doveadm/dsync/dsync-brain.c 2014-04-04 01:23:29 +0300 Timo Sirainen (6d9ce72ce) maildir: If istream_opened is set by a plugin, don't try to fix S=size by renaming. Although this could be fixed in a nicer way by actually calculating the correct S=size and using that for renaming. M src/lib-storage/index/maildir/maildir-mail.c 2014-04-04 01:03:17 +0300 Timo Sirainen (911d873c0) lib-imap-storage: Don't waste effort getting mail's physical size if it can't be done quickly. M src/lib-imap-storage/imap-msgpart.c 2014-04-04 00:53:34 +0300 Timo Sirainen (a30fd271b) lib-imap-storage: Reverted previous change. It broke FETCH BODY [n.HEADER.FIELDS ..] M src/lib-imap-storage/imap-msgpart.c 2014-04-04 00:30:11 +0300 Timo Sirainen (d6691198d) lib-imap-storage: Minor code cleanup M src/lib-imap-storage/imap-msgpart.c 2014-04-04 00:14:42 +0300 Timo Sirainen (7e6522921) maildir: If istream_opened hook is set, don't return stat()ed file size as physical size. That's pretty much always wrong. The hook is set with e.g. zlib and mail-filter and similar plugins that modify the mail stream. M src/lib-storage/index/maildir/maildir-mail.c 2014-04-04 00:13:35 +0300 Timo Sirainen (e9a182196) lib-storage: When trying to get body size quickly, make sure we don't end up reading the mail body. M src/lib-storage/index/index-mail.c 2014-04-03 23:38:17 +0300 Timo Sirainen (522925f6e) maildir: Fixed auto-creating INBOX that was missing tmp/ directory (but not cur/) M src/lib-storage/index/maildir/maildir-storage.c 2014-04-03 19:59:30 +0300 Timo Sirainen (37703e8d0) Use io_add_istream() wherever possible. This shouldn't fix anything, but might make some functionality easier to implement in future. M src/doveadm/dsync/dsync-ibc-stream.c M src/imap/cmd-append.c M src/imap/cmd-idle.c M src/imap/imap-client.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c M src/lib-http/test-http-client.c M src/pop3/pop3-client.c 2014-04-03 19:56:47 +0300 Timo Sirainen (9937dfc15) lib-http: Wrap response payload istream into a istream-timeout. M src/lib-http/http-client-connection.c M src/plugins/fts-solr/solr-connection.c 2014-04-03 19:54:27 +0300 Timo Sirainen (87da941c0) lib-ssl-iostream: Make sure I/O input event is triggered after ostream-ssl has read some data to buffer. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/istream-openssl.c 2014-04-03 19:53:13 +0300 Timo Sirainen (854b4074a) Added istream-timeout, which triggers I/O event and fails with ETIMEDOUT after the timeout. M src/lib/Makefile.am A src/lib/istream-timeout.c A src/lib/istream-timeout.h 2014-04-03 19:51:52 +0300 Timo Sirainen (4c096615c) Added io_add_istream() and related functionality for combining the ioloop/istream. The idea here is that it's possible to implement asynchronous istreams when there isn't a file descriptor that can be used to reliably receive updates. M src/lib/ioloop-private.h M src/lib/ioloop.c M src/lib/ioloop.h M src/lib/istream-private.h M src/lib/istream.c M src/lib/istream.h 2014-04-03 19:47:49 +0300 Timo Sirainen (f922ecaf7) ioloop: Added io_set_pending() M src/lib/ioloop-epoll.c M src/lib/ioloop-kqueue.c M src/lib/ioloop-poll.c M src/lib/ioloop-private.h M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/ioloop.h 2014-04-03 18:21:39 +0300 Timo Sirainen (22c646fc8) dsync: Don't assert-crash if we have the same mailbox name in conflicting namespaces. M src/doveadm/dsync/dsync-brain-mailbox-tree.c 2014-04-03 14:41:25 +0300 Timo Sirainen (710129a6c) DEBUG: Make sure errno isn't changed by vsnprintf()/malloc()/free() implementations. They shouldn't, so this should only be a sanity check when running with devel-checks. Various parts in the code rely on errno not being changed by *_strdup_printf() calls. M src/lib/data-stack.c M src/lib/mempool-system.c M src/lib/strfuncs.c 2014-04-03 12:54:18 +0300 Timo Sirainen (a2738cdb6) i_stream_read(): If stream_errno is set, fail immediately. Previously the stream_errno was reset to 0, but this required the istream implementation to correctly set the stream_errno back, which wasn't often done. M src/lib/istream.c 2014-04-03 12:50:43 +0300 Timo Sirainen (386619025) lib-ssl-iostream: Error handling fix. Don't set last_error="(null)" when the connection was simply disconnected. M src/lib-ssl-iostream/istream-openssl.c 2014-03-29 22:45:16 +0200 Timo Sirainen (91c58af8e) fts-sorl: Skip returned duplicate results. Similar to bugfix d63b209737be in fts-lucene. This caused assert-crash at least when searching from virtual mailbox because the score array was larger than the actual number of results. M src/plugins/fts-solr/solr-connection.c 2014-03-28 15:59:48 +0200 Teemu Huovila (ba6722537) pop3: Fixed off-by-one bug in the sequence number fix of d20059f7d3a1. M src/pop3/pop3-commands.c 2014-03-28 15:31:06 +0200 Timo Sirainen (bf2760c13) lib-fs: posix backend now names the istreams with the file's path. M src/lib-fs/fs-posix.c 2014-03-28 15:29:53 +0200 Timo Sirainen (c449e0b08) lib-fs: ostream-metawrap shouldn't count metadata header as part of the stream offsets. M src/lib-fs/ostream-metawrap.c 2014-03-27 16:00:49 +0100 Timo Sirainen (ec13aa118) lib-fs: ostream-metawrap didn't update the output stream's offset M src/lib-fs/ostream-metawrap.c 2014-03-27 14:57:44 +0100 Timo Sirainen (890217a92) dovecot.m4: Minor message improvement. M dovecot.m4 2014-03-27 15:39:33 +0200 Timo Sirainen (d0f9c91ed) lib-fs: Fixes to posix backend's FS_OPEN_MODE_CREATE_UNIQUE_128 handling. M src/lib-fs/fs-posix.c 2014-03-27 14:37:10 +0100 Timo Sirainen (fae30913b) mdbox: Don't hoard file descriptors when saving mails that are larger than mdbox_rotate_size. M src/lib-storage/index/dbox-multi/mdbox-map.c 2014-03-27 13:25:12 +0100 Timo Sirainen (bb4045cb9) dsync: Optimization for a large number of mails with the same GUID. Still not ideal, but better than before. M src/doveadm/dsync/dsync-mailbox-import.c 2014-03-27 10:02:08 +0100 Timo Sirainen (e1550f6a3) doveadm director move/map: Use director_username_hash setting for calculating hashes. M src/doveadm/doveadm-director.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h 2014-03-26 16:17:34 +0100 Timo Sirainen (028a1c8de) lib-http: Fixed a hang Patch by Stephan Bosch M src/lib-http/http-client-queue.c 2014-03-26 14:41:05 +0100 Timo Sirainen (ee3c2fb2e) lib-http: Added debug logging. M src/lib-http/http-client-queue.c 2014-03-25 19:59:24 +0200 Timo Sirainen (d487aa885) dsync: Support multiple -n parameters. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h 2014-03-24 19:07:03 +0100 Timo Sirainen (e16052742) dsync: Fixed matching namespace for the namespace prefix itself. M src/doveadm/dsync/dsync-brain-mailbox-tree.c 2014-03-21 17:52:50 +0200 Timo Sirainen (7586eb9be) imapc: Cache LIST replies for a while to be able to immediately ask for mailbox flags/existence. Besides giving better performance, this will fix bugs in some servers where LISTing a single mailbox doesn't necessarily return it. (In this case a mailbox named "in" wasn't returned, but I think Dovecot has had bugs related to this also.) M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h M src/lib-storage/index/imapc/imapc-sync.c 2014-03-20 17:07:32 +0200 Timo Sirainen (07c8b1b48) dsync: Avoid unnecessary data stack memory usage. M src/doveadm/dsync/dsync-mailbox-export.c 2014-03-20 17:00:31 +0200 Timo Sirainen (fda7b3649) imapc: Avoid hanging when running into server problems. imapc_mail_fetch_flush() caused imail->fetch_count to drop to 0, but imapc_mailbox_run() still started imapc_client_run() which was doing nothing. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2014-03-20 16:15:24 +0200 Timo Sirainen (b7a672661) imapc: Fixed crash when FETCH command immediately failed due to connection error. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2014-03-19 15:42:42 +0200 Timo Sirainen (65c7451e4) passdb-imap: Fixed reference counting. M src/auth/passdb-imap.c 2014-03-19 09:45:15 +0200 Timo Sirainen (eb2091a2d) lib-dns: Fixed handling failed DNS lookups. M src/lib-dns/dns-lookup.c 2014-03-18 16:49:10 +0200 Timo Sirainen (f567e9ad5) maildir: Fixed looking up physical size for a mail while it's being saved. Based on patch by Teemu Huovila. M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-storage.h 2014-03-18 14:39:15 +0200 Timo Sirainen (30fe81ba5) auth: Added login_user extra field to change the username in master passdb. M src/auth/auth-request.c 2014-03-17 16:57:36 +0200 Timo Sirainen (1bc529e36) test-var-expand: Added more unit tests for %variable offsets/lengths. M src/lib/test-var-expand.c 2014-03-17 16:57:21 +0200 Timo Sirainen (6eb191b58) liblib: Added negative %variable lengths to count backwards from the end of the value. For example %0.-2 for "12345" returns "123". Patch by Norbert Weinhold / Open-Xchange. M src/lib/var-expand.c 2014-03-12 14:09:14 +0200 Timo Sirainen (65af92304) auth: Don't disconnect auth-worker during long-running user iterations. M src/auth/auth-worker-server.c 2014-03-12 12:26:09 +0200 Timo Sirainen (d6bffcdf1) auth worker: Log a warning if master disconnects us while handling a long request. M src/auth/auth-worker-client.c 2014-03-12 12:19:09 +0200 Timo Sirainen (c0757c70c) auth worker: Log a warning if master disconnects us while handling a long request. M src/auth/auth-worker-client.c 2014-03-12 11:53:49 +0200 Timo Sirainen (f08c6da58) auth: If auth-worker lookup times out, log a bit more details about it. M src/auth/auth-worker-server.c M src/auth/auth-worker-server.h M src/auth/passdb-blocking.c M src/auth/userdb-blocking.c 2014-03-11 13:26:33 +0200 Timo Sirainen (49c848cca) fts-lucene: Skip returned duplicate results. This caused assert-crash at least when searching from virtual mailbox because the score array was larger than the actual number of results. M src/plugins/fts-lucene/lucene-wrapper.cc 2014-03-11 00:39:27 +0200 Timo Sirainen (877632231) mdbox: Added mdbox_purge_preserve_alt setting to keep the file within alt storage during purge. Perhaps it would be better for this setting to be the default in v2.3 and maybe be removed entirely? Not a good idea to change during v2.2.x anyway, so for now this is a setting. M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-settings.h 2014-03-04 17:11:49 +0200 Timo Sirainen (28099d04b) lib-storage: Fixed assert-crash in mailbox rename with layout=index M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2014-02-24 12:30:51 -0600 Timo Sirainen (6f59bc9b3) lib-storage: Fixed support for list=no prefix="" listing. This behavior works with e.g. Outlook where it's allowed to CREATE and LIST the Sent/Trash/etc mailboxes to root level, even though the primary namespace has a prefix. M src/lib-storage/list/mailbox-list-iter.c 2014-02-24 11:29:52 -0600 Timo Sirainen (432f2b63d) imap: Return SPECIAL-USE flags for LSUB command. M src/imap/cmd-list.c 2014-02-19 14:54:16 -0800 Timo Sirainen (7cc2591b0) auth: Don't crash if passdb passwd-file is used without any userdbs. M src/auth/db-passwd-file.c 2014-02-15 10:41:29 +0900 Timo Sirainen (5794def63) lib-index: Minor code cleanup The previous calculation was correct also though. M src/lib-index/mail-cache-fields.c 2014-02-13 23:36:14 +0200 Timo Sirainen (1d099cf31) Added signature for changeset 8e4433702920 M .hgsigs 2014-02-13 23:36:09 +0200 Timo Sirainen (fc1dcbfe3) Added tag 2.2.12 for changeset 8e4433702920 M .hgtags 2014-02-13 23:36:03 +0200 Timo Sirainen (c98761ca2) Released v2.2.12. M NEWS M configure.ac 2014-02-13 05:33:13 +0200 Teemu Huovila (905320d3d) pop3: Access sequence numbers correctly. M src/pop3/pop3-commands.c 2014-02-12 00:51:17 +0200 Timo Sirainen (d5e288581) Added signature for changeset 6b96eb75ded2 M .hgsigs 2014-02-12 00:51:10 +0200 Timo Sirainen (d693a428b) Added tag 2.2.11 for changeset 6b96eb75ded2 M .hgtags 2014-02-12 00:51:10 +0200 Timo Sirainen (bd387922b) Released v2.2.11. M NEWS M configure.ac 2014-02-12 07:14:58 +0900 Timo Sirainen (f87daf83d) acl: Recent changes caused global ACL filenames to be looked up with real mailbox names, not vnames. M src/plugins/acl/acl-backend-vfile.c 2014-02-07 15:53:54 -0500 Timo Sirainen (3190f12fb) auth: Allow auth_verbose_passwords=yes as an alias for "plain". M src/auth/auth-settings.c 2014-02-07 15:53:32 -0500 Timo Sirainen (a5bcc9f96) auth: Fixed crash/NULL error if auth_verbose_passwords had an invalid value. M src/auth/auth-settings.c 2014-02-07 15:44:10 -0500 Timo Sirainen (29ba46818) lib-http: Fixed test-http-url not to crash with some libcs Those that crash when %s attempts to print NULL. M src/lib-http/test-http-url.c 2014-02-07 15:36:15 -0500 Timo Sirainen (22e74047a) acl: Fixed assert-crash when using the new global ACL file. M src/plugins/acl/acl-backend-vfile.c 2014-02-07 15:03:33 -0500 Timo Sirainen (d4867dab6) pop3: Use POP3 order sorting only when directly listing UIDLs. "Message ordering changed unexpectedly" errors can be completely avoided by using either pop3_lock_session=yes or adding %u to pop3_logout_format. M src/pop3/pop3-commands.c 2014-02-07 14:24:44 -0500 Timo Sirainen (58f5b4641) doveadm fetch: Added pop3.order field. M src/doveadm/doveadm-mail-fetch.c 2014-02-07 17:17:25 +0200 Timo Sirainen (2c7383184) doveadm user: Don't crash if multiple mask parameters are given with at least one wildcard. M src/doveadm/doveadm-auth.c 2014-02-05 11:57:35 -0500 Timo Sirainen (c9c7624c3) Copyright updated to 2014 in two more places M src/doveadm/doveadm-mail-batch.c M src/lib/test-str.c 2014-02-04 18:17:35 -0500 Teemu Huovila (efd203f31) lib-compression: Add assert for LZ4_compress return value. Make certain we detect if compressed data overflows the allocated space. M src/lib-compression/ostream-lz4.c 2014-02-04 16:23:22 -0500 Timo Sirainen (a8c5a86d1) Updated copyright notices to include year 2014. M src/anvil/anvil-connection.c M src/anvil/anvil-settings.c M src/anvil/connect-limit.c M src/anvil/main.c M src/anvil/penalty.c M src/anvil/test-penalty.c M src/auth/auth-cache.c M src/auth/auth-client-connection.c M src/auth/auth-fields.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-token.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-checkpassword.c M src/auth/db-dict-cache-key.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-dovecot-token.c M src/auth/mech-external.c M src/auth/mech-plain.c M src/auth/mech.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-dict.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-template.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c M src/auth/test-auth-cache.c M src/auth/test-db-dict.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-template.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/config-settings.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-settings.c M src/dict/main.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-request.c M src/director/director-settings.c M src/director/director-test.c M src/director/director.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/main.c M src/director/notify-connection.c M src/director/test-user-directory.c M src/director/user-directory.c M src/dns/dns-client-settings.c M src/dns/dns-client.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-fs.c M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-flags.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-mount.c M src/doveadm/doveadm-mutf7.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-pw.c M src/doveadm/doveadm-replicator.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-zlib.c M src/doveadm/doveadm.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-deserializer.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-state.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox.c M src/doveadm/dsync/dsync-serializer.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/imap-login/client-authenticate.c M src/imap-login/client.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-proxy.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-login-settings.c M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-append.c M src/imap/cmd-cancelupdate.c M src/imap/cmd-capability.c M src/imap/cmd-check.c M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-enable.c M src/imap/cmd-examine.c M src/imap/cmd-expunge.c M src/imap/cmd-fetch.c M src/imap/cmd-genurlauth.c M src/imap/cmd-getmetadata.c M src/imap/cmd-id.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-logout.c M src/imap/cmd-lsub.c M src/imap/cmd-namespace.c M src/imap/cmd-noop.c M src/imap/cmd-notify.c M src/imap/cmd-rename.c M src/imap/cmd-resetkey.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-setmetadata.c M src/imap/cmd-sort.c M src/imap/cmd-status.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/cmd-unselect.c M src/imap/cmd-unsubscribe.c M src/imap/cmd-urlfetch.c M src/imap/cmd-x-cancel.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-list.c M src/imap/imap-metadata.c M src/imap/imap-notify.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/imap/main.c M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-settings.c M src/indexer/indexer-worker-settings.c M src/indexer/indexer-worker.c M src/indexer/indexer.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/indexer/worker-pool.c M src/ipc/client.c M src/ipc/ipc-connection.c M src/ipc/ipc-group.c M src/ipc/ipc-settings.c M src/ipc/main.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-compression/compression.c M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.c M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.c M src/lib-dict/dict-cdb.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-fs.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-register.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-dict/dict-transaction-memory.c M src/lib-dict/dict.c M src/lib-dict/test-dict.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-api.c M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/istream-fs-file.c M src/lib-fs/istream-metawrap.c M src/lib-fs/ostream-cmp.c M src/lib-fs/ostream-metawrap.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-date.c M src/lib-http/http-header-parser.c M src/lib-http/http-header.c M src/lib-http/http-message-parser.c M src/lib-http/http-parser.c M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c M src/lib-http/http-transfer-chunked.c M src/lib-http/http-url.c M src/lib-http/test-http-client.c M src/lib-http/test-http-date.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-request-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-server.c M src/lib-http/test-http-transfer.c M src/lib-http/test-http-url.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-msgmap.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap/imap-arg.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-seqset.c M src/lib-imap/imap-url.c M src/lib-imap/imap-utf7.c M src/lib-imap/imap-util.c M src/lib-imap/test-imap-bodystructure.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-quote.c M src/lib-imap/test-imap-url.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-dummy-view.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/duplicate.c M src/lib-lda/lda-settings.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-mail/istream-attachment-connector.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-nonuls.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/mail-user-hash.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-binary-part.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-search.c M src/lib-mail/message-size.c M src/lib-mail/quoted-printable.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-istream-binary-converter.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-auth.c M src/lib-master/master-instance.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl.c M src/lib-master/master-service.c M src/lib-master/mountpoint-list.c M src/lib-master/syslog-util.c M src/lib-sasl/dsasl-client.c M src/lib-sasl/mech-login.c M src/lib-sasl/mech-plain.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-sql/sql-db-cache.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-storage/fail-mail-storage.c M src/lib-storage/fail-mail.c M src/lib-storage/fail-mailbox.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-check.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-md5-all.c M src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync-update.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-notify-tree.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-error.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-parser-cmdline.c M src/lib-storage/mail-search-parser-imap.c M src/lib-storage/mail-search-parser.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-thread.c M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-header.c M src/lib-storage/mailbox-keywords.c M src/lib-storage/mailbox-list-notify.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-search-result.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/test-mailbox-get.c M src/lib-test/test-common.c M src/lib/abspath.c M src/lib/aqueue.c M src/lib/array.c M src/lib/askpass.c M src/lib/backtrace-string.c M src/lib/base64.c M src/lib/bsearch-insert-pos.c M src/lib/buffer.c M src/lib/child-wait.c M src/lib/compat.c M src/lib/connection.c M src/lib/crc32.c M src/lib/data-stack.c M src/lib/eacces-error.c M src/lib/env-util.c M src/lib/execv-const.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/fd-set-nonblock.c M src/lib/fdatasync-path.c M src/lib/fdpass.c M src/lib/file-cache.c M src/lib/file-copy.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/guid.c M src/lib/hash-format.c M src/lib/hash-method.c M src/lib/hash.c M src/lib/hash2.c M src/lib/hex-binary.c M src/lib/hex-dec.c M src/lib/home-expand.c M src/lib/hostpid.c M src/lib/imem.c M src/lib/ioloop-epoll.c M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/iostream-rawlog.c M src/lib/iostream-temp.c M src/lib/iostream.c M src/lib/ipwd.c M src/lib/iso8601-date.c M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-file.c M src/lib/istream-hash.c M src/lib/istream-jsonstr.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/json-parser.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mkdir-parents.c M src/lib/mmap-anon.c M src/lib/mmap-util.c M src/lib/module-dir.c M src/lib/mountpoint.c M src/lib/net.c M src/lib/nfs-workarounds.c M src/lib/numpack.c M src/lib/ostream-buffer.c M src/lib/ostream-file.c M src/lib/ostream-hash.c M src/lib/ostream-rawlog.c M src/lib/ostream.c M src/lib/primes.c M src/lib/printf-format-fix.c M src/lib/priorityq.c M src/lib/process-title.c M src/lib/randgen.c M src/lib/read-full.c M src/lib/restrict-access.c M src/lib/restrict-process-size.c M src/lib/safe-memset.c M src/lib/safe-mkdir.c M src/lib/safe-mkstemp.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str.c M src/lib/strescape.c M src/lib/strfuncs.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/test-base64.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-buffer.c M src/lib/test-crc32.c M src/lib/test-hash-format.c M src/lib/test-hex-binary.c M src/lib/test-iso8601-date.c M src/lib/test-istream-base64-decoder.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-json-parser.c M src/lib/test-lib.c M src/lib/test-llist.c M src/lib/test-mempool-alloconly.c M src/lib/test-network.c M src/lib/test-numpack.c M src/lib/test-ostream-file.c M src/lib/test-primes.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-str-find.c M src/lib/test-str-sanitize.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-time-util.c M src/lib/test-unichar.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/time-util.c M src/lib/unichar.c M src/lib/unix-socket-create.c M src/lib/unlink-directory.c M src/lib/unlink-old-files.c M src/lib/uri-util.c M src/lib/utc-mktime.c M src/lib/utc-offset.c M src/lib/var-expand.c M src/lib/write-full.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c M src/log/doveadm-connection.c M src/log/log-connection.c M src/log/log-error-buffer.c M src/log/log-settings.c M src/log/main.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/master/capabilities-posix.c M src/master/dup2-array.c M src/master/main.c M src/master/master-settings.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/master/service-process.c M src/master/service.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c M src/plugins/acl/doveadm-acl.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search-serialize.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/xml2text.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/mail-filter-plugin.c M src/plugins/mail-filter/ostream-ext-filter.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/mailbox-alias/mailbox-alias-plugin.c M src/plugins/notify/notify-plugin.c M src/plugins/notify/notify-storage.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-status.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/replication/replication-plugin.c M src/plugins/snarf/snarf-plugin.c M src/plugins/stats/stats-connection.c M src/plugins/stats/stats-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/pop3-login-settings.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/replication/aggregator/aggregator-settings.c M src/replication/aggregator/aggregator.c M src/replication/aggregator/notify-connection.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/dsync-client.c M src/replication/replicator/notify-connection.c M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-settings.c M src/replication/replicator/replicator.c M src/ssl-params/main.c M src/ssl-params/ssl-params-openssl.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params.c M src/stats/client-export.c M src/stats/client.c M src/stats/global-memory.c M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-server-connection.c M src/stats/mail-session.c M src/stats/mail-stats.c M src/stats/mail-user.c M src/stats/main.c M src/stats/stats-settings.c M src/util/gdbhelper.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap-settings.c M src/util/tcpwrap.c 2014-02-03 12:42:13 -0500 Timo Sirainen (2b70e45cd) imap: SEARCH/SORT PARTIAL reponses may have been too large. M src/imap/imap-search.c 2014-02-03 12:04:19 -0500 Timo Sirainen (f38430b14) imapc: Fixed assert-crash when listing INBOX and imapc_list_prefix was set. M src/lib-storage/index/imapc/imapc-list.c 2014-02-03 11:50:49 -0500 Timo Sirainen (aea7f72aa) doveadm backup: Fixed assert-crash when syncing mailbox deletion. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2014-02-03 11:50:10 -0500 Timo Sirainen (bf43cf378) dsync: Added extra asserts M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2014-02-03 11:38:40 -0500 Timo Sirainen (32142dc3b) test-istream-concat unit test improved. Still pretty ugly to test with randomness, but at least it caught the bug in v2.1. M src/lib/test-istream-concat.c 2014-02-03 10:53:59 -0500 Timo Sirainen (2200adee4) pop3-migration: If UIDLs can't be set, fail unless pop3_migration_ignore_missing_uidls=yes. M src/plugins/pop3-migration/pop3-migration-plugin.c 2014-02-03 10:49:03 -0500 Timo Sirainen (8c3872c26) pop3-migration: Convert NULs to 0x80 chars in header when hashing. This should help at least with Dovecot and I think also with UW-IMAP/POP3. M src/plugins/pop3-migration/pop3-migration-plugin.c 2014-02-03 10:47:31 -0500 Timo Sirainen (31fd39a3a) pop3-migration: Work around IMAP/POP3 server bugs which truncate the header too early. M src/plugins/pop3-migration/pop3-migration-plugin.c 2014-01-31 02:12:30 +0100 Timo Sirainen (dc27f5f23) doveadm auth cache flush: Fixed broken default auth-master path. Broken by c41700c4a9bb. Patch by Chris Moules. M src/doveadm/doveadm-auth.c 2014-01-30 22:03:40 +0100 Timo Sirainen (e3d57448c) net_transmit() may have wrongly returned EPIPE error. If errno was EPIPE before net_transmit() was called and sendto() didn't change it, we still returned error. Also removed the unlikely() call which isn't all that unlikely for non-blocking code. M src/lib/net.c 2014-01-30 03:38:57 +0100 Teemu Huovila (664966885) lib-compression: Fixed LZ4 maximum output buffer size M src/lib-compression/ostream-lz4.c 2014-01-27 16:35:46 +0200 Timo Sirainen (4c158400b) acl plugin: Added an alternative global ACL file that can contain mailbox patterns. Instead of pointing the global ACL path to a directory use a file instead. The file format is " ". Most importantly this can be used to specify default ACLs for namespaces. The mailbox pattern uses "*" and "?" wildcards currently. I'm not sure if I should still change them to IMAP "*" and "%" wildcards. That would make the behavior more complex ("%" depends on hierarchy separator), slightly slower and quota code is already also using the */? wildcards.. M src/plugins/acl/Makefile.am M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c M src/plugins/acl/acl-api.h M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend-vfile.h A src/plugins/acl/acl-global-file.c A src/plugins/acl/acl-global-file.h 2014-01-27 14:25:03 +0200 Timo Sirainen (131b0d222) lib-compression: Assert-crashfix to handling EOF in LZ4 compression M src/lib-compression/istream-lz4.c 2014-01-17 17:36:29 -0500 Timo Sirainen (71966291d) acl: Minor macro naming cleanup M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend-vfile.h 2014-01-17 17:33:47 -0500 Timo Sirainen (086c52e4b) acl: Moved acl_rights array from vfile-specific code to generic struct acl_object. M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c M src/plugins/acl/acl-backend-vfile-update.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend-vfile.h 2014-01-17 16:23:49 -0500 Timo Sirainen (15f43b172) acl: More code cleanups. M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c M src/plugins/acl/acl-backend-vfile-update.c M src/plugins/acl/acl-backend-vfile.c 2014-01-17 16:10:56 -0500 Timo Sirainen (cc287b822) acl: Code cleanup by moving around the code and renaming functions. M src/plugins/acl/Makefile.am M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c A src/plugins/acl/acl-backend-vfile-update.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend-vfile.h 2014-01-15 16:44:04 -0500 Timo Sirainen (6b35ba747) liblib: Added str_unescape_next() M src/lib/strescape.c M src/lib/strescape.h M src/lib/test-strescape.c 2014-01-15 15:57:50 -0500 Timo Sirainen (77bd459e2) stats plugin: Fixed updating clock_time M src/plugins/stats/stats-plugin.c 2014-01-15 15:54:14 -0500 Timo Sirainen (12af04ac6) stats: Also export the clock_time to doveadm. M src/stats/client-export.c 2014-01-15 15:50:38 -0500 Timo Sirainen (60131617d) stats: Track clock time as well as user/sys CPU time. M src/plugins/stats/stats-plugin.c M src/plugins/stats/stats-plugin.h M src/stats/mail-stats.c M src/stats/mail-stats.h 2014-01-15 22:11:22 +0200 Timo Sirainen (ef4d0eafa) lib-index: Keep track of views and transactions in linked lists. This makes debugging easier. M src/lib-index/mail-index-private.h M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-view-private.h M src/lib-index/mail-index-view.c M src/lib-index/mail-index.c 2014-01-15 15:07:50 -0500 Timo Sirainen (c3ad163c5) imap-proxy: Fixed resetting proxy state after failed login. M src/imap-login/imap-proxy.c 2014-01-15 15:03:22 -0500 Timo Sirainen (41783dcf1) imap-proxy: Recent changes caused CAPABILITY repeating with pipelining disabled. M src/imap-login/client.h M src/imap-login/imap-proxy.c 2014-01-15 03:49:42 +0200 Timo Sirainen (463d5291a) Makefile: Added missing iostream-lz4.h M src/lib-compression/Makefile.am 2014-01-15 00:57:59 +0200 Timo Sirainen (a49d1c2ca) lib-compression: Added initial support for LZ4 There's no standard file format for LZ4, so we created our own. The code has had only minimal testing currently, so there may be bugs. M configure.ac M src/lib-compression/Makefile.am M src/lib-compression/compression.c A src/lib-compression/iostream-lz4.h A src/lib-compression/istream-lz4.c M src/lib-compression/istream-zlib.h A src/lib-compression/ostream-lz4.c M src/lib-compression/ostream-zlib.h 2014-01-15 00:28:35 +0200 Timo Sirainen (84740b03d) lib-http: Added http_client_request_remove_header() M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2014-01-15 00:28:20 +0200 Timo Sirainen (492876185) lib-http: Allow calling http_client_request_add_header() when retrying requests. M src/lib-http/http-client-request.c 2014-01-14 03:33:35 +0200 Timo Sirainen (dd620bc36) *-login: Fix to previous commit: Default auth_user to original_user M src/login-common/client-common.c 2014-01-14 03:24:47 +0200 Timo Sirainen (2f90189c6) auth, login, mail: Added %{auth_user}, %{auth_username} and %{auth_domain} They expand to the SASL authentication ID. So if master user login is done, it expands to the master user. If username changes during authentication, it expands to the original username. Otherwise %{user} and %{auth_user} are equal. M src/auth/auth-request-handler.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2014-01-14 02:43:09 +0200 Timo Sirainen (0693f78ec) auth: Send original_user to auth client also when there aren't any extra fields. M src/auth/auth-request-handler.c 2014-01-13 15:58:13 -0500 Timo Sirainen (7756f8eee) dbox: Removed unused code. M src/lib-storage/index/dbox-common/dbox-file.h M src/lib-storage/index/dbox-multi/mdbox-file.c 2014-01-13 22:44:34 +0200 Timo Sirainen (fb176cdc1) iostream-temp: Support o_stream_pwrite() M src/lib/iostream-temp.c 2014-01-13 20:57:12 +0200 Timo Sirainen (244d1dd1a) doveadm fs delete: Fixed non-recursive deletion broken by previous commit M src/doveadm/doveadm-fs.c 2014-01-10 15:00:39 -0500 Stephan Bosch (b4d90cf5b) http: Improved HTTP header parser state machine and error messages. M src/lib-http/http-header-parser.c 2014-01-10 15:00:28 -0500 Stephan Bosch (e0cf44fb8) lib-http: Added option to the header parser to make it lenient towards illegal characters in header field content. The offending characters are then skipped without error. This is required for the http client as a workaround for bugs in certain HTTP servers. This behavior is explicitly not enabled for the http-request-parser as used by our own HTTP server implementation. M src/lib-http/http-header-parser.c M src/lib-http/http-header-parser.h M src/lib-http/http-message-parser.c M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c M src/lib-http/http-transfer-chunked.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-response-parser.c 2014-01-10 21:59:15 +0200 Timo Sirainen (e47925000) lib-master: Added unit test for master_service_settings_cache_read() M src/lib-master/Makefile.am A src/lib-master/test-master-service-settings-cache.c 2014-01-10 13:00:39 -0500 Timo Sirainen (3bc9d91f9) imap proxy: Avoid duplicate CAPABILITY reply when backend is Dovecot. This happened if the client sent a CAPABILITY command to the proxy. M src/imap-login/imap-proxy.c 2014-01-10 00:19:19 +0200 Timo Sirainen (c58f46762) doveadm fs delete: Added -n parameter to asynchronously delete multiple files at once. M src/doveadm/doveadm-fs.c 2014-01-08 11:24:36 -0500 Timo Sirainen (d93b1c6a8) lib-storage: Implemented get_metadata() for fail-mailbox. This fixes a crash when a nonexistent mailbox was allocated and accessed (via LAYOUT=index). M src/lib-storage/fail-mailbox.c 2014-01-07 14:33:29 -0500 Timo Sirainen (737d994fb) imap proxy: Set proxy_state correctly also with proxy_nopipelining. M src/imap-login/imap-proxy.c 2013-12-23 15:30:31 +0200 Timo Sirainen (ab281fc99) imap proxy: Added proxy_nopipelining passdb setting to work around other servers' bugs. M src/imap-login/imap-proxy.c M src/login-common/client-common-auth.c M src/login-common/client-common.h 2013-12-20 19:59:22 +0200 Timo Sirainen (cc4bac5d3) mdbox: When purging writes new data, flush them to disk before locking the map index. M src/lib-storage/index/dbox-multi/mdbox-purge.c 2013-12-20 04:57:25 +0200 Timo Sirainen (18b13ba3b) Added signature for changeset 614bd6600011 M .hgsigs 2013-12-20 04:57:19 +0200 Timo Sirainen (4cfd0f6be) Added tag 2.2.10 for changeset 614bd6600011 M .hgtags 2013-12-20 04:57:19 +0200 Timo Sirainen (16af02ab0) Released v2.2.10. M NEWS M configure.ac 2013-12-20 04:25:17 +0200 Timo Sirainen (9abf4d9d5) Compiler warning fix. Older libmysqlclient uses const char * as the arg. M src/lib-sql/driver-mysql.c 2013-12-20 04:23:04 +0200 Timo Sirainen (e5dca7edd) imap-quota: SETQUOTA supports now also user@domain:quotaroot name. M src/plugins/imap-quota/imap-quota-plugin.c 2013-12-20 01:06:02 +0200 Timo Sirainen (a5c1051a8) imap: GETMETADATA should return nonexistent entries also with NIL values. M src/imap/cmd-getmetadata.c 2013-12-19 23:54:28 +0200 Timo Sirainen (4f93b5ab6) auth: If LDAP server returns LDAP_OPERATIONS_ERROR, reconnect. Apparently the server somehow lost the bind. M src/auth/db-ldap.c 2013-12-19 23:43:54 +0200 Timo Sirainen (e66cd209f) quota-status: Allow mail to go over quota up to quota_grace. M src/plugins/quota/quota-status.c M src/plugins/quota/quota.c 2013-12-19 23:09:45 +0200 Timo Sirainen (08b0192ed) imap: Minor comment update: Horde uses wildcards, not Kolab. M src/imap/cmd-getmetadata.c 2013-12-19 23:08:03 +0200 Timo Sirainen (b6709d9c4) imap: Allow wildcards in GETMETADATA mailbox-name. RFC 5464 doesn't specify this, but its earlier draft did, and Kolab uses it. M src/imap/cmd-getmetadata.c 2013-12-19 23:07:15 +0200 Timo Sirainen (77b4e7282) imap: GETMETADATA wasn't working correctly if options parameter wasn't specified. M src/imap/cmd-getmetadata.c 2013-12-19 23:04:55 +0200 Timo Sirainen (8855b8b57) imap: SETMETADATA shouldn't assert-crash when entry name is invalid M src/imap/cmd-setmetadata.c 2013-12-19 21:37:28 +0200 Timo Sirainen (0ff8b7fd6) imap: If any FETCH/STORE tries to access modseqs when NOMODSEQ was returned, return BAD. M src/imap/cmd-fetch.c M src/imap/cmd-store.c M src/imap/imap-fetch.c 2013-12-19 21:31:57 +0200 Timo Sirainen (167da1aee) imap: Ignore QRESYNC parameters for SELECT when returning NOMODSEQ. M src/imap/cmd-select.c 2013-12-19 21:25:43 +0200 Timo Sirainen (b866325bc) fs-sis: Memory leak fix. M src/lib-fs/fs-sis.c 2013-12-19 21:25:28 +0200 Timo Sirainen (5cdb24685) pop3c: Memory leak fixes M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-storage.c 2013-12-19 21:25:08 +0200 Timo Sirainen (59714981a) imap: if mailbox has non-permanent modseqs, never send HIGHESTMODSEQ/MODSEQs. M src/imap/cmd-select.c M src/imap/imap-client.h M src/imap/imap-sync.c 2013-12-19 21:21:39 +0200 Timo Sirainen (792afd168) Compiler warning fix. M src/imap/cmd-getmetadata.c 2013-12-19 04:18:30 +0200 Timo Sirainen (050acc375) pop3c: If POP3 server doesn't support UIDLs, don't advertise GUID support. M src/lib-storage/index/pop3c/pop3c-storage.c 2013-12-19 04:05:52 +0200 Timo Sirainen (5f4e547bb) pop3c: Added pop3c_quick_received_date setting. With this enabled dsync no longer requires calling TOP for each message to get the metadata. M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-settings.h 2013-12-19 04:01:58 +0200 Timo Sirainen (e130bb802) pop3c: Use UIDLs as GUIDs. M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-storage.c 2013-12-17 21:33:32 +0200 Timo Sirainen (f9b1266ba) mail-filter: If filter returns 0 bytes, treat it as EIO error. M src/plugins/mail-filter/istream-ext-filter.c M src/plugins/mail-filter/ostream-ext-filter.c 2013-12-14 14:40:13 +0200 Timo Sirainen (1c0462c15) Compiler warning fix M src/lib-master/master-auth.c 2013-12-13 13:44:32 +0200 Timo Sirainen (e153e1205) ldap: Added blocking=yes setting to use auth-workers. M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2013-12-12 18:21:49 +0200 Timo Sirainen (f9ee758af) lib-master: Show better error message when process_limit is reached. M src/lib-master/master-auth.c 2013-12-12 18:08:25 +0200 Timo Sirainen (bb5464b82) auth: Previous userdb changes caused userdb prefetch to be used always. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/userdb-prefetch.c 2013-12-12 17:59:28 +0200 Timo Sirainen (74fb6b5a1) auth: Don't crash when userdb hasn't been specified at all. M src/auth/auth-settings.c M src/auth/auth.c 2013-12-12 16:37:37 +0200 Timo Sirainen (62c05ba02) lzma: Reading until EOF without seeing LZMA_STREAM_END isn't an error. M src/lib-compression/istream-lzma.c 2013-12-11 19:39:12 +0200 Timo Sirainen (639079ed0) login-*: Make sure "need to write more" flag doesn't get stuck during handshake. This should prevent busy-looping in SSL_accept(). (Second attempt at doing this, first one was in e95479f439aa.) M src/login-common/ssl-proxy-openssl.c 2013-12-11 18:39:36 +0200 Timo Sirainen (14b495a09) auth: Use refcounting for LDAPMessage to make sure it always gets freed correctly. This may fix some memory leaks in some (error?) cases. M src/auth/db-ldap.c M src/auth/db-ldap.h 2013-12-11 18:39:08 +0200 Timo Sirainen (550d748ff) auth: ldap with auth_bind=yes leaked memory Existing LDAP search request can't just be converted into bind request before the search request is freed. So just create a new request. M src/auth/passdb-ldap.c 2013-12-09 18:41:30 +0200 Timo Sirainen (bac5d8ce2) master: Include used protocols in the "starting up" log message. M src/master/main.c 2013-12-09 15:42:20 +0200 Timo Sirainen (9ff8e4827) quota: Fix to previous wildcard change M src/plugins/quota/quota.c 2013-12-09 00:02:58 +0200 Timo Sirainen (09d0ffb0d) mysql: Added ssl_verify_server_cert=no|yes parameter. To make sure we don't break existing installations, default to "no". For v2.3 it should default to "yes". Patch by Gareth Palmer M configure.ac M doc/example-config/dovecot-sql.conf.ext M src/lib-sql/driver-mysql.c 2013-12-08 23:41:33 +0200 Timo Sirainen (35df1d3e0) lib-http: Don't try to automatically retry requests whose payload was already lost. Patch by Stephan Bosch. M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c 2013-12-08 23:26:40 +0200 Timo Sirainen (0c572d456) stats: Workaround opening /proc/self/io in processes that have only temporarily dropped root privileges. M src/plugins/stats/stats-plugin.c 2013-12-08 23:04:18 +0200 Timo Sirainen (81e4bda7d) quota: Allow mailbox names in quota_rules to contain "*" and "?" wildcards. M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2013-12-08 22:30:10 +0200 Timo Sirainen (ed4caf5f1) fts: Fixed crash with some search queries in empty mailbox. M src/plugins/fts/fts-search.c 2013-12-08 22:21:40 +0200 Timo Sirainen (7fc91e279) master: Finished the previous DEBUG_OUTOFMEM -> CORE_OUTOFMEM and CORE_ERROR change. M src/master/master-settings.c M src/master/service-process.c 2013-12-08 22:20:12 +0200 Timo Sirainen (e173d24c0) Renamed DEBUG_OUTOFMEM environment to CORE_OUTOFMEM. Added CORE_ERROR to dump core on the first error. M src/lib/failures.c 2013-12-08 21:26:29 +0200 Timo Sirainen (2521fd098) quota: Added support for SETQUOTA IMAP command. The configuration is done via quota_set setting. Currently only dict backend is supported. For example: plugin { quota_set = dict:file:/var/lib/dovecot/quota/%u } The SETQUOTA command is available only for the "admin" user (userdb lookup must return admin=y). M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2013-12-08 21:24:10 +0200 Timo Sirainen (c6e8f8974) imap-quota: Admin user can (again) use GETQUOTA for other users' quota roots. M src/plugins/imap-quota/imap-quota-plugin.c 2013-12-08 21:22:38 +0200 Timo Sirainen (5a9912dca) lib-storage: Added mail_user->admin flag. The previous admin-flag used to mix up "admin user" and "admin tool", while this new purpose only means "admin user". M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.h 2013-12-08 21:13:22 +0200 Timo Sirainen (9686ada80) lib-dict: Added "fs" wrapper dict backend, which uses lib-fs. Each dict key is a separate file where the file's contents are the dict value. M src/lib-dict/Makefile.am A src/lib-dict/dict-fs.c M src/lib-dict/dict-private.h A src/lib-dict/dict-register.c M src/lib-dict/dict.c 2013-12-08 20:48:03 +0200 Timo Sirainen (cd75c360f) auth: Added userdb result_success/failure/tempfail and skip settings, similar to passdb's. M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-settings.c M src/auth/auth-settings.h M src/auth/auth-worker-client.c M src/auth/auth.c M src/auth/auth.h M src/auth/userdb-blocking.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-vpopmail.c 2013-12-08 19:02:12 +0200 Timo Sirainen (fb55257f5) lib-storage: Don't crash in mailbox_is_inconsistent() if mailbox hasn't been opened. M src/lib-storage/index/index-storage.c 2013-12-08 19:00:31 +0200 Timo Sirainen (79042f8c2) auth: passdb/userdb dict rewrite to support more complex configuration. See the new doc/example-config/dovecot-dict-auth.conf.ext for explanation how it works. The old configuration format will also stay functional. M doc/example-config/dovecot-dict-auth.conf.ext M src/auth/Makefile.am A src/auth/db-dict-cache-key.c M src/auth/db-dict.c M src/auth/db-dict.h M src/auth/passdb-dict.c A src/auth/test-db-dict.c M src/auth/userdb-dict.c 2013-12-03 21:31:59 +0200 Timo Sirainen (5e22b513c) lib-imap: imap_envelope_parse() added extra "," after address group. This function wasn't actually used by Dovecot anywhere anymore. Patch by Potapov Sergey. M src/lib-imap/imap-envelope.c 2013-12-03 17:29:38 +0200 Timo Sirainen (08837f59c) imap: If SELECT fails with "mailbox is inconsistent", disconnect client. (Plus related cleanups.) The inconsistency can also be used to indicate that something is badly wrong and nothing useful can be done before client reconnects. M src/imap/cmd-append.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-expunge.c M src/imap/cmd-getmetadata.c M src/imap/cmd-rename.c M src/imap/cmd-resetkey.c M src/imap/cmd-select.c M src/imap/cmd-setmetadata.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/imap-commands-util.c M src/imap/imap-commands-util.h M src/imap/imap-search.c 2013-12-03 17:17:03 +0200 Timo Sirainen (a0cfe97ae) lib-http: Removed assert Time can't be relied on exactly. M src/lib-http/http-client-queue.c 2013-12-03 01:33:18 +0200 Timo Sirainen (a646dafca) imap: Don't send [NOMODSEQ] on SELECT/EXAMINE reply when condstore hasn't been enabled yet. This is definitely the better behavior and was also clearly intended by the CONDSTORE RFC, although with some mixed language. M src/imap/cmd-select.c M src/lib-storage/index/index-status.c M src/lib-storage/mail-storage.h 2013-12-02 18:47:52 +0200 Timo Sirainen (5769639ba) pop3: Handle UIDL failures by disconnecting the client instead of killing the whole process. M src/pop3/pop3-commands.c 2013-11-26 21:10:23 +0100 Timo Sirainen (7b6bca43c) replicator: Give a better error message with path when replicator.db is corrupted. M src/replication/replicator/replicator-queue.c 2013-11-25 01:24:35 +0200 Timo Sirainen (42afa2a76) Added signature for changeset 2852a7c55fc7 M .hgsigs 2013-11-25 01:24:32 +0200 Timo Sirainen (308457ee6) Added tag 2.2.9 for changeset 2852a7c55fc7 M .hgtags 2013-11-25 01:24:32 +0200 Timo Sirainen (c552ee526) Released v2.2.9. M NEWS M configure.ac 2013-11-25 00:46:40 +0200 Timo Sirainen (5ce940d27) Makefile: Added missing \ M src/plugins/mail-filter/Makefile.am 2013-11-25 00:44:21 +0200 Timo Sirainen (24fb580bd) Makefile: Added missing header files M src/plugins/mail-filter/Makefile.am 2013-11-24 23:02:13 +0200 Timo Sirainen (12983e9d3) lib-compression: Added support for liblzma (xz) Annoyingly this is mainly copy&pasted [io]stream-bzlib, but I'm not sure if it's worth the effort to try to create common functions for them. M configure.ac M src/lib-compression/Makefile.am M src/lib-compression/compression.c A src/lib-compression/istream-lzma.c M src/lib-compression/istream-zlib.h A src/lib-compression/ostream-lzma.c M src/lib-compression/ostream-zlib.h 2013-11-24 20:19:48 +0000 Pascal Volk (23a0a2f0d) man: doveadm-mailbox.1: Added -g's description for mailbox create. M doc/man/doveadm-mailbox.1.in 2013-11-24 21:41:06 +0200 Timo Sirainen (bd8b391d7) Fixed sscanf() error handling. Patch by Jann Horn. M src/lib-dns/dns-lookup.c M src/lib-settings/settings.c 2013-11-24 19:58:45 +0000 Pascal Volk (f56b8ae29) man: doveadm-log.1: Added description for option -s. M doc/man/doveadm-log.1.in 2013-11-24 18:29:55 +0000 Pascal Volk (3c61da0e1) man: doveadm-import.1: Added description for option -s. M doc/man/doveadm-import.1.in 2013-11-24 18:02:40 +0000 Pascal Volk (d6043f149) man: doveadm-expunge.1: Added option -d also to section synopsis. M doc/man/doveadm-expunge.1.in 2013-11-24 20:41:42 +0200 Timo Sirainen (263df40da) Data stack has now an extra NULL pointer padding before its actual data starts. This is just an extra safety measure against buffer overflows. Patch by Jann Horn. M src/lib/data-stack.c 2013-11-24 20:27:27 +0200 Timo Sirainen (2b8199417) auth: Fixed (non-exploitable) buffer overflow in DIGEST-MD5 data parsing. Found by Jann Horn. M src/auth/mech-digest-md5.c 2013-11-23 23:22:09 +0000 Pascal Volk (9a6262e08) man: doveadm-move.1: Fixed syntax errors, escaped some dashes. M doc/man/doveadm-move.1.in 2013-11-23 19:35:09 +0000 Pascal Volk (ac3614a25) man: doveadm-index.1: Added description for options -n and -q. M doc/man/doveadm-index.1.in 2013-11-23 21:18:30 +0200 Timo Sirainen (3415e311f) fts: Renamed fts_autoindex_on_save to fts_autoindex M src/plugins/fts/fts-storage.c 2013-11-23 21:13:26 +0200 Timo Sirainen (deab624f1) replicator: Memory leak fix for previous commit M src/replication/replicator/dsync-client.c 2013-11-23 21:12:39 +0200 Timo Sirainen (36757b426) replicator: Added replication_dsync_parameters setting to pass "doveadm sync" parameters. -f and -s parameters are added automatically when needed. M src/replication/replicator/dsync-client.c M src/replication/replicator/dsync-client.h M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-settings.c M src/replication/replicator/replicator-settings.h 2013-11-23 18:24:24 +0000 Pascal Volk (b9bf63553) man: doveadm-move.1: Added description for 'user source_user'. M doc/man/doveadm-move.1.in 2013-11-23 19:28:48 +0200 Timo Sirainen (735259c24) fts: Added plugin { fts_autoindex_on_save } setting. When enabled and a mail is saved/copied, the indexer process is requested to index the changed mailbox. fts_autoindex_max_recent_msgs setting can also be used to skip indexing mailboxes that have too many \Recent messages (implying that the mailbox is never actually accessed). This corresponds to doveadm index -n parameter. M src/plugins/fts/fts-storage.c 2013-11-23 16:28:04 +0000 Pascal Volk (3c9e50010) man: doveadm-user.1: Added description for the -u option. M doc/man/doveadm-user.1.in 2013-11-23 18:35:08 +0200 Timo Sirainen (30f128cc6) lib-dns: If existing dns connection dies in write(), retry connect once. M src/lib-dns/dns-lookup.c 2013-11-23 12:19:49 +0200 Timo Sirainen (19db4c57f) lib-http: Compiler warning fix M src/lib-http/http-client-request.c 2013-11-23 00:38:41 +0200 Timo Sirainen (b7c7a04bc) lib-storage: Non-crashing way of avoiding fs lookups for storages without mail root. M src/lib-storage/mailbox-list.c 2013-11-23 00:00:43 +0200 Timo Sirainen (267923f5b) lib-http: Fixed request hang on connect() timeout. M src/lib-http/http-client-connection.c 2013-11-22 23:52:37 +0200 Timo Sirainen (758d8b46f) lib-storage: Don't do filesystem permission lookups if storage has no mailbox root dir. M src/lib-storage/mailbox-list.c 2013-11-22 23:31:36 +0200 Timo Sirainen (7eff21e3e) dns: Don't idle-disconnect clients It's the job for the clients. M src/dns/dns-client.c 2013-11-22 23:15:07 +0200 Timo Sirainen (056437000) lib-dns: Fixed handling write() failure to dns-lookup server process. M src/lib-dns/dns-lookup.c 2013-11-22 22:12:08 +0200 Stephan Bosch (93cc87bb2) http: Implemented delayed requests scheduling. Requests can now be (re)submitted with a delay. The request is not sent until the delay time expires. This facilitates handling the Retry-After header in responses. This can either be performed automatically if the indicated delay is not too long or explicitly by the code using lib-http. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-11-22 22:08:44 +0200 Stephan Bosch (7af70f764) http: Preparse Retry-After header if response status is 503 or 3xx. M src/lib-http/http-response-parser.c M src/lib-http/http-response.h 2013-11-22 22:08:20 +0200 Stephan Bosch (129596c93) http-client: Improved handing of delayed request errors. Originally each request would have its own zero timeout, but now only one timeout is put in the host object. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2013-11-22 22:07:41 +0200 Stephan Bosch (de96afeea) http-client: Changed struct http_client_host_port into a struct http_client_queue object. Peer and request objects now reference the queue object directly rather than the host object. This way, there is no need to find the matching host:port in the host anymore. This makes the queueing structure more intuitive and more efficient. This is a first step towards support for connecting to HTTP services through unix sockets or directing requests at specific hosts (so not from the URL). This patch also fixes a potential timeout leak (to_connect) in http_client_host_port (now http_client_queue) and makes sure it is moved during switch_ioloop(). Finally it updates the structure comment at the top of http-client.c. M src/lib-http/Makefile.am M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h A src/lib-http/http-client-queue.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2013-11-22 22:05:52 +0200 Timo Sirainen (b367011da) iostream-rawlog: Timestamp prefix is now optional. M src/lib/iostream-rawlog-private.h M src/lib/iostream-rawlog.c 2013-11-22 19:39:13 +0200 Timo Sirainen (49d54c7c5) Added mail-filter plugin. M configure.ac M src/plugins/Makefile.am A src/plugins/mail-filter/Makefile.am A src/plugins/mail-filter/istream-ext-filter.c A src/plugins/mail-filter/istream-ext-filter.h A src/plugins/mail-filter/mail-filter-plugin.c A src/plugins/mail-filter/mail-filter-plugin.h A src/plugins/mail-filter/ostream-ext-filter.c A src/plugins/mail-filter/ostream-ext-filter.h 2013-11-22 19:32:06 +0200 Timo Sirainen (02076e066) doveadm acl debug: Improved output M src/plugins/acl/doveadm-acl.c 2013-11-22 13:47:36 +0200 Timo Sirainen (9a48c2243) ostream: Don't mark the stream closed too early after all. Use another flag instead to avoid losing the last data written to the stream before closing. M src/lib/ostream-private.h M src/lib/ostream.c 2013-11-21 23:02:33 +0200 Timo Sirainen (c90557198) lib-storage: Improved EACCES error messages for some stat() calls M src/lib-storage/mailbox-list.c 2013-11-20 23:29:13 +0200 Timo Sirainen (a601cdf61) doveadm: Added "fs metadata" command M src/doveadm/doveadm-fs.c 2013-11-20 22:20:06 +0200 Timo Sirainen (8601cb6da) dsync: Fix to 128bit GUID syncing M src/doveadm/dsync/dsync-mailbox-import.c 2013-11-20 21:25:19 +0200 Timo Sirainen (cce2c665b) dsync: have_only_guid128 was never actually being set. M src/doveadm/dsync/dsync-brain-mailbox.c 2013-11-20 15:07:26 +0200 Timo Sirainen (d8a704662) lib-storage: mail_get_headers*() returned only the first header from cache. M src/lib-storage/index/index-mail-headers.c 2013-11-20 14:50:53 +0200 Timo Sirainen (e3411c496) lib-storage: mail_get_*header*() still didn't handle cached values correctly. If header ends with ":", the ":" shouldn't be returned as part of the value. M src/lib-storage/index/index-mail-headers.c 2013-11-20 14:38:55 +0200 Timo Sirainen (d48ab2360) lib-storage: mail_get_*header*() were unnecessarily looking up the headers twice. M src/lib-storage/index/index-mail-headers.c 2013-11-20 14:37:44 +0200 Timo Sirainen (2188b9376) lib-storage: mail_get_*header*() didn't remove leading whitespace for headers from cache. But it was removed when the headers were found by parsing the full header. M src/lib-storage/index/index-mail-headers.c 2013-11-19 23:18:11 +0200 Timo Sirainen (2651a7e21) Added signature for changeset 095a777edc26 M .hgsigs 2013-11-19 23:18:01 +0200 Timo Sirainen (75e6aeabb) Added tag 2.2.8 for changeset 095a777edc26 M .hgtags 2013-11-19 23:18:01 +0200 Timo Sirainen (4d66e427c) Released v2.2.8. M NEWS M configure.ac 2013-11-19 23:17:07 +0200 Timo Sirainen (92bb5db33) auth: Fixed potential crash. M src/auth/auth-request-handler.c 2013-11-19 17:21:21 +0200 Timo Sirainen (0cb546628) lmtp: Make sure output is flushed before disconnection. M src/lmtp/client.c 2013-11-19 16:13:12 +0200 Timo Sirainen (58840b6cf) lib-storage: Error handling fix for layout=index when mailbox creation fails. M src/lib-storage/list/mailbox-list-index-backend.c 2013-11-18 16:26:31 +0200 Timo Sirainen (a92681cee) doveadm user: Fixed now printing with a non-default formatter M src/doveadm/doveadm-auth.c 2013-11-18 16:23:42 +0200 Timo Sirainen (5fb679bef) doveadm user: Fixed printing multiple users M src/doveadm/doveadm-auth.c 2013-11-18 16:18:53 +0200 Timo Sirainen (4a0d2f71a) doveadm auth/user: Fixes to auth_socket_path handling. doveadm user (without -u parameter) was ignoring "-a" parameter entirely. Others weren't using auth_socket_path setting. M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h 2013-11-18 16:15:38 +0200 Timo Sirainen (50b9773be) lib-storage: Added mail_storage_service_set_auth_conn() M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2013-11-18 15:46:46 +0200 Timo Sirainen (f887b3f60) doveadm user: Fixed looking up multiple users when they had different UIDs M src/doveadm/doveadm-auth.c 2013-11-17 16:58:20 +0000 Pascal Volk (1fc71c05b) man: Added doveadm-batch.1. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-batch.1.in M doc/man/doveadm.1.in 2013-11-17 17:59:05 +0200 Timo Sirainen (d1e843e77) dsync: Support syncing storages with 128bit GUIDs <-> string GUIDs. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h M src/doveadm/dsync/dsync-mailbox.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2013-11-17 17:15:42 +0200 Timo Sirainen (b9da8d5ea) lib-storage: Fixed memory leak in mail_add_temp_wanted_fields() M src/lib-storage/index/index-mail.c 2013-11-17 16:59:33 +0200 Timo Sirainen (1a878b9d2) imapc: Merge identical FETCH commands together (only updating UID range) M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2013-11-17 16:58:42 +0200 Timo Sirainen (c954cd9d0) dsync: Tell search that we want to fetch mail streams so prefetching works. M src/doveadm/dsync/dsync-mailbox-export.c 2013-11-17 16:11:31 +0200 Timo Sirainen (95de57450) dsync: Set wanted_fields/headers for the whole search request when possible. M src/doveadm/dsync/dsync-mailbox-export.c 2013-11-17 15:13:58 +0200 Timo Sirainen (c12ee3424) imapc: Avoid sending unnecessary IDLEs that are immediately aborted. M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-storage/index/imapc/imapc-sync.c 2013-11-17 15:03:31 +0200 Timo Sirainen (d29abd3b8) lib-imap-client: Don't reset timeout while waiting for IDLE DONE reply. M src/lib-imap-client/imapc-connection.c 2013-11-17 14:04:22 +0200 Timo Sirainen (2bcc41a00) lib-imap-client: Make sure command timeout is used also for IDLE DONE. M src/lib-imap-client/imapc-connection.c 2013-11-17 01:04:50 +0200 Timo Sirainen (888e0f4be) Added io_loop_add/remove_switch_callback() to call a callback when ioloop is changed. M src/lib/ioloop.c M src/lib/ioloop.h 2013-11-17 01:01:50 +0200 Timo Sirainen (e5327a8ef) lib-imap-client: Don't send NOOP if we're still waiting for a command reply. M src/lib-imap-client/imapc-connection.c 2013-11-17 00:59:39 +0200 Timo Sirainen (cbc5a26b2) lib-imap-client: Make sure command timeout is always set. M src/lib-imap-client/imapc-connection.c 2013-11-17 00:41:23 +0200 Timo Sirainen (d81b80bac) imapc: Fixes to imapc_feature fetch-headers M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c 2013-11-16 21:58:31 +0200 Timo Sirainen (7f5ddd042) lib-index: Recent change broke cache transactions for more than 1 mail. M src/lib-index/mail-cache-transaction.c 2013-11-16 21:20:31 +0200 Timo Sirainen (35f3b7e05) Use io_loop_set_current() instead of directly setting it. M src/doveadm/client-connection.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-imap-client/imapc-client.c M src/lib-sql/driver-pgsql.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib/ioloop.c 2013-11-16 21:17:56 +0200 Timo Sirainen (f97c983e7) dsync: Give hints to lib-storage about what fields we're going to fetch. M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c 2013-11-16 20:10:27 +0200 Timo Sirainen (d02af9610) imapc: When sending FETCH, always request also missing wanted_fields. This avoids sending multiple FETCH commands when prefetch hadn't already fetched everything. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2013-11-16 20:09:19 +0200 Timo Sirainen (bf611d432) imapc: Avoid FETCH INTERNALDATE for getting save_date when we already know received_date. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c 2013-11-16 20:06:34 +0200 Timo Sirainen (ffb886eb9) imapc: Don't send FETCHes for data that is already in cache. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h 2013-11-16 19:41:07 +0200 Timo Sirainen (0f641fb49) imapc: Crashfix for previous change M src/lib-storage/index/imapc/imapc-mail-fetch.c 2013-11-16 19:36:40 +0200 Timo Sirainen (b8eb60a9b) imapc: Added imapc_feature fetch-header. It uses FETCH BODY.PEEK[HEADER.FIELDS (...)] whenever possible instead of fetching the entire header. M TODO M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h 2013-11-16 19:35:10 +0200 Timo Sirainen (0d29e7326) lib-storage: API comment update M src/lib-storage/mail-storage.h 2013-11-16 19:34:57 +0200 Timo Sirainen (91496fd60) lib-index: Support a small in-memory cache even with INDEX=MEMORY M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-transaction.c 2013-11-16 19:20:10 +0200 Timo Sirainen (127f99ade) lib-index: mail_cache_lookup*() can now finds also the latest mail_cache_add()ed data. M src/lib-index/mail-cache-transaction.c 2013-11-16 17:46:10 +0200 Timo Sirainen (83e7db71c) auth: Don't crash if passwd-file is used for authentication but it has no passwords. M src/auth/passdb-passwd-file.c 2013-11-16 14:06:32 +0000 Pascal Volk (bc5edefef) man: Added description for command `doveadm copy`. M doc/man/Makefile.am A doc/man/doveadm-copy.1 M doc/man/doveadm-move.1.in M doc/man/doveadm.1.in 2013-11-08 17:48:54 +0200 Timo Sirainen (fffb5431a) mail_attachment_*: Fixed "stream doesn't support seeking backwards" panic Caused by recent changes. M src/lib-storage/index/index-attachment.c 2013-11-08 17:44:25 +0200 Timo Sirainen (e52982751) lib-fs: Don't crash if istream-fs-file is closed without never being read. M src/lib-fs/istream-fs-file.c 2013-11-08 16:40:13 +0100 Timo Sirainen (0e94016c1) mdbox_deleted: Index was synced with wrong flags. M src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c 2013-11-08 16:39:52 +0100 Timo Sirainen (08a4f9396) lib-storage: Give name to attachments-connector istream. M src/lib-storage/index/index-attachment.c 2013-11-08 16:12:32 +0100 Timo Sirainen (b8545883e) zlib: Give a name to zlib istreams M src/plugins/zlib/zlib-plugin.c 2013-11-08 14:44:57 +0100 Timo Sirainen (2df92c5bb) doveadm mailbox create: Added back -s parameter that was recently accidentally removed. M src/doveadm/doveadm-mail-mailbox.c 2013-11-06 23:00:58 +0200 Timo Sirainen (52de839a8) lib-storage: Moved more of dbox attachments code to generic code. M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-attachment.h M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-attachment.h 2013-11-06 21:10:22 +0200 Timo Sirainen (14900b2af) dbox: Use lib-fs API also for reading the attachments. M src/lib-storage/index/dbox-common/dbox-attachment.c 2013-11-06 21:08:42 +0200 Timo Sirainen (9393445a6) lib-storage: Added mailbox_list_init_fs() to easily initialize fs. Use it for dbox's attachment_fs. M src/lib-storage/Makefile.am M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2013-11-06 21:06:15 +0200 Timo Sirainen (5f5590347) lib-fs: Added istream-fs-file to lazily read from fs_file. M src/lib-fs/Makefile.am A src/lib-fs/istream-fs-file.c A src/lib-fs/istream-fs-file.h 2013-11-06 21:05:51 +0200 Timo Sirainen (5f3151744) istream: Added i_stream_init_parent() to lazily initialize the parent stream. M src/lib/istream-private.h M src/lib/istream.c 2013-11-06 19:03:10 +0200 Timo Sirainen (dde71564d) lib-http: Use [io]_stream_get_error() instead of just errno strings. M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c M src/lib-http/test-http-client.c 2013-11-06 17:13:53 +0200 Timo Sirainen (0afe75cd8) dsync: Use i_stream_get_error() instead of just errno in stream error messages. M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-import.c 2013-11-06 16:33:37 +0200 Timo Sirainen (5a5f8327d) replicator: Database should be exported (not imported!) every 15 mins. M src/replication/replicator/replicator.c 2013-11-06 15:30:15 +0200 Timo Sirainen (d6d4d8bee) mdbox: Fixed race condition when mailbox GUID was looked up before mailbox create was finished. M src/lib-storage/index/dbox-multi/mdbox-storage.c 2013-11-06 13:00:13 +0200 Timo Sirainen (8594bb90f) lib-imap-storage: Fixed leaking istream on error conditions. Caught by Tomasz Potęga M src/lib-imap-storage/imap-msgpart.c 2013-11-06 12:53:58 +0200 Timo Sirainen (7d85bf560) imap: Fixed potential crash if client disconnected during APPEND. M src/imap/cmd-append.c 2013-11-05 20:11:11 +0200 Timo Sirainen (17c299095) lib-mail: Fixed infinite loop in message-parser if message ends with --boundary+CR Thanks to Tomasz Potega for finding this. M src/lib-mail/message-parser.c 2013-11-05 13:12:25 +0200 Timo Sirainen (12b4dbf93) lib-storage: Added FULLDIRNAME=name to mail_location. The difference to DIRNAME is that the name is used also for index and control directories. M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2013-11-04 09:47:17 +0200 Timo Sirainen (a4bb33323) ssl-params: Compiler warning fix when building without OpenSSL M src/ssl-params/ssl-params.c 2013-11-03 23:27:15 +0200 Timo Sirainen (59e26ff34) ostream: Mark stream closed before handling its callback to avoid infinite loops. The callback could call o_stream_copy_error_from_parent(), which in turn would try to close the same ostream again. M src/lib/ostream.c 2013-11-03 22:04:53 +0200 Timo Sirainen (b5b10e2ff) Added signature for changeset b5b118701aa8 M .hgsigs 2013-11-03 22:04:50 +0200 Timo Sirainen (1942cd7a9) Added tag 2.2.7 for changeset b5b118701aa8 M .hgtags 2013-11-03 22:04:50 +0200 Timo Sirainen (2cb0477b4) Released v2.2.7. M NEWS M configure.ac 2013-11-03 21:48:24 +0200 Timo Sirainen (d34f3ccf9) Make static analyzer happier M src/lib-http/test-http-response-parser.c 2013-11-03 21:47:46 +0200 Timo Sirainen (b7dabf89b) Make static analyzer happier. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2013-11-03 21:45:37 +0200 Timo Sirainen (a355fad57) auth-worker: Potential crashfix at deinit M src/auth/auth-worker-client.c 2013-11-03 21:44:06 +0200 Timo Sirainen (56ffe7c93) auth: Crashfix to "doveadm auth cache flush" when auth cache was disabled M src/auth/auth-master-connection.c 2013-11-03 21:42:47 +0200 Timo Sirainen (4981c1da7) auth: Potential crashfix M src/auth/auth-request-handler.c 2013-11-03 20:56:25 +0200 Timo Sirainen (417895402) Call lib_atexit() callbacks before destroying the lib-master ioloop. M src/lib-master/master-service.c M src/lib/lib.c M src/lib/lib.h 2013-11-03 01:12:24 +0200 Timo Sirainen (333b1f356) lib-imap: imap_arg_get_atom() should also treat NIL as valid atom. M src/lib-imap/imap-arg.c 2013-11-02 22:57:27 +0200 Timo Sirainen (2ec1157ef) lib-storage: Fixed parsing NILs in search parameters. M src/lib-storage/mail-search-parser-imap.c 2013-11-02 22:42:32 +0200 Timo Sirainen (1dc33c503) lib-imap: Fixed NIL astring to not lose its case-sensitivity. M src/lib-imap/imap-arg.c M src/lib-imap/imap-parser.c 2013-11-02 22:32:23 +0200 Timo Sirainen (1e430b62d) lib-imap: When writing "NIL" as astring, write it always as a "quoted". M src/lib-imap/imap-quote.c 2013-11-02 22:31:14 +0200 Timo Sirainen (954bbe7f8) imap: Fixed GETMETADATA NIL to treat it as "NIL" M src/imap/cmd-getmetadata.c 2013-11-02 22:30:42 +0200 Timo Sirainen (c4699302b) lib-imap: NIL as astring is the same as "NIL" This is a bit klugdy but works as long as all callers use imap_arg_get_astring() instead of trying to handle it themselves. M src/lib-imap/imap-arg.c M src/lib-imap/imap-arg.h 2013-11-02 21:29:39 +0200 Timo Sirainen (02c75e04c) imap: Added initial support for METADATA extension. For now this is enabled only when imap_metadata=yes setting is used. The setting will go away once the feature is complete. Also mail_attribute_dict must be set. TODO: - Metadata doesn't work for public namespaces. There should probably be a mail_attribute_public_dict setting for that. - There isn't any kind of quota or other limits - After ENABLE METADATA start sending untagged METADATA entries to clients - /shared/admin should probably return postmaster_address URL - Check if we handle ACLs correctly - RFC says that it SHOULD be possible to set METADATA entries to \NoSelect mailboxes. We probably will never allow this though. M src/imap/Makefile.am A src/imap/cmd-getmetadata.c A src/imap/cmd-setmetadata.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c M src/imap/imap-commands.h A src/imap/imap-metadata.c A src/imap/imap-metadata.h M src/imap/imap-settings.c M src/imap/imap-settings.h 2013-11-02 20:09:28 +0200 Timo Sirainen (d0c9d4332) lib-imap: Added IMAP_PARSE_FLAG_STOP_AT_LIST for stopping after '(' M src/lib-imap/imap-parser.c M src/lib-imap/imap-parser.h 2013-11-02 20:05:08 +0200 Timo Sirainen (f7464ce41) lib-imap: IMAP protocol parser was parsing NIL case-sensitively. Luckily no commands currently actually use NILs. M src/lib-imap/imap-parser.c 2013-11-02 15:30:47 +0200 Timo Sirainen (0e6fcf80a) ssl-params: Don't fail completely if 512 bit DH parameters generation fails. M src/ssl-params/ssl-params-openssl.c 2013-11-02 15:27:28 +0200 Timo Sirainen (923e40fa9) ssl-params: Added ssl_dh_parameters_length & removed ssl_parameters_regenerate setting. ssl_parameters_regenerate was based on some text from GNUTLS documentation a long time ago, but there's really not much point in doing it. Ideally we should also support "openssl dhparam" input files, but for now there's the ssl_dh_parameters_length setting that can be used to specify the wanted DH parameters length. If the current ssl-parameters.dat has a different length, it's regenerated. We should probably at some point support also built-in DH parameters which are returned while the ssl-params runs. M doc/example-config/conf.d/10-ssl.conf M src/login-common/ssl-proxy-openssl.c M src/ssl-params/ssl-params-openssl.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params-settings.h M src/ssl-params/ssl-params.c M src/ssl-params/ssl-params.h 2013-11-02 15:18:15 +0200 Timo Sirainen (e5dab0fd4) ssl-params: Fixed closing listener fds for regeneration process. M src/ssl-params/ssl-params.c 2013-11-02 14:19:23 +0200 Timo Sirainen (3e7a6badb) dsync: Don't track too new changes from transaction log. This mattered only during race conditions while there were changes being done to the mailbox during syncing. M src/doveadm/dsync/dsync-transaction-log-scan.c 2013-11-02 13:52:30 +0200 Timo Sirainen (e3ea9f8db) auth: Added %{session_pid} variable for userdb lookups in login requests. session_pid is now always sent to auth process. A new request_auth_token parameter was added to specify if auth_token should be returned or not. M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h M src/lib-master/master-login-auth.c 2013-11-02 13:34:17 +0200 Timo Sirainen (b63284468) maildir: If filename begins with ':', rename it immediately instead of causing errors. M src/lib-storage/index/maildir/maildir-sync.c 2013-11-02 13:14:16 +0200 Timo Sirainen (c3e771be4) mbox: Added assert to try to catch corruption. M src/lib-storage/index/mbox/mbox-sync.c 2013-11-02 12:46:08 +0200 Timo Sirainen (580ba11d9) auth: passdb shadow supports now lookup_credentials() API M src/auth/passdb-shadow.c 2013-11-02 12:42:55 +0200 Timo Sirainen (04f792b9b) auth: Return a reason string if PASS lookup fails because passdbs don't support it. M src/auth/auth-master-connection.c 2013-11-02 12:37:10 +0200 Timo Sirainen (1e8cc7b5e) auth: passdb passwd supports now lookup_credentials() API It's not very useful, but at least it allows the lookup itself to succeed. M src/auth/passdb-passwd.c 2013-11-02 12:25:09 +0200 Timo Sirainen (9ac3627c6) mdbox: When mail's refcount is too high, don't prevent shrinking the refcount. M src/lib-storage/index/dbox-multi/mdbox-map.c 2013-11-02 12:14:17 +0200 Timo Sirainen (d0388a42d) doveadm import: Fixed translating different source and dest hierarchy separators in mailbox names. M src/doveadm/doveadm-mail-import.c 2013-11-01 16:44:25 +0200 Timo Sirainen (c7db4d0d3) lib-storage: If hook is forced, don't bother checking if it's in user's mail_plugins. M src/lib-storage/mail-storage-hooks.c 2013-11-01 16:43:53 +0200 Timo Sirainen (56a22540b) lib-storage: Hooks weren't called exactly in the order they were intended. The comparison didn't skip the paths, so the "lib" prefix skipping didn't work. M src/lib-storage/mail-storage-hooks.c 2013-10-30 12:11:54 +0200 Timo Sirainen (4e88d2b9e) module-dir: Allow plugins to have deinit() function without init() function M src/lib/module-dir.c 2013-10-29 21:16:05 +0200 Timo Sirainen (daaf3908a) Compiling fix for old GCC M src/lib-http/test-http-server.c 2013-10-29 21:11:10 +0200 Timo Sirainen (3fe2850e3) lib-storage: Allow storage name to contain '_' M src/lib-storage/mail-storage.c 2013-10-29 21:10:33 +0200 Timo Sirainen (ed9535bb5) configure: Added mdbox_deleted storage. M configure.ac 2013-10-29 21:08:07 +0200 Timo Sirainen (b90c23a98) mdbox: Added "mdbox_deleted" storage, which can be used to access messages with refcount=0 For example: doveadm import mdbox_deleted:~/mdbox "" mailbox inbox subject oops M src/lib-storage/index/dbox-multi/Makefile.am A src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-map.h M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.h 2013-10-29 21:07:28 +0200 Timo Sirainen (561049f25) lib-index: Don't mix index struct caching for in-memory vs. disk indexes. M src/lib-index/mail-index-alloc-cache.c 2013-10-29 20:26:33 +0200 Timo Sirainen (1edfe8b0d) mbox: Added extra assert M src/lib-storage/index/mbox/mbox-sync-rewrite.c 2013-10-29 19:42:14 +0200 Timo Sirainen (b5d2b15b7) imapc: Added a Courier-workaround for not returning UIDNEXT on SELECT. M src/lib-storage/index/imapc/imapc-storage.c 2013-10-29 18:59:20 +0200 Timo Sirainen (8536cd46b) virtual: If virtual mailbox has no config file, assume it's just nonexistent. Most importantly if the virtual namespace root doesn't have the config, it should fail with MAIL_ERROR_NOTFOUND rather than MAIL_ERROR_NOTPOSSIBLE. M src/plugins/virtual/virtual-config.c 2013-10-29 17:32:42 +0200 Timo Sirainen (a952a4444) lib-http: Added http_url_escape_path() M src/lib-http/http-url.c M src/lib-http/http-url.h 2013-10-28 11:50:40 +0200 Timo Sirainen (e67a891ef) doveadm-server: Minor error message improvement. M src/doveadm/client-connection.c 2013-10-28 11:50:14 +0200 Timo Sirainen (678376dea) doveadm-server: ioloop change caused assert-crashes if outgoing data was buffered at the end. M src/doveadm/client-connection.c 2013-10-26 19:11:34 +0300 Timo Sirainen (e0e2c938d) auth: Refuse to run checkpassword script insecurely by default M src/auth/checkpassword-reply.c M src/auth/db-checkpassword.c 2013-10-26 18:59:52 +0300 Timo Sirainen (c215ca02d) fts-solr: Fixed support for multiple Solr hosts when same process handles multiple users. E.g. indexer-worker was always using only the first user's Solr host. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/fts-solr-plugin.h M src/plugins/fts-solr/solr-connection.c 2013-10-26 18:59:03 +0300 Timo Sirainen (81558ac5d) lib-http: Recent DNS change caused lib-http to access uninitialized memory. M src/lib-http/http-client-host.c 2013-10-26 18:31:16 +0300 Timo Sirainen (75f28ef07) dsync: Fixed crashes at deinit when -r rawlog parameter was used. M src/doveadm/dsync/doveadm-dsync.c 2013-10-26 18:07:45 +0300 Timo Sirainen (f6f302e49) auth: Fixed crash with auth_verbose_passwords!=no and non-plaintext auth M src/auth/auth-request.c 2013-10-26 18:06:26 +0300 Timo Sirainen (a3e719eb9) auth: Fixed assert-crash with auth_verbose_passwords!=no and 32bit systems. t_strndup() assert-crashed with size=UINT_MAX parameter. M src/auth/auth-request.c 2013-10-24 16:21:10 +0300 Timo Sirainen (280503e88) *-login: Send the auth reply back corked. M src/login-common/client-common-auth.c 2013-10-24 16:08:23 +0300 Timo Sirainen (e911b23f3) login proxy: Use corking when writing data. M src/login-common/client-common-auth.c M src/login-common/login-proxy.c 2013-10-24 14:59:03 +0300 Timo Sirainen (d31c77e63) auth: Cache master user logins also. M src/auth/auth-cache.c M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/passdb-cache.c 2013-10-24 11:25:41 +0300 Timo Sirainen (bada94029) doveadm mailbox create: Added -g parameter to create mailbox with specific GUID. M src/doveadm/doveadm-mail-mailbox.c 2013-10-23 16:51:55 +0300 Timo Sirainen (c10d7b092) doveadm copy: Don't require the extra mailbox+extra parameter checks as expunge/move requires. Perhaps they wouldn't be necessary even with move. M src/doveadm/doveadm-mail-copymove.c 2013-10-23 16:50:57 +0300 Timo Sirainen (50d16f6fe) doveadm expunge: Improved the error hint message about using something else besides MAILBOX. M src/doveadm/doveadm-mail-expunge.c 2013-10-23 16:33:43 +0300 Timo Sirainen (e7a3ba6a4) lib-master: Fix to previous commit. It broke doveadm-server's "does client need authentication?" check. M src/lib-master/master-service.c 2013-10-23 16:23:23 +0300 Timo Sirainen (6de8a4d76) stats: Hide warnings about old autocreated sessions having gotten lost. M src/stats/mail-session.c 2013-10-23 16:10:30 +0300 Timo Sirainen (9217d2426) lib-master: If service_count=1, close the listener before starting to handle the connection. This way if the connection handling takes a long time and the service doesn't notice that master dies, it can keep running without keeping the listener fds open and preventing a restart. M src/lib-master/master-service.c 2013-10-23 15:36:02 +0300 Timo Sirainen (7195a14c2) replication plugin: Hide write(fifo) EPIPE errors, which just mean a server restart. M src/plugins/replication/replication-plugin.c 2013-10-23 15:26:35 +0300 Timo Sirainen (6ac32bfcd) dict-redis: Don't crash if we get disconnected during an open transaction. M src/lib-dict/dict-redis.c 2013-10-23 15:16:52 +0300 Timo Sirainen (c3f05842d) dict-redis: Don't crash when receiving invalid input instead of expected $size. M src/lib-dict/dict-redis.c 2013-10-23 14:59:57 +0300 Timo Sirainen (b91b14dfb) doveadm-server: Fixed hangs caused by previous commit M src/doveadm/doveadm-mail-server.c 2013-10-23 14:35:07 +0300 Timo Sirainen (ecc0cf839) io_loop_run() now assert-crashes if it's attempted to be used recursively for the same ioloop. M src/lib/ioloop-private.h M src/lib/ioloop.c 2013-10-23 14:34:35 +0300 Timo Sirainen (06c303e21) doveadm-server: Don't call io_loop_run() recursively for the same ioloop. This breaks things more or less badly, especially ioloop-kqueue really didn't like it. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail-server.c 2013-10-23 11:47:10 +0300 Timo Sirainen (a3ed53b37) lib-auth: auth_master_cache_flush() always waited for timeout before finishing. M src/lib-auth/auth-master.c 2013-10-23 11:40:26 +0300 Timo Sirainen (f205e1386) auth: Don't crash with "doveadm auth cache flush" when cache is disabled. M src/auth/auth-master-connection.c 2013-10-23 11:38:07 +0300 Timo Sirainen (1d00bd0bf) ioloop-kqueue: Added extra assert. M src/lib/ioloop-kqueue.c 2013-10-22 19:12:38 +0300 Timo Sirainen (28715adb0) lib-dns: Fixed busy looping when dns-client disconnected. M src/lib-dns/dns-lookup.c 2013-10-22 15:36:07 +0300 Timo Sirainen (4f825be38) lib-fs: Added dns_client to fs_settings. M src/lib-fs/fs-api.h 2013-10-22 15:35:27 +0300 Timo Sirainen (7944646fa) lib-http: Support DNS lookups via the new dns-client API. M src/lib-http/http-client-host.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-10-22 15:34:55 +0300 Timo Sirainen (ba54c7121) lib-dns: Added alternative API for doing longer connections to dns-client process. M src/lib-dns/dns-lookup.c M src/lib-dns/dns-lookup.h 2013-10-21 21:38:17 +0300 Timo Sirainen (be2bc5677) doveadm backup: If -D parameter is given, log the reason why mailbox gets deleted. M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.h M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c 2013-10-21 20:47:53 +0300 Timo Sirainen (ec0dffdfb) imap: COPY allows transaction commit now to fail with "some messages were expunged". M src/imap/cmd-copy.c 2013-10-16 20:16:45 +0300 Timo Sirainen (66bc85d33) imap: Don't assert-crash on FETCH BODY[MIME] (return BAD instead) M src/lib-imap-storage/imap-msgpart.c 2013-10-12 11:11:04 +0300 Stephan Bosch (e47c2f17d) lib-http: http-client: Added support for tunneling SSL conntections through proxy. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-10-12 11:05:08 +0300 Stephan Bosch (a62fe4b30) lib-http: Added support for creating CONNECT tunnels through HTTP. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h M src/lib-http/http-response-parser.c M src/lib-http/http-response-parser.h M src/lib-http/http-response.h 2013-10-12 11:00:15 +0300 Stephan Bosch (4219de12b) lib-http: http-client: Implemented proxy support. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-10-12 10:58:04 +0300 Stephan Bosch (d82ad7143) lib-http: Implemented functions for cloning and copying HTTP URLs and for constructing partial URLs. M src/lib-http/http-url.c M src/lib-http/http-url.h 2013-10-12 10:57:05 +0300 Stephan Bosch (50d1446e7) lib-http: http-client: Added request error code for broken payload input stream. This error is triggered when reading from the provided payload input stream fails while sending the request. Previously this would yield the same error code as for a failure to write to the connection output. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2013-10-12 10:55:38 +0300 Stephan Bosch (ad0304978) lib-http: Added support for disabling automatic redirects. M src/lib-http/http-client-connection.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-10-12 10:54:50 +0300 Stephan Bosch (6c6915f4d) lib-http: http-client: Made requests release payload input stream as early as possible. This prevents deadlock conditions when used for the HTTP proxy. M src/lib-http/http-client-request.c 2013-10-12 10:54:10 +0300 Stephan Bosch (0252ab930) lib-http: http-client: When client request is retried based on a response received from server, return full response to caller if retry is not possible. Before, it would construct a dummy-response that basically retains only the status and reason elements. This is currently only relevant for the way a 417 Expectation Failed response from the server is handled. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2013-10-12 10:53:16 +0300 Stephan Bosch (c9779bb27) lib-http: http-client: Made dummy response for returning internal errors more complete by filling in the version number and a proper date. M src/lib-http/http-response.c M src/lib-http/http-response.h 2013-10-12 10:52:35 +0300 Stephan Bosch (1faa52008) lib-http: Added more tests for the http_request_parser. M src/lib-http/test-http-request-parser.c 2013-10-11 21:36:21 +0300 Timo Sirainen (1b75b342e) lib-dns: Close dns-client fd before calling callback. Just in case the callback is slow and keeps the fd unnecessarily long open. M src/lib-dns/dns-lookup.c 2013-10-11 20:03:06 +0300 Timo Sirainen (6db058ebd) lib-lda: lmtp_client_connect_tcp() shouldn't immediately call callbacks if dns lookup fails. M src/lib-lda/lmtp-client.c 2013-10-11 19:27:39 +0300 Timo Sirainen (b6540ed0d) imap: Improved "EOF while appending" disconnect log message. M src/imap/cmd-append.c 2013-10-11 19:17:10 +0300 Timo Sirainen (2d2ebe91d) liblib: If parent ostream closes itself on error, close our ostream as well. This avoids a situation where ostream is basically unusable with last_failed_errno set, but it's not marked as closed. The current code often checks ostream->closed but doesn't check last_failed_errno. ostream-file also autocloses the stream, but filter ostreams without this patch don't autoclose, so this caused problems with e.g. IMAP COMPRESSION extension where the zlib-ostream didn't get marked as closed, although the problem was only logging "BUG: Unknown internal error" instead of "Disconnected" as the client's disconnect reason. M src/lib/ostream.c 2013-10-11 18:54:36 +0300 Timo Sirainen (ca31fc1a8) LAYOUT=index: Fixed race condition during mailbox creation. M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.h 2013-10-11 12:31:48 +0300 Timo Sirainen (e1cf5b2ef) lib-storage: If search finds a match to a cached header, don't open the body stream. M src/lib-storage/index/index-search.c M src/lib-storage/mail-search.c 2013-10-11 12:22:56 +0300 Timo Sirainen (3f41cfaa6) lib-storage: Header+body searches might not have searched the body in some cases. Only the header was requested for the search stream, which with imapc and pop3c could have caused the body not to be in the stream, although it usually was because of the "fetch body" hint. M src/lib-storage/index/index-search.c 2013-10-10 20:50:10 +0300 Timo Sirainen (28482afc8) master: host.domain lookups weren't cached, they were done at the worst possible time. This fixes "net_connect_unix(imap) failed: Resource temporarily unavailable" and various other issues where processes weren't being created fast enough if the host.domain lookup was slow (e.g. done via external DNS). M src/master/service-process.c 2013-10-08 16:48:04 +0300 Timo Sirainen (4addfd263) auth: Added ability to truncate values logged by auth_verbose_passwords. M doc/example-config/conf.d/10-logging.conf M src/auth/auth-request.c M src/auth/auth-settings.c 2013-10-08 10:04:55 +0300 Timo Sirainen (b99130e4c) lib-http: Added setting for User-Agent header. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-10-06 13:21:15 +0300 Timo Sirainen (34de49959) lib-http: Fixed linking with some compilers Inline functions in http-header.h still required linking http-header.lo with e.g. Sun Studio M src/lib-http/Makefile.am 2013-10-05 13:29:26 +0300 Timo Sirainen (60fe2f162) lib-fs: Added FS_OPEN_FLAG_ASYNC_NOQUEUE M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2013-10-03 14:56:23 +0300 Timo Sirainen (0a1ef4d0a) dsync: Added missing alarm(0) This didn't really cause any problems normally since the process was usually just about to die anyway. M src/doveadm/dsync/doveadm-dsync.c 2013-10-03 11:34:48 +0300 Timo Sirainen (077ab4470) If DEBUG_OUTOFMEM environment is set, abort() on "out of memory" errors. M src/lib/failures.c M src/master/master-settings.c M src/master/service-process.c 2013-10-03 11:20:09 +0300 Timo Sirainen (5973d496b) dsync: Removed periodic commits while importing. The problem is that the current algorithm doesn't handle it correctly. If there already are some mails that exist locally, or remote has duplicate mails, the messages may not be saved in the UID order, and if there's a commit between such wrong ordering, the UIDs get renumbered. M src/doveadm/dsync/dsync-mailbox-import.c 2013-10-02 11:48:31 +0300 Timo Sirainen (5f9293676) mailbox_list_index: Fixed assert-crash sometimes when deleting a mailbox. M src/lib-storage/list/mailbox-list-index.c 2013-09-30 15:28:04 +0300 Timo Sirainen (ca096c557) doveadm fs delete: Added -R parameter for recursive deletion. M src/doveadm/doveadm-fs.c 2013-09-30 09:04:43 +0300 Timo Sirainen (a31d634ec) lib-storage: Fail with an error instead of crash with namespace prefix=inbox/ M src/lib-storage/mail-storage.c 2013-09-26 05:51:43 +0200 Timo Sirainen (f2767c736) Panic if io_remove() fails with EBADF. It's a bug that shouldn't really be ignored. Panicing will give a debuggable core dump. M src/lib/ioloop-epoll.c 2013-09-26 04:55:59 +0200 Timo Sirainen (fe145bd9f) lib-http: 32bit system fix. M src/lib-http/http-header-parser.c 2013-09-25 10:06:19 +0300 Timo Sirainen (4036973f8) Added signature for changeset 1de9a494cb25 M .hgsigs 2013-09-25 10:06:08 +0300 Timo Sirainen (dd4eafd39) Added tag 2.2.6 for changeset 1de9a494cb25 M .hgtags 2013-09-25 10:06:08 +0300 Timo Sirainen (ca287f3b0) Released v2.2.6. M NEWS M TODO M configure.ac 2013-09-23 04:25:16 +0300 Timo Sirainen (5d4c793b4) master: Added reuse_port setting to inet_listeners, which enables SO_REUSEPORT if available. After forking a new service process, a new listener socket is created for each such inet_listener. Linux v3.9+ added SO_REUSEPORT feature, which should distribute clients more uniformly to the processes. I'm not sure if this makes any difference in BSDs. At least in Linux v3.9 there was still a bug that if the number of listening processes changed, some TCP handshakes might not finish. I don't see if this has already been fixed, so this is probably safe to use only for services whose process count doesn't change (e.g. process_min_avail is set high enough). M src/imap-login/imap-login-settings.c M src/lib-master/service-settings.h M src/master/master-settings.c M src/master/service-listen.c M src/master/service-listen.h M src/master/service-process.c M src/master/service.h M src/pop3-login/pop3-login-settings.c 2013-09-23 04:06:08 +0300 Timo Sirainen (b270c58fc) lib: Added net_listen_full() with a flag to set SO_REUSEPORT on the socket if available. M src/lib/net.c M src/lib/net.h 2013-09-22 07:43:31 +0300 Timo Sirainen (d15b2fc29) imapc: Don't crash if imapc_password is missing. M src/lib-storage/index/imapc/imapc-list.c 2013-09-22 07:40:01 +0300 Timo Sirainen (435a5772f) maildir: Autocreate missing cur/ new/ tmp/ directories only with Maildir++ and imapdir. \Noselect mailboxes aren't possible with those layouts, but with other layouts they are and they shouldn't get automatically created just by selecting them. M src/lib-storage/index/maildir/maildir-storage.c 2013-09-22 07:24:26 +0300 Timo Sirainen (835f2fce0) i_getpw*(): Added OpenBSD workaround. M src/lib/ipwd.c 2013-09-22 07:20:12 +0300 Timo Sirainen (08997487a) istream-attachment-connector: Add base64 parameters to stream name for error messages. M src/lib-mail/istream-attachment-connector.c 2013-09-22 07:19:39 +0300 Timo Sirainen (825111a4e) istream-sized: Fail read() also when the stream is larger than it should have been. M src/lib/istream-sized.c 2013-09-22 06:30:47 +0300 Timo Sirainen (fb100955a) mbox: Fixed assert-crash due to wrong transaction_count handling. This happened only when messages had been expunged by another session just before saving a new message. M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/mail-storage.c 2013-09-22 04:41:50 +0300 Timo Sirainen (6516e7c2c) lib-fs: Improved fs_write_*() error messages. M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2013-09-22 04:40:02 +0300 Timo Sirainen (9ba3ecf52) lib-storage: Improve error message logging when attachment writing fails M src/lib-storage/index/index-attachment.c 2013-09-22 04:39:35 +0300 Timo Sirainen (f4735bf7e) lib: Added [io]_stream_create_error_str() M src/lib/iostream-private.h M src/lib/iostream.c M src/lib/istream.c M src/lib/istream.h M src/lib/ostream.c M src/lib/ostream.h 2013-09-22 04:24:29 +0300 Timo Sirainen (904ca86f5) ostream-errno: last_failed_errno wasn't set, causing problems with some functions. M src/lib/ostream.c 2013-09-22 04:14:23 +0300 Timo Sirainen (0482d891a) Fixes and improvements to istream-attachment-extractor error handling. If an attachment saving failed, the mail was still saved to disk, just without the attachments. M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-attachment-extractor.h M src/lib-mail/test-istream-attachment.c M src/lib-storage/index/index-attachment.c 2013-09-22 03:40:14 +0300 Timo Sirainen (49b3aba19) acl: Hide non-listable mailboxes from a shared subscriptions file. M src/plugins/acl/acl-mailbox-list.c 2013-09-22 03:17:12 +0300 Timo Sirainen (10666ea72) example-config: Fixed login_log_format comment. M doc/example-config/conf.d/10-logging.conf 2013-09-22 02:44:21 +0300 Timo Sirainen (780f1d9a6) auth: If auth_verbose_passwords is set, log the password also for unknown users. M src/auth/auth-request.c 2013-09-22 02:32:05 +0300 Timo Sirainen (ed3c4faf5) auth: Use a common auth_request_log_unknown_user() for logging "unknown user" entries. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/db-passwd-file.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-dict.c M src/auth/passdb-ldap.c M src/auth/passdb-pam.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd.c M src/auth/userdb-sql.c M src/auth/userdb-vpopmail.c 2013-09-22 02:24:05 +0300 Timo Sirainen (731238b42) net_listen_unix(): If path is too long, return EOVERFLOW instead of EINVAL. M src/lib/net.c 2013-09-22 02:23:30 +0300 Timo Sirainen (72e0939f9) If EOVERFLOW errno isn't defined by system, fallback to ERANGE instead of EINVAL. ERANGE is used by other functions as well, such as getpwnam_r(). M src/lib/compat.h 2013-09-22 02:20:09 +0300 Timo Sirainen (f974134f4) Added ssl_prefer_server_ciphers setting. M doc/example-config/conf.d/10-ssl.conf M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl-settings.h M src/lib-master/master-service-ssl.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl.h M src/login-common/ssl-proxy-openssl.c 2013-09-22 02:07:16 +0300 Timo Sirainen (fad2e085d) mbox: Fixed mailbox_list_index=yes to work with non-Dovecot mbox changes. M src/lib-storage/index/mbox/Makefile.am M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-storage.h A src/lib-storage/index/mbox/mbox-sync-list-index.c M src/lib-storage/index/mbox/mbox-sync-private.h 2013-09-22 01:40:11 +0300 Timo Sirainen (c7eb1ffb7) *-login: Added %{orig_user}, %{orig_username} and %{orig_domain} variables. The original username is what the client sent to server before any translations. M src/auth/auth-request-handler.c M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2013-09-22 01:09:32 +0300 Timo Sirainen (d0ff92b81) dsync: Added -P parameter to do a purge for the remote storage after syncing. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c 2013-09-21 23:33:42 +0300 Timo Sirainen (6f970b9a0) lib-storage: Fixed listescape when escape_char was the same as namespace separator. M src/lib-storage/mailbox-list.c 2013-09-21 05:28:45 +0300 Timo Sirainen (a471e03f0) imap: Send * OK [CLOSED] always before tagged SELECT reply. M src/imap/cmd-select.c M src/imap/imap-commands-util.c M src/imap/imap-commands-util.h 2013-09-21 05:05:22 +0300 Timo Sirainen (d2ca20a47) lib-storage: Don't create a settings cache for initial global settings read. This fixes at least doveadm -A so that it doesn't connect to config process for each user. M src/lib-storage/mail-storage-service.c 2013-09-21 05:03:03 +0300 Timo Sirainen (5afc76d02) auth: Fixed user iteration hang due to earlier stream corking changes. Also fixed process title updating for auth-worker process during LIST. M src/auth/auth-master-connection.c M src/auth/auth-worker-client.c 2013-09-21 04:48:52 +0300 Timo Sirainen (e262b92fc) lib-auth: Fixed infinite looping if user listing failed because auth process disconnected. M src/lib-auth/auth-master.c 2013-09-21 04:02:51 +0300 Timo Sirainen (bdb454d51) lib-auth: Recent cleanup commit was actually cleaning up too much. M src/lib-auth/auth-master.c 2013-09-21 03:49:22 +0300 Timo Sirainen (16cd2c1b4) doveadm sync: When -1 parameter is used, ignore missing mailboxes in source. Previously the syncs finished with "Mailbox changes caused a desync." and exit code 2. This was especially common when the destination server had new autocreated mailboxes and user logged in after the first dsync. M src/doveadm/dsync/dsync-brain-mailbox.c 2013-09-21 03:40:46 +0300 Timo Sirainen (311cbd9b1) dsync: Added more consistency when debug logging about changes during sync. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-mailbox-import.c 2013-09-21 03:29:09 +0300 Timo Sirainen (31d32d39d) dsync: Added some more debug logging. M src/doveadm/dsync/dsync-mailbox-import.c 2013-09-21 02:55:27 +0300 Timo Sirainen (4f2fa2e5f) imapc: Don't log unnecessary errors at deinit about aborted hiearchy separator lookup. The lookup is done asynchronously at startup. It doesn't matter if we never get around to finishing it. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2013-09-20 10:45:22 +0300 Timo Sirainen (dfbd56c81) director: Detect lost director restarts and reset last_sync_seq. M src/director/director-connection.c 2013-09-20 10:35:34 +0300 Timo Sirainen (88cb1595b) director: Make sure director restart notifications go to everyone in the ring. M src/director/director-connection.c 2013-09-20 10:12:24 +0300 Timo Sirainen (84304cae9) director: Directors weren't always marked as restarted when they were. M src/director/director-connection.c 2013-09-20 10:11:45 +0300 Timo Sirainen (9d2575d99) director: Fix & improvement to debug logging. M src/director/director-connection.c 2013-09-20 10:00:48 +0300 Timo Sirainen (7e656f6f5) director: Added more debug logging. M src/director/director-connection.c 2013-09-20 09:46:31 +0300 Timo Sirainen (44875c83e) director: Don't assert-crash if PASS lookup fails. M src/director/login-connection.c 2013-09-20 04:27:29 +0300 Timo Sirainen (754943e33) dsync: Don't log "Mailbox changes caused a desync" warning when running via doveadm-server. M src/doveadm/dsync/doveadm-dsync.c 2013-09-20 04:20:22 +0300 Timo Sirainen (586ad46d2) ssl-params: Long-running ssl-params process shouldn't cause Dovecot restart to fail. M src/ssl-params/ssl-params.c 2013-09-20 04:01:10 +0300 Timo Sirainen (3136f1b7b) lib-ssl-iostream: Give better error message if CA settings are missing. M src/lib-ssl-iostream/iostream-openssl-context.c 2013-09-20 03:54:31 +0300 Timo Sirainen (f605df8a4) dbox: Fixed "UIDVALIDITY=0" error race condition. If session 1 had mkdir()ed but not yet created the initial index, while session 2 attempted to open the mailbox, it would create an empty index and log the error. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.h M src/lib-storage/index/dbox-single/sdbox-sync.c 2013-09-20 03:41:51 +0300 Timo Sirainen (1f0da9f37) master: Make sure new processes aren't created after stop signal is received. M src/master/main.c 2013-09-20 02:38:53 +0300 Timo Sirainen (fc22ecbb0) mbox: Handle correctly if MAIL_FETCH_HEADER_MD5 lookup fails because mail is already expunged. M src/lib-storage/index/mbox/mbox-mail.c 2013-09-20 02:28:45 +0300 Timo Sirainen (d5b366506) lib-auth: Don't leave stale pointers to stack lying around in memory. M src/lib-auth/auth-master.c 2013-09-20 00:59:36 +0300 Timo Sirainen (3eb142b99) ioloop-kqueue: Added assert M src/lib/ioloop-kqueue.c 2013-09-20 00:22:15 +0300 Timo Sirainen (6a67bcb46) imap: If FETCH fails, log the stream's error string instead of errno. M src/imap/cmd-append.c M src/imap/cmd-urlfetch.c M src/imap/imap-fetch-body.c 2013-09-20 00:20:19 +0300 Timo Sirainen (2c4274850) istream-chain/concat/seekable: When child stream fails, copy its error to ourself. M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-seekable.c 2013-09-20 00:14:11 +0300 Timo Sirainen (9f131c8b6) istream-file: Assert-crash if read() fails with EBADF. Something's already wrong at that point and it may not be safe to continue. Also crashing makes it easier to debug such situation. M src/lib/istream-file.c 2013-09-20 00:12:45 +0300 Timo Sirainen (1c6f6f5be) iostreams: Set stream error string when it provides extra information. M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-zlib.c M src/lib-fs/istream-metawrap.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-qp-decoder.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib/istream-base64-decoder.c M src/lib/istream-concat.c M src/lib/istream-file.c M src/lib/istream-hash.c M src/lib/istream-jsonstr.c M src/lib/istream-mmap.c M src/lib/istream-sized.c M src/lib/ostream-file.c 2013-09-20 00:00:49 +0300 Timo Sirainen (862ec874f) iostream: Added ability to set/get error strings for streams. M src/lib/iostream-private.h M src/lib/iostream.c M src/lib/istream.c M src/lib/istream.h M src/lib/ostream.c M src/lib/ostream.h 2013-09-19 22:44:20 +0300 Timo Sirainen (cf4a4a35a) doveadm: Added "auth lookup" command to do a passdb lookup. M src/doveadm/doveadm-auth.c 2013-09-19 22:43:45 +0300 Timo Sirainen (1479a685c) auth: Fixed non-auth passdb lookup when password had "." suffix. M src/auth/passdb.c 2013-09-19 22:20:56 +0300 Timo Sirainen (9a7f22e2c) imapc: Abort pending commands before any deinitialization to avoid crashes. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c 2013-09-18 23:24:30 +0300 Stephan Bosch (10962368c) lib-http: Created tests for http_request_parser. M src/lib-http/Makefile.am A src/lib-http/test-http-request-parser.c 2013-09-18 23:24:22 +0300 Stephan Bosch (ded5763b4) uri-util: Improved authority 'host' parse error. M src/lib/uri-util.c 2013-09-18 23:24:11 +0300 Stephan Bosch (1490e4e92) lib-http: http-url: Fixed return of proper error message in case of a failure to parse request target Host header. Assigned the error to the parser object rather than returning it directly. M src/lib-http/http-url.c 2013-09-18 23:24:02 +0300 Stephan Bosch (e74d62011) lib-http: Fixed handling of limits=NULL parameter for http_request_parser_init. Got messed up in patch queue. M src/lib-http/http-request-parser.c 2013-09-18 00:00:05 +0300 Timo Sirainen (329c2181e) dsync: Don't attempt to access mailbox contents with -g "" or -m "" parameter. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c 2013-09-17 23:32:57 +0300 Timo Sirainen (3a37fbef9) lib-storage: Added a separate prefix for server metadata that aren't deleted with INBOX. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage.h 2013-09-17 23:12:03 +0300 Timo Sirainen (ec047a9c5) dsync: Improved debug/error logging for changes during sync. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-mailbox-import.c 2013-09-17 21:57:48 +0300 Stephan Bosch (1e653c740) lib-http: Added (non-default) support for parsing user:pasword from HTTP URL. M src/lib-http/http-url.c M src/lib-http/http-url.h M src/lib-http/test-http-url.c 2013-09-17 21:57:14 +0300 Stephan Bosch (4c8646ca7) lib-imap: imap-url: Forgot to check for the presence of ':' in userinfo, which is not allowed. M src/lib-imap/imap-url.c M src/lib-imap/test-imap-url.c 2013-09-16 10:05:24 +0300 Timo Sirainen (47f00ff24) imap: Fixed/improved error logging for FETCH M src/imap/imap-fetch-body.c 2013-09-17 02:40:17 +0300 Stephan Bosch (87c121a4c) lib-http: http-client: Allow overriding all implicitly generated special headers. Which are: Connection, Content-Length, Date, Expect, Host, and Transfer-Encoding. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2013-09-16 13:17:52 +0300 Timo Sirainen (3ec5378aa) Fixed uri_parse_slashslash_authority() to skip over "//". M src/lib/uri-util.c 2013-09-16 01:02:03 +0300 Stephan Bosch (2e6f9d35d) lib-http: http-client: Fixed segfault caused by earlier improvement of connection output locking. Segfault was triggered when an aborted request received a response. M src/lib-http/http-client-connection.c 2013-09-15 03:56:47 +0300 Stephan Bosch (2ccb0bce3) lib-http: http-client: Implemented explicit HTTP/1.0 support. M src/lib-http/http-client-request.c 2013-09-15 03:56:25 +0300 Stephan Bosch (81498cffa) lib-http: Added support for handling HTTP/1.0 messages explicitly. This means that default connection persistence semantics are inverted for HTTP/1.0 and keep-alive Connection option is recognized. M src/lib-http/http-message-parser.c 2013-09-15 03:55:57 +0300 Stephan Bosch (22b47ecd1) lib-http: Added support for parsing Expect: header (currently only accepts `100-continue'). M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h M src/lib-http/http-request.h 2013-09-15 03:55:11 +0300 Stephan Bosch (b8a1b8eb4) lib-http: http-request-parser: Added function to test whether payload from previous request is still being parsed. This is needed in the server implementation to check whether a request is completely read. M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h 2013-09-15 03:54:04 +0300 Stephan Bosch (fa4d00f73) lib-http: Implemented limits on request method and target length. M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h M src/lib-http/http-request.h M src/lib-http/test-http-server.c 2013-09-15 03:52:01 +0300 Stephan Bosch (1175415b8) lib-http: Added support for enforcing a payload limit for incoming HTTP messages. M src/lib-http/http-message-parser.c M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c M src/lib-http/http-transfer-chunked.c M src/lib-http/http-transfer.h M src/lib-http/test-http-transfer.c 2013-09-15 03:50:08 +0300 Stephan Bosch (208dcaf62) lib-http: Adjusted message and request parsers to return an error code. M src/lib-http/http-message-parser.c M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h M src/lib-http/http-response-parser.c M src/lib-http/test-http-server.c 2013-09-15 03:47:54 +0300 Stephan Bosch (abd1c1f3b) lib-http: Adjusted request parser to pre-parse the request target and host header into a proper target url. M src/lib-http/http-request-parser.c M src/lib-http/http-request.h M src/lib-http/test-http-server.c 2013-09-15 03:47:29 +0300 Stephan Bosch (e641c9f65) lib-http: Added support for parsing request target URLs. M src/lib-http/http-request.h M src/lib-http/http-url.c M src/lib-http/http-url.h 2013-09-15 03:46:25 +0300 Stephan Bosch (101e78ae4) lib-http: Improved display of invalid characters in parse error messages. M src/lib-http/http-request-parser.c M src/lib-http/http-response-parser.c 2013-09-15 03:46:12 +0300 Stephan Bosch (feba5e502) lib-http: Implemented limits on overall HTTP header size, size of individual header fields and the number of fields in the header. M src/lib-http/http-client-connection.c M src/lib-http/http-client.c M src/lib-http/http-client.h M src/lib-http/http-header-parser.c M src/lib-http/http-header-parser.h M src/lib-http/http-header.h M src/lib-http/http-message-parser.c M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h M src/lib-http/http-response-parser.c M src/lib-http/http-response-parser.h M src/lib-http/http-transfer-chunked.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-server.c 2013-09-15 03:44:42 +0300 Stephan Bosch (e8f1e510d) lib-http: Unified http-request.h and http-response.h headers. Renamed struct http_response_header to struct http_header_field, encapsulated the array in struct http_header and put it all in http-header.h/c Added inline utility functions for header querying and getting response/request payload size. M src/lib-http/Makefile.am M src/lib-http/http-client-request.c A src/lib-http/http-header.c A src/lib-http/http-header.h M src/lib-http/http-message-parser.c M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h A src/lib-http/http-request.c A src/lib-http/http-request.h M src/lib-http/http-response-parser.c A src/lib-http/http-response.c M src/lib-http/http-response.h 2013-09-15 03:39:45 +0300 Stephan Bosch (9e7bf9166) lib-http: Improved message header and body parsing for better RFC compliance. Added pre-parsed transfer-encoding and connection header content (array) to parsed message struct. Fixed message body handling for when both transfer-encoding and content-length headers are missing. Now duplicates of unique important message headers yield an error. M src/lib-http/http-message-parser.c M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h M src/lib-http/http-response-parser.c M src/lib-http/http-response.h M src/lib-http/http-transfer.h 2013-09-15 03:37:59 +0300 Stephan Bosch (233a96794) lib-http: Added support for parsing HTTP word syntax, which includes quoted-string. M src/lib-http/http-parser.c M src/lib-http/http-parser.h 2013-09-15 03:36:44 +0300 Stephan Bosch (6dad0888f) lib-http: Adjusted message parser to accept pool from caller. M src/lib-http/http-message-parser.c M src/lib-http/http-message-parser.h M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h M src/lib-http/http-response-parser.c M src/lib-http/test-http-server.c 2013-09-15 03:36:18 +0300 Stephan Bosch (6a9004170) lib-http: Adjusted response and request parsers to accept a request/response object to fill with data, rather than have it return one. M src/lib-http/http-client-connection.c M src/lib-http/http-request-parser.c M src/lib-http/http-request-parser.h M src/lib-http/http-response-parser.c M src/lib-http/http-response-parser.h M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-server.c 2013-09-15 03:35:04 +0300 Stephan Bosch (a4e186e3e) lib-http: Added support for asynchronous payload for requests. This means that the payload stream passed to the request can be a non-blocking socket stream from some other connection (e.g. proxy client connection). M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2013-09-15 03:34:06 +0300 Stephan Bosch (df70bf8c9) uri-util: Added support for parsing bare authority URI component (for use in HTTP). M src/lib-http/http-url.c M src/lib-imap/imap-url.c M src/lib/uri-util.c M src/lib/uri-util.h 2013-09-15 03:33:44 +0300 Stephan Bosch (6d573191b) lib-http: http-client: Requests now automatically generate a Date header. The used date value is normally the submission time of the request, but it can be set explicitly. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2013-09-15 03:33:04 +0300 Stephan Bosch (930a23230) lib-http: Fixed client connection and peer log labels to show proper IPv6 peers. The labels did not put IPv6 addresses in square brackets. M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2013-09-15 03:32:11 +0300 Stephan Bosch (3fe922439) lib-http: Removed useless prev,next fields from struct http_client_request. M src/lib-http/http-client-private.h 2013-09-15 03:31:51 +0300 Stephan Bosch (188297bee) lib-http: Fixed handling of non-standard CRLF at end of request. M src/lib-http/http-request-parser.c 2013-09-15 03:31:28 +0300 Stephan Bosch (fc94140ac) lib-http: http-client: Fixed request scheduling and connection management. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-09-15 03:29:03 +0300 Stephan Bosch (274210748) lib-http: http-client: Fixed leak of ostream when request was resubmitted upon 417 response regarding 100-continue. This would only occur when the server refuses Expect: 100-continue with a 417 response. The payload_output stream would be overwritten without being freed first. M src/lib-http/http-client-request.c 2013-09-15 03:28:21 +0300 Stephan Bosch (fde2e392f) lib-http: http-client: Connection was using wrong request index in request_wait_list to continue sending outgoing payload. M src/lib-http/http-client-connection.c 2013-09-15 03:27:31 +0300 Stephan Bosch (858a13d06) lib-http: http-client: Fixed pipelining when payload synchronizatio (100-continue) is used. Forgot to lock the connection output, which meant that new requests would enqueued for the connection while waiting for 100 Continue. This would cause an assert failure. M src/lib-http/http-client-connection.c M src/lib-http/http-client-request.c 2013-09-14 00:26:58 +0300 Timo Sirainen (b4a7dbfb4) Comment update. M src/lib/connection.h 2013-09-14 00:26:45 +0300 Timo Sirainen (b6ecc96ac) lib-fs: If backend doesn't implement exists(), emulate it with stat(). M src/lib-fs/fs-api.c 2013-09-12 03:52:01 +0300 Timo Sirainen (7bf0bc502) doveadm: Don't refer to old doveadm_proxy_port setting name in error message. M src/doveadm/doveadm-mail-server.c 2013-09-12 02:58:51 +0300 Timo Sirainen (202a34580) istream-hash: Data was hashed multiple times in some situations M src/lib/istream-hash.c 2013-09-12 02:33:01 +0300 Timo Sirainen (66d84e6f0) istream: Improved "stream not seekable" panic message. M src/lib/istream.c 2013-09-12 02:32:47 +0300 Timo Sirainen (cbb79ea1b) istream-hash: Allow seeking, but only after reading the hash. M src/lib/istream-hash.c 2013-09-12 01:38:54 +0300 Timo Sirainen (6523f54d1) auth: auth-client socket should be owned by $default_internal_user It's mostly the same as auth-login, which is also owned by it. M src/auth/auth-settings.c 2013-09-10 04:11:03 +0300 Timo Sirainen (9c45f33d0) lib-fs: Added support for asynchronous fs iteration. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2013-09-10 00:27:12 +0300 Timo Sirainen (67a163f3a) lib-fs: Added support for giving a hash of the written data to be verified by storage. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2013-09-09 04:34:58 +0300 Timo Sirainen (3157f6143) liblib: Added istream-hash, similar to ostream-hash. M src/lib/Makefile.am A src/lib/istream-hash.c A src/lib/istream-hash.h 2013-09-09 04:34:45 +0300 Timo Sirainen (61f018f5b) Minor code cleanup. M src/lib/ostream-hash.h 2013-09-08 19:20:39 +0300 Timo Sirainen (d8361cc85) hmac: Fixed crashes on CPUs that don't allow unaligned memory access. M src/lib/hmac-cram-md5.c M src/lib/hmac.c M src/lib/hmac.h 2013-09-06 18:30:54 +0300 Timo Sirainen (1c1ded8e9) auth: Removed unnecessary NULL check. M src/auth/auth-request.c 2013-09-06 18:28:59 +0300 Timo Sirainen (8236d5710) imapc: Don't crash if server sends EXISTS while mailbox isn't selected. M src/lib-storage/index/imapc/imapc-mailbox.c 2013-09-06 18:26:48 +0300 Timo Sirainen (de3466de0) fts-lucene: Fixed crash in doveadm dumping lucene index. M src/plugins/fts-lucene/lucene-wrapper.cc 2013-09-06 02:39:56 +0300 Timo Sirainen (72e15c62a) Avoid doing side effects in assert. M src/lib-imap-client/imapc-connection.c 2013-09-06 02:39:16 +0300 Timo Sirainen (ee2482526) lib-index: Minor fix to regenerating missing transaction log parts. M src/lib-index/mail-index-view-sync.c 2013-09-05 21:06:50 +0300 Timo Sirainen (16a92d0c8) lib-lda: Fixed passing through error message when mailbox couldn't be opened. M src/lib-lda/mail-deliver.c 2013-09-04 22:43:47 +0300 Timo Sirainen (5e93930ec) And removed accidentally committed nbsp. M src/lib-storage/mailbox-uidvalidity.c 2013-09-04 22:41:42 +0300 Timo Sirainen (af8b1248f) Fixed file descriptor leaks in rather unimportant places. Found by Coverity scan. M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/lib-master/master-service-settings.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/mailbox-uidvalidity.c M src/lib/unix-socket-create.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/fts-squat/squat-trie.c M src/plugins/zlib/zlib-plugin.c M src/ssl-params/ssl-params.c 2013-09-04 22:16:02 +0300 Timo Sirainen (76959d3d6) lib-index: Fixed modseq updates when modseq was over 32bits long M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-transaction-log-file.c 2013-09-04 22:13:01 +0300 Timo Sirainen (93dbad4bf) i_close_fd() didn't handle errors correctly with gcc. M src/lib/macros.h 2013-09-04 21:23:33 +0300 Timo Sirainen (2a325b952) Fixed off-by-one buffer overflows (practically non-exploitable). Found by Coverity scan. M src/doveadm/doveadm-master.c M src/master/main.c 2013-09-02 17:44:39 +0300 Timo Sirainen (0de730a46) master: Fix to previous pre-forking change. M src/master/service-monitor.c 2013-09-02 17:37:47 +0300 Timo Sirainen (e7a4c77db) master: Pre-fork processes only while master doesn't have more important things to do. M src/master/service-monitor.c M src/master/service-process.c M src/master/service.h 2013-09-02 17:06:49 +0300 Timo Sirainen (b52230a26) lib-master: If net_connect_unix() fails with EAGAIN, point to a wiki link for reasons. M src/lib-master/master-auth.c M src/lib-master/master-login.c 2013-08-29 16:42:55 +0300 Timo Sirainen (6bcbea70f) lib-ssl-iostream: Don't assert-crash if stream buffer gets full. M src/lib-ssl-iostream/istream-openssl.c 2013-08-29 00:57:13 +0300 Timo Sirainen (8cadc80b2) lib-storage: Auto-create dovecot-uidvalidity's missing parent directory M src/lib-storage/mailbox-uidvalidity.c 2013-08-29 00:53:30 +0300 Timo Sirainen (30a5cfac4) Fixed compiling with old gcc. M src/log/log-error-buffer.c 2013-08-27 04:06:43 +0300 Timo Sirainen (dacb7917d) dbox: When fixing a broken file, try harder to find only valid message/metadata positions. The previous method sometime broke with compressed mail content, because the magic blocks were so short. M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.h 2013-08-21 23:30:07 +0300 Timo Sirainen (ce28adabf) director: Reset last-seen-sync-sequence after remote director restarts. M src/director/director-connection.c M src/director/director-host.c M src/director/director-host.h 2013-08-21 20:03:13 +0300 Timo Sirainen (2f1853d15) lib-storage: When doing a fast sync, refresh index to see if it had any changes. I'm pretty sure this used to be done earlier, but probably some optimizations dropped it at some point. M src/lib-storage/index/index-sync.c 2013-08-21 19:40:54 +0300 Timo Sirainen (96581b055) imap: Fixed potential assert crash in APPEND. M src/imap/cmd-append.c 2013-08-17 15:01:25 +0000 Pascal Volk (d6eb3cf3b) man: doveadm-pw.1: Option -p can also be used with -t. M doc/man/doveadm-pw.1.in 2013-08-15 20:25:12 +0300 Timo Sirainen (fe30a45e5) director: Previous change caused legitimate SYNC resends to be ignored. M src/director/director-connection.c 2013-08-13 21:02:04 +0300 Timo Sirainen (32efae185) lmtp: Make it clear that the lda_settings is unexpanded in struct client. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c 2013-08-13 20:59:39 +0300 Timo Sirainen (7a4ba2c60) Minor change to prevent invalid code changes. M src/auth/auth-request.c M src/auth/auth-request.h 2013-08-13 20:58:56 +0300 Timo Sirainen (4612f6441) lib-lda: Default postmaster_address wasn't being set. This broke after it was set to allow %variables. M src/lib-lda/lda-settings.c 2013-08-13 20:57:41 +0300 Timo Sirainen (c9b225d28) lib-lda: Don't alow %variables for hostname setting after all. I was thinking maybe %d could be used there, but with LMTP the hostname is used already in the greeting message before any RCPT TO is even done. M src/lib-lda/lda-settings.c 2013-08-12 19:02:07 +0300 Timo Sirainen (f2bb07096) auth: Added %{domain_first} and %{domain_last} variables. They are both equal to %d normally, but differ when there are multiple '@' characters in the domain. M src/auth/auth-request.c M src/auth/auth-request.h 2013-08-12 17:24:05 +0300 Timo Sirainen (f24202d1a) lib-storage: If dovecot.index.thread corruption is noticed, delete the file. M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-strmap.h M src/lib-storage/index/index-thread.c 2013-08-12 15:44:51 +0300 Timo Sirainen (d50ebf52e) lib-lda: submission_host, sendmail_path and hostname settings can now contain %variables M src/lib-lda/lda-settings.c 2013-08-12 15:44:39 +0300 Timo Sirainen (4a510b3ca) lib-lda: sendmail_path setting can contain parameters now. M src/lib-lda/smtp-client.c 2013-08-11 22:54:32 +0300 Timo Sirainen (72b3eaf5e) lib-storage: Improved error message in threading code's lost message-id. M src/lib-storage/index/index-thread.c 2013-08-10 16:31:27 +0300 Timo Sirainen (7ec4907a5) lib-http: Removed more code duplication M src/lib-http/http-client-request.c 2013-08-10 15:00:36 +0300 Timo Sirainen (8608ffb77) lib-http: Removed duplicated code M src/lib-http/http-client-request.c 2013-08-08 22:37:35 +0300 Timo Sirainen (39622d42a) lmtp: Don't write extra ([]) to Received: line for mails via UNIX socket. M src/lmtp/commands.c 2013-08-07 19:47:17 +0300 Timo Sirainen (a23cb9e67) imap: Fixed memory leak on APPEND error conditions. M src/imap/cmd-append.c 2013-08-07 19:40:16 +0300 Timo Sirainen (36ce71e1c) dsync: We didn't send the new protocol version in handshake. This caused problems when syncing mailbox formats that didn't support saving GUIDs. M src/doveadm/dsync/dsync-ibc-stream.c 2013-08-07 19:26:29 +0300 Timo Sirainen (e04e2ca2a) dsync: Avoid assert-crash after an error. M src/doveadm/dsync/dsync-mailbox-import.c 2013-08-07 18:00:32 +0300 Timo Sirainen (385fd14a0) ssl: Fixed compiling with older OpenSSL libraries. M src/lib-ssl-iostream/iostream-openssl-context.c M src/login-common/ssl-proxy-openssl.c 2013-08-07 17:20:10 +0300 Timo Sirainen (61b0eeb70) Compiler warning fixes. M src/director/director-connection.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/login-common/ssl-proxy-openssl.c 2013-08-07 16:09:29 +0300 Timo Sirainen (9b61a6db8) quota: Improved init() failure error logging. M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2013-08-06 18:44:37 +0000 Pascal Volk (dc6a2a935) master: Added --hostdomain to the help message. M src/master/main.c 2013-08-06 18:35:02 +0000 Pascal Volk (3813074b3) man: dovecot.1: Added description of option --hostdomain. M doc/man/dovecot.1.in 2013-08-06 18:28:31 +0300 Timo Sirainen (98bdd7c24) doveadm: If server connection gets disconnected, log the reason. M src/doveadm/server-connection.c 2013-08-06 17:16:58 +0300 Timo Sirainen (cf91aa1a3) dsync: Stream disconnection error message improvement M src/doveadm/dsync/dsync-ibc-stream.c 2013-08-06 17:06:50 +0300 Timo Sirainen (ecd14e432) doveadm-server: Error message logging improvements. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail-server.c 2013-08-06 16:54:33 +0300 Timo Sirainen (1d082a46e) doveadm-server: Include client's IP address in logs. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2013-08-06 16:32:03 +0300 Timo Sirainen (1f61b0a75) dsync: Don't leak iostreams when running via doveadm-server M src/doveadm/dsync/doveadm-dsync.c 2013-08-06 16:28:08 +0300 Timo Sirainen (f5fa1c506) dsync: Memory leak fix at deinit. M src/doveadm/dsync/dsync-ibc-stream.c 2013-08-06 16:07:50 +0300 Timo Sirainen (b4f455269) lib-ssl-iostream: Deinitialization fixes. M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c 2013-08-06 15:11:14 +0300 Timo Sirainen (956b8eea7) doveadm: If we get disconnected from server, log the reason. M src/doveadm/doveadm-mail-server.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/server-connection.c M src/doveadm/server-connection.h 2013-08-06 14:53:23 +0300 Timo Sirainen (91a58087a) net_ip2addr() changed to return "" instead of NULL on failure. Pretty much everything in the code assumed that it would never fail, which it normally doesn't except if the ip_addr was created for UNIX sockets. M src/auth/auth-request.c M src/auth/passdb-pam.c M src/auth/passdb-vpopmail.c M src/lib/net.c M src/lib/net.h M src/lib/uri-util.c M src/lmtp/client.c M src/login-common/main.c 2013-08-06 14:46:36 +0300 Timo Sirainen (fb28d085f) dsync: After reading remote hostname, use it for the log messages instead of IP. M src/doveadm/dsync/dsync-ibc-stream.c 2013-08-06 14:36:25 +0300 Timo Sirainen (c6c08650b) master: Added --hostdomain setting to show the current hostdomain. M src/master/main.c 2013-08-06 14:25:49 +0300 Timo Sirainen (02ab29a23) dsync: Name remote connections better. M src/doveadm/client-connection.c M src/doveadm/dsync/doveadm-dsync.c 2013-08-06 12:48:15 +0300 Timo Sirainen (e7d75716b) replicator: Fixed assert-crash if dsync server disconnected. M src/replication/replicator/dsync-client.c 2013-08-05 22:22:51 +0300 Timo Sirainen (1e0df4f19) Added signature for changeset 71f0696749ab M .hgsigs 2013-08-05 22:22:47 +0300 Timo Sirainen (c50e67fe8) Added tag 2.2.5 for changeset 71f0696749ab M .hgtags 2013-08-05 22:22:47 +0300 Timo Sirainen (29b63e9d9) Released v2.2.5. M NEWS M configure.ac 2013-08-05 22:21:29 +0300 Timo Sirainen (430d256a6) Make static analyzer happier. M src/director/user-directory.c M src/lib-http/test-http-response-parser.c 2013-08-05 22:16:02 +0300 Timo Sirainen (49621bf0e) lib-storage: Use a separate auth-userdb connection for iterating through users. This is required because the auth-userdb connection is also wanted in the middle of the iteration to do USER lookups. M src/lib-storage/mail-storage-service.c 2013-08-05 22:15:08 +0300 Timo Sirainen (769dea751) lib-auth: Previous changes didn't set the current ioloop correctly, causing problems. M src/lib-auth/auth-master.c 2013-08-05 22:13:28 +0300 Timo Sirainen (57434d8ad) doveadm: Minor memory leak fixes at deinit. M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c 2013-08-05 21:47:11 +0300 Timo Sirainen (3d422a983) lib-auth: auth_master_user_list_*() shouldn't create ioloop if it already exists. M src/lib-auth/auth-master.c 2013-08-05 20:45:42 +0300 Timo Sirainen (f600530d7) maildir: mailbox_create() was returning 1 instead of 0 on success. This broke acl plugin's check to copy the ACLs to the newly created mailbox. M src/lib-storage/index/maildir/maildir-storage.c 2013-08-05 20:33:01 +0300 Timo Sirainen (c8ef5fc9c) dns: Use EAI_NONAME, not EAI_ADDRFAMILY to indicate "no addresses". M src/dns/dns-client.c M src/lib/net.h 2013-08-05 20:27:09 +0300 Timo Sirainen (a97a3ce5d) mbox: Don't use file_set_size() to grow mbox file size. posix_fallocate() apparently grows file size in 4kB blocks in GFS2 causing extra NULs to be written. The mbox file rarely needs to grow so much that there's any point in using any optimizations for it. Besides, this was the last place where file_set_size() was used. If no further use can be found for it, it could be removed entirely. M src/lib-storage/index/mbox/mbox-sync.c 2013-08-05 20:12:10 +0300 Timo Sirainen (0c26faa13) lib-auth: Another crashfix to auth_master_user_list_*() M src/lib-auth/auth-master.c 2013-08-05 15:52:52 +0000 Pascal Volk (cae843989) man: Added doveadm-exec.1. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-exec.1.in M doc/man/doveadm.1.in M doc/man/sed.sh 2013-08-05 17:38:13 +0300 Timo Sirainen (1e9ea952b) lib-storage: Fixed listing INBOX's children with LAYOUT=fs and non-mbox format. M src/lib-storage/list/mailbox-list-fs-iter.c 2013-08-05 16:59:21 +0300 Timo Sirainen (68e8c4ace) net_gethosterror(): Never return NULL. M src/lib/net.c 2013-08-05 16:58:01 +0300 Timo Sirainen (ebbb3d4af) lib-dns, dns: Don't use IPv4-only error codes M src/dns/dns-client.c M src/lib-dns/dns-lookup.c M src/lib/net.h 2013-08-05 14:06:23 +0300 Timo Sirainen (23079bf0a) lib-index: Replaced assert-crash with "index corrupted" error. M src/lib-index/mail-index-sync-update.c 2013-08-05 13:46:37 +0300 Timo Sirainen (5efcaaace) lib-index: Silently ignore next_uid shrinking without treating them as errors. M src/lib-index/mail-index-sync-update.c 2013-08-04 20:33:05 +0300 Timo Sirainen (069def4dc) lib-http: Fixed redirect request target encoding and NULL target. Patch by Stephan Bosch. M src/lib-http/http-client-request.c M src/lib-http/http-url.c M src/lib-http/http-url.h 2013-08-04 18:34:43 +0300 Timo Sirainen (fd1317a61) imap: Various APPEND/CATENATE error handling bugfixes. Found using Apple's catenate.pl test script. M src/imap/cmd-append.c 2013-08-04 14:03:54 +0300 Timo Sirainen (9a449fb20) lib-http: Ignore trailing whitespace in headers. Patch by Stephan Bosch. M src/lib-http/http-header-parser.c M src/lib-http/test-http-header-parser.c 2013-08-04 12:16:09 +0300 Timo Sirainen (cddbeddae) lib-http: Don't crash when receiving 304 or a redirect without Location: header. Patch by Stephan Bosch M src/lib-http/http-client-connection.c 2013-08-03 21:33:25 +0300 Timo Sirainen (690ed6aab) man: Fixed doveadm-deduplicate.1 Patch by Pascal Volk M doc/man/doveadm-deduplicate.1.in 2013-08-03 15:26:58 +0300 Timo Sirainen (2f4571150) Makefile: Fixed previous commit. M doc/man/Makefile.am 2013-08-02 19:03:32 +0000 Pascal Volk (0610b6dfb) man: Added doveadm-deduplicate.1 and doveadm-flags.1. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-deduplicate.1.in A doc/man/doveadm-flags.1.in M doc/man/doveadm.1.in 2013-08-02 16:20:08 +0300 Timo Sirainen (209335fbc) doveadm flags: Fixed help text for subcommands. M src/doveadm/doveadm-mail-flags.c 2013-08-02 15:19:22 +0300 Timo Sirainen (d28a4f357) quota-status: Added quota_status_toolarge message for mails larger than user's quota limit. Based on patch by Ulrich Zehl M src/plugins/quota/quota-status.c 2013-08-02 15:14:39 +0300 Timo Sirainen (cf0184bf1) quota-status: Removed extra newlines from default quota_status_overquota message. Patch by Ulrich Zehl M src/plugins/quota/quota-status.c 2013-08-01 15:35:35 +0300 Timo Sirainen (af4cf9540) ssl: Log SSL "close notify" alerts as debug messages, not warnings. They are clean shutdown messages after all. M src/lib-ssl-iostream/iostream-openssl.c M src/login-common/ssl-proxy-openssl.c 2013-08-01 15:00:59 +0300 Timo Sirainen (9a30df5ac) quota: Don't log errors about missing namespaces for autocreated shared mail_users. M src/plugins/quota/quota-storage.c 2013-08-01 14:23:33 +0300 Timo Sirainen (20dca965f) lib-storage: Improved seteuid() error messages a bit. M src/lib-storage/mail-storage-service.c 2013-08-01 14:18:24 +0300 Timo Sirainen (49fd8c950) lib-storage: If settings can't be read because of permission denied, restart process. M src/lib-storage/mail-storage-service.c 2013-08-01 14:18:00 +0300 Timo Sirainen (cfa178a42) lib-master: Added master_service_settings_output.permission_denied error flag. M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h 2013-08-01 13:51:57 +0300 Timo Sirainen (1f7363629) lib-master: If config socket closes, retry connecting to it automatically. M src/lib-master/master-service-settings.c 2013-08-01 13:42:51 +0300 Timo Sirainen (b7b9d4be2) lib-master: If MASTER_SERVICE_FLAG_KEEP_CONFIG_OPEN is set, open the config socket before dropping privileges. M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-master/master-service.c M src/lib-master/master-service.h 2013-08-01 13:31:25 +0300 Timo Sirainen (1cb065514) lib-storage: Ignore MAIL_STORAGE_SERVICE_FLAG_TEMP_PRIV_DROP if service user isn't root. M src/lib-storage/mail-storage-service.c 2013-07-30 13:26:40 +0300 Timo Sirainen (c5acac1fd) quota-status: Keep the config connection open. M src/plugins/quota/quota-status.c 2013-07-30 13:26:07 +0300 Timo Sirainen (984e5c912) lib-storage: With temporary privilege dropping, switch to root before doing config lookup. This fixes the problem of not having enough permissions to connect to the config socket. M src/lib-storage/mail-storage-service.c 2013-07-30 13:09:52 +0300 Timo Sirainen (28abd7c6e) lib-auth: Don't crash in auth_master_user_list_*() if socket can't be connected to. M src/lib-auth/auth-master.c 2013-07-29 23:22:46 +0300 Timo Sirainen (468c28dfb) director: Avoid infinite SYNC loops if the originating director goes away for a long time. M src/director/director-connection.c M src/director/director-host.h M src/director/director.c M src/director/director.h 2013-07-29 22:49:17 +0300 Timo Sirainen (8621be384) director: Update existing users' timestamps during handshake. M src/director/director-connection.c M src/director/user-directory.c M src/director/user-directory.h 2013-07-29 22:19:03 +0300 Timo Sirainen (c9b3bbfb6) director: Fixes to director-test. M src/director/director-test.c M src/director/director-test.sh 2013-07-29 22:11:46 +0300 Timo Sirainen (c6a530567) director: Fixes to handling users near expiration. M src/director/director-connection.c 2013-07-29 22:10:01 +0300 Timo Sirainen (06fc82430) director: Log director disconnection errno correctly. M src/director/director-connection.c 2013-07-29 22:08:26 +0300 Timo Sirainen (2dcf09e68) director: Expire users a bit more correctly. Also make sure that the "user near expiring" interval is at least 3 seconds in case director_user_expire is very low. M src/director/user-directory.c 2013-07-29 22:06:13 +0300 Timo Sirainen (935960e45) director: Don't allow director_user_expire to be less than 10 seconds. M src/director/director-settings.c 2013-07-17 10:23:21 +0300 Timo Sirainen (88df77efd) liblib: connection_disconnect() didn't close fd_out if it was different from fd_in. M src/lib/connection.c 2013-07-12 03:06:26 +0300 Timo Sirainen (df6c7293d) director: Don't log an error if login connection gets closed with ECONNRESET. M src/director/login-connection.c 2013-07-12 03:01:31 +0300 Timo Sirainen (c87221e8d) auth: With multiple passdbs the previous passdb's userdb_* fields weren't cleared. M src/auth/auth-request.c M src/auth/auth-request.h 2013-07-12 02:43:43 +0300 Timo Sirainen (a138ac121) auth: If blocking passdb returned only NULLs for userdb_ fields, use userdb prefetch anyway. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-worker-client.c 2013-07-12 02:29:00 +0300 Timo Sirainen (1ce47e48d) auth: Use fewer syscalls for sending user list. M src/auth/auth-master-connection.c M src/auth/auth-worker-client.c 2013-07-12 02:26:44 +0300 Timo Sirainen (0f4fb0395) lib-auth: auth_master_user_list_*() no longer reads the entire user list into memory. M src/lib-auth/auth-master.c M src/lib-auth/auth-master.h 2013-07-12 02:17:31 +0300 Timo Sirainen (4dc81fe17) lib-storage: mail_storage_service_all_init() no longer returns total number of users. In preperation for removing the count functionality, since it requires reading all the users into memory for it to work. This also required removing the /total from verbosity counter with doveadm -A. M src/doveadm/doveadm-mail.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2013-07-12 01:57:45 +0300 Timo Sirainen (3340fc9ae) auth: Avoid wasting data stack when iterating users. M src/auth/auth-worker-client.c 2013-07-12 01:39:47 +0300 Timo Sirainen (be240f673) man: Updated doveadm-director man page. M doc/man/doveadm-director.1.in 2013-07-12 01:36:41 +0300 Timo Sirainen (e3ffd73c8) lib-ssl-iostream: Crashfix for recent change. M src/lib-ssl-iostream/iostream-openssl-context.c 2013-07-11 14:29:05 +0300 Timo Sirainen (7e59e4fdc) lib-http: Added a very dummy test-http-server M src/lib-http/Makefile.am A src/lib-http/test-http-server.c 2013-07-11 14:18:42 +0300 Timo Sirainen (b72c33630) lib-http: Implemented http-request-parser for HTTP servers. Moved code common with it and http-response-parser to http-message-parser. M src/lib-http/Makefile.am A src/lib-http/http-message-parser.c A src/lib-http/http-message-parser.h A src/lib-http/http-request-parser.c A src/lib-http/http-request-parser.h M src/lib-http/http-response-parser.c 2013-07-11 12:54:02 +0300 Timo Sirainen (1920ef85b) lib-http: Moved struct http_response* to http-response.h Also http-client.h now #includes only http-response.h M src/lib-http/Makefile.am M src/lib-http/http-client.h M src/lib-http/http-response-parser.h A src/lib-http/http-response.h 2013-07-11 10:25:32 +0300 Timo Sirainen (bfb3d8c8f) lib-http: Minor change to make sure http_response_header.size is always correct. The current http-header-parser already guaranteed that it is, but this change just adds extra guarantees that it won't break in future. Besides, this change improves the performance slightly by avoiding strlen(). M src/lib-http/http-response-parser.c 2013-07-11 10:19:43 +0300 Timo Sirainen (db37e13db) lib-http: Minor fix/cleanup to detecting stream errors when skipping payload. M src/lib-http/http-response-parser.c 2013-07-11 10:17:49 +0300 Timo Sirainen (29349562b) lib-http: Updated test-http-response-parser M src/lib-http/test-http-response-parser.c 2013-07-11 09:33:13 +0300 Timo Sirainen (d1f1ad02d) lib-http: test-http-header-parser makes sure the parser works one byte at a time. M src/lib-http/test-http-header-parser.c 2013-07-11 09:29:36 +0300 Timo Sirainen (7d2147734) lib-http: Fixed previous test-http-response-parser change. M src/lib-http/test-http-response-parser.c 2013-07-11 09:25:53 +0300 Timo Sirainen (e904d473a) lib-http: Fixed handling responses whose header arrives in smaller pieces. M src/lib-http/http-response-parser.c M src/lib-http/test-http-response-parser.c 2013-07-11 09:23:14 +0300 Timo Sirainen (1bc12a53d) lib-http: Simplify http response status-line parsing code. Also by not using a temporary string buffer the istream can at least in theory limit the maximum status-line length (=max memory usage). M src/lib-http/http-response-parser.c 2013-07-11 00:30:28 +0300 Timo Sirainen (0ffbb284f) lib-http: Http requests weren't freed when connection was aborted. Patch by Stephan Bosch. M src/lib-http/http-client-connection.c 2013-07-11 00:28:54 +0300 Timo Sirainen (d53c8496d) lib-ssl-iostream: Compiler warning fix M src/lib-ssl-iostream/iostream-openssl-context.c 2013-07-10 10:01:26 +0300 Timo Sirainen (cc293ffe7) lib-ssl-iostreams: ssl_protocols setting supports now TLSv1.1 and TLSv1.2 values. M src/lib-ssl-iostream/iostream-openssl-common.c 2013-07-10 09:43:19 +0300 Timo Sirainen (002442c41) auth: Fixed crash for some lookups that didn't specify service name. M src/auth/auth.c 2013-07-10 09:37:06 +0300 Timo Sirainen (52ec61a8d) Maildir++ quota: When recreating, don't use maildirsize.lock file. The point was never to even try to lock it, it just used to be an easier API to create the file. Nowadays safe_mkstemp_hostpid_group() works just as easily. This normally doesn't matter, but apparently Exim+CPanel leaves maildirsize.lock files lying around, causing Dovecot to not update maildirsize. M src/plugins/quota/quota-maildir.c 2013-07-10 08:58:36 +0300 Timo Sirainen (231a59ca2) lib-ssl-iostream: Added support for ECDH/ECDHE cipher suites Based on the login-common patch by David Hicks. M src/lib-ssl-iostream/iostream-openssl-context.c 2013-07-10 08:47:49 +0300 Timo Sirainen (1a193d25d) login-common: Compiler warning fix with OpenSSL v1.0.2+ M src/login-common/ssl-proxy-openssl.c 2013-07-10 08:42:09 +0300 Timo Sirainen (524d89a40) lib-http: Minor comment update. M src/lib-http/http-client-private.h 2013-07-06 14:46:16 +1000 David Hicks (8137a5d22) login-common: Add support for ECDH/ECDHE cipher suites ECDH temporary key parameter selection must be performed during OpenSSL context initialisation before ECDH and ECDHE cipher suites can be used. OpenSSL >= 1.0.2 automatically handles ECDH temporary key parameter selection. For OpenSSL < 1.0.2 we must manually specify a named elliptic curve that Dovecot will use to generate an ephemeral key pair. By default we try to use the same named curve as that used in the server's private EC key file. If this attempt fails, a fall back curve of NIST P-384 (secp384r1) is used instead. RFC 6460 states that NIST P-384 MUST be used for cipher suites that include AES-256. For cipher suites that include AES-128, RFC 6460 states that NIST P-256 MUST be used. No matter which curve is used as a fall back option, Dovecot will be non-compliant. The reason for selecting NIST P-384 as a fall back curve is to ensure that the non-compliance is in the form of providing too great a level of security for AES-128 cipher suites rather than too little security for AES-256 cipher suites. M src/login-common/ssl-proxy-openssl.c 2013-07-10 06:54:57 +0300 Timo Sirainen (8e1dbcb9b) imapc: Reorganize code so that imapc_list works without imapc_storage. Most importantly fixes crashes when imapc_list is trying to lookup hierarchy separator before storage is created. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2013-07-10 06:05:20 +0300 Timo Sirainen (9bc29938d) imapc: Code cleanup: Don't access imapc settings via storage. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h 2013-07-10 05:57:36 +0300 Timo Sirainen (4ee385fb4) imapc: Minor code cleanup. M src/lib-storage/index/imapc/imapc-storage.c 2013-07-10 05:37:01 +0300 Timo Sirainen (190ba2ebc) auth: If passdb ldap returned no values for userdb_ fields, use userdb prefetch anyway. M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2013-07-10 05:29:45 +0300 Timo Sirainen (b4f35fa95) auth: If passdb sql returned only NULLs for userdb_ fields, use userdb prefetch anyway. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/passdb-sql.c 2013-07-10 05:19:22 +0300 Timo Sirainen (b8394a3ba) pop3: Avoid assert-crash if client disconnects during LIST. M src/pop3/pop3-commands.c 2013-07-10 03:27:52 +0300 Timo Sirainen (b3289b68d) lib-http: Fix/cleanup to handling connect failures. There was some kind of double-error handling which messed up things. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2013-07-10 02:50:04 +0300 Timo Sirainen (e0bbc29e1) lib-http: Fixed tracking number of pending connections to host-port. M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2013-07-10 02:31:05 +0300 Timo Sirainen (6d2a126f5) lib-http: Don't assert-crash in case of somewhat unexpected failing connections. M src/lib-http/http-client-host.c 2013-07-10 01:44:40 +0300 Timo Sirainen (1a64096dc) lib-http: Always try to connect to host's all IPs when connections fail. Previously this was done only when the new connections started from the first IP. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h 2013-06-28 19:48:37 +0300 Timo Sirainen (d29c3ac4d) dns, lib-dns: Added support for async DNS PTR lookups. M src/dns/dns-client.c M src/lib-dns/dns-lookup.c M src/lib-dns/dns-lookup.h 2013-06-28 19:48:15 +0300 Timo Sirainen (684b65874) Added net_gethostbyaddr() for DNS PTR lookups. This code assumes we have IPv6 capability. Perhaps we should just require it everywhere already.. M src/lib/net.c M src/lib/net.h 2013-06-27 23:07:20 +0300 Timo Sirainen (edbfc217b) lib-http: Added more debug messages. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c 2013-06-27 22:49:50 +0300 Timo Sirainen (798915d03) lib-http: When successfully connected to a peer, don't drop the peer's pending connections. They could have been intentionally created for other urgent requests. M src/lib-http/http-client-host.c 2013-06-27 20:37:46 +0300 Timo Sirainen (270f75edb) lib-http: Don't crash if payload stream is referenced by caller after its connection is freed. M src/lib-http/http-client-connection.c 2013-06-27 20:32:01 +0300 Timo Sirainen (06b1ec1b1) lib-http: Remove request timeout from being used during payload read. The reading is done by the lib-http caller, which should have its own timeouts. M src/lib-http/http-client-connection.c 2013-06-27 20:28:51 +0300 Timo Sirainen (fe681e6db) lib-http: Call request's destroy callback always, not just on success. M src/lib-http/http-client-request.c 2013-06-27 20:27:57 +0300 Timo Sirainen (fd0ec0a78) lib-http: If connection times out, set the stream's errno to ETIMEDOUT in case it's used. M src/lib-http/http-client-connection.c 2013-06-27 20:26:50 +0300 Timo Sirainen (8615a7265) lib-http: When connection is freed, abort also the pending request. M src/lib-http/http-client-connection.c 2013-06-27 20:26:13 +0300 Timo Sirainen (92908d748) lib-http: Timeouts were being handled wrong/leaked by ioloop switching. M src/lib-http/http-client-connection.c 2013-06-27 20:24:45 +0300 Timo Sirainen (6a33d6385) lib-http: Minor code cleanup. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2013-06-27 18:04:04 +0300 Timo Sirainen (659e3b416) lib-http: Fixed hang when many connections were being created and closed. M src/lib-http/http-client-peer.c 2013-06-27 18:03:38 +0300 Timo Sirainen (17cd0e096) lib-http: Added http_client_get_pending_request_count() M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-06-26 22:23:20 +0300 Timo Sirainen (fc5b80dc1) dsync: Recent changes broke remote dsync M src/doveadm/dsync/dsync-ibc-stream.c 2013-06-26 21:35:37 +0300 Timo Sirainen (bc4cb06ef) config: Give a somewhat better warning for when using protocols=imaps or pop3s. M src/config/old-set-parser.c 2013-06-26 20:53:01 +0300 Timo Sirainen (36723cf20) dsync: Added -1 parameter to do a "one way sync" without reverting changes. This can be useful during migration when you don't want to delete any mails, but you also don't want to send changes to the old server either. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c 2013-06-26 20:03:26 +0300 Timo Sirainen (f6da39b6a) dsync: Send DSYNC_BRAIN_FLAG_NO_MAIL_SYNC via ibc-stream to slave brain. M src/doveadm/dsync/dsync-ibc-stream.c 2013-06-26 19:47:40 +0300 Timo Sirainen (1ee74d70b) pop3c: Fixed mail saving to fail nicely, not assert-crash. M src/lib-storage/index/pop3c/pop3c-storage.c 2013-06-26 19:33:38 +0300 Timo Sirainen (34b8b14ce) dsync: Fixed syncing when one of the backends supported GUIDs. M src/doveadm/dsync/dsync-mailbox-import.c 2013-06-26 15:44:08 +0300 Timo Sirainen (2e708f348) pop3c: Return error instead of crashing when trying to save a mail. M src/lib-storage/index/pop3c/pop3c-storage.c 2013-06-26 15:29:43 +0300 Timo Sirainen (173fc9ed3) dsync: Fixed handling expunges when GUIDs aren't supported by the backend(s). M src/doveadm/dsync/dsync-mailbox-import.c 2013-06-26 14:37:34 +0300 Timo Sirainen (de754cb78) lib-sasl: Use dsasl_ prefix so we don't conflict with Cyrus SASL library. M src/imap-login/imap-proxy.c M src/lib-sasl/Makefile.am A src/lib-sasl/dsasl-client-private.h A src/lib-sasl/dsasl-client.c A src/lib-sasl/dsasl-client.h M src/lib-sasl/mech-login.c M src/lib-sasl/mech-plain.c D src/lib-sasl/sasl-client-private.h D src/lib-sasl/sasl-client.c D src/lib-sasl/sasl-client.h M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/main.c M src/pop3-login/pop3-proxy.c 2013-06-25 16:03:04 +0300 Timo Sirainen (0d439f21c) dsync: Don't log index errors if modseq points beyond the current view. M src/doveadm/dsync/dsync-transaction-log-scan.c 2013-06-25 15:48:24 +0300 Timo Sirainen (fa8d22c52) mdbox: Resize mdbox index header if necessary also when rebuilding indexes. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2013-06-25 15:47:48 +0300 Timo Sirainen (3b8a19184) lib-index: Assert-crash instead of writing a broken transaction with too large ext header update. M src/lib-index/mail-index-transaction-export.c 2013-06-25 15:46:50 +0300 Timo Sirainen (c3cb859d9) lib-index: Don't write a broken transaction if extension resize is done at first use. M src/lib-index/mail-index-transaction-export.c 2013-06-25 02:23:02 +0300 Timo Sirainen (579bd263c) Added signature for changeset 4b3c9c3e4fb8 M .hgsigs 2013-06-25 02:22:59 +0300 Timo Sirainen (940095f1c) Added tag 2.2.4 for changeset 4b3c9c3e4fb8 M .hgtags 2013-06-25 02:22:58 +0300 Timo Sirainen (483b379a4) Released v2.2.4. M NEWS M configure.ac 2013-06-25 01:24:51 +0300 Timo Sirainen (3605fb862) Make static analyzer happier. M src/doveadm/dsync/dsync-brain-mailbox-tree.c 2013-06-25 01:23:17 +0300 Timo Sirainen (fad1d9666) doveadm deduplicate: Fixed error handling. M src/doveadm/doveadm-mail-deduplicate.c 2013-06-25 00:10:39 +0300 Timo Sirainen (bc278f2c0) quota: Fixed quota_rule with non-uppercase INBOX. M src/plugins/quota/quota.c 2013-06-24 23:33:59 +0300 Timo Sirainen (532411727) imap-login: If CAPABILITY is already in server banner, don't ask for it again. M src/imap-login/imap-proxy.c 2013-06-24 23:14:35 +0300 Timo Sirainen (723f7be99) dsync: Fixed "export:/count" value in verbose_proctitle=yes M src/doveadm/dsync/dsync-mailbox-export.c 2013-06-24 23:10:20 +0300 Timo Sirainen (4780c036a) mbox: Avoid assert-crashing by too optimistically upgrading a lock to write-lock. M src/lib-storage/index/mbox/mbox-lock.c 2013-06-24 23:06:45 +0300 Timo Sirainen (08bbf28bf) dsync: Don't crash at deinit when dsync fails early. M src/doveadm/dsync/dsync-brain.c 2013-06-24 22:25:47 +0300 Timo Sirainen (3c73d8843) dsync: Don't try to find mailboxes from unwanted namespaces. M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h 2013-06-24 16:37:48 +0300 Timo Sirainen (472556915) dsync: If verbose_proctitle=yes, show the current state in it. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2013-06-24 16:36:32 +0300 Timo Sirainen (e7ee14568) dsync: State names were wrong in debug/error messages. M src/doveadm/dsync/dsync-brain.c 2013-06-18 18:56:15 +0300 Timo Sirainen (4809537f0) lib-storage: Fixed crash with some autocreated (e.g. shared) namespaces. M src/lib-storage/mailbox-list.c 2013-06-18 18:54:20 +0300 Timo Sirainen (1127f3e1a) sdbox: If sdbox header is corrupted, resize it to make sure its size is correct. M src/lib-storage/index/dbox-single/sdbox-storage.c 2013-06-18 17:05:20 +0300 Timo Sirainen (138495d02) doveadm: Added deduplicate command. By default it deduplicates only by GUIDs. With -m parameter it deduplicates by Message-Id: header. M src/doveadm/Makefile.am A src/doveadm/doveadm-mail-deduplicate.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2013-06-18 15:14:42 +0300 Timo Sirainen (6eb7938cd) doveadm: Added "flags" command to modify messages' flags. M src/doveadm/Makefile.am A src/doveadm/doveadm-mail-flags.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2013-06-18 13:00:23 +0300 Timo Sirainen (a81f34a27) mdbox: If mdbox header is corrupted, resize it to make sure its size is correct. M src/lib-storage/index/dbox-multi/mdbox-storage.c 2013-06-18 12:59:17 +0300 Timo Sirainen (0b2d4626c) lib-index: Don't bother tracking if header/records were changed. They aren't really needed. When mail_index_write() is called, we already know we want to update the index. M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-write.c 2013-06-18 12:56:27 +0300 Timo Sirainen (8c6cb4ded) lib-index: If error is found from transaction log, update dovecot.index so it won't be read again. M src/lib-index/mail-index-sync.c 2013-06-18 12:15:50 +0300 Timo Sirainen (d581fad4d) lib-sasl: API usage comment update M src/lib-sasl/sasl-client.h 2013-06-18 11:59:21 +0300 Timo Sirainen (26681e718) imap/pop3 proxy: Master user logins were broken by lib-sasl change. M src/imap-login/imap-proxy.c M src/pop3-login/pop3-proxy.c 2013-06-17 16:37:46 +0300 Timo Sirainen (4e4c91642) pop3: Fixed crash at deinit M src/pop3/pop3-client.c 2013-06-17 14:39:59 +0300 Timo Sirainen (4dccd2090) dsync: Minor fixes to checking if namespace is wanted to be synced. M src/doveadm/dsync/dsync-brain-mailbox-tree.c 2013-06-17 00:03:16 +0300 Timo Sirainen (d229d26d2) Make static analyzer happier. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/imap-login/imap-proxy.c M src/pop3-login/pop3-proxy.c 2013-06-17 00:31:22 +0300 Timo Sirainen (e6eefacd1) Added signature for changeset 5d9f52c9a287 M .hgsigs 2013-06-17 00:31:18 +0300 Timo Sirainen (8bdb49cc6) Added tag 2.2.3 for changeset 5d9f52c9a287 M .hgtags 2013-06-17 00:31:18 +0300 Timo Sirainen (dc4d2077a) Released v2.2.3. M NEWS M TODO M configure.ac 2013-06-16 23:56:28 +0300 Timo Sirainen (737ddab12) mdbox: Minor fix to handling corrupted mdbox header. M src/lib-storage/index/dbox-multi/mdbox-storage.c 2013-06-16 21:25:39 +0300 Timo Sirainen (917f556f1) fts-lucene: Fixed building without libstemmer M src/plugins/fts-lucene/lucene-wrapper.cc 2013-06-16 21:15:42 +0300 Timo Sirainen (6b94ad246) lib-imap: Fixed parsing literal8 in some situations. M src/lib-imap/imap-parser.c 2013-06-16 21:08:40 +0300 Timo Sirainen (a3736354b) istream-attachment-extractor: Fixed handling attachment as the message body without MIME. Don't crash at the end after parsing the base64 data. M src/lib-mail/istream-attachment-extractor.c 2013-06-16 20:15:42 +0300 Timo Sirainen (b9dc21a94) lib-storage: mail_storage_service_lookup() ignored input->service. M src/lib-storage/mail-storage-service.c 2013-06-14 02:14:09 +0300 Timo Sirainen (d39ea6eeb) Compiler warning fix. M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c 2013-06-14 00:23:45 +0300 Timo Sirainen (28542ffed) dsync: Fixed syncing renaming mailboxes with children. So that the childrens' rename timestamps are at least as high as their parents'. M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c 2013-06-14 00:16:58 +0300 Timo Sirainen (b67692d13) dsync: Don't try to delete nonexistent mailbox directories. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2013-06-14 00:16:14 +0300 Timo Sirainen (c32a2a98d) dsync: Avoid wasting data stack on larger renames. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2013-06-13 23:31:00 +0300 Timo Sirainen (c8fff8f35) quota-status: Fixed log prefix. M src/plugins/quota/quota-status.c 2013-06-13 23:22:20 +0300 Timo Sirainen (b966acda9) lib-storage: Fixed crash with listing shared mailboxes. M src/lib-storage/index/shared/shared-list.c 2013-06-13 18:54:07 +0300 Timo Sirainen (0cb729803) fts-solr: Do only soft commits. Use a cronjob to do hard commits. M src/plugins/fts-solr/fts-backend-solr.c 2013-06-13 18:53:22 +0300 Timo Sirainen (21279888b) solr-schema.xml: More updates for Solr v4.x and hopefully with better filters. M doc/solr-schema.xml 2013-06-13 17:55:24 +0300 Timo Sirainen (3ea055b5a) solr-schema.xml: Replaced EnglishPorterFilterFactory with SnowballPorterFilterFactory M doc/solr-schema.xml 2013-06-13 06:07:54 +0300 Timo Sirainen (d6b3cfd85) Call master_service_init_finish() only after all of the initialization is done. This way if the init crashes, the master process will throttle a buggy service. M src/anvil/main.c M src/auth/main.c M src/dict/main.c M src/director/director-test.c M src/director/main.c M src/doveadm/main.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/main.c M src/indexer/indexer-worker.c M src/indexer/indexer.c M src/ipc/main.c M src/lib-master/master-service.c M src/lib-master/master-service.h M src/lmtp/main.c M src/log/main.c M src/plugins/quota/quota-status.c M src/pop3/main.c M src/replication/replicator/replicator.c M src/ssl-params/main.c M src/stats/main.c M src/util/script.c 2013-06-13 05:29:07 +0300 Timo Sirainen (1729508f0) imapc: Fixed list iteration when namespace and backend separators differed. M src/lib-storage/index/imapc/imapc-list.c 2013-06-13 05:27:30 +0300 Timo Sirainen (cf0559201) mailbox_list_index=yes: Fixed list iteration when namespace and backend separators differed. M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index.h 2013-06-13 04:35:06 +0300 Timo Sirainen (8ad7aa4dd) doveadm: Pass through the exit code from doveadm-server to client. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail-server.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/server-connection.c M src/doveadm/server-connection.h 2013-06-13 04:33:41 +0300 Timo Sirainen (a0ebe2a22) dsync: Don't try to access mailboxes with no_mail_sync flag enabled. M src/doveadm/dsync/dsync-brain-mailbox.c 2013-06-13 03:26:22 +0300 Timo Sirainen (237a6211c) Memory leak fixes. M src/doveadm/client-connection.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/main.c M src/lib-fs/fs-api.c 2013-06-12 23:01:26 +0300 Timo Sirainen (70b67fc19) zlib: Enable only for storages that support MAIL_STORAGE_CLASS_FLAG_BINARY_DATA M src/plugins/zlib/zlib-plugin.c 2013-06-12 22:58:42 +0300 Timo Sirainen (d46a1e3f9) lib-storage: Added MAIL_STORAGE_CLASS_FLAG_BINARY_DATA flag for classes. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h 2013-06-12 22:45:43 +0300 Timo Sirainen (1c3dc4c08) pop3-migration: struct mailbox must be freed before mail_storage is destroyed. Fixes a memory leak where the user wasn't destroyed at all because the mailbox still caused the user to be referenced. M src/plugins/pop3-migration/pop3-migration-plugin.c 2013-06-12 22:03:07 +0300 Timo Sirainen (29dcd1385) lib-dict: Error handling fixes to asynchronous transactions. M src/lib-dict/dict-client.c 2013-06-12 21:41:09 +0300 Timo Sirainen (8f948b86d) Moved "INBOX can't be deleted" check from lib-storage to IMAP-specific code. Especially "doveadm backup" should be able to delete the INBOX if needed. M src/imap/cmd-delete.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2013-06-12 21:25:09 +0300 Timo Sirainen (3568ea090) lib-storage: Don't crash if backend doesn't have subscriptions file. M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-subscriptions.c 2013-06-12 21:16:06 +0300 Timo Sirainen (39a97e88d) pop3c: Don't assert-crash if we can't do DNS lookup. M src/lib-storage/index/pop3c/pop3c-client.c 2013-06-12 16:43:41 +0300 Timo Sirainen (d2cf65227) pop3c: Return Date: header's date also as received and saved date. Mainly to get dsync to not fail. M src/lib-storage/index/pop3c/pop3c-mail.c 2013-06-12 16:29:17 +0300 Timo Sirainen (5d4a0dac0) pop3c: Allow mailbox_update() for Dovecot's internal fields. M src/lib-storage/index/pop3c/pop3c-storage.c 2013-06-12 16:27:47 +0300 Timo Sirainen (82af96bbd) pop3c: Don't assert-crash when trying to list subscriptions. M src/lib-storage/list/mailbox-list-subscriptions.c 2013-06-12 16:20:19 +0300 Timo Sirainen (cf35bb040) pop3c: Give GUID to the INBOX to avoid crashes with dsync. M src/lib-storage/index/pop3c/pop3c-storage.c 2013-06-12 04:44:11 +0300 Timo Sirainen (fa2ac469f) zlib plugin: Removed explicit checks for maildir/sdbox/mdbox. M src/plugins/zlib/zlib-plugin.c 2013-06-09 21:06:49 +0300 Timo Sirainen (4d0230cbb) man: Recent change accidentally changed LGPLv2.1 -> LGPLv2.2, reverted. M doc/man/dovecot.1.in 2013-06-09 14:56:36 +0300 Timo Sirainen (5a6cbb69f) acl: Crashfix M src/plugins/acl/acl-backend-vfile.c 2013-06-09 14:53:31 +0300 Timo Sirainen (fedb7a111) lib-storage: Fixed crashes caused by recent "multiple storages per namespace" change. M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-namespace.c 2013-06-09 06:03:34 +0300 Timo Sirainen (1093de32e) imap/pop3-login: Use libsasl for authenticating to remote IMAP/POP3 server. Also passdb lookup can return "proxy_mech" extra field to specify which SASL mechanism to use. M src/imap-login/Makefile.am M src/imap-login/client.h M src/imap-login/imap-proxy.c M src/login-common/Makefile.am M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/main.c M src/pop3-login/Makefile.am M src/pop3-login/pop3-proxy.c 2013-06-09 06:02:14 +0300 Timo Sirainen (78919bf7c) Added initial libsasl for implementing client side SASL library. Initially supports PLAIN and LOGIN mechanisms. M configure.ac M src/Makefile.am M src/lib-dovecot/Makefile.am A src/lib-sasl/Makefile.am A src/lib-sasl/mech-login.c A src/lib-sasl/mech-plain.c A src/lib-sasl/sasl-client-private.h A src/lib-sasl/sasl-client.c A src/lib-sasl/sasl-client.h 2013-06-09 03:10:43 +0300 Timo Sirainen (f26ef7a3a) fts-lucene: Support normalize setting also without snowball. Added no_snowball setting. Snowball seems to be converting / breaking words down rather annoyingly. M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/fts-lucene-plugin.h M src/plugins/fts-lucene/lucene-wrapper.cc 2013-06-09 02:49:48 +0300 Timo Sirainen (d6745154e) man pages: Updated v2.1 -> v2.2 M doc/man/doveadm-altmove.1.in M doc/man/doveadm-auth.1.in M doc/man/doveadm-director.1.in M doc/man/doveadm-dump.1.in M doc/man/doveadm-expunge.1.in M doc/man/doveadm-fetch.1.in M doc/man/doveadm-force-resync.1.in M doc/man/doveadm-help.1.in M doc/man/doveadm-import.1.in M doc/man/doveadm-index.1.in M doc/man/doveadm-instance.1.in M doc/man/doveadm-kick.1.in M doc/man/doveadm-log.1.in M doc/man/doveadm-mailbox.1.in M doc/man/doveadm-mount.1.in M doc/man/doveadm-move.1.in M doc/man/doveadm-penalty.1.in M doc/man/doveadm-purge.1.in M doc/man/doveadm-pw.1.in M doc/man/doveadm-quota.1.in M doc/man/doveadm-search-query.7 M doc/man/doveadm-search.1.in M doc/man/doveadm-user.1.in M doc/man/doveadm-who.1.in M doc/man/doveadm.1.in M doc/man/doveconf.1.in M doc/man/dovecot-lda.1.in M doc/man/dovecot.1.in M doc/man/dsync.1.in 2013-06-09 02:46:50 +0300 Timo Sirainen (70505f483) lib-http: Added soft_connect_timeout_msecs setting to connect to multiple IPs in parallel. Based on patch by Stephan Bosch. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-06-09 02:08:24 +0300 Timo Sirainen (6ce13ae08) lib-http: If connect to peer failed, don't recreate a new connection to handle pending requests. The new connection would very likely fail as well. Another peer for the host should pick up the requests. M src/lib-http/http-client-peer.c 2013-06-09 00:48:14 +0300 Timo Sirainen (d2e74f2af) lib-storage: Added mailbox { driver } setting to specify which storage to use. M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mailbox-list.c 2013-06-09 00:46:06 +0300 Timo Sirainen (47ede56f4) lib-storage: Added support for multiple storages per namespace. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2013-06-09 00:42:36 +0300 Timo Sirainen (af466fd3e) imapc: imapc_storage no longer requires imapc_mailbox_list. M src/lib-storage/index/imapc/imapc-storage.c 2013-06-09 00:06:42 +0300 Timo Sirainen (ec49140cb) auth: If worker request has been queued for 60 secs, abort it. M src/auth/auth-worker-server.c 2013-06-07 22:06:24 +0300 Timo Sirainen (660437050) auth: Don't crash in non-plaintext auth if master user login is tried without master passdbs. M src/auth/auth-request.c 2013-06-07 20:12:15 +0300 Timo Sirainen (08195adda) imap-login: If PLAIN mechanism is disabled, advertise LOGINDISABLED always. M src/imap-login/client.c 2013-06-06 16:43:01 +0300 Timo Sirainen (5ef75c870) var_expand(): Fixed initializing variable to %N M src/lib/var-expand.c 2013-06-06 12:42:34 +0300 Timo Sirainen (2e01cfaa0) var_expand*(): Added small unit tests for %H and %N M src/lib/test-var-expand.c 2013-06-06 12:36:30 +0300 Timo Sirainen (921757184) var_expand*(): Fixed %N to work the same with little and big endian CPUs. Also use 64bit integer to do the MOD from, which should give somewhat better value distribution than with 32bit. M src/lib/var-expand.c 2013-06-06 12:24:27 +0300 Timo Sirainen (ffcdddd4c) lib-imap-client: When switching ioloops, do it also for the DNS lookup. M src/lib-imap-client/imapc-connection.c 2013-06-06 12:21:14 +0300 Timo Sirainen (c1a1abf89) lib-imap-client: Make sure DNS lookups get aborted at disconnect. M src/lib-imap-client/imapc-connection.c 2013-06-06 12:20:54 +0300 Timo Sirainen (9dee78c19) lib-imap-client: Don't start another DNS lookup if there's already one ongoing. M src/lib-imap-client/imapc-connection.c 2013-06-06 11:40:27 +0300 Timo Sirainen (949fa97a4) Avoid using mail_namespace.storage directly. M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-shared-storage.c 2013-06-06 11:16:05 +0300 Timo Sirainen (8709b2fe6) lib-storage: Renamed mailbox_list_get_closest_storage() to ..._get_default_storage() This function wasn't previously used by anyone. M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2013-06-06 10:55:27 +0300 Timo Sirainen (5c6952568) imapc: Minor code cleanup M src/lib-storage/index/imapc/imapc-list.c 2013-06-06 10:52:14 +0300 Timo Sirainen (3ec969c5c) imapc: If imapc isn't the inbox=yes namespace, do the login and initial LIST in background. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2013-06-06 09:47:39 +0300 Timo Sirainen (cd467fe79) lib-imap-client: When server sends BYE before disconnection, log it as the reason. M src/lib-imap-client/imapc-connection.c 2013-06-06 08:57:13 +0300 Timo Sirainen (d95ad2a90) imapc: When deleting a mailbox, unselect the current one just in case they're the same. M src/lib-storage/index/imapc/imapc-list.c 2013-06-06 08:56:19 +0300 Timo Sirainen (719e8f8c6) lib-imap-client: Added support for UNSELECT capability. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h 2013-06-06 08:56:07 +0300 Timo Sirainen (1dde2133d) lib-imap-client: If SELECT/EXAMINE fails, set the connection as not being selected. M src/lib-imap-client/imapc-connection.c 2013-06-06 06:55:34 +0300 Timo Sirainen (d80391da0) imapc: Index dirs were being wrongly deleted when imapc_list_prefix was set. M src/lib-storage/index/imapc/imapc-list.c 2013-06-06 06:32:58 +0300 Timo Sirainen (381a4bd0f) lib-http: Treat connect() timeouts as retryable errors. M src/lib-http/http-client-connection.c 2013-06-06 05:58:16 +0300 Timo Sirainen (1e9def667) lib-http: Fixed previous patch setting connection connected only after SSL handshake. This just caused crashes. The main point was anyway to include the SSL handshake as part of the connect_timeout_msecs. Apparently the easiest way is to set it immediately connected and delay removing the timeout. M src/lib-http/http-client-connection.c 2013-06-05 18:21:55 +0300 Timo Sirainen (ea4d4dad2) dsync: Set broken_char to a control char, so invalid mailbox names are handled properly. The dsync will now fail if there are invalid mailbox names (e.g. valid UTF8 when they should have been mUTF7), instead of simply printing "mailbox doesn't exist" error and exiting with 0. M src/doveadm/dsync/doveadm-dsync.c 2013-06-05 18:15:22 +0300 Timo Sirainen (1f4399a27) lib-storage: mailbox_list_settings.broken_char wasn't escaping 8bit chars correctly. M src/lib-storage/mailbox-list.c 2013-06-05 17:49:46 +0300 Timo Sirainen (ba0ca241e) lib-imap: Make sure imap_utf7_to_utf8() doesn't access invalid input string out of bounds. M src/lib-imap/imap-utf7.c 2013-06-05 17:48:48 +0300 Timo Sirainen (fba71f7f7) lib-imap: Added imap_utf7_is_valid() M src/lib-imap/imap-utf7.c M src/lib-imap/imap-utf7.h M src/lib-imap/test-imap-utf7.c 2013-06-05 17:14:49 +0300 Timo Sirainen (f40c79811) dsync: If unexpected changes happened during sync, log a warning and exit with code 2. This was done by v2.1 dsync, but the code got temporarily lost in v2.2. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h 2013-06-05 16:40:01 +0300 Timo Sirainen (515bb2bea) lib-http: After peer has received 100 response, don't add ambiguity timeout anymore. The server should be sending the 100 responses then, and long delays shouldn't be confused with them being missing. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h 2013-06-05 16:28:16 +0300 Timo Sirainen (eca9a97f8) lib-http: When receiving 1xx response while waiting for 100, don't restart timeout. The 100 response is missing only from HTTP/1.0 requests, which also didn't allow any 1xx responses. So if a 1xx response is returned, a 100 response is definitely also coming. M src/lib-http/http-client-connection.c 2013-06-05 16:19:38 +0300 Timo Sirainen (a8c4e79ff) lib-http: Added connect and request timeout settings. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-06-05 15:43:42 +0300 Timo Sirainen (4cadfabdf) lib-http: Mark the HTTP connection connected only after SSL handshake is finished. M src/lib-http/http-client-connection.c 2013-06-05 15:08:59 +0300 Timo Sirainen (035dfd763) lib-http: Don't create a new HTTP connection when there is already one connecting. M src/lib-http/http-client-peer.c 2013-06-01 17:17:47 +0300 Timo Sirainen (b9dce659b) lda/lmtp: If mail delivery fails with tempfail, don't fallback to saving to INBOX. M src/lda/main.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h M src/lmtp/commands.c 2013-06-01 17:11:55 +0300 Timo Sirainen (4860b8746) lib-index: Avoid memcpy()ing data over itself. M src/lib-index/mail-index-transaction-finish.c 2013-06-01 17:08:19 +0300 Timo Sirainen (1424de6d6) lib-fs: If fs_default_copy() fails, close the copy stream immediately. The stream's origin may already be freed by the time the fs_file_close() is trying to close the stream. M src/lib-fs/fs-api.c 2013-06-01 15:33:58 +0300 Timo Sirainen (ed74f1121) lmtp: Give the DATA input stream a name, so the raw mailbox gets a name and doesn't fail. M src/lmtp/commands.c 2013-06-01 04:17:40 +0300 Timo Sirainen (53e8881f4) imapc: If imapc_list_prefix is set, don't skip it in filesystem paths. Most importantly this fixes the index path when accessing the imapc_list_prefix mailbox itself (so the indexes won't be in the mail root dir, where they don't get deleted when mailbox is deleted). M src/lib-storage/index/imapc/imapc-list.c 2013-06-01 04:06:48 +0300 Timo Sirainen (a04d8941a) lib-storage: If mailbox autocreate fails with "already exists", ignore the error. This check was supposed to have been already there, but it was checking for the wrong error. M src/lib-storage/mail-storage.c 2013-06-01 03:48:07 +0300 Timo Sirainen (cb3a5950b) imapc: Return correct mailbox list flags for the imapc prefix mailbox itself. M src/lib-storage/index/imapc/imapc-list.c 2013-06-01 03:37:21 +0300 Timo Sirainen (d9a4e66f0) imapc: Allow accessing the imapc_list_prefix itself. M src/lib-storage/index/imapc/imapc-list.c 2013-06-01 03:20:15 +0300 Timo Sirainen (58ba0fe5a) imapc: Fixed mailbox deletion. M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-private.h 2013-06-01 03:06:54 +0300 Timo Sirainen (44bce572c) imapc: Don't assert-crash when trying to access imapc_list_prefix itself. M src/lib-storage/index/imapc/imapc-list.c 2013-06-01 02:56:57 +0300 Timo Sirainen (066259712) lib-imap-client: Ask CAPABILITY again after STARTTLS M src/lib-imap-client/imapc-connection.c 2013-06-01 02:56:25 +0300 Timo Sirainen (64ee8113a) lib-storage: Empty mailbox name isn't valid. M src/lib-storage/mailbox-list.c 2013-06-01 02:25:54 +0300 Timo Sirainen (ac4844274) Make sure errno is preserved in non-delayed signal handlers. The current code didn't have any signal handlers that modified errno, so this doesn't fix any bugs. M src/lib/lib-signals.c 2013-05-31 17:36:45 +0300 Timo Sirainen (281c0a69d) imapc: Changed imapc_user setting's default to empty. M src/lib-storage/index/imapc/imapc-settings.c 2013-05-31 17:36:19 +0300 Timo Sirainen (0bf0c44fc) imapc: Empty imapc_user expands to namespace's owner, or with public namespaces to user itself. The main idea is that with shared namespaces it now expands to the shared username, allowing shared mailbox access via imapc. M src/lib-storage/index/imapc/imapc-storage.c 2013-05-31 17:05:13 +0300 Timo Sirainen (9f3b630d6) lib-imap-client: Connect and command timeouts are now configurable. Also use the same connect timeout for the DNS lookup's timeout. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c 2013-05-31 02:29:49 +0300 Stephan Bosch (d3a3d31d1) imap: URLFETCH's URL callback would prematurely uncork the output stream when called for a local URL. M src/imap/cmd-urlfetch.c 2013-05-30 22:44:54 +0300 Timo Sirainen (e4d51d29f) imap: URLFETCH's tagged reply wasn't sent while TCP corked. M src/imap/cmd-urlfetch.c 2013-05-30 22:27:57 +0300 Timo Sirainen (2e97f8760) auth: Fixed error handling for proxy host dns_lookup() M src/auth/auth-request.c 2013-05-30 22:27:23 +0300 Timo Sirainen (3874d5db4) Reverted previous wrong commit. M src/auth/auth-worker-server.c 2013-05-30 22:26:14 +0300 Timo Sirainen (604235bf6) auth: Fixed error handling for proxy host dns_lookup() M src/auth/auth-worker-server.c 2013-05-30 21:45:13 +0300 Timo Sirainen (1da5113b9) layout=index: Allow mailbox create/delete/rename during mailbox list iteration. M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2013-05-30 19:03:05 +0300 Timo Sirainen (8ea491aa2) lib-index: Fixed a broken assert. M src/lib-index/mail-index-transaction-export.c 2013-05-30 18:04:58 +0300 Stephan Bosch (b22a04075) lib-imap-urlauth: Added API for using the fetch interface with an already parsed IMAP URL object. M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth-fetch.h 2013-05-30 18:04:52 +0300 Stephan Bosch (620b60321) imap: Fixed segfault in URLFETCH command. Command would be cleaned up while requests were still pending, causing a segfault once a request finished. Added API determining whether the URLAUTH fetch interface still has pending requests. M src/imap/cmd-urlfetch.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth-fetch.h 2013-05-30 18:04:17 +0300 Stephan Bosch (69c5fffbb) lib-imap-urlauth: Fixed handling of URLAUTH service connection resume after pending local request. This was erroneously removed in an earlier commit. M src/lib-imap-urlauth/imap-urlauth-fetch.c 2013-05-30 18:04:10 +0300 Stephan Bosch (636e3a4d3) lib-imap-urlauth: Fixed pending_request counter difference between locally and remotely fetched URLAUTHs. M src/lib-imap-urlauth/imap-urlauth-fetch.c 2013-05-30 18:03:53 +0300 Stephan Bosch (a103139eb) lib-imap-urlauth: Fixed URLAUTH fetch reference counting for when requests are aborted at deinit. M src/lib-imap-urlauth/imap-urlauth-fetch.c 2013-05-30 18:03:46 +0300 Stephan Bosch (7cf790002) lib-imap-urlauth: Fixed URLAUTH connection resume after error. M src/lib-imap-urlauth/imap-urlauth-connection.c 2013-05-30 18:03:38 +0300 Stephan Bosch (76e3f3707) lib-imap-urlauth: Made sure callbacks from URLAUTH service connection are executed only once. M src/lib-imap-urlauth/imap-urlauth-connection.c 2013-05-30 17:45:27 +0300 Timo Sirainen (e95bc8487) var_expand(): Added %N, which is the same as %H except based on MD5. This gives a better distribution of values than %H. M src/lib/var-expand.c 2013-05-29 16:40:50 +0300 Timo Sirainen (d8ce48fb2) lib-imap: imap_append_string_for_humans() returned broken output for whitespace-only input. This returned broken IMAP ENVELOPEs, especially for subjects that contained only whitespace. Since the broken output returned a huge literal, it basically caused the IMAP client to hang. M src/lib-imap/Makefile.am M src/lib-imap/imap-quote.c A src/lib-imap/test-imap-quote.c 2013-05-29 12:44:15 +0300 Timo Sirainen (057284757) lib-settings: Support also "seconds" and "minutes" (instead of just secs/mins) M src/lib-settings/settings-parser.c 2013-05-29 12:33:17 +0300 Timo Sirainen (4fac47730) dsync: Fixed dsync handshaking since recent change. M src/doveadm/dsync/dsync-ibc-stream.c 2013-05-29 03:47:38 +0300 Timo Sirainen (6d8082441) lib-index: Fixed mail_cache_lookup_headers() when fields were still in memory buffer. M src/lib-index/mail-cache-lookup.c 2013-05-29 03:27:09 +0300 Timo Sirainen (5c9593966) lib-storage: If INDEX=MEMORY, return index root dir as nonexistent instead of as "". M src/lib-storage/mailbox-list.c 2013-05-29 03:26:41 +0300 Timo Sirainen (3d027f353) lib-storage: Reverted previous change after all. M src/lib-storage/mailbox-list.c 2013-05-29 03:23:40 +0300 Timo Sirainen (2d8d76a57) lib-storage: Don't try to mkdir() empty directory with INDEX=MEMORY M src/lib-storage/mailbox-list.c 2013-05-29 03:18:04 +0300 Timo Sirainen (f154234cb) Fixed compiling with gcc v3.3 and older. Perhaps the check needs to be also for somewhat newer versions?.. M src/lib/macros.h 2013-05-28 18:18:45 +0300 Timo Sirainen (eaa988415) auth ldap: If ldap debug_level>0, log how long initialization took. M src/auth/db-ldap.c 2013-05-28 17:30:42 +0300 Timo Sirainen (30cca82f3) auth: Keep auth_request referenced during DNS lookup. If the underlying auth connection gets closed, there's nothing else referencing the auth_request. M src/auth/auth-request.c 2013-05-28 17:10:03 +0300 Timo Sirainen (b372fc2d5) doveadm-server: Pass local/remote_ip/port to passdb lookups so proxy_maybe works. M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/doveadm-mail-server.c 2013-05-28 16:30:38 +0300 Timo Sirainen (7606d44ea) auth: Fixed caching empty userdb result. M src/auth/auth-request.c 2013-05-28 16:30:19 +0300 Timo Sirainen (5c253723e) auth: If blocking userdb returns no fields, don't crash when trying to cache the result. M src/auth/userdb-blocking.c 2013-05-28 01:03:58 +0300 Timo Sirainen (75a2a8361) lib-fs: Added fs_get_root_driver() M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2013-05-27 21:03:14 +0300 Timo Sirainen (9865d9e7c) dbox: Don't cache pop3.uidl|order unless index header indicates there are those. They exist only when doing a migration, so it's pretty wasteful storing "doesn't exist" for all other installations. M src/doveadm/doveadm-dump-index.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-save.h M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.h M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.h M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c 2013-05-27 20:45:08 +0300 Timo Sirainen (c7fc0431b) lib-index: Added mail_index_ext_resize_hdr() M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index.h 2013-05-27 20:44:56 +0300 Timo Sirainen (5e1dafd67) lib-index: Fixed resizing header when old&new sizes were the same when aligned. M src/lib-index/mail-index-sync-ext.c 2013-05-27 20:44:05 +0300 Timo Sirainen (930d6db2e) lib-index: Create ext-intro records using the latest sizes, not initial sizes. M src/lib-index/mail-index-transaction-export.c 2013-05-27 20:18:35 +0300 Timo Sirainen (ab8e5f784) dbox: Return cached pop3.order=0 as empty string instead to fix sorting problems. M src/lib-storage/index/dbox-common/dbox-mail.c 2013-05-26 21:57:36 +0300 Timo Sirainen (fd32c46c3) dsync: Added -x parameter to exclude mailboxes from sync. Multiple -x parameters can be added. Giving \flag as parameter means that the mailbox with the given SPECIAL-USE \flag is skipped. For example: doveadm sync -x '\All' -x '\Flagged' -x '\Important' mdbox:~/mdbox M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree.h 2013-05-26 21:44:50 +0300 Timo Sirainen (495c2961d) imapc: Fixed assert-crash when copying messages. M src/lib-storage/index/imapc/imapc-save.c 2013-05-26 21:20:47 +0300 Timo Sirainen (f1a5b3a01) dsync: Small code cleanup. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h 2013-05-26 21:07:09 +0300 Timo Sirainen (2b0fe8606) imapc: Pass through SPECIAL-USE LIST flags if imapc is in INBOX namespace. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/mailbox-list.h 2013-05-26 19:14:21 +0300 Timo Sirainen (147a788fe) dbox: Added support for POP3 message order. M src/doveadm/doveadm-dump-dbox.c M src/lib-storage/index/dbox-common/dbox-file.h M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2013-05-26 19:04:00 +0300 Timo Sirainen (d33fc6c58) lib-index: mail_cache_lookup*() can now return fields recently added with mail_cache_add() Previously it was returning them if they had already been written to dovecot.index.cache, but not if they were still in the in-memory buffer. This avoids caching/parsing the same field multiple times when messages aren't accessed in ascending order (e.g. when sorting messages). M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-transaction.c 2013-05-23 17:36:54 +0300 Timo Sirainen (35e962a91) lib-http: Added ssl_cert|key|key_password settings to be passed to ssl-iostream. These are used for sending client's SSL certificate. M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-05-22 15:59:38 +0300 Timo Sirainen (9e3b104ab) *-login: If ssl=required, don't list any SASL mechanisms before STARTTLS. M src/login-common/sasl-server.c 2013-05-22 15:57:13 +0300 Timo Sirainen (e2ce85866) *-login: ssl=required should imply disable_plaintext_auth=yes M src/imap-login/client.c M src/login-common/client-common-auth.c 2013-05-22 15:44:05 +0300 Timo Sirainen (79c862254) lib-storage: Optimize SEARCH_MODSEQ query if it's higher than HIGHESTMODSEQ. M src/lib-storage/index/index-search.c 2013-05-22 15:16:22 +0300 Timo Sirainen (f5d3670e7) dsync: Fixed unsubscribing from mailbox within same session as the mailbox's deletion. M src/doveadm/dsync/dsync-brain-mailbox-tree.c 2013-05-22 14:56:41 +0300 Timo Sirainen (5e925f682) dsync: Don't notify replicator process about successful dsync if the dsync failed. M src/doveadm/dsync/doveadm-dsync.c 2013-05-21 22:57:06 +0300 Timo Sirainen (63e376747) *-login: If auth failed with a specified reason, the reason wasn't actually shown to client. M src/login-common/client-common-auth.c 2013-05-21 22:55:23 +0300 Stephan Bosch (659f431cb) lib-imap-urlauth: Fixed deinitialization of the URLAUTH fetch handler. Added reference counting to make sure callbacks will not deinitialize the handler prematurely. M src/imap/cmd-urlfetch.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth-fetch.h 2013-05-21 22:55:17 +0300 Stephan Bosch (df97665f0) lib-imap-urlauth: Fixed resuming in URLAUTH fetch handler. Fixed URLAUTH fetch handler to properly resume the URLAUTH connection, even when it is deinitialized. M src/lib-imap-urlauth/imap-urlauth-fetch.c 2013-05-21 22:55:12 +0300 Stephan Bosch (96fbbe9c6) lib-imap-urlauth: Fixed local URLAUTH fetches that didn't immediately finish handling content. Local requests are now also properly counted. M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth-fetch.h 2013-05-21 17:09:37 +0300 Timo Sirainen (80ef919fa) auth: Fixed crash if LDAP query returned multiple results. M src/auth/db-ldap.c 2013-05-20 18:26:16 +0300 Timo Sirainen (7b904cc67) dsync: Previous have_save_guids change somewhat broke compatibility with earlier dsync versions. M src/doveadm/dsync/dsync-ibc-stream.c 2013-05-20 17:30:23 +0300 Timo Sirainen (985acc0cf) dsync: Fixed unsubscribing from an already deleted mailbox. M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree.h 2013-05-20 02:25:26 +0300 Timo Sirainen (2194c73cd) Added signature for changeset 7aa929edd551 M .hgsigs 2013-05-20 02:25:23 +0300 Timo Sirainen (2235f9ba5) Added tag 2.2.2 for changeset 7aa929edd551 M .hgtags 2013-05-20 02:25:23 +0300 Timo Sirainen (3da6df064) Released v2.2.2. M NEWS M configure.ac 2013-05-20 02:01:02 +0300 Timo Sirainen (14f6fe5d6) dsync: Don't try to sync with GUIDs if we can't set them on the needed side. With two-way syncing both sides need to have writable GUIDs. With one-way syncing only the writing side needs to have writable GUIDs. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox.h 2013-05-20 01:52:25 +0300 Timo Sirainen (9a107dedb) maildir: If we notice an unexpectedly inserted file, retry the sync to fix it. Without this doveadm force-resync would just ignore the inserted files. M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-sync.h 2013-05-20 01:39:52 +0300 Timo Sirainen (001ec60f2) maildir: Reverted most of changeset c92ebbedc6f9. If dovecot-uidlist file is recreated, it gets a new inode number, and we should recognize by that alone that it has changed. More importantly this forced re-reading of dovecot-uidlist clears out the RACING flag, making it impossible to handle reappearing maildir files. M src/lib-storage/index/maildir/maildir-uidlist.c 2013-05-19 23:42:29 +0300 Timo Sirainen (9847ec56e) lib-storage: Added mailbox_status.have_save_guids. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2013-05-19 23:21:20 +0300 Timo Sirainen (aeab2134d) mbox: Previous change broke index updates to successful saves. M src/lib-storage/index/mbox/mbox-save.c 2013-05-19 22:36:36 +0300 Christian Wiese (5f39ad031) example-config: Added missing auth-dict.conf.ext to distribution M doc/example-config/conf.d/Makefile.am 2013-05-19 22:30:52 +0300 Timo Sirainen (6f7671007) http_url_escape_param(): Added more characters to be escaped. Most importantly '+', which encodes a space normally. The others may not be strictly necessary, but safer to escape them just in case. M src/lib-http/http-url.c 2013-05-19 19:55:41 +0300 Timo Sirainen (04d9ab8ed) lib-http: Fixed assert-crash when host had multiple IPs and first one had failed. M src/lib-http/http-client-host.c 2013-05-19 19:51:34 +0300 Timo Sirainen (dfc3a20b3) imap-urlfetch: Don't leak memory on error. Use TCP corking when sending data. M src/imap/cmd-urlfetch.c 2013-05-15 17:18:29 +0300 Timo Sirainen (c42c25649) mbox: Fixed committing transaction after a previous save had failed. M src/lib-storage/index/mbox/mbox-save.c 2013-05-15 17:10:28 +0300 Timo Sirainen (d6a8078c2) mbox: If save's input stream fails, fail saving instead of ignoring the error. M src/lib-storage/index/mbox/mbox-save.c 2013-05-15 17:09:36 +0300 Timo Sirainen (a7349255f) layout=fs: Always return INBOX uppercased when listing mailboxes. M src/lib-storage/list/mailbox-list-fs-iter.c 2013-05-15 16:10:48 +0300 Timo Sirainen (9fbb55191) lib-storage: Don't lose INBOX's \Subscribed flag when returning it is delayed. M src/lib-storage/list/mailbox-list-iter.c 2013-05-15 15:35:10 +0300 Timo Sirainen (a29b32731) imap: Return how long SELECT or EXAMINE command took to answer. Could be useful to know sometimes if there's a large maildir where a lot files need to be rename()d. M src/imap/cmd-select.c 2013-05-15 15:26:47 +0300 Timo Sirainen (aa8b82398) maildir: Fixed handling over 26 keywords in a mailbox. M src/lib-storage/index/maildir/maildir-sync-index.c 2013-05-15 15:06:24 +0300 Timo Sirainen (25480af2e) Added asserts to binary searches to make sure we don't go to infinite loop. Using idx=left+(right-left)/2 would have worked also to allow 4GB sizes, but since none of the places in the code are likely to reach 2GB we might as well just add an assert. (Also if they do reach 2GB, it could be possible that they could reach also above 4GB and cause problems. Better to see an early error.) M src/lib-index/mail-index-map.c M src/lib-index/mail-index-transaction-update.c M src/lib-storage/index/index-sort-string.c M src/lib/bsearch-insert-pos.c M src/lib/bsearch-insert-pos.h M src/lib/seq-range-array.c 2013-05-15 14:28:04 +0300 Timo Sirainen (b8164b588) quota-status: If quota_status_* settings are set, don't free them before using. M src/plugins/quota/quota-status.c 2013-05-15 13:44:01 +0300 Timo Sirainen (e24f97a6f) lib-storage: Allow mail_*cache_fields settings to specify any hdr.* fields. Also the fields were previously set only once globally, so if the process served multiple users, it wouldn't have been possible to use per-user values for these fields. M src/lib-storage/index/index-storage.c 2013-05-15 13:36:43 +0300 Timo Sirainen (c2d7c8a80) lib-index: Don't mark field decisions dirty when registering initial cache fields. M src/lib-index/mail-cache-fields.c 2013-05-15 13:34:59 +0300 Timo Sirainen (a16d9a651) lib-index: Fixed mail_cache_register_fields() decision updates. Normally this shouldn't matter, except when mail_*cache_fields settings have been used. M src/lib-index/mail-cache-fields.c 2013-05-15 13:20:43 +0300 Timo Sirainen (872d122a6) lib-storage: Added mail_always_cache_fields setting. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2013-05-11 17:08:12 +0200 Florian Zeitz (9281d3855) liblib: Fix Unicode decomposition M src/lib/test-unichar.c M src/lib/unichar.c M src/lib/unicodemap.pl 2013-05-15 12:52:29 +0300 Timo Sirainen (cb95df276) example-config: Added comment how all *.conf.ext files are accessed typically. M doc/example-config/dovecot-dict-auth.conf.ext M doc/example-config/dovecot-dict-sql.conf.ext M doc/example-config/dovecot-ldap.conf.ext M doc/example-config/dovecot-sql.conf.ext 2013-05-15 12:50:29 +0300 Timo Sirainen (b3b55a84b) Makefile: Removed dovecot-db.conf.ext M doc/example-config/Makefile.am 2013-05-15 12:50:03 +0300 Timo Sirainen (a71c82444) example-config: Removed dovecot-db.conf.ext since Berkeley DB support is never built in. D doc/example-config/dovecot-db.conf.ext 2013-05-15 12:48:21 +0300 Timo Sirainen (84ddb9179) example-config: auth-*.conf.ext should say they're included by 10-auth.conf M doc/example-config/conf.d/auth-checkpassword.conf.ext M doc/example-config/conf.d/auth-deny.conf.ext M doc/example-config/conf.d/auth-dict.conf.ext M doc/example-config/conf.d/auth-ldap.conf.ext M doc/example-config/conf.d/auth-master.conf.ext M doc/example-config/conf.d/auth-passwdfile.conf.ext M doc/example-config/conf.d/auth-sql.conf.ext M doc/example-config/conf.d/auth-static.conf.ext M doc/example-config/conf.d/auth-system.conf.ext M doc/example-config/conf.d/auth-vpopmail.conf.ext 2013-05-14 23:34:38 +0300 Timo Sirainen (daabad64d) auth passwd-file: If we fail to open passwd-file, log a request error directly. Instead of one error message and another info message. M src/auth/db-passwd-file.c 2013-05-14 22:23:27 +0300 Timo Sirainen (a7b091621) Avoid strict aliasing warnings. M src/lib/hash.h M src/plugins/fts-lucene/lucene-wrapper.cc 2013-05-14 16:46:08 +0300 Timo Sirainen (cf04ab521) example-config: Moved imap_* and pop3_* settings outside protocol section. There's no need to keep them inside protocol {}, and in case of pop3_uidl_format=%m setting it's actually harmful. M doc/example-config/conf.d/20-imap.conf M doc/example-config/conf.d/20-pop3.conf 2013-05-14 16:32:30 +0300 Timo Sirainen (f64b66ffa) pop3: Added pop3_deleted_flag setting. M doc/example-config/conf.d/20-pop3.conf M src/pop3/pop3-client.c M src/pop3/pop3-client.h M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/pop3/pop3-settings.h 2013-05-14 14:14:16 +0300 Timo Sirainen (4f0ea8daa) configure: Fixed checking for struct sockpeercred with OpenBSD <5.3 M configure.ac 2013-05-14 14:02:36 +0300 Timo Sirainen (eeeedfdd2) login-proxy: If login fails with timeout, log what the proxying state was. M src/login-common/login-proxy.c 2013-05-14 14:00:21 +0300 Timo Sirainen (6a438f1cb) login-proxy: Don't crash if connect() succeeds but login fails with timeout. M src/login-common/login-proxy-state.h M src/login-common/login-proxy.c 2013-05-13 23:06:31 +0200 Dennis Schridde (ea954a624) Fix out of source build of manpages M doc/man/Makefile.am 2013-05-06 23:59:41 +0300 Timo Sirainen (89334d8c6) lib-index: Previous commit sometimes broke scanning transaction log view. If min_file_seq+offset pointed to the end of the previous file that no longer existed, we didn't just skip over it. M src/lib-index/mail-transaction-log-view.c 2013-05-06 20:21:27 +0300 Timo Sirainen (5c8a42e28) imap: URLFETCH sometimes failed thinking it didn't receive all of the message data. M src/imap/cmd-urlfetch.c 2013-05-06 20:20:43 +0300 Timo Sirainen (7b6cc2bca) imap: URLFETCH leaked istream on failures. M src/imap/cmd-urlfetch.c 2013-05-06 20:15:58 +0300 Timo Sirainen (d2dd9b736) imap: Fixed URLFETCH assert-crashes due to output_cmd_lock not being cleared. M src/imap/cmd-urlfetch.c 2013-05-06 19:51:07 +0300 Timo Sirainen (f036539f6) imap: Don't eat away the next command if CATENATE fails. M src/imap/cmd-append.c 2013-05-06 19:49:55 +0300 Timo Sirainen (693e839fb) imap: Fixed assert-crash on invalid APPEND parameters. M src/imap/cmd-append.c 2013-05-06 19:49:18 +0300 Timo Sirainen (fa0e8ffdd) imap: Don't hang in APPEND when giving it invalid parameters. M src/imap/cmd-append.c 2013-05-06 19:48:32 +0300 Timo Sirainen (ba9f57d77) lib-imap: imap_parser_read_args() shouldn't append multiple EOLs when calling multiple times. M src/lib-imap/imap-parser.c 2013-05-06 18:35:36 +0300 Timo Sirainen (8e5d89452) lib-imap-urlauth: Don't try to access garbage memory on error handling paths. M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth.c 2013-05-06 17:30:07 +0300 Timo Sirainen (68a3f1b03) doveadm: If search query attempts to access nonexistent mailbox, just ignore it. Most importantly running a query for multiple users wouldn't be an error if the mailbox existed only for some users. It's probably cleaner to then always just ignore the nonexistent mailboxes. M src/doveadm/doveadm-mail-iter.c 2013-05-06 17:27:36 +0300 Timo Sirainen (c57ba1788) doveadm_mail_iter_init(): Removed unnecessarily returning transaction. If it's needed in future just add a new doveadm_mail_iter_get_transaction(). M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-iter.h M src/doveadm/doveadm-mail-search.c 2013-05-06 16:43:29 +0300 Timo Sirainen (dcf4c70f8) lib-index: The previous assert-crashfix didn't actually fix the problem. M src/lib-index/mail-transaction-log-view.c 2013-05-06 15:17:49 +0300 Timo Sirainen (48cfcd33a) maildir++: Fixed mail_shared_explicit_inbox=no M src/lib-storage/list/mailbox-list-maildir-iter.c 2013-05-06 15:04:57 +0300 Timo Sirainen (392cdeafd) namespace { prefix="" list=no } should never be listed. M src/lib-storage/list/mailbox-list-iter.c 2013-05-06 14:59:27 +0300 Timo Sirainen (515d649c1) acl: Optionally get default ACL's for private/shared namespaces from user's INBOX. This probably should be the default always, but better not break anyone's existing setup until v2.3.0. So for now there's a setting for this: plugin { acl_defaults_from_inbox = yes } M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c 2013-05-06 14:58:55 +0300 Timo Sirainen (9199a1680) acl: Mailbox creation ignored ACLs (due to API changes in v2.2). The created mailbox couldn't have been accessed however. M src/plugins/acl/acl-mailbox.c 2013-05-03 17:17:15 +0300 Timo Sirainen (c958941fb) quota-status: Return 554 instead of 552 on quota failures. This is because RFC 5321/2821 recommends that 552 is treated the same as 452. M src/plugins/quota/quota-status.c 2013-05-02 18:32:47 +0300 Timo Sirainen (7a151eaa1) lib-imap-urlauth: Don't try to access garbage memory on error handling path. M src/lib-imap-urlauth/imap-urlauth.c 2013-05-02 18:29:50 +0300 Timo Sirainen (2d8ff6cda) imap-urlauth-worker: Fixed a crash (by removing unnecessary code) M src/imap-urlauth/imap-urlauth-worker.c 2013-05-02 18:18:26 +0300 Timo Sirainen (047f63233) imap: Don't allow empty CATENATE () list. M src/imap/cmd-append.c 2013-05-02 18:11:56 +0300 Timo Sirainen (6c3a5f03a) imap: Fixed using literals for URLs in CATENATE. M src/imap/cmd-append.c 2013-05-02 16:20:02 +0300 Timo Sirainen (e3d7df209) example-config: Typofix M doc/example-config/dovecot.conf 2013-04-23 21:32:24 +0300 Timo Sirainen (61f78d8e0) stats plugin: Don't try to send notifications to already dead stats process. M src/plugins/stats/Makefile.am M src/plugins/stats/stats-connection.c 2013-04-23 21:31:52 +0300 Timo Sirainen (573971885) lib-master: Added master_service_is_master_stopped() M src/lib-master/master-service.c M src/lib-master/master-service.h 2013-04-23 21:08:31 +0300 Timo Sirainen (3b09ea6d8) hash_table_clear(): Added a comment about API usage. M src/lib/hash.h 2013-04-23 21:06:34 +0300 Timo Sirainen (208028f26) maildir: Crashfix after dovecot-keywords file was re-read. M src/lib-storage/index/maildir/maildir-keywords.c 2013-04-23 21:06:00 +0300 Timo Sirainen (f6f57175b) lib-storage: Fixed crash with mailbox_list_index=yes after re-reading index. M src/lib-storage/list/mailbox-list-index.c 2013-04-23 20:53:53 +0300 Timo Sirainen (6e5abd4b7) istream-[b]zlib: Don't break if parent stream gets seeked in the middle of reads. M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-zlib.c 2013-04-23 20:51:34 +0300 Timo Sirainen (8cdef6385) dbox: Close file's fd only after its istream is destroyed. For example zlib plugin keeps the stream open as a cache even after the dbox_file has been destroyed. M src/lib-storage/index/dbox-common/dbox-file.c 2013-04-23 17:21:46 +0300 Timo Sirainen (be51dfea7) istream-seekable: Don't crash when seeking forwards past the data we haven't read yet. M src/lib/istream-seekable.c 2013-04-23 16:20:48 +0300 Timo Sirainen (ec383c784) lib-http: Makefile fix M src/lib-http/Makefile.am 2013-04-23 13:47:46 +0300 Timo Sirainen (c9af0202f) fts-solr: Don't crash if fts_solr setting is invalid. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2013-04-23 13:33:12 +0300 Timo Sirainen (066595d48) master: Fixed warning log message. M src/master/master-settings.c 2013-04-23 13:28:17 +0300 Timo Sirainen (8920919ab) OpenBSD compile fix: include sys/socket.h when checking for struct sockpeercred. M configure.ac 2013-04-22 21:51:01 +0300 Timo Sirainen (f9b31ae31) stats plugin: Use nonblocking open() for stats fifo. This fixes hangs in it. Alternative would be to use alarm(). M src/plugins/stats/stats-connection.c 2013-04-22 18:45:04 +0300 Timo Sirainen (0c9917939) zlib: Keep the last read mail cached uncompressed in a temp file. This fixes performance problems with partial IMAP FETCH commands. M src/plugins/zlib/zlib-plugin.c 2013-04-20 21:57:47 +0300 Timo Sirainen (4a254eb89) lib-storage: Avoid wasting data stack during searches. M src/lib-storage/index/index-search.c 2013-04-20 21:02:30 +0300 Timo Sirainen (96b8965a9) Fixed a memory leak. M src/lib-mail/istream-attachment-connector.c 2013-04-20 20:58:06 +0300 Timo Sirainen (e2854843b) stats plugin: Fixed memory leak. M src/plugins/stats/stats-plugin.c 2013-04-19 14:29:23 +0300 Timo Sirainen (012431153) Compiling fix for Sun compilers. I wish gcc/clang warned about these as well, as sometimes they indicate bugs. M src/imap-urlauth/imap-urlauth-worker.c M src/lib/ioloop.c 2013-04-19 00:38:05 +0300 Timo Sirainen (03a506217) Added signature for changeset 6fcf060b50f1 M .hgsigs 2013-04-19 00:38:00 +0300 Timo Sirainen (16b277741) Added tag 2.2.1 for changeset 6fcf060b50f1 M .hgtags 2013-04-19 00:38:00 +0300 Timo Sirainen (c4d85d3de) Released v2.2.1. M NEWS M TODO M configure.ac 2013-04-18 18:49:55 +0300 Timo Sirainen (90a2c5f48) layout=index: Fixed listing subscriptions. M src/lib-storage/list/mailbox-list-index-backend.c 2013-04-18 17:54:29 +0300 Timo Sirainen (92bf0ad41) lib-storage: Set virtual/physical size in dest_mail when copying, if possible. Ideally lib-index would be fixed so this wouldn't be necessary. The lib-index way of fixing it would also be useful for more than just quota plugin. M src/lib-storage/index/index-storage.c 2013-04-18 17:48:38 +0300 Timo Sirainen (a90616ab2) lib-storage: mailbox_copy() didn't always copy all the cached fields to destination. If the destination mailbox's cache file wasn't already opened, the default cache decisions were used. M src/lib-storage/index/index-storage.c 2013-04-17 18:47:36 +0300 Stephan Bosch (e3ca6e9e0) liblib: Added DLLIST2_INSERT_AFTER_FULL() For inserting a new element in a doubly-linked list after an existing element. M src/lib/llist.h 2013-04-17 18:44:52 +0300 Stephan Bosch (f82dfbdcc) lib-imap-urlauth: Fixed connection error handling to abort all pending requests. M src/lib-imap-urlauth/imap-urlauth-connection.c 2013-04-17 16:19:42 +0300 Timo Sirainen (8110bad16) lib-storage: mailbox_save_finish() internally does one final mailbox_save_continue() M src/imap/cmd-append.c M src/lib-storage/mail-storage.c 2013-04-17 16:08:26 +0300 Timo Sirainen (6766440ff) doveadm fs: Set base_dir. M src/doveadm/doveadm-fs.c 2013-04-16 20:08:18 +0300 Timo Sirainen (511a7ccd5) mbox: Handle broken Status: and X-Status: headers without sync errors. M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-private.h M src/lib-storage/index/mbox/mbox-sync-update.c 2013-04-16 16:20:30 +0300 Timo Sirainen (a6a9e537d) auth: Fixed multiple master passdbs. M src/auth/auth-request.c 2013-04-16 15:54:05 +0300 Timo Sirainen (1235bbd13) maildir: Fixed crash in some rare situations. M src/lib-storage/index/maildir/maildir-util.c 2013-04-15 21:40:35 +0300 Timo Sirainen (96c1fc9f6) zlib: Don't crash when trying to use zlib_save for handler that isn't compiled in. M src/plugins/zlib/zlib-plugin.c 2013-04-15 17:22:06 +0300 Timo Sirainen (9d2571680) lib-mail: Don't assert-crash when multipart doesn't actually have any parts. M src/lib-mail/message-parser.c 2013-04-14 21:27:29 +0300 Timo Sirainen (f497d8469) lib-storage: mailbox_list_index=yes was still broken. M src/lib-storage/mail-namespace.c 2013-04-14 20:40:47 +0300 Timo Sirainen (eed1ec3ac) Linking error fix. M src/doveadm/doveadm-mail.h 2013-04-12 21:19:38 +0300 Timo Sirainen (c92163a6f) Added tag 2.2.0 for changeset 1c8e7a295d4b M .hgtags 2013-04-11 22:38:59 +0300 Timo Sirainen (e81127c92) Added signature for changeset e2cd03cc9c69 M .hgsigs 2013-04-11 22:38:54 +0300 Timo Sirainen (604fa82da) Released v2.1.0. M NEWS M configure.ac A doc/example-config/conf.d/11-object-storage.conf 2013-04-11 19:06:25 +0300 Timo Sirainen (94785d5f7) lib-storage: mailbox_list_index=yes was broken by previous change. Reverted the previous change and fixed it the right way. M src/lib-storage/list/mailbox-list-index.c 2013-04-11 18:50:25 +0300 Timo Sirainen (10ccd0e45) Removed ambiguous mail_user.admin flag. dsync shouldn't sync mailboxes without +r ACL. M src/doveadm/dsync/doveadm-dsync.c M src/lib-storage/mail-user.h M src/plugins/acl/acl-api.c M src/plugins/acl/acl-attributes.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/quota/quota.c 2013-04-11 17:35:31 +0300 Timo Sirainen (8c072aac2) doveadm: Don't use MAILBOX_LIST_ITER_RAW_LIST when listing mailboxes. That skips ACLs and mailbox list. There's really no good reason to use that by default. M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail.c 2013-04-11 16:54:53 +0300 Timo Sirainen (6d84b0fac) lib-storage: mailbox_list_index=yes wasn't working with ACLs. M src/lib-storage/list/mailbox-list-index.c 2013-04-11 16:19:35 +0300 Timo Sirainen (1409230a0) lib-storage: mail_update_pvt_modseq() shouldn't crash if there is no private index. M src/lib-storage/index/index-mail.c 2013-04-11 13:38:16 +0300 Timo Sirainen (43262d155) net_getunixcred(): Fix to previous NetBSD<5 support: return pid as -1. M src/lib/net.c 2013-04-11 13:15:39 +0300 Timo Sirainen (921d4dd91) net_getunixcred() support for NetBSD (5fb80928b) Fixed getmntinfo() usage with NetBSD. Patch by Emmanuel Dreyfus M src/lib/mountpoint.c 2013-04-10 22:31:53 +0300 Timo Sirainen (2a7f9672c) Added signature for changeset d7f29af73468 M .hgsigs 2013-04-10 22:31:41 +0300 Timo Sirainen (81e86d1ea) Added tag 2.2.rc7 for changeset d7f29af73468 M .hgtags 2013-04-10 22:31:41 +0300 Timo Sirainen (c21978afb) Released v2.2.rc7. M NEWS M TODO M configure.ac 2013-04-10 22:11:33 +0300 Timo Sirainen (03f2a189a) imapc: If APPEND to selected mailbox doesn't send EXISTS, try if NOOP sends it. This makes Dovecot behave better with Courier. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2013-04-10 22:05:36 +0300 Timo Sirainen (1c3e5f6b1) iostream-ssl: Don't hang if ostream's max buffer size is set to 0. M src/lib-ssl-iostream/ostream-openssl.c 2013-04-10 21:18:07 +0300 Timo Sirainen (0b32a8d13) lib-fs: Added fs_file_close() to explicitly close all streams that the file has open. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-metawrap.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2013-04-10 18:48:54 +0300 Timo Sirainen (dc39158a2) lib-index: Fixed failing unit test M src/lib-index/test-mail-transaction-log-view.c 2013-04-10 18:00:12 +0300 Timo Sirainen (0f37e6857) lib-http: Don't double-free request memory when aborting them. M src/lib-http/http-client-connection.c 2013-04-10 17:53:24 +0300 Timo Sirainen (c6494255d) lib-http: http_client_deinit() calls any pending delayed failure callbacks. M src/lib-http/http-client-host.c M src/lib-http/http-client-request.c 2013-04-10 16:50:34 +0300 Timo Sirainen (23c502c6e) lib-index: Assert-crashfix on some rare situations. mail_index_modseq_get_next_log_offset() might have returned e.g. (seq=4, offset=40) to point to the beginning of a next file. The view itself could still have been pointing to seq=3 end of file. Now calling mail_transaction_log_view_set() with these two positions (that are basically the same) should result in an empty view instead of assert crash. M src/lib-index/mail-transaction-log-view.c 2013-04-10 14:52:17 +0300 Timo Sirainen (e062a4b1f) lib-fs: Add data stack frames to most API calls, so the backends/callers don't need to. M src/lib-fs/fs-api.c 2013-04-10 14:51:37 +0300 Timo Sirainen (ccd968b44) lib-http: Added data stack frame to avoid unnecessary data stack wasting. M src/lib-http/http-client-request.c 2013-04-10 14:17:41 +0300 Timo Sirainen (e1ac2af3e) lib-storage: Fixed mailbox list index crashes with shared mailboxes. M src/lib-storage/list/mailbox-list-index.c 2013-04-10 14:13:51 +0300 Timo Sirainen (311d3dd20) lib-storage: Added mail_namespaces_added hook. M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-hooks.h M src/lib-storage/mail-user.c 2013-04-10 14:00:47 +0300 Timo Sirainen (43487bb7d) lib-storage: Make sure index root dir is created when mailbox list index is created. M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2013-04-10 13:40:57 +0300 Timo Sirainen (719123a3e) dsync: Don't fail the sync if attribute couldn't be set. It's probably a system configuration mismatch where some/all attributes don't work in one system but do on another. This might or might not be a problem, so it deserves an error message, but probably doesn't deserve failing entirely. M src/doveadm/dsync/dsync-mailbox-import.c 2013-04-10 00:14:09 +0300 Timo Sirainen (7ee45b03d) lib-storage: Fixed crash with mailbox_list_index=yes and out-of-date index. M src/lib-storage/list/mailbox-list-index-status.c 2013-04-09 23:54:52 +0300 Timo Sirainen (8451cf677) istream-seekable: Fixed handling "buffer full" i_stream_read() result from underlying streams. M src/lib/istream-seekable.c 2013-04-09 14:17:56 +0300 Timo Sirainen (933e663cc) dsync: Fixed assert-crash caused by previous change M src/doveadm/dsync/dsync-mailbox-import.c 2013-04-08 18:14:32 +0300 Timo Sirainen (ec0cc8fa6) dsync: Commit large transactions every 100 new messages. This way if the dsync crashes or transaction fails in the middle, the next run can finish faster. Also the rollbacking finishes faster. M src/doveadm/dsync/dsync-mailbox-import.c 2013-04-08 17:10:14 +0300 Timo Sirainen (b6d443660) dsync: If saving mails fail, stop trying to save more of them and flooding logs. M src/doveadm/dsync/dsync-mailbox-import.c 2013-04-08 15:33:23 +0300 Timo Sirainen (2e657dc3d) dsync: -U parameter never updated replicator's full_sync state. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h 2013-04-08 15:13:39 +0300 Timo Sirainen (aaebcf0da) quota: dsync shouldn't trigger quota warnings They would probably just be duplicates that were already triggered by the other replica. M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2013-04-08 14:53:31 +0300 Timo Sirainen (2d66fbf7a) dsync: If dsync fails due to lock timeout, give a better error message. M src/doveadm/dsync/dsync-brain.c 2013-04-08 14:49:07 +0300 Timo Sirainen (3ba55a69a) lib-master: Ignore mountpoints with type cgroup. M src/lib-master/mountpoint-list.c 2013-04-08 14:43:09 +0300 Timo Sirainen (a1ac79f52) doveadm replicator: Fixed showing over 1h old timestamps. M src/doveadm/doveadm-replicator.c 2013-04-08 14:38:30 +0300 Timo Sirainen (b5ffdf79d) replicator: doveadm commands and user list export may have skipped some users. The users were exported from the queue, but they are temporarily removed from there while the user is being replicated. The users always exist in the hash table though. M src/replication/replicator/doveadm-connection.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-queue.h 2013-04-08 13:25:18 +0300 Timo Sirainen (a74bc46dd) checkpasword: Don't set AUTH_PASSWORD environment. M src/auth/db-checkpassword.c 2013-04-08 13:09:52 +0300 Timo Sirainen (1d80017c2) restrict_process_count(): Don't die if process count can't be changed. SELinux has hard limits and doesn't allow root to increase them. The admin should fix the error one way or another, but it's not a total failure just leaving it. M src/lib/restrict-process-size.c 2013-04-08 13:03:12 +0300 Timo Sirainen (9a5044964) lib-http: If remote SSL cert is invalid, treat it as non-retryable error. M src/lib-http/http-client-connection.c 2013-04-08 13:02:27 +0300 Timo Sirainen (71b60849a) lib-ssl-iostream: Added ssl_iostream_has_handshake_failed() M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h 2013-04-08 02:06:29 +0300 Timo Sirainen (b09cf319d) Added signature for changeset ae4341d0e83b M .hgsigs 2013-04-08 02:06:25 +0300 Timo Sirainen (f6ce79f87) Added tag 2.2.rc6 for changeset ae4341d0e83b M .hgtags 2013-04-08 02:06:25 +0300 Timo Sirainen (0d511a2de) Released v2.2.rc6. M NEWS M configure.ac 2013-04-08 01:56:25 +0300 Timo Sirainen (c3e0f0a11) dsync: Fixed crashes with dsync-server -U parameter M src/doveadm/dsync/doveadm-dsync.c 2013-04-08 00:18:56 +0300 Timo Sirainen (9ec1ecbc1) fs-posix: Set file's fd to -1 after closing it M src/lib-fs/fs-posix.c 2013-04-07 23:56:01 +0300 Timo Sirainen (bdff67545) istream-qp-decoder: Fixed assert-crashes caused by recent forced-CRLF q-p change. M src/lib-mail/istream-qp-decoder.c 2013-04-07 23:26:52 +0300 Timo Sirainen (a78468f42) lib-fs: posix fs backend now closes the fd after reads are finished. This allows keeping more fs_file structs open than there are available fds. M src/lib-fs/fs-posix.c 2013-04-07 23:17:37 +0300 Timo Sirainen (1a0ece3e8) istream API change: Added support for multiple destroy callbacks. M src/lib-http/http-client-connection.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-storage/index/index-mail.c M src/lib/iostream-private.h M src/lib/iostream-temp.c M src/lib/iostream.c M src/lib/istream.c M src/lib/istream.h M src/lib/json-parser.c 2013-04-07 22:55:42 +0300 Timo Sirainen (b60ba688e) ostream-metawrap: ..and compile fix to previous commit. M src/lib-fs/ostream-metawrap.c 2013-04-07 22:54:48 +0300 Timo Sirainen (6759ba36f) ostream-metawrap: Copy parent ostream's errors. M src/lib-fs/ostream-metawrap.c 2013-04-07 20:32:37 +0300 Timo Sirainen (eb376ebaa) example-config: Added ssl_client_ca_file M doc/example-config/conf.d/10-ssl.conf 2013-04-07 20:28:31 +0300 Timo Sirainen (56d1345c4) Added ssl_client_ca_file to specify the CA certs as a file instead of as a dir. This is required for Redhat-based systems where there isn't a CA directory like in Debian/Ubuntu. M src/doveadm/doveadm-fs.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/dsync/doveadm-dsync.c M src/lib-http/http-client.c M src/lib-http/http-client.h M src/lib-http/test-http-client.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-ssl.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-client.h M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2013-04-07 20:06:42 +0300 Timo Sirainen (713a54f69) doveadm fs: Enable fs debug if doveadm -D parameter is given. M src/doveadm/doveadm-fs.c 2013-04-07 20:06:28 +0300 Timo Sirainen (1c31ad9a2) lib-fs: Added debug setting. M src/lib-fs/fs-api.h 2013-04-07 19:50:29 +0300 Timo Sirainen (51f750db8) Moved lib-fs/fs-test to "doveadm fs" command. M .hgignore M src/doveadm/Makefile.am A src/doveadm/doveadm-fs.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/doveadm.c M src/doveadm/doveadm.h M src/lib-fs/Makefile.am D src/lib-fs/fs-test.c 2013-04-07 18:50:31 +0300 Timo Sirainen (a0b32e0e5) lib-storage: mailbox list index didn't get its permissions from the root dir. M src/lib-storage/list/mailbox-list-index.c 2013-04-07 18:49:32 +0300 Timo Sirainen (db7ca286e) lib-storage: dovecot.mailbox.log should have used file permissions, not dir Although this didn't actually make any difference since 0666 mask was used. M src/lib-storage/mailbox-list.c 2013-04-07 18:33:21 +0300 Timo Sirainen (3cca2128c) example-config: Added mailbox_list_index. M doc/example-config/conf.d/10-mail.conf 2013-04-07 18:01:52 +0300 Timo Sirainen (ee8d61969) Added "doveadm replicator remove" command to remove users from replicator queue. M src/doveadm/doveadm-replicator.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-queue.h 2013-04-07 17:47:16 +0300 Timo Sirainen (51a237cb7) dsync: Fixed -U to send the notification on the remote server, not local. M src/doveadm/doveadm-settings.c M src/doveadm/dsync/doveadm-dsync.c 2013-04-07 16:36:00 +0300 Timo Sirainen (b593b793d) lib-storage: If transaction commit fails, don't try to access garbage memory. M src/lib-storage/mail-storage.c 2013-04-07 15:36:35 +0300 Timo Sirainen (b8e6e314e) dsync: Fixed talking to earlier dsync without mailbox attribute support. Most importantly it can now be used as an example how to add more features to dsync. M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-private.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-ibc.h 2013-04-07 15:10:36 +0300 Timo Sirainen (e25c9a57d) connection_disconnect(): Explicitly close input/output stream. This makes sure that if the ostream has some data pending and is still referenced, the io_remove() won't be called after fd is already closed. M src/lib/connection.c 2013-04-07 15:03:36 +0300 Timo Sirainen (9e10978b8) test-http-client: Allow invalid SSL certs in tests. M src/lib-http/test-http-client.c 2013-04-07 15:02:46 +0300 Timo Sirainen (9d0aee99a) lib-http: ssl_crypto_device and ssl_allow_invalid_cert settings were ignored. M src/lib-http/http-client.c 2013-04-07 14:56:19 +0300 Timo Sirainen (bf48ae155) lib-http: Fixed receiving 100-continue reply after we already timed out waiting for it. M src/lib-http/http-client-connection.c 2013-04-07 14:46:45 +0300 Timo Sirainen (6b7e1dfd1) replicator: Have remote dsync notify the replicator that the user was just synced. This way the replicators are roughly in sync. M src/doveadm/dsync/doveadm-dsync.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/dsync-client.c 2013-04-06 21:01:41 +0300 Timo Sirainen (b1aa22860) replicator: Don't create replicator-doveadm socket by default. Also removed the service replicator { process_min_avail=1 } requirement. This new way allows replicator to give a flag to dsync so it will try to notify the replicator process when user gets synced, which can be silently ignored even if it fails (replica server doesn't need to have replicator or even Dovecot itself running). M src/replication/replicator/replicator-settings.c M src/replication/replicator/replicator.c 2013-04-06 20:44:38 +0300 Timo Sirainen (35e4905f7) lib-index: Added missing NUL separator to attribute-update transaction log record. M src/lib-index/mail-index-transaction-export.c 2013-04-05 21:57:11 +0300 Timo Sirainen (bd9e7407f) fs-metawrap: Fixed fs_copy_finish_async() wrapping M src/lib-fs/fs-metawrap.c 2013-04-05 21:03:20 +0300 Timo Sirainen (30a12782a) Added signature for changeset 9446df6da5a8 M .hgsigs 2013-04-05 21:03:16 +0300 Timo Sirainen (c36772785) Added tag 2.2.rc5 for changeset 9446df6da5a8 M .hgtags 2013-04-05 21:03:16 +0300 Timo Sirainen (ed930763a) Released v2.2.rc5. M NEWS M configure.ac 2013-04-05 19:27:41 +0300 Timo Sirainen (14a9f0134) example-config: Added ssl_client_ca_dir setting. M doc/example-config/conf.d/10-ssl.conf 2013-04-05 19:03:05 +0300 Timo Sirainen (636d0f431) lib-http: Fixed moving delayed request error timeouts between ioloops. M src/lib-http/http-client.c 2013-04-05 16:37:45 +0300 Timo Sirainen (238812433) lib-index: Add timestamps and value lengths to attribute change records in transaction log. The timestamps will be useful for dsync, and value lengths will be useful for metadata quota. M src/doveadm/doveadm-dump-log.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index.h M src/lib-storage/index/index-attribute.c M src/plugins/acl/acl-mailbox.c 2013-04-05 15:44:32 +0300 Timo Sirainen (fd81c8f5a) imap: Fixed RESETKEY command to not return failure when it actually succeeded. M src/imap/cmd-resetkey.c M src/lib-imap-urlauth/imap-urlauth-backend.c 2013-04-05 15:17:30 +0300 Timo Sirainen (791fb70b3) Make static analyzer happier. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/lib-http/http-client-request.c M src/lib/test-json-parser.c 2013-04-05 14:05:54 +0300 Timo Sirainen (ba0d53358) doveadm batch: Fixed handling subcommand parameters and errors. M src/doveadm/doveadm-mail-batch.c 2013-04-05 13:19:17 +0300 Timo Sirainen (2a80aa687) quota-status: Unknown recipients caused a crash. M src/plugins/quota/quota-status.c 2013-04-05 12:26:57 +0300 Timo Sirainen (dfc96c43b) layout=index: Don't crash on mailbox_update() if the mailbox path couldn't be found. M src/lib-storage/list/mailbox-list-index-backend.c 2013-04-05 12:25:29 +0300 Timo Sirainen (23d09920e) dsync: Fixes to location parameter handling. M src/doveadm/dsync/doveadm-dsync.c 2013-04-05 00:24:39 +0300 Timo Sirainen (d25c1c36c) Added signature for changeset 92c88eca562d M .hgsigs 2013-04-05 00:24:36 +0300 Timo Sirainen (92170d845) Added tag 2.2.rc4 for changeset 92c88eca562d M .hgtags 2013-04-05 00:24:36 +0300 Timo Sirainen (89d992b7a) Released v2.2.rc4. M NEWS M TODO M configure.ac 2013-04-05 00:13:16 +0300 Timo Sirainen (47cf35bf3) Merged changes from v2.1 tree. 2013-04-05 00:08:40 +0300 Timo Sirainen (284aa558c) Added signature for changeset 582108c190f8 M .hgsigs 2013-04-05 00:08:37 +0300 Timo Sirainen (8be136307) Added tag 2.1.16 for changeset 582108c190f8 M .hgtags 2013-04-05 00:08:36 +0300 Timo Sirainen (e062b1ad6) Released v2.1.16. M NEWS M configure.in 2013-04-04 23:58:47 +0300 Timo Sirainen (2169e77bd) quota-status: Removed duplicate "action=" text from overquota messages. M src/plugins/quota/quota-status.c 2013-04-04 23:56:55 +0300 Timo Sirainen (dc03cb97c) quota-status: Added quota_status_(success|nouser|overquota) settings. M src/plugins/quota/quota-status.c 2013-04-04 23:35:27 +0300 Timo Sirainen (8761e7262) replicator: If replicator is unconfigured, fail at startup. M src/replication/replicator/replicator.c 2013-04-04 23:35:08 +0300 Timo Sirainen (d4845c424) lib-master: Added master_service_get_process_min_avail() M src/lib-master/master-interface.h M src/lib-master/master-service-private.h M src/lib-master/master-service.c M src/lib-master/master-service.h M src/master/service-process.c 2013-04-04 23:03:47 +0300 Timo Sirainen (89e94dc80) dsync: Mailbox name fixing didn't work when namespace prefixes were used. M src/doveadm/dsync/dsync-brain-mailbox-tree.c 2013-04-04 23:03:30 +0300 Timo Sirainen (607bca75b) imapc: Don't assert-crash when ACL plugin tries to lookup "" mailbox. M src/lib-storage/index/imapc/imapc-list.c 2013-04-04 23:03:06 +0300 Timo Sirainen (6eeb3fd0f) imapc: Give an early error message if imapc_list_prefix ends with separator. M src/lib-storage/index/imapc/imapc-storage.c 2013-04-04 22:49:38 +0300 Timo Sirainen (7b64db32b) lib-storage: Crashfixes for handling shared mailboxes for nonexistent users. M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-user.c 2013-04-04 22:09:02 +0300 Timo Sirainen (1a3254b83) istream-chain: Final fixes to handling merged streams. M src/lib/istream-chain.c 2013-04-04 21:46:59 +0300 Timo Sirainen (76f0cc074) istream-chain: More fixes to handling merged streams. M src/lib/istream-chain.c 2013-04-04 21:23:49 +0300 Timo Sirainen (5d3e31cae) istream-chain: Fixed memory leak. M src/lib/istream-chain.c 2013-04-04 21:18:59 +0300 Timo Sirainen (3aa038486) lib-imap-urlauth: Don't memcpy() data over itself. M src/lib-imap-urlauth/imap-urlauth-backend.c 2013-04-04 21:18:45 +0300 Timo Sirainen (7af4788b4) i_stream_read(): Added assert. M src/lib/istream.c 2013-04-04 21:18:28 +0300 Timo Sirainen (d730192e3) istream-chain: Fixed handling small streams that get merged into same buffer. M src/lib/istream-chain.c 2013-04-04 20:32:28 +0300 Timo Sirainen (5acace56d) ldap auth: Don't access freed memory. M src/auth/db-ldap.c M src/auth/db-ldap.h 2013-04-04 20:05:37 +0300 Timo Sirainen (8b8227efe) lib-storage: Add \Noinferiors flag to INBOX when such namespace config is used. M src/lib-storage/list/mailbox-list-iter.c 2013-04-04 19:45:28 +0300 Timo Sirainen (82315b27e) auth: If passdb wasn't used, don't preserve its extra fields in auth request. M src/auth/auth-request.c 2013-04-04 19:18:22 +0300 Timo Sirainen (e8ee95581) lib-mail: quoted_printable_decode*() now returns all newlines as CRLF. This is required by BINARY fetches, since the original data had CRLFs. M src/lib-mail/quoted-printable.c M src/lib-mail/quoted-printable.h M src/lib-mail/test-quoted-printable.c 2013-04-04 19:03:26 +0300 Timo Sirainen (d549ec5d1) lib-storage: Fixed searching with multiple parameters and prefetching. M src/lib-storage/mail-search.c 2013-04-04 18:18:50 +0300 Timo Sirainen (355384821) imapc, pop3c: Don't hide SSL handshake errors. M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/pop3c/pop3c-client.c 2013-04-04 18:10:04 +0300 Timo Sirainen (b4d850a0f) lib-ssl-iostream: Simplified certificate validation. Also give better error messages. M src/doveadm/server-connection.c M src/lib-http/http-client-connection.c M src/lib-imap-client/imapc-connection.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h M src/lib-storage/index/pop3c/pop3c-client.c 2013-04-04 17:40:30 +0300 Timo Sirainen (3da95d05d) lib-http: Crashfix for previous change. M src/lib-http/http-client-peer.c 2013-04-04 17:39:17 +0300 Timo Sirainen (3b4bd183c) lib-ssl-iostream: Added support for TLS SNI, which caused some API changes. M src/doveadm/server-connection.c M src/lib-http/http-client-connection.c M src/lib-imap-client/imapc-connection.c M src/lib-master/master-service-ssl.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h M src/lib-storage/index/pop3c/pop3c-client.c 2013-04-04 17:34:23 +0300 Timo Sirainen (e1f9521e8) lib-http: Prepare for TLS SNI support. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2013-04-04 16:53:08 +0300 Timo Sirainen (d47b9f1bd) lib-ssl: If debug=TRUE, set also SSL verbose=TRUE M src/lib-http/http-client.c 2013-04-04 15:40:08 +0300 Timo Sirainen (970910781) lib-ssl-iostream: If handshake callback fails, close the iostreams immediately. This way the callback itself doesn't have to do it. Also fixes errors caused by it, since they didn't close the ostream. M src/doveadm/server-connection.c M src/lib-http/http-client-connection.c M src/lib-http/http-client.h M src/lib-imap-client/imapc-connection.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-storage/index/pop3c/pop3c-client.c 2013-04-04 15:21:52 +0300 Timo Sirainen (52ccd5259) lib-http: Removed last traces of http_client_connection_error() M src/lib-http/http-client-connection.c 2013-04-04 15:21:00 +0300 Timo Sirainen (ac645fe16) lib-ssl-iostream: ssl_iostream_set_handshake_callback() API changed. The callback can now return the error message to caller instead of having to log it itself. M src/doveadm/server-connection.c M src/lib-http/http-client-connection.c M src/lib-imap-client/imapc-connection.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h M src/lib-storage/index/pop3c/pop3c-client.c 2013-04-04 14:58:00 +0300 Timo Sirainen (2a889fc59) lib-http: Pass connect failures all the way to request callback's error string. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2013-04-04 14:55:03 +0300 Timo Sirainen (f5386adc7) lib-http: Reorder http_client_connection deinit code just to be safe. I'm not sure if this fixes any actual bugs, but just in case request callbacks cause the connection to be accessed/modified in some way abort the requests before doing anything else. M src/lib-http/http-client-connection.c 2013-04-04 14:51:20 +0300 Timo Sirainen (9c8d244b7) lib-http: Fixed double-free on delayed connect() failures caused by recent change. M src/lib-http/http-client-connection.c 2013-04-04 14:41:06 +0300 Timo Sirainen (32b6d8613) lib-http: If SSL init/handshake fails for connection, destroy it. M src/lib-http/http-client-connection.c 2013-04-04 14:30:41 +0300 Timo Sirainen (436c529e1) lib-http: If connect() fails, destroy the http_client_connection. Fixes hanging requests when a peer has multiple connections. M src/lib-http/http-client-connection.c 2013-04-04 14:18:38 +0300 Timo Sirainen (a321ac56c) lib-http: Simplify error handling by delaying connect() failures. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2013-04-04 14:11:10 +0300 Timo Sirainen (6bc9fb43c) lib-http: If http_client_request_submit() fails, don't immediately call the callback. This simplifies the caller's error handling since there is now only one error code path instead of two. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2013-04-04 13:21:42 +0300 Timo Sirainen (692ab2d0e) lib-http: Removed unused code. M src/lib-http/http-client-peer.c 2013-04-04 13:20:59 +0300 Timo Sirainen (ba1c847d0) lib-ssl-iostream: API changes to return error strings if init() functions fail. This also fixed a couple of broken error handlings. M src/doveadm/client-connection.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/server-connection.c M src/lib-http/http-client-connection.c M src/lib-http/http-client.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-master/master-service-ssl.c M src/lib-master/master-service-ssl.h M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl-private.h M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/iostream-ssl.h M src/lib-storage/index/pop3c/pop3c-client.c 2013-04-04 13:12:26 +0300 Timo Sirainen (111a251bf) lib-ssl-iostream: Removed unused iostream-ssl-none.c D src/lib-ssl-iostream/iostream-ssl-none.c 2013-04-04 12:48:52 +0300 Timo Sirainen (415e16c3d) lib-http: Each peer doesn't need a separate ssl context, enough to have one for http_client. Also removed #ifdefs for building with SSL support. lib-ssl-iostream nowadays dynamically loads the SSL library when needed, and also handles failures if Dovecot was built without SSL support. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c 2013-04-04 12:21:04 +0300 Timo Sirainen (18d2775f8) lib-http: Pass DNS lookup error message to caller instead of logging it. M src/lib-http/http-client-host.c 2013-04-03 11:36:56 +0300 Timo Sirainen (29658a7e7) dovecot.m4: Reverted last change with added comments. M dovecot.m4 2013-04-02 23:32:10 +0300 Timo Sirainen (f54e601ca) lib-master: If fifo isn't accepted, don't double-destroy the connection. M src/lib-master/master-service.c 2013-04-02 23:29:43 +0300 Timo Sirainen (30d917bcd) lib-http: Added ssl_ca setting to specify the CA certificate directly. M src/lib-http/http-client-peer.c M src/lib-http/http-client.c M src/lib-http/http-client.h 2013-04-02 23:11:30 +0300 Timo Sirainen (805c76711) dovecot.m4: Removed --without-dovecot-install-dirs from distcheck configure flags. Perhaps the whole feature should be designed some other way. Some plugins require the dovecot_* variables to point to their real paths. M dovecot.m4 2013-04-02 11:52:36 +0300 Timo Sirainen (f8b73b7a4) quota-status: If size parameter is given, use it to check quota. M src/plugins/quota/quota-status.c 2013-04-02 11:32:24 +0300 Timo Sirainen (94100e1f6) lib-index: Backported MAIL_TRANSACTION_ATTRIBUTE_UPDATE from v2.2 M src/doveadm/doveadm-dump-log.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-transaction-log.h 2013-04-02 11:22:52 +0300 Timo Sirainen (49fc09f99) auth: Fixed also DOVECOT-TOKEN (=URLAUTH) and NTLM/GSS-SPNEGO (via winbind) to work. M src/auth/mech-dovecot-token.c M src/auth/mech-winbind.c 2013-04-02 11:18:45 +0300 Timo Sirainen (0c7ccf0db) auth: Fixed ANONYMOUS mechanism to work again. M src/auth/mech-anonymous.c 2013-03-31 19:02:32 +0300 Timo Sirainen (b8a4aab1f) quota: Added more debug logs about quota_grace M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2013-03-31 18:43:13 +0300 Timo Sirainen (789cb161e) dsync: Fixed syncing without GUIDs. M src/doveadm/dsync/dsync-mailbox-export.c 2013-03-31 18:35:13 +0300 Timo Sirainen (1e06f3061) dsync: Don't crash if second user initialization fails. M src/doveadm/dsync/doveadm-dsync.c 2013-03-31 18:24:54 +0300 Timo Sirainen (9e992397c) dsync: If remote doesn't send some mails, don't exit with code 0. M src/doveadm/dsync/dsync-mailbox-import.c 2013-03-31 18:15:00 +0300 Timo Sirainen (4307e3a23) auth: nodelay and nopassword fields weren't handled correctly. M src/auth/auth-request.c 2013-03-31 18:03:50 +0300 Timo Sirainen (1fa2054fb) auth: Implemented userdb_import and userdb_userdb_import fields. M src/auth/auth-request.c 2013-03-31 17:47:52 +0300 Timo Sirainen (f96f042e4) auth: Fixed passdb_import not to crash when =value isn't given. M src/auth/auth-request.c 2013-03-31 17:44:34 +0300 Timo Sirainen (0fbf1f84f) auth: Renamed userdb_userdb_import to passdb_import, since that's what it really is. M src/auth/auth-request.c 2013-03-31 17:40:12 +0300 Timo Sirainen (6ca88ca58) auth: Allow using userdb_userdb_import in passdb query to set multiple userdb fields. M src/auth/auth-request.c 2013-03-31 17:25:10 +0300 Timo Sirainen (44320b37d) virtual plugin: Fixed saving/copying messages to virtual mailbox. M src/lib-storage/mail-storage.c M src/plugins/virtual/virtual-save.c 2013-03-31 17:24:35 +0300 Timo Sirainen (75b6f320d) lib-storage: mailbox_get_status() no longer forces mailbox to be synced. This fixes copying messages with keywords to a virtual mailbox, where syncing happened too late and caused assert-crash (status was only used to lookup list of keywords). The crash could have been solved another way too, but it's probably better if automatic syncing isn't always performed. doveadm index -n parameter handling also relies on this behavior. M src/lib-storage/index/index-status.c M src/lib-storage/mail-storage.h 2013-03-31 16:46:45 +0300 Timo Sirainen (9bc71fc13) lib-storage: Don't reset mail_save_context.copying|moving|copying_via_save too early. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage.c 2013-03-31 16:46:11 +0300 Timo Sirainen (e9081684e) lib-storage: Create a default namespace for auto-created shared mail_users. Some code nowadays requires user to have prefix="" namespace. M src/lib-storage/index/shared/shared-storage.c 2013-03-31 11:23:42 +0300 Timo Sirainen (4ab5a4486) lib-master: Ignore mountpoints under /tmp and /var/tmp by default. M src/lib-master/mountpoint-list.c 2013-03-28 11:37:07 +0200 Timo Sirainen (ad0fe4382) maildir++ quota: Fixed relative quota_grace when taking limit from maildirsize file M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2013-03-27 21:10:35 +0200 Timo Sirainen (0fa25bd86) maildir: If maildir_broken_filename_sizes=yes, don't try to fix sizes in filenames. M src/lib-storage/index/maildir/maildir-mail.c 2013-03-27 14:45:14 +0200 Timo Sirainen (c4e3c997c) lib-fs: Always keep the error in the parentmost fs. This fixes problems with getting the correct error message when wrapper filesystems are used. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-metawrap.c 2013-03-27 12:53:35 +0200 Timo Sirainen (918178681) dsync: Use i_fatal() for invalid parameters, like the rest of doveadm commands. Probably the parse_arg() API should be changed to allow reporting errors. M src/doveadm/dsync/doveadm-dsync.c 2013-03-27 12:51:02 +0200 Timo Sirainen (cf5082832) lib-index: Removed obsolete 16bit size check asserts from mail_index_update_header_ext() M src/lib-index/mail-index-transaction-update.c 2013-03-27 09:16:56 +0200 Timo Sirainen (401bacb36) dsync: Don't access uninitialized variable M src/doveadm/dsync/doveadm-dsync.c 2013-03-27 09:16:42 +0200 Timo Sirainen (faccb8e51) Compiler warning fix M src/replication/replication-common.h 2013-03-26 22:41:43 +0200 Timo Sirainen (c161661e7) lib-storage: Added assert. M src/lib-storage/mail.c 2013-03-26 22:41:32 +0200 Timo Sirainen (ecdf46d11) dsync: Allow doveadm plugins to override local_location at run(). M src/doveadm/dsync/doveadm-dsync.c 2013-03-26 22:40:57 +0200 Timo Sirainen (7ea46e7d9) dsync: Allow syncing same mail root dirs if indexes are different. Fixes dsyncing with storages that have no mail root dirs. M src/doveadm/dsync/doveadm-dsync.c 2013-03-26 22:39:38 +0200 Timo Sirainen (a1893588a) dsync: Crashfix when importing from storage without GUIDs. M src/doveadm/dsync/dsync-mailbox-import.c 2013-03-26 14:38:30 +0200 Timo Sirainen (8d8dc14bf) ldap: Another fix to sub-dn-lookup. M src/auth/db-ldap.c 2013-03-26 10:36:49 +0200 Timo Sirainen (b6df44e31) ldap: Crashfix M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2013-03-26 10:35:38 +0200 Timo Sirainen (872521e5e) ldap: Compiling fix to previous change M src/auth/db-ldap.c 2013-03-26 10:25:50 +0200 Timo Sirainen (f30ab1a83) ldap: Improved sub-dn-lookup error message. M src/auth/db-ldap.c 2013-03-25 18:10:16 +0200 Timo Sirainen (f2f40b6ca) ldap: Various crashfixes M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/userdb-ldap.c 2013-03-25 17:56:53 +0200 Timo Sirainen (068afb0ee) ldap: Don't crash if attributes have no @subrequests. M src/auth/db-ldap.c 2013-03-25 17:02:15 +0200 Timo Sirainen (9f99b5c3e) doveadm sync/backup: Added -g to sync only the specified mailbox (by GUID) Similar to -m . M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree.h 2013-03-25 16:19:54 +0200 Timo Sirainen (5685e60e6) doveadm: Added "batch" command to run multiple mail commands. This only makes sense when the commands are run with -A or -u , so that the commands are run for the same user before moving onto the next user. M src/doveadm/Makefile.am A src/doveadm/doveadm-mail-batch.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2013-03-25 14:18:20 +0200 Timo Sirainen (861f4c69f) dsync: Fixed syncing attribute streams. M src/doveadm/dsync/dsync-ibc-stream.c 2013-03-25 13:55:41 +0200 Timo Sirainen (b32b2375b) imap: Fixed more URL escaping in URLFETCH replies. M src/imap/cmd-urlfetch.c 2013-03-24 19:04:15 +0200 Timo Sirainen (96d12aa68) mysql/pgsql: Don't bother logging about having connected to the database. There's probably no good reason to have them? Errors are of course still logged. M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c 2013-03-24 18:58:20 +0200 Timo Sirainen (01fde39bc) doveadm-server: Don't continue handling commands if input stream is already closed. This fixes trying to handle extra input from previous dsync command. M src/doveadm/client-connection.c 2013-03-24 18:48:28 +0200 Timo Sirainen (e98e8ba55) imap: GENURLAUTH and URLFETCH didn't escape URL parameters when needed. M src/imap/cmd-genurlauth.c M src/imap/cmd-urlfetch.c 2013-03-24 18:14:11 +0200 Timo Sirainen (5ca40db1f) doveadm replicator status: Without parameter show overview status. M src/doveadm/doveadm-replicator.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-queue.h 2013-03-24 18:13:53 +0200 Timo Sirainen (0fa3852d3) doveadm: Table formatter now hides the titles if all of them are marked hidden. M src/doveadm/doveadm-print-table.c 2013-03-24 17:48:17 +0200 Timo Sirainen (4bed69a78) doveadm: Added "replicator replicate" command to force replication of user(s). M src/doveadm/doveadm-replicator.c M src/replication/replicator/doveadm-connection.c 2013-03-24 17:23:33 +0200 Timo Sirainen (34d73a178) replication_full_sync_interval default changed from 12h -> 24h This allows doing full resyncs only at nights. M src/replication/replicator/replicator-settings.c 2013-03-24 17:21:49 +0200 Timo Sirainen (f3e77a037) replicator: If sync fails, retry it in 5 minutes. M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-queue.h M src/replication/replicator/replicator.c 2013-03-24 17:04:22 +0200 Timo Sirainen (a6355f01a) replicator: Replicator queue export/import at exit/startup wasn't really working. M src/replication/replicator/replicator-queue.c 2013-03-24 16:53:32 +0200 Timo Sirainen (f7239655d) doveadm replicator status: Show sync time as "-" for "never". M src/doveadm/doveadm-replicator.c 2013-03-24 16:52:39 +0200 Timo Sirainen (ce0aa35b4) doveadm replicator status: Fixed user mask to work. M src/doveadm/doveadm-replicator.c M src/replication/replicator/doveadm-connection.c 2013-03-24 16:48:53 +0200 Timo Sirainen (d06955914) doveadm: Added "replicator status" command. M src/doveadm/Makefile.am A src/doveadm/doveadm-replicator.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h 2013-03-24 16:48:29 +0200 Timo Sirainen (99a9e14ca) replicator: Added doveadm socket for communicating with "doveadm replicator". M src/replication/replication-common.h M src/replication/replicator/Makefile.am A src/replication/replicator/doveadm-connection.c A src/replication/replicator/doveadm-connection.h M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-queue.h M src/replication/replicator/replicator-settings.c M src/replication/replicator/replicator.c 2013-03-24 16:04:37 +0200 Timo Sirainen (768370138) lib-storage: Fixed listing subscribed namespace prefixes. M src/lib-storage/list/mailbox-list-iter.c 2013-03-24 15:33:36 +0200 Timo Sirainen (a184ef41a) lib-storage: If INBOX isn't subscribed, don't return it in subscriptions list. M src/lib-storage/list/mailbox-list-iter.c 2013-03-22 19:45:52 +0200 Timo Sirainen (e36574dad) lib-storage: Compiling fix M src/lib-storage/mailbox-list.c 2013-03-22 17:43:52 +0200 Timo Sirainen (74ebeb391) lib-storage: Fixed crash if shared namespace had subscriptions=yes M src/lib-storage/index/shared/shared-list.c 2013-03-22 17:30:36 +0200 Timo Sirainen (ae2b61a8c) lib-storage: Added mailbox_list_get_settings() M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2013-03-22 12:48:21 +0200 Timo Sirainen (44a529ca5) dsync: Use fcntl() locking instead of flock(). M src/doveadm/dsync/dsync-brain.c 2013-03-22 11:17:14 +0200 Timo Sirainen (5e32f3d9e) Compiler warning fix M src/doveadm/dsync/dsync-mailbox-import.c 2013-03-22 10:29:12 +0200 Timo Sirainen (2721a77c5) acl: Don't crash when rebuilding acl dict for "unusable" namespaces. M src/plugins/acl/acl-lookup-dict.c 2013-03-21 23:51:16 +0200 Timo Sirainen (f0d93763f) login proxy: Set a default 30s timeout. M src/login-common/client-common-auth.c 2013-03-21 23:50:53 +0200 Timo Sirainen (fff19afba) login proxy: Stop proxy_timeout only after successfully logged in (not after connected). M src/login-common/login-proxy.c 2013-03-21 14:48:33 +0200 Timo Sirainen (f48fdb571) dsync: -m '' parameter now syncs mailbox list, but no actual mails. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h 2013-03-20 22:06:06 +0200 Timo Sirainen (adc403868) Added signature for changeset 11bd79bf4866 M .hgsigs 2013-03-20 22:05:53 +0200 Timo Sirainen (33158cf33) Added tag 2.2.rc3 for changeset 11bd79bf4866 M .hgtags 2013-03-20 22:05:53 +0200 Timo Sirainen (e33ff0746) Released v2.2.rc3. M NEWS M configure.ac 2013-03-20 21:44:48 +0200 Timo Sirainen (afaf4f293) Merged changes from v2.1 tree. 2013-03-20 21:13:20 +0200 Timo Sirainen (e6debde4e) doveadm pw -t: Don't ask for password if -p is also specified. Patch by Paul Wallingford. M src/doveadm/doveadm-pw.c 2013-03-20 21:04:29 +0200 Timo Sirainen (e3677df81) mbox: Moved .subscriptions back to control_dir/ root instead of control_dir/.imap/ M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/list/mailbox-list-subscriptions.c 2013-03-20 20:56:58 +0200 Timo Sirainen (177295e3c) layout=fs: Fixed crash with mbox when control dir was enabled. M src/lib-storage/list/mailbox-list-fs.c 2013-03-20 20:47:46 +0200 Timo Sirainen (3d651cf1a) dsync: Fixed retrying a search when GUIDs aren't available. M src/doveadm/dsync/dsync-mailbox-export.c 2013-03-20 20:47:14 +0200 Timo Sirainen (2fdcbdc25) dsync: Avoid a creating a lot of searches for each synced mailbox. M src/doveadm/dsync/dsync-brain-mails.c 2013-03-20 20:24:31 +0200 Timo Sirainen (d8bdf558c) dsync: Don't crash when requested mail doesn't have a GUID. M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c 2013-03-20 20:17:15 +0200 Timo Sirainen (420809e40) layout=fs: Fixed assert-crash when mail root doesn't exist (pop3c). M src/lib-storage/list/mailbox-list-fs-iter.c 2013-03-20 19:18:01 +0200 Timo Sirainen (d6dc20a13) imap: Don't crash with invalid FETCH BODY[sections] M src/imap/imap-fetch-body.c M src/lib-imap-storage/imap-msgpart.c 2013-03-20 18:52:51 +0200 Timo Sirainen (b46eb149f) example-config: Removed a warning about mail_attachment_dir not being tested. M doc/example-config/conf.d/10-mail.conf 2013-03-20 18:46:10 +0200 Timo Sirainen (db0fb9eb7) fts: Fixed crash when searching virtual mailboxes and fts backend without lookup_multi(). Patch by Mike Abbott / Apple M src/plugins/fts/fts-api.c 2013-03-20 18:24:21 +0200 Timo Sirainen (de3328eed) lib-lda: Send QUIT after DATA replies have been received. M src/lib-lda/lmtp-client.c 2013-03-20 18:09:46 +0200 Timo Sirainen (8d9540a45) acl: Put ACL files to control dir if storage doesn't have a mail directory. M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c 2013-03-20 17:59:32 +0200 Timo Sirainen (d71d05cf4) layout=index: Fixed mailbox_exists() M src/lib-storage/list/mailbox-list-index-backend.c 2013-03-20 17:54:52 +0200 Timo Sirainen (005eb7a9e) imap: Fixed RESETKEY assert-crashing M src/imap/cmd-resetkey.c 2013-03-20 17:44:07 +0200 Timo Sirainen (bdf6608a8) layout=index: Don't return a path for \Noselect mailboxes. M src/lib-storage/list/mailbox-list-index-backend.c 2013-03-20 17:43:32 +0200 Timo Sirainen (06faee18b) lib-storage: mailbox_rename() shouldn't require source mailbox to exist. \Noselect mailboxes may not exist. The nonexistence will be noticed eventually in the backend code. M src/lib-storage/mail-storage.c 2013-03-20 17:10:47 +0200 Timo Sirainen (3010259e7) lib-fs: Fixed fs_default_copy() to work with async writes. M src/lib-fs/fs-api.c 2013-03-20 12:04:39 +0200 Timo Sirainen (cc116e6d7) replicator: Renamed doveadm-connection to dsync-client. M src/replication/replicator/Makefile.am D src/replication/replicator/doveadm-connection.c D src/replication/replicator/doveadm-connection.h A src/replication/replicator/dsync-client.c A src/replication/replicator/dsync-client.h M src/replication/replicator/replicator-brain.c 2013-03-20 09:59:27 +0200 Timo Sirainen (ab3c52cff) dsync: Fixed attribute value comparisons. M src/doveadm/dsync/dsync-mailbox-import.c 2013-03-19 23:31:41 +0200 Timo Sirainen (3b1f449bb) Compiler warning fix. M src/doveadm/dsync/dsync-mailbox.c 2013-03-19 19:08:17 +0200 Timo Sirainen (e563b8a14) lib-storage: Added a way to create plugins that forcibly hook into mail storage. Mostly meant for doveadm_sieve plugin. M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-hooks.h M src/lib-storage/mail-storage-private.h 2013-03-19 19:05:27 +0200 Timo Sirainen (41e51b972) lib-storage: Mailbox attributes can now be accessed via istreams. The idea is to use istreams for larger values. M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox.c M src/doveadm/dsync/dsync-mailbox.h M src/lib-storage/index/index-attribute.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/plugins/acl/acl-attributes.c 2013-03-19 18:52:39 +0200 Timo Sirainen (d995d2282) dsync: Fixed sending mailbox attributes with stream ibc. M src/doveadm/dsync/dsync-ibc-stream.c 2013-03-19 18:50:55 +0200 Timo Sirainen (4292c8c20) dsync: Mail requests were lost when attributes were being synced. M src/doveadm/dsync/dsync-brain-mails.c 2013-03-19 18:48:47 +0200 Timo Sirainen (c2fa1f8e9) acl: Don't iterate ACL attributes if prefix has no chance of matching them. M src/plugins/acl/acl-attributes.c 2013-03-19 14:00:49 +0200 Timo Sirainen (ed9677194) acl: Preserve dovecot-acl file's mtime when dsyncing. M src/plugins/acl/acl-api.h M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-backend-vfile.c 2013-03-19 14:00:21 +0200 Timo Sirainen (2d567b030) acl: Don't unnecessarily rewrite dovecot-acl file when re-adding the same ACL. M src/plugins/acl/acl-backend-vfile.c 2013-03-19 13:59:22 +0200 Timo Sirainen (9307e4f91) dsync: Set last_change timestamp for unset attributes. M src/doveadm/dsync/dsync-mailbox-import.c 2013-03-19 13:59:02 +0200 Timo Sirainen (d261a383b) lib-storage: Allow mailbox_attribute_set() to also unset values. This allows giving the last_change timestamp also when unsetting. M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2013-03-19 13:34:12 +0200 Timo Sirainen (6cc4cce20) lib-storage: mailbox_attribute_set() now uses struct mail_attribute_value. This allows settig the last_change value, as well as using streams and setting other flags in future. M src/doveadm/dsync/dsync-mailbox-import.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-storage.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-storage.h 2013-03-19 12:39:43 +0200 Timo Sirainen (32a1beb2d) net_is_in_network(): Don't assert-crash with invalid IP. It's probably better to do the check here instead of remembering for caller to do the check. M src/lib/net.c M src/lib/net.h 2013-03-19 12:18:25 +0200 Timo Sirainen (2d6c6f1d0) test-json-parser: Fixed failing test with some non-gcc/clang compilers. M src/lib/test-json-parser.c 2013-03-19 12:13:33 +0200 Timo Sirainen (6264b5ea5) ldap auth: Removed base() wrapper around @dn values. The idea was to provide extensibility, but it can better be done with LDAP URLs. M src/auth/db-ldap.c 2013-03-19 11:52:15 +0200 Timo Sirainen (b433ae56a) lib-fs: fs-test now sets the ssl_client_set.ca_dir M src/lib-fs/Makefile.am M src/lib-fs/fs-test.c 2013-03-19 11:42:51 +0200 Timo Sirainen (16cb5d652) Moved ssl_client_ca_dir and ssl_crypto_device to mail_storage_settings. Probably could also be moved to master_service_settings, but that makes accessing them a bit more tricky with the current code. M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/dsync/doveadm-dsync.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-settings.h M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2013-03-19 11:39:07 +0200 Timo Sirainen (c4a629cd7) lib-fs: Allow passing through SSL client settings via struct fs_settings. M src/lib-fs/fs-api.h 2013-03-18 21:31:34 +0200 Timo Sirainen (626a20605) ldap auth: "!ldapField" now requests the given field, but doesn't return it directly. It's only useful for listing fields that %{ldap_ptr} can potentially access. M src/auth/db-ldap.c M src/auth/db-ldap.h 2013-03-18 21:23:54 +0200 Timo Sirainen (a9b698e78) ldap auth: Added %{ldap_ptr:realAttr} to get the value from the realAttr. For example: password_attrs = \ =proxy=y, \ =host=%{ldap_ptr:activeHost}, \ primaryHost, secondaryHost Where activeHost's value is either "primaryHost" or "secondaryHost". M src/auth/db-ldap.c 2013-03-18 21:20:54 +0200 Timo Sirainen (c2bae70e8) ldap auth: Fix to previous change. M src/auth/db-ldap.c 2013-03-18 20:51:33 +0200 Timo Sirainen (3fb153168) ldap auth: Support field values containing DNs to other LDAP records and getting them. For example: user_attrs = \ =user=%{ldap:uid}, \ @mail=base(%{ldap:mailDN}), \ =uid=%{ldap:uidNumber@mail}, \ =gid=%{ldap:gidNumber@mail}, \ =home=%{ldap:rootPath@mail}/%d/%n This first does the regular lookup, and then does another lookup using mailDN's value as the new lookup's base. The other lookup's filter is currently hardcoded to "no filter". M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2013-03-18 16:51:58 +0200 Timo Sirainen (068ac1085) auth: Return "nologin" and "proxy" fields to login process without "=value". M src/auth/auth-fields.c M src/auth/auth-fields.h M src/auth/auth-request-handler.c 2013-03-18 15:59:40 +0200 Timo Sirainen (31a9637b3) Compiling fix for Solaris M src/lib-master/master-service.h 2013-03-18 15:47:14 +0200 Timo Sirainen (512962b75) istream-qp-decoder: Fixed assert-crashing with buffer size allocations. The original implementation was copy&pasted from istream-base64-decoder without enough thinking.. M src/lib-mail/istream-qp-decoder.c 2013-03-18 15:46:16 +0200 Timo Sirainen (d5ecc28ac) quoted-printable decoding: Don't add CR if it wasn't in input. This guarantees that the decoded Q-P won't be larger than its input. M src/lib-mail/quoted-printable.c M src/lib-mail/test-quoted-printable.c 2013-03-15 21:58:51 +0100 Timo Sirainen (9c6a09aa1) lib-master: include unistd.h for master_getopt() users. M src/lib-master/master-service.h 2013-03-15 21:55:40 +0100 Timo Sirainen (90814c027) Compile fix on non-gcc/clang. M src/lib-storage/index/maildir/maildir-uidlist.c 2013-03-15 20:49:39 +0100 Timo Sirainen (9a5980c7b) Compile fix on non-gcc/clang. M src/lib/istream-chain.c 2013-03-14 15:41:39 +0200 Timo Sirainen (eb4d4f557) acl: Added ACL checks for attributes. Added ACL <-> mailbox attribute mapping. The ACL checks will be useful once IMAP METADATA extension is finished. The mapping is used by dsync to sync ACLs via generic attribute syncing. M src/plugins/acl/Makefile.am M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c M src/plugins/acl/acl-api.h A src/plugins/acl/acl-attributes.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.h M src/plugins/acl/acl-storage.h M src/plugins/acl/doveadm-acl.c M src/plugins/imap-acl/imap-acl-plugin.c 2013-03-14 15:41:09 +0200 Timo Sirainen (55d33f807) dsync: Added support for syncing mailbox attributes. M src/doveadm/dsync/Makefile.am M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-private.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h A src/doveadm/dsync/dsync-mailbox.c M src/doveadm/dsync/dsync-mailbox.h M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/dsync-transaction-log-scan.h 2013-03-14 15:32:14 +0200 Timo Sirainen (50c617761) lib-storage: Changed mailbox_attribute_get/set() APIs to have a transaction and update index. The _get() doesn't currently actually use the transaction. It was mainly put there for future use where it could be useful. It's also possible that _iter() will need a transaction also. For now these decisions seem good enough. M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2013-03-14 15:29:18 +0200 Timo Sirainen (fee561b9d) lib-index: mail_index_attribute_[un]set() adds changed attributes' keys to transaction log. This provides them both a modseq (so their changes become visible) as well as an efficient way to see what attributes have changed by reading the transaction log. The values themselves aren't written to the log, because they could be large. M src/doveadm/doveadm-dump-log.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.h 2013-03-14 15:24:48 +0200 Timo Sirainen (6303f32ad) lib-master: Added version_string_verify_full() M src/lib-master/master-service.c M src/lib-master/master-service.h 2013-03-14 15:25:07 +0200 Timo Sirainen (b3bf71e0c) istream-dot unit test updated. M src/lib-mail/test-istream-dot.c 2013-03-13 22:11:39 +0200 Timo Sirainen (e2ce8d4a6) iostreams: Added close_parent flag to close() handler and clarified close/destroy APIs. This makes it unambiguous how things work: Unless you explicitly call [io]_stream_close(), the parent streams won't be closed. This is what most (hopefully all!) of the existing code expects. I was wondering a bit if [io]_stream_destroy() should simply have been removed and replaced with [io]_stream_unref() calls, since they would have worked basically everywhere, but there might be some places where it's better to have explicitly closed the stream (and where closing the parent stream doesn't matter). M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-zlib.c M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-zlib.c M src/lib-fs/ostream-cmp.c M src/lib-http/http-transfer-chunked.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib/iostream-private.h M src/lib/iostream-temp.c M src/lib/iostream.c M src/lib/istream-concat.c M src/lib/istream-file.c M src/lib/istream-mmap.c M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/istream.h M src/lib/ostream-file.c M src/lib/ostream-rawlog.c M src/lib/ostream.c M src/lib/ostream.h 2013-03-13 15:05:05 +0200 Timo Sirainen (8c30a8e50) lda, lmtp: postmaster_address = postmaster@%d works now. M doc/example-config/conf.d/15-lda.conf M src/lda/main.c M src/lib-lda/lda-settings.c M src/lmtp/commands.c 2013-03-11 17:25:46 +0200 Timo Sirainen (42d2fdfbe) lib-fs: Fixed fs_delete() API description. M src/lib-fs/fs-api.h 2013-03-11 14:44:48 +0200 Timo Sirainen (16d8e47d2) acl: Delay initializing default backend ACLs. This fixes a crash with LAYOUT=index. M src/plugins/acl/acl-backend.c 2013-03-10 20:52:10 +0200 Timo Sirainen (293b45b56) fts-solr: Removed unnecessary code. M src/plugins/fts-solr/solr-connection.c 2013-03-10 20:49:51 +0200 Timo Sirainen (ab4bd2aaf) lib-http: Don't crash if request callback manages to get the connection destroyed. M src/lib-http/http-client-connection.c 2013-03-10 20:38:35 +0200 Timo Sirainen (667de5cf2) lib-http: Added assert. M src/lib-http/http-client-request.c 2013-03-10 20:37:41 +0200 Timo Sirainen (6c768e0e1) lib-http: Callback can now request a retry with http_client_request_try_retry() This can be useful for handling "try again" errors from HTTP servers. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2013-03-10 20:34:49 +0200 Timo Sirainen (91547f294) lib-http: Removed unnecessary code from test-http-client M src/lib-http/test-http-client.c 2013-03-10 19:55:45 +0200 Timo Sirainen (d66ad8166) lib-http: Free peer if it can't be connected to and it has no pending requests. M src/lib-http/http-client-peer.c 2013-03-10 19:54:51 +0200 Timo Sirainen (4d4f0aca0) lib-http: If host can't be connected to, don't keep retrying with more than one connection. This also fixes infinitely trying to reconnect to host and retry. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2013-03-10 18:37:46 +0200 Timo Sirainen (a477aae12) lib-http: If SSL connection gets lost, log the last SSL error. M src/lib-http/http-client-connection.c 2013-03-10 18:37:10 +0200 Timo Sirainen (ceddfbe39) lib-ssl-iostream: Enable SSL_MODE_ENABLE_PARTIAL_WRITE M src/lib-ssl-iostream/iostream-openssl-context.c 2013-03-10 18:36:40 +0200 Timo Sirainen (b1faf5924) lib-ssl-iostream: Fixed "bad write retry" errors when output had to be buffered. M src/lib-ssl-iostream/ostream-openssl.c 2013-03-10 18:16:28 +0200 Timo Sirainen (6a9bd9f9e) iostream-rawlog: Pass through close() to parent input/output stream. M src/lib/istream-rawlog.c M src/lib/ostream-rawlog.c 2013-03-10 17:19:14 +0200 Timo Sirainen (296ad15cc) lib-http: Fixed hangs with urgent requests. M src/lib-http/http-client-connection.c M src/lib-http/http-client-peer.c 2013-03-10 17:17:47 +0200 Timo Sirainen (1d048c505) lib-http: Allow caller to find out what state a request is in. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2013-03-08 20:25:12 +0200 Timo Sirainen (dd61a7356) lib-http: Send Content-Length whenever payload is specified, even if its size is 0. M src/lib-http/http-client-request.c 2013-03-06 11:39:43 +0200 Timo Sirainen (2e5d4199a) Added ostream-hash for calculating a hash from data going through ostream. M src/lib/Makefile.am A src/lib/ostream-hash.c A src/lib/ostream-hash.h 2013-03-05 21:44:07 +0200 Timo Sirainen (92e011227) lib-http: Avoid hanging on urgent requests. Patch by Timo & Stephan. There are still some problems though, all urgent requests don't seem to get a new connection. M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h 2013-03-05 16:32:12 +0200 Timo Sirainen (f21b0af07) lib-http: Fixed crash caused by previous change. M src/lib-http/http-client-connection.c 2013-03-05 14:32:03 +0200 Timo Sirainen (99feb6521) lib-http: If we get disconnected, say exactly what the error was. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c 2013-03-05 14:31:43 +0200 Timo Sirainen (d48e40d6c) connection: Give input/output streams a name. M src/lib/connection.c 2013-03-05 14:31:29 +0200 Timo Sirainen (00b706a9e) connection_list_deinit(): Set disconnect_reason correctly to CONNECTION_DISCONNECT_DEINIT M src/lib/connection.c 2013-03-05 12:20:41 +0200 Timo Sirainen (dc189cb89) lib-fs: istream-metawrap supports now seeking before reading the metadata. M src/lib-fs/istream-metawrap.c 2013-03-05 11:45:26 +0200 Timo Sirainen (1a9a35a6b) lib-http: Fixed http_client_wait() assert. M src/lib-http/http-client.c 2013-03-05 11:45:10 +0200 Timo Sirainen (090489d44) Added io_loop_have_immediate_timeouts() M src/lib/ioloop.c M src/lib/ioloop.h 2013-03-05 11:24:46 +0200 Timo Sirainen (e1339aaa8) lib-http: If connection was refused to a host, retry again on next request. Instead of never retrying again for the host. M src/lib-http/http-client-host.c 2013-03-04 16:27:16 +0200 Timo Sirainen (1e83f6804) tcpwrap: Fixed crash at startup. M src/util/tcpwrap.c 2013-03-04 15:53:42 +0200 Timo Sirainen (dcf4259a9) dbox: Crashfix on some failed save error conditions. M src/lib-storage/index/dbox-common/dbox-save.c 2013-03-04 15:18:08 +0200 Timo Sirainen (e0bfe93a7) lib-settings: Improved error messages when config server disconnects too early. M src/lib-settings/settings-parser.c 2013-03-04 15:12:17 +0200 Timo Sirainen (8dc39d6dd) lib-storage: raw storage allows opening mails with absolute paths again. Fixed dovecot-lda -p parameter. M src/lib-storage/index/raw/raw-storage.c 2013-03-04 14:59:13 +0200 Timo Sirainen (be2d3565d) Fixed compiling without zlib. M src/doveadm/doveadm-zlib.c M src/lib-compression/compression.c 2013-02-27 18:00:29 +0200 Timo Sirainen (79a9e6bc5) doveadm: Fixed connecting to UNIX sockets. M src/doveadm/doveadm-util.c 2013-02-27 14:26:28 +0200 Timo Sirainen (3bbd5fd41) acl: Don't assert-crash on storages that have no root directory. M src/plugins/acl/acl-backend-vfile-acllist.c 2013-02-27 13:07:35 +0200 Timo Sirainen (3d92258c9) message-decode: Minor fix to previous change. The == condition should probably never happen, but handle it anyway. M src/lib-mail/message-decoder.c 2013-02-27 13:05:40 +0200 Timo Sirainen (2e0fa9578) message-decoder: Fixed assert-crash when trying to decode partial character twice. M src/lib-mail/message-decoder.c 2013-02-27 12:34:18 +0200 Timo Sirainen (4ddc84fac) timeout_add_short(1) may have caused infinite looping. M src/lib/ioloop.c 2013-02-27 12:34:00 +0200 Timo Sirainen (ea245d7a9) dsync: If I/O gets stalled, log the state in which it happened. M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-private.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-ibc.h 2013-02-27 12:07:06 +0200 Timo Sirainen (4697a4140) dsync: Fixed running dsync for multiple users within same command. M src/doveadm/dsync/doveadm-dsync.c 2013-02-27 12:00:03 +0200 Timo Sirainen (63420a1d2) dsync: When changing duplicate mailbox GUIDs, choose the same mailbox on both sides. M src/doveadm/dsync/dsync-mailbox-tree-fill.c 2013-02-27 11:47:08 +0200 Timo Sirainen (8af1efbc9) dsync: Don't unnecessarily try to create all the mailboxes when they already exist. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2013-02-27 11:21:48 +0200 Timo Sirainen (e3df4d906) dsync: Change duplicate local mailbox GUIDs if they're found. M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree.h M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c 2013-02-27 11:04:14 +0200 Timo Sirainen (0e9e7dcf1) dsync: Skip mailbox aliases (symlinks) for now. M src/doveadm/dsync/dsync-mailbox-tree-fill.c 2013-02-26 17:44:34 +0200 Timo Sirainen (494871887) lib-fs: If fs_read_stream() creates a seekable stream, keep it open for future reads. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2013-02-26 17:18:18 +0200 Timo Sirainen (c99c242ab) istream-seekable: Don't forcibly close underlying streams when stream is destroyed. The underlying streams may still have references and be reused for other purposes. M src/lib/istream-seekable.c 2013-02-26 17:16:33 +0200 Timo Sirainen (1ce834a53) istream-metawrap: Support seeking if underlying stream supports seeking M src/lib-fs/istream-metawrap.c 2013-02-26 17:16:18 +0200 Timo Sirainen (459b43463) fs-api: Fixed fs_copy() generic implementation's error messages M src/lib-fs/fs-api.c 2013-02-26 15:55:16 +0200 Timo Sirainen (9dc01e0d1) lib-http: Track peers using a linked list also. Mainly because this makes it much easier to debug using gdb. The overhead isn't that much extra either. M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c 2013-02-26 15:53:30 +0200 Timo Sirainen (141890ed1) lib-fs: fs-metawrap should prefetch using the same file as it uses for reading. M src/lib-fs/fs-metawrap.c 2013-02-26 13:04:50 +0200 Timo Sirainen (42174e523) lib-http: Assert-crash in http_client_wait() if it's waiting without doing anything. M src/lib-http/http-client.c 2013-02-26 13:04:09 +0200 Timo Sirainen (a4b14aa6a) Added io_loop_have_ios() M src/lib/ioloop.c M src/lib/ioloop.h 2013-02-26 13:03:30 +0200 Timo Sirainen (aacf2a69a) lib-http: Track list of hosts using a linked list also. http_client_switch_ioloop() is done very often, and scanning a few entries in a linked list is much faster than going through a hash table. M src/lib-http/http-client-host.c M src/lib-http/http-client-private.h M src/lib-http/http-client.c 2013-02-26 11:30:11 +0200 Timo Sirainen (a8dcdc2e5) lib-storage: Write dovecot.mailbox.log entries using virtual names, not storage names. This file is used only by dsync, and the new dsync design uses only virtual names everywhere. This of course means that now it's not easily possible to use different virtual names for the same user, but nobody really did that before anyway. The only other fully working solution would be to send both the virtual and the storage names in dsync, but that's a bit of a waste. M src/lib-storage/index/index-storage.c M src/lib-storage/mailbox-list.c 2013-02-26 10:54:09 +0200 Timo Sirainen (6a33ecc05) doveadm: Improved deciding whether to use TCP or UNIX socket for a given name. M src/doveadm/doveadm-util.c M src/doveadm/doveadm-util.h 2013-02-26 10:37:19 +0200 Timo Sirainen (f437d8fee) lib-storage: If namespace has disabled=yes, don't verify alias_for validity. M src/lib-storage/mail-storage-settings.c 2013-02-26 10:30:15 +0200 Timo Sirainen (b06633c63) lib-storage: Never auto-remove the auto-created prefix="" namespace. M src/lib-storage/mail-user.c 2013-02-26 09:05:09 +0200 Timo Sirainen (1b8220e41) scram-sha1: Support authzid field. Check fields' correctness better. M src/auth/mech-scram-sha1.c 2013-02-26 09:05:09 +0200 Timo Sirainen (f888f3029) scram-sha1: Support authzid field. Check fields' correctness better. M src/auth/mech-scram-sha1.c 2013-02-25 20:40:15 +0200 Timo Sirainen (d687a9146) Added signature for changeset e62fa121f4a2 M .hgsigs 2013-02-25 20:40:12 +0200 Timo Sirainen (0b04c1969) Added tag 2.2.rc2 for changeset e62fa121f4a2 M .hgtags 2013-02-25 20:40:09 +0200 Timo Sirainen (1653d12e3) Released v2.2.rc2. M NEWS M configure.ac 2013-02-25 20:20:18 +0200 Timo Sirainen (e27c71179) lib-storage: Still more fixing to listing subscriptions. M src/lib-storage/list/mailbox-list-subscriptions.c 2013-02-25 20:09:52 +0200 Timo Sirainen (e13060204) lib-storage: Fixed up previous subscription list change. M src/lib-storage/list/mailbox-list-subscriptions.c 2013-02-25 20:04:10 +0200 Timo Sirainen (8b5c52088) login: Don't fail at startup by trying to load SSL plugin. M src/lib-master/master-service.c M src/lib-master/master-service.h M src/login-common/main.c 2013-02-25 19:52:40 +0200 Timo Sirainen (a485cb146) lib-storage: Fixed listing subscriptions for namespaces with prefix. M src/lib-storage/list/mailbox-list-subscriptions.c 2013-02-25 19:37:53 +0200 Timo Sirainen (9bb59af42) configure: Fixed plugins when compiling --with-shared-libs M configure.ac 2013-02-25 17:33:16 +0200 Timo Sirainen (8bbd9bb4c) Added signature for changeset 508d46f85815 M .hgsigs 2013-02-25 17:33:13 +0200 Timo Sirainen (8212f944d) Added tag 2.2.rc1 for changeset 508d46f85815 M .hgtags 2013-02-25 17:33:02 +0200 Timo Sirainen (c03f054ea) Released v2.2.rc1. M NEWS M configure.ac 2013-02-25 17:29:28 +0200 Timo Sirainen (94b62bea1) Merged changes from v2.1 tree. 2013-02-25 17:25:10 +0200 Timo Sirainen (3e15508a1) TODO updated M TODO 2013-02-25 17:23:25 +0200 Timo Sirainen (a2667c4d6) Fixed checking UTF8 input validity. M src/lib/unichar.c 2013-02-25 17:23:25 +0200 Timo Sirainen (6db7f0b2f) Fixed checking UTF8 input validity. M src/lib/unichar.c 2013-02-25 17:07:55 +0200 Timo Sirainen (bad369077) dsync-server: Don't crash if connection didn't come from doveadm-server M src/doveadm/dsync/doveadm-dsync.c 2013-02-25 17:07:38 +0200 Timo Sirainen (7cd527fb7) dsync: Minor code cleanup. M src/doveadm/dsync/doveadm-dsync.c 2013-02-25 16:58:02 +0200 Timo Sirainen (c0ea3df79) dsync: Don't close stdin/stdout when not supposed to. M src/doveadm/dsync/doveadm-dsync.c 2013-02-25 16:44:57 +0200 Timo Sirainen (e0719fca1) maildir: Preserve [SW]=sizes when renaming a maildir duplicate file. M src/lib-storage/index/maildir/maildir-sync.c 2013-02-25 16:12:49 +0200 Timo Sirainen (e37aed073) Reverted the recent hash.h changes. Instead use -Wno-duplicate-decl-specifier with clang. The modified version required hash table users to know the structs' contents, which isn't otherwise necessary. M configure.ac M src/lib/hash-decl.h M src/lib/hash.h M src/lib/macros.h 2013-02-25 15:55:06 +0200 Timo Sirainen (8c5d1951a) dsync: Added tcps (TCP+SSL) target. M src/doveadm/doveadm-server.h M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/dsync/Makefile.am M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/server-connection.c M src/doveadm/server-connection.h 2013-02-25 15:54:01 +0200 Timo Sirainen (1172b6086) doveadm-server: Added support for ssl listeners. M src/doveadm/Makefile.am M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/main.c 2013-02-25 15:52:00 +0200 Timo Sirainen (8969b39bc) lib-storage: Replaced pop3c_ssl_ca_dir and imapc_ssl_ca_dir with generic ssl_client_ca_dir. M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-settings.h M src/lib-storage/index/pop3c/pop3c-storage.c 2013-02-25 15:51:16 +0200 Timo Sirainen (5a6343181) lib-master: If ssl settings are used, initialize ssl context automatically. M src/lib-master/master-service.c 2013-02-25 15:50:50 +0200 Timo Sirainen (08a8e9366) lib-ssl-iostream: Support wildcard certificates when verifying hostname. M src/lib-ssl-iostream/iostream-openssl-common.c 2013-02-25 14:00:10 +0200 Timo Sirainen (07ce366ac) dsync: Use iostreams instead of fd when receiving connection from doveadm-server. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/server-connection.c M src/doveadm/server-connection.h 2013-02-25 13:00:40 +0200 Timo Sirainen (7f50258fb) MODULE_LIBS is now part of LIBDOVECOT. No need to explicitly link it everywhere. M Makefile.am M configure.ac M dovecot-config.in.in M src/anvil/Makefile.am M src/auth/Makefile.am M src/config/Makefile.am M src/dict/Makefile.am M src/dns/Makefile.am M src/doveadm/Makefile.am M src/imap-urlauth/Makefile.am M src/imap/Makefile.am M src/indexer/Makefile.am M src/ipc/Makefile.am M src/lda/Makefile.am M src/lib-compression/Makefile.am M src/lib-sql/Makefile.am M src/lib-storage/Makefile.am M src/lmtp/Makefile.am M src/plugins/quota/Makefile.am M src/pop3/Makefile.am M src/replication/aggregator/Makefile.am M src/replication/replicator/Makefile.am M src/stats/Makefile.am M src/util/Makefile.am 2013-02-25 09:12:06 +0200 Timo Sirainen (1d58007c4) configure: Fix previous commit & implement AC_C_TYPEOF ourself. RHEL5's autoconf was old enough to not have AC_C_TYPEOF. M configure.ac 2013-02-25 09:07:13 +0200 Timo Sirainen (a55ac839a) configure: Removed accidentally enabled clang -fsanitize options for now. M configure.ac 2013-02-24 19:48:55 +0200 Timo Sirainen (916c2e0b9) imap: Handle UID commands without a wrapper UID command. This avoids calling command hooks once for UID command and again for the real command. M src/imap/Makefile.am D src/imap/cmd-uid.c M src/imap/imap-client.c M src/imap/imap-commands.c 2013-02-24 19:39:52 +0200 Timo Sirainen (0a9cb42cb) dsync: Added tcp:host[:port] target for syncing via doveadm-server. M src/doveadm/client-connection.c M src/doveadm/client-connection.h M src/doveadm/doveadm-mail.h M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/server-connection.c M src/doveadm/server-connection.h 2013-02-24 19:38:27 +0200 Timo Sirainen (10a245789) doveadm: If doveadm-server sends broken input, disconnect. M src/doveadm/server-connection.c 2013-02-24 19:37:45 +0200 Timo Sirainen (250a06cde) doveadm: When connecting to doveadm socket without :port, use doveadm_port setting. M src/doveadm/doveadm-util.c M src/doveadm/doveadm-util.h M src/doveadm/server-connection.c 2013-02-24 19:35:39 +0200 Timo Sirainen (1e09e0966) doveadm: Renamed doveadm_proxy_port setting to doveadm_port. There's still an alias for doveadm_proxy_port. M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h 2013-02-24 18:19:40 +0200 Timo Sirainen (2ba9851ab) lmtp: Log a bit nicer message when client QUITs. I did think about removing the connect and successful disconnect messages entirely, but these may be useful when debugging problems with MTA. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c 2013-02-24 18:02:25 +0200 Timo Sirainen (d707f37a0) dsync: Always skip alias namespaces. M src/doveadm/dsync/dsync-brain-mailbox-tree.c 2013-02-24 16:43:28 +0200 Timo Sirainen (4a3413190) lazy-expunge: If lazy_expunge_only_last_instance is set, copy only last instances of mails. Requires storage backend to support refcounts. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2013-02-24 16:33:24 +0200 Timo Sirainen (03de962fe) lib-storage: Added MAIL_FETCH_REFCOUNT for getting mail's reference count. This is useful only for backends where mailbox_copy() increases the refcount. With maildir&sdbox it can be looked up from the file's link count. With mdbox the refcount is stored in the map index. Other formats don't currently implement this. M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/mail-storage.h 2013-02-24 16:15:23 +0200 Timo Sirainen (edb47cfa7) lib-settings: Parse block names {} case-insensitively. This fixes namespace { mailbox foo { .. } } settings when they go through environment and get uppercased. M src/lib-settings/settings-parser.c 2013-02-24 16:02:47 +0200 Timo Sirainen (4f993cf1c) imap: Don't leak mailboxes on CATENATE errors. M src/imap/cmd-append.c 2013-02-24 15:52:57 +0200 Timo Sirainen (2926f11b0) lib-storage: Fixed setting \Recent flags for sessions that didn't drop them. If another session wasn't dropping the \Recent flags, no new mails were getting them unless the mailbox was reopened. M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c 2013-02-24 15:50:26 +0200 Timo Sirainen (d1661d953) lib-storage: Fixed \Recent flag race conditions. The \Recent flags should only be set while locked within mail_index_sync_begin()..commit(). The following view syncing syncs only up to how far the index was synced, so it won't see any new messages that haven't yet been assigned a \Recent flag. M src/lib-storage/index/index-status.c 2013-02-24 15:26:53 +0200 Timo Sirainen (3e3045fa0) Compiler warning fix. M src/lib-storage/index/index-mail.c 2013-02-24 15:02:44 +0200 Timo Sirainen (e0ec84491) o_stream_send_istream(): Fixed copying when [io]streams neither have usable fds. M src/lib/ostream-file.c 2013-02-24 15:00:13 +0200 Timo Sirainen (81152dfa8) Avoid unsigned integer overflows. M src/imap/imap-commands-util.c M src/lib-index/mail-index-util.c 2013-02-24 14:59:54 +0200 Timo Sirainen (a5799aa3f) imap: Added assert+comment to give easier to understand error. M src/imap/cmd-append.c 2013-02-24 14:58:32 +0200 Timo Sirainen (73960a174) lib-storage: If mail saving is cancelled, don't check that all the input was read. M src/lib-storage/index/index-mail.c 2013-02-24 11:58:46 +0200 Timo Sirainen (1384fac43) Avoid under/overflows in unsigned integer calculations. M src/lib/str-find.c M src/lib/test-bsearch-insert-pos.c M src/lib/time-util.c 2013-02-24 11:55:07 +0200 Timo Sirainen (a18e2525c) test-json-parser: Don't access memory out of bounds. M src/lib/test-json-parser.c 2013-02-24 11:54:00 +0200 Timo Sirainen (4082d5b17) seq_range_array_add(): Fixed handling sequence ranges that contain zeros. M src/lib/seq-range-array.c M src/lib/test-seq-range-array.c 2013-02-24 10:50:35 +0200 Timo Sirainen (dc21f1dd3) Avoid overflow error from clang -fsanitize=integer. M src/lib/istream-crlf.c 2013-02-24 10:49:38 +0200 Timo Sirainen (de7df9ed3) lib-index: Don't unnecessarily update dovecot.index again after log rotation. M src/lib-index/mail-index-sync.c 2013-02-24 09:16:31 +0200 Timo Sirainen (8ae72ad7d) Replaced all -1U and (unsigned int)-1 with UINT_MAX. It's somewhat clearer this way. Also clang's -fsanitize=integer gives runtime errors about -1U (but not about explicit casts, so no need to change (type)-1 casts). M configure.ac M src/anvil/anvil-settings.c M src/auth/db-ldap.c M src/config/doveconf.c M src/director/director-settings.c M src/director/doveadm-connection.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-stats.c M src/lib-auth/auth-master.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-http/http-client-peer.c M src/lib-imap/imap-envelope.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.h M src/lib-index/mail-index-map.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-file.c M src/lib-mail/test-message-address.c M src/lib-master/master-service.c M src/lib-settings/settings-parser.c M src/lib-sql/driver-sqlpool.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage.c M src/lib/istream-concat.c M src/lib/priorityq.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-base64.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-seq-range-array.c M src/lmtp/commands.c M src/log/log-settings.c M src/master/service-monitor.c M src/plugins/fts/fts-build-mail.c M src/plugins/quota/quota.c M src/replication/replicator/replicator-settings.c M src/stats/stats-settings.c 2013-02-24 08:58:03 +0200 Timo Sirainen (71fbc9af4) Compiler warning fix. M src/doveadm/doveadm-mail-fetch.c 2013-02-24 08:54:58 +0200 Timo Sirainen (71ad5d5d7) Previous "duplicate const" fix accidentally deleted some checking code instead of fixing it. M src/lib/hash.h 2013-02-24 08:46:28 +0200 Timo Sirainen (6d803d271) Fixed "duplicate const" warnings with new clang. M src/lib/hash-decl.h M src/lib/hash.h M src/lib/macros.h 2013-02-24 08:43:34 +0200 Timo Sirainen (025e4dfc2) Minor code cleanup M src/lib-storage/mail-search-register-human.c 2013-02-24 08:44:27 +0200 Timo Sirainen (d00f983f7) Use proper HAVE_TYPEOF check instead of checking with gcc versions. M configure.ac M src/lib/macros.h 2013-02-24 08:06:59 +0200 Timo Sirainen (cd62b9996) Compiler warning fix. M src/lib/test-json-parser.c 2013-02-24 08:06:51 +0200 Timo Sirainen (1f90fa699) dsync: Don't log about remote dsync status if we're not doing a remote sync. M src/doveadm/dsync/doveadm-dsync.c 2013-02-22 16:42:23 +0200 Timo Sirainen (6b754cb8e) auth_debug_passwords: Add a warning to AUTH/CONT lines about them having sensitive data. M src/auth/auth-client-connection.c 2013-02-22 16:21:20 +0200 Timo Sirainen (afb5de6ac) pop3: Fixed infinite looping M src/pop3/pop3-client.c M src/pop3/pop3-client.h 2013-02-22 16:03:00 +0200 Timo Sirainen (26ada766c) quota-fs: Support NetBSD 6.0 libquota. Patch by Emmanuel Dreyfus. M configure.ac M src/plugins/quota/Makefile.am M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-fs.h 2013-02-22 15:49:35 +0200 Timo Sirainen (2dadd5dac) lib-index: Fixed assert-crash on some error conditions. M src/lib-index/mail-transaction-log-file.c 2013-02-22 15:34:59 +0200 Timo Sirainen (e8c5da6c2) doveadm user: Write an error if user doesn't exist. M src/doveadm/doveadm-auth.c 2013-02-22 15:24:01 +0200 Timo Sirainen (4114cc5b5) doveconf: Discourage using plain "doveconf" by recommending -n parameter in the output. M src/config/doveconf.c 2013-02-22 15:14:19 +0200 Timo Sirainen (82f71aaa5) auth: userdb passwd iteration no longer skips shells. Some systems are using passwd for mail users with shell set to nologin. Maybe first_valid_uid check is good enough alone? M src/auth/userdb-passwd.c 2013-02-22 14:49:27 +0200 Timo Sirainen (5ad489577) fts-solr: Truncate header if it's over 1 MB. Previously we just warned about it. M src/plugins/fts-solr/fts-backend-solr.c 2013-02-22 13:51:02 +0200 Timo Sirainen (79b0f6ec3) lib-dict: Fixed hang if async commit's callback did more dict access. Specifically this fixes a hang with dict-quota plugin when user didn't exist and quota was changed before calculating it. M src/lib-dict/dict-client.c 2013-02-22 13:21:09 +0200 Timo Sirainen (3ad4568a3) mail_shared_explicit_inbox: Switched the default from "yes" to "no". M NEWS M doc/example-config/conf.d/10-mail.conf M src/lib-storage/mail-storage-settings.c 2013-02-22 13:05:21 +0200 Timo Sirainen (1df1abcfe) auth: Use real_lip for proxy_maybe checks. M src/auth/auth-request.c 2013-02-22 13:04:45 +0200 Timo Sirainen (325d17cdb) auth: Added real_[lr]ip, real_[lr]port variables. The unreal ones differ when a trusted proxy overrides them. M src/auth/auth-request.c M src/auth/auth-request.h M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/main.c M src/login-common/sasl-server.c 2013-02-22 12:42:26 +0200 Timo Sirainen (9508ac436) proxying cleanup: Send TTL=1 (instead of TTL=0) as "no more proxying". M src/imap-login/imap-proxy.c M src/lib-lda/lmtp-client.c M src/lib-lda/lmtp-client.h M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/login-common/login-proxy.c M src/pop3-login/pop3-proxy.c 2013-02-22 12:19:36 +0200 Timo Sirainen (2a43c6f09) lib-lda: Give a better error message if dotlocking duplicate db fails. M src/lib-lda/duplicate.c 2013-02-22 12:12:26 +0200 Timo Sirainen (9d12bcb79) dict-sql: Iterating with multiple SQL queries didn't free all the queries. M src/lib-dict/dict-sql.c 2013-02-22 10:42:40 +0200 Timo Sirainen (5cba8fd91) indexer-worker: Fixed keeping config connection open before dropping root privileges. The initial settings reading doesn't really do anything, since the real settings are again read by mail-storage-service. M src/indexer/indexer-worker.c 2013-02-22 10:32:05 +0200 Timo Sirainen (196124a73) lib-storage: Make sure mailbox_get_open_status() can't be used with items that can fail. M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2013-02-22 10:31:38 +0200 Timo Sirainen (c337f1e17) doveadm, indexer: Don't crash if STATUS_LAST_CACHED_SEQ lookup fails. (I'm sure I did this change already once, where did it go?..) M src/doveadm/doveadm-mail-index.c M src/indexer/master-connection.c 2013-03-24 12:09:39 +0200 Timo Sirainen (bdb026e2d) "Mailbox doesn't exist" error mixed up using storage and virtual mailbox names. This could have allowed a user to figure out existence of a mailbox without having lookup ACL. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mailbox-list-private.h M src/plugins/acl/acl-mailbox.c M src/plugins/virtual/virtual-config.c 2013-02-22 10:31:38 +0200 Timo Sirainen (7e7c61c70) doveadm, indexer: Don't crash if STATUS_LAST_CACHED_SEQ lookup fails. (I'm sure I did this change already once, where did it go?..) M src/doveadm/doveadm-mail-index.c M src/indexer/master-connection.c 2013-02-22 10:17:14 +0200 Timo Sirainen (e6231264b) fts: Don't send binary MIME parts to backend through UTF8 text conversion. Based on patch by Mike Abbott / Apple. M src/plugins/fts/fts-build-mail.c 2013-02-22 10:09:19 +0200 Timo Sirainen (cf4354e1b) lib-storage: Fixed assert-crash when saving mails if UIDs weren't assigned. M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2013-02-22 10:01:06 +0200 Timo Sirainen (2f705f3d2) mdbox: If m.X file has no mails, don't try to fix it infinitely in storage rebuild. M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.h M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c 2013-02-22 09:43:59 +0200 Timo Sirainen (2a3a06974) mdbox: Don't try to undelete any mailboxes in storage rebuild to avoid assert-crashes. M src/lib-storage/mail-storage.c 2013-02-22 07:37:18 +0200 Timo Sirainen (53febe023) quota-status: Fixed compiling with older autotools. M src/plugins/quota/Makefile.am 2013-02-21 19:58:39 +0200 Timo Sirainen (94cd1e3ed) imap: Allocate LIST patterns from command pool so they don't get corrupted in long runs. M src/imap/cmd-list.c 2013-02-21 19:30:38 +0200 Timo Sirainen (4d3b13986) mailbox_list_index=yes: Don't crash if destroying list before its init finished. M src/lib-storage/list/mailbox-list-index.c 2013-02-21 17:09:08 +0200 Timo Sirainen (ffa32909f) Added signature for changeset 018de2aa893a M .hgsigs 2013-02-21 17:09:02 +0200 Timo Sirainen (e87dcdb04) Added tag 2.2.beta2 for changeset 018de2aa893a M .hgtags 2013-02-21 17:07:55 +0200 Timo Sirainen (784762b5f) Released v2.2.beta1. M configure.ac 2013-02-21 17:06:27 +0200 Stephan Bosch (c367bee43) lib-http: Fixed hanging on errors M src/lib-http/http-client-connection.c 2013-02-21 14:16:45 +0200 Timo Sirainen (0f5bce930) Removed dead assignments. M src/lib-http/test-http-transfer.c M src/lib-storage/list/mailbox-list-fs-iter.c 2013-02-21 14:15:15 +0200 Timo Sirainen (99fedfc2a) dsync: Fixed hiding the "remote command returned error" message when it was unnecessary. M src/doveadm/dsync/doveadm-dsync.c 2013-02-21 13:27:42 +0200 Timo Sirainen (96f7cae32) quota-status: Fixed compiling M src/plugins/quota/Makefile.am 2013-02-21 13:22:33 +0200 Timo Sirainen (7bf25e7b9) TODO updated M TODO 2013-02-21 13:21:18 +0200 Timo Sirainen (09baabc97) Merged changes from v2.1 tree. 2013-02-21 10:23:08 +0200 Stephan Bosch (5b23fb78a) lib-http: Minor improvements. M src/lib-http/http-client-peer.c M src/lib-http/http-response-parser.c M src/lib-http/test-http-client.c 2013-02-21 10:21:31 +0200 Timo Sirainen (fb0259426) lib-http: Fixed hangs/crashes with chunked ostream. Based on patch by Stephan Bosch. M src/lib-http/http-client-request.c M src/lib-http/http-transfer-chunked.c 2013-02-21 07:55:24 +0200 Timo Sirainen (3a53aff14) Added quota plugin's headers to LIBDOVECOT_STORAGE_INCLUDE. This allows creating external plugins that depend on the quota plugin (similar to trash plugin). M dovecot-config.in.in M src/plugins/quota/Makefile.am 2013-02-21 06:22:40 +0200 Timo Sirainen (ab98519fd) lib-storage: Fixed crash with mailbox_list_index=no M src/lib-storage/list/mailbox-list-index.c 2013-02-20 19:34:51 +0200 Stephan Bosch (57e1401ef) lib-http: Fixed hang with failed DNS lookups M src/lib-http/http-client-host.c 2013-02-20 16:58:45 +0200 Timo Sirainen (7f5c66ef0) quota-status: Load plugins after all. They may be needed for user initialization to work (e.g. virtual plugin) or maybe even for quota itself to work (external quota backend plugin). M src/plugins/quota/Makefile.am M src/plugins/quota/quota-status.c 2013-02-20 16:49:14 +0200 Timo Sirainen (f6e11660a) mailbox_list_index: Delay allocating the index so mbox can override the index path. M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2013-02-20 16:03:53 +0200 Timo Sirainen (bd5825f08) mbox: Fixed mailbox_update() to not shrink uidnext. M src/lib-storage/index/mbox/mbox-sync.c 2013-02-20 15:56:56 +0200 Timo Sirainen (0e79d0c9a) acl: Skip ACLs if admin user flag is set (especially dsync). M src/plugins/acl/acl-api.c 2013-02-20 15:49:46 +0200 Timo Sirainen (6695fbfc4) acl: If copy() doesn't have enough permissions, free mail_save_context properly. M src/plugins/acl/acl-mailbox.c 2013-02-20 15:49:06 +0200 Timo Sirainen (f3d17e90d) lib-storage: Added more asserts to catch missing mail_save_context frees. Arguably mail_save_context could already freed at this time, but some other code relies on this as well. These could be removed later if this is no longer true. M src/lib-storage/mail-storage.c 2013-02-20 15:41:17 +0200 Timo Sirainen (3a34692ce) lib-storage: If mailbox is deleted, mailbox_save_begin() should cancel mail_save_context. M src/lib-storage/mail-storage.c 2013-02-20 15:40:16 +0200 Timo Sirainen (47eeadbfd) lib-storage: Reset saving/moving/copying_via_save flag between mail_save_context uses. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage.c 2013-02-20 12:24:36 +0200 Timo Sirainen (85b5b20e1) test-http-client: Added POST functionality also. M src/lib-http/test-http-client.c 2013-02-20 11:58:34 +0200 Timo Sirainen (fc3ac5b82) test-http-client: If given a parameter, GET it. M src/lib-http/test-http-client.c 2013-02-20 11:57:55 +0200 Timo Sirainen (fb1be3de0) lib-http: Avoid hanging in http_client_wait() while there's nothing to do. M src/lib-http/http-client-request.c M src/lib-http/http-client.c 2013-02-20 11:18:59 +0200 Timo Sirainen (069b28a2e) lib-http: Minor API change: Added http_client_request_finish_payload() M src/lib-http/http-client-request.c M src/lib-http/http-client.h M src/plugins/fts-solr/solr-connection.c 2013-02-20 10:58:02 +0200 Timo Sirainen (9edd88a9d) mailbox_list_index: Removed race conditions from index updates. M src/lib-storage/list/mailbox-list-index-status.c 2013-02-20 10:57:13 +0200 Timo Sirainen (a42fa06d6) lib-index: Added assert. M src/lib-index/mail-index-sync.c 2013-02-19 17:36:59 +0200 Timo Sirainen (c0699d9e0) Added quota-status service for asking if user is over quota. Implemented Postfix-compatible policy server protocol initially. Usage: service quota-status { executable = quota-status -p postfix unix_listener /var/spool/postfix/private/quota-status { user = postfix } client_limit = 1 } Postfix: smtpd_recipient_restrictions = ... check_policy_service unix:private/quota-status M .hgignore M src/plugins/quota/Makefile.am A src/plugins/quota/quota-status.c 2013-02-19 15:52:21 +0200 Timo Sirainen (90d105df6) hostpid_init() should die if hostname is invalid. This was accidentally changes during last commit. M src/lib/hostpid.c 2013-02-19 13:43:42 +0200 Timo Sirainen (1deffbbcd) lib-index: Give a better error message if index is readonly and log is tried to be locked. M src/lib-index/mail-transaction-log-file.c 2013-02-19 13:18:38 +0200 Timo Sirainen (68b968ad6) LAYOUT=index: Index is the only source for mailbox info, don't try any syncing with storage. M src/lib-storage/list/mailbox-list-index-backend.c 2013-02-19 13:17:42 +0200 Timo Sirainen (3a2f2adf5) lib-storage: Fixed mailbox_update() when using mailbox_list_index=yes M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2013-02-19 13:17:05 +0200 Timo Sirainen (40ac30b92) Added guid_128_equals() helper function. M src/lib/guid.c M src/lib/guid.h 2013-02-19 11:25:21 +0200 Timo Sirainen (241c0b8f9) auth: Fix to previous change. M src/auth/userdb-passwd-file.c 2013-02-19 11:22:57 +0200 Timo Sirainen (f003421d8) auth: userdb passwd-file iteration now skips passdb-only entries if there are other userdbs. M src/auth/userdb-passwd-file.c 2013-02-19 11:08:49 +0200 Timo Sirainen (d24f5d556) dsync: Added more debug logging. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c 2013-02-19 10:38:51 +0200 Timo Sirainen (953e717f0) auth: If user in passwd-file has no userdb info, userdb lookup now returns it as nonexistent. M src/auth/db-passwd-file.c M src/auth/userdb-passwd-file.c 2013-02-19 10:14:04 +0200 Timo Sirainen (9ed42a54b) dsync: Improved debug output. M src/doveadm/dsync/dsync-brain-mailbox.c 2013-02-19 09:45:12 +0200 Timo Sirainen (2e86ce023) dsync: Assert-crashfix for handling conflicting private flags. M src/doveadm/dsync/dsync-mailbox-import.c 2013-02-19 09:35:10 +0200 Timo Sirainen (9b47801c1) replicator plugin: And crashfix for the previous change.. M src/plugins/replication/replication-plugin.c 2013-02-19 09:32:11 +0200 Timo Sirainen (152a3748e) replication plugin: Notify replicator also for changes in public mailboxes. M src/plugins/replication/replication-plugin.c 2013-02-19 08:54:32 +0200 Timo Sirainen (ad5825438) lib-storage: Copy initial private message flags from shared flags for public mailboxes. M src/lib-storage/index/index-sync-pvt.c 2013-02-19 08:35:57 +0200 Timo Sirainen (4cb8546b3) replicator: Use -N parameter for dsync (replicate all visible namespaces). M src/replication/replicator/doveadm-connection.c 2013-02-19 08:35:23 +0200 Timo Sirainen (4fa4166f9) dsync: Renamed -a parameter to -N. It also now skips invisible namespaces. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c 2013-02-19 08:27:40 +0200 Timo Sirainen (e2d268e95) lib-storage: Saving/copying no longer discards private message flags. M src/lib-storage/index/index-sync-private.h M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/plugins/acl/acl-mailbox.c M src/plugins/virtual/virtual-save.c 2013-02-19 08:17:50 +0200 Timo Sirainen (ea26d341b) log: Recent log parser change started logging "Invalid log line" errors unintentionally. M src/log/log-connection.c 2013-02-18 15:14:05 +0200 Timo Sirainen (93ded1a45) log: Don't crash if log client sends line with pid=0. M src/log/log-connection.c 2013-02-18 15:12:26 +0200 Timo Sirainen (9c50c41ab) my_hostname was broken because of recent change. M src/lib/hostpid.c 2013-02-18 08:46:06 +0200 Timo Sirainen (6272a4aa4) doveconf: Added -H parameter to check for hostname hash duplicates. M src/config/doveconf.c 2013-02-18 08:45:54 +0200 Timo Sirainen (af49da69a) Added guid_128_host_hash_get(). M src/lib/guid.c M src/lib/guid.h 2013-02-18 07:20:03 +0200 Timo Sirainen (a8aec60b5) Master looks up system hostdomain now and sends it to child processes via environment. This avoids doing a gethostbyname() lookup at startup for each process that needs it. M src/lib/hostpid.c M src/lib/hostpid.h M src/master/service-process.c 2013-02-18 07:12:44 +0200 Timo Sirainen (16e1bc9ee) master: Don't close stderr. If log process fails at startup, the errors are logged there. M src/master/main.c 2013-02-18 06:49:57 +0200 Timo Sirainen (9e0a2abef) Free my_hostdomain at deinit. M src/lib/hostpid.c M src/lib/hostpid.h M src/lib/lib.c 2013-02-18 06:35:41 +0200 Timo Sirainen (45b9cabc8) example-config: Updated hostname setting's comments. M doc/example-config/conf.d/15-lda.conf 2013-02-18 06:31:51 +0200 Timo Sirainen (49985fd8b) dsync: Fix to checking which side should do the locking. M src/doveadm/dsync/dsync-brain.c 2013-02-17 12:03:06 +0200 Timo Sirainen (8e817ed80) mbox: If namespace prefix is used, don't show /inbox mailbox. M src/lib-storage/list/mailbox-list-fs-iter.c 2013-02-17 11:48:16 +0200 Timo Sirainen (8b3a4836d) dsync: Fixes to handling local changes during dsync. M src/doveadm/dsync/dsync-mailbox-import.c 2013-02-17 11:47:32 +0200 Timo Sirainen (9d8f243a8) dsync: Fail if changing mailbox GUID update doesn't work. M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c 2013-02-17 11:46:14 +0200 Timo Sirainen (f828be202) mbox: Fixed mailbox_update() for changing mailbox GUID. M src/lib-storage/index/mbox/mbox-storage.c 2013-02-17 10:47:40 +0200 Timo Sirainen (795aeec89) lib-index: Make sure unused_old_sync_* fields are cleared in header in old inedx files. M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index.h 2013-02-17 10:15:04 +0200 Timo Sirainen (add74aa76) dsync: Fixed infinite loop in importer. M src/doveadm/dsync/dsync-mailbox-import.c 2013-02-17 10:14:49 +0200 Timo Sirainen (9bbfe7f5f) dsync: Improved unexpected error logging. M src/doveadm/dsync/dsync-mailbox-import.c 2013-02-17 10:11:20 +0200 Timo Sirainen (20cf8d14f) maildir: Don't try to preserve old filename when saving if uidlist couldn't be locked. M src/lib-storage/index/maildir/maildir-save.c 2013-02-17 10:10:45 +0200 Timo Sirainen (6f1936d4f) maildir: If we see old maildir file reappear, re-read uidlist before logging error. Sometimes the old file gets added back intentionally and the dovecot-uidlist is recreated (if necessary) to give it a new UID. Existing processes should handle this situation. M src/lib-storage/index/maildir/maildir-uidlist.c 2013-02-17 08:50:18 +0200 Timo Sirainen (0cffbb35d) dsync: If locking fails, fail instead of continuing. M src/doveadm/dsync/dsync-brain.c 2013-02-17 07:05:08 +0200 Timo Sirainen (564aa838f) dsync: Use full hostname+domain when comparing if hosts are different in locking. M src/doveadm/dsync/dsync-brain.c 2013-02-16 19:06:18 +0200 Timo Sirainen (44aaf3059) login-common: Updated obsolete login_process_size setting in error log message. M src/login-common/ssl-proxy-openssl.c 2013-02-16 18:57:33 +0200 Timo Sirainen (c3fcfca0d) Merged changes from v2.1 tree. 2013-02-16 18:24:28 +0200 Timo Sirainen (4927162e7) NEWS file updated. M NEWS 2013-02-16 18:22:23 +0200 Timo Sirainen (99fca7344) pop3_lock_session: Use a separate dovecot-pop3-session.lock file instead of mailbox lock. This changes the behavior in a way that it's now possible for IMAP sessions to expunge mails during a POP3 session. But now it's no longer possible for POP3 sessions to hang new mail deliveries. M doc/example-config/conf.d/20-pop3.conf M src/pop3/pop3-client.c M src/pop3/pop3-client.h 2013-02-16 17:58:20 +0200 Timo Sirainen (279ac7e27) pop3: Minor code cleanup M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-client.h 2013-02-16 17:54:57 +0200 Timo Sirainen (348d89742) pop3: Use RFC 3206 [SYS/*] and [AUTH] response codes. M README M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/client.h M src/pop3/main.c M src/pop3/pop3-capability.h M src/pop3/pop3-client.c 2013-02-16 17:33:27 +0200 Timo Sirainen (7268a99fe) pop3: Code cleanup: INBOX always exists, no need to check for it here. M src/pop3/pop3-client.c 2013-02-16 17:17:14 +0200 Timo Sirainen (344217469) dsync: Merge last-common-* values from both local and remote when they differ. M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox-state.h 2013-02-16 16:47:40 +0200 Timo Sirainen (0e03baa88) dsync: -l parameter locking is now done on the server with "lower" hostname. This allows running multi-master replication on two servers without two dsyncs mixing up changes by running at the same time. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h 2013-02-16 16:45:47 +0200 Timo Sirainen (264c6bd26) dsync: If unexpected changes happen during sync, return a safe last-common-uid for state. M src/doveadm/dsync/dsync-mailbox-import.c 2013-02-16 16:44:13 +0200 Timo Sirainen (54b50eb56) dsync: Don't hide the final error messages from remote. M src/doveadm/dsync/doveadm-dsync.c 2013-02-16 14:51:50 +0200 Timo Sirainen (c3aebe3bd) dsync: Fixed last-common-uid lookup when local UID was expunged but remote wasn't. M src/doveadm/dsync/dsync-mailbox-import.c 2013-02-16 14:09:42 +0200 Timo Sirainen (fadb1a39a) dsync: Assert-crashfix for previous importer changes. M src/doveadm/dsync/dsync-mailbox-import.c 2013-02-16 13:58:14 +0200 Timo Sirainen (03860f6dd) lib-index: Avoid getting expunged-status in index lookups when not necessary. This especially improves dsync performance. M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-transaction.c 2013-02-16 13:51:05 +0200 Timo Sirainen (03010dbaa) mdbox, mbox, virtual: Avoid getting expunged-status in index lookups when not necessary. This especially improves dsync performance with mdbox. M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-sync.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-sync.c 2013-02-16 13:38:10 +0200 Timo Sirainen (e49e973f3) lib-index: Don't lookup mail's expunge-state in transaction log view if caller doesn't care. This was especially bad with dsync, which could trigger sorting of the expunges array each time after processing a mail (= potentially tens of thousands of sorts). M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-view.c 2013-02-16 13:34:13 +0200 Timo Sirainen (b09eaeb9a) lib-storage: Assert-crash if mailbox_save_context isn't properly freed before reusing. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2013-02-16 13:32:57 +0200 Timo Sirainen (385b27ed5) mdbox: mailbox_copy() didn't properly free the save context. M src/lib-storage/index/dbox-multi/mdbox-save.c 2013-02-16 13:32:57 +0200 Timo Sirainen (08df28a63) mdbox: mailbox_copy() didn't properly free the save context. M src/lib-storage/index/dbox-multi/mdbox-save.c 2013-02-16 13:31:37 +0200 Timo Sirainen (0c47c2096) dsync: Various importer fixes. M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2013-02-16 08:09:41 +0200 Timo Sirainen (0b39c7b1c) fts-solr: Don't assert-crash on failures. M src/plugins/fts-solr/solr-connection.c 2013-02-16 08:01:10 +0200 Timo Sirainen (d52f5dcb0) dsync: Avoid possibly long function recursion. M src/doveadm/dsync/dsync-mailbox-import.c 2013-02-16 08:00:51 +0200 Timo Sirainen (ba9835008) dsync: Don't log "remote failed with 75" if we already logged an error from remote. This reduces number of log lines when dsync fails. M src/doveadm/dsync/doveadm-dsync.c 2013-02-16 07:59:44 +0200 Timo Sirainen (d42cfc2e0) dsync: Don't log a redundant "importing mailbox failed" error. M src/doveadm/dsync/dsync-brain-mails.c 2013-02-16 07:53:17 +0200 Timo Sirainen (7a6136f81) dsync: Don't log read() failed: EOF when remote intentionally fails early. M src/doveadm/dsync/dsync-ibc-stream.c 2013-02-16 07:15:55 +0200 Timo Sirainen (d9b9687bf) dsync: Various importer fixes. Handle unexpectedly wrong mailbox state better. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2013-02-16 07:12:18 +0200 Timo Sirainen (1bf8e5a22) dsync: Wait for child process to close only after closing the stdin/out/err to it. Otherwise the ssh process doesn't shutdown. M src/doveadm/dsync/doveadm-dsync.c 2013-02-13 12:43:34 +0200 Timo Sirainen (26b996251) fs layout: Don't assert-crash if namespace prefix begins with the separator. M src/lib-storage/list/mailbox-list-fs-iter.c 2013-02-13 11:27:32 +0100 Timo Sirainen (50ecf6599) Renamed quota_last_extra to quota_grace. M NEWS M doc/example-config/conf.d/90-quota.conf M src/plugins/quota/quota.c 2013-02-13 12:22:22 +0200 Timo Sirainen (ac1c78cce) auth: When receiving SIGUSR2 log also about current cache usage. M src/auth/auth-cache.c 2013-02-11 03:13:45 +0200 Timo Sirainen (57c78fc3f) NEWS, example-config: Add a note about quota_last_extra M NEWS M doc/example-config/conf.d/90-quota.conf 2013-02-11 03:07:24 +0200 Timo Sirainen (a2f5f69de) quota: Use quota_last_extra only for LDA/LMTP (not for IMAP). M src/plugins/quota/quota.c 2013-02-11 03:03:12 +0200 Timo Sirainen (342a5014a) lib-lda: Assert-crashfix when sending a rejection mail failed. M src/lib-lda/smtp-client.c 2013-02-11 03:02:49 +0200 Timo Sirainen (bc7a4cf2c) quota: Added quota_last_extra setting, which defaults to 10% This can be used to save the last message when user is almost over quota. So by default the last message can bring the quota over 10% of the total quota limit. The setting allows also explicit values. Setting it to 0 brings it back to previous behavior. M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2013-02-11 02:03:43 +0200 Timo Sirainen (7b9197b91) lib-imap-urlauth: Use MAILBOX_ATTRIBUTE_PREFIX_DOVECOT for the imap-urlauth key. M src/lib-imap-urlauth/imap-urlauth-backend.c 2013-02-11 02:03:13 +0200 Timo Sirainen (440b8b666) lib-storage: Added MAILBOX_ATTRIBUTE_DOVECOT_PREFIX macro. M src/lib-storage/mail-storage.h 2013-02-11 01:43:25 +0200 Stephan Bosch (2d7df7973) fts-solr: Use built-in lib-http instead of libcurl. Removed libcurl dependency. M configure.ac M src/plugins/fts-solr/Makefile.am M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-solr/solr-connection.h 2013-02-11 01:22:51 +0200 Timo Sirainen (8576eb5ab) dsync: Minor fix to deciding when to use GUIDs vs. header hashes. M src/doveadm/dsync/dsync-mailbox-import.c 2013-02-11 01:10:57 +0200 Timo Sirainen (975a784c2) dsync: Fixes for syncing without GUIDs. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2013-02-11 01:07:53 +0200 Timo Sirainen (ccaaf1874) dsync: When doing a header-based sync, convert all linefeeds to LFs. Fixes syncing where one side used CRLFs and the other side used LFs. M src/doveadm/dsync/dsync-mail.c 2013-02-11 00:29:40 +0200 Timo Sirainen (30c795b3e) i_stream_sync() for file should reset eof flag immediately. M src/lib/istream-file.c 2013-02-11 00:28:28 +0200 Timo Sirainen (979d89c14) dsync: Automatically figure out which mailboxes can sync with message GUIDs. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mailbox.h 2013-02-11 00:26:15 +0200 Timo Sirainen (8b31f966d) lib-storage: Added mailbox_status.have_guids flag M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2013-02-11 00:25:29 +0200 Timo Sirainen (fee8ee58c) lib-storage: Minor code cleanup M src/lib-storage/fail-mailbox.c 2013-02-11 00:24:56 +0200 Timo Sirainen (f0efc5a8e) lib-storage: Don't unnecessarily clear mailbox_status multiple times. M src/lib-storage/fail-mailbox.c M src/lib-storage/index/index-status.c M src/lib-storage/list/mailbox-list-index-status.c 2013-02-11 00:23:07 +0200 Timo Sirainen (458e154eb) lib-storage: mailbox_status.nonpermanent_modseqs is now only set with STATUS_HIGHESTMODSEQ M src/lib-storage/index/index-status.c 2013-02-10 23:27:49 +0200 Timo Sirainen (271ba0b2a) dsync: When looking up header hashes, use only Date: and Message-Id: headers This makes it more efficient, at least in future when imapc backend optimizes this. M src/doveadm/dsync/dsync-mail.c 2013-02-10 23:11:52 +0200 Timo Sirainen (887a9fbbb) dsync: Renamed "guid_requests" to "mail_requests" The mails aren't necessarily requested by their GUID. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c 2013-02-10 23:09:55 +0200 Timo Sirainen (c267b5244) dsync: Removed unused DSYNC_MAILBOX_IMPORT_FLAG_MAILS_HAVE_GUIDS flag. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2013-02-10 23:05:46 +0200 Timo Sirainen (266fdb27c) dsync: Fixed mailbox tree sync with some backends (imapc) M src/doveadm/dsync/dsync-mailbox-tree-fill.c 2013-02-08 16:42:21 +0200 Timo Sirainen (183aac2ac) mdbox: Crashfix for storage rebuild M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2013-02-08 15:05:40 +0200 Timo Sirainen (9aac33083) Added signature for changeset fc75811f3c08 M .hgsigs 2013-02-08 15:05:37 +0200 Timo Sirainen (154dd25b4) Added tag 2.1.15 for changeset fc75811f3c08 M .hgtags 2013-02-08 15:05:36 +0200 Timo Sirainen (b2aa4eabd) Released v2.1.15. M NEWS M configure.in 2013-02-06 19:00:52 +0200 Timo Sirainen (386fe825a) lib-storage: Convert INBOX to uppercase also when namespace has inbox=no. This fixes assert-crash in mailbox_check_mismatching_separators(). M src/lib-storage/mail-storage.c 2013-02-06 18:29:22 +0200 Timo Sirainen (4f7fea346) lib-index: Avoid assert-crashing later if mmap(dovecot.index.cache) fails. M src/lib-index/mail-cache.c 2013-02-05 16:48:29 +0200 Timo Sirainen (30fc0b14f) lmtp: If verbose_proctitle=yes, update the process state in the title. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c 2013-02-05 03:53:40 +0200 Timo Sirainen (9c32eb25e) lib-storage: Changed mailbox_attribute_get() to return a struct for value. This allows returning flags for the values in future. Mainly readonly-flag for internal attributes and when restricted by ACL plugin. M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-storage.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2013-02-05 03:37:47 +0200 Timo Sirainen (d11111fc5) lib-fs: Changed FS_OPEN_FLAG_UNIMPORTANT to a reversed FS_OPEN_FLAG_FSYNC. This explains its behavior better. M src/lib-fs/fs-api.h M src/lib-fs/fs-posix.c M src/lib-storage/index/index-attachment.c 2013-02-05 03:30:01 +0200 Timo Sirainen (6772f52a7) fs-metawrap: Don't duplicate work if fs_get_metadata() is called multiple times. M src/lib-fs/fs-metawrap.c M src/lib-fs/istream-metawrap.c 2013-02-05 03:24:45 +0200 Timo Sirainen (a4d796994) cydir, dbox, maildir: Don't leak the stream if mail.istream_opened() fails M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/maildir/maildir-mail.c 2013-02-05 03:23:59 +0200 Timo Sirainen (67641f44b) lib-index: Memory leak fix M src/lib-index/mail-index-transaction-update.c M src/lib-index/test-mail-index-transaction-update.c 2013-02-05 03:23:46 +0200 Timo Sirainen (0e6e2c5ca) fs-metawrap: Memory leak fixes M src/lib-fs/fs-metawrap.c 2013-02-05 03:23:30 +0200 Timo Sirainen (ef064b29e) lib-fs: Avoid memory leaks if file was closed before fs_read()/fs_copy() was finished. M src/lib-fs/fs-api.c 2013-02-05 01:16:48 +0200 Timo Sirainen (26aa7d1e6) fs-metawrap: Set underlying file async only for fs_read_stream() lookups. M src/lib-fs/fs-metawrap.c 2013-02-04 22:15:59 +0200 Timo Sirainen (c096257fb) iostream-temp: Set a name for the returned istream. M src/lib/iostream-temp.c 2013-02-04 22:07:14 +0200 Timo Sirainen (4521d35c2) lib-http: If http_client_request_set_payload() fails to get stream size, log an error. M src/lib-http/http-client-request.c 2013-02-04 22:03:10 +0200 Timo Sirainen (e44028b5d) iostream-temp: Don't try to dup() the stream fd if it's already closed. M src/lib/iostream-temp.c 2013-02-04 22:02:42 +0200 Timo Sirainen (deed04418) fs-metawrap: Delay writing the metadata headers until first data is written. Also some other read/write fixes. M src/lib-fs/Makefile.am M src/lib-fs/fs-metawrap.c A src/lib-fs/ostream-metawrap.c A src/lib-fs/ostream-metawrap.h 2013-02-04 20:18:22 +0200 Timo Sirainen (a06af8e11) lib-fs: Added FS_OPEN_FLAG_SEEKABLE. Globally handle fs_read_stream() seekability and waits. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-metawrap.c 2013-02-04 20:17:14 +0200 Timo Sirainen (05d80389f) fs-metawrap: Fixed stat() to work when parent file's input stream didn't have a parent. M src/lib-fs/fs-metawrap.c 2013-02-04 20:15:32 +0200 Timo Sirainen (5ca073841) fs-metawrap: Error handling fixes M src/lib-fs/fs-metawrap.c 2013-02-04 20:14:16 +0200 Timo Sirainen (b2c16f3a5) i_stream_create(): Copy stream_errno/eof immediately from the parent stream. This makes wrapper istream behavior more reliable when the original istream is an istream-error. M src/lib/istream.c 2013-02-04 20:13:26 +0200 Timo Sirainen (d5b3f6649) istream: Fail in the default stat() implementation if stream_errno is set. M src/lib/istream.c 2013-02-04 20:12:10 +0200 Timo Sirainen (2a8b89136) istream-seekable: Fail stat() if stream_errno is set. M src/lib/istream-seekable.c 2013-02-04 20:10:59 +0200 Timo Sirainen (4124bebe6) lib-http: Added http_client_request_set_destroy_callback() This is useful for io_remove()ing the payload stream's fd at the right time. M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.h 2013-02-04 18:17:21 +0200 Timo Sirainen (c91129740) lib-http: Added http_url_escape_param() M src/lib-http/http-url.c M src/lib-http/http-url.h 2013-02-04 17:06:40 +0200 Timo Sirainen (97144a346) lib-index: Bug in cache file size verification caused the whole cache file to be mapped. M src/lib-index/mail-cache.c 2013-02-04 16:10:50 +0200 Timo Sirainen (722a8fc90) lib-storage: If message parser's input stream is closed early, don't treat it as error. This seems to happen sometimes during message saving(?), although I'm not exactly sure why. In any case it shouldn't log an error about it. This behavior is probably better than failing. The caller should be the one to figure out if saving has failed or not. M src/lib-storage/index/index-mail.c 2013-02-04 16:03:54 +0200 Timo Sirainen (e41e4ac64) imap: Set [io]stream name for imap client connections. M src/imap/imap-client.c 2013-02-04 15:59:50 +0200 Timo Sirainen (d3e02d997) istream-tee: Copy the parent stream's name to child streams. M src/lib/istream-tee.c 2013-02-04 15:59:12 +0200 Timo Sirainen (8f28cbec7) i_stream_close(): Set stream_errno to EPIPE instead of ENOENT. M src/lib/istream.c 2013-02-03 21:53:24 +0200 Timo Sirainen (baf346e71) iostream-temp: Avoid copying data if IOSTREAM_TEMP_FLAG_TRY_FD_DUP is set. M src/lib/iostream-temp.c M src/lib/iostream-temp.h 2013-02-03 21:52:48 +0200 Timo Sirainen (d14e62b7b) i_stream_create_error() should have set eof=TRUE immediately. M src/lib/istream.c 2013-02-03 21:52:19 +0200 Timo Sirainen (f6754d90e) lib-fs: fs_write_stream_finish(file, NULL) is now alias to fs_write_stream_finish_async(file) This makes wrapper implementations easier. M src/lib-fs/fs-api.c 2013-02-03 21:51:40 +0200 Timo Sirainen (1c9cfe77c) lib-fs: fs-posix now allows reading from the same file that was created. M src/lib-fs/fs-posix.c 2013-02-03 21:48:58 +0200 Timo Sirainen (0e1b468a7) lib-fs: istream-metawrap is a bit more flexible now, allowing stat()ing and reading from fd M src/lib-fs/istream-metawrap.c 2013-02-02 22:21:36 +0200 Timo Sirainen (5b7cf8d96) fts-solr: Compile warning fix M src/plugins/fts-solr/fts-solr-plugin.c 2013-02-02 17:02:55 +0200 Timo Sirainen (5a580c3a3) Oops :) Update copyrights to 2013 without breaking all .c files. M src/anvil/anvil-connection.c M src/anvil/anvil-settings.c M src/anvil/connect-limit.c M src/anvil/main.c M src/anvil/penalty.c M src/anvil/test-penalty.c M src/auth/auth-cache.c M src/auth/auth-client-connection.c M src/auth/auth-fields.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-token.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-checkpassword.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-dovecot-token.c M src/auth/mech-external.c M src/auth/mech-plain.c M src/auth/mech.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-dict.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-template.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c M src/auth/test-auth-cache.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-template.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/config-settings.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-settings.c M src/dict/main.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-request.c M src/director/director-settings.c M src/director/director-test.c M src/director/director.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/main.c M src/director/notify-connection.c M src/director/test-user-directory.c M src/director/user-directory.c M src/dns/dns-client-settings.c M src/dns/dns-client.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-mount.c M src/doveadm/doveadm-mutf7.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-pw.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-zlib.c M src/doveadm/doveadm.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-deserializer.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-state.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-serializer.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/imap-login/client-authenticate.c M src/imap-login/client.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-proxy.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-login-settings.c M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-append.c M src/imap/cmd-cancelupdate.c M src/imap/cmd-capability.c M src/imap/cmd-check.c M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-enable.c M src/imap/cmd-examine.c M src/imap/cmd-expunge.c M src/imap/cmd-fetch.c M src/imap/cmd-genurlauth.c M src/imap/cmd-id.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-logout.c M src/imap/cmd-lsub.c M src/imap/cmd-namespace.c M src/imap/cmd-noop.c M src/imap/cmd-notify.c M src/imap/cmd-rename.c M src/imap/cmd-resetkey.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-sort.c M src/imap/cmd-status.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/cmd-uid.c M src/imap/cmd-unselect.c M src/imap/cmd-unsubscribe.c M src/imap/cmd-urlfetch.c M src/imap/cmd-x-cancel.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-list.c M src/imap/imap-notify.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/imap/main.c M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-settings.c M src/indexer/indexer-worker-settings.c M src/indexer/indexer-worker.c M src/indexer/indexer.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/indexer/worker-pool.c M src/ipc/client.c M src/ipc/ipc-connection.c M src/ipc/ipc-group.c M src/ipc/ipc-settings.c M src/ipc/main.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-compression/compression.c M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-zlib.c M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-zlib.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-dict/dict-transaction-memory.c M src/lib-dict/dict.c M src/lib-dict/test-dict.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-api.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-test.c M src/lib-fs/istream-metawrap.c M src/lib-fs/ostream-cmp.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-date.c M src/lib-http/http-header-parser.c M src/lib-http/http-parser.c M src/lib-http/http-response-parser.c M src/lib-http/http-transfer-chunked.c M src/lib-http/http-url.c M src/lib-http/test-http-client.c M src/lib-http/test-http-date.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-transfer.c M src/lib-http/test-http-url.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-msgmap.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap/imap-arg.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-seqset.c M src/lib-imap/imap-url.c M src/lib-imap/imap-utf7.c M src/lib-imap/imap-util.c M src/lib-imap/test-imap-bodystructure.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-url.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-dummy-view.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/duplicate.c M src/lib-lda/lda-settings.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-mail/istream-attachment-connector.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-nonuls.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/mail-user-hash.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-binary-part.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-search.c M src/lib-mail/message-size.c M src/lib-mail/quoted-printable.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-istream-binary-converter.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-auth.c M src/lib-master/master-instance.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl.c M src/lib-master/master-service.c M src/lib-master/mountpoint-list.c M src/lib-master/syslog-util.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-sql/sql-db-cache.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl-none.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-storage/fail-mail-storage.c M src/lib-storage/fail-mail.c M src/lib-storage/fail-mailbox.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-check.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-md5-all.c M src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync-update.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-notify-tree.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-error.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-parser-cmdline.c M src/lib-storage/mail-search-parser-imap.c M src/lib-storage/mail-search-parser.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-thread.c M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-header.c M src/lib-storage/mailbox-keywords.c M src/lib-storage/mailbox-list-notify.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-search-result.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/test-mailbox-get.c M src/lib-test/test-common.c M src/lib/abspath.c M src/lib/aqueue.c M src/lib/array.c M src/lib/askpass.c M src/lib/backtrace-string.c M src/lib/base64.c M src/lib/bsearch-insert-pos.c M src/lib/buffer.c M src/lib/child-wait.c M src/lib/compat.c M src/lib/connection.c M src/lib/crc32.c M src/lib/data-stack.c M src/lib/eacces-error.c M src/lib/env-util.c M src/lib/execv-const.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/fd-set-nonblock.c M src/lib/fdatasync-path.c M src/lib/fdpass.c M src/lib/file-cache.c M src/lib/file-copy.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/guid.c M src/lib/hash-format.c M src/lib/hash-method.c M src/lib/hash.c M src/lib/hash2.c M src/lib/hex-binary.c M src/lib/hex-dec.c M src/lib/home-expand.c M src/lib/hostpid.c M src/lib/imem.c M src/lib/ioloop-epoll.c M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/iostream-rawlog.c M src/lib/iostream-temp.c M src/lib/iostream.c M src/lib/iso8601-date.c M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-file.c M src/lib/istream-jsonstr.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/json-parser.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mkdir-parents.c M src/lib/mmap-anon.c M src/lib/mmap-util.c M src/lib/module-dir.c M src/lib/mountpoint.c M src/lib/net.c M src/lib/nfs-workarounds.c M src/lib/numpack.c M src/lib/ostream-buffer.c M src/lib/ostream-file.c M src/lib/ostream-rawlog.c M src/lib/ostream.c M src/lib/primes.c M src/lib/printf-format-fix.c M src/lib/priorityq.c M src/lib/process-title.c M src/lib/randgen.c M src/lib/read-full.c M src/lib/restrict-access.c M src/lib/restrict-process-size.c M src/lib/safe-memset.c M src/lib/safe-mkdir.c M src/lib/safe-mkstemp.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str.c M src/lib/strescape.c M src/lib/strfuncs.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/test-base64.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-buffer.c M src/lib/test-crc32.c M src/lib/test-hash-format.c M src/lib/test-hex-binary.c M src/lib/test-iso8601-date.c M src/lib/test-istream-base64-decoder.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-json-parser.c M src/lib/test-lib.c M src/lib/test-llist.c M src/lib/test-mempool-alloconly.c M src/lib/test-network.c M src/lib/test-numpack.c M src/lib/test-ostream-file.c M src/lib/test-primes.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-str-find.c M src/lib/test-str-sanitize.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-time-util.c M src/lib/test-unichar.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/time-util.c M src/lib/unichar.c M src/lib/unix-socket-create.c M src/lib/unlink-directory.c M src/lib/unlink-old-files.c M src/lib/uri-util.c M src/lib/utc-mktime.c M src/lib/utc-offset.c M src/lib/var-expand.c M src/lib/write-full.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c M src/log/doveadm-connection.c M src/log/log-connection.c M src/log/log-error-buffer.c M src/log/log-settings.c M src/log/main.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/master/capabilities-posix.c M src/master/dup2-array.c M src/master/main.c M src/master/master-settings.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/master/service-process.c M src/master/service.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c M src/plugins/acl/doveadm-acl.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search-serialize.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/xml2text.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/mailbox-alias/mailbox-alias-plugin.c M src/plugins/notify/notify-plugin.c M src/plugins/notify/notify-storage.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/replication/replication-plugin.c M src/plugins/snarf/snarf-plugin.c M src/plugins/stats/stats-connection.c M src/plugins/stats/stats-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/pop3-login-settings.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/replication/aggregator/aggregator-settings.c M src/replication/aggregator/aggregator.c M src/replication/aggregator/notify-connection.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/notify-connection.c M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-settings.c M src/replication/replicator/replicator.c M src/ssl-params/main.c M src/ssl-params/ssl-params-openssl.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params.c M src/stats/client-export.c M src/stats/client.c M src/stats/global-memory.c M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-server-connection.c M src/stats/mail-session.c M src/stats/mail-stats.c M src/stats/mail-user.c M src/stats/main.c M src/stats/stats-settings.c M src/util/gdbhelper.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap-settings.c M src/util/tcpwrap.c 2013-02-02 17:01:07 +0200 Timo Sirainen (cca4ba2a5) Updated copyright notices to include year 2013. M src/anvil/anvil-connection.c M src/anvil/anvil-settings.c M src/anvil/connect-limit.c M src/anvil/main.c M src/anvil/penalty.c M src/anvil/test-penalty.c M src/auth/auth-cache.c M src/auth/auth-client-connection.c M src/auth/auth-fields.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-token.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-checkpassword.c M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-dovecot-token.c M src/auth/mech-external.c M src/auth/mech-plain.c M src/auth/mech.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-dict.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-template.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c M src/auth/test-auth-cache.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-dict.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-template.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/config-settings.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-settings.c M src/dict/main.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-request.c M src/director/director-settings.c M src/director/director-test.c M src/director/director.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/main.c M src/director/notify-connection.c M src/director/test-user-directory.c M src/director/user-directory.c M src/dns/dns-client-settings.c M src/dns/dns-client.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-mount.c M src/doveadm/doveadm-mutf7.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-pw.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-zlib.c M src/doveadm/doveadm.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-deserializer.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-state.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-serializer.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/imap-login/client-authenticate.c M src/imap-login/client.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-proxy.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-login-settings.c M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap-urlauth/imap-urlauth.c M src/imap/cmd-append.c M src/imap/cmd-cancelupdate.c M src/imap/cmd-capability.c M src/imap/cmd-check.c M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-enable.c M src/imap/cmd-examine.c M src/imap/cmd-expunge.c M src/imap/cmd-fetch.c M src/imap/cmd-genurlauth.c M src/imap/cmd-id.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-logout.c M src/imap/cmd-lsub.c M src/imap/cmd-namespace.c M src/imap/cmd-noop.c M src/imap/cmd-notify.c M src/imap/cmd-rename.c M src/imap/cmd-resetkey.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-sort.c M src/imap/cmd-status.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/cmd-uid.c M src/imap/cmd-unselect.c M src/imap/cmd-unsubscribe.c M src/imap/cmd-urlfetch.c M src/imap/cmd-x-cancel.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-list.c M src/imap/imap-notify.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/imap/main.c M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-settings.c M src/indexer/indexer-worker-settings.c M src/indexer/indexer-worker.c M src/indexer/indexer.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/indexer/worker-pool.c M src/ipc/client.c M src/ipc/ipc-connection.c M src/ipc/ipc-group.c M src/ipc/ipc-settings.c M src/ipc/main.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-compression/compression.c M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-zlib.c M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-zlib.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-dict/dict-transaction-memory.c M src/lib-dict/dict.c M src/lib-dict/test-dict.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-api.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-test.c M src/lib-fs/istream-metawrap.c M src/lib-fs/ostream-cmp.c M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-date.c M src/lib-http/http-header-parser.c M src/lib-http/http-parser.c M src/lib-http/http-response-parser.c M src/lib-http/http-transfer-chunked.c M src/lib-http/http-url.c M src/lib-http/test-http-client.c M src/lib-http/test-http-date.c M src/lib-http/test-http-header-parser.c M src/lib-http/test-http-response-parser.c M src/lib-http/test-http-transfer.c M src/lib-http/test-http-url.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-msgmap.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap/imap-arg.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-seqset.c M src/lib-imap/imap-url.c M src/lib-imap/imap-utf7.c M src/lib-imap/imap-util.c M src/lib-imap/test-imap-bodystructure.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-url.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-dummy-view.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/duplicate.c M src/lib-lda/lda-settings.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-mail/istream-attachment-connector.c M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-nonuls.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/mail-user-hash.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-binary-part.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-search.c M src/lib-mail/message-size.c M src/lib-mail/quoted-printable.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-attachment.c M src/lib-mail/test-istream-binary-converter.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-auth.c M src/lib-master/master-instance.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service-ssl.c M src/lib-master/master-service.c M src/lib-master/mountpoint-list.c M src/lib-master/syslog-util.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-sql/sql-db-cache.c M src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl-none.c M src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-storage/fail-mail-storage.c M src/lib-storage/fail-mail.c M src/lib-storage/fail-mailbox.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-check.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-md5-all.c M src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync-update.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-notify-tree.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-error.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-parser-cmdline.c M src/lib-storage/mail-search-parser-imap.c M src/lib-storage/mail-search-parser.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-thread.c M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-header.c M src/lib-storage/mailbox-keywords.c M src/lib-storage/mailbox-list-notify.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-search-result.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/test-mailbox-get.c M src/lib-test/test-common.c M src/lib/abspath.c M src/lib/aqueue.c M src/lib/array.c M src/lib/askpass.c M src/lib/backtrace-string.c M src/lib/base64.c M src/lib/bsearch-insert-pos.c M src/lib/buffer.c M src/lib/child-wait.c M src/lib/compat.c M src/lib/connection.c M src/lib/crc32.c M src/lib/data-stack.c M src/lib/eacces-error.c M src/lib/env-util.c M src/lib/execv-const.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/fd-set-nonblock.c M src/lib/fdatasync-path.c M src/lib/fdpass.c M src/lib/file-cache.c M src/lib/file-copy.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/guid.c M src/lib/hash-format.c M src/lib/hash-method.c M src/lib/hash.c M src/lib/hash2.c M src/lib/hex-binary.c M src/lib/hex-dec.c M src/lib/home-expand.c M src/lib/hostpid.c M src/lib/imem.c M src/lib/ioloop-epoll.c M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/iostream-rawlog.c M src/lib/iostream-temp.c M src/lib/iostream.c M src/lib/ipwd.c M src/lib/iso8601-date.c M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-file.c M src/lib/istream-jsonstr.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/json-parser.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mkdir-parents.c M src/lib/mmap-anon.c M src/lib/mmap-util.c M src/lib/module-dir.c M src/lib/mountpoint.c M src/lib/net.c M src/lib/nfs-workarounds.c M src/lib/numpack.c M src/lib/ostream-buffer.c M src/lib/ostream-file.c M src/lib/ostream-rawlog.c M src/lib/ostream.c M src/lib/primes.c M src/lib/printf-format-fix.c M src/lib/priorityq.c M src/lib/process-title.c M src/lib/randgen.c M src/lib/read-full.c M src/lib/restrict-access.c M src/lib/restrict-process-size.c M src/lib/safe-memset.c M src/lib/safe-mkdir.c M src/lib/safe-mkstemp.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str.c M src/lib/strescape.c M src/lib/strfuncs.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/test-base64.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-buffer.c M src/lib/test-crc32.c M src/lib/test-hash-format.c M src/lib/test-hex-binary.c M src/lib/test-iso8601-date.c M src/lib/test-istream-base64-decoder.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-json-parser.c M src/lib/test-lib.c M src/lib/test-llist.c M src/lib/test-mempool-alloconly.c M src/lib/test-network.c M src/lib/test-numpack.c M src/lib/test-ostream-file.c M src/lib/test-primes.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-str-find.c M src/lib/test-str-sanitize.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-time-util.c M src/lib/test-unichar.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/time-util.c M src/lib/unichar.c M src/lib/unix-socket-create.c M src/lib/unlink-directory.c M src/lib/unlink-old-files.c M src/lib/uri-util.c M src/lib/utc-mktime.c M src/lib/utc-offset.c M src/lib/var-expand.c M src/lib/write-full.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c M src/log/doveadm-connection.c M src/log/log-connection.c M src/log/log-error-buffer.c M src/log/log-settings.c M src/log/main.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/master/capabilities-posix.c M src/master/dup2-array.c M src/master/main.c M src/master/master-settings.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/master/service-process.c M src/master/service.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c M src/plugins/acl/doveadm-acl.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search-serialize.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/xml2text.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/mailbox-alias/mailbox-alias-plugin.c M src/plugins/notify/notify-plugin.c M src/plugins/notify/notify-storage.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/replication/replication-plugin.c M src/plugins/snarf/snarf-plugin.c M src/plugins/stats/stats-connection.c M src/plugins/stats/stats-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/pop3-login-settings.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/replication/aggregator/aggregator-settings.c M src/replication/aggregator/aggregator.c M src/replication/aggregator/notify-connection.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/notify-connection.c M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-settings.c M src/replication/replicator/replicator.c M src/ssl-params/main.c M src/ssl-params/ssl-params-openssl.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params.c M src/stats/client-export.c M src/stats/client.c M src/stats/global-memory.c M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-server-connection.c M src/stats/mail-session.c M src/stats/mail-stats.c M src/stats/mail-user.c M src/stats/main.c M src/stats/stats-settings.c M src/util/gdbhelper.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap-settings.c M src/util/tcpwrap.c 2013-02-02 16:52:23 +0200 Timo Sirainen (683d9f207) fts-solr: Deinit solr connection at plugin unload. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/fts-solr-plugin.h 2013-02-02 00:31:44 +0200 Timo Sirainen (f3ef965d5) dbox: Fail if trying to create a mailbox that already exists. M src/lib-storage/index/dbox-common/dbox-storage.c 2013-02-01 02:25:18 +0200 Timo Sirainen (d62bcaa9e) fts-solr: Reverted previous change, it only crashes. The plugin is already unloaded at lib_atexit() time. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2013-02-01 02:18:54 +0200 Timo Sirainen (cdabeadb1) fts-solr: Free the solr_connection at exit. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2013-02-01 01:39:41 +0200 Stephan Bosch (eb325a5a9) lib-http: Various bugfixes M src/lib-http/http-client-connection.c M src/lib-http/http-client-host.c M src/lib-http/http-client-peer.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-client.c M src/lib-http/http-client.h M src/lib-http/test-http-client.c 2013-02-01 01:03:05 +0200 Timo Sirainen (f01eb1f51) auth: first/last_valid_uid settings shouldn't have had auth_ prefix. M src/auth/auth-settings.c M src/auth/auth-settings.h 2013-01-31 22:59:13 +0200 Timo Sirainen (4881b4b19) ostream: If stream is closed with stream_errno=0, set it to EPIPE. M src/lib/ostream.c 2013-01-31 22:58:24 +0200 Timo Sirainen (d78be924a) ostream: Default seek&write_at implementations should fail with ESPIPE, not EPIPE. M src/lib/ostream.c 2013-01-31 22:14:12 +0200 Timo Sirainen (ea664cc5a) replicator: Don't try to reuse doveadm connections (and have them immediately fail) M src/replication/replicator/doveadm-connection.c 2013-01-31 22:13:36 +0200 Timo Sirainen (e3b36e450) replicator plugin: Use non-blocking open for the replicator fifo. This fixes an infinite hang if the replicator process isn't running. M src/plugins/replication/replication-plugin.c 2013-01-31 21:49:00 +0200 Timo Sirainen (5c88745f6) replicator: Use locking when running dsync. M src/replication/replicator/doveadm-connection.c 2013-01-31 21:01:09 +0200 Timo Sirainen (3edcc1d78) replicator: Crashfix at deinit M src/replication/replicator/replicator-brain.c 2013-01-31 19:58:34 +0200 Timo Sirainen (544657615) dsync: More fixes to merging flag/keyword changes. M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-31 19:45:50 +0200 Timo Sirainen (5e46f8284) doveadm fetch: Added "modseq" field. M src/doveadm/doveadm-mail-fetch.c 2013-01-31 19:45:33 +0200 Timo Sirainen (252f5c6a6) dsync: Fixed syncing message keywords. "add" and "final" can't be mixed together always without causing keywords to be added back unintentionally. M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-31 19:44:28 +0200 Timo Sirainen (cf848255b) dsync: If both local and remote have the same message flags, don't go changing them. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-31 19:05:55 +0200 Timo Sirainen (53c384be5) dsync: When we know that remote does a flag update, try to guess the remote's new modseq and set it M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-31 18:47:20 +0200 Timo Sirainen (4aefbee3c) dsync: If mailbox UIDVALIDITY is 0, sync it to assign it instead of assert-crashing. M src/doveadm/dsync/dsync-mailbox-tree-fill.c 2013-01-31 18:39:44 +0200 Timo Sirainen (59bf1df59) dsync: Fixed syncing keyword removals. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-31 18:27:22 +0200 Timo Sirainen (a5f2ad4bd) lib-ssl-iostream: Pass the plain istream's fd to ssl_istream. M src/lib-ssl-iostream/istream-openssl.c 2013-01-31 18:17:10 +0200 Timo Sirainen (38780588b) iostream-rawlog: Ignore 0 byte writes instead of assert-crashing. M src/lib/iostream-rawlog.c 2013-01-31 17:03:16 +0200 Timo Sirainen (6c3293c2e) dsync: Increased "remote cmd exit wait" from 5 to 30 seconds. M src/doveadm/dsync/doveadm-dsync.c 2013-01-31 17:01:46 +0200 Timo Sirainen (d097ad375) dsync: Ignore GUID mismatch on expunged message pair. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-31 00:27:17 +0200 Timo Sirainen (3bdc09026) auth: Removed assert-checks, allowing plugins to set skip_password_check. M src/auth/auth-request.c 2013-01-31 00:14:28 +0200 Timo Sirainen (5bac4693a) dsync: If remote command child process doesn't die at exit, kill -9 it. M src/doveadm/dsync/doveadm-dsync.c 2013-01-30 23:45:10 +0200 Timo Sirainen (70d732b52) Added signature for changeset b314c97d4bbf M .hgsigs 2013-01-30 23:45:06 +0200 Timo Sirainen (4b1041c27) Added tag 2.1.14 for changeset b314c97d4bbf M .hgtags 2013-01-30 23:45:06 +0200 Timo Sirainen (e9cbc7950) Released v2.1.14. M NEWS M configure.in 2013-01-30 23:24:20 +0200 Timo Sirainen (8521def0d) auth: Fixed compiling GSSAPI after recent changes. M src/auth/mech-gssapi.c 2013-01-30 22:44:48 +0200 Timo Sirainen (559f278a4) auth: Added passdb { result_* and skip } settings. passdb { skip = never | authenticated | unauthenticated } can be used to skip over a passdb lookup based on previous passdb lookups. passdb { result_success, result_failure, result_internalfail } can be used to specify what to do on those conditions. Choices as continue, continue-ok, continue-fail, return, return-ok, return-fail. The -ok and -fail variants update the current "success" flag, while continue/return uses the current flag. The authentication succeeds only if the success flag is set after the last lookup. The continue variants continue to the next passdb, while return variants finish the lookup immediately. M src/auth/auth-fields.c M src/auth/auth-fields.h M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-settings.c M src/auth/auth-settings.h M src/auth/auth-worker-client.c M src/auth/auth.c M src/auth/auth.h M src/auth/mech-gssapi.c M src/auth/passdb-blocking.c 2013-01-30 22:23:09 +0200 Timo Sirainen (c3e50b854) auth: Code cleanup: Renamed some fields used in internal communication with worker. M src/auth/auth-request.c 2013-01-30 22:19:13 +0200 Timo Sirainen (83d2e37f0) auth: Auth requests' flag fields were never passed to worker processes. M src/auth/auth-worker-client.c 2013-01-30 22:18:09 +0200 Timo Sirainen (420d037be) auth: Fixed login USER reply broken by recent changes. M src/auth/auth-request-handler.c 2013-01-30 21:08:58 +0200 Timo Sirainen (31633d676) auth: Cleaned up flags in auth request. Removed those that already exist in extra_fields. It's now slightly slower to check for those flags in extra_fields, but it's going to be easier to make commit/rollback feature to extra_fields. M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-worker-client.c M src/auth/db-checkpassword.c M src/auth/mech-gssapi.c M src/auth/passdb-dict.c M src/auth/passdb-ldap.c M src/auth/passdb-sql.c 2013-01-30 20:06:43 +0200 Timo Sirainen (32e0da444) auth: Allocate auth-fields array lazily. Also some naming cleanups. M src/auth/auth-fields.c M src/auth/auth-fields.h 2013-01-30 19:57:20 +0200 Timo Sirainen (ee6df9526) auth: Code cleanup: Renamed auth-stream to auth-fields. M src/auth/Makefile.am M src/auth/auth-client-connection.c R052 src/auth/auth-stream.c src/auth/auth-fields.c A src/auth/auth-fields.h M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h D src/auth/auth-stream.h M src/auth/auth-worker-client.c M src/auth/db-checkpassword.c M src/auth/passdb-blocking.c M src/auth/userdb-blocking.c M src/auth/userdb.h 2013-01-30 19:46:58 +0200 Timo Sirainen (2f35a2fbe) auth: Code cleanup: Merged extra_cache_fields into extra_fields. They are separated using a hidden-flag in the extra field. This required a new implementation for auth-streams. M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-stream.c M src/auth/auth-stream.h M src/auth/auth-worker-client.c M src/auth/db-checkpassword.c M src/auth/userdb-blocking.c 2013-01-30 19:11:30 +0200 Timo Sirainen (273b7c451) auth: Code cleanup: Minor auth_stream API simplifications. M src/auth/auth-stream.c M src/auth/auth-stream.h 2013-01-30 19:08:00 +0200 Timo Sirainen (eb7b8855c) auth: Code cleanup: Avoid using auth_stream_reply as temporary strings. M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c M src/auth/auth-master-connection.h M src/auth/auth-request-handler.c M src/auth/auth-request-handler.h M src/auth/auth-request.c M src/auth/auth-request.h 2013-01-30 18:40:49 +0200 Timo Sirainen (cd5a70b52) auth: Code cleanup: Removed unnecessary userdb_ prefix checks. The userdb_ fields are nowadays placed to userdb_reply immediately. M src/auth/auth-request-handler.c M src/auth/auth-request.h 2013-01-30 18:35:02 +0200 Timo Sirainen (b0e9375a1) auth: Code cleanup: Removed unnecessary auth_stream_reply usage from auth-worker communication. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-stream.c M src/auth/auth-stream.h M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth-worker-server.h M src/auth/passdb-blocking.c M src/auth/userdb-blocking.c 2013-01-30 18:12:23 +0200 Timo Sirainen (7926d224d) auth: Code cleanup - removed auth_stream_split() M src/auth/auth-request.c M src/auth/auth-stream.c M src/auth/auth-stream.h 2013-01-29 17:55:20 +0200 Timo Sirainen (b14bdce46) lib-index: Fixed invalidating buffered cache file with map_with_read. M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache.c 2013-01-29 13:31:05 +0200 Timo Sirainen (c2a800e3d) README: Added RFC 6851 M README 2013-01-28 14:37:59 +0200 Timo Sirainen (b66f5d51f) lib-storage: Allow mail_storage_copy_error() with the same source and dest. If it was used without checking it would try to free the error string and after that strdup() it. M src/lib-storage/mail-storage.c 2013-01-28 13:56:24 +0200 Timo Sirainen (f5d3d7a0e) dsync: When syncing locally, mailbox_copy() the mail to attempt a fast copy. M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-28 13:48:09 +0200 Timo Sirainen (620be6431) dsync: Fixed syncing locally when GUIDs weren't available. M src/doveadm/dsync/dsync-ibc-pipe.c 2013-01-24 16:30:33 +0200 Timo Sirainen (f9c0883a5) lib-storage: Fixed mailbox_exists() for LAYOUT=index. M src/lib-storage/index/index-storage.c 2013-01-22 16:53:52 +0200 Timo Sirainen (9bd08aa09) lib-index: Fixes to handling broken cache records that point outside file. Especially try to avoid failing by trying to allocate gigabytes of memory. M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache.c 2013-01-22 16:31:17 +0200 Timo Sirainen (49be238e2) lib-storage: Catch input stream errors when parsing mail. M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2013-01-22 12:59:32 +0200 Timo Sirainen (63f01d5e4) dsync: Error handling crashfix M src/doveadm/dsync/dsync-brain-mailbox.c 2013-01-22 12:59:22 +0200 Timo Sirainen (6bb12832e) imapc: Handle mailbox_update() when possible, instead of always just failing. M src/lib-storage/index/imapc/imapc-storage.c 2013-01-22 12:58:56 +0200 Timo Sirainen (14e45b91d) imapc: Return INTERNALDATE as save-date (better than error). M src/lib-storage/index/imapc/imapc-mail.c 2013-01-22 12:49:04 +0200 Timo Sirainen (40c0aad39) imapc: Avoid unnecessarily selecting a mailbox when looking up its GUID. M src/lib-storage/index/imapc/imapc-storage.c 2013-01-21 19:45:13 +0200 Timo Sirainen (16349f13a) Increased initial memory pool sizes. M src/doveadm/dsync/dsync-ibc-pipe.c M src/lib-storage/index/index-status.c 2013-01-21 19:43:39 +0200 Timo Sirainen (9eef11df8) dsync: Added a quick way to debug unexpected changes. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-21 19:41:24 +0200 Timo Sirainen (03936179f) dsync: Fixes to handling storage formats that don't use 128bit GUIDs. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-21 18:33:55 +0200 Timo Sirainen (f86f5b0a3) dict-cdb: Handle cdb_read() errors. M src/lib-dict/dict-cdb.c 2013-01-21 18:31:08 +0200 Timo Sirainen (09b15d7b0) dict: Added support for cdb backend. Based on patch by Hleb Valoshka. M configure.ac M src/dict/main.c M src/lib-dict/Makefile.am A src/lib-dict/dict-cdb.c M src/lib-dict/dict-private.h 2013-01-21 18:12:41 +0200 Timo Sirainen (c9dcbfeae) dsync: Fixed infinite loop when message suddenly got expunged. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-21 18:12:12 +0200 Timo Sirainen (1731683fb) lib-index: Fixed sorting appended messages when some were assigned new UIDs. M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c 2013-01-21 17:57:18 +0200 Timo Sirainen (1c95b8403) dsync: If remote doesn't send some message bodies, log an error about each one separately. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-21 17:56:36 +0200 Timo Sirainen (471a6b2b4) dsync backup: Old unwanted messages weren't deleted as they should have. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-21 17:45:18 +0200 Timo Sirainen (1e16e4fb4) lib-index: mail_transaction_log_view_set_all() didn't necessarily scan .log.2 file. M src/lib-index/mail-transaction-log-view.c 2013-01-21 17:44:16 +0200 Timo Sirainen (45ce71b79) dsync: GUIDs weren't set properly to expunge records, causing non-optimal behavior. M src/doveadm/dsync/dsync-transaction-log-scan.c 2013-01-21 16:57:49 +0200 Timo Sirainen (89f0ab8c7) dsync: Fixed crashes when sending already expunged messages. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-21 16:52:49 +0200 Timo Sirainen (cd70f7aec) dsync: Verify messages' GUIDs better. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-21 16:44:33 +0200 Timo Sirainen (a0b769af8) dsync: Fixed syncing to non-remote locations. M src/doveadm/dsync/doveadm-dsync.c 2013-01-21 14:43:09 +0200 Timo Sirainen (84669c712) lib-fs: Added "metawrap" wrapper to implement metadata as headers in the file content. M src/lib-fs/Makefile.am M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c A src/lib-fs/fs-metawrap.c A src/lib-fs/istream-metawrap.c A src/lib-fs/istream-metawrap.h 2013-01-21 14:42:10 +0200 Timo Sirainen (c0b154351) i_stream_read_next_line() should have also set eof=TRUE on ENOBUFS errors. M src/lib/istream.c 2013-01-21 14:19:21 +0200 Timo Sirainen (3dcb9fd82) lib-fs: fs_file_path() is now a virtual function. This fixes it returning the correct filename when file was created using FS_OPEN_MODE_CREATE_UNIQUE_128 and a wrapper fs. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2013-01-21 11:40:38 +0200 Timo Sirainen (63e94e8f5) lib-fs: Added flags to iteration, and FS_ITER_FLAG_DIRS as the first flag. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/fs-test.c 2013-01-17 09:00:54 +0200 Timo Sirainen (2a15ce3ab) doveadm: Compiling fix M src/doveadm/doveadm-mail.h 2013-01-16 12:02:18 +0200 Timo Sirainen (badb675af) sdbox: Fixed rebuilding index when UIDVALIDITY is missing. M src/lib-storage/index/dbox-single/sdbox-sync.c 2013-01-16 09:15:38 +0200 Timo Sirainen (c97431cae) sdbox: next-uid may have been set wrong when rebuilding indexes for empty mailbox. M src/lib-storage/index/index-rebuild.c 2013-01-16 08:01:40 +0200 Timo Sirainen (dc7102740) dsync_remote_cmd: The -l parameter no longer exists. M src/doveadm/doveadm-settings.c 2013-01-15 08:39:30 +0200 Timo Sirainen (4a49e2528) lib-index: Newly added messages weren't always sorted by UIDs. M src/lib-index/mail-index-transaction-update.c 2013-01-15 08:30:57 +0200 Timo Sirainen (612c4777c) dovecot-config: Removed unnecessary/duplicate ssl library links. M Makefile.am M configure.ac 2013-01-15 08:30:03 +0200 Timo Sirainen (8e4a702a1) buffer: Always keep +1 byte available for str_c()'s NUL. M src/lib/Makefile.am M src/lib/buffer.c M src/lib/str.c M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-str.c 2013-01-14 18:24:19 +0200 Timo Sirainen (4b6ec040f) lib-index: Added asserts. M src/lib-index/mail-index-transaction-finish.c 2013-01-14 17:58:09 +0200 Timo Sirainen (e925f0079) lib-index: Fixed marking transaction log file corrupted due to added O_APPEND flag. M src/lib-index/mail-transaction-log-file.c 2013-01-14 13:01:33 +0200 Timo Sirainen (f6aaa31eb) doveadm acl: Added "recalc" command to rebuild acl_lookup_dict for the user. M src/plugins/acl/doveadm-acl.c 2013-01-14 12:56:09 +0200 Timo Sirainen (c952f362b) doveadm user: Avoid initializing the user as much as possible. M src/doveadm/doveadm-auth.c 2013-01-14 08:38:36 +0200 Timo Sirainen (29a6405ee) example-config: Added mail_attribute_dict M doc/example-config/conf.d/10-mail.conf 2013-01-14 08:01:47 +0200 Timo Sirainen (f5d8b6d73) Several fixes to handling "istream input line too long" conditions. M src/auth/db-passwd-file.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/server-connection.c M src/lib-lda/lmtp-client.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-script.c 2013-01-14 07:57:39 +0200 Timo Sirainen (a0b6b441f) i_stream_read_next_line() now sets stream_errno=ENOBUFS if input buffer gets full. Previously the caller couldn't easily separate this condition from "more data needed", potentially causing infinite loops. M src/lib/istream.c M src/lib/istream.h 2013-01-13 19:15:37 +0200 Timo Sirainen (44d5bf8e6) doveadm: Increased doveadm client's max command line length. M src/doveadm/client-connection.c 2013-01-11 06:18:36 +0200 Timo Sirainen (90b2203b0) lib-imap-storage: Removed broken optimization for seeking to partial offset. The optimization worked only when physical_start=0. It would have been possible to fix it by finding the message_part where its header of body offset is physical_start and only then start decreasing virtual_skip, but probably too much complexity to be worth the trouble, especially since clients rarely would benefit from this optimization. M src/lib-imap-storage/imap-msgpart.c 2013-01-11 03:59:50 +0200 Timo Sirainen (e689e7771) lib-imap-storage: Added imap_msgpart_get_partial_size() missing from previous commit. M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-storage/imap-msgpart.h 2013-01-11 03:58:54 +0200 Timo Sirainen (00ad19478) imap: Improved unexpected FETCH error messages. M src/imap/imap-fetch-body.c 2013-01-10 14:20:07 +0200 Timo Sirainen (aa7a40090) dsync: Added "remoteprefix:" destination, which is same as "remote:" except sends "username\n" prefix. M src/doveadm/dsync/doveadm-dsync.c 2013-01-10 14:00:10 +0200 Timo Sirainen (437421ed8) dsync: Wait for remote command to finish before shutting down. This makes sure that any error messages during deinit stage are logged. Also non-zero exit codes are logged. M src/doveadm/dsync/doveadm-dsync.c 2013-01-10 13:56:59 +0200 Timo Sirainen (b991ad9a6) dsync server: Fixed crash at deinit M src/doveadm/dsync/doveadm-dsync.c 2013-01-10 12:12:50 +0200 Timo Sirainen (f476a2abe) dsync: Close mail streams earlier on failures to avoid assert-crashing M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-private.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-ibc.h 2013-01-10 11:52:27 +0200 Timo Sirainen (a58e63b49) lib-storage: Maildir++ layout shouldn't disallow "cur", "new" or "tmp" mailbox names. M src/lib-storage/mailbox-list.c 2013-01-10 10:23:44 +0200 Timo Sirainen (dbc867489) lib-storage: Improved "Using permissions" debug message. M src/lib-storage/mailbox-list.c 2013-01-10 10:21:27 +0200 Timo Sirainen (430624606) dsync: Added support back for dsync locking. Only the source directory is now locked to avoid deadlocks when both source and destination are locked. This of course now means that both source and destination is allowed to run dsync at the same time, which isn't ideal either.. M src/doveadm/dsync/doveadm-dsync.c 2013-01-10 10:02:47 +0200 Timo Sirainen (113ad88e9) dsync: Attempt to preserve \Recent flag as well M src/doveadm/dsync/dsync-mailbox-export.c 2013-01-10 09:33:19 +0200 Timo Sirainen (875d5305d) dsync: Handle syncing mailboxes with same name but different GUIDs. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2013-01-10 08:07:19 +0200 Timo Sirainen (183b3fb00) dsync: Removed unnecessary -n parameter from dsync-server. The setting is sent within dsync protocol. M src/doveadm/doveadm-settings.c M src/doveadm/dsync/doveadm-dsync.c 2013-01-10 07:54:39 +0200 Timo Sirainen (593bf2d33) replicator: Use stateful dsyncing whenever possible. M src/replication/replicator/doveadm-connection.c M src/replication/replicator/doveadm-connection.h M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue.c M src/replication/replicator/replicator-queue.h 2013-01-10 07:53:26 +0200 Timo Sirainen (97ad3cac3) replicator: doveadm connections weren't reset properly M src/replication/replicator/doveadm-connection.c 2013-01-10 07:39:02 +0200 Timo Sirainen (200c47440) dsync: Fixed parsing state string. M src/doveadm/dsync/dsync-mailbox-state.c 2013-01-10 07:31:51 +0200 Timo Sirainen (a3054152e) mdbox: Crashfix for storage rebuild M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2013-01-10 06:52:37 +0200 Timo Sirainen (7c3df7b7e) dsync: Fixed printing output state when running via doveadm-server. M src/doveadm/dsync/doveadm-dsync.c 2013-01-10 06:51:19 +0200 Timo Sirainen (9269bbf0d) doveadm: Added assert. M src/doveadm/doveadm-print.c 2013-01-09 11:03:43 +0200 Timo Sirainen (a5f297ac8) dsync: Another fix to handling expunges from the end of mailbox. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-09 09:11:09 +0200 Timo Sirainen (c45baa023) dsync: Mailbox syncing fix M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-09 07:53:53 +0200 Timo Sirainen (91ec3b77f) dsync: Error handling fix. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-09 07:02:28 +0200 Timo Sirainen (631913684) Merged changes from v2.1 tree. 2013-01-09 07:01:41 +0200 Timo Sirainen (8a743d640) mdbox rebuild: Update to previous commit M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2013-01-09 06:59:51 +0200 Timo Sirainen (b707e097f) mdbox rebuild: Don't always duplicate messages that have conflicting GUIDs. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2013-01-09 06:57:34 +0200 Timo Sirainen (054e0ccbe) mdbox rebuild: Use mail size instead of record size when guessing if the mails are the same. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2013-01-09 05:43:09 +0200 Timo Sirainen (14460e21d) dsync: Fixed handling UID renumbering when new mail was saved during dsync. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-09 05:42:03 +0200 Timo Sirainen (307ec6c2c) dsync: Don't wrongly log errors about missing message bodies. Also added some debug logging related to it. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2013-01-09 05:35:20 +0200 Timo Sirainen (553cf4f8a) mdbox: Allow reflink-copying a mail when wanted GUID matches the current GUID. M src/lib-storage/index/dbox-multi/mdbox-save.c 2013-01-09 05:33:32 +0200 Timo Sirainen (817b0fcaf) lib-storage: dest_mail wasn't reset if previous save was aborted. This could have happened only with dsync. M src/lib-storage/index/index-mail.c 2013-01-09 05:30:06 +0200 Timo Sirainen (b0e62f0a4) dbox: Give a name to the file's output stream (for improved error logging). M src/lib-storage/index/dbox-common/dbox-file.c 2013-01-09 05:28:58 +0200 Timo Sirainen (456127254) o_stream_send_istream(): Fixed copying within same file, when istream's size is unknown. This fixes copying a mail from mdbox's m.* file to the end of the same file. M src/lib/ostream-file.c 2013-01-09 05:29:13 +0200 Timo Sirainen (d48860922) lib-index: Comment update M src/lib-index/mail-index.h 2013-01-09 05:38:13 +0200 Timo Sirainen (61279c3c7) Merged changes from v2.1 tree. 2013-01-08 16:24:20 +0200 Timo Sirainen (4e5f5ed63) dsync: Make remote's stderr fd nonblocking to avoid hanging. M src/doveadm/dsync/doveadm-dsync.c 2013-01-08 10:57:34 +0200 Timo Sirainen (151a80713) dsync: Fixes to printing remote's stderr output. M src/doveadm/dsync/doveadm-dsync.c 2013-01-08 10:25:21 +0200 Timo Sirainen (9d3025fa9) dsync: Print remote's stderr line-buffered. Especially when debugging is enabled there can be a lot of output, which makes this useful. M src/doveadm/dsync/doveadm-dsync.c 2013-01-08 07:43:29 +0200 Timo Sirainen (66088eb61) dsync: Fixes to handling output stream buffering. M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-private.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.c M src/doveadm/dsync/dsync-ibc.h 2013-01-08 07:42:38 +0200 Timo Sirainen (c596b18e2) replicator: Send only one sync command to doveadm-server per connection. This fixes setuid()/setgid() problems when multiple UIDs are used. M src/replication/replicator/doveadm-connection.c 2013-01-08 06:41:56 +0200 Timo Sirainen (4e5b49c54) dsync: Minor fix for talking with remote dsync. M src/doveadm/dsync/dsync-ibc-stream.c 2013-01-08 05:37:43 +0200 Timo Sirainen (bfdef55e1) DEBUG: buffer_verify_pool() crashed with empty buffer. M src/lib/buffer.c 2013-01-08 05:23:06 +0200 Timo Sirainen (d8504a5ac) dsync: Crashfix for handling expunges from end of mailbox. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-08 05:19:37 +0200 Timo Sirainen (f3053c363) dsync: Fixed syncing expunge for last mail in mailbox. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-08 04:58:08 +0200 Timo Sirainen (ccd7b4e0a) dsync: Avoid updating modseqs unnecessarily. lib-index perhaps should do this automatically as well. M src/doveadm/dsync/dsync-mailbox-import.c 2013-01-08 04:33:01 +0200 Timo Sirainen (b16de4d0b) dsync: Avoid infinite looping. M src/doveadm/dsync/dsync-brain-mails.c 2013-01-08 04:00:04 +0200 Timo Sirainen (a5bf21895) dsync: Assert-crashfix for handling keywords. M src/doveadm/dsync/dsync-mailbox-export.c 2013-01-08 03:44:14 +0200 Timo Sirainen (6e37fcb7f) DEBUG: buffer_verify_pool() crashed with static sized buffers. M src/lib/buffer.c 2013-01-08 03:39:34 +0200 Timo Sirainen (650441dd8) lib-index: Fixed failing transaction log test. M src/lib-index/test-mail-transaction-log-append.c 2013-01-08 03:31:36 +0200 Timo Sirainen (e54a0fb59) test-imap-bodystructure: Fixed the test to pass with new imap-quote logic. M src/lib-imap/test-imap-bodystructure.c 2013-01-08 03:25:55 +0200 Timo Sirainen (54073bf33) run-test.sh didn't exit with failure code when the test failed M run-test.sh 2013-01-08 03:25:55 +0200 Timo Sirainen (9570664a8) run-test.sh didn't exit with failure code when the test failed M run-test.sh 2013-01-08 03:19:14 +0200 Timo Sirainen (cd19bab47) net_connect_unix(): If path is too long, return ENAMETOOLONG if it's available. M src/lib/network.c 2013-01-08 03:03:21 +0200 Timo Sirainen (49beae176) Makefile: Removed test-http-client from "make check". Not really a good idea to connect to remote servers (that might fail) during a normal make check. M src/lib-http/Makefile.am 2013-01-07 12:25:01 +0200 Timo Sirainen (3f8cd756f) Added signature for changeset 86bccdf46d17 M .hgsigs 2013-01-07 12:24:58 +0200 Timo Sirainen (2bf81fc7e) Added tag 2.2.beta1 for changeset 86bccdf46d17 M .hgtags 2013-01-07 12:24:58 +0200 Timo Sirainen (1b48b9102) Released v2.2.beta1. M configure.ac 2013-01-07 12:24:29 +0200 Timo Sirainen (65c0e43da) lib-http: Various fixes Patch by Stephan Bosch. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-transfer-chunked.c M src/lib-http/test-http-client.c 2013-01-07 10:55:27 +0200 Timo Sirainen (6fa505bf3) Added signature for changeset cf9d62fd0b14 M .hgsigs 2013-01-07 10:55:17 +0200 Timo Sirainen (4a8d76f01) Added tag 2.1.13 for changeset cf9d62fd0b14 M .hgtags 2013-01-07 10:55:17 +0200 Timo Sirainen (8c46dcd6b) Released v2.1.13. M NEWS M configure.in 2013-01-05 01:14:11 +0200 Timo Sirainen (70a2782ed) Merged changes from v2.1 tree. 2013-01-05 00:50:04 +0200 Timo Sirainen (d1a27d8dd) auth: Fixed handling usernames with the same name as userdb extra fields. This is a bit kludgy fix, but pretty much guaranteed not to break anything. v2.2 has a cleaner fix, but it's a bit more invasive. M src/auth/auth-request.c M src/auth/auth-stream.c M src/auth/auth-stream.h 2013-01-05 00:37:26 +0200 Timo Sirainen (548193b7d) auth: Don't keep username duplicated in userdb_reply string. This fixes bugs where userdb_reply is accessed via auth_stream_*() functions that remove/replace existing fields, which may have ended up removing/replacing the username. M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c 2013-01-05 00:12:54 +0200 Timo Sirainen (f2b491e47) lazy_expunge: Allow expunging from lazy_expunge namespace via virtual mailbox. (Instead of copying the message all over again to the lazy_expunge namespace.) M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2013-01-04 23:59:42 +0200 Timo Sirainen (1f5670bce) quota: Don't crash if shared namespace's owner doesn't have quota enabled (but you have). M src/plugins/quota/quota-storage.c 2013-01-04 23:24:26 +0200 Timo Sirainen (86763e4c6) uni_utf8_*(): Treat overlong UTF8 sequences as invalid. M src/lib/Makefile.am M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-unichar.c M src/lib/unichar.c 2013-01-04 21:39:07 +0200 Timo Sirainen (4578f6ac3) example-config: Added a note about protocol/local/remote {} sections. M doc/example-config/dovecot.conf 2013-01-04 05:49:33 +0200 Timo Sirainen (2bfa4f4e0) configure: Use pkg-config with clucene if available. M configure.ac M src/plugins/fts-lucene/Makefile.am 2013-01-04 05:29:25 +0200 Timo Sirainen (881388917) acl: Treat empty plugin { acl } setting the same as if it didn't exist. This allows using -o plugin/acl= to disable ACLs. M src/plugins/acl/acl-storage.c 2013-01-04 03:50:35 +0200 Timo Sirainen (0cc3ea498) DEBUG: Call buffer_verify_pool() on str_c*() M src/lib/str.c 2013-01-04 03:50:18 +0200 Timo Sirainen (a94f166ad) Added buffer_verify_pool() M src/lib/buffer.c M src/lib/buffer.h 2013-01-04 01:43:59 +0200 Timo Sirainen (13e130c3a) lib-storage: Bypass virtual storage when copying mail to allow optimizations. As a side effect this also causes all plugins to see the backend mail instead of the virtual mail. This probably isn't bad in most situations, but for those where it's unwanted mail_private.vmail can be used to access the virtual mail. mail_log plugin does this to log the original virtual mailbox name for copy operations. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/virtual/virtual-mail.c 2013-01-04 01:13:05 +0200 Timo Sirainen (6abf66a37) dsync: Use private modseqs to support syncing private flags in shared mailboxes. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-mail.c M src/doveadm/dsync/dsync-mail.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-export.h M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h M src/doveadm/dsync/dsync-mailbox-state.c M src/doveadm/dsync/dsync-mailbox-state.h M src/doveadm/dsync/dsync-mailbox.h M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/dsync-transaction-log-scan.h 2013-01-04 01:12:24 +0200 Timo Sirainen (f46885a5b) lib-storage: Added support for "private modseqs" for INDEXPVT index. Used by dsync (next commit). M src/lib-storage/fail-mail.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/plugins/virtual/virtual-mail.c 2013-01-03 22:53:18 +0200 Timo Sirainen (33738ccbd) dsync: Fixed parsing mailbox state from remote dsync. M src/doveadm/dsync/dsync-ibc-stream.c 2013-01-03 07:30:54 +0200 Timo Sirainen (45d47bc46) virtual storage: get_first_header() always returned "doesn't exist", breaking SORT/THREAD. M src/plugins/virtual/virtual-mail.c 2012-12-28 17:02:18 +0200 Timo Sirainen (c5c51ded9) configure: Use -lrt for check_gettime() only if needed. M configure.ac 2012-12-19 23:34:21 +0200 Timo Sirainen (a45c5bbeb) lib-http: Compile fix for previous change. M src/lib-http/http-client-host.c 2012-12-19 14:41:01 +0200 Timo Sirainen (f06cc4cb6) json-parser: Fixed infinite looping in some situations. M src/lib/json-parser.c 2012-12-19 14:39:55 +0200 Timo Sirainen (86bd046ec) lib-http: Host entries were added to hash table using wrong hostname pointer. M src/lib-http/http-client-host.c 2012-12-18 18:56:59 +0200 Timo Sirainen (0cc875d28) auth: When auto-loading auth mechanisms from plugins, generate the name better. M src/auth/mech.c 2012-12-18 18:55:00 +0200 Timo Sirainen (57962a937) lib-http: Fixed a crash when http_client_request_submit() failed immediately M src/lib-http/http-client-request.c 2012-12-18 18:54:31 +0200 Timo Sirainen (787d28c5d) uri-util: Control characters weren't properly escaped. e.g. "%0a" is correct, "% a" is not. M src/lib/uri-util.c 2012-12-18 10:44:28 +0200 Timo Sirainen (e67ccfba7) lib-storage: Fixed assert-crash when trying to fetch a binary section for empty message. M src/lib-storage/index/index-mail-binary.c 2012-12-15 15:33:12 +0200 Timo Sirainen (9f542af92) lib-storage: Refresh private index before syncing to make sure we see latest changes. M src/lib-storage/index/index-sync-pvt.c 2012-12-15 14:37:20 +0200 Timo Sirainen (69e031630) maildir: Fixed a crash caused by previous mailbox_update() change M src/lib-storage/index/maildir/maildir-storage.c 2012-12-15 14:27:56 +0200 Timo Sirainen (94f6821d6) dsync: Minor (probably unnecessary) fix for i_stream_read() API usage. Avoid the first read returning -2. M src/doveadm/dsync/dsync-ibc-stream.c 2012-12-15 14:24:41 +0200 Timo Sirainen (a1543aa56) dsync: Fixed hang when sending mail stream to remote dsync. M src/doveadm/dsync/dsync-ibc-stream.c 2012-12-15 13:56:16 +0200 Timo Sirainen (bca1c5f83) dsync: Fixed remote syncing due to recent changes M src/doveadm/dsync/dsync-ibc-stream.c 2012-12-15 13:55:33 +0200 Timo Sirainen (1d54bf820) dsync: Set doveadm exit codes properly on errors. M src/doveadm/dsync/doveadm-dsync.c 2012-12-15 13:48:22 +0200 Timo Sirainen (6556f02c7) i_stream_close(): Set stream_errno to EPIPE instead of ENOENT. ENOENT implies that this stream pointed to a file that never existed. EPIPE isn't perfect either, but probably clearer than the alternatives. M src/lib/istream.c 2012-12-15 13:43:44 +0200 Timo Sirainen (df16c7e87) i_stream_next_line(): Don't reset stream_errno if stream is already closed. M src/lib/istream.c 2012-12-15 13:31:31 +0200 Timo Sirainen (c7be65f5a) dsync: Don't start reading a mailbox until we know we actually need to sync it. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h 2012-12-15 13:30:02 +0200 Timo Sirainen (e69a4b1f3) mbox: Removed assert that caused dsync to crash. This is valid: 1. dsync opened an internal transaction and locked mbox 2. dsync opened an external transaction, which didn't lock mbox 3. dsync committed internal transaction 4. dsync locks mbox with external transaction M src/lib-storage/index/mbox/mbox-storage.c 2012-12-15 13:28:04 +0200 Timo Sirainen (3028a9180) mbox: Mailbox GUID generation re-opened the mailbox using wrong name, possibly crashing. M src/lib-storage/index/mbox/mbox-storage.c 2012-12-15 13:26:48 +0200 Timo Sirainen (1aaed980f) mbox: Mailbox GUID lookup unnecessarily always synced mbox. M src/lib-storage/index/mbox/mbox-storage.c 2012-12-15 13:25:49 +0200 Timo Sirainen (0f0e729b1) mbox: If mailbox_update() doesn't affect the mbox file, don't sync it. M src/lib-storage/index/mbox/mbox-storage.c 2012-12-15 13:25:34 +0200 Timo Sirainen (491319353) maildir: If mailbox_update() doesn't affect dovecot-uidlist file, don't lock it. M src/lib-storage/index/maildir/maildir-storage.c 2012-12-15 13:01:09 +0200 Timo Sirainen (707f172cd) dsync: Added back support for syncing only one mailbox (-m parameter) M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-pipe.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree.h 2012-12-15 12:31:56 +0200 Timo Sirainen (e0c10ab25) dsync: Error handling fix when mailbox is unexpectedly lost. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-ibc-stream.c 2012-12-14 15:34:56 +0200 Timo Sirainen (ec66a6873) dsync: Added -a parameter to sync all namespaces, not just the default one. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c 2012-12-14 15:34:00 +0200 Timo Sirainen (ad859755e) dsync: Mark mailbox tree memory pool as "growing" to avoid warnings. M src/doveadm/dsync/dsync-mailbox-tree.c 2012-12-14 15:32:43 +0200 Timo Sirainen (805f510bb) dsync: Fixes to creating/renaming mailboxes This gets rid of unnecessary mailbox renames when they should have simply been created. The algorithm appears to work, but again really should be fully thought out later to figure out why exactly it works. I only wanted to get it working now for other tests.. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2012-12-14 12:03:55 +0200 Timo Sirainen (a99b87c2b) dsync: Never try to create INBOX via temporary name and rename. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2012-12-14 11:45:54 +0200 Timo Sirainen (9d4c027e7) lib-storage: Fixed vname -> storage name conversion for some nonexistent mailbox names. For example prefix=INBOX/ name=INBOX-foo would have converted the name to "" instead of keeping "INBOX-foo". M src/lib-storage/mailbox-list.c 2012-12-14 11:20:04 +0200 Timo Sirainen (5332128f6) dsync: Added debugging and rawlogging support. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h 2012-12-14 11:17:19 +0200 Timo Sirainen (e65600bfe) dsync: Fixed hangs with remote dsyncing M src/doveadm/dsync/dsync-ibc-stream.c 2012-12-13 12:24:32 +0200 Timo Sirainen (9345a1460) dbox: dbox-alt-root symlink now points to the alt root directory, not to mailboxes dir. Existing mailboxes/ symlinks are silently changed to new ones. This also means that accessing the dbox with an older version will log a warning about the change. M src/lib-storage/index/dbox-common/dbox-storage.c 2012-12-12 15:21:45 +0200 Timo Sirainen (02da50edc) lib-http: Fixed sending HTTP request's payload. M src/lib-http/http-client-request.c 2012-12-12 11:34:09 +0200 Stephan Bosch (50a6d26bd) lib-http: Added support for chunked input/output streams and some bugfixes. M src/lib-http/http-client-connection.c M src/lib-http/http-client-private.h M src/lib-http/http-client-request.c M src/lib-http/http-response-parser.c M src/lib-http/http-transfer-chunked.c M src/lib-http/http-transfer.h M src/lib-http/test-http-client.c M src/lib-http/test-http-transfer.c 2012-12-11 08:08:12 +0200 Timo Sirainen (406ea4e54) quota: Fixed quota calculation with mailbox_move(). M src/plugins/quota/quota-storage.c 2012-12-08 09:37:21 +0200 Timo Sirainen (201437e07) layout=index: If MAILBOX_LIST_FLAG_NO_MAIL_FILES is set, don't try to delete any mail files. M src/lib-storage/list/mailbox-list-index-backend.c 2012-12-08 09:36:54 +0200 Timo Sirainen (bba5900b6) lib-storage: Copy MAIL_STORAGE_CLASS_FLAG_NO_ROOT to MAILBOX_LIST_FLAG_NO_MAIL_FILES M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.h 2012-12-08 09:18:43 +0200 Timo Sirainen (e298b8368) lib-fs: Added FS_PROPERTY_DIRECTORIES. This is a hint for fs API users if they should call fs_delete() for directories. M src/lib-fs/fs-api.h 2012-12-07 08:50:35 +0400 lion@ubuntu.ubuntu-domain (d95065a4c) lib-index: Optimized single sequence lookup of newly created mails in transaction view. M src/lib-index/mail-index-transaction-view.c 2012-12-07 08:50:35 +0400 lion@ubuntu.ubuntu-domain (90d077832) lib-index: Fixed sequence lookup of newly created mails in transaction view. M src/lib-index/mail-index-transaction-view.c 2012-12-19 15:00:45 +0200 Timo Sirainen (de9b2ee78) lib-index: If map_with_read gets disabled, reset the cache buffers properly. M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache.c 2012-12-18 22:13:48 +0200 Timo Sirainen (5028f44d6) auth: Added CLEAR as yet another alias to PLAIN/CLEARTEXT password scheme. This apparently is used by Sun LDAP server. M src/auth/password-scheme.c 2012-12-18 22:07:36 +0200 Timo Sirainen (dad1d7b72) lib-index: MAIL_INDEX_OPEN_FLAG_SAVEONLY was buggy when reading data near end of dovecot.index.cache. We assumed that we read as much as we requested, even if the file was smaller. M src/lib-index/mail-cache.c 2012-12-18 22:05:55 +0200 Timo Sirainen (05d1312c8) lib-index: Make sure a corrupted mail_cache_header_fields.size doesn't cause crashes. M src/lib-index/mail-cache-fields.c 2012-12-18 21:45:08 +0200 Timo Sirainen (b512e566e) raw storage: Make sure "from envelope" isn't returned as NULL. M src/lib-storage/index/raw/raw-mail.c 2012-12-18 21:37:57 +0200 Timo Sirainen (1af33d3c4) config: Notify process creation success to master only after parsing config file M src/config/main.c 2012-12-18 21:20:38 +0200 Timo Sirainen (c5c509ac2) example-config: Added missing dovecot-dict-auth.conf.ext M doc/example-config/Makefile.am 2012-12-18 21:15:19 +0200 Timo Sirainen (4bed2aaca) lib-index: If sure mail_index_alloc_cache_destroy_unrefed() closes indexes it alone keeps open. This makes sure that all index files are closed within process when mailbox is deleted. M src/lib-index/mail-index-alloc-cache.c 2012-12-18 20:48:36 +0200 Timo Sirainen (cc3baa5b9) indexer-worker: Don't assert-crash with some mailbox names in some configurations. Virtual mailbox name shouldn't be accessed directly using mailbox_list_*() functions, since they expect a storage name. In some configurations this could have caused assert-crashes with mailbox names that contained invalid characters. M src/indexer/master-connection.c 2012-12-18 18:57:41 +0200 Timo Sirainen (665bb236c) auth: When auto-loading auth mechanisms from plugins, generate the name better. M src/auth/mech.c 2012-12-13 12:14:57 +0200 Timo Sirainen (97943a36e) dict-file: Automatically mkdir missing parent directories if they don't exist. M src/lib-dict/dict-file.c 2012-12-13 12:14:03 +0200 Timo Sirainen (2eb22deb4) lib-storage: Use stat_first_parent() instead of doing it ourself. M src/lib-storage/mailbox-list.c 2012-12-13 12:13:42 +0200 Timo Sirainen (766814de3) Added stat_first_parent() helper function. M src/lib/mkdir-parents.c M src/lib/mkdir-parents.h 2012-12-11 20:04:10 +0200 Timo Sirainen (8a524e87e) virtual plugin: Don't fail if mailbox patterns don't match anything. M src/plugins/virtual/virtual-config.c 2012-12-08 11:13:51 +0200 Timo Sirainen (62dc0ce64) lib-master: Ignore /Volumes and /private/tmp mountpoints with OSX (only). M src/lib-master/mountpoint-list.c 2012-12-08 11:12:10 +0200 Timo Sirainen (22f3ce803) lib-master: Ignore mountpoints under /Volumes by default. M src/lib-master/mountpoint-list.c 2012-12-08 10:48:23 +0200 Timo Sirainen (69b728ce9) doveadm: table formatter supports now writing by streaming. This fixes it to work with doveadm server, which sometimes may use streaming. M src/doveadm/doveadm-print-table.c 2012-12-08 10:43:21 +0200 Timo Sirainen (1973c7c4f) imap: If mailbox doesn't have read ACL, hide APPENDUID/COPYUID resp-codes. M src/imap/cmd-append.c M src/imap/cmd-copy.c M src/lib-storage/mail-storage.h M src/plugins/acl/acl-mailbox.c 2012-12-08 09:35:33 +0200 Timo Sirainen (dafbec2c6) fts-solr: Fixed memory leak M src/plugins/fts-solr/solr-connection.c 2012-12-07 05:53:53 +0200 Timo Sirainen (b7eccb91e) ostream-buffer: Fixed o_stream_sendv() with multiple iovs. Patch by Stephan Bosch M src/lib/ostream-buffer.c 2012-12-05 07:57:35 +0200 Timo Sirainen (267aae3d1) lib-http: Parser didn't always fully skip over the previous request's payload. M src/lib-http/http-response-parser.c 2012-12-04 14:10:34 +0200 Timo Sirainen (e4f1a5fda) lib-mail: Detect errors in quoted-printable input. M src/lib-mail/istream-qp-decoder.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/quoted-printable.c M src/lib-mail/quoted-printable.h M src/lib-mail/test-istream-qp-decoder.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-quoted-printable.c 2012-12-04 13:04:59 +0200 Timo Sirainen (d186b3a65) imap: Don't crash in IDLE if remote IP isn't known (PREAUTH) M src/imap/cmd-idle.c 2012-12-04 13:02:22 +0200 Timo Sirainen (56b134799) imap: Fixed handling FETCH BINARY for broken content. M src/doveadm/doveadm-mail.c M src/imap/cmd-fetch.c M src/imap/imap-commands-util.c M src/imap/imap-fetch-body.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/mail-error.h 2012-12-04 11:40:35 +0200 Timo Sirainen (c7e810d05) lib-mail: quoted-printable decoder istream shouldn't treat trailing "=" as error. M src/lib-mail/istream-qp-decoder.c 2012-12-04 11:33:16 +0200 Timo Sirainen (07725eace) lib-storage: Set name for the "binary istream". M src/lib-storage/index/index-mail-binary.c 2012-12-04 07:18:03 +0200 Timo Sirainen (251457b81) lib-fs: Added a default fs_read() implementation using the fs_read_stream(). M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2012-12-04 07:04:54 +0200 Timo Sirainen (03c4172a1) lib-http: Increased initial memory pool size M src/lib-http/http-response-parser.c 2012-12-04 07:04:32 +0200 Timo Sirainen (0fb5804c1) lib-fs: Added a default fs_write() implementation using the fs_write_stream*(). M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c 2012-12-04 05:39:36 +0200 Timo Sirainen (8bfb2ecbe) lib-fs: Comment update M src/lib-fs/fs-api.h 2012-12-03 02:21:54 +0200 Timo Sirainen (3a916a3c7) Makefile: Added missing \ M src/Makefile.am 2012-12-02 02:35:05 +0200 Timo Sirainen (32f027896) Makefile: Reordered directories to fix build failure M src/Makefile.am 2012-12-01 06:56:02 +0200 Timo Sirainen (89a43b20d) lib-fs: Added fs-test to easily test FS API calls. M .hgignore M src/lib-fs/Makefile.am A src/lib-fs/fs-test.c 2012-12-01 06:54:55 +0200 Timo Sirainen (4ca2ccd50) Added json_append_escaped() M src/lib/json-parser.c M src/lib/json-parser.h 2012-12-01 02:41:34 +0200 Timo Sirainen (9a5fadfa1) lib-http: Don't free connection immediately in payload-destroyed callback. This caused a crash in http_client_connection_return_response() after the stream was unrefed. M src/lib-http/http-client-connection.c 2012-11-30 08:56:55 +0200 Timo Sirainen (37de9a0b6) Added signature for changeset 75bfda4a7c6c M .hgsigs 2012-11-30 08:56:44 +0200 Timo Sirainen (d5aeb2b76) Added tag 2.1.12 for changeset 75bfda4a7c6c M .hgtags 2012-11-30 08:56:44 +0200 Timo Sirainen (ab932cc0b) Released v2.1.12. M NEWS M configure.in 2012-11-30 03:14:10 +0200 Timo Sirainen (a8281b7c7) expire plugin: Don't crash when doveadm is run with proxying M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.h M src/plugins/expire/doveadm-expire.c 2012-11-29 12:43:54 +0200 Timo Sirainen (5c11e0266) Makefile: dovecot-config was missing quotes in LIBDOVECOT_LOGIN M Makefile.am 2012-11-29 10:29:19 +0200 Timo Sirainen (86bdb644d) JSON parser: Added support for arrays. The parser should be complete now. M src/lib/json-parser.c M src/lib/json-parser.h M src/lib/test-json-parser.c 2012-11-29 09:38:34 +0200 Timo Sirainen (2eccb2637) JSON parser: Added json_parse_skip_next() to skip over unwanted values. M src/lib/json-parser.c M src/lib/json-parser.h M src/lib/test-json-parser.c 2012-11-29 08:41:28 +0200 Timo Sirainen (41c6bfad3) Added signature for changeset 741d800a192f M .hgsigs 2012-11-29 08:41:21 +0200 Timo Sirainen (e976194db) Added tag 2.1.11 for changeset 741d800a192f M .hgtags 2012-11-29 08:41:21 +0200 Timo Sirainen (efdf7a064) Released v2.1.11. M NEWS M configure.in 2012-11-29 08:35:51 +0200 Timo Sirainen (80fbf2394) doveadm: Don't truncate printed output that contain NUL bytes. doveadm fetch text output especially could have been truncated. M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-tab.c 2012-11-29 07:52:51 +0200 Timo Sirainen (7877db7b5) JSON parser: Added support for reading string value as istream. M src/lib/Makefile.am A src/lib/istream-jsonstr.c A src/lib/istream-jsonstr.h M src/lib/json-parser.c M src/lib/json-parser.h M src/lib/test-json-parser.c 2012-11-29 07:30:23 +0200 Timo Sirainen (4e8e7a936) JSON parser fixes M src/lib/json-parser.c M src/lib/test-json-parser.c 2012-11-29 06:26:29 +0200 Timo Sirainen (ae9691f7e) JSON parser supports now nested objects and parsing from non-blocking input stream. M src/auth/db-dict.c M src/lib/Makefile.am M src/lib/json-parser.c M src/lib/json-parser.h A src/lib/test-json-parser.c M src/lib/test-lib.c M src/lib/test-lib.h 2012-11-29 02:30:15 +0200 Timo Sirainen (58833e210) uri-util.h always requires net.h to compile, #include it M src/lib/uri-util.h 2012-11-29 02:12:54 +0200 Timo Sirainen (9f8559a5a) lib-http: http-url.h always requires net.h to compile, #include it M src/lib-http/http-url.h 2012-11-29 02:01:56 +0200 Timo Sirainen (63caffb9c) lib-http: http_url_parse() didn't allocate all strings from the given pool. M src/lib-http/http-url.c 2012-11-29 01:57:40 +0200 Timo Sirainen (d45ab3fff) lib-http: http_url_parse() now returns the http_url allocated from given memory pool. M src/lib-http/http-client-request.c M src/lib-http/http-url.c M src/lib-http/http-url.h M src/lib-http/test-http-url.c 2012-11-28 09:14:33 +0200 Timo Sirainen (1d4027851) dsync: Don't crash when syncing multiple namespaces. M src/doveadm/dsync/dsync-mailbox-tree.c 2012-11-28 07:25:18 +0200 Timo Sirainen (2d05af5ce) lib-storage: Notify about \Seen flag changes in private index. Some earlier "don't send unnecessary flag changes" optimizations caused this. M src/lib-storage/index/index-sync-private.h M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync.c 2012-11-28 07:24:01 +0200 Timo Sirainen (4cff388b6) lib-storage: When updating flags in private index and nothing changes, don't increase modseq. M src/lib-storage/index/index-mail.c 2012-11-28 06:51:16 +0200 Timo Sirainen (764ba36a1) lib-storage: Fixed assert-crash with private indexes when looking for first unseen msg. M src/lib-storage/index/index-status.c 2012-11-28 06:43:55 +0200 Timo Sirainen (0bb5699d5) Make static analyzer happier M src/imap-urlauth/imap-urlauth-worker.c M src/lib-index/mail-transaction-log-file.c 2012-11-28 06:42:40 +0200 Timo Sirainen (daf0035ef) lib-index: Fixed randomly failing to write to dovecot.index.cache file M src/lib-index/mail-cache-transaction.c 2012-11-28 04:29:58 +0200 Timo Sirainen (27c534a36) stats: Log username and service for invalid UPDATE-SESSIONs M src/stats/mail-session.c 2012-11-28 04:21:03 +0200 Timo Sirainen (14d7b92ea) stats: Fixed crash when handling multiple users within same process. M src/plugins/stats/stats-plugin.c 2012-11-28 03:56:06 +0200 Timo Sirainen (9af06b765) lib-index: Fixed assert-crash caused by recent cache file changes. M src/lib-index/mail-cache.c 2012-11-28 03:55:25 +0200 Timo Sirainen (122ee3c9e) lib-index: Fixed memory leak with MAIL_INDEX_OPEN_FLAG_SAVEONLY M src/lib-index/mail-cache.c 2012-11-28 03:32:31 +0200 Timo Sirainen (cd8bd47fd) doveadm: Log better errors for failing passdb proxy lookups. M src/doveadm/doveadm-mail-server.c 2012-11-28 03:32:01 +0200 Timo Sirainen (89fda66c5) lib-auth: Added auth_master_get_socket_path() M src/lib-auth/auth-master.c M src/lib-auth/auth-master.h 2012-11-28 02:35:37 +0200 Timo Sirainen (3f7b9d04c) ostream-rawlog: Make sure rawlog logs only the data that got actually sent. M src/lib/ostream-rawlog.c 2012-11-28 02:35:15 +0200 Timo Sirainen (949b36888) iostream-rawlog: Buffered output kept logging the same data over and over again. M src/lib/iostream-rawlog.c 2012-11-28 01:52:32 +0200 Timo Sirainen (91dad1ec2) lib-storage: Don't assert-crash when fetching BINARY contents for empty body. M src/lib-storage/index/index-mail-binary.c 2012-11-28 01:44:53 +0200 Timo Sirainen (898e99166) lib-fs: Don't crash when trying to initialize nonexistent fs driver. M src/lib-fs/fs-api.c 2012-11-28 01:43:24 +0200 Timo Sirainen (9db5ade1c) i_stream_default_stat(): If we can't know the size, return -1 instead of assert crash. This fixes a crash saving to mdbox when input stream's size wasn't known. M src/lib/istream.c 2012-11-27 23:06:38 +0200 Timo Sirainen (52a16a4a3) fts-solr: XML-encode non-body fields as well M src/plugins/fts-solr/fts-backend-solr.c 2012-11-27 10:49:41 +0200 Timo Sirainen (8722fa5c6) lib-storage: Handle better when attempting to access shared mailboxes for nonexistent users. M src/lib-storage/index/shared/shared-storage.c 2012-11-27 10:49:18 +0200 Timo Sirainen (496184578) lib-storage: Added struct mail_user.nonexistent flag, which is filled by userdb lookup. M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2012-11-27 10:48:11 +0200 Timo Sirainen (4e22f1ec8) fts_parser: Minor error logging improvement M src/plugins/fts/fts-parser-script.c 2012-11-27 10:39:26 +0200 Timo Sirainen (c50bf33ef) mdbox: When rebuilding storage, fsck the map index first to make sure it's valid. This fixes assert-crash when the map index contained records with UIDs in wrong order. M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2012-11-27 10:02:59 +0200 Timo Sirainen (f67c2a741) mailbox-alias plugin: Error handling fix. M src/plugins/mailbox-alias/mailbox-alias-plugin.c 2012-11-27 10:00:42 +0200 Timo Sirainen (691759a45) NEWS updated M NEWS 2012-11-27 09:53:33 +0200 Timo Sirainen (285e73e04) lib-index: Added v2.2+ forwards compatibility to dovecot.index.cache M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-transaction.c 2012-11-27 09:13:57 +0200 Timo Sirainen (fbe2c18c8) login: Reverted previous fix attempt for SSL_accept() busy-looping. Apparently didn't work. Probably this patch doesn't help anything then, so just remove the extra complexity. M src/login-common/ssl-proxy-openssl.c 2012-11-27 08:43:15 +0200 Timo Sirainen (fd7a5919c) auth: userdb passwd lookups should have been done via worker processes by default. M src/auth/userdb-passwd.c 2012-11-27 08:08:50 +0200 Timo Sirainen (636f1fc2e) fts-solr: Removed deprecated waitFlush parameter from commit. M src/plugins/fts-solr/fts-backend-solr.c 2012-11-27 07:50:06 +0200 Timo Sirainen (c51afc0ab) Reversed recent "short utf8" changes. Solr code needs to parse the UTF8 input explicitly anyway to encode the XML characters. And all the character checks were already done in it. M src/lib/unichar.c M src/lib/unichar.h M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-parser.h 2012-11-27 06:21:18 +0200 Timo Sirainen (5a26150fe) doveadm-server: Reset headers in print output between running commands. M src/doveadm/client-connection.c 2012-11-27 06:20:44 +0200 Timo Sirainen (47e89f0f0) doveadm-server: Avoid eating CPU when client disconnects before authentication is done. M src/doveadm/client-connection.c 2012-11-27 06:19:57 +0200 Timo Sirainen (ceae307cf) doveadm: Don't disconnect from server too early while there are still commands. M src/doveadm/server-connection.c 2012-11-27 06:19:10 +0200 Timo Sirainen (ab530005c) doveadm: Include username in internal errors and "no such user" errors when running via server. M src/doveadm/doveadm-mail-server.c 2012-11-27 03:49:36 +0200 Timo Sirainen (ba28af088) fts-solr: Marked as FTS_BACKEND_FLAG_BUILD_SHORT_UTF8 M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2012-11-27 03:49:25 +0200 Timo Sirainen (119cbc046) fts: Added FTS_BACKEND_FLAG_BUILD_SHORT_UTF8 to require sending only short UTF8 data to backend. M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-parser.h 2012-11-27 03:48:15 +0200 Timo Sirainen (cb0b320be) liblib: Added uni_utf8_short_*() for handling UTF8 data where [56]-byte sequences are invalid. M src/lib/unichar.c M src/lib/unichar.h 2012-11-27 02:41:53 +0200 Timo Sirainen (95d50c6f8) quota: mailbox_get_status(STATUS_CHECK_OVER_QUOTA) returned wrong value on success. This fixes lmtp_rcpt_check_quota=yes M src/plugins/quota/quota-storage.c 2012-11-27 02:20:37 +0200 Timo Sirainen (4eda07eff) man: Added -d parameter to doveadm expunge. Patch by Pascal Volk. M doc/man/doveadm-expunge.1.in 2012-11-27 00:44:34 +0200 Timo Sirainen (87c1c4f83) dovecot-config: LIBDOVECOT_INCLUDE was missing path to lib-http M dovecot-config.in.in 2012-11-27 00:43:53 +0200 Timo Sirainen (6e8fce058) lib-fs: Automatically try to load missing driver as plugin. M src/lib-fs/Makefile.am M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2012-11-27 00:43:23 +0200 Timo Sirainen (9d78abdbf) liblib: Added lib_atexit() to register process deinit callbacks. M src/lib/lib.c M src/lib/lib.h 2012-11-27 00:31:40 +0200 Timo Sirainen (73cf22114) liblib: Added module_dir_find() M src/lib/module-dir.c M src/lib/module-dir.h 2012-11-26 23:24:48 +0200 Timo Sirainen (1be4d775c) doveadm dump: Added support for "obox" index records. M src/doveadm/doveadm-dump-index.c 2012-11-26 23:23:52 +0200 Timo Sirainen (9b0284ea5) lib-imap-storage: When returning an error istream, give it a useful name. M src/lib-imap-storage/imap-msgpart.c 2012-11-26 23:20:59 +0200 Timo Sirainen (295431884) lib-storage: Fixes to LAYOUT=index backend. M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mailbox-list-private.h 2012-11-26 23:19:04 +0200 Timo Sirainen (d9a129b49) lib-storage: Comment update for mail_prefetch() M src/lib-storage/mail-storage-private.h 2012-11-26 23:18:30 +0200 Timo Sirainen (0aa942214) lib-storage: If MAIL_STORAGE_CLASS_FLAG_NO_ROOT is set, don't even try to mkdir it. M src/lib-storage/mail-storage.c 2012-11-26 23:16:41 +0200 Timo Sirainen (6eb098154) lib-storage: Don't crash when trying to sync private index, if syncing had already failed. M src/lib-storage/index/index-sync.c 2012-11-26 23:16:00 +0200 Timo Sirainen (c6227d7ec) sdbox: Verify that mail_attachment_fs backend supports RENAME property. This isn't needed by mdbox. M src/lib-storage/index/dbox-single/sdbox-storage.c 2012-11-26 23:15:01 +0200 Timo Sirainen (0001f76bf) lib-storage: Code cleanup: dbox_save_context.cur_file doesn't need to be in dbox-common. M src/lib-storage/index/dbox-common/dbox-save.h M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-save.c 2012-11-26 23:12:29 +0200 Timo Sirainen (bf5015e72) Added libhttp to libdovecot.so M configure.ac M src/lib-dovecot/Makefile.am 2012-11-26 23:11:57 +0200 Timo Sirainen (905fb741e) lib-http: Removed explicit safe-memset.lo links At least in all my systems they just complain about duplicates.. M src/lib-http/Makefile.am 2012-11-26 23:09:25 +0200 Timo Sirainen (884cc4cc7) lib-dns: Added DNS_CLIENT_SOCKET_NAME macro for the default socket name. M src/lib-dns/dns-lookup.h 2012-11-26 23:08:50 +0200 Timo Sirainen (eed08ce5d) unlink_directory(): Added UNLINK_DIRECTORY_FLAG_FILES_ONLY M src/lib/unlink-directory.c M src/lib/unlink-directory.h 2012-11-26 23:08:10 +0200 Timo Sirainen (cf636afb3) Added iostream-temp for easily creating a temporary istream (to memory/file). M src/lib/Makefile.am A src/lib/iostream-temp.c A src/lib/iostream-temp.h 2012-11-26 23:06:24 +0200 Timo Sirainen (f0a386b29) liblib: Added assert-check to epoll code to make sure we don't wait infinitely with no events. M src/lib/ioloop-epoll.c 2012-11-26 23:03:09 +0200 Timo Sirainen (1680fed50) lib-fs: Added a temp_dir setting that the caller can specify. M src/lib-fs/fs-api.h 2012-11-26 23:02:51 +0200 Timo Sirainen (8804300e6) lib-fs: Added ITER and RELIABLEITER properties for backends. M src/lib-fs/fs-api.h M src/lib-fs/fs-posix.c 2012-11-26 23:01:53 +0200 Timo Sirainen (6937ddd8b) lib-fs: Fixed iteration with POSIX backend. M src/lib-fs/fs-posix.c 2012-11-26 23:01:28 +0200 Timo Sirainen (a58b73c69) lib-fs: Iterating a nonexistent directory should be the same as iterating an empty directory. M src/lib-fs/fs-api.h M src/lib-fs/fs-posix.c 2012-11-26 22:59:37 +0200 Timo Sirainen (2766f1de8) lib-fs: fs_wait_async() can now return an error. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c 2012-11-24 00:32:56 +0200 Timo Sirainen (216455c40) lib-http: Compiler warning fixes M src/lib-http/Makefile.am M src/lib-http/http-client-host.c D src/lib-http/test-http-responses.c 2012-11-24 00:30:14 +0200 Stephan Bosch (7384b4e78) lib-http: Added initial HTTP client implementation. M src/lib-http/Makefile.am A src/lib-http/http-client-connection.c A src/lib-http/http-client-host.c A src/lib-http/http-client-peer.c A src/lib-http/http-client-private.h A src/lib-http/http-client-request.c A src/lib-http/http-client.c A src/lib-http/http-client.h A src/lib-http/http-header-parser.c A src/lib-http/http-header-parser.h A src/lib-http/http-parser.c A src/lib-http/http-parser.h A src/lib-http/http-response-parser.c A src/lib-http/http-response-parser.h A src/lib-http/http-transfer-chunked.c A src/lib-http/http-transfer.h A src/lib-http/test-http-client.c M src/lib-http/test-http-header-parser.c A src/lib-http/test-http-response-parser.c A src/lib-http/test-http-responses.c A src/lib-http/test-http-transfer.c 2012-11-23 23:49:39 +0200 Timo Sirainen (c61b8f90a) bsdauth: Use "auth-" as the auth type. M src/auth/passdb-bsdauth.c 2012-11-23 08:52:06 +0200 Timo Sirainen (d765b8ed4) login: Try to avoid busy-looping on SSL_accept() when client doesn't behave nicely. M src/login-common/ssl-proxy-openssl.c 2012-11-23 08:32:13 +0200 Timo Sirainen (74d5f3c4e) auth: Added a way to set default values for nonexistent LDAP attributes. %{ldap:attrName:default_value} expands to default_value if attrName doesn't exist. M src/auth/db-ldap.c 2012-11-16 17:39:25 +0200 Timo Sirainen (3d24361e6) lib-imap: imap_append_string_for_humans() was broken for empty input string. M src/lib-imap/imap-quote.c 2012-11-09 00:31:07 +0200 Timo Sirainen (fe91058fa) iostream-rawlog: Don't assert-crash if trying to write 0 bytes. M src/lib/iostream-rawlog.c 2012-11-07 18:14:20 +0200 Timo Sirainen (4240acc84) auth: Give a better error message for "client doesn't have lookup permissions". M src/auth/auth-master-connection.c 2012-11-07 17:44:32 +0200 Timo Sirainen (aafdd2035) Makefile: Add -lssl to installed dovecot-config's LIBDOVECOT_LOGIN if needed. M Makefile.am 2012-11-07 17:37:16 +0200 Timo Sirainen (3fc62f5a9) var_expand*(): Don't use a data stack frame when expanding long %{variables} This avoids potential crashes if the destination string is also allocated from data stack and requires growing. M src/lib/var-expand.c 2012-11-07 17:05:47 +0200 Timo Sirainen (3c40cf45b) mdbox: Don't leave extra records to dovecot.map.index if mailbox index locking fails. Fixes errors such as: Corrupted dbox file /mdbox/storage/m.1 (around offset=2652): EOF reading msg header (got 0/30 bytes) M src/lib-storage/index/dbox-multi/mdbox-save.c 2012-11-06 23:53:11 +0200 Timo Sirainen (1a108b2ae) module_dir_unload(): Don't dlclose() modules if GDB environment is set. M src/lib/module-dir.c 2012-11-06 23:49:57 +0200 Timo Sirainen (d8e54934f) lib-ssl-iostream: Unload ssl_iostream_openssl plugin at exit. M src/lib-ssl-iostream/iostream-ssl.c 2012-11-06 23:49:24 +0200 Timo Sirainen (6ca79dbc2) module_dir_deinit(): If no modules were actually initialized, avoid doing memory allocation. This allows calling module_dir_unload() with atexit(), as long as the module doesn't need to call deinit(). M src/lib/module-dir.c 2012-11-06 23:23:19 +0200 Timo Sirainen (d39da6784) auth: Require auth-token-secret.dat owner to be auth process's uid, not necessarily root. M src/auth/auth-token.c 2012-11-06 22:15:51 +0200 Timo Sirainen (270f00aea) imap: Various fixes for handling expunges in mailbox sync. M src/imap/imap-sync.c 2012-11-06 22:13:13 +0200 Timo Sirainen (591cdcb3a) imap: Avoid sending multiple unnecessary VANISHED lines when sync had lots of changes. M src/imap/imap-sync.c 2012-11-06 17:40:34 +0200 Timo Sirainen (8d56f3334) istream-seekable: Underlying stream errors weren't handled correctly. M src/lib/istream-seekable.c 2012-11-06 14:20:00 +0200 Timo Sirainen (37938a05e) lib-ssl-iostream: Compiler warning fix when compiling without ssl M src/lib-ssl-iostream/iostream-ssl.c 2012-11-06 02:33:38 +0200 Timo Sirainen (4e9410678) Makefile: Build lib-ssl-iostream before lib-http M src/Makefile.am 2012-11-06 01:40:17 +0200 Timo Sirainen (bc64a795f) Makefile: Fixed building libdovecot.so M src/lib-dovecot/Makefile.am 2012-11-06 01:16:20 +0200 Timo Sirainen (c75dd2d03) dovecot-config: Removed LIBDOVECOT_SSL, which is no longer needed. M dovecot-config.in.in 2012-11-06 01:11:03 +0200 Timo Sirainen (0db42260b) Reverted 269104a0821b (Build imapc and pop3c always as plugins.) This is no longer needed now that lib-ssl-iostream can be linked without linking openssl. M configure.ac M src/lib-storage/index/imapc/Makefile.am M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h D src/lib-storage/index/imapc/imapc-plugin.c D src/lib-storage/index/imapc/imapc-plugin.h D src/lib-storage/index/imapc/imapc-setting-storage.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/pop3c/Makefile.am D src/lib-storage/index/pop3c/pop3c-plugin.c D src/lib-storage/index/pop3c/pop3c-plugin.h D src/lib-storage/index/pop3c/pop3c-setting-storage.c M src/lib-storage/index/pop3c/pop3c-settings.h M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-storage.h 2012-11-06 01:04:24 +0200 Timo Sirainen (3faa1040e) lib-ssl-iostream now dynamically loads openssl library instead of linking to it. This allowed removing the separate libdovecot-ssl library. In future if GnuTLS/NSS support is added it would also allow switching between them dynamically. M configure.ac M src/auth/Makefile.am M src/lib-dovecot/Makefile.am M src/lib-master/Makefile.am M src/lib-ssl-iostream/Makefile.am A src/lib-ssl-iostream/iostream-openssl-common.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h A src/lib-ssl-iostream/iostream-ssl-private.h A src/lib-ssl-iostream/iostream-ssl.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/login-common/Makefile.am 2012-11-05 18:16:56 +0200 Timo Sirainen (6f5a72c97) lib-ssl-iostream: Call all of the OpenSSL deinit functions at exit M src/lib-ssl-iostream/iostream-openssl-context.c 2012-11-05 14:28:24 +0200 Timo Sirainen (19ebf930e) lib-ssl-iostream: [io]streams were added an unnecessary reference, causing memory leaks. M src/lib-ssl-iostream/iostream-openssl.c 2012-11-05 14:27:52 +0200 Timo Sirainen (942dc9117) lib-ssl-iostream: [io]streams were added an unnecessary reference, causing memory leaks. M src/lib-ssl-iostream/iostream-openssl.c 2012-11-04 20:04:21 +0200 Timo Sirainen (c01803010) lib-ssl-iostream: Fixed potential assert-crash when reading. M src/lib-ssl-iostream/istream-openssl.c 2012-11-04 19:16:59 +0200 Timo Sirainen (adbca485f) lib-ssl-iostream: Copy the original istream's fd to the ssl istream. M src/lib-ssl-iostream/istream-openssl.c 2012-11-04 17:26:24 +0200 Timo Sirainen (bba52ecbb) lib-index: MAIL_INDEX_OPEN_FLAG_SAVEONLY may have caused stale data to be read from cache. M src/lib-index/mail-cache.c 2012-11-03 20:25:17 +0200 Timo Sirainen (f0ff96128) lib-index: Replaced cache's deleted_space with deleted_record_count. This way when expunging messages we don't need to actually read through the cache file and calculate how many bytes will be freed, we can simply increase the deleted_record_count by 1. We'll still compress the cache file approximately after 20% of the space (records) has been deleted. This also converts the old "hole offset" header field to tracking the number of records in the cache file. Otherwise we'd have to assume that all of the messages in mailbox have a cache record, but that isn't true for users who have only temporary cache fields. This "hole offset" cannot be trusted completely, because nothing prevents old Dovecot version from simply writing a hole offset there and messing up the record counts. Because of this there are a couple of extra sanity checks for it. (Unfortunately there wasn't any easy way to simply add a new field to header without breaking backwards compatibility.) M src/doveadm/doveadm-dump-index.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c 2012-11-03 19:37:47 +0200 Timo Sirainen (920b9f0fd) lib-index: Added minor version to dovecot.index.cache file header. M src/doveadm/doveadm-dump-index.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache.c 2012-11-03 19:35:54 +0200 Timo Sirainen (330d54e9e) lib-index: If a cache record is larger than 64 kB, don't add it to cache file. This shouldn't affect anything except mails that probably shouldn't exist in the first place. M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-transaction.c 2012-11-03 19:25:35 +0200 Timo Sirainen (131b073bd) lib-index: Cache record linking is now while writing new records, not later with pwrite(). This should make performance somewhat better. It also means that now the only overwrites to cache file are to the file header and the fields header. This means that we no longer have to invalidate file_cache (with mmap_disable=yes) except when reading the headers, which is always done anyway. It would be nice to move the overwritten fields in the headers to a cache header in dovecot.index file, but this is a bit tricky currently. When writing these headers the cache file needs to be locked to avoid race conditions. To avoid deadlocks the transaction log would have to be locked before the cache. The code to do all this would still be a bit complex, and to keep backwards compatibility with old Dovecot versions it would still have to do the overwriting until the backwards compatibility code is disabled. M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c 2012-11-03 19:13:24 +0200 Timo Sirainen (3ef21e8ae) lib-index: Transaction view shouldn't return ext records if the ext was already reset. M src/lib-index/mail-index-transaction-view.c 2012-11-03 18:43:00 +0200 Timo Sirainen (600848916) lib-index: Recent cache file changes broke writing. M src/lib-index/mail-cache.c 2012-11-03 18:43:00 +0200 Timo Sirainen (c028c9333) lib-index: Recent cache file changes broke writing. M src/lib-index/mail-cache.c 2012-11-03 14:11:29 +0200 Timo Sirainen (6494ec139) lib-storage: Crashfix when doing userdb lookup. M src/lib-storage/mail-storage-service.c 2012-11-03 13:47:55 +0200 Timo Sirainen (bd503f12e) lib-index: Write to transaction log using O_APPEND flag. Most OSes should do the writes atomically so that reads won't see partially written data. We don't currently rely on this, but it would be possible in future to remove locking entirely from writing to transaction log. M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log.h 2012-11-01 12:32:30 +0200 Timo Sirainen (a21489e65) lib-storage: Error logging fixes. M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-pvt.c 2012-10-31 14:44:24 +0200 Timo Sirainen (0a77b33ae) hostpid_init(): Don't allow gethostname() to fail. Be more strict about what chars it can contain. M src/lib/hostpid.c 2012-10-31 13:34:52 +0200 Timo Sirainen (97155df79) lib-storage: Don't require mailbox to be synced for MAILBOX_METADATA_GUID lookup None of the mailbox formats currently require it, and lib-lda code assert-crashes with it since syncing is done with a transaction already open. M src/lib-storage/mail-storage.h 2012-10-31 13:29:16 +0200 Timo Sirainen (3371db201) lib-storage: When mailbox_get_status/metadata() auto-syncs mailbox, use MAILBOX_SYNC_FLAG_FAST M src/lib-storage/index/index-status.c 2012-10-31 13:24:49 +0200 Timo Sirainen (4b51bdad1) Makefile: Add -lssl to installed dovecot-config's LIBDOVECOT_STORAGE if needed. M Makefile.am 2012-10-31 13:12:22 +0200 Stephan Bosch (96e3a9045) lib-dns: Added dns_lookup_switch_ioloop() M src/lib-dns/dns-lookup.c M src/lib-dns/dns-lookup.h 2012-10-31 13:11:11 +0200 Timo Sirainen (a98f0fc93) auth: Don't assert-crash in auth-token writing if process isn't running as root. M src/auth/auth-token.c 2012-10-30 15:05:45 +0200 Timo Sirainen (f69cd5cc5) lib-lda: Avoid doing a costly mailbox sync when delivering mail to multiple recipients. M src/lib-lda/mail-deliver.c M src/lib-storage/index/index-sync.c 2012-10-29 23:03:59 +0200 Timo Sirainen (9d60b2ea6) doveadm sync/backup: Added -s parameter to usage string. M src/doveadm/dsync/doveadm-dsync.c 2012-10-29 22:47:35 +0200 Timo Sirainen (12b195658) Added signature for changeset f5941f3ac762 M .hgsigs 2012-10-29 22:47:32 +0200 Timo Sirainen (be061d405) Added tag 2.2.alpha1 for changeset f5941f3ac762 M .hgtags 2012-10-29 22:47:32 +0200 Timo Sirainen (5ae069c93) Released v2.2.alpha1. M NEWS M TODO M configure.ac 2012-10-29 22:42:28 +0200 Timo Sirainen (0ed360799) anvil: Added a comment to remind what the anvil checksums are all about. M src/anvil/penalty.c 2012-10-29 22:03:25 +0200 Timo Sirainen (9b706b345) If prefix="" namespace isn't defined, autocreate it as an unusable namespace. This avoids having to handle mail_namespace_find() errors all over the place. Instead now the mailbox accesses will simply fail. M configure.ac M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain.c M src/imap/cmd-list.c M src/imap/imap-commands-util.c M src/indexer/master-connection.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-lda/mail-deliver.c M src/lib-storage/fail-mail-storage.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h M src/lib-storage/mail-storage.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/doveadm-acl.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/quota/quota-storage.c M src/plugins/snarf/snarf-plugin.c M src/plugins/trash/trash-plugin.c M src/pop3/pop3-client.c 2012-10-29 21:54:51 +0200 Timo Sirainen (c396c5cdd) lib-storage: Use const pointers for mail_namespace.(set|unexpanded_set) M src/lib-storage/mail-namespace.h M src/plugins/autocreate/autocreate-plugin.c 2012-10-29 21:42:32 +0200 Timo Sirainen (955f066e9) autocreate plugin logs now a "deprecated" warning at startup M src/plugins/autocreate/autocreate-plugin.c 2012-10-29 21:31:39 +0200 Timo Sirainen (c73415e93) Make static analyzer happier. M src/lib-dict/dict-file.c M src/lib-index/mail-transaction-log.c 2012-10-29 21:28:45 +0200 Timo Sirainen (4c05697a4) iostream-rawlog: Avoid crashing more if write() to rawlog fails. M src/lib/iostream-rawlog.c 2012-10-29 20:48:08 +0200 Timo Sirainen (c1b9c4531) Make static analyzer happier. M src/director/director-connection.c M src/director/director-test.c M src/imap/cmd-urlfetch.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-transaction-log.c M src/lib-mail/message-parser.c 2012-10-29 20:45:41 +0200 Timo Sirainen (ce8244c05) maildir: Fixed potential crash when maildir suddenly loses some directories. M src/lib-storage/index/maildir/maildir-util.c 2012-10-29 20:42:00 +0200 Timo Sirainen (31159b598) layout=index: Fixed a crash in mailbox_rename() race condition. M src/lib-storage/list/mailbox-list-index-backend.c 2012-10-29 20:34:31 +0200 Timo Sirainen (640c1f973) iostream-rawlog: Avoid crashing if write() to rawlog fails. M src/lib/iostream-rawlog.c 2012-10-29 20:17:07 +0200 Timo Sirainen (13eb65517) imap: imap_id_send default changed to send name=Dovecot to client. M src/imap-login/imap-login-settings.c M src/imap/imap-settings.c 2012-10-29 20:09:42 +0200 Timo Sirainen (eb22514ae) doveadm user: Removed -m parameter and made it default. Added -u for old functionality. -u meaning "userdb lookup only". M src/doveadm/doveadm-auth.c 2012-10-29 20:07:13 +0200 Timo Sirainen (45d2975c6) doveadm user -m: Show all returned userdb fields. M src/doveadm/doveadm-auth.c 2012-10-29 20:06:53 +0200 Timo Sirainen (3482fee0e) lib-storage: Added mail_storage_service_save_userdb_fields() M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2012-10-29 19:54:50 +0200 Timo Sirainen (1f1ee8db6) lib-storage: Renamed mail_storage_set_index_error() to mailbox_set_index_error() M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/plugins/virtual/virtual-sync.c 2012-10-29 19:52:21 +0200 Timo Sirainen (8c909e451) Replaced *_INDEX_PREFIX macros with a common MAIL_INDEX_PREFIX. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-storage.h M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-storage.h M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-storage.h M src/lib-storage/mail-storage-private.h M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2012-10-29 19:04:36 +0200 Timo Sirainen (fb541fdd8) login proxy: For connect() failures log also the used local IP:port if available. M src/login-common/login-proxy.c 2012-10-29 18:32:40 +0200 Timo Sirainen (2d06f521a) master: Ignore service {} blocks with empty executable settings. M src/master/master-settings.c M src/master/service.c 2012-10-29 18:29:07 +0200 Timo Sirainen (b203ee272) master: Removed unnecessary code duplication. The settings parsing already does this. M src/master/service.c 2012-10-29 18:01:54 +0200 Timo Sirainen (52ef4fcf9) Renamed configure.in to configure.ac. Apparently automakes in future won't support configure.in anymore. M TODO R100 configure.in configure.ac 2012-10-29 17:55:35 +0200 Timo Sirainen (c25dfa96b) Merged changes from v2.1 tree. 2012-10-29 16:51:46 +0200 Timo Sirainen (2a45e9253) lib-fs: Compile fix for OSes that don't support posix_fadvise(POSIX_FADV_WILLNEED) M src/lib-fs/fs-posix.c 2012-10-29 16:36:59 +0200 Timo Sirainen (b529524e9) lib-dict: Abort async transaction commits if client gets disconnected from dict server. M src/lib-dict/dict-client.c 2012-10-29 15:32:44 +0200 Timo Sirainen (aa767dbd1) TODO updated M TODO 2012-10-29 15:30:59 +0200 Timo Sirainen (1453e7c58) lib-storage: Handle better when attempting to access shared mailboxes for nonexistent users. M src/lib-storage/index/shared/shared-storage.c 2012-10-29 15:29:52 +0200 Timo Sirainen (117a55d42) lib-storage: Added struct mail_user.nonexistent flag, which is filled by userdb lookup. M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2012-10-29 15:18:34 +0200 Timo Sirainen (9fd218178) lib-storage: Fixes to handling separation of private/shared attributes. M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2012-10-29 15:17:17 +0200 Timo Sirainen (4253a4a66) lib-index: Fixes to replacing message's keywords. M src/lib-index/mail-index-transaction.c 2012-10-29 15:13:54 +0200 Timo Sirainen (045e41df5) lib-storage: Crashfix to previous stream error checking change. M src/lib-storage/index/index-mail-headers.c 2012-10-29 14:50:11 +0200 Timo Sirainen (c6afd7260) lib-storage: Moved mail attribute dict to struct mail_storage. This also means that index_storage_destroy() must always be called, so removed now unnecessary mail_storage.destroy=NULL checks. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-attribute.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/virtual/virtual-storage.c 2012-10-29 14:31:04 +0200 Timo Sirainen (e68fc7dc8) Treat modseq updates explicitly instead of as if they were flag changes. M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index.h M src/lib-storage/index/index-sync.c 2012-10-29 14:19:53 +0200 Timo Sirainen (5376aea86) lib-storage: Mailbox list indexes are now enabled also for shared/public mailboxes. M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c 2012-10-29 14:19:24 +0200 Timo Sirainen (0440855f9) lib-storage: Allow calling mailbox_get_private_flags_mask() without mailbox being open. Most importantly used by mailbox list indexes to determine if it can optimize a STATUS (UNSEEN) call. M src/lib-storage/mail-storage.c 2012-10-29 14:16:02 +0200 Timo Sirainen (7891195e3) imap: Commit temporary mail's transaction before finishing sync. Fixes assert-crash with mailbox list indexes. M src/imap/imap-sync.c 2012-10-29 14:17:40 +0200 Timo Sirainen (88cc3155c) lib-storage: Avoid assert-crashing when updating mailbox list index. M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index.h 2012-10-29 13:23:30 +0200 Timo Sirainen (50de46721) lib-storage: Check and log stream errors when parsing/searching messages. M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search.c 2012-10-29 13:01:37 +0200 Timo Sirainen (a81d416d2) lib-storage: Make sure mailbox was synced at least once when getting status/metadata. M src/lib-storage/index/index-status.c M src/lib-storage/mail-storage.h 2012-10-29 13:00:36 +0200 Timo Sirainen (2956f4599) dsync: Make sure we're not trying to use uidvalidity=0 for existing mailboxes. M src/doveadm/dsync/dsync-mailbox-tree-fill.c 2012-10-29 12:44:43 +0200 Timo Sirainen (c889df309) lib-index: MAIL_INDEX_TRANSACTION_FLAG_AVOID_FLAG_UPDATES didn't work well enough for keywords. Removed the code that attempted to optimize some CPU usage at the cost of writing too many changes. M src/lib-index/mail-index-transaction-update.c 2012-10-29 12:43:29 +0200 Timo Sirainen (b90e0895e) lib-index: Avoid assert-crashing when syncing an old "keyword reset" from transaction log. M src/lib-index/mail-index-transaction-update.c 2012-10-29 12:40:14 +0200 Timo Sirainen (a9dbce68b) acl: Avoid assert-crashing when trying to access shared namespace root "mailboxes". M src/plugins/acl/acl-mailbox.c 2012-10-26 13:05:43 +0300 Timo Sirainen (170db287b) lib-storage: Fixed listing layout=fs when namespace prefix part included wildcards. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-10-26 12:09:03 +0300 Timo Sirainen (7b8f9e3a8) stats: Refresh user statistics during long maildir syncs. M src/plugins/stats/stats-plugin.c 2012-10-26 11:43:05 +0300 Timo Sirainen (ab1e5b156) lib-index: Optimize cache file reads with MAIL_INDEX_OPEN_FLAG_SAVEONLY M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache.c 2012-10-26 11:37:07 +0300 Timo Sirainen (f81801789) lib-index: After recent cache changes, cache was often wrongly being thought of as unusable M src/lib-index/mail-cache.c 2012-10-26 11:34:25 +0300 Timo Sirainen (58f931fc1) lib-index: If cache file unexpectedly shrinks in header lookup, log an error. M src/lib-index/mail-cache-lookup.c 2012-10-26 11:33:22 +0300 Timo Sirainen (20536ef01) Increased initial memory pool size M src/lib-storage/list/mailbox-list-fs-iter.c 2012-10-26 11:17:51 +0300 Timo Sirainen (4dc26d9b5) lib-storage: Listing multiple mailbox patterns may have returned duplicates with fs layout. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-10-26 11:12:36 +0300 Timo Sirainen (66a1eb655) dbox: Log a better error if we have external attachments, but mail_attachment_dir is unset. M src/lib-storage/index/dbox-common/dbox-attachment.c 2012-10-26 11:07:43 +0300 Timo Sirainen (6322eca1c) doveadm backup: Don't assert-crash trying to delete noselect-mailboxes too early. M src/doveadm/dsync/dsync-mailbox-tree-sync.c 2012-10-26 10:36:43 +0300 Timo Sirainen (93d08c32a) lib-index: mail_index_transaction_lookup_latest_keywords() didn't work properly. It wasn't actually looking up the latest keywords. M src/lib-index/mail-index-transaction.c 2012-10-24 15:05:40 +0300 Timo Sirainen (efeb13303) doveadm backup: Revert all local changes. M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-import.h 2012-10-24 15:05:15 +0300 Timo Sirainen (818b05147) dsync: Crashfix for scanning keyword changes in transaction log. M src/doveadm/dsync/dsync-transaction-log-scan.c 2012-10-24 13:04:38 +0300 Timo Sirainen (01e3a9b57) NEWS updated M NEWS 2012-10-24 12:47:34 +0300 Timo Sirainen (0bf25546c) lib-storage: When mkdir()ing home, copy permissions from parent if it has setgid-bit and we're using %h/~. When using %d/%n instead of %h in the location directories, use the earlier methods. M src/lib-storage/mailbox-list.c 2012-10-24 12:23:36 +0300 Timo Sirainen (2cb0a0438) lib-storage: When creating user directory under domain, set its setgid-bit on. The previous mkdir_parents_chown() change changed this behavior. I'm not entirely sure if the setgid-bit is a good idea or not in here, but we'll just continue the existing behavior. M src/lib-storage/mailbox-list.c 2012-10-24 12:15:19 +0300 Timo Sirainen (a3e3650e9) mkdir_parents_chown(): If gid is set, make sure setgid-bit isn't copied from parent. M src/lib/mkdir-parents.c M src/lib/mkdir-parents.h 2012-10-24 11:52:14 +0300 Timo Sirainen (744543d84) raw storage: Don't set NAMESPACE_FLAG_INBOX_USER for the created namespace. M src/lib-storage/index/raw/raw-storage.c 2012-10-24 11:30:09 +0300 Timo Sirainen (eea128bec) lib-imap: Replaced last traces of imap_quote*() with imap_append_string_for_humans() Also the imap_append_*string() functions now decide whether to use quoted-string or literal based on the output string length (if both would work). M src/lib-imap/imap-envelope.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-quote.h 2012-10-24 11:28:38 +0300 Timo Sirainen (2ef24f8d8) lib-imap: ENVELOPE parsing/writing no longer strips whitespace from machine readable fields. M src/lib-imap/imap-envelope.c 2012-10-24 11:22:28 +0300 Timo Sirainen (1a197a6f7) lib-imap: bodystructure parsing now uses imap_append_string() instead of imap_quote*() Some of the fields are parsed through rfc822_*() which guarantees that they contain proper clean input. Other fields are also machine-readable and don't benefit from having whitespace compressed or of any other things that imap_quote*(fix_text=TRUE) did. None of the fields in M src/lib-imap/imap-bodystructure.c 2012-10-24 10:14:17 +0300 Timo Sirainen (44f93baa7) Use imap_append_astring() instead of imap_append_string() where possible. M src/imap/cmd-list.c M src/imap/cmd-notify.c M src/imap/imap-fetch.c M src/imap/imap-notify.c M src/imap/imap-status.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c 2012-10-24 10:08:06 +0300 Timo Sirainen (0b1929455) lib-imap: Added imap_append_astring() M src/lib-imap/imap-quote.c M src/lib-imap/imap-quote.h 2012-10-24 10:05:37 +0300 Timo Sirainen (73592a4e1) lib-imap: Changed public IS_ATOM*() macros to match RFC 3501 exactly. Move the imap-parser specific "atom plus some more" parsing macro inside imap-parser.c so it's not used by anyone else. M src/lib-imap/imap-arg.h M src/lib-imap/imap-parser.c M src/lib-storage/mailbox-keywords.c 2012-10-24 09:39:52 +0300 Timo Sirainen (686ad6d72) Use imap_append_*string() instead of imap_quote_append*() where possible. This makes it clearer what types of output should be sent. M src/imap-login/imap-proxy.c M src/imap/cmd-list.c M src/imap/cmd-namespace.c M src/imap/cmd-notify.c M src/imap/imap-fetch.c M src/imap/imap-notify.c M src/imap/imap-search.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/lib-imap/imap-id.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c 2012-10-24 09:38:06 +0300 Timo Sirainen (169d60e97) lib-imap: Added imap_append_string() and imap_append_nstring() M src/lib-imap/imap-quote.c M src/lib-imap/imap-quote.h 2012-10-24 09:21:46 +0300 Timo Sirainen (2ca9d7b51) lib-imap: Renamed imap_dquote_append() to imap_append_quoted() M src/imap/imap-fetch-body.c M src/lib-imap-client/imapc-connection.c M src/lib-imap/imap-id.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-quote.h 2012-10-24 09:21:00 +0300 Timo Sirainen (dde059304) imap: Avoid double-quoting non-atom header field M src/imap/imap-fetch-body.c 2012-10-23 20:46:35 +0300 Timo Sirainen (553ad921d) mailbox_list_index=yes: Fixed refreshing list index after mailbox was created. M src/lib-storage/list/mailbox-list-index.c 2012-10-23 20:46:12 +0300 Timo Sirainen (2f5256b47) maildir: Don't assert-crash on mailbox creation. M src/lib-storage/index/maildir/maildir-storage.c 2012-10-23 20:30:41 +0300 Timo Sirainen (000361b8c) imap: Another fix for handling partial FETCHes. M src/lib-imap-storage/imap-msgpart.c 2012-10-23 20:15:36 +0300 Timo Sirainen (e53ab6c70) imap: URLFETCH BINARY BODYPARTSTRUCTURE returns binary-decoded line counts. M src/lib-imap-storage/imap-msgpart.c M src/lib-mail/message-binary-part.c M src/lib-mail/message-binary-part.h M src/lib-storage/fail-mail.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/lib-storage/mail.c 2012-10-23 20:09:35 +0300 Timo Sirainen (81b1d1489) istream-seekable: When read() reaches EOF, unreference underlying streams. This was already done when the stream was kept in memory, but not when when the stream was written to temporary file. M src/lib/istream-seekable.c 2012-10-23 20:07:06 +0300 Timo Sirainen (84a31ddeb) imap: URLFETCH error handling fixes. M src/imap/cmd-urlfetch.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap-urlauth/imap-urlauth-fetch.h 2012-10-23 12:59:41 +0300 Timo Sirainen (a618726eb) connection API: Track the number of connections. M src/lib/connection.c M src/lib/connection.h 2012-10-23 12:34:42 +0300 Timo Sirainen (3e6903afa) dsync: Use mailbox_move() to reassign UIDs instead of copy+expunge. M src/doveadm/dsync/dsync-mailbox-import.c 2012-10-22 18:59:20 +0300 Timo Sirainen (ec7a751d4) auth: Log a nicer message if client timeouts authentication in the middle. M src/auth/auth-request-handler.c 2012-10-22 18:35:56 +0300 Timo Sirainen (dfd297466) decode2text.sh: Assume xmlunzip exists in the same directory as this script. This avoids hardcoding /usr/local/libexec/dovecot/ path in it. M src/plugins/fts/decode2text.sh 2012-10-22 15:35:59 +0300 Timo Sirainen (1df39b899) director: -D parameter now enables extensive debug logging. M src/director/director-connection.c M src/director/director-request.c M src/director/director.c M src/director/director.h M src/director/main.c 2012-10-22 15:32:04 +0300 Timo Sirainen (a6c2d3d60) director: Don't remove user's weak flag from notify connection. If notify connection worked properly, the weak flag should never have been set in the first place. And if it's just suddenly removed, it won't finish the pending requests properly. M src/director/notify-connection.c 2012-10-22 15:30:01 +0300 Timo Sirainen (38eee54ce) director: Minor code cleanup M src/director/director-connection.c 2012-10-22 15:29:27 +0300 Timo Sirainen (d40c98b71) director: If user's weak-flag appears to have gotten stuck, unset it. M src/director/director-request.c M src/director/user-directory.c 2012-10-22 15:23:25 +0300 Timo Sirainen (98811ad98) director: Log more clearly why a request timeouts. M src/director/director-request.c 2012-10-22 15:20:57 +0300 Timo Sirainen (3ee8a7ee6) director: Don't handle pending requests from all around the code. I'm not sure if this actually fixes any bugs, but it definitely makes the state cleaner. M src/director/director.c M src/director/director.h 2012-10-22 15:17:39 +0300 Timo Sirainen (d3211a801) director: Fixed previous broken change for handling USER-WEAK commands. M src/director/director-connection.c 2012-10-21 12:20:30 +0300 Timo Sirainen (c307328f5) doveadm sync/backup: Added -s parameter to do a fast stateful sync. Initially use an empty string for the input state. The output state is written to stdout. M src/doveadm/dsync/Makefile.am M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c D src/doveadm/dsync/dsync-mailbox-state-export.h M src/doveadm/dsync/dsync-mailbox-state.c M src/doveadm/dsync/dsync-mailbox-state.h M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree.h 2012-10-21 10:01:54 +0300 Timo Sirainen (e83126866) doveadm: "backup" command is working again. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-ibc.h M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree.h M src/doveadm/dsync/test-dsync-mailbox-tree-sync.c 2012-10-21 08:22:20 +0300 Timo Sirainen (ed157532d) lib-storage: Fixed deleting mailbox when mail_attribute_dict wasn't set. M src/lib-storage/index/index-attribute.c 2012-10-21 07:29:04 +0300 Timo Sirainen (ba886767d) lib-fs: Fixes to async APIs. M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h 2012-10-21 07:13:44 +0300 Timo Sirainen (9e04a4a3c) redis dict: Log an error if we get disconnected unexpectedly. M src/lib-dict/dict-redis.c 2012-10-18 06:58:01 +0300 Timo Sirainen (aa92329a1) lib-imap-urlauth: Minor fix to avoiding timing attacks against mailbox existence. random_fill() is slightly slower than random_fill_weak(). Probably even better way to handle timing attacks would be to always add a short random pause before returning verification failure. M src/lib-imap-urlauth/imap-urlauth.c 2012-10-18 06:55:04 +0300 Timo Sirainen (70375a509) Moved random_init() from lib-imap-urlauth to imap/imap-urlauth main(). This way if the processes are chrooted they are still able to open /dev/urandom. M src/imap-urlauth/imap-urlauth-worker.c M src/imap/main.c M src/lib-imap-urlauth/imap-urlauth.c 2012-10-18 06:45:39 +0300 Timo Sirainen (bb86f8f22) lib-index: Crashfix for MAIL_INDEX_OPEN_FLAG_SAVEONLY change. M src/lib-index/mail-cache.c 2012-10-18 06:21:25 +0300 Timo Sirainen (da62041ae) login_log_format_elements: Added %{real_rip} variable. It differs from %r when Dovecot proxy sends an updated client IP address. Patch by Jack Bates. M src/login-common/client-common.c M src/login-common/client-common.h 2012-10-18 06:00:18 +0300 Timo Sirainen (4fcee7550) lib-index: Fixed handling of finding a duplicate dovecot.index.log file_seq Previously we assumed that the already opened file was always the wrong one, but more common was that the newly opened file was .log.2 which should have been deleted. M src/lib-index/mail-transaction-log-file.c 2012-10-18 05:55:30 +0300 Timo Sirainen (b222354c9) lib-index: Handle better race condition there dovecot.index.log and .log.2 are the same link. M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c 2012-10-18 05:23:27 +0300 Timo Sirainen (8f76fdf79) lib-storage: Open index with MAIL_INDEX_OPEN_FLAG_SAVEONLY if mailbox has MAILBOX_FLAG_SAVEONLY M src/lib-storage/index/index-storage.c 2012-10-18 05:22:36 +0300 Timo Sirainen (18d92dbbb) lib-index: Added MAIL_INDEX_OPEN_FLAG_SAVEONLY to do only minimal reads from cache file. M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache.c M src/lib-index/mail-index.h 2012-10-18 05:16:54 +0300 Timo Sirainen (8ac66221e) lib-index: Code cleanup: Removed mail_cache.data M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache.c 2012-10-18 05:10:29 +0300 Timo Sirainen (82ed69779) lib-index: mail_cache_map() API cleanup M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c 2012-10-16 03:34:51 +0300 Timo Sirainen (048e40f93) dict quota: Fixed a potential crash if quota recalculation was triggered at deinit. M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c 2012-10-16 03:08:21 +0300 Timo Sirainen (4511a1f49) lib-master: Fixed -i parameter handling. It previously worked only if the default config socket wasn't usable. M src/lib-master/master-service.c 2012-10-13 04:30:17 +0300 Timo Sirainen (8bad54501) lib-storage: Added missing file from previous mailbox attribute commit. A src/lib-storage/index/index-attribute.c 2012-10-13 04:28:09 +0300 Timo Sirainen (4abdade2c) imap-urlauth: Store urlauth keys to the new mailbox attributes. M doc/example-config/conf.d/20-imap.conf M src/imap-urlauth/imap-urlauth-worker-settings.c M src/imap-urlauth/imap-urlauth-worker-settings.h M src/imap-urlauth/imap-urlauth-worker.c M src/imap/imap-client.c M src/imap/imap-settings.c M src/imap/imap-settings.h M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-backend.h M src/lib-imap-urlauth/imap-urlauth-private.h M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap-urlauth/imap-urlauth.h 2012-10-13 04:27:14 +0300 Timo Sirainen (62041dfb7) lib-storage: Added support to get/set/iterate mailbox attributes. The attributes are stored in a dict specified by mail_attribute_dict setting. The idea is to use this as storage for extensions that require per-mailbox key=value pairs, such as METADATA. M src/lib-storage/fail-mailbox.c M src/lib-storage/index/Makefile.am M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/plugins/virtual/virtual-storage.c 2012-10-13 04:18:26 +0300 Timo Sirainen (6b3c7d739) dict: If DICT_ITERATE_FLAG_NO_VALUE is set, don't send values to dict client. M src/dict/dict-commands.c M src/dict/dict-connection.h 2012-10-13 04:17:45 +0300 Timo Sirainen (63b938821) lib-dict: Added DICT_ITERATE_FLAG_NO_VALUE This allows iterating dictionary without wasting extra time on returning values that aren't needed. M src/lib-dict/dict-sql.c M src/lib-dict/dict.h 2012-10-13 01:57:24 +0300 Timo Sirainen (d49214c55) imap-urlauth: Use mailbox GUID instead of mailbox name for dict keys M src/imap/cmd-resetkey.c M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-imap-urlauth/imap-urlauth-backend.h M src/lib-imap-urlauth/imap-urlauth.c 2012-10-13 01:38:48 +0300 Timo Sirainen (c02db5c3a) example-config: Added imap_urlauth_* settings M doc/example-config/conf.d/20-imap.conf 2012-10-13 01:36:13 +0300 Timo Sirainen (ca16588e7) imap urlauth: Don't autofill imap_urlauth_host. Use "*" value to mean "any host". M src/imap-urlauth/imap-urlauth-worker.c M src/imap/imap-client.c M src/lib-imap-urlauth/imap-urlauth.c 2012-10-13 01:09:37 +0300 Timo Sirainen (eca38954b) lib-dict: dict_init() now returns error string instead of logging it M src/auth/db-dict.c M src/dict/dict-connection.c M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-private.h M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql-settings.h M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h M src/lib-imap-urlauth/imap-urlauth-backend.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/quota/quota-dict.c 2012-10-13 01:03:13 +0300 Timo Sirainen (803197abb) lib-settings: settings_read*() now returns an error string instead of logging itself M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-sql.c M src/lib-dict/dict-sql-settings.c M src/lib-settings/settings.c M src/lib-settings/settings.h 2012-10-13 00:40:41 +0300 Timo Sirainen (4605cab11) Moved doveadm zlib commands from zlib plugin to doveadm directly. Previously it was a plugin, because the istream-zlib existed only in zlib plugin. Now there's a lib-compression that implements it. M src/doveadm/Makefile.am M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-dump.h R090 src/plugins/zlib/doveadm-zlib.c src/doveadm/doveadm-zlib.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h M src/plugins/zlib/Makefile.am 2012-10-13 00:32:34 +0300 Timo Sirainen (439dd06ae) istream: Added internal try_alloc_limit to limit size returned by i_stream_try_alloc() This was required by the previous SSL change. M src/lib/istream-private.h M src/lib/istream.c 2012-10-13 00:24:47 +0300 Timo Sirainen (739125f23) lib-ssl-iostream: Make the input buffering behave the same as in file-istream Previously i_stream_read(ssl_input) could have still left some data buffered into the underlying file-istream, which meant that I/O loop didn't detect any new input from the fd and the connection got stuck. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/istream-openssl.c 2012-10-12 23:18:58 +0300 Timo Sirainen (7020f569b) config: Added lib-master's settings parsers back to config's knowledge M src/config/settings-get.pl 2012-10-12 23:05:43 +0300 Timo Sirainen (309107ef3) configure: Make sure MYSQL_LIBS has -lmysqlclient even if it's not explicitly found. M configure.in 2012-10-12 08:48:25 +0300 Timo Sirainen (5a2b30ed0) lib-storage: Fixed crash when attempting to remove subscriptions for nonexistent shared users. M src/lib-storage/list/mailbox-list-subscriptions.c 2012-10-12 08:39:31 +0300 Timo Sirainen (b71e08759) lib-index: dovecot.index file is no longer overwritten, so it doesn't need to be locked. M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index.c 2012-10-12 08:31:15 +0300 Timo Sirainen (b886e3df9) lib-index: Log a warning if locking transaction log takes longer than 30 secs. M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c 2012-10-12 07:58:17 +0300 Timo Sirainen (d817aa1eb) maildir: If INDEXPVT is set, assume private \Seen flags even if dovecot-shared doesn't exist. M src/lib-storage/index/maildir/maildir-storage.c 2012-10-12 05:45:42 +0300 Timo Sirainen (69af83d4e) lib-storage: Added support for "broken_char" setting for escaping invalid mailbox names. This is currently enabled only for imapc backend, where '~' character is used for it. Most importantly this allows migrating mailboxes from other IMAP servers that contain mailbox names that Dovecot's imapc backend couldn't otherwise access. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2012-10-12 03:47:41 +0300 Timo Sirainen (917498e6f) lib-storage: Added optional mailbox_list.init(), which can check for failure. "index" backend now gives a nice error message instead of crashing when mailbox_list_index=no M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2012-10-12 03:17:56 +0300 Timo Sirainen (83b97bc77) Build imapc and pop3c always as plugins. This avoids having to link openssl library to all binaries that use lib-storage. It appears that simply by linking with openssl causes each such process to use 100-200 kB of more memory. With 10k imap processes this is 1-2 GB of wasted memory. The imapc and pop3c are still registered as stubs, and their plugins are automatically loaded when needed. M configure.in M src/lib-storage/index/imapc/Makefile.am M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h A src/lib-storage/index/imapc/imapc-plugin.c A src/lib-storage/index/imapc/imapc-plugin.h A src/lib-storage/index/imapc/imapc-setting-storage.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/pop3c/Makefile.am A src/lib-storage/index/pop3c/pop3c-plugin.c A src/lib-storage/index/pop3c/pop3c-plugin.h A src/lib-storage/index/pop3c/pop3c-setting-storage.c M src/lib-storage/index/pop3c/pop3c-settings.h M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-storage.h 2012-10-12 03:12:19 +0300 Timo Sirainen (87ca4b209) lib-storage: Added mail_user_get_storage_class(), which auto-loads storage plugins. The auto-loading is done only if there's already a stub storage registered. M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2012-10-12 03:09:27 +0300 Timo Sirainen (ad8fdcb7e) Makefile: Added cc-wrapper.sh.in missing from last commit M Makefile.am 2012-10-12 03:08:13 +0300 Timo Sirainen (d80a9e1ca) --without-shared-libs: Link Dovecot libraries with --whole-archive flag for binaries. This removes the need for the ugly unused_objects lists for binaries, which were needed to avoid plugins from failing because they were missing some functions. Apparently there's no easy way to use --whole-archive properly with libtool, so there's now a rather ugly cc-wrapper.sh that does it. Also this is done only when GNU ld is deted. Most people are going to use --with-shared-libs though, so I don't think any of this is going to be a real problem. M .hgignore A cc-wrapper.sh.in M configure.in M src/doveadm/Makefile.am M src/indexer/Makefile.am M src/lda/Makefile.am M src/lmtp/Makefile.am M src/pop3/Makefile.am 2012-10-12 02:59:59 +0300 Timo Sirainen (7e22696da) config: Don't include lib-master/*.c files in all-settings.c lib-master is already being linked to the binaries anyway. M configure.in 2012-10-12 01:21:30 +0300 Timo Sirainen (14ee25b3a) imap: Don't waste data stack memory at startup. M src/imap/main.c 2012-10-12 01:17:05 +0300 Timo Sirainen (ce9a7b1f3) hostpid_init(): Don't waste memory from data stack. Even though it's only a few bytes, it was being wasted permanently for all processes. M src/lib/hostpid.c 2012-10-12 01:06:13 +0300 Timo Sirainen (ca4526e3b) i_set_failure_prefix() now takes printf-like parameters. This avoids using t_strdup_printf() with it, which was done very commonly. M src/doveadm/doveadm-mail.c M src/doveadm/dsync/doveadm-dsync.c M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-worker.c M src/lib-master/master-login.c M src/lib-master/master-service.c M src/lib-storage/mail-storage-service.c M src/lib/failures.c M src/lib/failures.h M src/lmtp/commands.c M src/log/log-connection.c M src/master/main.c 2012-10-12 01:03:49 +0300 Timo Sirainen (c58c35722) lib-index: Error handling fix to cache transaction flushing. M src/lib-index/mail-cache-transaction.c 2012-10-12 00:51:41 +0300 Timo Sirainen (bd63b5b86) Plugin ABI version checking improvements. Previously the plugin version was checked against the version string returned by the currently running Dovecot master process, not necessarily the same as the binary. Also version_ignore=yes setting skipped the version check entirely. Now there's a new DOVECOT_ABI_VERSION macro that can (at least in theory) be updated only when the ABI actually changes. The version is in format "2.2.ABIv1(2.2.15)", where the (2.2.15) would be the actual Dovecot version number that gets ignored when comparing the strings. Also now the plugin version is compared to the actually running binary's ABI, not the master's version, and it can't be ignored with a setting. M configure.in M src/auth/main.c M src/config/config-parser.c M src/dict/main.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-util.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c M src/lib-storage/mail-storage-service.c M src/lib/module-dir.c M src/lib/module-dir.h M src/plugins/acl/acl-plugin.c M src/plugins/acl/doveadm-acl.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-plugin.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mailbox-alias/mailbox-alias-plugin.c M src/plugins/notify/notify-plugin.c M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-plugin.c M src/plugins/snarf/snarf-plugin.c M src/plugins/stats/stats-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-plugin.c M src/plugins/zlib/doveadm-zlib.c M src/plugins/zlib/zlib-plugin.c 2012-10-12 00:30:23 +0300 Timo Sirainen (abceedfda) sdbox: Make sure mail_attachment_fs=sis-queue isn't attempted to be used. It could be fixed, but nobody seems to have used it so far.. M src/lib-storage/index/dbox-common/dbox-storage.c 2012-10-12 00:29:41 +0300 Timo Sirainen (c94d8d6cd) sdbox: Class didn't have MAIL_STORAGE_CLASS_FLAG_FILE_PER_MSG set This currently only meant that mail_prefetch_count setting wasn't working. M src/lib-storage/index/dbox-single/sdbox-storage.c 2012-10-12 00:22:19 +0300 Timo Sirainen (c59b9c273) lib-fs API cleanups and improvements M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-common.h M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/index-attachment.c 2012-10-11 23:01:13 +0300 Timo Sirainen (2b01d7630) Compiler warning fix. M src/lib-http/http-url.c 2012-10-10 23:59:12 +0300 Stephan Bosch (1bd20e2a5) Add HTTP date parsing support. M src/lib-http/Makefile.am A src/lib-http/http-date.c A src/lib-http/http-date.h A src/lib-http/test-http-date.c A src/lib-http/test-http-header-parser.c 2012-10-10 23:57:56 +0300 Stephan Bosch (5394bed8a) Adds HTTP URL parse support. M configure.in M src/Makefile.am A src/lib-http/Makefile.am A src/lib-http/http-url.c A src/lib-http/http-url.h A src/lib-http/test-http-url.c 2012-10-10 23:56:01 +0300 Stephan Bosch (17c29e3e2) Adjust IMAP URL parser to changes in uri-util. M src/lib-imap/imap-url.c M src/lib-imap/test-imap-url.c 2012-10-10 23:55:21 +0300 Stephan Bosch (05262e313) uri-util: Fix handling of '..' and '.' segments in URI paths. As specified by RFC 3986 M src/lib/uri-util.c 2012-10-08 08:53:54 +0300 Timo Sirainen (3654618ca) master: If service { protocol } is set and not included in "protocols", ignore its settings M src/master/master-settings.c 2012-10-08 03:14:12 +0300 Timo Sirainen (854255e62) fts-lucene: doveadm fts rescan crashed with mailbox_list_index=yes M src/plugins/fts-lucene/lucene-wrapper.cc 2012-10-08 00:48:55 +0300 Timo Sirainen (b07cb607a) fts-lucene: Compile fix for previous unlink_directory() change M src/plugins/fts-lucene/lucene-wrapper.cc 2012-10-08 00:00:55 +0300 Timo Sirainen (e85a9aa0c) unlink_directory(): Added UNLINK_DIRECTORY_FLAG_SKIP_DOTFILES flag. M src/lib-storage/list/mailbox-list-delete.c M src/lib/unlink-directory.c M src/lib/unlink-directory.h 2012-10-05 00:15:01 +0300 Timo Sirainen (5ae75c7e3) lib-storage: Don't crash when searching multiple keywords. Fixed by simply removing the keyword merging code. mail_search_args_simplify() is called before mail_search_args_init(), so the keywords are still NULL and merging can't be done. Alternative fix would have been to add string array to mail_search_arg.value containing the keywords, but all of this is a pretty unnecessary optimization. M src/lib-storage/mail-search.c 2012-10-04 02:34:53 +0300 Timo Sirainen (289064eb2) lib-index: Simplified writing to dovecot.index.cache file. The old method was basically: - write max. 32 kB to internal buffer - flush it by writing to reserved areas (with no locks) The reserved areas were acquired by doing (whenever needed): - lock dovecot.index.cache - reserve data from dovecot.index.cache for writing, potentially increasing the file size by writing 0 bytes. the reserved area size varies. - unlock dovecot.index.cache This worked, but if multiple processes were writing to the cache file it could have left incomplete reserved areas as holes. The holes were attempted to be filled if they were large enough. The new method is: - write max. 256 kB to internal buffer - lock dovecot.index.cache - append the buffer to dovecot.index.cache - unlock dovecot.index.cache No reserved areas, holes or anything else weird going on. Ideally no data would be overwritten in the dovecot.index.cache file, only appended. Unfortunately currently some data is still overwritten: - mail_cache_header.{deleted_space,continued_record_count} - mail_cache_header_fields.next_offset when writing a new one - mail_cache_header_fields.{last_used,decision} - mail_cache_record.prev_offset The changing headers could eventually be moved to dovecot.index. This however is a backwards-incompatible change. The record's prev_offset could maybe simply just not be written in those (somewhat rare) problematic situations. M src/doveadm/doveadm-dump-index.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c 2012-10-04 02:08:23 +0300 Timo Sirainen (330206f29) dbox: Index rebuilding didn't open dovecot.index.backup file. Recent changes broke it, and it was attemting to use dovecot.index/.backup file instead. M src/lib-storage/index/index-rebuild.c 2012-10-04 00:56:14 +0300 Timo Sirainen (12d535f8c) Added/updated some copyright comments. M AUTHORS M src/doveadm/doveadm-pw.c M src/lib-imap/test-imap-url.c M src/lib-sql/driver-sqlite.c M src/lib/ioloop-epoll.c M src/lib/iso8601-date.c M src/lib/primes.c M src/lib/test-iso8601-date.c M src/master/capabilities-posix.c M src/plugins/notify/notify-plugin.c M src/plugins/notify/notify-storage.c 2012-10-03 18:17:26 +0300 Timo Sirainen (bdd36cfdb) Renamed network.[ch] to net.[ch]. The function prefixes already started with net_ instead of network_. And icecap wants to use network.h for other purpose. :) M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.h M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/db-ldap.c M src/auth/main.c M src/auth/passdb-pam.c M src/config/config-filter.h M src/config/settings-get.pl M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.h M src/director/director.h M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.h M src/doveadm/doveadm-director.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/server-connection.c M src/imap-login/client-authenticate.c M src/imap-login/client.h M src/imap-urlauth/imap-urlauth-client.c M src/imap-urlauth/imap-urlauth-login.c M src/imap-urlauth/imap-urlauth-worker.c M src/imap/cmd-idle.c M src/imap/cmd-urlfetch.c M src/imap/imap-client.c M src/lib-auth/auth-client.h M src/lib-auth/auth-master.c M src/lib-auth/auth-master.h M src/lib-auth/auth-server-connection.c M src/lib-dict/dict-client.c M src/lib-dns/dns-lookup.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-imap-urlauth/imap-urlauth-fetch.c M src/lib-imap/imap-url.c M src/lib-imap/test-imap-url.c M src/lib-lda/lmtp-client.c M src/lib-lda/lmtp-client.h M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-auth.h M src/lib-master/master-login-auth.c M src/lib-master/master-service-settings.h M src/lib-master/master-service.h M src/lib-settings/settings-parser.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/mail-storage-service.h M src/lib-storage/mail-user.c M src/lib/Makefile.am M src/lib/connection.c M src/lib/connection.h M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/ioloop-notify-inotify.c M src/lib/istream-file.c R099 src/lib/network.c src/lib/net.c R099 src/lib/network.h src/lib/net.h M src/lib/ostream-file.c M src/lib/sendfile-util.c M src/lib/test-network.c M src/lib/unix-socket-create.c M src/lib/uri-util.c M src/lmtp/client.h M src/lmtp/lmtp-proxy.h M src/login-common/access-lookup.c M src/login-common/client-common.h M src/login-common/login-proxy-state.c M src/login-common/login-proxy.h M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/master/master-settings.c M src/master/service-listen.c M src/master/service.h M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-script.c M src/plugins/quota/quota.c M src/plugins/replication/replication-plugin.c M src/plugins/stats/stats-connection.c M src/plugins/zlib/doveadm-zlib.c M src/pop3-login/client.h M src/pop3/pop3-client.c M src/replication/aggregator/notify-connection.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/doveadm-connection.c M src/stats/client-export.c M src/stats/mail-stats.h M src/util/rawlog.c 2012-10-03 16:57:28 +0300 Timo Sirainen (32fabcfd4) auth: More error checking and cleanups to SCRAM-SHA-1. M src/auth/mech-scram-sha1.c M src/auth/password-scheme-scram.c M src/auth/password-scheme.h 2012-10-03 05:43:27 +0300 Timo Sirainen (3f360d072) lib-storage: Fixed potential memory leak when mailbox_transaction_commit_get_changes() failed M src/lib-storage/mail-storage.c 2012-10-03 05:42:55 +0300 Timo Sirainen (a00b7f49d) lib-storage: When configuring mailbox INBOX {}, make sure INBOX is uppercased. M src/lib-storage/mailbox-list-iter.c 2012-10-03 05:41:46 +0300 Timo Sirainen (ffb79efca) lib-index: Fix for handling view syncing for already deleted transaction logs. The sync changes' hidden-flag was set randomly, which could have caused flag changes to get lost. M src/lib-index/mail-index-view-sync.c 2012-10-03 05:20:29 +0300 Timo Sirainen (ca26874b1) imap: LIST (SPECIAL-USE) shouldn't send INBOX reply. M src/imap/cmd-list.c 2012-10-03 05:15:11 +0300 Timo Sirainen (7e418deb5) maildir: Fixed crash with mailbox_list_index=yes M src/lib-storage/index/maildir/maildir-sync-index.c 2012-10-03 04:14:33 +0300 Timo Sirainen (8f2eb1ee9) lib-dict: Fixed error handling on initialization. M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c 2012-10-03 04:09:23 +0300 Timo Sirainen (d9515a2ea) lib-master: Fixed crashing with -i parameter handling. M src/lib-master/master-service.c 2012-10-03 04:01:59 +0300 Timo Sirainen (97cb20eb7) Typofix: s/TRANSCATION/TRANSACTION/ M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c 2012-10-03 01:38:20 +0300 Timo Sirainen (9a790c932) sdbox: Fix to handling transactions with partially failed saves. M src/lib-storage/index/dbox-single/sdbox-save.c 2012-10-03 01:26:42 +0300 Timo Sirainen (60f5757c6) mdbox: Fix to handling transactions with partially failed saves. M src/lib-storage/index/dbox-common/dbox-file.c 2012-10-03 01:20:22 +0300 Timo Sirainen (1e5c0372c) lib-storage: mailbox_save_cancel() now makes sure that dest_mail is reset. This fixes e.g. doveadm import, which continues import even though some messages couldn't be saved. M src/lib-storage/mail-storage.c 2012-10-03 01:19:19 +0300 Timo Sirainen (4906414a3) lib-storage: struct mail.close() now clears all of its data. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2012-10-03 01:12:13 +0300 Timo Sirainen (c3d9da395) dbox: Small code cleanup. M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-save.c 2012-10-02 23:24:10 +0300 Timo Sirainen (231f124bb) lib-storage: When index mkdir() fails with EPERM, create the dir anyway with 0700 mode. This avoids failing entirely when /var/mail/user has 0660 permissions and we don't have access to the group. The error message is still logged. M src/lib-storage/mailbox-list.c 2012-10-02 23:12:07 +0300 Timo Sirainen (0b617d3e0) lib-master: Fixed crashes with settings cache. M src/lib-master/master-service-settings-cache.c 2012-10-02 22:37:49 +0300 Timo Sirainen (da5bcae5b) doveadm: Fixed printing large input from doveadm-server. M src/doveadm/server-connection.c 2012-10-02 21:56:09 +0300 Timo Sirainen (a7e1fd461) mbox: Fixed getting filesystem permissions when parent dir has setgid-bit enabled. M src/lib-storage/mailbox-list.c 2012-10-02 21:36:43 +0300 Timo Sirainen (a00cebfb6) lmtp: Fixed hanging on proxying if remote server was down. Patch by Jack Bates. M src/lmtp/lmtp-proxy.c 2012-09-28 15:12:28 +0300 Timo Sirainen (a092650c6) Compiling fix for HURD M src/lib/compat.h 2012-09-28 15:11:30 +0300 Timo Sirainen (cf9abf15e) Avoid using PATH_MAX. M src/lib-storage/index/dbox-common/dbox-storage.c 2012-09-28 15:07:11 +0300 Timo Sirainen (63998e49b) Avoid using PATH_MAX. M src/lib-master/master-instance.c M src/lib-storage/index/dbox-common/dbox-storage.c 2012-09-27 02:55:14 +0300 Timo Sirainen (0c4eca80c) mdbox: Don't crash in storage rebuild if mail's "original mailbox" metadata is missing. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2012-09-27 00:19:41 +0300 Timo Sirainen (ab406f5c4) doveadm altmove: Make sure all storages get purged (and not more than once) M src/doveadm/doveadm-mail-altmove.c 2012-09-26 21:14:23 +0300 Timo Sirainen (9a1a4c2ca) i_getpwnam(): Ignore EINVAL errors silently. At least FreeBSD returns it when attempting to lookup user@domain. M src/lib/ipwd.c 2012-09-26 21:12:37 +0300 Timo Sirainen (a94f37b8c) lazy-expunge: Fixed handling non-default namespace separator. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2012-09-24 17:03:42 +0300 Timo Sirainen (be83284af) auth ldap: Previous change broke %$ variable. M src/auth/auth-request.c M src/auth/db-ldap.c 2012-09-24 16:49:29 +0300 Timo Sirainen (4bbc8a478) ldap auth: Update %variables after each field update. The previous behavior was a bit confusing. "uid=user" at the beginning updated the %u variable, but if it was after templates it didn't update it. Also "=user=%{uid}" that was supposed to be equivalent wasn't. Now the behavior is consistent across all ways to set the fields. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/db-ldap.c 2012-09-24 14:42:38 +0300 Timo Sirainen (360123b1b) lib-storage: Added ALTNOCHECK option to mail_location. By default Dovecot verifies that $rootdir/dbox-alt-root symlink matches the ALT directory location, and logs an error if not. This is mainly to avoid accidents during initial configuration when for example alt dir was set in global mail_location but was forgotten to be set in userdb reply's mail_location. The ALTNOCHECK setting simply doesn't check or create this symlink, giving a (very) small performance improvement. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2012-09-24 14:33:52 +0300 Timo Sirainen (02e8b5f55) lmtp: Added lmtp_rcpt_check_quota setting to check quota already on RCPT TO. M doc/example-config/conf.d/20-lmtp.conf M src/lmtp/commands.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2012-09-24 14:31:16 +0300 Timo Sirainen (9357960a3) lib-storage: Added STATUS_CHECK_OVER_QUOTA for checking if user is over quota. M src/lib-storage/mail-storage.h M src/plugins/quota/quota-storage.c 2012-09-24 14:24:58 +0300 Timo Sirainen (812c65b84) imapc: And another compile fix.. Using the macro would have required config/all-settings.c to include imapc-client.h, which is a bit too much trouble just for this. M src/lib-storage/index/imapc/imapc-settings.c 2012-09-24 14:22:40 +0300 Timo Sirainen (25351f434) imapc: Compile fix for previous change. M src/lib-storage/index/imapc/imapc-settings.c 2012-09-24 14:16:41 +0300 Timo Sirainen (b5bdc43c4) auth: passdb imap assert-crashed always M src/auth/passdb-imap.c 2012-09-24 14:16:32 +0300 Timo Sirainen (bf5a23889) imapc: Added IMAPC_DEFAULT_MAX_IDLE_TIME macro. M src/lib-imap-client/imapc-client.h M src/lib-storage/index/imapc/imapc-settings.c 2012-09-22 19:23:15 +0300 Timo Sirainen (eaccbf33a) lib-lda: After auto-creating mailbox only open it, don't bother syncing it. M src/lib-lda/mail-deliver.c 2012-09-21 11:44:17 +0200 Timo Sirainen (c68483511) mdbox: Delay getting permissions for map/message files. This avoids a stat() if no mailbox is opened. M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-map-private.h M src/lib-storage/index/dbox-multi/mdbox-map.c 2012-09-21 09:26:10 +0200 Timo Sirainen (a795ff053) lmtp: After successful proxying RCPT TO, the second one to nonexistent user gave tempfail error. Instead of "unknown user" it gave "Can't handle mixed proxy/non-proxy destinations". M src/lmtp/commands.c 2012-09-21 09:23:58 +0200 Timo Sirainen (e8694bd46) lmtp: RSET/LHLO should reset any pending proxy connections. M src/lmtp/client.c 2012-09-21 09:22:54 +0200 Timo Sirainen (059b4bb56) config: Don't ignore invalid network/mask in local/remote blocks M src/config/config-parser.c 2012-09-19 03:13:39 +0200 Florian Zeitz (8455d9a9d) auth: Add and use SCRAM-SHA-1 password scheme M src/auth/Makefile.am M src/auth/mech-scram-sha1.c A src/auth/password-scheme-scram.c M src/auth/password-scheme.c M src/auth/password-scheme.h 2012-10-03 03:20:57 +0300 Timo Sirainen (11db8fc48) imap: If CLOSE/EXPUNGE fails with "permission denied", return tagged OK anyway. M src/imap/cmd-close.c M src/imap/cmd-expunge.c 2012-10-03 03:20:15 +0300 Timo Sirainen (742230f6e) acl: Don't silently ignore permission error on expunge. M src/plugins/acl/acl-mailbox.c 2012-10-03 03:19:20 +0300 Timo Sirainen (24491cfd5) imap: Removed unnecessary code. M src/imap/cmd-expunge.c M src/imap/imap-client.h M src/imap/imap-sync.c 2012-10-03 02:29:02 +0300 Timo Sirainen (8c5eeb1ab) imap: Fixed partial FETCHes. M src/lib-imap-storage/imap-msgpart.c 2012-10-03 02:28:44 +0300 Timo Sirainen (714611c56) lib-mail: Moved message_skip_virtual() to message-size.[ch] and changed API M src/lib-mail/Makefile.am D src/lib-mail/message-send.c D src/lib-mail/message-send.h M src/lib-mail/message-size.c M src/lib-mail/message-size.h 2012-10-03 02:28:31 +0300 Timo Sirainen (9e1d2c85b) imap: Removed unnecessary #includes M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c 2012-09-30 19:11:55 +0300 Timo Sirainen (0c1835a90) Added [io]_stream_create_error() for creating streams that always fail reads/writes. M src/lib/istream.c M src/lib/istream.h M src/lib/ostream.c M src/lib/ostream.h 2012-10-03 00:41:18 +0300 Timo Sirainen (e31bf6003) auth: Don't add proxy/pass fields when we're only authenticating (not logging in). For example SMTP server doesn't need these fields when doing SMTP AUTH. M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h 2012-09-18 21:42:34 +0300 Timo Sirainen (3f1d004a6) Added signature for changeset 1a6c3b4e92e4 M .hgsigs 2012-09-18 21:42:27 +0300 Timo Sirainen (54955c2bc) Added tag 2.1.10 for changeset 1a6c3b4e92e4 M .hgtags 2012-09-18 21:42:27 +0300 Timo Sirainen (01ebee368) Released v2.1.10. M NEWS M configure.in 2012-09-18 20:53:50 +0300 Timo Sirainen (ff057a48c) fts-lucene: Compiling fix for previous change M src/plugins/fts-lucene/lucene-wrapper.cc 2012-09-18 20:48:25 +0300 Timo Sirainen (3f902db3a) director: Fixed weak-user handling when there is only one director. M src/director/director-request.c 2012-09-18 20:09:03 +0300 Timo Sirainen (6dbe040bd) fts-lucene: Added "normalize" option to put data through user's normalizer function. M src/plugins/fts-lucene/Snowball.cc M src/plugins/fts-lucene/SnowballAnalyzer.h M src/plugins/fts-lucene/SnowballFilter.h M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/fts-lucene-plugin.h M src/plugins/fts-lucene/lucene-wrapper.cc 2012-09-18 20:07:21 +0300 Timo Sirainen (d74c9540c) Backported parts of normalizer_func_t changes from v2.2 tree. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h M src/lib/unichar.h 2012-09-18 20:06:56 +0300 Timo Sirainen (65cca8364) lib-storage: Compiling fix for previous alias symlink change M src/lib-storage/mailbox-list.c 2012-09-18 19:57:48 +0300 Timo Sirainen (eefd88493) auth: userdb static used auth caching wrong when verifying user existence with passdb lookup. Cache entries were being looked/added for userdbs instead of passdbs. This caused problems at least with: a) Multiple userdbs (where static userdb was the last). Passdb results were added as cache entries to the first userdbs, possibly causing some confusion. b) Multiple passdbs, because the first passdb result was added to cache and used for the rest of the passdbs. M src/auth/userdb-static.c 2012-09-18 19:16:04 +0300 Timo Sirainen (d7babe048) quota: Allow negative percentage rules up to -99% M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2012-09-18 18:44:46 +0300 Timo Sirainen (7313101ef) Added mailbox-alias plugin. Aliases can be created like: plugin { mailbox_alias_old = Sent mailbox_alias_new = Sent Messages mailbox_alias_old2 = Sent mailbox_alias_new2 = Sent Items } When creating an alias, the original mailbox is also created. The alias itself is a symlink to the original. Deleting an alias deletes the symlink. The original mailbox can't be deleted or renamed while it has aliases. Aliases cannot be renamed. Aliases are skipped when recalculating quota. If a mailbox with the alias's name was already created before the aliasing was enabled, it's not treated as alias until it's first deleted. M configure.in M src/plugins/Makefile.am A src/plugins/mailbox-alias/Makefile.am A src/plugins/mailbox-alias/mailbox-alias-plugin.c A src/plugins/mailbox-alias/mailbox-alias-plugin.h 2012-09-18 18:41:01 +0300 Timo Sirainen (9dfd7d436) fts-solr: Skip alias symlinks when rescanning. M src/plugins/fts-solr/fts-backend-solr.c 2012-09-18 18:40:46 +0300 Timo Sirainen (09b4a5074) quota: Skip alias symlinks when calculating quota M src/plugins/quota/quota-count.c M src/plugins/quota/quota-maildir.c 2012-09-18 18:40:17 +0300 Timo Sirainen (77b5fd56e) lib-storage: MAILBOX_LIST_ITER_SKIP_ALIASES now skips also "alias symlinks" An "alias symlink" is a symlink that points to the same directory. These can safely be skipped when iterating through all mails in all mailboxes (unlike other symlinks that may point to external storages). M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2012-09-14 20:51:02 +0300 Timo Sirainen (fcb5f4cd7) pop3c: Fetching message size could have returned wrong value M src/lib-storage/index/pop3c/pop3c-mail.c 2012-09-12 00:20:47 +0300 Timo Sirainen (dff32d11a) director: Improved logging related to disconnections. M src/director/director-connection.c M src/director/director-connection.h M src/director/director.c M src/director/director.h 2012-09-12 00:04:34 +0300 Timo Sirainen (33e3cf377) director: Already seen USER-WEAK command caused director to disconnect. M src/director/director-connection.c 2012-09-11 20:45:38 +0300 Timo Sirainen (002858d28) imapc: Fixed parsing "text" input after OK/NO/BAD/BYE. M src/lib-imap-client/imapc-connection.c 2012-09-11 20:44:37 +0300 Timo Sirainen (0bd9face8) lib-imap: Added IMAP_PARSE_FLAG_SERVER_TEXT that fixes parsing input from IMAP server. M src/lib-imap/imap-parser.c M src/lib-imap/imap-parser.h 2012-09-11 19:14:09 +0300 Dafan Zhai (55a2e570d) lib-storage: Fixed memory leak getting MAILBOX_METADATA_VIRTUAL_SIZE Function virtual_size_add_new forgets to free the 'search_args' object after it searches the mails. --- src/lib-storage/index/index-status.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) M src/lib-storage/index/index-status.c 2012-09-11 18:42:05 +0300 Timo Sirainen (2984b6b09) Decrease minimum memory allocations. This is mainly to avoid wasting settings-related memory for IMAP processes. Probably something more radical should be done at some point. M src/lib-imap/imap-parser.c M src/lib-settings/settings-parser.c M src/lib-storage/mail-storage-service.c M src/lib/hash.c 2012-09-11 18:26:33 +0300 Timo Sirainen (1439ac8e6) lib-master: Decrease initial memory pool size M src/lib-master/master-service-settings-cache.c 2012-09-11 17:13:51 +0300 Timo Sirainen (ee2f57489) acl: Don't add sameuser -> sameuser entries to ACL dict. M src/plugins/acl/acl-lookup-dict.c 2012-09-06 16:50:00 +0300 Timo Sirainen (f2a1955d9) doveadm: Added exec command to easily execute commands from libexec_dir. For example: doveadm exec imap -u user@domain M src/doveadm/Makefile.am M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/doveadm.c 2012-09-04 17:18:08 +0300 Timo Sirainen (12976f028) lib-storage: Added "disabled" setting for namespaces. M src/lib-storage/mail-namespace.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2012-09-02 16:06:45 +0300 Timo Sirainen (9a312bf5e) Various fixes to listing mailboxes. Some of these are a bit kludgy, v2.2 has a larger rewrite of the code to implement them more nicely. M src/imap/cmd-list.c M src/lib-storage/list/mailbox-list-fs-iter.c 2012-08-31 16:19:21 +0300 Timo Sirainen (e5c3a8099) mbox: Fix to previous public namespace location detection crashfix. M src/lib-storage/index/mbox/mbox-storage.c 2012-08-31 16:17:23 +0300 Timo Sirainen (860e6dd60) lib-storage: Don't crash when trying to detect public namespace's mail_location. Public namespaces have no owner. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c 2012-08-30 21:56:43 +0300 Timo Sirainen (4396b62b9) layout=fs mailbox listing: Fix to prefix=INBOX/ handling M src/lib-storage/list/mailbox-list-fs-iter.c 2012-08-30 00:43:56 +0200 Florian Zeitz (0a3769a4e) lib: Generalize hmac to be hash independent M src/auth/auth-token.c M src/auth/mech-cram-md5.c M src/auth/mech-scram-sha1.c M src/auth/password-scheme.c M src/lib-imap-urlauth/imap-urlauth.c M src/lib-ntlm/ntlm-encrypt.c M src/lib/Makefile.am A src/lib/hmac-cram-md5.c A src/lib/hmac-cram-md5.h D src/lib/hmac-md5.c D src/lib/hmac-md5.h D src/lib/hmac-sha1.c D src/lib/hmac-sha1.h A src/lib/hmac.c A src/lib/hmac.h 2012-10-02 22:45:34 +0300 Timo Sirainen (54fa2c9c1) lib-imap: Minor fix to imap_url_parse() M src/lib-imap/imap-url.c 2012-09-28 15:11:54 +0300 Timo Sirainen (cf637d2ad) Compiler warning fix for previous change M src/lib-storage/index/dbox-common/dbox-storage.c 2012-09-28 15:07:11 +0300 Timo Sirainen (afc8d11e8) Avoid using PATH_MAX. M src/lib-master/master-instance.c M src/lib-storage/index/dbox-common/dbox-storage.c 2012-09-28 02:19:07 +0300 Timo Sirainen (8820df795) maildir: Directories were created without execute-permissions Broken by recent changes. M src/lib-storage/index/maildir/maildir-storage.c 2012-09-28 00:11:19 +0300 Timo Sirainen (e0aff4c7e) lib-storage: Added initial implementation for layout=index. The idea is that all of the mailbox names only exist in the mailbox list index. Storage directories use mailbox GUIDs. This avoids all kinds of race conditions with mailbox renames. mailbox_list_index=yes is required for this layout to work. There are probably still some race conditions within the indexing code itself. Also error recovery is missing. M configure.in M src/lib-storage/list/Makefile.am M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-delete.h M src/lib-storage/list/mailbox-list-fs.c A src/lib-storage/list/mailbox-list-index-backend.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c A src/lib-storage/list/mailbox-list-index-storage.h M src/lib-storage/list/mailbox-list-index-sync.c A src/lib-storage/list/mailbox-list-index-sync.h M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/list/mailbox-list-maildir.c 2012-09-28 00:03:12 +0300 Timo Sirainen (8e853397a) lib-storage: Do mailbox autocreation elsewhere also besides just mailbox_open() M src/lib-storage/mail-storage.c 2012-09-28 00:00:16 +0300 Timo Sirainen (68664df76) lib-storage: If trying to rename mailbox over itself, fail early. M src/lib-storage/mail-storage.c 2012-09-27 23:58:54 +0300 Timo Sirainen (bb6301e25) doveadm dump -t index: Added support for mailbox list index records. M src/doveadm/doveadm-dump-index.c 2012-09-26 20:50:08 +0300 Timo Sirainen (9fc97c8aa) lib-storage: mailbox_get_path() and friends can now return an error. An upcoming "index" mailbox_list backend uses mailbox GUIDs as the directory names. Doing a name => GUID lookup may fail, so the path lookup may fail. This is a somewhat annoying change and perhaps it can be removed in future, but for now it looks like it can't be avoided. M src/doveadm/dsync/doveadm-dsync.c M src/indexer/master-connection.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/doveadm-acl.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts/fts-storage.c M src/plugins/mailbox-alias/mailbox-alias-plugin.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota.c 2012-09-26 18:01:01 +0300 Timo Sirainen (fca7aa88a) Merged changes from v2.1 tree. 2012-09-26 17:17:08 +0300 Timo Sirainen (25ad65a0d) lib-storage: Cleanup, use the new mailbox_*() instead of mailbox_list_*() when possible. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage.c 2012-09-26 17:11:22 +0300 Timo Sirainen (94f84d1c3) lib-storage: Cleanups to mailbox mkdir() related functions. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/fts-lucene/fts-backend-lucene.c 2012-09-26 02:31:33 +0300 Timo Sirainen (67131ca00) lib-storage: Make sure permissions are refreshed after creating mailbox directory. M src/lib-storage/index/index-storage.c 2012-09-26 01:47:21 +0300 Timo Sirainen (3d5d5a26f) lib-storage: Fixed creating selectable mailbox when it was already \Noselect M src/lib-storage/index/index-storage.c 2012-09-26 01:38:59 +0300 Timo Sirainen (76b91bac7) lib-storage: mailbox_list_get_root_permissions() now returns struct mailbox_permissions. M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-map-private.h M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/lib-storage/mailbox-uidvalidity.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/quota/quota-maildir.c 2012-09-26 00:56:08 +0300 Timo Sirainen (6c75379a3) lib-storage: Invalid subscription entries weren't removed always with subscriptions=no namespaces. M src/lib-storage/list/mailbox-list-subscriptions.c 2012-09-26 00:38:45 +0300 Timo Sirainen (569a84922) lib-storage: Allow mailbox name to begin with separator if mail_full_filesystem_access=yes M src/lib-storage/mail-storage.c 2012-09-26 00:35:10 +0300 Timo Sirainen (3d6fdafca) lib-storage: Removed mailbox_list.create_mailbox_dir() virtual function. It really didn't need to be virtual. Some storages didn't care about it, others wanted it to work basically the same. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-private.h M src/plugins/acl/acl-mailbox-list.c 2012-09-26 00:25:21 +0300 Timo Sirainen (da1c31ec5) maildir: Minor fixes and code cleanup to mailbox creation. M src/lib-storage/index/maildir/maildir-storage.c 2012-09-26 00:23:02 +0300 Timo Sirainen (48ce03445) lib-storage: Improved mailbox_list_mkdir() error handling. M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2012-09-25 23:38:14 +0300 Timo Sirainen (e2f29d05a) lib-storage: Create "maildirfolder" file only with maildir storage. Previously it was created for all storages, as long as they used LAYOUT=maildir++. The file is mainly meant for MDAs that want to update maildirsize quota, but that's only available for Maildir storage. M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/list/mailbox-list-maildir.c 2012-09-25 23:23:53 +0300 Timo Sirainen (a71cf79a9) lib-storage: Removed unused MAILBOX_DIR_CREATE_TYPE_ONLY_NOSELECT M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mailbox-list-private.h 2012-09-25 22:53:36 +0300 Timo Sirainen (e9df0f285) Various cleanups to checking if mailbox name is valid. M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/plugins/acl/acl-backend-vfile.c 2012-09-25 22:51:46 +0300 Timo Sirainen (753f22d1c) lib-storage: Fixed shared namespace autocreation after previous mailbox list changes. mailbox_list_is_valid_existing_name() no longer goes all the way through to shared-list backend, but mailbox_list_join_refpattern() does. M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-subscriptions.c 2012-09-25 22:40:55 +0300 Timo Sirainen (c9160ac09) lib-fs: Fix to previous change M src/lib-fs/fs-api.c 2012-09-25 21:45:00 +0300 Timo Sirainen (442b4c6c0) lib-storage: Removed mailbox list backend-specific mailbox name/pattern validation. The virtual name validity is independent of the backend. The physical name is always used for paths in filesystem, so it can also be verified with common code. Backend's mailbox_dir and storage's internal directories can also be checked. There's nothing else left really. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-fs.h M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-maildir.h M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2012-09-25 21:31:41 +0300 Timo Sirainen (1f149331f) lib-storage: Removed unused mailbox_list_create_dir() M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2012-09-25 21:27:30 +0300 Timo Sirainen (d508ab8db) lib-storage: If list escape_char is set, allow ".", ".." and "dbox-Mails" mailbox names. M src/lib-storage/mailbox-list.c 2012-09-25 20:51:07 +0300 Timo Sirainen (dd98481a8) lib-storage: Added asserts to make sure mailbox_open() is called early enough. M src/lib-storage/mail-storage.c 2012-09-25 20:15:58 +0300 Timo Sirainen (feaa6a3d8) lib-storage: Added mailbox_get_path_to() wrapper for mailbox_list_get_path(). Changed the code to use as much of mailbox_get_path_to() and mailbox_get_path() as possible. M src/indexer/Makefile.am M src/indexer/master-connection.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/index-rebuild.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/plugins/acl/doveadm-acl.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/quota/quota-fs.c 2012-09-25 17:44:37 +0300 Timo Sirainen (463072825) lib-fs: Minor code cleanup M src/lib-fs/fs-api.c 2012-09-25 17:42:44 +0300 Timo Sirainen (268b72128) lib-storage: Added mail_storage_copy_error() M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2012-09-25 17:41:58 +0300 Timo Sirainen (592164793) lib-index: Transaction log creation crashed if required extension name length wasn't divisible by 4. M src/lib-index/mail-transaction-log-file.c 2012-09-25 17:37:55 +0300 Timo Sirainen (27635b9f2) lib-storage: Moved dbox-sync-rebuild API to more generic index-rebuild. M src/lib-storage/index/Makefile.am M src/lib-storage/index/dbox-common/Makefile.am D src/lib-storage/index/dbox-common/dbox-sync-rebuild.h M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c R078 src/lib-storage/index/dbox-common/dbox-sync-rebuild.c src/lib-storage/index/index-rebuild.c A src/lib-storage/index/index-rebuild.h 2012-09-25 17:31:15 +0300 Timo Sirainen (755abfa2b) dbox: Renamed dbox_sync_rebuild_verify_alt_storage() to dbox_verify_alt_storage() M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-storage.h M src/lib-storage/index/dbox-common/dbox-sync-rebuild.c M src/lib-storage/index/dbox-common/dbox-sync-rebuild.h M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c 2012-09-24 16:33:07 +0300 Timo Sirainen (cf1b789e2) doveadm: Install doveadm-settings.h header M src/doveadm/Makefile.am 2012-09-22 19:23:15 +0300 Timo Sirainen (bd5ef3350) lib-lda: After auto-creating mailbox only open it, don't bother syncing it. M src/lib-lda/mail-deliver.c 2012-09-22 19:21:58 +0300 Timo Sirainen (498c6beaa) imapc: Fixed crash when saving/copying messages. M src/lib-storage/index/imapc/imapc-save.c 2012-09-20 01:01:20 +0300 Timo Sirainen (3b3a70990) config: Fixes to previous module change. M src/config/config-connection.c M src/config/config-request.c M src/config/doveconf.c 2012-09-19 18:07:46 +0300 Timo Sirainen (3c932c0a2) lib-storage: Verify that the shared library's version matches the binary's version. M src/lib-storage/mail-storage-service.c 2012-09-19 17:49:28 +0300 Timo Sirainen (839161921) imap: Fixed crashing in QRESYNC SELECT. M src/imap/cmd-fetch.c M src/imap/cmd-select.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h M src/imap/imap-search-args.c M src/imap/imap-search-args.h 2012-09-19 15:34:00 +0300 Timo Sirainen (32b78da5d) Read SSL settings only if service has SSL sockets or MASTER_SERVICE_FLAG_USE_SSL_SETTINGS. M src/auth/auth-settings.c M src/lib-master/master-service-private.h M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-master/master-service-ssl-settings.c M src/lib-master/master-service.c M src/lib-master/master-service.h M src/lib-storage/mail-storage-service.c M src/lmtp/lmtp-settings.c M src/login-common/login-settings.c M src/login-common/main.c 2012-09-19 15:33:10 +0300 Timo Sirainen (633a3da9d) config: Support looking up config for multiple modules at the same time. M src/config/config-connection.c M src/config/config-filter.c M src/config/config-filter.h M src/config/config-parser-private.h M src/config/config-parser.c M src/config/config-parser.h M src/config/config-request.c M src/config/config-request.h M src/config/doveconf.c M src/config/main.c 2012-09-18 05:12:28 +0300 Timo Sirainen (533bf074a) lib-fs: Fix to previous API change M src/lib-fs/fs-api.c 2012-09-17 18:13:32 +0300 Timo Sirainen (d4c3d5502) lib-fs: fs_init() API changed to allow returning an error. M src/lib-fs/fs-api-private.h M src/lib-fs/fs-api.c M src/lib-fs/fs-api.h M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-storage/index/dbox-common/dbox-storage.c 2012-09-17 17:51:03 +0300 Timo Sirainen (20d7236c0) sdbox: Removed unnecessary code line. M src/lib-storage/index/dbox-single/sdbox-storage.h 2012-09-16 16:48:48 +0300 Timo Sirainen (1c522e0fc) Makefile: Fixed building fts-squat M src/plugins/fts-squat/Makefile.am 2012-09-16 16:42:25 +0300 Timo Sirainen (791230632) Makefile: Again changes to handling test program dependencies. .la libraries need to link .lo files, .a libraries need to link .o files. Changed dsync to be .la library for consistency. M src/doveadm/Makefile.am M src/doveadm/dsync/Makefile.am M src/lib-dict/Makefile.am M src/lib-imap/Makefile.am M src/lib-index/Makefile.am M src/lib-mail/Makefile.am M src/lib-storage/Makefile.am M src/plugins/fts/Makefile.am 2012-09-16 16:31:32 +0300 Timo Sirainen (a8fe89960) Removed all the "enum foo;" declarations. They didn't seem to be very standard. Old gcc versions warn about them and C++ code doesn't like them. M src/auth/passdb-cache.h M src/config/config-request.h M src/config/old-set-parser.h M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.h M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/doveadm-mailbox-list-iter.h M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/imap/cmd-list.c M src/imap/cmd-notify.c M src/imap/imap-notify.c M src/lib-imap/imap-util.h M src/lib-index/mail-index-modseq.h M src/lib-lda/mail-deliver.h M src/lib-storage/Makefile.am M src/lib-storage/index/imapc/imapc-sync.h M src/lib-storage/index/maildir/maildir-sync.h M src/lib-storage/list/mailbox-list-delete.h M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/list/mailbox-list-subscriptions.h A src/lib-storage/mailbox-list-iter.h M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.h M src/plugins/notify/notify-plugin.h M src/plugins/quota/quota-count.c M src/plugins/virtual/virtual-config.c 2012-09-16 16:12:03 +0300 Timo Sirainen (f561fba30) Compiler warning fixes for 32bit systems. M src/director/user-directory.c M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/list/mailbox-list-index.c M src/lib/json-parser.c 2012-09-16 16:08:18 +0300 Timo Sirainen (f0cd1d002) Fixed compiling with OSes where NULL isn't defined as void pointer (e.g. Solaris). M src/anvil/main.c M src/auth/auth-request-handler.c M src/auth/userdb-passwd.c M src/director/director-test.c M src/imap/imap-fetch-body.c M src/lib-index/mail-index-alloc-cache.c M src/lib-storage/index/index-search.c M src/lib/lib-signals.c M src/replication/replicator/replicator.c 2012-09-16 16:02:22 +0300 Stephan Bosch (4fa772eef) imap-urlauth: Fixed crashes when destroying client M src/imap-urlauth/imap-urlauth-worker.c 2012-09-16 16:02:18 +0300 Stephan Bosch (ecc3dad21) imap-urlauth: Treat internal errors in URL fetching differently from invalid URLs. M src/imap-urlauth/imap-urlauth-worker.c M src/lib-imap-urlauth/imap-urlauth-fetch.c 2012-09-16 16:02:15 +0300 Stephan Bosch (6541da947) imap-urlauth: Fixes to handling anonymous user M src/imap-urlauth/imap-urlauth-worker.c M src/imap/imap-client.c M src/lib-imap-urlauth/imap-urlauth-private.h M src/lib-imap-urlauth/imap-urlauth.c M src/lib-imap-urlauth/imap-urlauth.h 2012-09-16 16:02:11 +0300 Stephan Bosch (dc599de60) lib-dict: Previous API change broke dict_init() M src/lib-dict/dict-file.c 2012-09-16 15:40:10 +0300 Timo Sirainen (41e6163a8) Makefile: Fixed test program dependencies Explicit dependencies on .o or .lo files didn't seem to work properly and with high enough make -j value the build failed. Depending on the entire library guarantees that all the individual .o files have been built. M src/anvil/Makefile.am M src/auth/Makefile.am M src/director/Makefile.am M src/doveadm/dsync/Makefile.am M src/lib-dict/Makefile.am M src/lib-imap/Makefile.am M src/lib-index/Makefile.am M src/lib-mail/Makefile.am M src/lib-storage/Makefile.am M src/plugins/fts-squat/Makefile.am M src/plugins/fts/Makefile.am 2012-09-16 04:16:07 +0300 Timo Sirainen (8204c6af8) Makefile: Link libdovecot-ssl with libdovecot. This fixes linking with e.g. OSX. M src/lib-dovecot/Makefile.am 2012-09-16 04:05:13 +0300 Timo Sirainen (5ee7c6491) Makefile: Fixed dependencies for imap-urlauth M src/imap-urlauth/Makefile.am 2012-09-16 01:08:11 +0300 Timo Sirainen (22186f004) Makefile: Fixed imap-urlauth library dependencies M src/imap-urlauth/Makefile.am 2012-09-16 01:06:04 +0300 Timo Sirainen (c6addce40) lib-imap-storage: imap_msgpart_size() should return size as uoff_t, not size_t M src/imap/imap-fetch-body.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-storage/imap-msgpart.h 2012-09-16 01:02:10 +0300 Timo Sirainen (53ba38f77) imap: Assert-crashfix for URLFETCH command. M src/imap/imap-client.c 2012-09-16 00:56:51 +0300 Timo Sirainen (d03a871a7) Renamed str_tabescape_write() to str_append_tabescaped() M src/anvil/connect-limit.c M src/anvil/penalty.c M src/auth/auth-master-connection.c M src/auth/auth-stream.c M src/auth/checkpassword-reply.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-print-server.c M src/doveadm/dsync/dsync-ibc-stream.c M src/doveadm/dsync/dsync-serializer.c M src/imap-urlauth/imap-urlauth-client.c M src/indexer/worker-connection.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-master.c M src/lib-imap-urlauth/imap-urlauth-connection.c M src/lib-master/master-instance.c M src/lib-master/master-login.c M src/lib/strescape.c M src/lib/strescape.h M src/log/doveadm-connection.c M src/master/service-process.c M src/plugins/replication/replication-plugin.c M src/plugins/stats/stats-connection.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/replicator-queue.c M src/stats/client-export.c M src/util/script-login.c 2012-09-16 00:52:39 +0300 Timo Sirainen (103995596) dict_init() API changed to return int. M src/auth/db-dict.c M src/dict/dict-connection.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-private.h M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h M src/lib-imap-urlauth/imap-urlauth-backend.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/quota/quota-dict.c 2012-09-15 23:57:08 +0300 Stephan Bosch (f9511e684) Added support for IMAP URLAUTH and URLAUTH=BINARY extensions Extends imap service with URLAUTH and URLAUTH=BINARY support: - Adds new commands URLFETCH, GENURLAUTH and RESETKEY. Creates imap-urlauth service in src/imap-urlauth. Functionality common to both the imap and imap-urlauth services is located in src/lib-imap-urlauth. TODO: - use mailbox GUIDs instead of names - doveadm command to delete stale urlauth entries? - add delay when attempting to access nonexistent user - create urlauth-worker queue, similar to how indexer-worker works (could we share code?..) M .hgignore M README M configure.in M src/Makefile.am A src/imap-urlauth/Makefile.am A src/imap-urlauth/imap-urlauth-client.c A src/imap-urlauth/imap-urlauth-client.h A src/imap-urlauth/imap-urlauth-common.h A src/imap-urlauth/imap-urlauth-login-settings.c A src/imap-urlauth/imap-urlauth-login-settings.h A src/imap-urlauth/imap-urlauth-login.c A src/imap-urlauth/imap-urlauth-settings.c A src/imap-urlauth/imap-urlauth-settings.h A src/imap-urlauth/imap-urlauth-worker-settings.c A src/imap-urlauth/imap-urlauth-worker-settings.h A src/imap-urlauth/imap-urlauth-worker.c A src/imap-urlauth/imap-urlauth.c M src/imap/Makefile.am A src/imap/cmd-genurlauth.c A src/imap/cmd-resetkey.c A src/imap/cmd-urlfetch.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c M src/imap/imap-commands.h M src/imap/imap-settings.c M src/imap/imap-settings.h M src/imap/main.c A src/lib-imap-urlauth/Makefile.am A src/lib-imap-urlauth/imap-urlauth-backend.c A src/lib-imap-urlauth/imap-urlauth-backend.h A src/lib-imap-urlauth/imap-urlauth-connection.c A src/lib-imap-urlauth/imap-urlauth-connection.h A src/lib-imap-urlauth/imap-urlauth-fetch.c A src/lib-imap-urlauth/imap-urlauth-fetch.h A src/lib-imap-urlauth/imap-urlauth-private.h A src/lib-imap-urlauth/imap-urlauth.c A src/lib-imap-urlauth/imap-urlauth.h 2012-09-15 21:00:54 +0300 Timo Sirainen (109de6bde) lib-imap-storage: imap_msgpart_bodypartstructure() returned freed data. M src/lib-imap-storage/imap-msgpart.c 2012-09-15 19:56:47 +0300 Timo Sirainen (7c3322665) lib-index: Removed MAIL_INDEX_SYNC_TYPE_APPEND. No backend cares about it. M src/lib-index/mail-index-sync.c M src/lib-index/mail-index.h M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-sync-changes.c M src/plugins/virtual/virtual-sync.c 2012-09-15 19:54:21 +0300 Timo Sirainen (724b7fcf2) lib-index: Changed mail_index_set_fsync_mode() to use a separate enum for the mask. M src/lib-index/mail-index-private.h M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index.c M src/lib-index/mail-index.h M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-common/dbox-storage.c 2012-09-15 19:12:04 +0300 Timo Sirainen (0c6b58419) lib-imap: Fixed Content-Language parsing from BODYSTRUCTURE M src/lib-imap/imap-bodystructure.c M src/lib-imap/test-imap-bodystructure.c 2012-09-15 19:08:55 +0300 Timo Sirainen (ebe49ef9c) imap-bodystructure.h comment fix M src/lib-imap/imap-bodystructure.h 2012-09-15 19:08:11 +0300 Timo Sirainen (a32e42550) imap-bodystructure.h comment update M src/lib-imap/imap-bodystructure.h 2012-09-15 19:06:37 +0300 Timo Sirainen (7717e3cd1) lib-imap: Updated test-imap-bodystructure M src/lib-imap/test-imap-bodystructure.c 2012-09-15 19:00:32 +0300 Timo Sirainen (d65184737) lib-imap-storage: Added support for getting BODYPARTSTRUCTURE Based on patch by Stephan Bosch. M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart-url.h M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-storage/imap-msgpart.h 2012-09-15 18:58:48 +0300 Timo Sirainen (405615248) lib-imap: Added support for parsing IMAP BODYSTRUCTURE and writing out a modified version. M src/lib-imap/Makefile.am M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h A src/lib-imap/test-imap-bodystructure.c 2012-09-15 16:13:02 +0300 Timo Sirainen (0000bf8b0) imap_body_parse_from_bodystructure() now returns the error instead of logging it. M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-bodystructure.h M src/lib-storage/index/index-mail.c 2012-09-15 15:46:01 +0300 Timo Sirainen (5f44975ec) lib-storage: Moved index_mail.data_pool to mail_private.data_pool M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/mail-storage-private.h M src/plugins/virtual/virtual-mail.c 2012-09-15 03:49:23 +0300 Timo Sirainen (88b9f9eb9) fts-lucene: Added "normalize" option to put data through normalize(). M src/plugins/fts-lucene/Snowball.cc M src/plugins/fts-lucene/SnowballAnalyzer.h M src/plugins/fts-lucene/SnowballFilter.h M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/fts-lucene-plugin.h M src/plugins/fts-lucene/lucene-wrapper.cc 2012-09-15 03:12:20 +0300 Timo Sirainen (d9076f593) Replaced "decomposed titlecase" conversions with more generic normalizer function. Plugins can now change mail_user.default_normalizer. Specific searches can also use different normalizers by changing mail_search_context.normalizer. M src/doveadm/doveadm-mail-fetch.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-charset/charset-utf8.h M src/lib-imap/imap-base-subject.c M src/lib-mail/message-decoder.c M src/lib-mail/message-decoder.h M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-decode.h M src/lib-mail/message-search.c M src/lib-mail/message-search.h M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-storage/index/index-search.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h M src/lib/unichar.h M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c 2012-09-15 03:09:57 +0300 Timo Sirainen (3412b625d) uni_utf8_to_decomposed_titlecase(): Require input length to be exact now. Most of the callers did that already anyway M src/lib-storage/index/index-sort.c M src/lib/unichar.c M src/lib/unichar.h 2012-09-14 23:11:27 +0300 Timo Sirainen (46ec5983b) Use "tokenlogin" socket name (instead of "token-login") after all. Auth code has special checks for '-', which breaks "token-login" and fixing it is rather annoying. M src/auth/auth-settings.c M src/login-common/login-common.h 2012-09-14 22:10:49 +0300 Timo Sirainen (5b89f4d0c) auth: Auth workers don't need to read token secret. M src/auth/main.c 2012-09-14 21:48:45 +0300 Stephan Bosch (ab90f702c) Added support to perform token-based service process authentication. Creates hidden SASL method DOVECOT-TOKEN. This method is not available on the normal auth login socket and thus never presented to clients. Creates new auth socket type 'tokenlogin'. This otherwise normal login socket only offers authentication using the DOVECOT-TOKEN mechanism. Creates new token-login directory in base_dir to separate token logins from normal logins. This directory is otherwise completely identical to the normal login dir, i.e. it contains sockets for the service backends, used to chroot login processes to, etc. Makes default login socket configurable. Performs some minor changes to src/login-common to build very sparse protocols, e.g. avoid the need to implement methods that are not needed. M src/auth/Makefile.am M src/auth/auth-client-connection.c M src/auth/auth-client-connection.h M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request-handler.h M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-settings.c A src/auth/auth-token.c A src/auth/auth-token.h M src/auth/main.c A src/auth/mech-dovecot-token.c M src/auth/mech.h M src/imap/main.c M src/lib-master/master-login-auth.c M src/lib-master/master-login-auth.h M src/lib-master/master-login.c M src/lib-master/master-login.h M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.h M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-common.h M src/login-common/main.c M src/master/master-settings.c 2012-09-14 21:31:45 +0300 Timo Sirainen (8d9c4869a) hmac_sha1_init(): Use void pointer for the key. M src/lib/hmac-sha1.c M src/lib/hmac-sha1.h 2012-09-14 21:11:42 +0300 Stephan Bosch (a22f62ebb) lib-imap-storage: Changed imap_msgpart_url API. Adds enum mail_error return value to imap_msgpart_url_open_mailbox(). Now parses msgpart at the beginning and adds function to access underlying imap_msgpart object directly. M src/imap/cmd-append.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart-url.h 2012-09-14 21:04:01 +0300 Stephan Bosch (cc77966ca) Fixes IMAP LOGIN REFERRAL to properly encode IMAP URL. M src/imap-login/client-authenticate.c 2012-09-14 21:02:23 +0300 Stephan Bosch (4d955db59) Added support for creating IMAP URLs. M src/lib-imap/imap-url.c M src/lib-imap/imap-url.h M src/lib-imap/test-imap-url.c M src/lib/uri-util.c M src/lib/uri-util.h 2012-09-13 17:12:59 +0300 Timo Sirainen (1a1884872) lib-storage: Message size/sent date could have been set as 0 in some cases. It doesn't look like it ever happened with the current storage backends or use cases. M src/lib-storage/index/index-mail.c 2012-09-13 12:01:08 +0300 Timo Sirainen (cf1797248) lib-storage: Allow #including mailbox-list-private.h from C++ code M src/lib-storage/mailbox-list-private.h 2012-09-13 11:05:10 +0300 Timo Sirainen (f2ce19592) dovecot-config: Added lib-storage/list to be in LIBDOVECOT_STORAGE_INCLUDE M dovecot-config.in.in 2012-09-13 10:53:38 +0300 Timo Sirainen (f318b3dbe) lib-storage API change to allow using it from C++ code M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/plugins/acl/acl-mailbox.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/notify/notify-storage.c 2012-09-13 10:52:52 +0300 Timo Sirainen (7a2d48763) lib-storage: Moved mail_storage_settings_to_index_flags to mail-storage-private.h This is mainly to allow #including mail-storage-settings.h from C++ code without having to #include mail-index.h from mail-storage-settings.h M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mail-storage.c 2012-09-11 18:56:07 +0300 Timo Sirainen (c8555d0f6) i_get(pw|gr)(nam|uid): Use small initial buffer sizes. For processes that need to do only a single lookup there's no point in wasting a lot of memory for the maximum buffer size. M src/lib/ipwd.c 2012-09-10 17:19:43 +0300 Timo Sirainen (71e88fae3) lib-storage: Removed rename_children parameter from mailbox_rename() The children are now always renamed. The only reason this feature was added in the first place was to make dsync's job easier, but this is no longer needed. M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c M src/imap/cmd-rename.c M src/lib-storage/fail-mailbox.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mailbox-list-private.h M src/plugins/acl/acl-mailbox.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/notify/notify-plugin-private.h M src/plugins/notify/notify-plugin.c M src/plugins/notify/notify-plugin.h M src/plugins/notify/notify-storage.c M src/plugins/replication/replication-plugin.c 2012-09-07 16:43:44 +0300 Timo Sirainen (a85473f7c) dsync: Renamed "slave" to "ibc" (= inter-brain communicator) M src/doveadm/dsync/Makefile.am M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h A src/doveadm/dsync/dsync-ibc-pipe.c A src/doveadm/dsync/dsync-ibc-private.h R057 src/doveadm/dsync/dsync-slave-stream.c src/doveadm/dsync/dsync-ibc-stream.c A src/doveadm/dsync/dsync-ibc.c A src/doveadm/dsync/dsync-ibc.h D src/doveadm/dsync/dsync-slave-pipe.c D src/doveadm/dsync/dsync-slave-private.h D src/doveadm/dsync/dsync-slave.c D src/doveadm/dsync/dsync-slave.h 2012-09-07 16:19:35 +0300 Timo Sirainen (81b97c019) dsync: Renamed "io" slave to "stream". M src/doveadm/dsync/Makefile.am M src/doveadm/dsync/doveadm-dsync.c R082 src/doveadm/dsync/dsync-slave-io.c src/doveadm/dsync/dsync-slave-stream.c M src/doveadm/dsync/dsync-slave.h 2012-09-06 01:25:23 +0300 Timo Sirainen (39ee82dad) dsync: Rewritten syncing for mailbox renames. A few things didn't go as I originally intended in the algorithm, but it appears to give consistent results now. :) But the algorithm should probably be looked at more closely at some point. M src/doveadm/dsync/Makefile.am M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree-private.h M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-mailbox-tree.h M src/doveadm/dsync/dsync-slave-io.c A src/doveadm/dsync/test-dsync-mailbox-tree-sync.c 2012-09-06 01:13:03 +0300 Timo Sirainen (3281669db) Renamed buffer_create_*data() to buffer_create_from_*data() for consistency. Especially i_stream_create_from_data() was a very similar function, which made it difficult to remember which one should have "from" and which one shouldn't. M src/auth/auth-master-connection.c M src/auth/mech-digest-md5.c M src/imap/main.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-qp-decoder.c M src/lib-mail/test-message-header-encode.c M src/lib-otp/otp-parse.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/mail.c M src/lib/askpass.c M src/lib/buffer.c M src/lib/buffer.h M src/lib/guid.c M src/lib/iostream-rawlog.c M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/str.c M src/login-common/sasl-server.c M src/plugins/fts-lucene/Snowball.cc M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts/fts-expunge-log.c M src/pop3-login/client.c M src/pop3/main.c 2012-09-06 01:04:57 +0300 Timo Sirainen (49d9165e3) buffer_create_data(): Clear the memory area immediately. M src/lib/buffer.c 2012-09-06 01:04:28 +0300 Timo Sirainen (743c3ba9d) str_*printfa(): Avoid (harder!) growing underlying buffer if possible. The previous change for this didn't work properly. M src/lib/str.c 2012-09-04 19:58:59 +0300 Timo Sirainen (33e9f5b46) doveadm dump -t mailboxlog: Added support for MAILBOX_LOG_RECORD_CREATE_DIR M src/doveadm/doveadm-dump-mailboxlog.c 2012-09-04 19:05:44 +0300 Timo Sirainen (9a6409b55) TODO updated M TODO 2012-09-04 19:05:18 +0300 Timo Sirainen (98bd9a8b6) NOTIFY: Fixed "subscribed" mailbox filter to actually work. M src/imap/cmd-notify.c M src/imap/imap-notify.c 2012-09-04 19:04:52 +0300 Timo Sirainen (eef3caf61) lib-storage: Added mailbox_is_subscribed() M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2012-09-04 18:51:43 +0300 Timo Sirainen (24acd68c8) NOTIFY: Implemented SubscriptionChange M src/imap/imap-notify.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/mailbox-list-notify.h M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-tree.h 2012-09-04 17:26:37 +0300 Timo Sirainen (ec1b0f9b1) lib-storage: Log mailbox directory creations to mailbox log. M src/lib-index/mailbox-log.h M src/lib-storage/mailbox-list.c 2012-09-04 17:18:08 +0300 Timo Sirainen (57b819d3a) lib-storage: Added "disabled" setting for namespaces. M src/lib-storage/mail-namespace.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2012-09-04 17:13:47 +0300 Timo Sirainen (7ffa9e980) lmtp proxying: Don't auto-set mail_max_lock_timeout higher than it was. M src/lmtp/commands.c 2012-09-04 17:12:21 +0300 Timo Sirainen (544a946df) lib-storage: Added mail_storage_service_user_get_mail_set() M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2012-09-04 16:37:55 +0300 Timo Sirainen (f68a8568c) mailbox_list_index=yes: Fixed listing nonexistent subscribed mailboxes M src/lib-storage/list/mailbox-list-index-iter.c 2012-09-04 16:23:12 +0300 Timo Sirainen (edb39c4e2) Minor code cleanup M src/lib-mail/istream-attachment-extractor.c 2012-09-04 16:22:14 +0300 Timo Sirainen (abed24374) imap: Fixed LIST (SPECIAL-USE RECURSIVEMATCH) to actually return CHILDINFOs. M src/lib-storage/list/mailbox-list-iter.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h M src/lib-storage/mailbox-list.h 2012-09-04 16:06:29 +0300 Timo Sirainen (d05913105) LIST: Fixes to handling subscriptions M src/imap/cmd-list.c M src/lib-storage/list/mailbox-list-iter.c 2012-09-04 16:05:26 +0300 Timo Sirainen (70eaa48fb) lib-storage: Moved mailbox-list-iter.c to list/ M src/lib-storage/Makefile.am M src/lib-storage/list/Makefile.am R100 src/lib-storage/mailbox-list-iter.c src/lib-storage/list/mailbox-list-iter.c 2012-09-04 15:03:17 +0300 Timo Sirainen (f7eeb7b68) mailbox_list_index: Assert-crashfix when seeing a new mailbox with children. M src/lib-storage/list/mailbox-list-index-sync.c 2012-09-04 14:56:13 +0300 Timo Sirainen (74b0ef7d1) quota: Removed quota_ignore_save_errors setting and made it enabled always. M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2012-09-03 13:20:32 +0300 Timo Sirainen (e5d809128) lib-imap-client: Added support for NAMESPACE capability Required by previous imapc commit M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h 2012-09-02 19:52:31 +0300 Timo Sirainen (d6c06730a) lib-storage: Added MAILBOX_METADATA_BACKEND_NAMESPACE M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/index-status.c M src/lib-storage/mail-storage.h 2012-09-02 19:32:55 +0300 Timo Sirainen (3a85bb812) Comment update. M src/lib-storage/mail-storage.h 2012-09-02 19:22:13 +0300 Timo Sirainen (3e0bae44b) Renamed enum namespace_type to enum mail_namespace_type M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/imap/cmd-list.c M src/imap/cmd-namespace.c M src/imap/cmd-notify.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-iter.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/doveadm-acl.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/quota/quota-maildir.c M src/plugins/virtual/virtual-config.c 2012-09-02 18:16:06 +0300 Timo Sirainen (caa2f7378) imap: MOVE didn't send EXPUNGE when delay-newmail workaround was enabled. M src/imap/cmd-copy.c 2012-09-02 17:18:41 +0300 Timo Sirainen (d2930bd70) imap-msgpart-url: Attempt to reuse selected mailbox instead of reallocating a new one. Besides giving slightly better performace, this also fixes CATENATE for mbox when source and destination mailboxes are the same. M src/lib-imap-storage/imap-msgpart-url.c 2012-09-02 17:15:09 +0300 Timo Sirainen (a81f332d8) Moved mailbox_equals() to lib-storage. M src/imap/imap-commands-util.c M src/imap/imap-commands-util.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2012-09-02 16:48:25 +0300 Timo Sirainen (86c6b2546) mbox: Added support for copy/move/catenate within same mailbox. M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-lock.h M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-storage.h 2012-08-31 15:25:20 +0300 Timo Sirainen (4afd5082f) istream-chain/concat: Various fixes. Also made the chain code look more like concat code. They should be merged at some point. M src/lib/istream-chain.c M src/lib/istream-concat.c 2012-08-31 14:14:50 +0300 Timo Sirainen (30ffa7cf4) lib-storage: Fixed listing list=children namespaces that had child namespaces. M src/lib-storage/mailbox-list-iter.c 2012-08-30 22:05:02 +0300 Timo Sirainen (d163fac99) Merged changes from v2.1 tree. 2012-08-30 21:12:23 +0300 Timo Sirainen (7174e9402) Moved most of the IMAP LIST code to lib-storage. Also removed MAILBOX_LIST_ITER_SHOW_EXISTING_PARENT flag, since there wasn't any clearly good way to handle it. Some clients got confused when they saw that foo/ mailbox was returned with \Noselect flag. Either they thought that the mailbox was named foo/ or that foo was \Noselect. Pretty much the only sane way to handle this would be to not make return \Noselect and to treat foo and foo/ as equivalent in all commands, but that might cause trouble with ACLs and similar checks.. M src/imap/cmd-list.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/mailbox-list-iter.c M src/lib-storage/mailbox-list.h 2012-08-30 18:44:43 +0300 Timo Sirainen (5d84dfbcf) imap: Fixed MULTIAPPEND CATENATE that contained only URLs M src/imap/cmd-append.c 2012-08-29 23:16:05 +0300 Timo Sirainen (f16414db9) Minor code cleanup M src/imap/cmd-append.c 2012-08-29 23:15:56 +0300 Timo Sirainen (82908dad4) imap: Don't hang with zero size CATENATE TEXT parts. M src/imap/cmd-append.c 2012-08-29 23:13:56 +0300 Timo Sirainen (7f4a49408) imap-parser: Fixed imap_parser_read_last_literal() to work again M src/lib-imap/imap-parser.c 2012-08-29 22:42:26 +0300 Timo Sirainen (63ea4ca54) NEWS updated M NEWS 2012-08-29 21:08:08 +0300 Timo Sirainen (14195da06) imap: Allow very long MULTIAPPEND CATENATE lines that contain only URLs. M src/imap/cmd-append.c 2012-08-29 21:04:45 +0300 Timo Sirainen (24d136690) imap-parser: Allow calling imap_parser_read_args() multiple times with larger count parameter. M src/lib-imap/imap-parser.c 2012-08-29 21:04:09 +0300 Timo Sirainen (1b86c77db) imap-parser: Removed filling missing parameters with NILs. No code was relying on this behavior. M src/lib-imap/imap-parser.c 2012-08-29 20:16:13 +0300 Timo Sirainen (29d6ddd37) imap: Fixed crashes in THREAD=ORDEREDSUBJECT M src/imap/cmd-thread.c 2012-08-29 20:00:03 +0300 Timo Sirainen (7d3aac4c7) imap: CATENATE fix M src/imap/cmd-append.c 2012-08-29 19:59:42 +0300 Timo Sirainen (5afe997e7) istream-chain: Unreference also the last stream when it reaches EOF. M src/lib/istream-chain.c 2012-08-29 19:07:47 +0300 Timo Sirainen (59fde98aa) imap: More APPEND error handling fixes. M src/imap/cmd-append.c 2012-08-29 18:34:43 +0300 Timo Sirainen (ce85eb246) imap: Send BAD replies with client_send_command_error() M src/imap/cmd-cancelupdate.c M src/imap/cmd-uid.c M src/imap/imap-commands-util.c M src/imap/imap-status.c 2012-08-29 18:32:13 +0300 Timo Sirainen (2db714ba6) imap: Various fixes to APPEND error handling. M src/imap/cmd-append.c 2012-08-29 18:32:01 +0300 Timo Sirainen (945b6f8c7) imap: Added asserts to make sure a tagline isn't sent twice to the same command. M src/imap/imap-client.c M src/imap/imap-client.h 2012-08-29 17:15:34 +0300 Timo Sirainen (1b6c4fdd2) dbox: Don't try to finish saving attachments if saving has already failed. Fixes an assert crash with failed CATENATE. M src/lib-storage/index/dbox-common/dbox-save.c 2012-08-29 16:55:33 +0300 Timo Sirainen (87b9e370c) imap CATENATE: Do one more mailbox_save_continue() after adding EOF to stream. Fixes a crash with external mail attachments (mail_attachment_dir). M src/imap/cmd-append.c 2012-08-29 16:45:25 +0300 Timo Sirainen (6e2ec9578) iostream_rawlog_create_path(): Avoid double-closing the rawlog fd M src/lib/iostream-rawlog.c 2012-08-29 16:18:56 +0300 Timo Sirainen (f1ed4fa24) iostream-rawlog: Added possibility to save input/output to the same file. M src/lib/iostream-rawlog-private.h M src/lib/iostream-rawlog.c M src/lib/iostream-rawlog.h M src/lib/istream-rawlog.c M src/lib/istream-rawlog.h M src/lib/ostream-rawlog.c M src/lib/ostream-rawlog.h 2012-08-29 16:12:08 +0300 Timo Sirainen (22c1ec434) str_*printfa(): Avoid growing underlying buffer if possible. M src/lib/str.c 2012-08-29 08:56:40 +0300 Timo Sirainen (60626b57f) Reverted some of the last hash table changes. They caused hash table operations to dereference pointers, which caused a compiler error if the type wasn't known. M src/lib/hash-decl.h M src/lib/hash.h 2012-08-28 22:40:57 +0300 Timo Sirainen (01f4ee4a0) i_stream_stat() API changed. This fixes also one missing error check. M src/lib-compression/istream-bzlib.c M src/lib-compression/istream-zlib.c M src/lib-fs/fs-sis.c M src/lib-mail/istream-header-filter.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/list/subscription-file.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-file.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-private.h M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/istream.h 2012-08-28 22:20:17 +0300 Timo Sirainen (0fe713fb1) o_stream_send_istream(): Get input stream size with i_stream_get_size() instead of _stat(). M src/lib/ostream-file.c 2012-08-28 22:15:57 +0300 Timo Sirainen (6f0d9b27d) istream-chain: Removed default get_size() implementation and panicing on stat() This works around crashes in mdbox/quota code. Patch by Stephan Bosch. M src/lib/istream-chain.c 2012-08-28 22:15:49 +0300 Timo Sirainen (46908da82) mdbox: Replaced non-error-checking i_stream_stat() with potentially faster i_stream_get_size(). M src/lib-storage/index/dbox-multi/mdbox-save.c 2012-08-28 19:06:01 +0300 Timo Sirainen (aecc59fc5) imapc: If imapc_list_prefix=INBOX, don't treat INBOX/INBOX as the INBOX itself. M src/lib-storage/index/imapc/imapc-list.c 2012-08-28 18:53:30 +0300 Timo Sirainen (3350b29fc) dict file: Fixed corruption with large values. Patch by Ewald Dieterich. M src/lib-dict/dict-file.c 2012-08-28 15:57:22 +0300 Timo Sirainen (bd389fdd3) imapc: max_idle_time setting didn't actually work. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c 2012-08-28 14:46:16 +0300 Timo Sirainen (a566d9f87) lmtp proxy: Forward proxy_timeout to backend and set mail_max_lock_timeout based on it. This automatically avoids duplicate mail deliveries caused by long lock waits. M src/lib-lda/lmtp-client.c M src/lib-lda/lmtp-client.h M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c 2012-08-28 13:23:37 +0300 Timo Sirainen (eaa33f015) lmtp proxy: Include session ID string in timeout reply text. M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2012-08-26 19:23:48 +0300 Timo Sirainen (531ddc880) dict-redis: Fixed infinite looping M src/lib-dict/dict-redis.c 2012-08-25 12:05:34 +0300 Timo Sirainen (548d8f627) istream-concat: Bugfix M src/lib/istream-concat.c 2012-08-24 19:44:43 +0000 Pascal Volk (fcf3527ce) imap IDLE: Added back fc00::/7 (RFC 4193) to private networks. This time the check is done correctly. M src/imap/cmd-idle.c 2012-08-24 09:41:55 +0300 Timo Sirainen (3c42e7cdb) imap IDLE: Reverted the IPv6 change, it doesn't work like that. M src/imap/cmd-idle.c 2012-08-23 23:20:57 +0000 Pascal Volk (8534886b9) imap IDLE: Add also fc00::/7 (RFC 4193) to private networks. M src/imap/cmd-idle.c 2012-08-23 23:50:55 +0300 Timo Sirainen (f03e38bca) imap IDLE: Add also 172.168/12 to private networks. M src/imap/cmd-idle.c 2012-08-23 21:49:15 +0300 Timo Sirainen (9511f7431) imap IDLE: Time "still here" packet sends based on client IP address if possible. M src/imap/cmd-idle.c 2012-08-23 15:29:43 +0300 Timo Sirainen (98950c916) Compiler warning fix M src/lib/istream-concat.c 2012-08-23 11:54:46 +0300 Timo Sirainen (99695d999) lib-storage: Moved per-mail data in struct mail_save_context to separate struct. This fixes previous save leaking metadata to the next save. M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/plugins/acl/acl-mailbox.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/zlib/zlib-plugin.c 2012-08-23 11:26:13 +0300 Timo Sirainen (c6f644533) Increased initial memory pool size M src/lib-mail/istream-attachment-extractor.c 2012-08-22 16:55:27 +0300 Timo Sirainen (2e533fb12) Made PKG_STATEDIR configurable with state_dir setting. Based on patch by Chris Webb. Normally this isn't needed, since the data in the state_dir can be shared across multiple Dovecot instances, but in some specific use cases this may be useful (e.g. users running their own Dovecots). M src/config/Makefile.am M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-mount.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/doveadm.c M src/lib-master/master-instance.h M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-master/master-service-ssl.c M src/lib-master/master-service.c M src/login-common/ssl-proxy-openssl.c M src/master/main.c M src/master/master-settings.c M src/master/master-settings.h M src/replication/replicator/replicator.c M src/ssl-params/main.c 2012-08-22 15:19:19 +0300 Timo Sirainen (dc9bac02a) lib-storage: Added mail_save_copy_default_metadata() M src/lib-storage/mail-copy.c M src/lib-storage/mail-copy.h 2012-08-22 15:18:39 +0300 Timo Sirainen (13984f1ae) istream-base64: Fixed returning -2 too early. M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c 2012-08-22 15:13:21 +0300 Timo Sirainen (a91f2c465) istream-concat bugfixes M src/lib/istream-concat.c 2012-08-22 11:44:46 +0300 Timo Sirainen (e869616ac) Added a test for istream-attachment-extractor hash size M src/lib-mail/test-istream-attachment.c 2012-08-22 11:43:15 +0300 Timo Sirainen (97c8ebb3d) istream-attachment-extractor didn't return hash strings correctly. M src/lib-mail/istream-attachment-extractor.c 2012-08-22 10:18:44 +0300 Timo Sirainen (f5f8bd05b) istream-attachment-connector: Avoid seeking in the base stream, it may not be seekable. M src/lib-mail/istream-attachment-connector.c 2012-08-22 10:18:08 +0300 Timo Sirainen (bdcb00145) Added i_stream_create_range() M src/lib/istream-limit.c M src/lib/istream.h 2012-08-21 10:18:38 +0300 Timo Sirainen (5a7acd678) imap: Fixed command output locking. M src/imap/cmd-idle.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-fetch.c M src/imap/imap-sync.c M src/imap/main.c 2012-08-21 10:02:44 +0300 Timo Sirainen (2d9019dc2) dict redis: Fixed dict_lookup() to skip all previous pending replies. M src/lib-dict/dict-redis.c 2012-08-24 15:12:32 +0300 Timo Sirainen (b82590193) auth: Don't add "master" to passdb reply if the passdb itself already added it. M src/auth/auth-request-handler.c 2012-08-24 12:25:55 +0300 Timo Sirainen (d85f713cc) auth: Make it clearer in debug messages if the replies are passdb or userdb. M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c 2012-08-23 23:46:15 +0300 Timo Sirainen (cdfdb6742) doveadm copy/move: Added "user" parameter to specify the source user. M src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2012-08-23 22:56:56 +0300 Timo Sirainen (2c8dd018f) imap: Fixes to handling UTF-8 namespace prefixes M src/imap/cmd-list.c M src/imap/cmd-namespace.c M src/imap/imap-commands-util.c 2012-08-23 22:33:23 +0300 Timo Sirainen (938fbc319) lib-storage: Verify that namespace prefix is valid UTF8 string. M src/lib-storage/mail-storage-settings.c 2012-08-23 22:21:42 +0300 Timo Sirainen (d92ef0c23) mbox: Fixed listing mailboxes under INBOX directory. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-08-23 21:29:40 +0300 Timo Sirainen (01cb29141) doveadm: Added "copy" command. M src/doveadm/Makefile.am R073 src/doveadm/doveadm-mail-move.c src/doveadm/doveadm-mail-copymove.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2012-08-23 11:56:56 +0300 Timo Sirainen (619828b39) lib-storage: Make sure a save context doesn't leak metadata to the next save. M src/lib-storage/index/index-storage.c 2012-08-22 17:42:06 +0300 Timo Sirainen (23e54e221) configure: Removed OpenBSD /dev/arandom checking. Patch by Brad Smith "The use of arandom was never a requirement for Dovecot and I had submitted the use of arandom due to ports policy to do so anyway." M configure.in 2012-08-22 15:17:53 +0300 Timo Sirainen (fcc905a7e) istream-concat bugfixes M src/lib/istream-concat.c 2012-08-22 07:49:55 +0300 Timo Sirainen (81419a8dd) auth: Unregister SCRAM-SHA-1 at deinit. M src/auth/mech.c 2012-08-21 10:02:44 +0300 Timo Sirainen (97d5d23d4) dict redis: Fixed dict_lookup() to skip all previous pending replies. M src/lib-dict/dict-redis.c 2012-08-20 16:13:49 +0300 Timo Sirainen (c395e7d73) i_stream_create_seekable_path() created memory corruption M src/lib/istream-seekable.c 2012-08-20 11:09:42 +0300 Timo Sirainen (59153e6c6) Merged changes from v2.1 tree. 2012-08-20 10:54:04 +0300 Timo Sirainen (08e9fec5b) Simplified hash table union now that it again works only with pointers. M TODO M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/dsync-transaction-log-scan.h M src/lib/hash-decl.h M src/lib/hash.h 2012-08-20 10:19:57 +0300 Timo Sirainen (b171ffe6e) Fixed some aliasing warnings with hash table API. M src/lib/hash.h 2012-08-20 10:01:03 +0300 Timo Sirainen (7444cc5de) imap: Allow fetching [x.MIME] for message/rfc822 again. It's not clear which is the correct behavior. M src/lib-imap-storage/imap-msgpart.c 2012-08-20 09:47:28 +0300 Timo Sirainen (a75d470c9) Reverted "support for non-pointers" part of the hash table API changes. Originally I wrote it using clang, which didn't give as many warnings as gcc did. I guess this way is safer anyway.. M src/anvil/connect-limit.c M src/auth/auth-request-handler.c M src/auth/db-checkpassword.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/director/director-test.c M src/director/user-directory.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-who.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/dsync-transaction-log-scan.h M src/imap/imap-client.c M src/lib-auth/auth-server-connection.c M src/lib-auth/auth-server-connection.h M src/lib-dict/dict-file.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c M src/lib-lda/duplicate.c M src/lib-master/master-auth.c M src/lib-master/master-login-auth.c M src/lib-settings/settings-parser.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h M src/lib/child-wait.c M src/lib/hash.c M src/lib/hash.h M src/log/log-connection.c M src/login-common/ssl-proxy-openssl.c M src/master/service-monitor.c M src/master/service-process.c M src/master/service.c M src/master/service.h M src/plugins/acl/acl-cache.c M src/plugins/expire/doveadm-expire.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts/fts-expunge-log.c M src/pop3/pop3-commands.c M src/replication/aggregator/replicator-connection.c 2012-08-20 08:31:00 +0300 Timo Sirainen (ab750f246) Compiler error fix due to hash table changes. M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/dsync-transaction-log-scan.h 2012-08-19 16:17:32 +0300 Timo Sirainen (27a44fcfd) Removed CONTEXT_TYPE_SAFETY macro and reimplemented its functionality better. gcc/clang now gives a compiler error in many places if callback isn't exactly what was expected. It's also now much easier to add more of these checks. M src/anvil/anvil-connection.c M src/auth/auth-request-handler.h M src/auth/db-dict.c M src/auth/db-ldap.c M src/auth/db-sql.c M src/config/config-connection.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm.c M src/imap/imap-fetch.h M src/indexer/indexer-client.c M src/lib-dns/dns-lookup.c M src/lib-dns/dns-lookup.h M src/lib-imap-storage/imap-msgpart.c M src/lib-index/mail-index-util.c M src/lib-lda/mail-send.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-header-filter.h M src/lib-mail/message-header-parser.h M src/lib-mail/message-parser.h M src/lib-mail/test-istream-header-filter.c M src/lib-master/master-service.c M src/lib-settings/settings.c M src/lib-settings/settings.h M src/lib-sql/sql-api.h M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/mail-search.h M src/lib-storage/mail-storage.h M src/lib-storage/mailbox-header.c M src/lib/array.h M src/lib/bsearch-insert-pos.c M src/lib/bsearch-insert-pos.h M src/lib/child-wait.h M src/lib/connection.c M src/lib/ioloop.h M src/lib/istream.h M src/lib/macros.h M src/lib/module-dir.c M src/lib/ostream.h M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-bsearch-insert-pos.c M src/plugins/acl/acl-backend.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/pop3-migration/pop3-migration-plugin.c 2012-08-19 14:21:37 +0300 Timo Sirainen (4ee00532a) Array API changed: ARRAY_DEFINE(name, type) -> ARRAY(type) name Easy way to update your existing code: perl -i -pe 's:ARRAY_DEFINE\(([^,]+), *([^)]+)\);:ARRAY($2) $1;:' **/*.[ch] M src/auth/auth-request-handler.c M src/auth/auth-settings.c M src/auth/auth-settings.h M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-ldap.h M src/auth/main.c M src/auth/passdb-template.c M src/auth/passdb.c M src/auth/userdb-template.c M src/auth/userdb.c M src/config/config-parser-private.h M src/config/config-parser.c M src/dict/dict-connection.h M src/dict/dict-settings.h M src/director/director-test.c M src/director/director.h M src/director/mail-host.c M src/director/main.c M src/director/user-directory.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail.h M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-server.h M src/doveadm/doveadm-settings.h M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-tree-private.h M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-slave-pipe.c M src/imap/cmd-list.c M src/imap/imap-client.h M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h M src/imap/imap-notify.h M src/imap/imap-search.h M src/indexer/worker-connection.c M src/ipc/ipc-connection.h M src/ipc/ipc-group.c M src/lib-auth/auth-server-connection.h M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql-settings.h M src/lib-dict/dict-sql.c M src/lib-dict/dict-transaction-memory.h M src/lib-dict/dict.c M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-connection.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-private.h M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-view-private.h M src/lib-index/mail-transaction-log-view-private.h M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.h M src/lib-mail/istream-attachment-connector.c M src/lib-mail/istream-header-filter.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/test-istream-attachment.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/master-instance.c M src/lib-master/master-service-settings.c M src/lib-master/mountpoint-list.c M src/lib-settings/settings-parser.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api-private.h M src/lib-storage/index/dbox-common/dbox-file.h M src/lib-storage/index/dbox-multi/mdbox-map-private.h M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.h M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/mbox/mbox-sync-private.h M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage-settings.h M src/lib-storage/mail-user.h M src/lib-storage/mailbox-keywords.c M src/lib-storage/mailbox-list-iter.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-tree.c M src/lib/array-decl.h M src/lib/array.h M src/lib/ioloop-epoll.c M src/lib/ioloop-kqueue.c M src/lib/ioloop-private.h M src/lib/lib.h M src/lib/module-context.h M src/lib/priorityq.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/var-expand.c M src/lmtp/client.h M src/lmtp/lmtp-proxy.c M src/log/log-connection.c M src/master/service-listen.c M src/master/service-process-notify.c M src/master/service.h M src/plugins/acl/acl-backend-vfile.h M src/plugins/acl/acl-cache.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-set.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-storage.h M src/plugins/pop3-migration/pop3-migration-plugin.c M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.h M src/pop3/pop3-client.c M src/pop3/pop3-client.h M src/replication/replicator/replicator-brain.c M src/replication/replicator/replicator-queue.c M src/ssl-params/main.c 2012-08-19 14:01:15 +0300 Timo Sirainen (ad044cd01) Added missing hash-decl.h M src/lib/Makefile.am A src/lib/hash-decl.h 2012-08-19 13:55:34 +0300 Timo Sirainen (678d04638) Hash table API is now (mostly) type safe. M src/anvil/connect-limit.c M src/anvil/penalty.c M src/auth/auth-cache.c M src/auth/auth-request-handler.c M src/auth/db-checkpassword.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-passwd-file.h M src/auth/mech-otp-skey-common.c M src/config/config-request.c M src/director/director-test.c M src/director/user-directory.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm-who.h M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/doveadm/dsync/dsync-mailbox-tree-private.h M src/doveadm/dsync/dsync-mailbox-tree-sync.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/doveadm/dsync/dsync-transaction-log-scan.h M src/indexer/indexer-queue.c M src/lib-auth/auth-server-connection.c M src/lib-auth/auth-server-connection.h M src/lib-dict/dict-file.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c M src/lib-lda/duplicate.c M src/lib-master/master-auth.c M src/lib-master/master-login-auth.c M src/lib-master/master-service-settings-cache.c M src/lib-settings/settings-parser.c M src/lib-sql/sql-db-cache.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-filename.h M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib/child-wait.c M src/lib/guid.c M src/lib/guid.h M src/lib/hash.c M src/lib/hash.h M src/lib/lib.h M src/lib/macros.h M src/log/log-connection.c M src/login-common/login-proxy-state.c M src/login-common/ssl-proxy-openssl.c M src/master/service-monitor.c M src/master/service-process.c M src/master/service.c M src/master/service.h M src/plugins/acl/acl-cache.c M src/plugins/expire/doveadm-expire.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts/fts-expunge-log.c M src/pop3/pop3-commands.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/replicator-queue.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-session.c M src/stats/mail-user.c 2012-08-19 12:53:06 +0300 Timo Sirainen (30f8c6253) replicator: Crashfix M src/replication/aggregator/replicator-connection.c 2012-08-19 07:20:13 +0300 Timo Sirainen (7536dca18) hash_table_create(): Removed table_pool parameter. Every single caller was using default_pool there, so there's no point in having it. M src/anvil/connect-limit.c M src/anvil/penalty.c M src/auth/auth-cache.c M src/auth/auth-request-handler.c M src/auth/db-checkpassword.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/mech-otp-skey-common.c M src/config/config-request.c M src/director/director-test.c M src/director/user-directory.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-who.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-transaction-log-scan.c M src/indexer/indexer-queue.c M src/lib-auth/auth-server-connection.c M src/lib-dict/dict-file.c M src/lib-index/mail-cache.c M src/lib-index/mail-index.c M src/lib-lda/duplicate.c M src/lib-master/master-auth.c M src/lib-master/master-login-auth.c M src/lib-master/master-service-settings-cache.c M src/lib-settings/settings-parser.c M src/lib-sql/sql-db-cache.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/mailbox-guid-cache.c M src/lib/child-wait.c M src/lib/hash.c M src/lib/hash.h M src/log/log-connection.c M src/login-common/login-proxy-state.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/master/service.c M src/plugins/acl/acl-cache.c M src/plugins/expire/doveadm-expire.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts/fts-expunge-log.c M src/pop3/pop3-commands.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/replicator-queue.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-session.c M src/stats/mail-user.c 2012-08-18 17:05:59 +0300 Timo Sirainen (6967fa47d) Added i_stream_create_seekable_path() M src/lib/istream-seekable.c M src/lib/istream-seekable.h 2012-08-18 15:56:30 +0300 Timo Sirainen (a2ecf3b48) ostream-file: Fixed writing with zero buffer size. M src/lib/ostream-file.c 2012-08-18 10:31:19 +0300 Timo Sirainen (a21f618de) connection API: Allow calling connection_input_default() for buffered input. M src/lib/connection.c 2012-08-17 19:01:03 +0300 Timo Sirainen (3a8c3cd18) doveadm: Improved "passdb lookup failed" error message. M src/doveadm/doveadm-mail-server.c 2012-08-17 11:15:21 +0300 Timo Sirainen (0169161bc) Makefile: Install the useful doveadm*.h headers. M src/doveadm/Makefile.am 2012-08-17 09:17:48 +0300 Timo Sirainen (116ba2eb9) doveadm backup: Fixed "is source empty" check. In POP3 boxes there is only INBOX, and it's possible that source becomes empty while backup has mails. The check is now "has source always been empty?" M src/doveadm/dsync/dsync-brain.c 2012-08-17 08:46:22 +0300 Timo Sirainen (3c7dfbbac) imap: FETCH[x.MIME] for message/rfc822 should produce empty result M src/lib-imap-storage/imap-msgpart.c 2012-08-17 07:47:16 +0300 Timo Sirainen (b5a37df66) imap: Added more tests to return empty data when FETCHing invalid MIME parts. M src/lib-imap-storage/imap-msgpart.c 2012-08-16 14:57:55 +0300 Timo Sirainen (8ac890ce5) dovecot-config: Added LIBDOVECOT_DOVEADM_INCLUDE M dovecot-config.in.in M dovecot.m4 2012-08-16 14:25:21 +0300 Timo Sirainen (d7a405cac) Makefile: iostream-*ssl.h wasn't being installed. M src/lib-ssl-iostream/Makefile.am 2012-08-16 06:09:22 +0300 Timo Sirainen (7db7fbea5) connection API: Fixed connected() callback to actually allow detecting failed connects. M src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-redis.c M src/lib/connection.c M src/lib/connection.h 2012-08-16 05:41:57 +0300 Timo Sirainen (3d95a75a8) dict memcached-ascii bugfixes M src/lib-dict/dict-memcached-ascii.c 2012-08-15 16:56:17 +0300 Timo Sirainen (75bb83681) lib-dict: Added memcached_ascii backend. M src/lib-dict/Makefile.am A src/lib-dict/dict-memcached-ascii.c M src/lib-dict/dict-private.h M src/lib-dict/dict.c M src/lib-dict/test-dict.c 2012-08-15 16:55:44 +0300 Timo Sirainen (8bf42ce5e) lib-dict: Moved "in-memory transaction" code from dict-file to more generic API. M src/lib-dict/Makefile.am M src/lib-dict/dict-file.c A src/lib-dict/dict-transaction-memory.c A src/lib-dict/dict-transaction-memory.h 2012-08-15 13:43:16 +0300 Timo Sirainen (cdac58636) imap: Implemented THREAD=ORDEREDSUBJECT extension. M configure.in M src/imap/cmd-thread.c M src/lib-storage/mail-thread.c 2012-08-15 12:37:34 +0300 Timo Sirainen (6f6917488) lib-storage: MAX_SORT_PROGRAM_SIZE was too small M src/lib-storage/mail-storage.h 2012-08-15 12:05:28 +0300 Timo Sirainen (3f8303bae) istream-limit: Move parent stream to expected offset also at EOF. M src/lib/istream-limit.c 2012-08-15 09:35:39 +0300 Timo Sirainen (bfa87344a) dict server: Implemented APPEND command. M src/dict/dict-commands.c 2012-08-15 09:35:21 +0300 Timo Sirainen (e4f236f77) imap: Fixed assert-crash on FETCH error disconnections. M src/imap/imap-client.c 2012-08-14 23:09:44 +0300 Timo Sirainen (cee50689e) imapc: Added imapc_max_idle_time setting to force activity on connection. Reducing this from the default 29 minutes should help when there's a stateful firewall between imapc and the backend server. M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2012-08-14 10:02:14 +0300 Timo Sirainen (d368aabf3) connection: connection_disconnect_reason() didn't handle non-errors correctly. M src/lib/connection.c 2012-08-14 06:22:44 +0300 Timo Sirainen (2aed6c206) dict: Implemented dict_append() M src/lib-dict/dict-client.c M src/lib-dict/dict-client.h M src/lib-dict/dict-file.c M src/lib-dict/dict-memcached.c M src/lib-dict/dict-private.h M src/lib-dict/dict-redis.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/dict.h 2012-08-14 03:03:26 +0300 Timo Sirainen (af4fbe40d) fs layout: Kludge to show INBOX/INBOX mailbox when necessary. This happens with one prefix="" namespace and another prefix=INBOX/ namespace when the INBOX mailbox itself has children. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-08-14 03:02:02 +0300 Timo Sirainen (e58f291e7) lib-storage: mailbox_list_get_storage_name() shouldn't treat INBOX specially in inbox=no namespaces. M src/lib-storage/mailbox-list.c 2012-08-14 03:01:07 +0300 Timo Sirainen (7fd51f7b0) lib-storage: If alias_for references inbox=yes namespace, copy the inbox=yes to the alias ns. So even though this still doesn't allow giving multiple inbox=yes settings in configuration file, it's now possible for multiple namespaces to have them. They just need to point to the exact same INBOX. M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h 2012-08-14 01:54:34 +0300 Timo Sirainen (1b302c5f0) imap LIST: Don't set \haschildren flag for namespace prefix if it has list=no M src/imap/cmd-list.c 2012-08-13 15:23:32 +0300 Timo Sirainen (51cbc45fc) imap: Implemented NOTIFY extension. Requires mailbox_list_index=yes to work (and to show up in capabilities). SubscriptionChange event is still unimplemented. M src/imap/Makefile.am M src/imap/cmd-cancelupdate.c M src/imap/cmd-fetch.c M src/imap/cmd-idle.c M src/imap/cmd-list.c A src/imap/cmd-notify.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-sort.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands.c M src/imap/imap-commands.h M src/imap/imap-fetch.c M src/imap/imap-fetch.h A src/imap/imap-list.c A src/imap/imap-list.h A src/imap/imap-notify.c A src/imap/imap-notify.h M src/imap/imap-search.c M src/imap/imap-search.h M src/imap/imap-sync.c M src/imap/main.c 2012-08-13 15:20:33 +0300 Timo Sirainen (8854395cd) lib-storage: Added mailbox-list-notify API for tracking changes in all mailboxes. Requires mailbox_list_index=yes to work. M src/lib-storage/Makefile.am M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/Makefile.am M src/lib-storage/list/mailbox-list-fs.c A src/lib-storage/list/mailbox-list-index-notify.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c A src/lib-storage/list/mailbox-list-notify-tree.c A src/lib-storage/list/mailbox-list-notify-tree.h A src/lib-storage/mailbox-list-notify.c A src/lib-storage/mailbox-list-notify.h M src/lib-storage/mailbox-list-private.h 2012-08-13 15:15:07 +0300 Timo Sirainen (1ed966996) mailbox_list_index=yes: Don't log an error when verifying existence of already deleted mailbox. M src/lib-storage/index/index-sync.c 2012-08-13 15:12:41 +0300 Timo Sirainen (afd0d073a) lib-index: Added mail_index_view_dup_private() M src/lib-index/mail-index-view-private.h M src/lib-index/mail-index-view.c 2012-08-13 15:09:30 +0300 Timo Sirainen (aa55fafdd) imap: If imap_capability setting is set explicitly, don't automatically add SEARCH=FUZZY. M src/imap/imap-client.c 2012-08-13 15:03:46 +0300 Timo Sirainen (6ea7b0e4c) Added MOVE extension to capabilities. I guess the draft is close enough to being ready now. M configure.in 2012-08-13 14:23:26 +0300 Timo Sirainen (b8f867105) mailbox_list_index=yes: Don't use indexes when iterating with MAILBOX_LIST_ITER_RAW_LIST. M src/lib-storage/list/mailbox-list-index-iter.c 2012-08-13 07:28:40 +0300 Timo Sirainen (6f84506cf) Memory leak fixes M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c 2012-08-13 07:26:25 +0300 Timo Sirainen (eb493a999) Memory leak fix M src/lib/ioloop.c 2012-08-13 05:45:35 +0300 Timo Sirainen (fbd671a3f) Compiler warning fixes M src/config/config-parser.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/master/main.c 2012-08-13 02:57:37 +0300 Timo Sirainen (85ee28dac) imap: Code cleanup M src/imap/imap-sync.c 2012-08-13 02:51:09 +0300 Timo Sirainen (e82e363e7) imap: FETCH API updated to allow using the same parsed FETCH in multiple mailboxes. This is in preparation for NOTIFY extension. M src/imap/cmd-fetch.c M src/imap/cmd-select.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h 2012-08-13 02:41:08 +0300 Timo Sirainen (3cca614bc) imap_msgpart_parse() doesn't really need a mailbox parameter. M src/imap/imap-fetch-body.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-storage/imap-msgpart.h 2012-08-13 01:47:54 +0300 Timo Sirainen (d10a370b2) imap: FETCH API cleanup: keep fetch state in a separate struct. M src/imap/cmd-fetch.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h 2012-08-13 01:25:12 +0300 Timo Sirainen (4f5f48fcf) imap: Made STATUS handling API more flexible. M src/imap/cmd-list.c M src/imap/cmd-status.c M src/imap/imap-status.c M src/imap/imap-status.h 2012-08-13 00:36:38 +0300 Timo Sirainen (89cda47c3) lib-storage: Mailbox tree API supports now including extra data in the nodes. M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-tree.h 2012-08-13 00:33:47 +0300 Timo Sirainen (0fa842717) lib-index: Support clearing the whole log view with mail_transaction_log_view_clear(0) M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.h 2012-08-13 00:31:40 +0300 Timo Sirainen (8f41f9935) lib-index: Removed duplicate ext-intro checking code. M src/lib-index/mail-index-sync-update.c 2012-08-13 00:29:38 +0300 Timo Sirainen (cf05507f6) lib-index: Verify validity of ext-intro records in transaction log. M src/lib-index/mail-transaction-log-view.c 2012-08-13 00:27:07 +0300 Timo Sirainen (05570210e) Verify that mailbox_idle_check_interval setting isn't 0. M src/lib-storage/mail-storage-settings.c 2012-08-12 09:57:20 +0300 Timo Sirainen (689d163c6) lib-ssl-iostream: Avoid assert-crash when reading a closed stream. M src/lib-ssl-iostream/iostream-openssl.c 2012-08-12 08:36:06 +0300 Timo Sirainen (b009e7e39) lib-ssl-iostream: Don't crash if protocols setting is NULL. M src/lib-ssl-iostream/iostream-openssl-context.c 2012-08-12 08:35:29 +0300 Timo Sirainen (f1f61d841) ssl-params socket was missing from login/ directory M src/ssl-params/ssl-params-settings.c 2012-08-12 08:05:49 +0300 Timo Sirainen (a159e0bea) lib-index: Message flag syncing was broken due to wrong struct cast. M src/lib-index/mail-index-sync.c 2012-08-12 07:21:00 +0300 Timo Sirainen (d775ed07f) lib-storage: Update private index before updating saved search results. M src/lib-storage/index/index-sync.c 2012-08-12 06:26:35 +0300 Timo Sirainen (6f08b98ac) Added i_stream_last_line_crlf() M src/lib/istream-private.h M src/lib/istream.c M src/lib/istream.h 2012-08-12 05:42:14 +0300 Timo Sirainen (4e7b41f30) lib-imap: imap_quote() was broken when called with a datastack pool. M src/lib-imap/imap-quote.c 2012-08-12 05:21:35 +0300 Timo Sirainen (b09e28287) FETCH BINARY fix. M src/lib-storage/index/index-mail-binary.c 2012-08-12 04:54:54 +0300 Timo Sirainen (0d20bb8f1) imap: More fixes to fetching messages. M src/lib-imap-storage/imap-msgpart.c 2012-08-12 03:28:26 +0300 Timo Sirainen (d4088843b) lib-storage: Fixed assert-crash on subscribtion change that didn't change anything. M src/lib-storage/list/subscription-file.c 2012-08-12 02:26:12 +0300 Timo Sirainen (6202c9d24) lib-storage: mail_get_header_stream() now always returns end-of-headers LF. M src/lib-storage/index/index-mail-headers.c 2012-08-12 02:24:54 +0300 Timo Sirainen (3c07b1481) istream-header-filter: Allow adding more headers at the end of headers callback. M src/lib-mail/istream-header-filter.c 2012-08-12 02:08:30 +0300 Timo Sirainen (eb138bd4a) imap: Fixed fetching partial ranges from non-BODY[] M src/lib-imap-storage/imap-msgpart.c 2012-08-12 01:38:51 +0300 Timo Sirainen (a317854ef) imap: (non-UID) MOVE command didn't always send EXPUNGE for the moved message. M src/imap/cmd-copy.c 2012-08-12 01:29:16 +0300 Timo Sirainen (efb83f10b) dbox: Crashfixes M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-save.c 2012-08-11 08:10:32 +0300 Timo Sirainen (402e999a8) Renamed struct mailbox_info.name to vname. M TODO M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-move.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/dsync/dsync-mailbox-tree-fill.c M src/imap/cmd-list.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-list-iter.c M src/lib-storage/mailbox-list.h M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-maildir.c M src/plugins/virtual/virtual-config.c 2012-08-11 08:03:05 +0300 Timo Sirainen (fc0b202db) imap: Fixed FETCHing nonexistent parts. M src/lib-imap-storage/imap-msgpart.c 2012-08-11 07:48:04 +0300 Timo Sirainen (83fb4a1bc) Added BINARY to IMAP capabilities. M configure.in 2012-08-11 07:47:29 +0300 Timo Sirainen (6e8f0036c) lib-storage: Added caching for mail_get_binary_size() M src/lib-mail/Makefile.am A src/lib-mail/message-binary-part.c A src/lib-mail/message-binary-part.h M src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/mail.c 2012-08-11 07:46:42 +0300 Timo Sirainen (3f7376441) liblib: Added "number packing" API. M src/lib/Makefile.am A src/lib/numpack.c A src/lib/numpack.h M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-numpack.c 2012-08-11 05:47:03 +0300 Timo Sirainen (2803c51aa) imap: Send FETCH BINARY output using literal8. M src/imap/imap-fetch-body.c M src/lib-imap-storage/imap-msgpart.c 2012-08-11 05:31:46 +0300 Timo Sirainen (306b3f41b) IMAP BINARY extension supports now FETCH BINARY command. M src/doveadm/doveadm-mail.c M src/imap/cmd-fetch.c M src/imap/imap-commands-util.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-storage/imap-msgpart.h M src/lib-storage/fail-mail.c M src/lib-storage/index/Makefile.am M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/imapc/imapc-mail.c A src/lib-storage/index/index-mail-binary.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-error.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/plugins/virtual/virtual-mail.c 2012-08-11 05:29:05 +0300 Timo Sirainen (f2b95f63e) istream-seekable: Reverted unnecessary/broken changes from the previous patch. M src/lib/istream-seekable.c 2012-08-11 05:19:58 +0300 Timo Sirainen (4e2d7dd2b) lib-mail: Added message_decoder_parse_cte() M src/lib-mail/message-decoder.c M src/lib-mail/message-decoder.h 2012-08-11 05:17:58 +0300 Timo Sirainen (4d33a3133) Added istreams_merge(), which forces istream-seekable to be created. M src/lib/istream-seekable.c M src/lib/istream-seekable.h 2012-08-11 05:17:19 +0300 Timo Sirainen (a6f281d07) istream-seekable: When we reach EOF, unreference all the input streams. M src/lib/istream-seekable.c 2012-08-11 05:15:00 +0300 Timo Sirainen (5702c81e2) istream-seekable: Minor code cleanup. stream->buffer and sstream->buffer being two different things was a bit confusing. M src/lib/istream-seekable.c 2012-08-11 04:09:41 +0300 Timo Sirainen (a0f8e90bf) imap: FETCH BODY[n] shouldn't include MIME headers M src/lib-imap-storage/imap-msgpart.c 2012-08-11 03:14:43 +0300 Timo Sirainen (f7ec15aef) istream-header-filter: Added i_stream_header_filter_add() to add extra headers. M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-header-filter.h M src/lib-mail/test-istream-header-filter.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/mbox/mbox-save.c 2012-08-11 02:53:49 +0300 Timo Sirainen (8b247780e) Added o_stream_get_fd(). M src/lib-compression/ostream-bzlib.c M src/lib-compression/ostream-zlib.c M src/lib-fs/ostream-cmp.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib/ostream-buffer.c M src/lib/ostream-file.c M src/lib/ostream-private.h M src/lib/ostream-rawlog.c M src/lib/ostream.c M src/lib/ostream.h 2012-08-11 02:16:07 +0300 Timo Sirainen (89d8953ec) Makefile: Removed mountpoint.o from unused_objects, since it's now included via lib-master. M src/doveadm/Makefile.am M src/imap/Makefile.am M src/indexer/Makefile.am M src/lda/Makefile.am M src/lmtp/Makefile.am M src/pop3/Makefile.am 2012-08-10 07:32:14 +0300 Timo Sirainen (5dc71fc15) Added istream-qp-decoder M src/lib-mail/Makefile.am A src/lib-mail/istream-qp-decoder.c A src/lib-mail/istream-qp.h A src/lib-mail/test-istream-qp-decoder.c 2012-08-10 07:31:28 +0300 Timo Sirainen (9b74311cb) quoted-printable decode didn't ignore whitespace at the end of soft line break. M src/lib-mail/quoted-printable.c M src/lib-mail/test-quoted-printable.c 2012-08-10 07:31:28 +0300 Timo Sirainen (2f67f2fbb) quoted-printable decode didn't ignore whitespace at the end of soft line break. M src/lib-mail/quoted-printable.c M src/lib-mail/test-quoted-printable.c 2012-08-10 07:01:34 +0300 Timo Sirainen (12467c3e1) Previous istream-base64 changes broke compilation M src/lib-mail/istream-attachment-connector.c 2012-08-10 07:00:20 +0300 Timo Sirainen (36a50bc13) Various fixes to istream-base64-encoder/decoder M src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c M src/lib/test-istream-base64-encoder.c 2012-08-10 06:45:25 +0300 Timo Sirainen (3700eab78) Added istream-base64-decoder. M src/lib/Makefile.am A src/lib/istream-base64-decoder.c M src/lib/istream-base64-encoder.c R071 src/lib/istream-base64-encoder.h src/lib/istream-base64.h A src/lib/test-istream-base64-decoder.c M src/lib/test-istream-base64-encoder.c M src/lib/test-lib.c M src/lib/test-lib.h 2012-08-10 06:03:11 +0300 Timo Sirainen (72a16aec6) istreams: When reading invalid data, fail with EINVAL instead of EIO. EINVAL was already used more. M src/lib-mail/istream-attachment-extractor.c M src/lib-storage/index/istream-mail.c M src/lib/istream-sized.c M src/lib/istream-sized.h 2012-08-10 05:55:13 +0300 Timo Sirainen (10f6041b5) istream-base64-encoder: Minor fix to require only 3 bytes instead of 4 per input block. Base64 encoder reads 3 bytes and outputs 4 bytes, so it's ok to read only 3 bytes. M src/lib/istream-base64-encoder.c 2012-08-10 05:34:35 +0300 Timo Sirainen (637f9883a) ioloop-epoll: Fix for running with zero I/Os. M src/lib/ioloop-epoll.c 2012-08-10 05:27:45 +0300 Timo Sirainen (6c94ba965) doveadm: Renamed "auth" command to "auth test". M src/doveadm/doveadm-auth.c 2012-08-10 05:24:07 +0300 Timo Sirainen (1d2c463d2) Merged changes from v2.1 tree. 2012-08-10 04:56:56 +0300 Timo Sirainen (0a35e4497) TODO updated M TODO 2012-08-10 02:34:34 +0300 Timo Sirainen (2df335f17) Removed accidentally committed debug code M src/lib-master/master-service-settings-cache.c 2012-08-10 02:33:19 +0300 Timo Sirainen (f098053b9) lib-master: Another settings parser cache fix M src/lib-master/master-service-settings-cache.c 2012-08-10 00:16:08 +0300 Timo Sirainen (cf64e39ce) lib-storage: Don't save text/* MIME parts to external attachments even if they're big enough. M src/lib-storage/index/index-attachment.c 2012-08-09 18:50:31 +0300 Timo Sirainen (8c8f7ac58) Added file_lock_method_to_str() M src/lib/file-lock.c M src/lib/file-lock.h 2012-08-08 23:57:29 +0300 Timo Sirainen (a327d9301) connection API: Don't do error handling by default on output stream. For connections the error handling is almost never wanted. M src/lib/connection.c 2012-08-08 23:46:48 +0300 Timo Sirainen (f02a1a376) master: If service's protocol isn't in enabled protocols, don't verify its settings. M src/master/master-settings.c 2012-08-08 23:41:40 +0300 Timo Sirainen (24fed8aca) Added libtest to libdovecot.so M configure.in M dovecot-config.in.in M src/Makefile.am M src/lib-dovecot/Makefile.am 2012-08-08 23:40:37 +0300 Timo Sirainen (eff0f02f2) ioloop-epoll: Allow running ioloop even without any I/Os (only timeouts). M src/lib/ioloop-epoll.c 2012-08-08 01:13:10 +0300 Timo Sirainen (af5fc8ca2) Compiler warning fixes M src/lib-mail/istream-attachment-extractor.h M src/lib-mail/test-istream-attachment.c 2012-08-08 00:44:27 +0300 Timo Sirainen (ca8793406) fts-solr: Optimized expunging messages: delete more than one ID per request. M src/plugins/fts-solr/fts-backend-solr.c 2012-08-07 17:56:24 +0300 Timo Sirainen (dbeedaef5) lib-master: Settings cache crashed after config_cache_size was reached. This affected login processes when local {} and/or remote {} blocks were specified. Also fixed the cache behavior to be MRU. M src/lib-master/master-service-settings-cache.c 2012-08-06 17:00:47 +0300 Timo Sirainen (3f878e144) login: s/succesful/successful/ M src/login-common/client-common.c 2012-08-03 17:39:54 +0300 Timo Sirainen (0e7d5ff38) pop3-migration: Avoid disconnection from POP3 server due to idling. M src/plugins/pop3-migration/pop3-migration-plugin.c 2012-08-03 14:19:03 +0300 Timo Sirainen (49d0c4cb3) Makefile: Fixed -ldovecot-compression name M Makefile.am 2012-08-02 23:56:09 +0300 Timo Sirainen (95eb893b9) Makefile: Added missing headers M src/lib-compression/Makefile.am 2012-08-02 23:38:30 +0300 Timo Sirainen (1ece673f8) Makefile: Added missing headers to tarball M src/lib-ssl-iostream/Makefile.am 2012-08-01 23:14:19 +0300 Timo Sirainen (8da18b8ca) doveadm-server: Make sure another command isn't started before previous one is finished. M src/doveadm/client-connection.c 2012-08-01 22:43:45 +0300 Timo Sirainen (f3bed8816) fts: Fixed a crash if virtual mailbox search couldn't be optimized by backend. M src/plugins/fts/fts-api.c 2012-08-01 22:39:57 +0300 Timo Sirainen (d05e9a7a1) fts: Fixed crash on error handling M src/plugins/fts/fts-search.c 2012-08-01 21:14:30 +0300 Timo Sirainen (7a3d16456) auth: Minor code cleanup M src/auth/auth-cache.c 2012-08-01 20:37:05 +0300 Timo Sirainen (d52705589) Added signature for changeset bc86680293d2 M .hgsigs 2012-08-01 20:36:53 +0300 Timo Sirainen (39d4d5ffb) Added tag 2.1.9 for changeset bc86680293d2 M .hgtags 2012-08-01 20:36:53 +0300 Timo Sirainen (b07088412) Released v2.1.9. M NEWS M configure.in 2012-08-01 20:25:26 +0300 Timo Sirainen (2219b375f) auth: Support empty ldap base (for ldap servers that support it). M src/auth/db-ldap.c 2012-08-01 20:24:58 +0300 Timo Sirainen (a9c3b57f9) auth: winbind mechanism supports now spaces in filenames. M src/auth/mech-winbind.c 2012-08-01 20:24:00 +0300 Timo Sirainen (2022c2590) fts: Fixed crash in fts_lookup_multi() for backends that can't handle it (fts-squat) M src/plugins/fts/fts-api.c 2012-08-01 18:53:52 +0300 Timo Sirainen (98a73e104) o_stream_ignore_last_errors() / o_stream_nfinish() now marks parent streams also as checked. M src/lib/ostream.c 2012-08-01 18:33:14 +0300 Timo Sirainen (685057522) Removed duplicate libdovecot-ssl M src/lib-dovecot/Makefile.am M src/lib-ssl-iostream/Makefile.am 2012-08-01 18:30:40 +0300 Timo Sirainen (f052a4486) Moved zlib/bzlib code to lib-compression library. M Makefile.am M configure.in M dovecot-config.in.in M dovecot.m4 M src/Makefile.am A src/lib-compression/Makefile.am A src/lib-compression/compression.c A src/lib-compression/compression.h R100 src/plugins/zlib/istream-bzlib.c src/lib-compression/istream-bzlib.c R100 src/plugins/zlib/istream-zlib.c src/lib-compression/istream-zlib.c R100 src/plugins/zlib/istream-zlib.h src/lib-compression/istream-zlib.h R100 src/plugins/zlib/ostream-bzlib.c src/lib-compression/ostream-bzlib.c R100 src/plugins/zlib/ostream-zlib.c src/lib-compression/ostream-zlib.c R100 src/plugins/zlib/ostream-zlib.h src/lib-compression/ostream-zlib.h M src/plugins/imap-zlib/Makefile.am M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/zlib/Makefile.am M src/plugins/zlib/zlib-plugin.c M src/plugins/zlib/zlib-plugin.h 2012-08-01 14:13:40 +0300 Timo Sirainen (46eecdfa4) lib-storage: Fixed attempting to delete a non-symlink with Solaris Also fixed error message to say it's about unlink(), not stat(). M src/lib-storage/list/mailbox-list-delete.c 2012-07-31 23:10:53 +0300 Timo Sirainen (cd2fc7dd2) fts-solr: Compiler warning fix M src/plugins/fts-solr/solr-connection.c 2012-07-31 23:02:22 +0300 Timo Sirainen (b09f510e3) imapc: Fixed crashes during mailbox close. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h 2012-07-31 22:33:21 +0300 Timo Sirainen (9fc96ee0e) lib-storage: Improved missing namespace error messages. M src/lib-storage/mail-namespace.c 2012-07-31 22:30:19 +0300 Timo Sirainen (b5b44e6c9) script: Don't add an empty parameter to executed command line Also fixed an error check M src/util/script.c 2012-07-31 22:03:00 +0300 Timo Sirainen (df1713bd2) fts-solr: Log a better error if Solr sends invalid XML input. M src/plugins/fts-solr/solr-connection.c 2012-07-31 20:59:22 +0300 Timo Sirainen (4e68f62aa) auth: if passwd-file isn't the only userdb, don't complain about missing userdb fields M src/auth/db-passwd-file.c M src/auth/db-passwd-file.h 2012-07-31 19:32:03 +0300 Timo Sirainen (812f2e9d1) lib-storage: Fixes to handling private message flag indexes. M src/lib-storage/index/index-search.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync.c 2012-07-31 18:34:53 +0300 Timo Sirainen (30bbe0d3d) imap: Fixed LIST handling with reference parameter. For example "LIST shared/ %" failed to list shared/user namespace prefix. M src/imap/cmd-list.c 2012-07-31 18:33:45 +0300 Timo Sirainen (9de71a911) lib-storage: Avoid creating shared user for an empty username. M src/lib-storage/index/shared/shared-list.c 2012-07-31 02:46:21 +0300 Timo Sirainen (4351efddd) imap: CATENATE command fixes. Patch by Stephan Bosch M src/imap/cmd-append.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib/uri-util.c 2012-07-31 02:45:23 +0300 Timo Sirainen (fde095c17) lib-master: Assert-crashfix M src/lib-master/master-service-ssl.c 2012-07-30 19:49:43 +0300 Timo Sirainen (35856ec46) auth: EXTERNAL mechanism didn't use auth_username_* settings. M src/auth/mech-external.c 2012-07-30 15:56:00 +0300 Timo Sirainen (96f89d51e) Added "connection" API for handling client/server connections more easily. M src/lib/Makefile.am A src/lib/connection.c A src/lib/connection.h 2012-07-30 15:55:39 +0300 Timo Sirainen (01c05d9e3) Makefile: Fixed libdovecot-ssl to actually contain libssl-iostream M src/lib-dovecot/Makefile.am 2012-07-30 15:06:29 +0300 Timo Sirainen (64347267c) dovecot.m4: Export also LIBDOVECOT_IMAP_INCLUDE M dovecot.m4 2012-07-28 21:55:14 +0300 Timo Sirainen (b24404017) lib-master: Check ssl_cert/ssl_key only when running in config/doveconf. Also if Dovecot isn't built with SSL, default to ssl=no M src/lib-master/master-service-ssl-settings.c 2012-07-28 20:31:30 +0300 Timo Sirainen (40ec8af8e) lib-storage: When saving a mail, set date.save to cache immediately. M src/lib-storage/index/index-mail.c 2012-07-28 20:31:13 +0300 Timo Sirainen (f081cca12) lib-storage: When copying a mail, use a new timestamp for date.save instead of preserving it. M src/lib-storage/index/index-storage.c 2012-07-28 20:00:32 +0300 Timo Sirainen (3f8926ac7) fts-lucene: Fixed handling non-lowercase SEARCH HEADER FROM/TO/SUBJECT/CC/BCC Based on patch by Matthew Powell. M src/plugins/fts-lucene/lucene-wrapper.cc 2012-07-28 19:57:10 +0300 Timo Sirainen (a7bff77a9) verbose_ssl=yes: Log debug messages with debug level instead of as info... M src/login-common/ssl-proxy-openssl.c 2012-07-28 19:56:07 +0300 Timo Sirainen (c09d07e85) verbose_ssl=yes: Log debug messages with debug level instead of as warnings. M src/lib-ssl-iostream/iostream-openssl.c M src/login-common/ssl-proxy-openssl.c 2012-07-28 19:33:14 +0300 Timo Sirainen (df27677ac) lib-charset: Removed unnecessary buffer size increases, which only caused out-of-memory errors. M src/lib-charset/charset-iconv.c 2012-07-28 18:03:25 +0300 Timo Sirainen (0f43a3eb3) dovecot.m4: Updates from Pigeonhole M dovecot.m4 2012-07-28 17:55:46 +0300 Timo Sirainen (cf3894a2a) Added libdovecot-ssl for creating SSL servers more easily using lib-ssl-iostream. M Makefile.am M configure.in M dovecot-config.in.in M dovecot.m4 M src/Makefile.am M src/lib-dovecot/Makefile.am M src/lib-master/Makefile.am A src/lib-master/master-service-ssl.c A src/lib-master/master-service-ssl.h 2012-07-28 17:54:19 +0300 Timo Sirainen (f29756821) Moved ssl_* settings from login-common to lib-master. This allows creating other SSL servers more easily. M src/config/config-parser.c M src/lib-master/Makefile.am M src/lib-master/master-service-private.h M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h A src/lib-master/master-service-ssl-settings.c A src/lib-master/master-service-ssl-settings.h M src/lib-master/master-service.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/login-common.h M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/login-settings.h M src/login-common/main.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/login-common/ssl-proxy.h M src/master/service-process.c 2012-07-28 17:47:34 +0300 Timo Sirainen (aec5f1749) lib-master: Added base_dir to master_service_settings. M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h 2012-07-28 17:45:47 +0300 Timo Sirainen (9d002e700) lib-master: Added and used MASTER_SERVICE_INTERNAL_SET_PARSERS macro. M src/auth/auth-settings.c M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-storage/mail-storage-service.c M src/lmtp/lmtp-settings.c M src/login-common/login-settings.c 2012-07-28 17:37:19 +0300 Timo Sirainen (a80b99557) ssl-params: Create also base_dir/ssl-params socket. M src/ssl-params/ssl-params-settings.c 2012-07-28 17:36:53 +0300 Timo Sirainen (513ca3e08) login: Use lib-ssl-iostream code to handle ssl_protocols setting. M src/login-common/ssl-proxy-openssl.c 2012-07-28 17:36:27 +0300 Timo Sirainen (6a4212e6d) lib-ssl-iostream: Added protocols setting. M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/iostream-ssl.h 2012-07-28 17:34:11 +0300 Timo Sirainen (2244ec1fd) lib-ssl-iostream: Name SSL iostreams based on parent streams. M src/lib-ssl-iostream/iostream-openssl.c 2012-07-28 17:33:45 +0300 Timo Sirainen (130fadd21) lib-ssl-iostream: Inherit output stream's error handling from parent. M src/lib-ssl-iostream/iostream-openssl.c 2012-07-28 17:32:14 +0300 Timo Sirainen (38f1423a2) lib-ssl-iostream: Added ssl_iostream_destroy() to do a clean SSL shutdown. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl-none.c M src/lib-ssl-iostream/iostream-ssl.h 2012-07-28 16:29:22 +0300 Timo Sirainen (1ab2295a9) config: Added support for plugins to contain multiple service settings. For example: const struct service_settings *foo_settings_service_settings_array[] = { &foo1_settings_service_settings, &foo2_settings_service_settings, NULL }; M src/config/config-parser.c 2012-07-28 15:34:28 +0300 Timo Sirainen (04e768a7b) imap: MOVE command's COPYUID reply was missing a space M src/imap/cmd-copy.c 2012-07-25 19:31:28 +0300 Timo Sirainen (c24ef531c) i_stream_read(): Added assert to make sure EOF isn't returned too early. M src/lib/istream.c 2012-07-25 19:30:59 +0300 Timo Sirainen (c48b86182) Comment update. M src/lib-mail/istream-attachment-connector.h 2012-07-25 19:30:55 +0300 Timo Sirainen (95ba0bc53) istream-attachment-extractor: Fixed read() returning EOF too early. M src/lib-mail/istream-attachment-extractor.c 2012-07-25 15:39:14 +0300 Timo Sirainen (a67b39aac) pop3c: If POP3 server doesn't support CAPA command, try to use UIDL anyway. M src/lib-storage/index/pop3c/pop3c-client.c 2012-07-23 21:43:39 +0300 Timo Sirainen (fefd62f9a) lib-dict: Added memcached backend using its binary protocol. M src/lib-dict/Makefile.am A src/lib-dict/dict-memcached.c M src/lib-dict/dict-private.h M src/lib-dict/dict.c M src/lib-dict/test-dict.c 2012-07-23 17:24:13 +0300 Timo Sirainen (1c7df2f6d) redis dict: Added support for set/unset/atomic_inc. This allows using Redis as dict quota backend. M src/lib-dict/dict-redis.c 2012-07-23 17:23:37 +0300 Timo Sirainen (e3237982a) lib-dict: Allow backends to have iteration methods as NULL if they don't support it. M src/lib-dict/dict.c 2012-07-23 14:23:32 +0300 Timo Sirainen (6f42ea227) quota: Added quota_ignore_save_errors plugin setting. If mail is being saved but current quota usage lookup fails with internal error, save the mail anyway instead of failing. M src/plugins/quota/quota-private.h M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2012-07-17 16:20:20 +0300 Timo Sirainen (b1f02eab2) auth: Fixed error handling in GSSAPI when __gss_userok() was used. An invalid username would have been treated as successful and auth process probably would have crashed. M src/auth/mech-gssapi.c 2012-07-17 16:17:40 +0300 Timo Sirainen (0da7ec741) auth: GSSAPI RFC compliancy fixes. Patch by Ben Morrow: The first problem is that, because of the way the client invokes libsasl, it sends a GSSAPI request which does not ask for mutual authentication. This means that on the server gss_accept_sec_context returns GSS_S_COMPLETE with a zero-length output token. Dovecot currently sends this to the client as a zero-length continuation response, but this is incorrect according to RFC 4752: what it ought to do instead is proceed straight to the security layer negotiations, and send a gss_wrap packet. The second is that Cyrus sends an empty authz identity; that is, the security layer negotiation packet, when gss_unwrapped, is exactly 4 bytes long. Dovecot objects to this, but in RFC 4422 this is explicitly allowed, and means the authz identity is identical to the authn identity. M src/auth/mech-gssapi.c 2012-07-17 16:03:43 +0300 Jan Friesse (3fccae825) quota: Support for fs hard limit Support for hard limit is implemented for NFS, but sadly not for other filesystems. If softlimit is not set (it's 0), hardlimit should be used. --- src/plugins/quota/quota-fs.c | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0 deletions(-) M src/plugins/quota/quota-fs.c 2012-07-17 15:44:36 +0300 Timo Sirainen (384034c3a) config: Fixed error reporting when reloading settings for master process fails. M src/config/config-connection.c M src/lib-settings/settings-parser.c 2012-07-17 15:31:03 +0300 Timo Sirainen (f88134b68) doc: Install mkcert.sh, dovecot-openssl.cnf and solr-schema.xml files. M doc/Makefile.am 2012-07-17 15:28:24 +0300 Timo Sirainen (6a9e03444) login: Don't allow STARTTLS if ssl=no in client's settings, even if ssl=yes globally. M src/imap-login/client.c M src/login-common/client-common.c M src/login-common/client-common.h M src/pop3-login/client-authenticate.c 2012-07-17 15:21:32 +0300 Timo Sirainen (efa98cba7) lib-master: Updated default mountpoint ignore prefix list. M src/lib-master/mountpoint-list.c 2012-07-17 15:14:21 +0300 Timo Sirainen (df27aa70a) director: Changed director_username_hash setting's default from %u to %Lu This allows potential trouble when username isn't always lowercased. M src/director/director-settings.c 2012-07-17 15:13:21 +0300 Timo Sirainen (76e1aaea9) example-config: Added director_username_hash setting. M doc/example-config/conf.d/10-director.conf 2012-07-17 15:10:35 +0300 Timo Sirainen (d4a575a5c) lib-mail: mail_user_hash() has now a faster code path for format=%Lu M src/lib-mail/mail-user-hash.c 2012-07-17 14:57:44 +0300 Timo Sirainen (bc0e8c45c) master: "/X is no longer mounted" warning now points to wiki page. M src/master/main.c 2012-07-16 23:15:19 +0300 Timo Sirainen (93b19ecc7) doveconf: When looking up specific settings, ignore errors found by check functions. M src/config/doveconf.c 2012-07-16 20:41:51 +0300 Timo Sirainen (a4b1620c9) imap: Updated MOVE implementation. M src/imap/cmd-copy.c M src/imap/imap-commands.c M src/imap/imap-commands.h 2012-07-16 18:24:53 +0300 Timo Sirainen (981b94d1a) master: Create missing /var/lib/dovecot/ with world-read-exec permissions. There's really nothing secret in the directory and in some setups this change had to be done manually anyway. M src/master/master-settings.c 2012-07-16 18:00:21 +0300 Timo Sirainen (766115d2b) quota: ns=PREFIX setting was ignored when accessing other users' shared mailboxes. M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2012-07-16 17:40:45 +0300 Timo Sirainen (f9142439f) lib-storage: %h variable didn't necessarily expand correctly for shared users' settings. M src/lib-storage/mail-user.c 2012-07-16 16:59:51 +0300 Timo Sirainen (c8750d183) lib-storage: Search crashfix. M src/lib-storage/index/index-search.c 2012-07-16 16:49:16 +0300 Timo Sirainen (e5a98011c) login: If ssl_key parsing fails, log the reason. M src/login-common/ssl-proxy-openssl.c 2012-07-11 19:15:03 +0200 Timo Sirainen (bfe4a97ad) mail-log: Log mailbox names with UTF-8 everywhere (instead of mUTF-7) M src/plugins/mail-log/mail-log-plugin.c 2012-07-11 09:32:18 +0200 Timo Sirainen (f90c6ff1a) Debian names libtextcat as libexttextcat. Patch by Stephan Bosch. M configure.in M src/plugins/fts-lucene/Makefile.am M src/plugins/fts-lucene/lucene-wrapper.cc 2012-07-08 10:28:38 +0300 Timo Sirainen (378e1583e) pop3c: pop3c_master_user setting broke down non-master logins. M src/lib-storage/index/pop3c/pop3c-client.c 2012-07-08 09:18:46 +0300 Timo Sirainen (aa8e63009) redis: Fixed connection handling. M src/lib-dict/dict-redis.c M src/lib/connection.c M src/lib/connection.h 2012-07-08 09:00:57 +0300 Timo Sirainen (31257b47d) lib-dict: Added initial version of Redis support. The code is a bit ugly and doesn't handle anything except key lookups. M src/lib-dict/Makefile.am M src/lib-dict/dict-private.h A src/lib-dict/dict-redis.c M src/lib-dict/dict.c M src/lib-dict/test-dict.c 2012-07-08 08:59:52 +0300 Timo Sirainen (bc151e6b8) Added "connection" API for handling client/server connections more easily. M src/lib/Makefile.am A src/lib/connection.c A src/lib/connection.h 2012-07-08 07:45:17 +0300 Timo Sirainen (2028d80c2) auth: Added "dict" passdb/userdb. A doc/example-config/conf.d/auth-dict.conf.ext A doc/example-config/dovecot-dict-auth.conf.ext M src/auth/Makefile.am A src/auth/db-dict.c A src/auth/db-dict.h M src/auth/main.c A src/auth/passdb-dict.c M src/auth/passdb.c A src/auth/userdb-dict.c M src/auth/userdb.c 2012-07-08 07:37:28 +0300 Timo Sirainen (e0ba54c7f) Added a simple JSON parser for parsing an object. M src/lib/Makefile.am A src/lib/json-parser.c A src/lib/json-parser.h 2012-07-07 16:27:59 +0300 Timo Sirainen (0d6ae5891) pop3c: Don't get size of TOP output and cache it as message's virtual size. M src/lib-storage/index/pop3c/pop3c-mail.c 2012-07-05 16:11:00 +0300 Timo Sirainen (e771c83f8) lib-storage: Minor code cleanup M src/lib-storage/index/index-search.c 2012-07-05 16:08:07 +0300 Timo Sirainen (c185be222) lib-storage: Fixed searching message flags on mailboxes without private index. M src/lib-storage/index/index-search.c 2012-07-05 10:51:42 +0300 Timo Sirainen (39aaa6644) imap: Fixed crashes on some FETCH commands M src/lib-imap-storage/imap-msgpart.c 2012-07-04 13:13:56 +0300 Timo Sirainen (be871058b) lib-storage: Private index needs to be synced also when messages have been expunged. M src/lib-storage/index/index-sync-pvt.c 2012-07-04 12:37:02 +0300 Timo Sirainen (ee0a5025d) lib-storage: Don't try to sync private index files if syncing already failed. This fixes a crash when opening a mailbox failed. M src/lib-storage/index/index-sync.c 2012-07-04 11:19:44 +0300 Timo Sirainen (497e3c244) lib-master: i_close_fd() change caused environment variables to be used as settings. M src/lib-master/master-service-settings.c 2012-07-04 11:02:58 +0300 Timo Sirainen (277c552d3) doveadm auth cache flush usage string updated M src/doveadm/doveadm-auth.c 2012-07-07 14:37:54 +0300 Timo Sirainen (fdb766123) file_preallocate() returned wrong value on success with OSX. M src/lib/file-set-size.c 2012-07-07 05:51:37 +0300 Timo Sirainen (ee3dc5221) pop3: Fixed assert crash when doing UIDL on empty mailbox on some setups. M src/pop3/pop3-commands.c 2012-07-04 10:57:40 +0300 Timo Sirainen (a43145989) doveadm: Added "auth cache flush" command. M src/doveadm/doveadm-auth.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h M src/lib-auth/auth-master.c M src/lib-auth/auth-master.h 2012-07-04 10:56:53 +0300 Timo Sirainen (39dcbe101) auth: Added CACHE-FLUSH command to flush some/all users from auth cache. M src/auth/auth-cache.c M src/auth/auth-cache.h M src/auth/auth-master-connection.c M src/auth/auth-request.h M src/auth/auth.c M src/auth/test-auth-cache.c 2012-07-03 05:15:14 +0300 Timo Sirainen (8b4bc126e) Added signature for changeset 7e5f36fd989d M .hgsigs 2012-07-03 05:15:04 +0300 Timo Sirainen (953c20fae) Added tag 2.1.8 for changeset 7e5f36fd989d M .hgtags 2012-07-03 05:15:04 +0300 Timo Sirainen (4f1789fdd) Released v2.1.8. M NEWS M configure.in 2012-07-03 04:23:03 +0300 Timo Sirainen (e7b1f9db0) lmtp: Added lmtp_address_translate setting. The idea is that if you need userdb lookup to be done with a special kind of a username like user:domain@extrainfo, you can set lmtp_address_translate=%n:%d@ which translates the address to user@domain after the userdb lookup is done. M src/lmtp/commands.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2012-07-03 03:27:52 +0300 Timo Sirainen (0aaea0919) lib-sql db cache: Reaching max_unused_connections caused a crash later. M src/lib-sql/sql-db-cache.c 2012-07-03 02:59:53 +0300 Timo Sirainen (2d1892aae) doveadm server: Keep config socket open while running. M src/doveadm/main.c 2012-07-03 01:52:00 +0300 Timo Sirainen (c180e9d65) layout=fs, mail_shared_explicit_inbox=no: Fixed listing nonexistent mailboxes in root. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-07-03 01:06:24 +0300 Timo Sirainen (7d87a87b3) imap-quota: GETQUOTAROOT command used UTF-8 instead of mUTF-7 encoding for mailbox name. M src/plugins/imap-quota/imap-quota-plugin.c 2012-07-03 01:06:10 +0300 Timo Sirainen (ec5fec7ea) imap-acl: MYRIGHTS command used UTF-8 instead of mUTF-7 encoding for mailbox name. M src/plugins/imap-acl/imap-acl-plugin.c 2012-07-02 14:54:33 +0300 Timo Sirainen (a4f2e420e) imap: Mailbox names in STATUS replies were sent as UTF-8 instead of mUTF-7. M src/imap/cmd-list.c M src/imap/cmd-status.c M src/imap/imap-status.c M src/imap/imap-status.h 2012-07-02 10:12:59 +0300 Timo Sirainen (d9b152204) lmtp: Fixed previous change to make sure it doesn't crash on error handling. M src/lmtp/lmtp-proxy.c 2012-07-02 10:09:15 +0300 Timo Sirainen (fb340f9df) lmtp: Don't idle-timeout LMTP client while proxying waits for DATA replies. M src/lmtp/commands.c 2012-07-02 10:05:46 +0300 Timo Sirainen (42876546f) lmtp proxy: Reset timeout each time receiving a reply lin for DATA. This avoids timing out when there are a lot of RCPT TOs. M src/lmtp/lmtp-proxy.c 2012-07-02 08:06:19 +0300 Timo Sirainen (3f780bf67) config: Fixed IPv6 address handling for parsing v1.x style listen/ssl_listen settings. M src/config/old-set-parser.c 2012-07-02 05:14:22 +0300 Timo Sirainen (3bd3e8e74) lib-storage: Fixed searching message flags with private flags index. M src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-search.c 2012-07-02 05:14:02 +0300 Timo Sirainen (7e5cba66c) lib-storage: Fixed STATUS_FIRST_UNSEEN_SEQ lookup with private flags index. M src/lib-storage/index/index-status.c 2012-06-30 22:27:34 +0300 Timo Sirainen (ceb43cc04) o_stream_nsend() comment update M src/lib/ostream.h 2012-06-29 09:15:26 +0300 Timo Sirainen (5df8396a7) istreams: Added default stat() implementation for filter streams. M src/lib-mail/istream-attachment-extractor.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-nonuls.c M src/lib-storage/index/istream-mail.c M src/lib/istream-base64-encoder.c M src/lib/istream-crlf.c M src/lib/istream-limit.c M src/lib/istream-private.h M src/lib/istream-rawlog.c M src/lib/istream-sized.c M src/lib/istream.c 2012-06-29 09:01:56 +0300 Timo Sirainen (032964c7c) istreams: Added default seek() implementation for seekable streams. M src/lib-storage/index/istream-mail.c M src/lib/istream-base64-encoder.c M src/lib/istream-limit.c M src/lib/istream-private.h M src/lib/istream-seekable.c M src/lib/istream-sized.c M src/lib/istream.c 2012-06-29 08:05:08 +0300 Timo Sirainen (9a68dcd35) lib-storage: External mail attachment parsing didn't handle CRLF linefeeds correctly. This simply meant that if mail_save_crlf=yes was used, base64-encoded attachments weren't saved base64-decoded. M src/lib-storage/index/index-attachment.c 2012-06-29 08:01:08 +0300 Timo Sirainen (338088fe2) lib-storage: Use the new istream-attachment-* APIs to handle external mail attachments. M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/index-attachment.c 2012-06-29 08:00:19 +0300 Timo Sirainen (8aeae03f9) lib-mail: Added istream-attachment-[connector|extractor]. istream-attachment-extractor can be used to parse messages and extract attachment MIME parts from them to wanted output streams. The attachments are base64-decoded if they can be later re-encoded to original input without any changes. istream-attachment-connector does the reverse by taking the base istream and attachment istreams and merging them together to create the original istream. M src/lib-mail/Makefile.am A src/lib-mail/istream-attachment-connector.c A src/lib-mail/istream-attachment-connector.h A src/lib-mail/istream-attachment-extractor.c A src/lib-mail/istream-attachment-extractor.h A src/lib-mail/test-istream-attachment.c 2012-06-29 07:56:02 +0300 Timo Sirainen (9a7559305) istreams: Set (file), (fd) or (buffer) as default name for those input streams. M src/lib/istream-data.c M src/lib/istream-file.c M src/lib/ostream-buffer.c 2012-06-29 06:14:51 +0300 Timo Sirainen (ec0e150e5) dbox: Fixed a potential crash when building message stream from external attachments. M src/lib-storage/index/dbox-common/dbox-attachment.c 2012-06-28 09:28:05 +0300 Timo Sirainen (571fd6ff9) Fixed ostream's new error handling not to always assert-crash. M src/lib/ostream.c 2012-06-28 06:32:00 +0300 Timo Sirainen (807332e48) imap: If selected mailbox is DELETEd, disconnect client. M src/imap/cmd-delete.c 2012-06-28 03:20:34 +0300 Timo Sirainen (ddd1adf19) hash-format object can now be reset to build multiple hashes. M src/lib/hash-format.c M src/lib/hash-format.h 2012-06-28 03:18:55 +0300 Timo Sirainen (c7acd38cd) Added i_stream_alloc() M src/lib-mail/istream-binary-converter.c M src/lib/istream-private.h M src/lib/istream.c 2012-06-28 01:30:50 +0300 Timo Sirainen (dd2df6a67) istreams: Renamed i_stream_get_buffer_space() to i_stream_try_alloc() M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-nonuls.c M src/lib-ssl-iostream/istream-openssl.c M src/lib/istream-base64-encoder.c M src/lib/istream-chain.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-file.c M src/lib/istream-private.h M src/lib/istream.c 2012-06-28 01:01:58 +0300 Timo Sirainen (c00c7161d) Renamed istream-attachment to istream-sized. The code didn't really assume anything about the input being an attachment, so this allows reusing the stream for other purposes. M src/lib-storage/index/Makefile.am M src/lib-storage/index/dbox-common/dbox-attachment.c D src/lib-storage/index/istream-attachment.h M src/lib/Makefile.am R052 src/lib-storage/index/istream-attachment.c src/lib/istream-sized.c A src/lib/istream-sized.h 2012-06-28 00:27:13 +0300 Timo Sirainen (4307c8865) Changed i_close_fd() API to set the fd to -1 after closing. M src/auth/db-checkpassword.c M src/auth/db-passwd-file.c M src/auth/mech-winbind.c M src/config/config-parser.c M src/config/sysinfo-get.c M src/director/director-test.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-stats.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-slave-io.c M src/imap/main.c M src/lda/main.c M src/lib-dict/dict-file.c M src/lib-dns/dns-lookup.c M src/lib-imap-client/imapc-client.c M src/lib-index/mail-cache-compress.c M src/lib-lda/smtp-client.c M src/lib-master/master-login.c M src/lib-master/master-service-settings.c M src/lib-master/mountpoint-list.c M src/lib-settings/settings-parser.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mailbox-uidvalidity.c M src/lib/askpass.c M src/lib/failures.c M src/lib/fdatasync-path.c M src/lib/file-copy.c M src/lib/file-dotlock.c M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-kqueue.c M src/lib/iostream-rawlog.c M src/lib/istream-seekable.c M src/lib/lib.c M src/lib/lib.h M src/lib/macros.h M src/lib/network.c M src/lib/nfs-workarounds.c M src/lib/randgen.c M src/lib/safe-mkstemp.c M src/lib/test-ostream-file.c M src/lib/unlink-directory.c M src/lmtp/commands.c M src/login-common/access-lookup.c M src/login-common/ssl-proxy-gnutls.c M src/master/main.c M src/master/service-listen.c M src/master/service-monitor.c M src/master/service.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-script.c M src/plugins/quota/quota-maildir.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/zlib/doveadm-zlib.c M src/plugins/zlib/zlib-plugin.c M src/pop3/main.c M src/ssl-params/ssl-params.c M src/util/gdbhelper.c M src/util/rawlog.c 2012-06-27 12:29:42 +0300 Timo Sirainen (0ca3b9cb0) pop3c: Added pop3c_master_user setting. M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-settings.h M src/lib-storage/index/pop3c/pop3c-storage.c 2012-06-27 12:25:05 +0300 Timo Sirainen (b21b2d517) doveadm mailbox status -A -t: Reset vsize counter between users. M src/doveadm/doveadm-mail-mailbox-status.c 2012-06-27 12:12:52 +0300 Timo Sirainen (b28fc85b1) lib-storage: Fixed handling failures when autocreating mailboxes. M src/lib-storage/mail-storage.c 2012-06-27 12:03:51 +0300 Timo Sirainen (00ef25364) gssapi: Allow logging in as users listed in "k5principals" extra field. This also enables other passdb extra fields for gssapi mechanism. Based on patch by Sam Morris. M src/auth/mech-gssapi.c 2012-06-27 04:24:53 +0300 Timo Sirainen (4e8d6d03c) Try to avoid (void) casts by adding more ATTR_NOWARN_UNUSED_RESULT. M src/lib-imap/imap-bodystructure.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-search.c M src/lib-mail/rfc822-parser.h M src/lib-storage/index/index-attachment.c M src/lib/hash.c M src/lib/md4.c M src/lib/md5.c M src/lib/ostream.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-parser-script.c 2012-06-25 19:40:24 +0300 Timo Sirainen (63fa2c5b8) imapc: Fixed crash on saving/copying if remote IMAP server didn't support UIDPLUS. M src/lib-storage/index/imapc/imapc-save.c 2012-06-25 03:21:25 +0300 Timo Sirainen (b66d803de) Avoid using (void)s by adding ATTR_NOWARN_UNUSED_RESULT attributes and other ways. M src/auth/auth-worker-server.h M src/auth/passdb-blocking.c M src/auth/userdb-blocking.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-slave-pipe.c M src/doveadm/dsync/dsync-slave.c M src/doveadm/dsync/dsync-slave.h M src/doveadm/dsync/dsync-transaction-log-scan.c M src/imap-login/client.c M src/imap/cmd-append.c M src/imap/imap-client.c M src/imap/imap-common.h M src/imap/imap-search.c M src/imap/imap-sync.c M src/imap/imap-sync.h M src/lib-dict/dict-client.c M src/lib-dict/dict-file.c M src/lib-imap-client/imapc-connection.c M src/lib-imap/imap-bodystructure.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-file.c M src/lib-mail/istream-binary-converter.c M src/lib-mail/message-decoder.c M src/lib-mail/message-parser.c M src/lib-mail/rfc2231-parser.h M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-lock.h M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mailbox-list.h M src/lib-test/test-common.c M src/lib/bsearch-insert-pos.h M src/lib/file-dotlock.c M src/lib/file-dotlock.h M src/lib/iostream-rawlog.h M src/lib/istream-base64-encoder.c M src/lib/istream-data.c M src/lib/istream-private.h M src/lib/istream.c M src/lib/network.h M src/login-common/client-common-auth.c M src/login-common/client-common.h M src/login-common/login-proxy.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-storage.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/pop3/pop3-client.c 2012-06-25 02:52:33 +0300 Timo Sirainen (cb78bd2ad) Replaced (void)close(fd) and close_keep_errno() with i_close_fd(). i_close_fd() preserves the errno and logs an error if the close() fails. M src/auth/db-checkpassword.c M src/auth/db-passwd-file.c M src/auth/mech-winbind.c M src/config/config-parser.c M src/config/sysinfo-get.c M src/director/director-test.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-stats.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-slave-io.c M src/imap/main.c M src/lda/main.c M src/lib-dict/dict-file.c M src/lib-dns/dns-lookup.c M src/lib-imap-client/imapc-client.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-transaction-log.c M src/lib-lda/smtp-client.c M src/lib-master/master-login.c M src/lib-master/master-service-settings.c M src/lib-master/mountpoint-list.c M src/lib-settings/settings-parser.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mailbox-uidvalidity.c M src/lib/Makefile.am M src/lib/askpass.c D src/lib/close-keep-errno.c D src/lib/close-keep-errno.h M src/lib/failures.c M src/lib/fdatasync-path.c M src/lib/file-copy.c M src/lib/file-dotlock.c M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-kqueue.c M src/lib/iostream-rawlog.c M src/lib/istream-seekable.c M src/lib/macros.h M src/lib/network.c M src/lib/nfs-workarounds.c M src/lib/randgen.c M src/lib/safe-mkstemp.c M src/lib/test-ostream-file.c M src/lib/unlink-directory.c M src/lmtp/commands.c M src/login-common/access-lookup.c M src/login-common/ssl-proxy-gnutls.c M src/master/main.c M src/master/service-listen.c M src/master/service-monitor.c M src/master/service.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-script.c M src/plugins/quota/quota-maildir.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/zlib/doveadm-zlib.c M src/plugins/zlib/zlib-plugin.c M src/pop3/main.c M src/ssl-params/ssl-params.c M src/util/gdbhelper.c M src/util/rawlog.c 2012-06-25 02:38:29 +0300 Timo Sirainen (31a574fda) Added array_append_zero() to write a zero-filled record to an array. Replaced (void)array_append_space() calls with it. M src/auth/auth-settings.c M src/auth/db-ldap.c M src/config/config-filter.c M src/config/config-parser.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-mailbox-import.c M src/imap/cmd-list.c M src/imap/imap-commands-util.c M src/imap/imap-fetch.c M src/lib-auth/auth-master.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap/imap-match.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index.c M src/lib-mail/rfc2231-parser.c M src/lib-master/master-service-settings.c M src/lib-sql/driver-sqlpool.c M src/lib-storage/fail-mail.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-search.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/mailbox-keywords.c M src/lib/array.h M src/lib/ioloop-epoll.c M src/lib/ioloop-kqueue.c M src/lib/uri-util.c M src/lib/var-expand.c M src/master/main.c M src/plugins/acl/doveadm-acl.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts/fts-search.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/virtual/virtual-save.c M src/util/script.c 2012-06-25 02:22:12 +0300 Timo Sirainen (461ffead9) seq-range-array: Reverted most of recent API changes. Added ATTR_NOWARN_UNUSED_RESULT for the functions whose return value can safely be ignored. M src/lib-index/mail-index-transaction-update.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/index-sync.c M src/lib-storage/mailbox-search-result.c M src/lib/seq-range-array.c M src/lib/seq-range-array.h M src/lib/test-seq-range-array.c M src/plugins/fts/fts-expunge-log.c M src/plugins/virtual/virtual-sync.c 2012-06-25 02:20:30 +0300 Timo Sirainen (61409be78) Added ATTR_NOWARN_UNUSED_RESULT, which expands to nowarn_unused_result attribute if supported. Requires a patched clang. M src/lib/macros.h 2012-06-25 02:15:22 +0300 Timo Sirainen (3785910c3) Added i_stream_get_data_size(). Used it where possible. M src/director/director-connection.c M src/doveadm/dsync/dsync-slave-io.c M src/imap/cmd-append.c M src/imap/imap-client.c M src/lib-dict/dict-client.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/istream-nonuls.c M src/lib-mail/message-parser.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib/istream-base64-encoder.c M src/lib/istream-crlf.c M src/lib/istream-seekable.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/istream.h M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-concat.c M src/lib/test-istream-seekable.c M src/plugins/fts/fts-expunge-log.c M src/plugins/zlib/istream-bzlib.c M src/plugins/zlib/istream-zlib.c 2012-06-25 01:14:03 +0300 Timo Sirainen (e34d170f8) Make sure we check all the functions' return values. Minor API changes to simplify this. Checked using a patched clang that adds attribute(warn_unused_result) to all functions. This commit fixes several error handling mistakes. M src/anvil/main.c M src/auth/auth-request.c M src/auth/mech-digest-md5.c M src/auth/mech-scram-sha1.c M src/auth/passdb-blocking.c M src/auth/password-scheme-otp.c M src/auth/userdb-blocking.c M src/auth/userdb-sql.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/dict/dict-commands.c M src/dict/main.c M src/director/director-connection.c M src/director/director-host.c M src/director/director.c M src/director/doveadm-connection.c M src/director/mail-host.c M src/director/main.c M src/director/test-user-directory.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mailbox-list-iter.c M src/doveadm/doveadm-mount.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-stats.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-mailbox-tree.c M src/doveadm/dsync/dsync-brain-mailbox.c M src/doveadm/dsync/dsync-brain-mails.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-mailbox-tree.c M src/doveadm/dsync/dsync-slave.c M src/doveadm/dsync/dsync-slave.h M src/doveadm/server-connection.c M src/doveadm/server-connection.h M src/imap-login/client.c M src/imap/cmd-fetch.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-fetch-body.c M src/imap/imap-sync.c M src/imap/main.c M src/indexer/master-connection.c M src/lib-auth/auth-client.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-part-serialize.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-dot.c M src/lib-ntlm/ntlm-des.c M src/lib-ntlm/ntlm-des.h M src/lib-ntlm/ntlm-encrypt.c M src/lib-ntlm/ntlm-encrypt.h M src/lib-otp/otp-hash.c M src/lib-otp/otp-hash.h M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-sync-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-storage.h M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-uidvalidity.c M src/lib/data-stack.c M src/lib/hash.c M src/lib/hostpid.c M src/lib/iostream-rawlog.c M src/lib/md4.c M src/lib/md5.c M src/lib/mountpoint.c M src/lib/nfs-workarounds.c M src/lib/nfs-workarounds.h M src/lib/seq-range-array.c M src/lib/seq-range-array.h M src/lib/test-base64.c M src/lib/test-network.c M src/lib/test-ostream-file.c M src/lib/test-seq-range-array.c M src/log/log-connection.c M src/log/log-connection.h M src/login-common/client-common-auth.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/ssl-proxy-openssl.c M src/master/main.c M src/master/service-anvil.c M src/master/service-process.c M src/master/service-process.h M src/plugins/autocreate/autocreate-plugin.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/fts-storage.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota.c M src/plugins/stats/stats-connection.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-sync.c M src/plugins/zlib/doveadm-zlib.c M src/plugins/zlib/ostream-zlib.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-client.h M src/pop3/pop3-commands.c M src/replication/aggregator/notify-connection.c M src/replication/replicator/notify-connection.c M src/stats/main.c M src/util/rawlog.c 2012-06-25 00:18:31 +0300 Timo Sirainen (76e24e06e) pop3c: Fixed losing timeout on ioloop change. M src/lib-storage/index/pop3c/pop3c-client.c 2012-06-25 00:01:59 +0300 Timo Sirainen (e2a88d59c) Added o_stream_nsend*() and related functions to make delayed error handling safer. Once o_stream_nsend*() is called, o_stream_nfinish() must be called before stream is destroyed to finish checking if there were any errors. If something failed and the stream is just wanted to be closed, o_stream_ignore_last_errors() can be called. For streams where errors don't really make any difference (network sockets) you can call o_stream_set_no_error_handling() immediately after creating the stream. M src/anvil/anvil-connection.c M src/anvil/connect-limit.c M src/anvil/penalty.c M src/auth/auth-client-connection.c M src/auth/auth-client-connection.h M src/auth/auth-master-connection.c M src/auth/auth-postfix-connection.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/main.c M src/auth/mech-winbind.c M src/config/config-connection.c M src/config/doveconf.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-test.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/dns/dns-client.c M src/doveadm/client-connection.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-print-server.c M src/doveadm/dsync/dsync-slave-io.c M src/doveadm/server-connection.c M src/imap-login/imap-proxy.c M src/imap/cmd-append.c M src/imap/cmd-copy.c M src/imap/cmd-thread.c M src/imap/imap-client.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-search.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/indexer/indexer-client.c M src/indexer/worker-connection.c M src/ipc/client.c M src/ipc/ipc-connection.c M src/lib-auth/auth-master.c M src/lib-dict/dict-file.c M src/lib-fs/fs-posix.c M src/lib-fs/ostream-cmp.c M src/lib-imap-client/imapc-connection.c M src/lib-imap/imap-parser.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-write.c M src/lib-lda/duplicate.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-instance.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/list/subscription-file.c M src/lib/ostream-file.c M src/lib/ostream-private.h M src/lib/ostream-rawlog.c M src/lib/ostream.c M src/lib/ostream.h M src/lib/test-ostream-file.c M src/lmtp/client.c M src/lmtp/lmtp-proxy.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/zlib/doveadm-zlib.c M src/plugins/zlib/ostream-bzlib.c M src/plugins/zlib/ostream-zlib.c M src/pop3-login/pop3-proxy.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/replication/aggregator/notify-connection.c M src/replication/aggregator/replicator-connection.c M src/replication/replicator/doveadm-connection.c M src/replication/replicator/notify-connection.c M src/replication/replicator/replicator-queue.c M src/ssl-params/main.c M src/stats/client-export.c M src/stats/client.c M src/stats/mail-server-connection.c M src/util/rawlog.c 2012-06-24 21:43:48 +0300 Timo Sirainen (121b01768) master: Problems with creating base_dir/statedir should be fatals. M src/master/master-settings.c M src/master/master-settings.h 2012-06-24 21:35:18 +0300 Timo Sirainen (e860b24ae) lib-lda: Duplicate database write failures weren't detected. M src/lib-lda/duplicate.c 2012-06-24 21:35:18 +0300 Timo Sirainen (b949f048d) lib-lda: Duplicate database write failures weren't detected. M src/lib-lda/duplicate.c 2012-06-24 21:29:56 +0300 Timo Sirainen (2738626e6) seq_range_array_add() API change triggered a crash in buggy code. M src/lib-index/mail-index-transaction-finish.c 2012-06-24 21:19:33 +0300 Timo Sirainen (4fb98a31d) seq_range_array_remove() now returns void. Added seq_ranger_array_try_remove(). M src/lib-index/mail-index-transaction-update.c M src/lib-storage/index/index-sync.c M src/lib-storage/mailbox-search-result.c M src/lib/seq-range-array.c M src/lib/seq-range-array.h M src/lib/test-seq-range-array.c 2012-06-24 21:14:56 +0300 Timo Sirainen (86bde2c18) seq_range_array_add() API changed. Added other functions to provide the less common use cases. M src/doveadm/dsync/dsync-mailbox-export.c M src/doveadm/dsync/dsync-mailbox-import.c M src/imap/cmd-store.c M src/imap/imap-search.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-view-sync.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/mail-search.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-search-result.c M src/lib/seq-range-array.c M src/lib/seq-range-array.h M src/lib/test-seq-range-array.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-search.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c 2012-06-24 20:58:04 +0300 Timo Sirainen (3ea86ed7c) Make static analyzer happier. M src/doveadm/dsync/dsync-mailbox-import.c M src/lib-index/mail-transaction-log-view.c 2012-06-24 20:57:06 +0300 Timo Sirainen (caa3e6bc6) Merged changes from v2.1 tree. 2012-06-24 20:52:39 +0300 Timo Sirainen (7bd301fdb) Make static analyzer happier. M src/auth/auth-request.c M src/auth/db-ldap.c M src/auth/password-scheme.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-save.c M src/plugins/fts-squat/squat-uidlist.c 2012-06-24 20:48:38 +0300 Timo Sirainen (6cb2c6ecd) Added file_dotlock_delete_verified() and changed file_dotlock_delete() to return void. M src/lib-fs/fs-posix.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache.c M src/lib-index/mail-transaction-log-file.c M src/lib-master/master-instance.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/list/subscription-file.c M src/lib/file-dotlock.c M src/lib/file-dotlock.h 2012-06-24 20:36:05 +0300 Timo Sirainen (01ca85e6e) lib-mail: Fixed an edge case with message header parser and very long lines. If the header was exactly a specific number of bytes, the parser thought the header ended there. M src/lib-mail/message-header-parser.c M src/lib-mail/test-message-header-parser.c 2012-06-24 19:51:40 +0300 Timo Sirainen (82d3a1d15) lib-mail: message_header_decode_utf8() API changed to not give return value. It's a rather unnecessary optimization and it wasn't even correct when the input wasn't valid UTF8. M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-decode.h M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-storage/index/index-mail-headers.c 2012-06-24 19:44:22 +0300 Timo Sirainen (efd9d73a7) dict file: Don't ignore write failures. M src/lib-dict/dict-file.c 2012-06-24 19:35:11 +0300 Timo Sirainen (e5f5f896b) fd_set_nonblock() API changed to i_fatal() on failure. Pretty much none of its users were checking if it failed, and there's really no good reason for it to fail anyway. M src/lib/fd-set-nonblock.c M src/lib/fd-set-nonblock.h M src/lib/network.c 2012-06-24 19:13:58 +0300 Timo Sirainen (959ce26df) dsync: Fixed a potential error if transaction log was completely empty. M src/doveadm/dsync/dsync-transaction-log-scan.c 2012-06-24 19:12:26 +0300 Timo Sirainen (8a71f94b2) imap: CATENATE error handling fix M src/imap/cmd-append.c 2012-06-24 18:58:19 +0300 Timo Sirainen (d13a8e216) Avoid a NULL warning in mysql_init() when HAVE_ATTR_NULL capable compiler is used. M src/lib-sql/driver-mysql.c 2012-06-24 03:19:17 +0300 Timo Sirainen (bef515a6f) director: Fix to handling duplicate USER-WEAK event. M src/director/director-connection.c 2012-06-24 03:02:11 +0300 Timo Sirainen (03275b07f) mailbox_list_index=yes: Fixed a potential crash. M src/lib-storage/list/mailbox-list-index-status.c 2012-06-24 03:02:11 +0300 Timo Sirainen (e364d03f2) mailbox_list_index=yes: Fixed a potential crash. M src/lib-storage/list/mailbox-list-index-status.c 2012-06-24 02:20:28 +0300 Timo Sirainen (3070d992b) Fixed signed integer shift overflows. These didn't actually cause any broken behavior. One of these was caught by http://embed.cs.utah.edu/ioc/ and the rest I grepped. M src/director/mail-host.c M src/lib/primes.c M src/lib/utc-mktime.c 2012-06-24 00:52:57 +0300 Timo Sirainen (a10ed8c47) Marked functions parameters that are allowed to be NULL. Some APIs were also changed. The non-obvious APIs where NULL parameter was changed to "" are master_service_init() and auth_master_user_list_init(). These checks can currently be enabled only on a patched clang: http://llvm.org/bugs/show_bug.cgi?id=6786 M src/anvil/main.c M src/auth/auth-master-connection.c M src/auth/auth-master-connection.h M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/auth-settings.h M src/auth/auth-stream.h M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/auth.h M src/auth/db-checkpassword.h M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/db-passwd-file.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-apop.c M src/auth/mech-cram-md5.c M src/auth/mech-ntlm.c M src/auth/mech-otp-skey-common.c M src/auth/mech-plain-common.c M src/auth/mech-rpa.c M src/auth/mech-winbind.c M src/auth/mech.c M src/auth/password-scheme-otp.c M src/auth/password-scheme.h M src/auth/userdb-passwd.c M src/auth/userdb-static.c M src/auth/userdb.h M src/config/config-parser-private.h M src/config/config-request.h M src/config/doveconf.c M src/config/main.c M src/dict/main.c M src/director/director-connection.c M src/director/director-test.c M src/director/director.h M src/dns/dns-client.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-iter.h M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-mailbox-import.c M src/doveadm/dsync/dsync-slave-io.c M src/doveadm/main.c M src/imap-login/client.c M src/imap-login/client.h M src/imap/cmd-append.c M src/imap/cmd-expunge.c M src/imap/imap-client.h M src/imap/imap-commands-util.h M src/imap/imap-expunge.h M src/imap/imap-fetch-body.c M src/imap/imap-fetch.h M src/imap/imap-search.h M src/imap/imap-sync.c M src/indexer/indexer.c M src/indexer/master-connection.c M src/ipc/client.c M src/ipc/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h M src/lib-auth/auth-master.c M src/lib-auth/auth-master.h M src/lib-dict/dict.h M src/lib-dns/dns-lookup.h M src/lib-imap-client/imapc-connection.h M src/lib-imap-storage/imap-msgpart.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-parser.h M src/lib-imap/imap-url.c M src/lib-imap/imap-util.h M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-alloc-cache.h M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-util.h M src/lib-index/mail-index-view.c M src/lib-index/mail-index.c M src/lib-index/mail-index.h M src/lib-lda/mail-deliver.h M src/lib-lda/smtp-client.h M src/lib-mail/istream-binary-converter.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.h M src/lib-mail/message-header-parser.h M src/lib-mail/message-parser.h M src/lib-mail/message-part-serialize.c M src/lib-mail/message-search.h M src/lib-mail/message-size.c M src/lib-mail/message-size.h M src/lib-mail/rfc822-parser.h M src/lib-mail/test-istream-header-filter.c M src/lib-master/anvil-client.h M src/lib-master/ipc-client.h M src/lib-master/ipc-server.c M src/lib-master/master-service-settings-cache.h M src/lib-master/master-service-settings.h M src/lib-master/master-service.c M src/lib-master/master-service.h M src/lib-master/mountpoint-list.c M src/lib-ntlm/ntlm-encrypt.c M src/lib-ntlm/ntlm-encrypt.h M src/lib-otp/otp-parse.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.h M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-save.h M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-sync-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync-changes.h M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename-flags.h M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-sync.h M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-uidlist.h M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mail-namespace.h M src/lib-storage/mail-search.h M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mail-thread.h M src/lib-storage/mail.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-tree.h M src/lib-test/test-common.h M src/lib/base64.h M src/lib/buffer.h M src/lib/child-wait.h M src/lib/eacces-error.h M src/lib/failures.c M src/lib/file-dotlock.c M src/lib/hash.c M src/lib/hash.h M src/lib/hash2.h M src/lib/ioloop-notify-fd.h M src/lib/ioloop.c M src/lib/ioloop.h M src/lib/iso8601-date.c M src/lib/istream-base64-encoder.c M src/lib/istream-chain.c M src/lib/istream-chain.h M src/lib/istream-crlf.c M src/lib/istream-private.h M src/lib/istream-seekable.h M src/lib/istream.c M src/lib/istream.h M src/lib/lib-signals.c M src/lib/lib-signals.h M src/lib/macros.h M src/lib/mkdir-parents.c M src/lib/module-dir.h M src/lib/network.c M src/lib/network.h M src/lib/ostream-private.h M src/lib/ostream.c M src/lib/ostream.h M src/lib/restrict-access.h M src/lib/safe-mkstemp.c M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-iso8601-date.c M src/lib/uri-util.c M src/lib/uri-util.h M src/lib/var-expand.h M src/lmtp/client.h M src/lmtp/lmtp-proxy.h M src/log/main.c M src/login-common/client-common-auth.c M src/login-common/login-proxy.c M src/login-common/login-settings.h M src/login-common/sasl-server.c M src/login-common/ssl-proxy-openssl.c M src/master/common.h M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-plugin.h M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.h M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/squat-trie.h M src/plugins/fts/fts-storage.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota.c M src/pop3/pop3-client.h M src/replication/aggregator/aggregator.c M src/replication/replicator/replicator.c M src/ssl-params/main.c M src/stats/mail-domain.h M src/stats/mail-ip.h M src/stats/mail-session.h M src/stats/mail-user.h M src/stats/main.c 2012-06-22 21:59:01 +0300 Timo Sirainen (9272316ae) Makefile: Removed unnecessary code M doc/man/Makefile.am 2012-06-22 18:51:42 +0300 Timo Sirainen (4b794181a) lib-ssl-iostream: Memory leak fixes M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c 2012-06-21 23:15:21 +0300 Timo Sirainen (5fdc11fc5) lib-imap: Added IMAP_RESP_CODE_UNKNOWN_CTE M src/imap/cmd-append.c M src/lib-imap/imap-resp-code.h 2012-06-21 22:56:15 +0300 Timo Sirainen (24107b28c) imap: Compile fix due to recent changes M src/imap/cmd-fetch.c 2012-06-21 22:50:10 +0300 Timo Sirainen (db2ab2138) Makefile: Removed message-binary-part.h which isn't finished yet. M src/lib-mail/Makefile.am 2012-06-21 21:58:48 +0300 Timo Sirainen (94517d98f) imap: Removed unnecessary code. M src/imap/imap-fetch-body.c 2012-06-21 21:52:56 +0300 Timo Sirainen (6816955a9) imap: Rewrote FETCH command to use imap-msgpart API. M src/imap/cmd-select.c M src/imap/imap-client.h M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h 2012-06-21 21:50:35 +0300 Timo Sirainen (0177594fa) lib-imap-storage: imap-msgpart rewrite and API change. The new API allows first parsing the validity of section strings and later relying on them being valid without having to re-parse it. The implementation also fixes a few things and adds "partial fetch cache". M src/lib-imap-storage/Makefile.am M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-storage/imap-msgpart.h M src/lib-storage/mail-storage-private.h 2012-06-21 21:47:06 +0300 Timo Sirainen (ed8256349) lib-imap: imap_quote() now skips any CR/LF characters from input. M src/lib-imap/imap-quote.c 2012-06-21 21:44:28 +0300 Timo Sirainen (e587908c5) lib-mail: Added istream-nonuls for converting NUL bytes to something else. M src/lib-mail/Makefile.am A src/lib-mail/istream-nonuls.c A src/lib-mail/istream-nonuls.h 2012-06-21 21:25:04 +0300 Timo Sirainen (2e7a81ede) imap: If DELETE can't succeed because mailbox has children, don't give [ALREADYEXISTS] code. M src/imap/cmd-delete.c 2012-06-21 19:12:04 +0300 Timo Sirainen (0d5689dfa) quota: Don't crash at init if one of the namespaces no root dir. M src/plugins/quota/quota.c 2012-06-21 18:48:38 +0300 Timo Sirainen (e160cd1c4) imapc: Don't crash when using multiple imapc namespaces. M src/lib-storage/index/imapc/imapc-storage.c 2012-06-21 14:51:36 +0300 Timo Sirainen (bf412d658) lib-storage: Fixed mailbox_status.unseen count for private indexes. M src/lib-storage/index/index-status.c 2012-06-20 06:32:06 +0300 Timo Sirainen (8e364cb7f) imap MOVE: Don't commit expunge transaction before the copy transaction has succeeded. M src/imap/cmd-copy.c 2012-06-20 06:21:57 +0300 Timo Sirainen (d5b9f3d49) imap parser: literal8 flag was handled in opposite way. M src/lib-imap/imap-parser.c 2012-06-20 06:21:17 +0300 Timo Sirainen (09bb14521) imap: Implemented MOVE extension. M src/imap/cmd-copy.c M src/imap/imap-commands.c M src/imap/imap-commands.h 2012-06-20 06:17:40 +0300 Timo Sirainen (807b06485) quota: Ignore quota when handling mailbox_move(). M src/plugins/quota/quota-storage.c 2012-06-20 06:17:00 +0300 Timo Sirainen (7ada346a0) acl: Optimize failing mailbox_move() when expunge right is missing. M src/plugins/acl/acl-mailbox.c 2012-06-20 06:15:46 +0300 Timo Sirainen (02f884382) lib-storage: Added mailbox_move(), which is basically copy+expunge. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2012-06-20 06:09:04 +0300 Timo Sirainen (2c26b19c5) istream-binary-converter: Added maximum memory usage limit for header parsing. M src/lib-mail/istream-binary-converter.c M src/lib-mail/test-istream-binary-converter.c 2012-06-20 05:41:54 +0300 Timo Sirainen (5efe15330) imap: Fixes to handling BINARY APPENDs. M src/imap/cmd-append.c 2012-06-20 05:39:50 +0300 Timo Sirainen (961850d5e) imap: Fixed CATENATE support to send "+ OK" for literals. M src/imap/cmd-append.c 2012-06-20 02:45:20 +0300 Timo Sirainen (f5c82a830) imap: Implemented BINARY extension support for APPEND/CATENATE. M src/imap/cmd-append.c 2012-06-20 02:44:57 +0300 Timo Sirainen (8ae78760d) lib-test: Fixed test istream M src/lib-test/test-common.c 2012-06-20 02:44:35 +0300 Timo Sirainen (a84bd90ee) imap parser: Added support for parsing literal8 (for BINARY extension) M src/lib-imap/imap-arg.h M src/lib-imap/imap-parser.c M src/lib-imap/imap-parser.h 2012-06-20 02:23:42 +0300 Timo Sirainen (d51bddedf) Added istream-binary-converter to convert binary MIME parts to base64. M src/lib-mail/Makefile.am A src/lib-mail/istream-binary-converter.c A src/lib-mail/istream-binary-converter.h A src/lib-mail/test-istream-binary-converter.c 2012-06-20 02:22:27 +0300 Timo Sirainen (46512a596) message parser: Added MESSAGE_PARSER_FLAG_INCLUDE_BOUNDARIES flag. M src/lib-mail/message-parser.c M src/lib-mail/message-parser.h 2012-06-20 02:21:54 +0300 Timo Sirainen (d6c6713d0) message parser: Fixed infinite loop when parsing a specific message. M src/lib-mail/message-parser.c 2012-06-20 02:21:54 +0300 Timo Sirainen (e078abde5) message parser: Fixed infinite loop when parsing a specific message. M src/lib-mail/message-parser.c 2012-06-20 01:45:55 +0300 Timo Sirainen (693575663) message header parser: Don't skip header if header name is longer than input buffer. We'll instead now just return the name in smaller blocks with no_newline=TRUE. This allows the caller to reconstruct the exact same message. M src/lib-mail/message-header-parser.c 2012-06-20 01:40:14 +0300 Timo Sirainen (6cb3c4f42) message header parser: Fixed handling very long multiline headers. If the header's line fit exactly to input stream's buffer so that the parser couldn't see the following character, it assumed that the header ended. M src/lib-mail/message-header-parser.c 2012-06-20 00:48:08 +0300 Timo Sirainen (725281092) message parser: Fixes to handling CRLF linefeeds. An extra CR could have been left to the end of a MIME part that belonged to its --boundary. M src/lib-mail/message-parser.c 2012-06-18 17:05:27 +0300 Timo Sirainen (0aa8ac8b4) fts-squat: Fixed handling multiple SEARCH parameters. M src/plugins/fts-squat/fts-backend-squat.c 2012-06-18 13:21:03 +0300 Timo Sirainen (6e9eb28a0) lib-ssl-iostream: Don't assert-crash if underlying connection suddenly disconnects. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/istream-openssl.c 2012-06-18 13:19:41 +0300 Timo Sirainen (ad456029c) doveadm: Fixed crash with proxying some commands. M src/doveadm/doveadm-print.c 2012-06-16 02:06:16 +0300 Timo Sirainen (524c4abaa) example-config: Refer to ssl=required in disable_plaintext_auth setting. M doc/example-config/conf.d/10-auth.conf 2012-06-16 02:03:53 +0300 Timo Sirainen (35d6ae113) imapc: Removed brokenly used explicit data stack frame. Fixes crashes when a message has more than 8 keywords. M src/lib-storage/index/imapc/imapc-mailbox.c 2012-06-16 01:59:44 +0300 Timo Sirainen (d3034da43) doveadm log errors: Usage text update M src/doveadm/doveadm-log.c 2012-06-15 23:44:53 +0300 Timo Sirainen (8f0c238dc) doveadm log errors: Added -s parameter M src/doveadm/doveadm-log.c 2012-06-15 17:12:24 +0300 Timo Sirainen (715ac4590) example-config: imap_logout_format default was wrong. M doc/example-config/conf.d/20-imap.conf 2012-06-15 15:12:33 +0300 Timo Sirainen (566a436ce) maildir++ quota: If reading maildirsize fails with ESTALE, retry it. M src/plugins/quota/quota-maildir.c 2012-06-13 16:29:37 +0300 Timo Sirainen (8e895bbf5) lib-master: Fixed assert crash in some situations after updating instance name. M src/lib-master/master-instance.c 2012-06-13 15:34:39 +0300 Timo Sirainen (b3d5b74bb) master: If service_count=1 and process_limit=1 and >1 clients connect, log about service_count being why. M src/master/service-monitor.c 2012-06-11 23:38:45 +0300 Timo Sirainen (6e151be71) shared mailboxes: Avoid doing "@domain" userdb lookups. M src/lib-storage/index/shared/shared-list.c 2012-06-11 18:22:06 +0300 Timo Sirainen (5da1aa519) shared mailboxes: Per-user flags can now be stored in private index files. This can be enabled by adding e.g.: mail_location = mdbox:/var/shared/mdbox:INDEXPVT=~/mdbox/shared M src/doveadm/doveadm-dump-log.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log.h M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-storage/index/Makefile.am M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync-private.h A src/lib-storage/index/index-sync-pvt.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2012-06-11 16:54:14 +0300 Timo Sirainen (c88275be7) director: Fixed working as standalone. M src/director/director.c 2012-06-11 16:30:58 +0300 Timo Sirainen (c37d80725) lib-master: -i parameter shouldn't imply -k parameter. This was added accidentally when writing the code. M src/lib-master/master-service.c 2012-06-11 16:14:13 +0300 Timo Sirainen (c6b343367) lib-charset: Make sure convert_to_utf8*() never returns non-UTF8 output. M src/lib-charset/charset-iconv.c 2012-06-05 00:34:32 +0300 Timo Sirainen (0bf95c4bd) Makefile: Added more missing dsync*.h files M src/doveadm/dsync/Makefile.am 2012-06-04 23:33:40 +0300 Timo Sirainen (8f7ac4c09) Makefile: Added missing dsync-mail.h M src/doveadm/dsync/Makefile.am 2012-06-04 22:15:46 +0300 Timo Sirainen (9228135b8) Makefile: Added missing dsync-mailbox.h M src/doveadm/dsync/Makefile.am 2012-06-04 21:58:00 +0300 Timo Sirainen (06af65f82) doveadm config: If -c parameter was given, it wasn't passed to doveconf. M src/doveadm/doveadm.c 2012-06-04 21:21:52 +0300 Timo Sirainen (6ea1de17b) doveadm instance list: Added -c parameter to easily get the instance's config path. M src/doveadm/doveadm-instance.c 2012-06-04 21:21:28 +0300 Timo Sirainen (bf9fd727c) lib-master: Keep track of config paths in "instances" file. Normally it can be looked up from base_dir/dovecot.conf symlink, but base_dir may get deleted when system starts up. M src/lib-master/master-instance.c M src/lib-master/master-instance.h 2012-06-04 17:23:07 +0300 Timo Sirainen (1c7d88528) doveadm instance list: Added optional name parameter to list only specified instance. M src/doveadm/doveadm-instance.c 2012-06-04 14:03:47 +0300 Timo Sirainen (ddedc8b77) mdbox: Flush/fsync newly saved mail data before locking map. This reduced the amount of time the map needs to be locked. M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-map.h M src/lib-storage/index/dbox-multi/mdbox-save.c 2012-06-04 13:59:40 +0300 Timo Sirainen (b5e998ae7) mdbox: Make sure map transaction won't succeed after mdbox_map_atomic_set_failed() M src/lib-storage/index/dbox-multi/mdbox-map-private.h M src/lib-storage/index/dbox-multi/mdbox-map.c 2012-06-02 19:39:27 +0300 Timo Sirainen (57b389698) imap: Code cleanup and error handling fixes for CATENATE M src/imap/cmd-append.c 2012-06-02 19:01:25 +0300 Timo Sirainen (639bb36b1) Error handling API changes to previous IMAP URL related changes. M src/imap/cmd-append.c M src/lib-imap-storage/imap-msgpart-url.c M src/lib-imap-storage/imap-msgpart-url.h M src/lib-imap-storage/imap-msgpart.c M src/lib-imap-storage/imap-msgpart.h M src/lib-imap/imap-url.c M src/lib-imap/imap-url.h M src/lib-imap/test-imap-url.c M src/lib/uri-util.c M src/lib/uri-util.h 2012-06-02 18:15:46 +0300 Stephan Bosch (e438c85a6) Adds 'anonymous' field to struct mail_user; derived indirectly from userdb extra fields. Depends: none M src/lib-auth/auth-master.c M src/lib-auth/auth-master.h M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.h 2012-06-02 18:14:16 +0300 Stephan Bosch (9f9063b9b) imap: Implemented CATENATE extension. M README M configure.in M src/imap/cmd-append.c 2012-06-02 17:56:27 +0300 Stephan Bosch (c502126b6) Created lib-imap-storage for IMAP-specific functionality that uses lib-storage. This is done to prevent introducing dependencies on lib-storage in lib-imap. It contains IMAP message part access functionality, including URL-based access. M configure.in M src/Makefile.am M src/imap/Makefile.am M src/imap/imap-fetch-body.c A src/lib-imap-storage/Makefile.am A src/lib-imap-storage/imap-msgpart-url.c A src/lib-imap-storage/imap-msgpart-url.h A src/lib-imap-storage/imap-msgpart.c A src/lib-imap-storage/imap-msgpart.h M src/lib-storage/Makefile.am 2012-06-02 17:53:31 +0300 Stephan Bosch (6ae6496c2) lib-imap: Added IMAP URL parser. Includes support for IMAP URLAUTH URLs. Includes extensive testsuite. Creation of IMAP URL string from struct data is not implemented and deferred to a future patch when this functionality is needed. M src/lib-imap/Makefile.am A src/lib-imap/imap-url.c A src/lib-imap/imap-url.h A src/lib-imap/test-imap-url.c 2012-06-02 17:15:18 +0300 Stephan Bosch (7afab1ff4) imap-parser: Added IMAP_PARSE_FLAG_INSIDE_LIST flag. Adds mode flag to IMAP parser which makes it assume it is inside a (...) list, making ')' equal to EOL and '\n' an error. M src/lib-imap/imap-parser.c M src/lib-imap/imap-parser.h 2012-06-02 17:12:06 +0300 Stephan Bosch (0fe2992e4) Added chain istream. This is a nephew of the concat stream with the difference that new child streams can be added dynamically. M src/lib/Makefile.am A src/lib/istream-chain.c A src/lib/istream-chain.h 2012-06-02 17:06:21 +0300 Stephan Bosch (8fe8f97e6) liblib: Added generic URI parsing functions. M src/lib/Makefile.am A src/lib/uri-util.c A src/lib/uri-util.h 2012-06-02 16:55:21 +0300 Stephan Bosch (5fb662c8d) Adds ISO8601/RFC3339 date format parsing and construction support. Interface is somewhat based on message date parser in src/lib-mail, but it also provides access to struct tm. M src/lib/Makefile.am A src/lib/iso8601-date.c A src/lib/iso8601-date.h A src/lib/test-iso8601-date.c M src/lib/test-lib.c M src/lib/test-lib.h 2012-05-29 22:22:14 +0300 Timo Sirainen (c33807e1f) Added signature for changeset c92fb8b928f6 M .hgsigs 2012-05-29 22:22:10 +0300 Timo Sirainen (02abbed30) Added tag 2.1.7 for changeset c92fb8b928f6 M .hgtags 2012-05-29 22:22:10 +0300 Timo Sirainen (b9969cfc3) Released v2.1.7. M NEWS M configure.in 2012-05-29 20:51:14 +0300 Timo Sirainen (f6b77c221) mdbox: Fixed assert-crash with index rebuild when using ns prefix and mail wasn't originally in INBOX. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2012-05-29 18:38:01 +0300 Timo Sirainen (750a39689) Fixed assert-crash on some situations when user had no supplementary groups. M src/lib/restrict-access.c 2012-05-23 00:24:06 +0300 Timo Sirainen (2157a1b21) lib-storage: Verify that with SEARCH HEADER the header name is valid UTF-8. M src/lib-storage/mail-search-register-imap.c 2012-05-22 23:19:16 +0300 Timo Sirainen (bc5d21b58) TODO updated M TODO 2012-05-22 23:17:31 +0300 Timo Sirainen (7bd5b1c64) Initial version of dsync rewrite. * doveadm backup not implemented at all yet * syncing mailbox renames is somewhat broken (at least renaming \noselect mailboxes) * saving/restoring "state" is implemented by dsync brain, but not by doveadm. this should be easy to do, just need to figure out how the replication code wants it. M src/doveadm/doveadm-settings.c M src/doveadm/dsync/Makefile.am M src/doveadm/dsync/doveadm-dsync.c A src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c A src/doveadm/dsync/dsync-brain-mailbox-tree.c A src/doveadm/dsync/dsync-brain-mailbox.c A src/doveadm/dsync/dsync-brain-mails.c D src/doveadm/dsync/dsync-brain-msgs-new.c D src/doveadm/dsync/dsync-brain-msgs.c M src/doveadm/dsync/dsync-brain-private.h M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-brain.h D src/doveadm/dsync/dsync-data.c D src/doveadm/dsync/dsync-data.h A src/doveadm/dsync/dsync-deserializer.c A src/doveadm/dsync/dsync-deserializer.h A src/doveadm/dsync/dsync-mail.c A src/doveadm/dsync/dsync-mail.h A src/doveadm/dsync/dsync-mailbox-export.c A src/doveadm/dsync/dsync-mailbox-export.h A src/doveadm/dsync/dsync-mailbox-import.c A src/doveadm/dsync/dsync-mailbox-import.h A src/doveadm/dsync/dsync-mailbox-state-export.h A src/doveadm/dsync/dsync-mailbox-state.c A src/doveadm/dsync/dsync-mailbox-state.h A src/doveadm/dsync/dsync-mailbox-tree-fill.c A src/doveadm/dsync/dsync-mailbox-tree-private.h A src/doveadm/dsync/dsync-mailbox-tree-sync.c A src/doveadm/dsync/dsync-mailbox-tree.c A src/doveadm/dsync/dsync-mailbox-tree.h A src/doveadm/dsync/dsync-mailbox.h D src/doveadm/dsync/dsync-proxy-client.c D src/doveadm/dsync/dsync-proxy-server-cmd.c D src/doveadm/dsync/dsync-proxy-server.c D src/doveadm/dsync/dsync-proxy-server.h D src/doveadm/dsync/dsync-proxy.c D src/doveadm/dsync/dsync-proxy.h A src/doveadm/dsync/dsync-serializer.c A src/doveadm/dsync/dsync-serializer.h A src/doveadm/dsync/dsync-slave-io.c A src/doveadm/dsync/dsync-slave-pipe.c A src/doveadm/dsync/dsync-slave-private.h A src/doveadm/dsync/dsync-slave.c A src/doveadm/dsync/dsync-slave.h A src/doveadm/dsync/dsync-transaction-log-scan.c A src/doveadm/dsync/dsync-transaction-log-scan.h D src/doveadm/dsync/dsync-worker-local.c D src/doveadm/dsync/dsync-worker-private.h D src/doveadm/dsync/dsync-worker.c D src/doveadm/dsync/dsync-worker.h D src/doveadm/dsync/test-dsync-brain-msgs.c D src/doveadm/dsync/test-dsync-brain.c D src/doveadm/dsync/test-dsync-common.c D src/doveadm/dsync/test-dsync-common.h D src/doveadm/dsync/test-dsync-proxy-server-cmd.c D src/doveadm/dsync/test-dsync-proxy.c D src/doveadm/dsync/test-dsync-worker.c D src/doveadm/dsync/test-dsync-worker.h 2012-05-20 03:08:01 +0300 Timo Sirainen (9a656df90) director: When we find unwanted connection, wait for 10s for it to disconnect us, not 10ms. M src/director/director-connection.c 2012-05-20 02:41:08 +0300 Timo Sirainen (2b4e11213) lib-master: Anvil reconnect timeout should be 5 seconds, not 5 milliseconds. M src/lib-master/anvil-client.c 2012-05-19 22:25:27 +0300 Timo Sirainen (a6fbd1f7f) auth: Fixed crash with DIGEST-MD5 when attempting to do master user login without master passdbs. M src/auth/auth-request.c 2012-05-19 22:11:41 +0300 Timo Sirainen (3e7565a7b) expire: Handle dict errors. Don't crash if lookup fails. Based on patch by Michal Grzedzicki M src/plugins/expire/expire-plugin.c 2012-05-19 21:18:04 +0300 Timo Sirainen (e4194f470) director: Implemented ability to remove directors from a running ring. Also added doveadm command for adding a new director to a running ring. M src/director/director-connection.c M src/director/director-host.c M src/director/director-host.h M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c M src/director/main.c M src/doveadm/doveadm-director.c 2012-05-19 21:16:42 +0300 Timo Sirainen (93cc8cf70) director: Don't crash with quickly disconnecting incoming director connections. M src/director/director-connection.c 2012-05-19 18:43:13 +0300 Timo Sirainen (c56500d43) lib-storage: If chroot is used and mail_debug=yes, log the chroot path. M src/lib-storage/mail-storage-service.c 2012-05-17 18:08:58 +0300 Timo Sirainen (0b27cde47) update-version.sh: Use mv -f to avoid questions in some systems. M update-version.sh 2012-05-16 18:57:05 +0300 Timo Sirainen (2b5818150) sdbox: Avoid using too many fds when copying messages. This happened at least with quota plugin. M src/lib-storage/index/dbox-single/sdbox-save.c 2012-05-16 16:14:31 +0300 Timo Sirainen (ca843e046) login: If user is disabled or password expired, say it in logout reason. M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h 2012-05-16 16:14:01 +0300 Timo Sirainen (190d84a49) auth: If user is disabled or password expired, tell about it to auth-client. M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h 2012-05-15 18:52:41 +0300 Timo Sirainen (14e4afa9f) mdbox: mailbox_update() didn't look at the latest index data. So setting min_next_uid, min_first_recent_uid or min_highest_modseq may have actually shrank them. M src/lib-storage/index/dbox-multi/mdbox-storage.c 2012-05-14 21:07:43 +0300 Timo Sirainen (bc21bdf8b) pop3: Added pop3_uidl_duplicates setting. M doc/example-config/conf.d/20-pop3.conf M src/pop3/pop3-client.c M src/pop3/pop3-client.h M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/pop3/pop3-settings.h 2012-05-14 19:30:03 +0300 Timo Sirainen (7783bfe16) ldap: If attributes contain ldapAttr=key=template%$ and ldapAttr doesn't exist, skip the field. This makes it work again the same as with v2.0. M src/auth/db-ldap.c 2012-05-14 19:01:46 +0300 Timo Sirainen (a0b92d474) maildir: If dovecot-uidlist can't be opened as read-write, try opening as read-only. M src/lib-storage/index/maildir/maildir-uidlist.c 2012-05-14 18:42:58 +0300 Timo Sirainen (5f99c6a6e) master: Fix to systemd support Patch by Joop Boonen M src/master/service-listen.c 2012-05-14 18:09:10 +0300 Timo Sirainen (aba6eb200) lib-master: Added more default ignore prefixes M src/lib-master/mountpoint-list.c 2012-05-10 11:26:53 +0300 Timo Sirainen (c518217cf) imapc: Use imapc_list_prefix also for listing subscriptions M src/lib-storage/index/imapc/imapc-list.c 2012-05-09 15:01:20 +0300 Timo Sirainen (33b0d8607) master: systemd socket verification wasn't actually being called normally. M src/master/service-listen.c 2012-05-09 06:11:58 +0300 Timo Sirainen (d81131d3b) lib-storage: Added a mailbox.synced flag, which is set when mailbox sync has succeeded. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2012-05-09 04:41:47 +0300 Timo Sirainen (458752f9e) lib-storage: mailbox_list_get_storage_name/_get_vname() are now public. M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.h 2012-05-08 08:49:47 +0300 Timo Sirainen (f0dd98bc0) Compiler warning fixes M src/lib/test-bsearch-insert-pos.c 2012-05-08 08:31:27 +0300 Timo Sirainen (5e114f59a) Compiler warning fixes M src/auth/db-checkpassword.c M src/auth/db-checkpassword.h M src/auth/passdb-checkpassword.c M src/auth/userdb-checkpassword.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib/test-array.c M src/lib/test-base64.c 2012-05-08 01:24:01 +0300 Timo Sirainen (21c7e5bc9) lib-storage: Extra check to mail_shared_explicit_inbox=no M src/lib-storage/mailbox-list.c 2012-05-08 01:22:32 +0300 Timo Sirainen (00a319607) layout=fs: Fixes to mail_shared_explicit_inbox=no M src/lib-storage/list/mailbox-list-fs-iter.c 2012-05-07 23:39:34 +0300 Timo Sirainen (45529d383) lib-storage: Don't auto-drop namespaces with only INBOX shared and mail_shared_explicit_inbox=no M src/lib-storage/mail-storage.c 2012-05-07 23:39:01 +0300 Timo Sirainen (abf49ed75) acl: Fixed listing users who have only INBOX shared and mail_shared_explicit_inbox=no M src/plugins/acl/acl-shared-storage.c 2012-05-07 08:36:54 +0300 Timo Sirainen (6649f0e3f) Added signature for changeset 7c249e2a82a9 M .hgsigs 2012-05-07 08:36:43 +0300 Timo Sirainen (571fd5faf) Added tag 2.1.6 for changeset 7c249e2a82a9 M .hgtags 2012-05-07 08:36:43 +0300 Timo Sirainen (1db226ccb) Released v2.1.6. M NEWS M configure.in 2012-05-07 04:06:49 +0300 Timo Sirainen (9242477aa) Makefile: Remove dovecot-config on make uninstall M Makefile.am 2012-05-06 06:44:04 +0300 Timo Sirainen (593d27149) auth: Previous change caused crashing with userdb lookups M src/auth/auth-request.c 2012-05-05 00:01:32 +0300 Timo Sirainen (6a2e67802) auth: Added %{session} variable for passdb/userdb queries. M src/auth/auth-request.c 2012-05-04 23:56:51 +0300 Timo Sirainen (9e7eb7bea) acl: Memory leak fixes M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-cache.c 2012-05-04 23:50:22 +0300 Timo Sirainen (6b3f3a656) mail-log: Memory leak fix M src/plugins/mail-log/mail-log-plugin.c 2012-05-04 22:55:29 +0300 Timo Sirainen (39993536e) shared mailboxes: If successful userdb lookup doesn't return home, fallback to mail_home setting for %%h. M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-user.c 2012-05-04 21:52:05 +0300 Timo Sirainen (b5cbeb103) systemd: If a socket is enabled in systemd but not in Dovecot config, close it. Based on patch by Michal Hlavinka. M src/master/service-listen.c 2012-05-04 21:40:57 +0300 Timo Sirainen (0bd259973) Added mail_shared_explicit_inbox setting. M doc/example-config/conf.d/10-mail.conf M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mailbox-list.c 2012-05-04 20:14:20 +0300 Timo Sirainen (1f85b15e9) dbox: Metadata read buffer's size was supposed to be unlimited, not zero. This was broken by 59f5238c6e61, which itself had fixed another bug. M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-multi/mdbox-purge.c 2012-05-04 20:07:05 +0300 Timo Sirainen (880ac25be) doveadm mailbox mutf7: If input data is invalid, exit with EX_DATAERR. M src/doveadm/doveadm-mutf7.c 2012-05-04 19:01:46 +0300 Timo Sirainen (ac8693e6a) mail-log: Removed broken "are we saving?" check from copy event handling. M src/plugins/mail-log/mail-log-plugin.c 2012-05-04 19:01:19 +0300 Timo Sirainen (2c7cde7c7) notify plugin: mailbox_save_using_mail() now sends "save" events, not "copy". M src/plugins/notify/notify-storage.c 2012-05-04 19:00:04 +0300 Timo Sirainen (d98c49c79) lib-storage: Don't set mail_save_context->saving=TRUE when copying via save. M src/lib-storage/mail-storage.c 2012-05-04 05:35:36 +0300 Timo Sirainen (068da0f39) lib-storage: Added MAILBOX_TRANSACTION_FLAG_SYNC flag M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage.h 2012-05-22 17:10:20 +0300 Timo Sirainen (77df9a1e6) dbox: Don't reset index when mailbox_update() changes UIDVALIDITY. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c 2012-05-03 23:26:44 +0300 Timo Sirainen (515f81466) lib-index: Fixed MAIL_INDEX_SYNC_FLAG_AVOID_FLAG_UPDATES with concurrent keyword changes. If session 1 saw keywords="a", session 2 added keyword "b" and session 1 (without the client syncing session) replaced flags with "a", the "b" keyword wasn't removed. M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction.c M src/lib-index/test-mail-index-transaction-update.c 2012-05-03 21:46:07 +0300 Timo Sirainen (e169102fb) Added MAIL_INDEX_TRANSACTION_FLAG_SYNC M src/doveadm/doveadm-dump-log.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log.h M src/lib-index/test-mail-transaction-log-append.c 2012-05-22 17:03:20 +0300 Timo Sirainen (250105a14) Don't write "keyword reset" records to transaction log anymore. These are a bit problematic for dsync's keyword merging to handle. M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index.h M src/lib-index/test-mail-index-transaction-update.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync.c M src/plugins/virtual/virtual-sync.c 2012-05-22 16:54:55 +0300 Timo Sirainen (6d3bb841d) lib-index: Added mail_transaction_log_view_set_all() M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.h 2012-05-22 16:54:43 +0300 Timo Sirainen (a1a0b9ba3) lib-index: Don't log an error if UIDVALIDITY changes. Normally this should be done by backend only by resetting the index, but it can be done also by dsync. M src/lib-index/mail-index-sync-update.c 2012-05-20 03:32:55 +0300 Timo Sirainen (4b335788e) Use timeout_add_short() for sub-second timeouts. Fail at compile time if timeout_add() is <1s. In future timeout_add() could perhaps also be made less precise, so that it would try to group timeouts to run around at the same time. M src/auth/auth-request-handler.c M src/director/director-test.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/index-mailbox-check.c M src/lib/ioloop.c M src/lib/ioloop.h M src/plugins/fts/fts-indexer.c M src/plugins/replication/replication-plugin.c 2012-05-20 03:25:04 +0300 Timo Sirainen (ed16ab579) Merged changes from v2.1 tree. 2012-05-19 22:40:08 +0300 Timo Sirainen (044a0882f) Extends struct net_unix_cred with pid field and modifies net_getunixcred() to fill it in if possible. Depends: none M configure.in M src/lib/network.c M src/lib/network.h 2012-05-19 22:28:19 +0300 Timo Sirainen (50a1b4437) lib-storage: Sort userdb fields before importing them. This avoids requiring manual sorting in some situations, such as when defining new namespaces. M src/lib-storage/mail-storage-service.c 2012-05-04 00:48:45 +0300 Timo Sirainen (d5498f4d6) lib-index: Removed unused locking code. M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c 2012-05-04 00:41:51 +0300 Timo Sirainen (d7c8280f5) lib-index: Updated dovecot.index file only by recreating it, never write to it directly. This is safer, and nowadays there shouldn't be much of a performance loss with it either, since dovecot.index isn't updated very often. This also allows removing all locking from dovecot.index file, although for now we'll keep it in case old Dovecot versions are simultaneously writing to the index. M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-private.h M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-write.c M src/lib-index/test-mail-index-sync-ext.c 2012-04-27 16:47:30 +0900 SATOH Fumiyasu (7ba3065dc) Fix the build failure on AIX M src/lib-storage/index/index-search-private.h M src/plugins/stats/stats-plugin.h 2012-05-01 03:15:46 +0300 Timo Sirainen (e4cb3bfcd) lib-storage: shared/$user/INBOX is now visible only as shared/$user M src/lib-storage/mailbox-list.c 2012-05-01 03:01:49 +0300 Timo Sirainen (82dee6898) aqueue: Reversed recent changes, they didn't work as intended. M src/lib/aqueue.c 2012-04-30 23:04:08 +0300 Timo Sirainen (1cd4894c5) Increased initial memory pool size. M src/lib-storage/index/index-status.c 2012-04-30 22:53:19 +0300 Timo Sirainen (d06d6667b) seq_range_array_add(): Ranges weren't always merged when they could have. This didn't break anything, but it used up more memory than necessary. M src/lib/seq-range-array.c M src/lib/test-seq-range-array.c 2012-04-28 18:24:24 +0300 Timo Sirainen (0f819b4ec) Code cleanup: Use array_count_i() to calculate array's size internally. M src/lib/aqueue.c M src/lib/array.c M src/lib/array.h 2012-04-28 17:41:14 +0300 Timo Sirainen (f016dec98) auth: Include session ID in log line prefix. M src/auth/auth-request.c M src/auth/auth-request.h M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h M src/login-common/login-settings.c M src/login-common/sasl-server.c 2012-04-28 17:33:34 +0300 Timo Sirainen (d938e9e4e) lib-storage: Allocate MAILBOX_METADATA_CACHE_FIELDS from a new metadata mempool. M src/lib-storage/index/index-status.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2012-04-26 00:26:58 +0300 Timo Sirainen (6a764a456) acl: Fixed looking up parent mailbox name with different namespace vs. layout separators. M src/plugins/acl/acl-backend-vfile.c 2012-04-25 23:44:32 +0300 Timo Sirainen (08a33e7c0) lib-storage: Fixed expanding path that ends with "~/" For example mail_location=maildir:~/ would actually try to create '~' directory. M src/lib-storage/mail-user.c 2012-04-25 23:34:29 +0300 Timo Sirainen (3d0cb8dfc) passdb static: Don't crash if password/nopassword isn't set. M src/auth/passdb-static.c 2012-04-25 22:28:03 +0300 Timo Sirainen (c77b85e60) *-login: Added ssl_require_crl setting. M doc/example-config/conf.d/10-ssl.conf M src/login-common/login-settings.c M src/login-common/login-settings.h M src/login-common/ssl-proxy-openssl.c 2012-04-25 22:12:26 +0300 Timo Sirainen (d4f78a980) stats plugin: Open /proc/self/io only once, reopening is unnecessary. M src/plugins/stats/stats-plugin.c 2012-04-25 21:32:00 +0300 Timo Sirainen (e7dd5065d) SSL proxying: Remote's host never matched cert, because auth process changed it to IP. Now the "host" parameter isn't changed, but a new optional "hostip" parameter contains the IP address where to connect to. M src/auth/auth-request.c M src/login-common/client-common-auth.c M src/login-common/client-common.h M src/login-common/login-proxy.c M src/login-common/login-proxy.h 2012-04-25 21:29:14 +0300 Timo Sirainen (4bfb75b0f) *-login: Don't fail client's certificate if CRL is expired. This seems to be returned also when there is no CRL.. M src/login-common/ssl-proxy-openssl.c 2012-04-25 21:28:16 +0300 Timo Sirainen (be2e4a1bc) *-login: If client certificate isn't valid, log the reason why. M src/login-common/login-proxy.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/login-common/ssl-proxy.h 2012-04-25 21:26:25 +0300 Timo Sirainen (fee4ec4b1) auth: Fixed handling multiple passdbs where some use proxying and others don't. M src/auth/auth-request.c 2012-04-25 21:23:24 +0300 Timo Sirainen (aefe17424) auth: Minor code cleanup. M src/auth/auth-request-handler.c 2012-04-25 16:44:22 +0300 Timo Sirainen (b3a3a66f6) imapc: List INBOX for inbox=yes namespace even imapc_list_prefix is set. M src/lib-storage/index/imapc/imapc-list.c 2012-04-25 16:44:00 +0300 Timo Sirainen (5d0038284) lib-storage: Make sure both MAILBOX_CHILDREN and MAILBOX_NOCHILDREN flags aren't set. M src/lib-storage/mailbox-list-iter.c 2012-04-25 16:29:22 +0300 Timo Sirainen (ca87e89c9) dsync: Treat \Nonexistent mailboxes the same as \Noselect mailboxes. M src/doveadm/dsync/dsync-worker-local.c 2012-04-25 02:48:36 +0300 Timo Sirainen (20bd39d19) lib-ssl-iostream: Fixed a memory leak when verifying certificate name. This mainly mattered when proxying with SSL to remote server. M src/lib-ssl-iostream/iostream-openssl.c 2012-04-24 21:12:36 +0300 Timo Sirainen (12224fcf2) doveadm expunge -d: If mailbox is deleted, unsubscribe it also M src/doveadm/doveadm-mail-expunge.c 2012-04-24 21:09:25 +0300 Timo Sirainen (99cf4c467) trash plugin: Fixed behavior when quota is already over limit. M src/plugins/trash/trash-plugin.c 2012-04-24 21:03:19 +0300 Timo Sirainen (269370f66) quota: Set to quota transaction how many bytes/messages we're over quota. M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2012-04-23 17:59:39 +0300 Timo Sirainen (3f506d46b) imapc: Fixed imapc_list_prefix setting to work with INBOX. M src/lib-storage/index/imapc/imapc-list.c 2012-04-23 16:35:41 +0300 Timo Sirainen (9c5e665cc) Added signature for changeset 469cee314d9c M .hgsigs 2012-04-23 16:35:37 +0300 Timo Sirainen (e01fbf3f8) Added tag 2.1.5 for changeset 469cee314d9c M .hgtags 2012-04-23 16:35:37 +0300 Timo Sirainen (e2a6a21a6) Released v2.1.5. M NEWS M TODO M configure.in 2012-04-23 16:18:36 +0300 Timo Sirainen (89b3a2a06) Make static analyzer happier. M src/lib/test-strfuncs.c 2012-04-23 14:50:30 +0300 Timo Sirainen (37a3ae182) lib-index: Added mail_index_have_modseq_tracking() needed for previous commit. M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-modseq.h 2012-04-23 14:47:13 +0300 Timo Sirainen (9ffa5102c) imap: While modseq tracking hasn't been enabled, return mailbox as NOMODSEQ. It would be possible to avoid this by always keeping track of highestmodseq, but that requires changing the index format a bit. M src/lib-storage/index/index-status.c 2012-04-23 14:11:37 +0300 Timo Sirainen (8f70c97f7) listescape: Don't unescape namespace prefix. M src/lib-storage/mailbox-list.c 2012-04-23 13:19:44 +0300 Timo Sirainen (87b71ffbf) quota: Recalculation now also counts the namespace prefix mailbox's quota if it exists. M src/plugins/quota/quota-count.c 2012-04-23 12:58:42 +0300 Timo Sirainen (9908c7e3f) imapc: Don't list mailboxes that don't match list patterns. M src/lib-storage/index/imapc/imapc-list.c 2012-04-23 12:52:59 +0300 Timo Sirainen (51b9807b2) imapc: Nonexistent mailboxes were returned as selectable mailboxes. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-tree.h 2012-04-20 22:27:01 +0300 Timo Sirainen (b08822564) imapc: Added imapc_list_prefix setting to limit what mailboxes are accessed. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h 2012-04-20 19:09:55 +0300 Timo Sirainen (6cb8e7d72) director: Delay disconnecting director after sending CONNECT command. The director may not otherwise read the CONNECT. M src/director/director-connection.c 2012-04-20 19:08:25 +0300 Timo Sirainen (c9b08dc8d) director: Forward DIRECTOR commands to other connected directors. They can use it to realize that the director was restarted and its sequences start from 1. M src/director/director-connection.c 2012-04-20 19:05:38 +0300 Timo Sirainen (89d6cd658) director: Try harder to connect to ring before thinking we're alone. M src/director/director.c M src/director/director.h 2012-04-20 19:03:26 +0300 Timo Sirainen (002f25444) director: Director ring needs to be set unsynced immediately even when sycning is frozen. M src/director/director.c 2012-04-20 15:26:43 +0300 Timo Sirainen (e7f4a8b48) layout=fs: Fixed listing mailboxes with prefix=INBOX/ M src/lib-storage/list/mailbox-list-fs-iter.c 2012-04-20 15:18:14 +0300 Timo Sirainen (bfb5618b3) layout=fs: Don't assume '/' hierarchy separator when finding mailbox roots. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-04-20 15:04:58 +0300 Timo Sirainen (980529df2) director: When another director reconnects, reset its "last received seq". This fixes some problems where HOST updates and others were thought as already being received after the originating director was restarted. M src/director/director-connection.c 2012-04-20 11:22:26 +0300 Timo Sirainen (32a93320f) director: Removed special (time_t)-1 code, it's not actually needed. Also this fixes a user refreshing issue. M src/director/director-connection.c M src/director/director-request.c M src/director/director.c M src/director/test-user-directory.c M src/director/user-directory.c M src/director/user-directory.h 2012-04-20 11:09:36 +0300 Timo Sirainen (b37fabed2) director: Minor error message fix M src/director/director-connection.c 2012-04-20 01:35:06 +0300 Timo Sirainen (f45e50990) director: And crashfix for previous change.. M src/director/director-connection.c 2012-04-20 01:32:01 +0300 Timo Sirainen (a70216512) director: Adding 25c941423e42 patch yet again, now it seems to work right. And also fixes detection of outgoing connections that die during handshake sending. M src/director/director-connection.c 2012-04-20 01:14:41 +0300 Timo Sirainen (5a5b39ce7) director: USER sending timeout was higher than it needed to be. The problem was USER sending getting stuck, not the timeout itself.. M src/director/director-connection.c 2012-04-20 00:59:01 +0300 Timo Sirainen (484324f08) director: Removed unnecessary error messages. M src/director/director-connection.c 2012-04-20 00:49:29 +0300 Timo Sirainen (f37684a44) director: Another fix for stuck handshake. M src/director/director-connection.c 2012-04-20 00:42:10 +0300 Timo Sirainen (b695e4700) director: Make sure handshaking doesn't get stuck sending USERs. M src/director/director-connection.c 2012-04-20 00:33:13 +0300 Timo Sirainen (4847d74a7) director: Fixed protocol error detection/handling. M src/director/director-connection.c 2012-04-20 00:32:34 +0300 Timo Sirainen (3a12bf3ab) director: Improved debug handshake message. M src/director/director-connection.c 2012-04-20 00:13:55 +0300 Timo Sirainen (3574bab52) director: Increased timeout for sending USER data in handshake. M src/director/director-connection.c 2012-04-20 00:03:47 +0300 Timo Sirainen (cc22ca265) director: Improved error message M src/director/director-connection.c 2012-04-19 23:51:46 +0300 Timo Sirainen (09400493c) director: Reverted previous change, it didn't work properly. M src/director/director-connection.c 2012-04-19 23:45:31 +0300 Timo Sirainen (696e4ecbe) director: Don't delay reading input from remote connection during handshake. M src/director/director-connection.c 2012-04-19 23:41:59 +0300 Timo Sirainen (6e20d8af0) timeout_reset(): Don't use cached ioloop_timeval. Timeouts are sometimes reset after a long running callback. In those cases a cached timeval may be too far behind. M src/lib/ioloop.c 2012-04-19 23:34:41 +0300 Timo Sirainen (4865df74d) director: Decreased timeout for resending lost SYNC request. M src/director/director.c 2012-04-19 23:06:55 +0300 Timo Sirainen (3c296d819) Use t_strsplit_tab() wherever possible M src/anvil/anvil-connection.c M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-stream.c M src/auth/auth-worker-client.c M src/auth/db-checkpassword.c M src/auth/passdb-blocking.c M src/auth/passdb-cache.c M src/config/config-connection.c M src/dict/dict-commands.c M src/director/director-connection.c M src/director/director-test.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-who.c M src/ipc/ipc-connection.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings.c M src/login-common/login-proxy.c M src/util/script-login.c 2012-04-19 23:00:16 +0300 Timo Sirainen (86441ffc0) Added t_strsplit_tab() M src/lib/strfuncs.c M src/lib/strfuncs.h M src/lib/test-strfuncs.c 2012-04-19 22:17:34 +0300 Timo Sirainen (069d9f1da) director: Never set user's timestamp higher than our ioloop_time. M src/director/user-directory.c 2012-04-19 21:51:48 +0300 Timo Sirainen (447bf65dd) director: Optimized adding users to linked list during handshake. M src/director/Makefile.am M src/director/director-connection.c M src/director/director-request.c M src/director/director.c A src/director/test-user-directory.c M src/director/user-directory.c M src/director/user-directory.h 2012-04-19 20:29:25 +0300 Timo Sirainen (fe7f9298f) director: Increased timeouts. M src/director/director-connection.c 2012-04-19 18:59:33 +0300 Timo Sirainen (4d0285870) raw storage: Name autocreated namespace as "raw-storage". M src/lib-storage/index/raw/raw-storage.c 2012-04-19 18:22:39 +0300 Timo Sirainen (7f250fe7e) LMTP: Don't add Return-Path: header when proxying. The backend also adds it and we don't want duplicates. M src/lmtp/commands.c 2012-04-19 18:15:56 +0300 Timo Sirainen (1a3f9d72e) doveadm expunge: Added -d parameter to delete mailbox if it's empty after expunging. M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-iter.h 2012-04-19 18:15:37 +0300 Timo Sirainen (33b469d1c) lib-storage: Added mailbox_delete_empty(). M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2012-04-19 14:39:26 +0300 Timo Sirainen (a8c1d873e) maildir_very_dirty_syncs=yes: Try harder to avoid readdir()ing. M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-sync.h M src/lib-storage/index/maildir/maildir-util.c 2012-04-18 20:09:30 +0300 Timo Sirainen (72f5f2c5c) auth: Changed auth-userdb socket's default user to $default_internal_user. This makes the defaults more usable for director setups. M src/auth/auth-settings.c 2012-04-18 19:56:29 +0300 Timo Sirainen (4128fe33f) fts-solr: doveadm fts rescan now resets the last-indexed-uid fields to allow reindexing. M src/plugins/fts-solr/fts-backend-solr.c 2012-04-18 19:29:22 +0300 Timo Sirainen (8000687bd) trash plugin fixes M src/plugins/trash/trash-plugin.c 2012-04-18 18:33:02 +0300 Timo Sirainen (1a284e27b) imapc: Use SHA1 of message header for guid-forced instead of the entire body. M src/lib-storage/index/imapc/imapc-mail.c 2012-04-18 18:09:14 +0300 Timo Sirainen (e65df911d) imapc: Added guid-forced feature to use SHA1(message) as GUID. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h 2012-04-17 13:56:00 +0300 Timo Sirainen (8601157be) login: Log message change: Tried to use s/disabled/disallowed/ plaintext auth M src/login-common/client-common.c 2012-04-16 22:05:47 +0300 Timo Sirainen (8ef156611) login: Fixed per-IP ssl_ca setting inside local/remote block. M src/login-common/ssl-proxy-openssl.c 2012-04-12 10:48:55 +0300 Timo Sirainen (0a731dacc) login: Another attempt at fixing SSL memory leak. M src/login-common/ssl-proxy-openssl.c 2012-04-12 10:41:44 +0300 Timo Sirainen (6240d4607) login: Reverted memory leak fix, because it broke some SSL setups? M src/login-common/ssl-proxy-openssl.c 2012-04-11 19:06:44 +0300 Timo Sirainen (8ba29b2d2) Memory leak fixes. M src/lib-storage/index/index-thread.c M src/login-common/ssl-proxy-openssl.c M src/plugins/quota/quota.c 2012-04-11 18:23:34 +0300 Timo Sirainen (921fd0b0c) lib-storage: LIST with mailbox {} settings incorrectly set subscribed-flags. M src/lib-storage/mailbox-list-iter.c 2012-04-11 17:21:01 +0300 Timo Sirainen (c719f74d3) dict file: Fixed assert-crash with fcntl/flock lock method. M src/lib-dict/dict-file.c 2012-04-11 15:02:53 +0300 Timo Sirainen (1a073dd61) mbox: Make sure each mailbox creation generates a different UIDVALIDITY. M src/lib-storage/index/mbox/mbox-storage.h M src/lib-storage/index/mbox/mbox-sync.c 2012-04-11 14:44:45 +0300 Timo Sirainen (10db329f4) mbox: Deleting a mailbox didn't delete its index files. M src/lib-storage/index/index-storage.c 2012-04-11 14:29:37 +0300 Timo Sirainen (32e639512) layout=fs: LIST may have shown mailbox as \HasNoChildren when it did. This probably only happened with mbox. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-04-11 12:35:19 +0300 Timo Sirainen (ce82f77b9) --enable-devel-checks: If DEBUG_SILENT environment is set, hide "Growing pool" warnings. M src/lib/data-stack.c M src/lib/mempool-alloconly.c M src/master/master-settings.c 2012-04-10 18:05:36 +0300 Timo Sirainen (bdb0f594a) dict file: Bugfix for previous lock change and changed its configuration syntax. M src/lib-dict/dict-file.c 2012-04-10 17:57:09 +0300 Timo Sirainen (f739c92a9) dict file: Optionally use fcntl/flock locking, instead of dotlocks. M src/lib-dict/dict-file.c 2012-04-10 10:09:39 +0300 Timo Sirainen (cb17980a6) lib-storage: mail_user_try_home_expand() now looks up home only when needed. Before a recent code cleanup the lookup was always done, but if the home didn't exist it still just happened to return success. The cleanup changed it to return failure, which broke the original behavior. M src/lib-storage/mail-user.c 2012-04-10 09:52:35 +0300 Timo Sirainen (9f0a996c2) pop3c: "TOP msgnum 0" was missing the 0 parameter. M src/lib-storage/index/pop3c/pop3c-mail.c 2012-04-10 09:52:00 +0300 Timo Sirainen (1864cbe7e) pop3c: Removed extra "R " prefix from POP3 server error messages. M src/lib-storage/index/pop3c/pop3c-client.c 2012-04-09 13:13:32 +0300 Timo Sirainen (238ef5001) Added signature for changeset 2c21c940e19d M .hgsigs 2012-04-09 13:13:26 +0300 Timo Sirainen (b95459cff) Added tag 2.1.4 for changeset 2c21c940e19d M .hgtags 2012-04-09 13:13:24 +0300 Timo Sirainen (494a594e9) Released v2.1.4. M NEWS M configure.in 2012-04-09 13:12:29 +0300 Timo Sirainen (4926d904d) director: Fixed disconnecting unwanted connection. M src/director/director-connection.c 2012-04-09 13:04:19 +0300 Timo Sirainen (adc180236) lib-storage: If mailbox deletion crashed, undelete the mailbox when opening it. The deletion is assumed to be crashed if it was started over 5 minutes ago. M src/lib-storage/mail-storage.c 2012-04-03 14:45:10 +0300 Timo Sirainen (eea8f295e) lib-index: Minor code cleanup. M src/lib-index/mail-transaction-log-file.c 2012-04-09 11:53:46 +0300 Timo Sirainen (013a8a91c) lib-storage: Set mail_user.service earlier. M src/lib-storage/mail-user.c 2012-04-09 09:53:13 +0300 Timo Sirainen (1be214213) imap: Don't allow FETCH items list to be empty. M src/imap/cmd-fetch.c 2012-04-09 08:17:52 +0300 Timo Sirainen (8c2b4a45f) director: Don't communicate with directors that recently sent invalid input. Track network and protocol failures separately. If a director had sent invalid protocol data within last 60 seconds, don't try to connect to it and don't allow it to connect to us. M src/director/director-connection.c M src/director/director-host.h M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c 2012-04-09 07:52:25 +0300 Timo Sirainen (ee3362f3b) director: Don't try to send the new SYNC parameter to old director versions. This should allow adding new directors to an old director ring without anything breaking. Once all directors have upgraded they start using the new features. M src/director/director-connection.c M src/director/director-connection.h M src/director/director.c 2012-04-04 11:08:32 +0300 Timo Sirainen (d2d5871fa) lib-storage: Minor code cleanup. M src/lib-storage/mail-user.c 2012-04-04 11:07:05 +0300 Timo Sirainen (0a894d19d) layout=fs: Fixed iteration with mail_full_filesystem_access=yes M src/lib-storage/list/mailbox-list-fs-iter.c 2012-04-04 10:07:41 +0300 Timo Sirainen (a21537de6) Maildir++: Return nonexistent subscribed mailbox with nonexistent flag. e.g. LIST (SUBSCRIBED) "" * M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/mailbox-list-subscriptions.h 2012-04-04 09:48:46 +0300 Timo Sirainen (e85148f6f) lib-storage: Human search builder now uses SEARCH_MAILBOX_GLOB only when wildcards are used. M src/lib-storage/mail-search-register-human.c 2012-04-04 09:42:34 +0300 Timo Sirainen (e8c6287f4) doveadm: When AND-search includes mailbox names, don't bother going through them by list iteration. M src/doveadm/doveadm-mailbox-list-iter.c 2012-04-04 09:41:15 +0300 Timo Sirainen (b1e46e840) dovadm mail commands: When mailbox parameter has no wildcard, use SEARCH_MAILBOX. M src/doveadm/doveadm-mail-mailbox.c 2012-04-04 09:40:24 +0300 Timo Sirainen (d6e8c83d0) doveadm status: Don't include the fields parameter as a mailbox in search query. M src/doveadm/doveadm-mail-mailbox-status.c 2012-04-04 09:12:29 +0300 Timo Sirainen (049da065a) pop3-migration: Error message improvement. M src/plugins/pop3-migration/pop3-migration-plugin.c 2012-04-04 07:46:09 +0300 Timo Sirainen (5b560a354) lib-storage: Require at least one namespace to be non-hidden M src/lib-storage/mail-namespace.c 2012-04-04 07:26:37 +0300 Timo Sirainen (18ce10fb3) doveadm user: Added -m parameter to show some of the mail settings. M src/doveadm/doveadm-auth.c 2012-04-04 06:25:00 +0300 Timo Sirainen (740dedb9f) Makefile: Link libdovecot-storage.so with LINKED_STORAGE_LDADD. M src/lib-storage/Makefile.am 2012-04-04 06:16:18 +0300 Timo Sirainen (bf6c5e902) ldap: Removed warning about changed user_* settings. This warning can happen even with recommended settings when symlinking the passdb's ldap config to userdb ldap config. M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/passdb-ldap.c 2012-04-04 06:12:24 +0300 Timo Sirainen (5736aef6d) lib-storage: When doing a userdb lookup, use the user's service instead of "lib-storage". M src/lib-storage/mail-user.c 2012-04-04 06:10:33 +0300 Timo Sirainen (914d47753) ldap: Treat =key the same as =key=, just like v2.0. M src/auth/db-ldap.c M src/auth/db-ldap.h 2012-04-04 05:34:51 +0300 Timo Sirainen (9c550becf) lib-lda: mail_deliver()'s dest_mail now prefetches message's GUID. This fixes copying an already expunged mail with maildir. M src/lib-lda/mail-deliver.c 2012-04-04 05:34:11 +0300 Timo Sirainen (46c903eac) maildir: Remember the mail's GUID/filename in memory once it's fetched once. This allows retrieving it later even if the message gets expunged. M src/lib-storage/index/index-mail.h M src/lib-storage/index/maildir/maildir-mail.c 2012-04-04 05:15:49 +0300 Timo Sirainen (e3e5ca6ae) sdbox: If copying with link() fails with ENOENT, fallback to trying regular copying. This also fixes missing error reporting for that case. M src/lib-storage/index/dbox-single/sdbox-copy.c 2012-04-04 04:33:41 +0300 Timo Sirainen (31327a74b) lib-storage: Previous change incorrectly reverted setting parent shared namespace usable. M src/lib-storage/index/shared/shared-storage.c 2012-04-04 04:31:09 +0300 Timo Sirainen (512f492f4) lib-storage: Fixed setting usable/unusable flags for shared namespaces. If a namespace doesn't have a root that exists, mark it as unusable. This avoids ACL plugin from autocreating that directory. M src/lib-storage/index/shared/shared-storage.c 2012-04-04 03:47:52 +0300 Timo Sirainen (c43bfb802) doveadm mailbox delete: -s parameter wasn't working. M src/doveadm/doveadm-mail-mailbox.c 2012-04-04 03:44:04 +0300 Timo Sirainen (4a01681e0) lib-index: Don't assert-crash with broken extension record intros in log. M src/lib-index/mail-index-map.c 2012-04-03 05:58:29 +0300 Timo Sirainen (5f5713d64) director: Redesigned connection handling and error handling. Director now accepts all connections from everywhere and syncs them until the handshaking is finished. At that point it finally decides if this is a connection that should be used as our left/right connection, or if it should be disconnected. This should make connecting more reliable, especially if one of the directors sends broken handshake or has other trouble. M src/director/director-connection.c M src/director/director-connection.h M src/director/director.c M src/director/director.h 2012-04-03 00:50:12 +0300 Timo Sirainen (377dd19a9) director: Handle all commands during handshake. Previously the sender might have sent these commands, but the receiver wouldn't have handled them and instead just disconnected. M src/director/director-connection.c M src/director/director-connection.h M src/director/director.c 2012-04-03 00:23:02 +0300 Timo Sirainen (98d5941dc) director: Improved error logging for handling invalid commands/parameters. M src/director/director-connection.c 2012-04-02 23:39:48 +0300 Timo Sirainen (caae18c87) director: List of director connections belongs to struct director. M src/director/director-connection.c M src/director/director-connection.h M src/director/director.c M src/director/director.h 2012-04-02 23:28:22 +0300 Timo Sirainen (f64b5bc9e) director: Changes to PING handling. Use larger ping timeouts. While waiting for sync keep doing rapid pings until the sync is finished, not just once. M src/director/director-connection.c M src/director/director-connection.h M src/director/director.c 2012-04-02 21:49:05 +0300 Timo Sirainen (66e01d596) imap: Enabling SPECIAL-USE selection option should also enable the same return option. M src/imap/cmd-list.c 2012-03-30 05:20:08 +0300 Timo Sirainen (adcb46fe2) imapc: Added imapc_features=rfc822.size setting to use RFC822.size for physical sizes. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.h 2012-03-30 05:11:09 +0300 Timo Sirainen (c8c4bbf6b) pop3-replication: Don't request virtual size from IMAP mailbox, we don't need it. M src/plugins/pop3-migration/pop3-migration-plugin.c 2012-03-30 04:26:00 +0300 Timo Sirainen (b10c3f9ed) pop3-migration: Migrate also POP3 ordering. M src/plugins/pop3-migration/pop3-migration-plugin.c 2012-03-30 04:25:46 +0300 Timo Sirainen (41adda8da) dsync: Preserve pop3 ordering. This is currently done only when syncing locally, because it's not easy to add more fields for the current dsync proxying protocol in backwards compatible way. dsync redesign should fix this. M src/doveadm/dsync/dsync-data.h M src/doveadm/dsync/dsync-worker-local.c 2012-03-30 04:23:59 +0300 Timo Sirainen (9617ac707) lib-storage: Added mailbox_save_set_pop3_order() and implemented for Maildir. M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2012-03-30 03:46:37 +0300 Timo Sirainen (c8593b070) Added pop3-migration plugin for getting POP3 UIDLs from POP3 server. The idea is to use this with dsync to migrate mails via imapc, but for getting POP3 UIDLs via pop3c. M configure.in M src/plugins/Makefile.am A src/plugins/pop3-migration/Makefile.am A src/plugins/pop3-migration/pop3-migration-plugin.c A src/plugins/pop3-migration/pop3-migration-plugin.h 2012-03-30 03:43:08 +0300 Timo Sirainen (9a1f68e5a) pop3c: Allow accessing via INBOX, regardless of what namespace it exists in. M src/lib-storage/index/pop3c/pop3c-storage.c 2012-03-30 03:42:21 +0300 Timo Sirainen (f53b3d8c7) layout=fs: Don't crash in iteration if there is no root dir (pop3c). M src/lib-storage/list/mailbox-list-fs-iter.c 2012-03-30 03:07:12 +0300 Timo Sirainen (1111aa8d6) dsync: Fixed handling messages without GUID. M src/doveadm/dsync/dsync-brain-msgs.c 2012-03-29 01:58:35 +0300 Timo Sirainen (84aac2d5c) fts-solr: Added assert + minor code cleanup M src/plugins/fts-solr/fts-backend-solr.c 2012-03-27 00:12:39 +0300 Timo Sirainen (42a6ae32e) *-login: Previous SSL fixes were still broken with service_count=1. M src/login-common/client-common.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/login-common/ssl-proxy.h 2012-03-26 20:46:55 +0300 Timo Sirainen (22d0c231a) lib-settings: Make static analyzer happier. M src/lib-settings/settings-parser.c 2012-03-26 20:39:09 +0300 Timo Sirainen (35283613d) Changes to make static analyzer happier. M src/config/config-filter.c M src/doveadm/doveadm-stats.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/test-dsync-proxy-server-cmd.c M src/imap/imap-sync.c M src/lib-dict/dict-sql.c M src/lib-mail/message-parser.c M src/lib-master/master-login.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/list/subscription-file.c M src/lib/file-cache.c M src/lib/ostream.c M src/lib/process-title.c M src/lib/strfuncs.c M src/lib/test-str-find.c M src/plugins/expire/doveadm-expire.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c 2012-03-26 20:38:18 +0300 Timo Sirainen (87b8a4b68) pgsql: Fixed a potential crash if connection got closed during synchronous query. M src/lib-sql/driver-pgsql.c 2012-03-26 18:17:52 +0300 Timo Sirainen (1411680a6) fts-solr: Indexing mail bodies was broken. M src/plugins/fts-solr/fts-backend-solr.c 2012-03-26 17:24:59 +0300 Timo Sirainen (42401be44) director: Avoid crashing if all directors are removed when reconnecting. There's no way to currently remove directors though, so this couldn't have actually happened. M src/director/director.c 2012-03-26 17:01:21 +0300 Timo Sirainen (55aa434c8) net_listen(): If bind(ip=any) fails with non-EADDRINUSE, don't crash. M src/lib/network.c 2012-03-26 16:57:32 +0300 Timo Sirainen (b1d374f2a) stats: When freeing memory, make sure we don't crash if some list gets empty. M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-session.c M src/stats/mail-user.c 2012-03-26 16:23:18 +0300 Timo Sirainen (e7b0b54a9) lib-storage: If trying to copy a message into already deleted mailbox, don't crash. M src/lib-storage/mail-storage.c 2012-03-26 15:34:46 +0300 Timo Sirainen (2a5d52ea7) data-stack: Fixed calling t_push()/t_malloc() before data_stack_init(). M src/lib/data-stack.c 2012-03-24 14:21:59 +0200 Timo Sirainen (494f41aab) Compiling fix for building without SSL. M src/login-common/ssl-proxy.c 2012-03-23 14:37:22 +0200 Timo Sirainen (8783c6a13) Compiler warning fixes. M src/auth/auth-request.h M src/lib-imap/test-imap-utf7.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-test/test-common.c M src/lib/strfuncs.h M src/master/main.c 2012-03-23 13:59:52 +0200 Timo Sirainen (9ecdbb80d) Fixed compiling without SSL. M src/login-common/ssl-proxy.c 2012-03-23 13:46:27 +0200 Timo Sirainen (de482dd70) mail_temp_scan_interval comment update. M doc/example-config/conf.d/10-mail.conf 2012-03-23 13:44:54 +0200 Timo Sirainen (68b5e132f) Added mail_temp_scan_interval setting and changed its default from 8h -> 1w. M doc/example-config/conf.d/10-mail.conf M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2012-03-23 13:35:05 +0200 Timo Sirainen (e736ac97f) unlink_old_files(): Update atime before scan, not after. If Maildir/dbox scanning takes long this makes sure that a lot of processes won't be scanning it in parallel. M src/lib/unlink-old-files.c M src/lib/unlink-old-files.h 2012-03-23 13:24:34 +0200 Timo Sirainen (1a30613e6) net_getunixcred(): Fixed Solaris to use getpeerucred() properly. M src/lib/network.c 2012-03-23 12:26:50 +0200 Timo Sirainen (f01f983ab) lib-mail: message_date_parse() now also accepts '.' separator in hh.mm.ss time. M src/lib-mail/message-date.c 2012-03-22 18:28:59 +0200 Timo Sirainen (9f34f81b0) sdbox: Don't log "Rebuilding index" when another process already did it and we cancel it. M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c 2012-03-22 18:05:08 +0200 Timo Sirainen (6ae329de0) quota: Added a kludge to avoid recalculating quota. M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/mail-storage-private.h M src/plugins/quota/quota-storage.c 2012-03-22 17:44:51 +0200 Timo Sirainen (a249dd267) lib-storage: Don't access mail->box->view, but mail->transaction->view. They may not be the same. In such cases e.g. mail_set_uid() may have accessed a wrong mail. M src/lib-storage/index/index-mail.c M src/plugins/virtual/virtual-mail.c 2012-03-22 17:12:35 +0200 Timo Sirainen (dba8af1fa) Increased initial memory pool sizes. M src/lib-dict/dict-file.c M src/lib-storage/fail-mailbox.c 2012-03-22 17:11:37 +0200 Timo Sirainen (37ee89f3c) mdbox: Fixed a long loop/crash when mdbox is broken during saving. M src/lib-storage/index/dbox-multi/mdbox-sync.c 2012-03-22 16:03:38 +0200 Timo Sirainen (0c96e2994) lib-master: Minor memory leak fix on deinit. M src/lib-master/master-service.c 2012-03-22 16:03:29 +0200 Timo Sirainen (b6b7a1773) imap-login: Memory leak fix. M src/login-common/client-common.c 2012-03-22 16:03:04 +0200 Timo Sirainen (5da4bfdce) *-login: Another crashfix M src/login-common/client-common.c M src/login-common/login-proxy.c M src/login-common/main.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.h 2012-03-22 15:32:00 +0200 Timo Sirainen (fa02962b7) *-login: Fixed crashing when proxying SSL connections to a remote server. M src/login-common/client-common.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.h 2012-03-21 19:01:44 +0200 Timo Sirainen (297901b5b) config: Added a comment M src/config/config-filter.c 2012-03-21 18:58:37 +0200 Timo Sirainen (afa5d78cf) lib-settings: settings_parser_apply_changes() now deduplicates SET_STRLIST arrays. This fixes overriding strlist keys in config file filters, e.g.: plugin { foo = general } protocol lda { plugin { foo = lda-specific setting } } M src/lib-settings/settings-parser.c M src/lib-settings/settings-parser.h 2012-03-21 14:25:12 +0200 Timo Sirainen (407e4eb60) maildir: Avoid duplicate S=size and W=sizes in maildir filenames. This happens with maildir_copy_with_hardlinks=no and when copying a mail with zlib compression enabled. M src/lib-storage/index/maildir/maildir-save.c 2012-03-21 13:43:56 +0200 Timo Sirainen (7300b38b5) auth: Don't check client PID in non-login auth sockets. This fixes PID conflict errors when using TCP auth sockets for e.g. MTAs. M src/auth/auth-client-connection.c 2012-03-21 12:08:32 +0200 Timo Sirainen (585d3d9d0) imap: Handle XLIST command by running LIST command. If the SPECIAL-USE mailboxes are enabled, this results in mostly compatible output. This change allows easily enabling the GMail XLIST extension simply by adding +XLIST to imap_capability setting. M src/imap/imap-commands.c 2012-03-20 17:46:44 +0200 Timo Sirainen (c9fda71cc) doveadm import: Copy also message flags. M src/doveadm/doveadm-mail-import.c 2012-03-19 15:53:25 +0200 Timo Sirainen (289688f97) layout=fs: Renaming non-UTF8 mailbox names wasn't done in all situations. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-03-16 18:48:46 +0200 Timo Sirainen (83d481767) Added signature for changeset b9adfd52cb66 M .hgsigs 2012-03-16 18:48:40 +0200 Timo Sirainen (d24adb764) Added tag 2.1.3 for changeset b9adfd52cb66 M .hgtags 2012-03-16 18:48:40 +0200 Timo Sirainen (d9036e519) Released v2.1.3. M NEWS M configure.in 2012-03-16 18:45:50 +0200 Timo Sirainen (d36607cf1) dbox: Reverted recent fstat() avoidance change. It didn't do that, just broke mdbox. M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-file.h M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-single/sdbox-file.c 2012-03-15 18:24:15 +0200 Timo Sirainen (7dd73e056) Compiler warning fixes. M src/director/user-directory.c M src/lib-index/mail-cache-fields.c M src/replication/replicator/replicator-queue.c 2012-03-15 18:24:11 +0200 Timo Sirainen (48bd07d5c) replicator: Fixed off-by-one-second "do we do a full sync now?" check. M src/replication/replicator/replicator-brain.c 2012-03-15 16:42:22 +0200 Timo Sirainen (1c7e30f8c) Added signature for changeset 744e0d7f1b25 M .hgsigs 2012-03-15 16:42:18 +0200 Timo Sirainen (39b72f1dd) Added tag 2.1.2 for changeset 744e0d7f1b25 M .hgtags 2012-03-15 16:42:18 +0200 Timo Sirainen (f3e30d31c) Released v2.1.2. M NEWS M configure.in 2012-03-15 16:39:38 +0200 Timo Sirainen (77ba9626c) example-config: Added auth_proxy_self setting. M doc/example-config/dovecot.conf 2012-03-15 14:18:55 +0200 Timo Sirainen (e7afe6e3c) imap: Use mailbox_exists() to find out if namespace prefix is selectable or not. mailbox_list_mailbox() should be treated as an internal function, since ACLs don't apply to it. M src/imap/cmd-list.c 2012-03-15 14:18:13 +0200 Timo Sirainen (81dbd579d) lib-storage: mailbox_exists() now returns namespace prefix as selectable if it is. M src/lib-storage/mail-storage.c 2012-03-15 13:25:36 +0200 Timo Sirainen (b28ea1d18) layout=maildir++: Don't list INBOX if it doesn't match the list patterns. M src/lib-storage/list/mailbox-list-maildir-iter.c 2012-03-15 12:59:41 +0200 Timo Sirainen (7b2a1f819) auth: If global passdb is missing, don't complain if protocol x and !x { passdb } exists. M src/auth/auth.c 2012-03-14 16:24:05 +0200 Timo Sirainen (d6d67582b) layout=fs: Rename mailbox names that aren't valid UTF-8 to avoid crashes later. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-03-14 15:40:58 +0200 Timo Sirainen (cdd7f46c1) mailbox_list_index=yes: Don't add autocreated mailboxes to index before they are created. M src/lib-storage/list/mailbox-list-index-sync.c 2012-03-14 15:40:35 +0200 Timo Sirainen (985bcb890) mailbox_list_index=yes: Don't crash at deinit (fix to previous change) M src/lib-storage/list/mailbox-list-index.c 2012-03-14 15:34:14 +0200 Timo Sirainen (40471588f) mailbox_list_index=yes: Delay opening/creating the index until it's needed. This also fixes an error when trying to create the index before the parent director is created. M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2012-03-14 14:59:24 +0200 Timo Sirainen (ca283b867) auth: Make sure auth cache doesn't break if any cache keys have TABs. M src/auth/auth-cache.c 2012-03-14 14:55:25 +0200 Timo Sirainen (f2e7603c5) auth: Fixed auth cache key generation to support %{long} variables M src/auth/Makefile.am M src/auth/auth-cache.c M src/auth/auth-request.c M src/auth/auth-request.h A src/auth/test-auth-cache.c 2012-03-14 13:42:08 +0200 Timo Sirainen (b58cb4b59) liblib: Added var_get_key_range() M src/lib/test-var-expand.c M src/lib/var-expand.c M src/lib/var-expand.h 2012-03-14 13:39:00 +0200 Timo Sirainen (4633993e0) anvil: s/memcpy/memmove/ for updating checksum list. This may have caused anvil to update penalties wrong. M src/anvil/penalty.c 2012-03-14 13:34:43 +0200 Timo Sirainen (5d370784b) test-primes: Fixed undefined behavior. M src/lib/test-primes.c 2012-03-14 13:14:28 +0200 Timo Sirainen (48170d463) doveconf: Dump protocol/local/remote sections even if there was an error earlier. This allows getting a mostly-working config file rather than a truncated one. M src/config/doveconf.c 2012-03-13 21:19:53 +0200 Timo Sirainen (38779e607) lib-storage: mailbox_list_iter_next() now enforces backends not to return mailbox name from data stack. M src/lib-storage/mailbox-list-iter.c 2012-03-13 21:18:32 +0200 Timo Sirainen (0f97c2b6e) mailbox_list_index=yes iteration: Don't allocate returned mailbox names from data stack. This breaks dsync. M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index.h 2012-03-13 17:01:56 +0200 Timo Sirainen (316ca251f) dbox: Avoid unnecessary fstat() call during file creation. M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-file.h M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-single/sdbox-file.c 2012-03-13 16:32:56 +0200 Timo Sirainen (bf5f442cd) lib-storage: Don't log errors if trying to open a mailbox with too long name. Handle ENAMETOOLONG errors the same as ENOENT. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib/compat.h 2012-03-13 16:14:13 +0200 Timo Sirainen (009ec18ed) fts: Another crashfix for recent changes. M src/plugins/fts/fts-storage.c 2012-03-13 15:11:13 +0200 Timo Sirainen (75c229137) director: Compiler warning fix M src/director/director-request.c 2012-03-12 17:36:29 +0200 Timo Sirainen (c9914a2f9) stats: When logging about a session crash, log also its service. M src/stats/mail-session.c 2012-03-12 14:32:23 +0200 Timo Sirainen (6f368f857) fts: Crashfix when FTS isn't needed for performing search. M src/plugins/fts/fts-storage.c 2012-03-12 13:45:19 +0200 Timo Sirainen (6d41944c7) fts: Added fts_index_timeout setting to abort search if indexing hasn't finished by then. This timeout shows up to client as: tag NO [INUSE] Timeout while waiting for indexing to finish M src/plugins/fts/Makefile.am M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h 2012-03-12 13:17:50 +0200 Timo Sirainen (a6099cd9a) director: Improved request timeout error more. M src/director/director-request.c 2012-03-12 13:15:26 +0200 Timo Sirainen (c3c9d0258) director: If request times out, log more information. M src/director/director-request.c 2012-03-12 12:59:54 +0200 Timo Sirainen (1dc155e0d) Makefile: Delete dovecot-config on distclean M Makefile.am 2012-03-11 14:50:05 +0200 Timo Sirainen (34a488865) Makefile: Fixed header filename. M src/replication/aggregator/Makefile.am 2012-03-11 12:42:53 +0200 Timo Sirainen (40df89280) Makefile: Fixed compiling with automake 1.11.2+ M Makefile.am 2012-03-11 09:08:08 +0200 Timo Sirainen (290ad6b6b) checkpassword: Compiling fix for some systems M src/auth/db-checkpassword.c 2012-03-10 18:32:34 +0200 Timo Sirainen (f3480d03e) mbox: Fixed accessing v1.x mbox index files without errors. M src/lib-storage/index/mbox/mbox-sync.c 2012-03-10 15:53:39 +0200 Timo Sirainen (8d513b613) stats: Fixes to handling per-command stats updates. M src/plugins/imap-stats/imap-stats-plugin.c M src/stats/mail-command.c 2012-03-10 15:44:27 +0200 Timo Sirainen (214cb5b22) lib-storage: Update search's cost more widely and less often. M src/lib-storage/index/index-search.c 2012-03-10 15:07:23 +0200 Timo Sirainen (2f896df28) doveadm config: Don't fail on invalid config (e.g. plugin not found) This command is often used in init scripts and such to stop/restart Dovecot. M src/doveadm/doveadm.c 2012-03-10 15:03:11 +0200 Timo Sirainen (0618bd175) stats: UPDATE-CMD for an existing command wasn't handled properly. The command's stats themselves weren't updated. Also due to recent change updating session's stats from a command no longer works properly, because the session could also be updated in the middle of the command. M src/stats/mail-command.c 2012-03-10 14:28:48 +0200 Timo Sirainen (da11064e8) checkpassword: Set CREDENTIALS_LOOKUP=1 for passdb lookups M src/auth/db-checkpassword.c 2012-03-10 14:17:37 +0200 Timo Sirainen (a08c9703b) checkpassword: Implemented support for credentials lookup. M src/auth/db-checkpassword.c M src/auth/passdb-checkpassword.c 2012-03-10 14:11:32 +0200 Timo Sirainen (1294c06fc) checkpassword: Escape transferred extra fields properly. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/checkpassword-reply.c M src/auth/db-checkpassword.c M src/auth/db-checkpassword.h M src/auth/passdb-checkpassword.c M src/auth/userdb-checkpassword.c 2012-03-10 13:49:12 +0200 Timo Sirainen (026647687) checkpassword: Error handling fix M src/auth/db-checkpassword.c 2012-03-10 13:47:16 +0200 Timo Sirainen (d2e9712e6) checkpassword: If username+password is too large, treat it as regular auth failure. M src/auth/db-checkpassword.c 2012-03-10 13:37:39 +0200 Timo Sirainen (b3c3d6f46) auth: checkpassword code cleanup. Also fixed some error handling. Removes a lot of copy&pasted code between passdb and userdb. M src/auth/checkpassword-reply.c M src/auth/db-checkpassword.c M src/auth/db-checkpassword.h M src/auth/passdb-checkpassword.c M src/auth/userdb-checkpassword.c 2012-03-08 16:03:45 +0200 Timo Sirainen (b6b9c99fe) director: Avoid user getting redirected to different servers near its expiration. Fixes a problem when user is logging in at the same time on director1 which thinks the user is expired, and on director2 which thinks the user expires only in 1 second. M src/director/director-connection.c M src/director/director-request.c M src/director/director.c M src/director/director.h M src/director/main.c M src/director/notify-connection.c M src/director/user-directory.c M src/director/user-directory.h 2012-03-08 10:48:08 +0200 Timo Sirainen (8e78ed2df) lib-master: Fixed passing request data from login process. M src/lib-master/master-login.c 2012-03-08 10:39:58 +0200 Timo Sirainen (c36b65f27) imap: Crashfix when running standalone. M src/imap/main.c 2012-03-08 10:21:09 +0200 Timo Sirainen (150d8a71e) Makefile: s/MKDIR_P/mkdir_p/ to make it actually work M Makefile.am 2012-03-07 20:16:33 +0200 Timo Sirainen (aa797403d) director: Keep track of the highest supported protocol version in the ring. M src/director/director-connection.c M src/director/director.c M src/director/director.h 2012-03-07 16:58:37 +0200 Timo Sirainen (c53af2efa) login proxy: Handle proxy-notify errors better. If open() fails with ENOENT, it should still be logged as an error. If opening or anything else fails, retry opening the fifo 60 secs. M src/login-common/login-proxy-state.c 2012-03-07 16:48:47 +0200 Timo Sirainen (c69561bf6) director: Log a warning if user is refreshed too late. M src/director/notify-connection.c 2012-03-07 16:32:14 +0200 Timo Sirainen (4f2b53380) director: Add more info to "User hash .. is being redirected to two hosts" error. M src/director/director-connection.c 2012-03-07 13:36:34 +0200 Timo Sirainen (b55f914c0) Added a "session ID" string for imap/pop3 connections, available in %{session} variable. The session ID passes through Dovecot IMAP/POP3 proxying to backend server. The same session ID is can be reused after a long time (currently a bit under 9 years). M src/imap-login/client.c M src/imap-login/imap-proxy.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/main.c M src/lib-master/master-login.c M src/lib-master/master-login.h M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c M src/pop3-login/client.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-client.h 2012-03-07 13:32:40 +0200 Timo Sirainen (21a8678c6) login proxy: Log "disconnecting" message also with login_log_format_elements. M src/login-common/login-proxy.c 2012-03-07 13:01:23 +0200 Timo Sirainen (b5917cf64) login_log_format_elements: Allow using %{long_variables} without breaking. M src/login-common/client-common.c 2012-03-07 11:29:42 +0200 Timo Sirainen (7d359c171) doveadm: Handle -NOUSER replies from doveadm-server. M src/doveadm/doveadm-mail-server.c M src/doveadm/server-connection.c M src/doveadm/server-connection.h 2012-03-07 11:23:03 +0200 Timo Sirainen (c46d921c4) decode2text: Avoid leaving temp files and hanging child processes. M src/plugins/fts/decode2text.sh 2012-03-05 19:33:51 +0200 Timo Sirainen (cd8540522) stats: Don't log write()=EPIPE failures. Retry opening the pipe once. M src/plugins/stats/stats-connection.c 2012-03-05 18:44:01 +0200 Timo Sirainen (33651ce51) stats: More changes to send stats while doing long running searches. M src/plugins/stats/stats-plugin.c M src/plugins/stats/stats-plugin.h 2012-03-05 18:43:05 +0200 Timo Sirainen (c9d4d1207) lib-storage: When searching with a sort program, don't prefetch any mails. The prefetching probably ends up being pointless. M src/lib-storage/index/index-search.c 2012-03-05 18:41:53 +0200 Timo Sirainen (ae8191728) pop3: Added assert. M src/pop3/pop3-client.c 2012-03-05 18:09:45 +0200 Timo Sirainen (f13c5e6c5) stats: Update stats once per second for long running nonblocking searches. M src/plugins/stats/stats-plugin.c M src/plugins/stats/stats-plugin.h 2012-03-05 17:28:06 +0200 Timo Sirainen (5733207dc) Added director_username_hash setting to specify what part of the username is hashed. The default is "%u" meaning the full username. Another potentially useful value is "%d" for hashing only the domain (i.e. redirect users from the same domain always to same server so they can safely access each others' shared mailboxes). M src/director/Makefile.am M src/director/director-request.c M src/director/director-settings.c M src/director/director-settings.h M src/director/director.c M src/director/doveadm-connection.c M src/director/notify-connection.c M src/director/user-directory.c M src/director/user-directory.h M src/lib-mail/Makefile.am A src/lib-mail/mail-user-hash.c A src/lib-mail/mail-user-hash.h M src/login-common/Makefile.am M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/login-settings.h 2012-03-05 14:27:02 +0200 Timo Sirainen (19e7781f1) replication_max_conns setting is a number, not a time interval. M src/replication/replicator/replicator-settings.c 2012-03-05 13:18:28 +0200 Timo Sirainen (595f6a975) aggregator: Fixed leaking connections to replicator. M src/replication/aggregator/replicator-connection.c 2012-03-05 13:08:14 +0200 Timo Sirainen (8d8591411) Makefile: Fixed compiling lmtp with some SSL_LIBS options. M src/lmtp/Makefile.am 2012-03-05 11:54:33 +0200 Timo Sirainen (b3e864e0c) dsync: Set user.dsyncing=TRUE also for dsync-server. This avoids dsync server immediately triggering another dsync when using replication. M src/doveadm/dsync/doveadm-dsync.c 2012-03-05 11:53:45 +0200 Timo Sirainen (34e2c0912) dsync: If mailbox was expunged empty, the messages may have reappeared. This dependend on what the last UID of the previous mailbox was. M src/doveadm/dsync/dsync-worker-local.c 2012-03-04 15:48:48 +0200 Timo Sirainen (6f5dca63e) Don't auto-add mountpoints under /media or /cdrom. M src/doveadm/doveadm-mount.c M src/lib-master/mountpoint-list.c M src/lib-master/mountpoint-list.h M src/master/main.c 2012-03-04 15:30:31 +0200 Timo Sirainen (b71ec9499) Makefile: Link with SSL_LIBS whenever linking libssl_iostream.la M configure.in M dovecot-config.in.in M src/auth/Makefile.am M src/doveadm/Makefile.am M src/doveadm/dsync/Makefile.am M src/imap/Makefile.am M src/indexer/Makefile.am M src/lda/Makefile.am M src/lib-storage/Makefile.am M src/lib-storage/index/Makefile.am M src/login-common/Makefile.am M src/plugins/fts-squat/Makefile.am M src/pop3/Makefile.am M src/util/Makefile.am 2012-03-04 15:21:21 +0200 Timo Sirainen (51335e0aa) Makefile: Fix to previous change to get dovecot-config file built again. M Makefile.am 2012-03-04 15:11:20 +0200 Timo Sirainen (01c9d35af) Makefile: Fixed dovecot-config installation M Makefile.am 2012-03-04 14:33:00 +0200 Timo Sirainen (2d8319a94) lib-storage: Removed MAILBOX_LIST_ITER_LIST_PREFIXES flag. It was already accidentally enabled by default, and there's really no good reason why it shouldn't always be enabled. M src/doveadm/doveadm-mailbox-list-iter.c M src/lib-storage/mailbox-list.h 2012-03-04 14:31:23 +0200 Timo Sirainen (a6aeafa8b) lib-storage: mailbox_list_iter_init_namespaces() duplicated INBOX if it was also ns prefix. M src/lib-storage/mailbox-list-iter.c 2012-03-04 14:12:19 +0200 Timo Sirainen (4c0c72a8b) lib-mail: rfc822_parse_quoted_string() didn't remove '\' from the strings. M src/lib-mail/rfc822-parser.c 2012-03-04 13:56:33 +0200 Timo Sirainen (34ae25c8b) auth: userdb passwd iteration skips now also users with /usr/sbin/nologin shell M src/auth/userdb-passwd.c 2012-03-04 13:20:21 +0200 Timo Sirainen (41c2643b6) lib-storage: If mailbox is already open in mailbox_enable(), enable modseqs. M src/lib-storage/index/index-storage.c 2012-03-04 13:19:03 +0200 Timo Sirainen (9d7ab4419) lib-storage: mailbox_enable() shouldn't actually open the mailbox. This combined with mailbox_get_status() never synced the mailbox, so if there were any changes they weren't visible in STATUS reply. M src/lib-storage/index/index-storage.c 2012-03-04 13:01:09 +0200 Timo Sirainen (575b1a840) dsync server: Ignore -f, -R and -m parameters instead of failing. v2.0 dsync did this as well. M src/doveadm/dsync/doveadm-dsync.c 2012-03-04 12:50:02 +0200 Timo Sirainen (db75f60fc) imap: Fixed error handling in APPEND parameters. M src/imap/cmd-append.c 2012-03-04 12:31:26 +0200 Timo Sirainen (b636982bb) log: Avoid an "master input for invalid service_fd" error at deinit. M src/log/log-connection.c 2012-03-04 12:24:29 +0200 Timo Sirainen (9da1a079c) log: Don't shutdown until all log writers have gone. This fixed losing log messages during shutdown. M src/log/log-connection.c M src/log/main.c 2012-03-04 12:09:35 +0200 Timo Sirainen (a88f3271d) replicator: Another deinit crashfix M src/replication/replicator/replicator-queue.c 2012-03-04 12:07:21 +0200 Timo Sirainen (64a81f557) replicator: Fixed crash on deinit M src/replication/replicator/replicator-queue.c 2012-03-04 12:04:46 +0200 Timo Sirainen (b4fe95056) replicator: Queue handling was pretty broken M src/replication/replicator/replicator-queue.c 2012-03-04 11:23:14 +0200 Timo Sirainen (82e772ab8) replication plugin: Don't try to close fifo if it wasn't even opened. M src/plugins/replication/replication-plugin.c 2012-03-04 11:19:10 +0200 Timo Sirainen (a3d6dc644) Makefile: Added missing replication plugin directory M src/plugins/Makefile.am 2012-03-04 11:17:45 +0200 Timo Sirainen (0caa21103) auth: userdb passwd iteration now skips users with shell set to /bin/false or /sbin/nologin M src/auth/userdb-passwd.c 2012-03-04 10:40:19 +0200 Timo Sirainen (333031704) replicator: Crashfix M src/replication/replicator/doveadm-connection.c 2012-03-04 10:35:25 +0200 Timo Sirainen (12e493157) doveadm-server: If socket is 0600 mode there's never no need to authenticate. Even if the socket's owner doesn't match the process's effective UID. This could be e.g. because socket owner is root, while doveadm-server runs as vmail. M src/doveadm/client-connection.c 2012-03-04 10:26:32 +0200 Timo Sirainen (cbb6bb8b1) replication plugin: Handle shared namespaces better, skip public namespaces. These will be handled better later, maybe in v2.2. M src/plugins/replication/replication-plugin.c 2012-03-04 10:25:23 +0200 Timo Sirainen (529dc11f2) replication plugin: Use one shared notification fifo for all users. M src/plugins/replication/replication-plugin.c 2012-03-04 10:11:55 +0200 Timo Sirainen (c14c5561e) doveadm server now returns unknown users with -NOUSER error. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/replication/replicator/doveadm-connection.c 2012-03-04 09:50:21 +0200 Timo Sirainen (447e08642) Initial implementation of dsync-based replication. M .hgignore M configure.in M src/Makefile.am M src/doveadm/dsync/doveadm-dsync.c M src/lib-storage/mail-user.h A src/plugins/replication/Makefile.am A src/plugins/replication/replication-plugin.c A src/plugins/replication/replication-plugin.h A src/replication/Makefile.am A src/replication/aggregator/Makefile.am A src/replication/aggregator/aggregator-settings.c A src/replication/aggregator/aggregator-settings.h A src/replication/aggregator/aggregator.c A src/replication/aggregator/notify-connection.c A src/replication/aggregator/notify-connection.h A src/replication/aggregator/replicator-connection.c A src/replication/aggregator/replicator-connection.h A src/replication/replication-common.h A src/replication/replicator/Makefile.am A src/replication/replicator/doveadm-connection.c A src/replication/replicator/doveadm-connection.h A src/replication/replicator/notify-connection.c A src/replication/replicator/notify-connection.h A src/replication/replicator/replicator-brain.c A src/replication/replicator/replicator-brain.h A src/replication/replicator/replicator-queue.c A src/replication/replicator/replicator-queue.h A src/replication/replicator/replicator-settings.c A src/replication/replicator/replicator-settings.h A src/replication/replicator/replicator.c 2012-03-04 09:39:45 +0200 Timo Sirainen (fd6012467) Makefile: Fixed compiling with automake 1.11.2+ M Makefile.am 2012-03-02 19:24:57 +0200 Timo Sirainen (dd7abc30e) lib-sql: If failed query is retried, log it as as warning instead of as error. M src/lib-sql/driver-sqlpool.c 2012-03-02 17:58:37 +0200 Timo Sirainen (fea94bc83) login proxy: Don't assume host is down unless last success was >30s before last failure. This avoids thinking that host is down, simply because one connection for it failed. M src/login-common/login-proxy.c 2012-03-02 15:49:34 +0200 Timo Sirainen (cd611ca82) dsync: Added -n parameter to dsync a specific namespace. M src/doveadm/doveadm-settings.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-worker-local.c M src/doveadm/dsync/dsync-worker.h 2012-03-02 15:34:22 +0200 Timo Sirainen (4dfaf598d) eacces_error_get*(): Added ',' to message to improve readability. M src/lib/eacces-error.c 2012-03-02 15:31:25 +0200 Timo Sirainen (23bd9fccb) eacces_error_get*(): Suggest ACL/MAC error if UNIX permission bits look ok. M src/lib/eacces-error.c 2012-03-02 14:36:13 +0200 Timo Sirainen (900bb5e31) lib-storage: mail_transaction_commit_changes.changed=TRUE only when something actually changed. M src/lib-storage/index/index-transaction.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h 2012-03-02 14:33:41 +0200 Timo Sirainen (acb0236a7) Increased initial memory pool sizes and marked some of them as "growing". M src/config/config-request.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-proxy-server.c M src/lib-settings/settings-parser.c 2012-03-02 14:25:49 +0200 Timo Sirainen (64a323d27) dsync: Added -d parameter to sync to plugin/mail_replica destination. This could be one global default or overridden by userdb. M src/doveadm/dsync/doveadm-dsync.c 2012-03-02 14:18:29 +0200 Timo Sirainen (0ed18ece2) dsync: Added dsync_remote_cmd setting, which is used to execute remote dsync. This is used for the old style "host" and "mailuser@host" parameters, as well as for a new "remote:[user@]host" parameter. M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/dsync/doveadm-dsync.c 2012-03-02 14:06:18 +0200 Timo Sirainen (69d31aff4) dsync: Prefix remote dsync's error messages with "remote:". M src/doveadm/dsync/doveadm-dsync.c 2012-03-02 13:56:37 +0200 Timo Sirainen (45e525582) dsync: Added -l parameter to lock the sync (via ~/.dovecot-sync.lock) M src/doveadm/dsync/doveadm-dsync.c 2012-03-02 13:15:15 +0200 Timo Sirainen (62d0db14d) doveadm: Added prerun() method for mail commands. M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2012-03-02 12:23:00 +0200 Timo Sirainen (7a94f950f) login: If session timeouts after authentication, log a better error about it. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2012-03-01 09:31:40 +0200 Timo Sirainen (d6c5ceea8) imap: Changed internal FETCH command handling API. M src/imap/cmd-fetch.c M src/imap/cmd-select.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h 2012-02-29 13:04:24 +0200 Timo Sirainen (15c5de5c2) mailbox_list_index=yes: Fixed mailbox listing when not using default namespace settings. M src/lib-storage/list/mailbox-list-index-iter.c 2012-02-29 12:53:21 +0200 Timo Sirainen (0007969c0) fts-squat: Fixed search to actually work. M src/plugins/fts-squat/fts-backend-squat.c 2012-02-28 18:50:46 +0200 Timo Sirainen (e51bfe0db) Show SEARCH=FUZZY in IMAP capabilities only when FTS backend actually supports it. M configure.in M src/imap/imap-client.c M src/lib-storage/mail-user.h M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-storage.c 2012-02-28 06:52:43 +0200 Timo Sirainen (9ea0fe2e0) mailbox list indexes: Avoid unnecessary refresh flag writes. M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2012-02-28 05:27:03 +0200 Timo Sirainen (aa01a43b5) lib-lda: Fixed mai forward/reject to work with the new smtp_client_open() API. M src/lib-lda/mail-send.c 2012-02-28 05:21:19 +0200 Timo Sirainen (025668b21) pop3-login: Fixed APOP authentication, broken by recent changes. M src/pop3-login/client.c 2012-02-28 05:14:00 +0200 Timo Sirainen (01c1406ab) Compiler warning fixes M src/doveadm/dsync/doveadm-dsync.c 2012-02-28 04:29:12 +0200 Timo Sirainen (42ec79d37) fs layout: Mailbox listing returned duplicates when patterns contained a parent and its children. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-02-27 16:53:50 +0200 Timo Sirainen (02967c39a) auth worker: reset idle time after running a command, not before. M src/auth/auth-worker-client.c 2012-02-27 16:52:44 +0200 Timo Sirainen (12d38e76b) auth worker: When idle_kill timeout is reached, change process title to indicate it. M src/auth/auth-worker-client.c 2012-02-27 16:31:33 +0200 Timo Sirainen (933de3f37) mysql: Log idle time also for CR_SERVER_LOST errors. M src/lib-sql/driver-mysql.c 2012-02-27 14:40:19 +0200 Timo Sirainen (bf99ab4e5) dsync: Removed accidentally committed debug code. M src/doveadm/dsync/doveadm-dsync.c 2012-02-27 14:38:05 +0200 Timo Sirainen (69f200bc9) dsync: Fixes to handling legacy dsync parameters. M src/doveadm/dsync/doveadm-dsync.c 2012-02-27 14:37:45 +0200 Timo Sirainen (290ce42a1) doveadm: Allow subcommands to specify '+' getopt parameter. M src/doveadm/doveadm-mail.c 2012-02-27 13:34:20 +0200 Timo Sirainen (b05f982e6) lib-ssl-iostream: Use SSL_LIBS when linking the shared library. M src/lib-ssl-iostream/Makefile.am 2012-02-27 12:02:07 +0200 Timo Sirainen (fe99b6c09) lib-lda: smtp_client_open() API changed to return struct ostream, not FILE. M src/lib-lda/smtp-client.c M src/lib-lda/smtp-client.h 2012-02-27 11:48:18 +0200 Timo Sirainen (af1699cfe) auth: Removed destuser check from proxy_maybe's "self" check. M src/auth/auth-request.c 2012-02-27 11:37:02 +0200 Timo Sirainen (43fe4d8a5) dovecot-config: moved lib-auth and LIBDOVECOT_SERVICE_INCLUDEs to LIBDOVECOT_INCLUDE M dovecot-config.in.in 2012-02-27 11:33:34 +0200 Timo Sirainen (7d102c66e) lib-dns: dns_lookup() returns now the lookup struct, and it can be aborted. Changed all dns_lookup() users also to abort the lookup when needed (previously it probably would have just accessed freed memory and crash). M src/auth/auth-request.c M src/auth/auth-request.h M src/lib-dns/dns-lookup.c M src/lib-dns/dns-lookup.h M src/lib-imap-client/imapc-connection.c M src/lib-lda/lmtp-client.c M src/lib-storage/index/pop3c/pop3c-client.c 2012-02-27 10:36:09 +0200 Timo Sirainen (c1faff067) Minor code cleanup. M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c 2012-02-27 10:32:03 +0200 Timo Sirainen (6f2e601fa) pop3: Added module contexts to struct client, and made client_destroy() a virtual method. M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-client.h M src/pop3/pop3-common.h 2012-02-27 10:30:57 +0200 Timo Sirainen (00baa9c94) imap: Made client_destroy() a virtual method. M src/imap/imap-client.c M src/imap/imap-client.h 2012-02-26 04:59:36 +0200 Timo Sirainen (9438ecaf1) lib-storage: Removed min_timeout parameter from mailbox_notify_changes() It's now internally taken from mailbox_idle_check_interval setting. M src/imap/cmd-idle.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-mailbox-check.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/plugins/virtual/virtual-storage.c 2012-02-25 07:36:11 +0200 Timo Sirainen (73f021723) Merged fixes from v2.1 tree. 2012-02-25 07:29:15 +0200 Timo Sirainen (64437b1b3) imap-login: imap_id_* settings were ignored pre-login. M src/imap-login/client.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-login-settings.h 2012-02-25 07:08:27 +0200 Timo Sirainen (113fdc66c) auth: Added proxy_always extra field. When used with proxy_maybe, it can be used to redirect "local" users to local backends via director. M src/auth/auth-request.c M src/auth/auth-request.h 2012-02-25 07:08:27 +0200 Timo Sirainen (8ce84ce85) auth: Added proxy_always extra field. When used with proxy_maybe, it can be used to redirect "local" users to local backends via director. M src/auth/auth-request.c M src/auth/auth-request.h 2012-02-25 06:54:52 +0200 Timo Sirainen (ddbdc644a) imap/pop3/lmtp proxy: Implemented detection of proxy loops with TTL. If proxying tries to continue after 5 forward connections, it fails. The limit of 5 is hard coded currently. M src/imap-login/client.c M src/imap-login/imap-proxy.c M src/lib-lda/lmtp-client.c M src/lib-lda/lmtp-client.h M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/login-proxy.c M src/login-common/login-proxy.h M src/pop3-login/client.c M src/pop3-login/pop3-proxy.c 2012-02-25 06:41:59 +0200 Timo Sirainen (f80bf96f8) pop3 proxy: Fixed previous change not to hang. M src/pop3-login/pop3-proxy.c 2012-02-25 06:41:59 +0200 Timo Sirainen (ac84cb764) pop3 proxy: Fixed previous change not to hang. M src/pop3-login/pop3-proxy.c 2012-02-25 06:39:00 +0200 Timo Sirainen (2510f24a4) pop3 proxy: Fixed handling XCLIENT reply. M src/pop3-login/client.h M src/pop3-login/pop3-proxy.c 2012-02-25 06:39:00 +0200 Timo Sirainen (ab45534d6) pop3 proxy: Fixed handling XCLIENT reply. M src/pop3-login/client.h M src/pop3-login/pop3-proxy.c 2012-02-25 05:42:05 +0200 Timo Sirainen (738cfeb96) auth: Added auth_proxy_self setting to specify IPs that are considered as "self" for proxy_maybe. M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-settings.h M src/config/settings-get.pl 2012-02-25 05:42:05 +0200 Timo Sirainen (170bdf32c) auth: Added auth_proxy_self setting to specify IPs that are considered as "self" for proxy_maybe. M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-settings.h M src/config/settings-get.pl 2012-02-25 05:13:39 +0200 Timo Sirainen (ca852433f) dns: Removed login/dns-client socket, since it's no longer necessary. M src/dns/dns-client-settings.c 2012-02-25 05:13:27 +0200 Timo Sirainen (38c92ae79) login proxy: Removed host DNS lookup code, since auth does it now. M src/login-common/Makefile.am M src/login-common/client-common-auth.c M src/login-common/login-proxy.c M src/login-common/login-proxy.h 2012-02-25 05:11:59 +0200 Timo Sirainen (336862017) auth: Use proxy_timeout as DNS lookup timeout, if available. Warn if lookup takes >0.5s. M src/auth/auth-request.c 2012-02-25 05:11:59 +0200 Timo Sirainen (5a36aecd0) auth: Use proxy_timeout as DNS lookup timeout, if available. Warn if lookup takes >0.5s. M src/auth/auth-request.c 2012-02-25 05:04:15 +0200 Timo Sirainen (91233a89f) auth: Handle proxy_maybe=yes with host=hostname properly. M src/auth/Makefile.am M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h 2012-02-25 05:20:47 +0200 Timo Sirainen (ad9da7356) pop3-login: Implemented XCLIENT command for forwarding client ip/port from proxy. M src/pop3-login/client.c M src/pop3-login/client.h M src/pop3-login/pop3-proxy.c 2012-02-25 05:04:15 +0200 Timo Sirainen (8be0af2dd) auth: Handle proxy_maybe=yes with host=hostname properly. M src/auth/Makefile.am M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h 2012-02-25 04:38:01 +0200 Timo Sirainen (54dbde554) auth: auth_stream_reply_remove() left extra TABs to stream. Normally this wouldn't really affect anything, except log some extra debug messages. M src/auth/auth-stream.c 2012-02-25 04:38:01 +0200 Timo Sirainen (c5c670df6) auth: auth_stream_reply_remove() left extra TABs to stream. Normally this wouldn't really affect anything, except log some extra debug messages. M src/auth/auth-stream.c 2012-02-25 03:46:10 +0200 Timo Sirainen (12c6ef6f1) login-common: Code cleanup M src/login-common/client-common.c M src/login-common/client-common.h 2012-02-25 03:45:13 +0200 Timo Sirainen (01cd9d4a8) pop3-login: Implemented XCLIENT command for forwarding client ip/port from proxy. M src/pop3-login/client.c M src/pop3-login/client.h M src/pop3-login/pop3-proxy.c 2012-02-23 15:26:52 +0200 Timo Sirainen (7aeb10374) login proxy: If connect() fails, log how many seconds it tried. M src/login-common/login-proxy.c 2012-02-23 11:59:10 +0200 Timo Sirainen (3322dfd56) lmtp proxy: Send client's IP/port to destination server via XCLIENT if possible. M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2012-02-23 11:58:35 +0200 Timo Sirainen (e772b0a65) smtp/lmtp client: Send XCLIENT ADDR+PORT when possible. M src/lib-lda/lmtp-client.c M src/lib-lda/lmtp-client.h 2012-02-23 11:12:04 +0200 Timo Sirainen (b015d3d3a) lmtp: Implemented Postfix-compatible XCLIENT extension for changing client's ip/port. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/commands.h M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2012-02-23 10:35:29 +0200 Timo Sirainen (a55a990bf) Added signature for changeset 04b0acc03f1e M .hgsigs 2012-02-23 10:35:24 +0200 Timo Sirainen (ca1f191aa) Added tag 2.1.1 for changeset 04b0acc03f1e M .hgtags 2012-02-23 10:35:24 +0200 Timo Sirainen (4a9e1ff0d) Released v2.1.1. M NEWS M configure.in 2012-02-22 22:34:47 +0000 Pascal Volk (7c8f4fac0) man: Added description of command `log errors' to doveadm-log.1. M doc/man/doveadm-log.1.in 2012-02-21 22:58:05 +0200 Timo Sirainen (aa0148018) Compiler warning fix. M src/lib-storage/index/dbox-single/sdbox-sync.c 2012-02-21 22:50:14 +0200 Timo Sirainen (d5986389c) lib-storage: Another try at correctly setting autocreated namespace's location strings. M src/lib-storage/mail-namespace.c 2012-02-21 15:21:19 +0200 Timo Sirainen (6f0ce1378) sdbox: Altmove flag changes weren't immediately marked as synced. This caused the altmoves to be retried. M src/lib-storage/index/dbox-single/sdbox-sync.c 2012-02-21 11:35:21 +0200 Timo Sirainen (31a12066e) auth: If auth_cache_size is larger than process VSZ limit, log a warning. M src/auth/passdb-cache.c 2012-02-21 11:35:05 +0200 Timo Sirainen (c11f60090) Added restrict_get_process_size() M src/lib/restrict-process-size.c M src/lib/restrict-process-size.h 2012-02-21 11:15:56 +0200 Timo Sirainen (093cb466e) auth: passdb imap crashed for non-login (non-imap/pop3) authentication. M src/auth/passdb-imap.c 2012-02-21 11:08:05 +0200 Timo Sirainen (a13e15409) file-dotlock: Avoid "timestamp is different than current time" errors during high disk I/O load. M src/lib/file-dotlock.c 2012-02-21 03:07:49 +0200 Timo Sirainen (382dde82f) lib-storage: Avoid assert-crashing with non-mUTF7/UTF8 entries in subscriptions file. M src/lib-storage/list/mailbox-list-subscriptions.c 2012-02-21 02:59:25 +0200 Timo Sirainen (b56f7fb35) lib-storage: When autocreating a namespace, don't fill out location setting unless necessary. This fixes running dsync when there are no namespaces defined. M src/lib-storage/mail-namespace.c 2012-02-21 02:43:52 +0200 Timo Sirainen (77d20bf99) virtual: "*" wildcard matches now also autocreated shared namespaces. Basically this makes "shared/*" work as intended for shared namespaces. M src/plugins/virtual/virtual-config.c 2012-02-21 00:13:36 +0000 Pascal Volk (27255a0f6) man: Added description for type `dbox' to doveadm-dump.1 M doc/man/doveadm-dump.1.in 2012-02-21 02:15:54 +0200 Timo Sirainen (9a8727ac1) ldap: Support attr=name=prefix style template attributes for backwards compatibility. This was mainly used for quota, e.g. "quotaBytes=quota=*:storage=" M src/auth/db-ldap.c 2012-02-20 23:39:20 +0000 Pascal Volk (4f77d2f0f) doveadm dump: Show available types in case a wrong one was given. M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-dump.h 2012-02-20 23:34:38 +0200 Timo Sirainen (421660df1) man: Move doveadm instance and mount commands to "master commands" group. M doc/man/doveadm.1.in 2012-02-17 01:19:59 +0200 Timo Sirainen (5ff22d699) lib-master: If accept() fails, stop listening only temporarily, not permanently. M src/lib-master/master-service.c 2012-02-17 01:14:02 +0200 Timo Sirainen (aa4682f84) Increased initial memory pool size. M src/lib-storage/index/shared/shared-list.c 2012-02-17 01:13:51 +0200 Timo Sirainen (17706107e) master: Handle internal "out of fds" errors without crashing. M src/master/service-monitor.c 2012-02-16 23:05:17 +0000 Pascal Volk (70267341c) man/Makefile: Use SUFFIXES to reduce the number of targets. M doc/man/Makefile.am 2012-02-17 00:46:46 +0200 Timo Sirainen (f55fac3b3) login: Added comment. M src/login-common/main.c 2012-02-17 00:34:24 +0200 Timo Sirainen (f8aa34400) dsync: If message with same GUID is saved multiple times in session, copy it instead of re-saving. This only works if the messages are in different mailboxes. It would be possible to fix it also for copying within same mailbox, but that's probably rare enough that it's not worth the extra code. M src/doveadm/dsync/dsync-brain-msgs-new.c M src/doveadm/dsync/dsync-brain-msgs.c M src/doveadm/dsync/dsync-brain-private.h 2012-02-17 00:32:06 +0200 Timo Sirainen (cbcd7b1d2) dsync: GUIDs are case-sensitive, make GUID hash table be as well. M src/doveadm/dsync/dsync-brain-msgs.c 2012-02-17 00:30:54 +0200 Timo Sirainen (e6825aad5) doveadm force-resync: Don't skip autocreated mailboxes (especially INBOX). This fixes rebuilding indexes for mdbox that has all mailbox indexes deleted. M src/doveadm/doveadm-mail.c 2012-02-16 20:04:01 +0200 Timo Sirainen (6c0809e4d) acl: Don't crash in mailbox listing when using autocreated mailboxes. M src/plugins/acl/acl-mailbox-list.c 2012-02-16 19:16:54 +0200 Timo Sirainen (f40aa1311) Messed up with v2.1 release, merging changes that were supposed to be there. 2012-02-16 18:40:29 +0200 Timo Sirainen (50823df07) Added signature for changeset e2cd03cc9c69 M .hgsigs 2012-02-16 18:40:25 +0200 Timo Sirainen (a438a4d37) Added tag 2.1.0 for changeset e2cd03cc9c69 M .hgtags 2012-02-16 18:40:25 +0200 Timo Sirainen (0e3941440) Released v2.1.0. M NEWS M configure.in 2012-02-16 18:31:57 +0200 Timo Sirainen (e0579d459) man: Added doveadm-instance(1) and doveadm-mount(1) roff'ification by Pascal Volk. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-instance.1.in A doc/man/doveadm-mount.1.in M doc/man/doveadm.1.in 2012-02-16 18:10:09 +0200 Timo Sirainen (6ffebd055) fs layout: Fixed crash when autocreate mailboxes were used and LIST had only invalid patterns. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-02-15 05:49:20 +0200 Timo Sirainen (41ed5e83a) Added signature for changeset 736f1b7af190 M .hgsigs 2012-02-15 05:49:17 +0200 Timo Sirainen (a49877a25) Added tag 2.1.rc7 for changeset 736f1b7af190 M .hgtags 2012-02-15 05:49:17 +0200 Timo Sirainen (57281a721) Released v2.1.rc7. M NEWS M configure.in 2012-02-15 05:12:14 +0200 Timo Sirainen (717bb0dba) login: If auth client disconnects without having ever succeeded, destroy clients. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/main.c 2012-02-15 04:32:14 +0200 Timo Sirainen (3c9c62c4a) lib-master: Fixed crash on IPC client if server disconnected unexpectedly. M src/lib-master/ipc-client.c 2012-02-13 21:40:02 +0000 Pascal Volk (b90975209) man: Added descriptions of -t option to doveadm-pw.1. M doc/man/doveadm-pw.1.in 2012-02-13 20:40:54 +0000 Pascal Volk (153449b3b) doveadm pw: Added -t parameter to the usage message. M src/doveadm/doveadm-pw.c 2012-02-13 19:59:13 +0000 Pascal Volk (548c6a20c) man: Added description of fields pop3.uidl and text.utf8 to doveadm-fetch.1. M doc/man/doveadm-fetch.1.in 2012-02-13 18:27:44 +0200 Timo Sirainen (626216c14) pop3: If UIDL using %f/%m/%g can't be fetched, mention pop3_uidl_format in error message. M src/pop3/pop3-commands.c 2012-02-13 18:28:01 +0200 Timo Sirainen (5979c7d69) TODO updated M TODO 2012-02-13 14:34:31 +0200 Timo Sirainen (de83c1e09) lib-storage: Added namespace { ignore_on_failure } setting. If the namespace can't be created for any reason, it's simply silently skipped. M src/lib-storage/mail-namespace.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h 2012-02-13 00:40:03 +0200 Timo Sirainen (0e0606d74) message parser: Added MESSAGE_PARSER_FLAG_INCLUDE_MULTIPART_BLOCKS. Patch by Stephan Bosch. M src/lib-mail/message-parser.c M src/lib-mail/message-parser.h 2012-02-13 00:29:55 +0200 Timo Sirainen (9f627b360) login-common API made more extensible for different kinds of protocols. Patch by Stephan Bosch. M src/imap-login/client-authenticate.c M src/imap-login/client-authenticate.h M src/imap-login/client.c M src/imap-login/client.h M src/imap-login/imap-proxy.c M src/imap-login/imap-proxy.h M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h M src/pop3-login/client-authenticate.c M src/pop3-login/client-authenticate.h M src/pop3-login/client.c M src/pop3-login/client.h M src/pop3-login/pop3-proxy.c M src/pop3-login/pop3-proxy.h 2012-02-12 23:23:25 +0200 Timo Sirainen (03e877dc9) Updated version number to v2.2.UNSTABLE and added a warning to configure. M configure.in 2012-02-12 23:04:13 +0200 Timo Sirainen (03c15b642) README: Added missing RFC to list. M README 2012-02-12 23:03:55 +0200 Timo Sirainen (ec1b8dd5e) TODO updated M TODO 2012-02-12 22:35:54 +0200 Timo Sirainen (309c4ae2e) Added signature for changeset 481860782250 M .hgsigs 2012-02-12 22:35:52 +0200 Timo Sirainen (e09de8aa8) Added tag 2.1.rc6 for changeset 481860782250 M .hgtags 2012-02-12 22:35:52 +0200 Timo Sirainen (c75f35b0d) Released v2.1.rc6. M NEWS M TODO M configure.in 2012-02-12 22:34:33 +0200 Timo Sirainen (899ebc925) IMAP capabilities: s/FUZZY/SEARCH=FUZZY/ I mistakenly used wrong one.. M configure.in 2012-02-12 22:16:51 +0200 Timo Sirainen (9f00f20c7) doveadm mailbox delete: Don't crash when namespace for mailbox isn't found. M src/doveadm/doveadm-mail-mailbox.c 2012-02-12 21:10:22 +0200 Timo Sirainen (5fbccc935) doveadm: Improved error handling. Failures should now always have non-zero exit code. doveadm now uses sysexits.h exit codes in most places, although there are still a lot of places where it simply returns EX_TEMPFAIL even though something else might be better. M src/doveadm/Makefile.am M src/doveadm/client-connection.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-instance.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-iter.h D src/doveadm/doveadm-mail-list-iter.h M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-move.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h R063 src/doveadm/doveadm-mail-list-iter.c src/doveadm/doveadm-mailbox-list-iter.c A src/doveadm/doveadm-mailbox-list-iter.h M src/doveadm/doveadm.c M src/doveadm/doveadm.h M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/main.c M src/plugins/acl/doveadm-acl.c M src/plugins/fts/doveadm-fts.c M src/plugins/quota/doveadm-quota.c 2012-02-12 19:20:03 +0200 Timo Sirainen (e17a0e23c) doveadm pw: Use i_error()/i_fatal() instead of fprintf(stderr) M src/doveadm/doveadm-pw.c 2012-02-12 19:16:34 +0200 Timo Sirainen (b53bec99f) acl: After checking we have rights to create mailbox, ignore any further ACL checks. M src/plugins/acl/acl-mailbox.c 2012-02-12 18:59:20 +0200 Timo Sirainen (dcfab5db1) example-config: Updated tb-extra-mailbox-sep comment. M doc/example-config/conf.d/20-imap.conf 2012-02-12 18:55:28 +0200 Timo Sirainen (5f5870385) Updated copyright notices to include year 2012. M src/anvil/anvil-connection.c M src/anvil/anvil-settings.c M src/anvil/connect-limit.c M src/anvil/main.c M src/anvil/penalty.c M src/anvil/test-penalty.c M src/auth/auth-cache.c M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-postfix-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-stream.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-checkpassword.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-external.c M src/auth/mech-plain.c M src/auth/mech.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-imap.c M src/auth/passdb-ldap.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-template.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-template.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/config-settings.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-settings.c M src/dict/main.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-request.c M src/director/director-settings.c M src/director/director-test.c M src/director/director.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/main.c M src/director/notify-connection.c M src/director/user-directory.c M src/dns/dns-client-settings.c M src/dns/dns-client.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-list-iter.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-move.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-mutf7.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm.c M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-brain-msgs-new.c M src/doveadm/dsync/dsync-brain-msgs.c M src/doveadm/dsync/dsync-brain.c M src/doveadm/dsync/dsync-data.c M src/doveadm/dsync/dsync-proxy-client.c M src/doveadm/dsync/dsync-proxy-server-cmd.c M src/doveadm/dsync/dsync-proxy-server.c M src/doveadm/dsync/dsync-proxy.c M src/doveadm/dsync/dsync-worker-local.c M src/doveadm/dsync/dsync-worker.c M src/doveadm/dsync/test-dsync-brain-msgs.c M src/doveadm/dsync/test-dsync-brain.c M src/doveadm/dsync/test-dsync-common.c M src/doveadm/dsync/test-dsync-proxy-server-cmd.c M src/doveadm/dsync/test-dsync-proxy.c M src/doveadm/dsync/test-dsync-worker.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/imap-login/client-authenticate.c M src/imap-login/client.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-proxy.c M src/imap/cmd-append.c M src/imap/cmd-cancelupdate.c M src/imap/cmd-capability.c M src/imap/cmd-check.c M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-enable.c M src/imap/cmd-examine.c M src/imap/cmd-expunge.c M src/imap/cmd-fetch.c M src/imap/cmd-id.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-logout.c M src/imap/cmd-lsub.c M src/imap/cmd-namespace.c M src/imap/cmd-noop.c M src/imap/cmd-rename.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-sort.c M src/imap/cmd-status.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/cmd-uid.c M src/imap/cmd-unselect.c M src/imap/cmd-unsubscribe.c M src/imap/cmd-x-cancel.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/imap/main.c M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-settings.c M src/indexer/indexer-worker-settings.c M src/indexer/indexer-worker.c M src/indexer/indexer.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/indexer/worker-pool.c M src/ipc/client.c M src/ipc/ipc-connection.c M src/ipc/ipc-group.c M src/ipc/ipc-settings.c M src/ipc/main.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/test-dict.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-api.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/ostream-cmp.c M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-msgmap.c M src/lib-imap/imap-arg.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-seqset.c M src/lib-imap/imap-utf7.c M src/lib-imap/imap-util.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-dummy-view.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/duplicate.c M src/lib-lda/lda-settings.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-search.c M src/lib-mail/message-send.c M src/lib-mail/message-size.c M src/lib-mail/quoted-printable.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-master/anvil-client.c M src/lib-master/ipc-client.c M src/lib-master/ipc-server.c M src/lib-master/master-auth.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service.c M src/lib-master/syslog-util.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-sql/sql-db-cache.c M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-openssl-params.c M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl-none.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-storage/fail-mail-storage.c M src/lib-storage/fail-mail.c M src/lib-storage/fail-mailbox.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-sync-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-check.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/istream-attachment.c M src/lib-storage/index/istream-mail.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-md5-all.c M src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync-update.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-mail.c M src/lib-storage/index/pop3c/pop3c-settings.c M src/lib-storage/index/pop3c/pop3c-storage.c M src/lib-storage/index/pop3c/pop3c-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-error.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-parser-cmdline.c M src/lib-storage/mail-search-parser-imap.c M src/lib-storage/mail-search-parser.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-thread.c M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-header.c M src/lib-storage/mailbox-keywords.c M src/lib-storage/mailbox-list-iter.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-search-result.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/test-mailbox-get.c M src/lib-test/test-common.c M src/lib/abspath.c M src/lib/aqueue.c M src/lib/array.c M src/lib/askpass.c M src/lib/backtrace-string.c M src/lib/base64.c M src/lib/bsearch-insert-pos.c M src/lib/buffer.c M src/lib/child-wait.c M src/lib/close-keep-errno.c M src/lib/compat.c M src/lib/crc32.c M src/lib/data-stack.c M src/lib/eacces-error.c M src/lib/env-util.c M src/lib/execv-const.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/fd-set-nonblock.c M src/lib/fdatasync-path.c M src/lib/fdpass.c M src/lib/file-cache.c M src/lib/file-copy.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/guid.c M src/lib/hash-format.c M src/lib/hash-method.c M src/lib/hash.c M src/lib/hash2.c M src/lib/hex-binary.c M src/lib/hex-dec.c M src/lib/home-expand.c M src/lib/hostpid.c M src/lib/imem.c M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/iostream-rawlog.c M src/lib/iostream.c M src/lib/ipwd.c M src/lib/istream-base64-encoder.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-file.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-rawlog.c M src/lib/istream-seekable.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mkdir-parents.c M src/lib/mmap-anon.c M src/lib/mmap-util.c M src/lib/module-dir.c M src/lib/mountpoint.c M src/lib/network.c M src/lib/nfs-workarounds.c M src/lib/ostream-buffer.c M src/lib/ostream-file.c M src/lib/ostream-rawlog.c M src/lib/ostream.c M src/lib/printf-format-fix.c M src/lib/priorityq.c M src/lib/process-title.c M src/lib/randgen.c M src/lib/read-full.c M src/lib/restrict-access.c M src/lib/restrict-process-size.c M src/lib/safe-memset.c M src/lib/safe-mkdir.c M src/lib/safe-mkstemp.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str.c M src/lib/strescape.c M src/lib/strfuncs.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/test-base64.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-buffer.c M src/lib/test-crc32.c M src/lib/test-hash-format.c M src/lib/test-hex-binary.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-lib.c M src/lib/test-llist.c M src/lib/test-mempool-alloconly.c M src/lib/test-network.c M src/lib/test-ostream-file.c M src/lib/test-primes.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-str-find.c M src/lib/test-str-sanitize.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-time-util.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/time-util.c M src/lib/unichar.c M src/lib/unix-socket-create.c M src/lib/unlink-directory.c M src/lib/unlink-old-files.c M src/lib/utc-mktime.c M src/lib/utc-offset.c M src/lib/var-expand.c M src/lib/write-full.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c M src/log/log-connection.c M src/log/log-settings.c M src/log/main.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/master/dup2-array.c M src/master/main.c M src/master/master-settings.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/master/service-process.c M src/master/service.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c M src/plugins/acl/doveadm-acl.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-build-mail.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-indexer.c M src/plugins/fts/fts-parser-html.c M src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search-serialize.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/xml2text.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/snarf/snarf-plugin.c M src/plugins/stats/stats-connection.c M src/plugins/stats/stats-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/plugins/zlib/doveadm-zlib.c M src/plugins/zlib/istream-bzlib.c M src/plugins/zlib/istream-zlib.c M src/plugins/zlib/ostream-bzlib.c M src/plugins/zlib/ostream-zlib.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/pop3-login-settings.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/ssl-params/main.c M src/ssl-params/ssl-params-openssl.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params.c M src/stats/client-export.c M src/stats/client.c M src/stats/global-memory.c M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-server-connection.c M src/stats/mail-session.c M src/stats/mail-stats.c M src/stats/mail-user.c M src/stats/main.c M src/stats/stats-settings.c M src/util/gdbhelper.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap-settings.c M src/util/tcpwrap.c 2012-02-12 18:26:22 +0200 Timo Sirainen (6cc815e20) lib-lda: Send DSN only for out-of-quota errors. Send MDN for Sieve rejects. M src/lda/main.c M src/lib-lda/mail-deliver.h M src/lib-lda/mail-send.c 2012-02-12 07:25:40 +0200 Timo Sirainen (328501937) example-config: Updated instance_name setting's comments. M doc/example-config/dovecot.conf 2012-02-12 07:12:41 +0200 Timo Sirainen (5aa7c8ccc) Make static analyzer happier. M src/lib-storage/index/index-thread-finish.c 2012-02-12 07:05:07 +0200 Timo Sirainen (6682872f1) lda: If DSN is sent because user is out of quota, send 5.2.2 as Status. M src/lda/main.c M src/lib-lda/mail-deliver.h M src/lib-lda/mail-send.c 2012-02-12 07:00:12 +0200 Timo Sirainen (aed9c4248) lib-lda: Send DSN instead of MDN for rejections. I had just copy&pasted the MDN sending from Cyrus.. M src/lib-lda/mail-send.c 2012-02-12 06:59:32 +0200 Timo Sirainen (4c261fb48) lib-storage: "Invalid userdb input" showed wrong input in the error message. M src/lib-storage/mail-storage-service.c 2012-02-12 06:51:05 +0200 Timo Sirainen (6b8043a4d) sdbox: Fixed sdbox_read_header() randomly failing. M src/lib-storage/index/dbox-single/sdbox-storage.c 2012-02-12 06:47:22 +0200 Timo Sirainen (4a3610a21) lib-storage: Error handling fix. M src/lib-storage/fail-mailbox.c 2012-02-12 05:44:13 +0200 Timo Sirainen (6cffceef5) dsync: Don't assert-crash if saving a message fails. M src/doveadm/dsync/dsync-worker-local.c 2012-02-12 05:35:54 +0200 Timo Sirainen (c54f8888b) director: Log an error if auth connection disconnects unexpectedly. M src/director/auth-connection.c 2012-02-12 05:17:46 +0200 Timo Sirainen (1caad3c1f) doveadm: Changes for previous expire plugin changes to actually work. M src/doveadm/doveadm-mail.c 2012-02-12 05:16:43 +0200 Timo Sirainen (d6a026dcf) sdbox: Don't assert-crash on index rebuild if u.X file exists in both primary and alt storage. M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c 2012-02-12 04:58:17 +0200 Timo Sirainen (3c3002ee0) expire: Only go through users listed by userdb iteration. Delete dict rows for nonexistent users, unless expire_keep_nonexistent_users=yes. M src/plugins/expire/doveadm-expire.c 2012-02-12 04:18:50 +0200 Timo Sirainen (efa770481) doveadm acl: Added "add" and "remove" commands. M src/plugins/acl/doveadm-acl.c 2012-02-12 04:12:44 +0200 Timo Sirainen (5c3e746d1) doveadm acl set: Replace both positive and negative rights, not just one of them. M src/plugins/acl/doveadm-acl.c 2012-02-12 04:01:34 +0200 Timo Sirainen (3e1cc04de) doveadm mailbox delete: Added -r parameter to recursively delete mailboxes. M src/doveadm/doveadm-mail-mailbox.c 2012-02-12 03:51:21 +0200 Timo Sirainen (c439de14a) doveadm mailbox delete: Sort the mailbox parameters so that children are deleted first. M src/doveadm/doveadm-mail-mailbox.c 2012-02-12 03:47:01 +0200 Timo Sirainen (94fc67817) message_id_get_next(): Fixed parsing message-ids with no-fold-quotes. M src/lib-mail/message-id.c M src/lib-mail/test-message-id.c 2012-02-12 03:29:36 +0200 Timo Sirainen (dc11d9955) SSL: Enable SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS flag for extra security. This is to counter the "BEAST SSL" attack, although I don't think it's practical to implement against IMAP/POP3/LMTP protocols. There's really no way for attackers to inject any evil data before authentication, so the password is safe. Post-authentication attacker could cause clients to download evil emails, but even then clients don't typically redownload some specific mail, so there's really no way to extract anything useful. M src/lib-ssl-iostream/iostream-openssl-context.c M src/login-common/ssl-proxy-openssl.c 2012-02-12 02:53:50 +0200 Timo Sirainen (2db692ad9) doveadm: Use MAILBOX_LIST_ITER_LIST_PREFIXES when iterating through mailboxes. This means that if there exists a mailbox in namespace prefix itself, those mailboxes can be accessed. Also "doveadm mailbox list" shows all namespace prefixes. Note that wildcards match only within namespace, so e.g. '*' will never match any namespace prefix, because it works within the prefix="" namespace. M src/doveadm/doveadm-mail-list-iter.c 2012-02-12 02:50:49 +0200 Timo Sirainen (4a365e606) lib-storage: Added MAILBOX_LIST_ITER_LIST_PREFIXES flag. M src/lib-storage/mailbox-list-iter.c M src/lib-storage/mailbox-list.h 2012-02-12 02:30:34 +0200 Timo Sirainen (2caf2855e) doveadm: Removed unnecessary code. "mailbox/" is no longer included in listing by default. M src/doveadm/doveadm-mail-list-iter.c 2012-02-12 02:22:43 +0200 Timo Sirainen (12b380e64) doveadm pw: Added -t parameter to test if a hash matches to given plaintext. Based on patch by Jimmy Thrasibule M src/doveadm/doveadm-pw.c 2012-02-09 21:29:25 +0200 Timo Sirainen (d00ae137b) shared: Allocate mailbox as fail_mailbox. This fixes crashes when a mailbox is attempted to be allocated from the shared namespace itself (e.g. the "shared" prefix). M src/lib-storage/index/shared/shared-storage.c 2012-02-09 21:28:44 +0200 Timo Sirainen (b2a476af2) lib-storage: Renamed test-mail/mailbox/storage to fail-* M src/lib-storage/Makefile.am R052 src/lib-storage/test-mail-storage.c src/lib-storage/fail-mail-storage.c A src/lib-storage/fail-mail-storage.h R052 src/lib-storage/test-mail.c src/lib-storage/fail-mail.c R052 src/lib-storage/test-mailbox.c src/lib-storage/fail-mailbox.c D src/lib-storage/test-mail-storage.h 2012-02-09 21:13:12 +0200 Timo Sirainen (c529313e1) Increased initial memory pool size. M src/plugins/virtual/virtual-storage.c 2012-02-09 20:38:16 +0200 Timo Sirainen (10ccc94d0) dsync: Fixed a potential assert crash when saving mails. M src/doveadm/dsync/dsync-worker-local.c 2012-02-09 20:37:24 +0200 Timo Sirainen (9047d770b) dbox: If saving is aborted, don't add a broken record about it to index. M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-save.c 2012-02-09 20:21:14 +0200 Timo Sirainen (3cfc375f0) quota: If "quota" setting's value is empty, assume quota is wanted to be disabled. M src/plugins/quota/quota.c 2012-02-09 19:32:25 +0200 Timo Sirainen (4abfd8fcb) snarf: Keep the mailbox locked during snarfing to avoid duplicates. M src/plugins/snarf/snarf-plugin.c 2012-02-09 16:27:54 +0200 Timo Sirainen (aa0389338) imap: Handle invalid APPEND parameters a little nicer. M src/imap/cmd-append.c 2012-02-09 15:53:18 +0200 Timo Sirainen (3cd0737a6) configure: Avoid some unnecessary warnings with clang. M configure.in 2012-02-09 05:33:54 +0200 Timo Sirainen (b6cfbf371) auth: password_verify() now returns error string also for password mismatches. M src/auth/password-scheme.c 2012-02-09 05:27:32 +0200 Timo Sirainen (2321e7b7c) doveadm pw: Minor code cleanups. M src/doveadm/doveadm-pw.c 2012-02-09 05:25:17 +0200 Timo Sirainen (aecea0d23) doveadm pw: Improved error messages. M src/doveadm/doveadm-pw.c 2012-02-09 05:21:22 +0200 Timo Sirainen (cbcc083b5) doveadm proxy list: Avoid hanging if we can't connect to ipc socket. M src/doveadm/doveadm-proxy.c 2012-02-09 05:16:59 +0200 Timo Sirainen (104318260) lib-master no longer uses 's' option, but it wasn't removed from getopt string. M src/lib-master/master-service.c 2012-02-09 05:07:57 +0200 Timo Sirainen (31663a43e) INSTALL: Updated outdated documentation. M INSTALL 2012-02-09 05:04:42 +0200 Timo Sirainen (1cfa65c0b) acl: Avoid assert-crashing when trying to access invalid mailbox names. M src/plugins/acl/acl-backend-vfile.c 2012-02-09 04:26:39 +0200 Timo Sirainen (cc5fc3c81) doveadm index: Changed help text to make it clear that mailbox can have wildcards. M src/doveadm/doveadm-mail-index.c 2012-02-09 04:26:12 +0200 Timo Sirainen (db45f4628) doveadm force-resync: Support wildcards in mailbox names. M src/doveadm/doveadm-mail.c 2012-02-09 04:13:28 +0200 Timo Sirainen (0f17bb103) lib-storage: Trying to access shared mailboxes of nonexistent users crashed. This was broken by commit 18078d6cce84. M src/lib-storage/index/shared/shared-storage.c 2012-02-09 03:56:50 +0200 Timo Sirainen (32b60b9c3) doveadm mailbox list without pattern shows now all shared and public mailboxes also. doveadm mailbox list '*' shows only the one matching namespace. M src/doveadm/doveadm-mail-list-iter.c 2012-02-09 03:44:09 +0200 Timo Sirainen (20d255b56) mdbox: Fixed finding appendable m.* files in alt storage. M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-map.c 2012-02-09 02:58:36 +0200 Timo Sirainen (9743e5ac5) mbox: Added mbox_md5 setting to select headers for MD5 generation. M doc/example-config/conf.d/10-mail.conf M src/lib-storage/index/mbox/Makefile.am A src/lib-storage/index/mbox/mbox-md5-all.c R087 src/lib-storage/index/mbox/mbox-md5.c src/lib-storage/index/mbox/mbox-md5-apop3d.c M src/lib-storage/index/mbox/mbox-md5.h M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-settings.h M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-storage.h M src/lib-storage/index/mbox/mbox-sync-parse.c 2012-02-09 02:34:23 +0200 Timo Sirainen (20dbb2d7e) mdbox: Detect duplicate GUIDs for different messages. Don't delete these duplicates. Only the message size is used for detecting if they are duplicates or not, but since this shouldn't normally happen anyway this is good enough. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2012-02-09 02:25:18 +0200 Timo Sirainen (e43e0a432) mdbox: Small code cleanup to storage rebuild. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2012-02-09 02:21:37 +0200 Timo Sirainen (5768b83a6) mdbox: Avoid deferencing NULL pointer in specific corrupted mailboxes. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2012-02-09 01:23:00 +0200 Timo Sirainen (79be01e19) dbox: Index rebuild now preserves caching decisions. M src/lib-storage/index/dbox-common/dbox-sync-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c 2012-02-09 01:21:41 +0200 Timo Sirainen (cb6b9d1ce) lib-index: mail_cache_open_and_verify() is now public. M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache.h 2012-02-09 01:00:14 +0200 Timo Sirainen (dbc6f1432) dbox: Never rename() mail files over existing files. If such a file exists, rebuild indexes. M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-single/sdbox-file.c 2012-02-09 00:59:44 +0200 Timo Sirainen (8cb627463) mdbox: Fixed initial mailbox creation to work again without errors. M src/lib-storage/index/dbox-multi/mdbox-map.c 2012-02-09 00:41:25 +0200 Timo Sirainen (607a8bc27) sdbox: Use mail_index_set_ext_init_data() to simplify opening mailboxes. Now the initial mailbox index can be created with the necessary sdbox header. If the header doesn't exist when opening a mailbox, it's guaranteed to be corrupted. M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.h M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h 2012-02-09 00:39:52 +0200 Timo Sirainen (47e059884) lib-index: Added mail_index_set_ext_init_data() for adding data to index on creation. This can be used to avoid race conditions on mailbox creation for mailbox formats that require this (sdbox). M src/lib-index/mail-index-private.h M src/lib-index/mail-index.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log-file.c 2012-02-09 00:38:30 +0200 Timo Sirainen (0b878c6a1) Increase initial memory pool sizes. M src/lib-index/mail-cache.c M src/lib-master/mountpoint-list.c 2012-02-08 23:27:22 +0200 Timo Sirainen (2efe19d90) director: Fixed potential assert crash when moving a user to another backend. M src/director/main.c 2012-02-08 23:05:26 +0200 Timo Sirainen (d66ef20c3) iostreams: Set errno to stream_errno when exiting from failing functions. M src/lib/istream.c M src/lib/ostream.c 2012-02-08 22:50:20 +0200 Timo Sirainen (2b602d869) doveadm instance remove: Allow removing using name as well as base dir. M src/doveadm/doveadm-instance.c 2012-02-08 22:07:01 +0200 Timo Sirainen (fca397447) Removed unnecessary code. M src/imap/imap-fetch-body.c M src/imap/imap-fetch.h 2012-02-06 22:41:18 +0200 Timo Sirainen (b18b7c9b3) sdbox: Fix a corrupted mailbox when opening it, instead of losing all of its contents. M src/lib-storage/index/dbox-single/sdbox-storage.c 2012-02-06 21:48:29 +0200 Timo Sirainen (5f252b977) doveadm instance list: Show the last used field. M src/doveadm/doveadm-instance.c 2012-02-06 21:45:49 +0200 Timo Sirainen (9b95d675e) lib-master: Removed code to auto-drop instances from the list. There couldn't be any empty named instances, so it was a bit pointless. M src/lib-master/master-instance.c M src/lib-master/master-instance.h 2012-02-06 21:42:37 +0200 Timo Sirainen (b849b2f39) master: If instance_name doesn't begin with "dovecot", add "dovecot-" prefix to process names. M src/master/main.c 2012-02-06 21:39:11 +0200 Timo Sirainen (96d19229e) lib-master: Added -i parameter to read config by instance name rather than path. M src/lib-master/Makefile.am M src/lib-master/master-service-private.h M src/lib-master/master-service.c 2012-02-06 21:26:55 +0200 Timo Sirainen (d47a87c92) Keep track of what Dovecot instances have been executed and their instance_name. doveadm instance command can be used to list/remove them. M src/doveadm/Makefile.am A src/doveadm/doveadm-instance.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h M src/lib-master/Makefile.am A src/lib-master/master-instance.c A src/lib-master/master-instance.h M src/master/main.c 2012-02-06 21:25:37 +0200 Timo Sirainen (6a3c23e57) log: Forgot to add new files to recent commit. A src/log/doveadm-connection.c A src/log/doveadm-connection.h A src/log/log-error-buffer.c A src/log/log-error-buffer.h 2012-02-06 19:34:18 +0200 Timo Sirainen (3fe7d0c8c) rawlog: Renamed -i / -o parameters to "-f in", "-f out" This is mainly to get give the -i parameter to lib-master. M src/util/rawlog.c 2012-02-06 19:30:12 +0200 Timo Sirainen (acba68a69) log: Keep track of last 1000 errors/warnings. "doveadm log errors" shows them. M src/doveadm/doveadm-log.c M src/log/Makefile.am M src/log/log-connection.c M src/log/log-connection.h M src/log/log-settings.c M src/log/main.c 2012-02-06 19:28:40 +0200 Timo Sirainen (7cecac416) liblib: Added failure_log_type_names[] array. M src/lib/failures.c M src/lib/failures.h 2012-02-02 23:22:06 +0200 Timo Sirainen (2026684bf) pop3c: Fixes to handling filter streams for mail. M src/lib-storage/index/pop3c/pop3c-client.c M src/lib-storage/index/pop3c/pop3c-mail.c 2012-02-02 17:20:02 +0200 Timo Sirainen (9ec30d84a) istream-seekable: If we panic about stream not being seekable, log the stream name/offset. M src/lib/istream-seekable.c 2012-02-02 17:19:22 +0200 Timo Sirainen (6d762334a) pop3c: Last message wasn't visible. M src/lib-storage/index/pop3c/pop3c-client.c 2012-02-02 16:50:58 +0200 Timo Sirainen (067b80dd7) imapc: If base_dir isn't set, do a blocking DNS lookup. This is mostly a workaround for being able to run imapc from standalone programs (e.g. doveadm) without running Dovecot. M src/lib-storage/index/imapc/imapc-storage.c 2012-02-02 16:49:46 +0200 Timo Sirainen (a8bab607e) lib-imap-client: If dns_client_socket_path isn't given, do a blocking lookup. M src/lib-imap-client/imapc-connection.c 2012-02-02 16:46:46 +0200 Timo Sirainen (c4ac0f222) doveadm fetch: Added support for hdr.*.utf8 fields. M src/doveadm/doveadm-mail-fetch.c 2012-02-02 16:26:33 +0200 Timo Sirainen (e1a4e5d8d) lib-storage: One more crashfix for recent maildir_name/mailbox_dir_name change. M src/lib-storage/mail-storage.c 2012-02-02 15:45:30 +0200 Timo Sirainen (63cf2e557) auth: Get LDAP attribute names automatically from template's %{ldap:attr} variables. M src/auth/db-ldap.c 2012-02-02 15:44:51 +0200 Timo Sirainen (93794594b) var_expand*(): Allow table to be NULL (when using only func_table). M src/lib/var-expand.c 2012-02-02 15:28:10 +0200 Timo Sirainen (c34937534) auth: LDAP fields can now access any returned LDAP attribtes with %{ldap:name} M src/auth/db-ldap.c 2012-02-02 15:27:27 +0200 Timo Sirainen (e130dc7c7) liblib: Added var_expand_with_funcs() to expand variables with function callbacks. M src/lib/var-expand.c M src/lib/var-expand.h 2012-02-02 15:25:04 +0200 Timo Sirainen (7c85bb54c) ldap: Crashfixes to previous change. M src/auth/db-ldap.c M src/auth/db-ldap.h 2012-02-02 13:26:38 +0200 Timo Sirainen (e8c279de6) imapc: Crashfix related to recent maildir_name/mailbox_dir_name changes. M src/lib-storage/index/imapc/imapc-list.c 2012-02-02 13:12:19 +0200 Timo Sirainen (9e28e13ae) config: In "key= (0a8926b91) ldap: Support using the same LDAP attribute in multiple fields. M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2012-02-01 23:33:51 +0200 Timo Sirainen (19b9d763d) sdbox: Fixed moving files from alt storage to primary storage. M src/lib-storage/index/dbox-single/sdbox-sync.c 2012-02-01 23:06:12 +0200 Timo Sirainen (31ef688a8) stats plugin disabled calling other plugins' user.deinit() method. M src/plugins/stats/stats-plugin.c 2012-02-01 22:18:33 +0200 Timo Sirainen (63e207529) lib-storage: And another fix to previous maildir_name/mailbox_dir_name changes. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/mailbox-list.c 2012-02-01 22:04:26 +0200 Timo Sirainen (a23a481f9) ioloop: I/O and timeout leak messages now include the io_add()/timeout_add() source line number. This helps figuring out the leak especially when using ASLR. Also in 64bit systems there's no increased memory usage, because the line number replaces only padding. M src/lib/ioloop-private.h M src/lib/ioloop.c M src/lib/ioloop.h 2012-02-01 21:27:45 +0200 Timo Sirainen (5214b67a7) lib-storage: Crashfix to previous change. M src/lib-storage/mailbox-list.c 2012-02-01 20:30:18 +0200 Timo Sirainen (318ef3683) lib-storage: Abort index/control/alt root dir creation if mountpoint isn't mounted. M src/lib-master/mountpoint-list.c M src/lib-master/mountpoint-list.h M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h M src/lib-storage/mailbox-list.c 2012-02-01 20:21:38 +0200 Timo Sirainen (10e6b320f) doveadm mount: Renamed "status" command to "list". M src/doveadm/doveadm-mount.c 2012-02-01 20:21:06 +0200 Timo Sirainen (2e0967236) doveadm mount remove: Allow removing a wildcard path with the '*' suffix. M src/doveadm/doveadm-mount.c 2012-02-01 19:29:31 +0200 Timo Sirainen (680e885bc) Keep track of seen mountpoints and warn at startup if one is missing. doveadm mount commands can be used to manipulate the list. The list is kept in $rundir/mounts, but since it may be deleted after a reboot a copy is kept also in $statedir/mounts. If it's not found from $rundir at startup, it's copied there from $statedir. (The reason why only $statedir isn't used is because it's often not world-readable.) M src/doveadm/Makefile.am A src/doveadm/doveadm-mount.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h M src/lib-master/Makefile.am A src/lib-master/mountpoint-list.c A src/lib-master/mountpoint-list.h M src/master/main.c 2012-02-01 19:13:04 +0200 Timo Sirainen (6176f3618) doveadm: Added flag to specify which column table formatter expands. The default also was changed to last column, not first. M src/doveadm/doveadm-director.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.h M src/doveadm/doveadm-proxy.c M src/doveadm/doveadm-stats.c M src/doveadm/doveadm-who.c 2012-02-01 18:57:14 +0200 Timo Sirainen (4894f0203) configure: Added getmntinfo() check for BSD mountpoint iteration. M configure.in 2012-02-01 20:10:42 +0200 Timo Sirainen (4b8a6aec5) lib-storage: mailbox_list_mkdir_root() API changed. Use it now for creating mail root dir. It was supposed to be used for it previously, but wasn't.. M src/lib-storage/index/dbox-common/dbox-sync-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/plugins/fts-lucene/fts-backend-lucene.c 2012-02-01 18:55:54 +0200 Timo Sirainen (74f436ccd) guid_128_generate(): Use 32bit sha1(host@domain) instead of crc32(hostname) M src/lib/guid.c 2012-01-30 20:09:04 +0200 Timo Sirainen (7c7d22445) Added mountpoint_iter_*() for iterating mounted filesystems. M src/lib/mountpoint.c M src/lib/mountpoint.h 2012-01-29 20:33:34 +0000 Pascal Volk (eb5a56127) man: Added descriptions of -d and -S options to doveconf.1. M doc/man/doveconf.1.in 2012-01-29 01:48:16 +0200 Timo Sirainen (d10cb4d7a) istream-concat: If EOF is already reached, use that size for stat().st_size M src/lib/istream-seekable.c 2012-01-29 01:37:44 +0200 Timo Sirainen (34dcdf364) zlib: zlib/bzlib ostreams no longer assert-crash if parent stream becomes full. This fixes assert-crashes with IMAP COMPRESS extension. M src/plugins/zlib/ostream-bzlib.c M src/plugins/zlib/ostream-zlib.c 2012-01-29 00:48:43 +0200 Timo Sirainen (b13d76faf) pop3c: mail.istream_opened() method wasn't being called. M src/lib-storage/index/pop3c/pop3c-mail.c 2012-01-29 00:35:40 +0200 Timo Sirainen (c08a1a5e3) mdbox: Don't lose save_dates when rebuilding indexes. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2012-01-29 00:30:23 +0200 Timo Sirainen (162dfa2d7) zlib+mbox: Fixed error handling when opening nonexistent/directory mailbox. M src/plugins/zlib/zlib-plugin.c 2012-01-28 23:58:50 +0200 Timo Sirainen (b104354c4) imap: CONTEXT search return option wasn't handled at all. M src/imap/imap-search.c 2012-01-28 23:46:49 +0200 Timo Sirainen (f71c2d4e6) mdbox: Check that m.X file doesn't have garbage at end of file when saving new data to it. M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-multi/mdbox-sync.h 2012-01-28 22:39:58 +0200 Timo Sirainen (5d4aac94c) dsync: Fixed handling non-ASCII characters in mailbox names. M src/doveadm/dsync/dsync-worker-local.c 2012-01-28 22:24:26 +0200 Timo Sirainen (c45852c0e) doveconf: Added -d parameter for dumping default settings. M src/config/config-parser-private.h M src/config/config-parser.c M src/config/doveconf.c 2012-01-28 22:05:52 +0200 Timo Sirainen (cc4087c4d) sql: Fixed retrying query when multiple hosts were specified and all of them got disconnected. M src/lib-sql/driver-sqlpool.c 2012-01-28 20:21:10 +0200 Timo Sirainen (f9127f033) lib-storage: Thread iteration no longer returns dummy nodes without children. This fixes returning (0) nodes to IMAP client. M src/lib-storage/index/index-thread-finish.c 2012-01-28 20:08:40 +0200 Timo Sirainen (928f1abfd) restrict_access(): If privileged and primary GIDs are the same, ignore privileged GID. M src/lib/restrict-access.c 2012-01-28 19:48:48 +0200 Timo Sirainen (0e454b53e) dsync: If brain fails but workers don't, exit without assert-crashing. M src/doveadm/dsync/dsync-brain.c 2012-01-28 19:44:24 +0200 Timo Sirainen (63a506411) dsync: Don't crash if one source has indexes disabled. M src/doveadm/dsync/dsync-worker-local.c 2012-01-28 19:25:32 +0200 Timo Sirainen (884275d77) smtp client: Do DNS blocking lookups. We don't currently have access to base_dir, so we can't know what the path to dns-client is. Also smtp client is a blocking operation anyway, so doing a blocking DNS lookup isn't a problem. M src/lib-lda/smtp-client.c 2012-01-28 19:24:17 +0200 Timo Sirainen (4d406197f) smtp/lmtp client: If dns-client socket path isn't given, use blocking lookup. M src/lib-lda/lmtp-client.c 2012-01-28 19:00:56 +0200 Timo Sirainen (7fa561fec) fs layout: Handle properly returning path when there is no root dir. M src/lib-storage/list/mailbox-list-fs.c 2012-01-27 23:33:00 +0200 Timo Sirainen (321f17803) master: Throttle rapid exit failures only if there have never been any exit successes. This should still catch buggy services without allowing intentional DoSing. M src/master/service-monitor.c M src/master/service.h 2012-01-27 23:26:42 +0200 Timo Sirainen (cb211cc64) master: Make service throttling seconds incremental, starting from 2 secs. M src/master/service-monitor.c M src/master/service.c M src/master/service.h 2012-01-27 23:22:22 +0200 Timo Sirainen (870bcf0d0) master: If 10 service processes die within a second with no successes inbetween, throttle the service. M src/master/service-monitor.c M src/master/service.h 2012-01-27 22:15:29 +0200 Timo Sirainen (b71b9e5cd) auth: Monitor how fast userdb passwd lookups are. If they're too slow, suggest blocking=yes M src/auth/userdb-passwd.c 2012-01-27 21:52:30 +0200 Timo Sirainen (357c7ddd0) auth: If parsing passwd-file takes a long time, log a warning. M src/auth/db-passwd-file.c 2012-01-27 19:31:58 +0200 Timo Sirainen (80980955b) login proxy: If remote auth fails, say so in disconnect message instead of "internal failure". M src/imap-login/imap-proxy.c M src/login-common/client-common.c M src/login-common/client-common.h M src/pop3-login/pop3-proxy.c 2012-01-27 17:16:46 +0200 Timo Sirainen (cec5e44a7) dovecot-config: Added missing lib-dns and lib-fs to LIBDOVECOT_INCLUDE M dovecot-config.in.in 2012-01-27 15:44:06 +0200 Timo Sirainen (cf77eee4f) sdbox: Preserve file's atime/mtime when moving it to alt storage. M src/lib-storage/index/dbox-single/sdbox-file.c 2012-01-27 14:46:38 +0200 Timo Sirainen (ac2b94f3b) imapc: If imapc_host is IP, don't look it up via dns-client service. M src/lib-imap-client/imapc-connection.c 2012-01-27 14:35:38 +0200 Timo Sirainen (78a12e15c) example-config: mdbox_rotate_interval default was wrong. M doc/example-config/conf.d/10-mail.conf 2012-01-27 14:17:32 +0200 Timo Sirainen (ac45ba9c6) login: More verbose_auth -> auth_verbose changes. M src/imap-login/imap-proxy.c M src/pop3-login/client-authenticate.c M src/pop3-login/pop3-proxy.c 2012-01-27 14:15:30 +0200 Timo Sirainen (73f70e35b) login: If auth_debug_passwords=yes, assume auth_debug/auth_verbose=yes M src/login-common/login-settings.c M src/login-common/login-settings.h 2012-01-27 14:15:06 +0200 Timo Sirainen (b11269887) login process wasn't logging all intended messages with auth_verbose=yes It was named verbose_auth setting accidentally. M src/login-common/client-common-auth.c M src/login-common/login-settings.c M src/login-common/login-settings.h M src/login-common/sasl-server.c M src/login-common/ssl-proxy-openssl.c 2012-01-27 02:42:50 +0200 Timo Sirainen (297959b63) imapc: If server doesn't support GUIDs, return empty GUID rather than fail. This is how other backends do it as well. M src/lib-storage/index/imapc/imapc-mail.c 2012-01-26 21:43:27 +0200 Timo Sirainen (f33d37b67) doveadm fetch hdr.*.adddress*: Don't crash when printing groups. M src/doveadm/doveadm-mail-fetch.c 2012-01-26 21:25:39 +0200 Timo Sirainen (cf1c3e683) doveadm fetch: hdr.*.address and hdr.*.address_name expand to parsed mail addresses. M src/doveadm/doveadm-mail-fetch.c 2012-01-26 20:46:44 +0200 Timo Sirainen (9e952e5d8) doveadm fetch text.utf8: Don't return failure on success. M src/doveadm/doveadm-mail-fetch.c 2012-01-26 20:19:32 +0200 Timo Sirainen (46d283ef5) doveadm fetch: Added text.utf8 field, which translates headers/body to UTF-8. M src/doveadm/doveadm-mail-fetch.c 2012-01-26 16:37:40 +0200 Timo Sirainen (8e0265f99) auth: Added PLAIN-TRUNC password schmee. The idea is to allow successful authentication when the original plaintext password was stored truncated in the database. So e.g. user gave 123456789 as password, but database truncated it to 12345678. To make this authentication work, {PLAIN-TRUNC}8-12345678 password allows successful authentication with any password that begins with 12345678. With the "8-" prefix this prefix matching is done only when the password after it is exactly 8 characters. M src/auth/password-scheme.c 2012-01-26 15:41:23 +0200 Timo Sirainen (eab3cb1db) Makefile: Added UnicodeData.txt dependency to unicodemap.c. M src/lib/Makefile.am 2012-01-26 00:44:41 +0200 Timo Sirainen (21c2eb82a) Added signature for changeset 0f10b3ed5c18 M .hgsigs 2012-01-26 00:44:04 +0200 Timo Sirainen (dccd61960) Added tag 2.1.rc5 for changeset 0f10b3ed5c18 M .hgtags 2012-01-26 00:44:04 +0200 Timo Sirainen (b97b9b7d4) Released v2.1.rc5. M NEWS M configure.in 2012-01-26 00:37:42 +0200 Timo Sirainen (4199f701a) maildir: When saving mails compressed, make sure ,S=size gets added to the filename. M src/lib-storage/index/maildir/maildir-save.c 2012-01-25 23:45:02 +0200 Timo Sirainen (a39292e64) lib-storage: Message size lookups from cache was broken if fields weren't in "normal" order in file. M src/lib-storage/index/index-mail.c 2012-01-24 17:28:14 +0200 Timo Sirainen (69b602ccb) Added signature for changeset a20a99b8815d M .hgsigs 2012-01-24 17:28:10 +0200 Timo Sirainen (eb8bdbb83) Added tag 2.1.rc4 for changeset a20a99b8815d M .hgtags 2012-01-24 17:28:10 +0200 Timo Sirainen (5956aa560) Released v2.1.rc4. M NEWS M TODO M configure.in 2012-01-24 16:37:24 +0200 Timo Sirainen (df3977bb1) Dead code removal. M src/lib-storage/list/mailbox-list-index.c 2012-01-24 15:30:47 +0200 Timo Sirainen (e4e1215d1) lib-index: Handle broken ext-header updates without crashing. M src/lib-index/mail-index-sync-ext.c 2012-01-24 03:52:28 +0200 Timo Sirainen (ec5319ff8) zlib: Getting stream's size failed in some situations. This could have caused other trouble, such as with dbox + mail_attachment_dir. M src/plugins/zlib/istream-bzlib.c M src/plugins/zlib/istream-zlib.c 2012-01-24 03:51:20 +0200 Timo Sirainen (4a962dccf) dbox: Minor code correctness fix. M src/lib-storage/index/dbox-common/dbox-attachment.c 2012-01-24 03:50:36 +0200 Timo Sirainen (cfe60fe6e) istream-mail: Skip checking if cached message size is wrong if parent stream returns error. An error is not the same as EOF. M src/lib-storage/index/istream-mail.c 2012-01-24 03:49:03 +0200 Timo Sirainen (6cc5a850b) istream-concat: If looking up stream's size fails, log an error and handle it as error, not EOF. M src/lib/istream-concat.c 2012-01-22 21:38:48 +0200 Timo Sirainen (7fa573e6e) login: Make SASL auth buffer size define public. M src/login-common/client-common-auth.c M src/login-common/client-common.h 2012-01-21 22:23:28 +0200 Timo Sirainen (83e6a1162) pop3c: Change the default port to 110, not 143. M src/lib-storage/index/pop3c/pop3c-settings.c 2012-01-21 18:57:31 +0200 Timo Sirainen (56aa97d74) pop3c: Fixed to work without indexes. M src/lib-storage/index/pop3c/pop3c-storage.c 2012-01-21 18:31:25 +0200 Timo Sirainen (2e78f05b1) imap-login: Fixed handling second AUTHENTICATE command when the first one failed. M src/imap-login/client-authenticate.c M src/imap-login/client-authenticate.h M src/imap-login/client.c M src/imap-login/client.h M src/login-common/client-common-auth.c 2012-01-21 00:43:13 +0200 Timo Sirainen (1f09437da) lmtp: Fixed assert-crashing on 3rd client connection. M src/lmtp/client.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2012-01-21 00:27:52 +0200 Timo Sirainen (ffaa309c2) lmtp: Make core dumping work also after the first mail delivery. M src/lmtp/commands.c M src/lmtp/main.c M src/lmtp/main.h 2012-01-20 22:12:48 +0200 Timo Sirainen (b991f3c49) fs layout: Fixed listing child mailboxes when children flags weren't requested. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-01-20 21:57:30 +0200 Timo Sirainen (9706def24) fs layout: Don't list subscriptions file as a mailbox. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-01-20 21:13:00 +0200 Timo Sirainen (87346782e) notify plugin: Don't crash if user-plugin didn't set mailbox_rename. Patch by Ewald Dieterich. M src/plugins/notify/notify-plugin.c 2012-01-20 21:11:09 +0200 Timo Sirainen (95c4f06cb) notify plugin: Added mailbox_update and mailbox_set_subscribed notifications. M src/plugins/notify/notify-plugin-private.h M src/plugins/notify/notify-plugin.c M src/plugins/notify/notify-plugin.h M src/plugins/notify/notify-storage.c 2012-01-20 18:59:16 +0200 Timo Sirainen (d646824bf) master: Added instance_name setting, which is used to prefix processes in ps output. M doc/example-config/dovecot.conf M src/master/main.c M src/master/master-settings.c M src/master/master-settings.h 2012-01-20 18:44:49 +0200 Timo Sirainen (3ec16f23d) mysql: If query fails with "MySQL server gone away", log also how long it idled. M src/lib-sql/driver-mysql.c 2012-01-20 18:28:40 +0200 Timo Sirainen (3a7113e3e) auth: Make idle_kill work with auth worker processes. M src/auth/auth-common.h M src/auth/auth-worker-client.c M src/auth/auth-worker-client.h M src/auth/auth-worker-server.c M src/auth/main.c M src/auth/passdb-pam.c 2012-01-20 18:27:44 +0200 Timo Sirainen (0161376aa) lib-master: Send service's idle_kill value to process in environment. M src/lib-master/master-interface.h M src/lib-master/master-service-private.h M src/lib-master/master-service.c M src/lib-master/master-service.h M src/master/service-process.c 2012-01-20 18:14:43 +0200 Timo Sirainen (9e291f6a7) Typofix. M src/master/service-process.c 2012-01-20 18:09:54 +0200 Timo Sirainen (db811399b) fts: Run decoder script with 10 second alarm. M src/plugins/fts/fts-parser-script.c 2012-01-20 18:09:41 +0200 Timo Sirainen (8656ae1d8) script: Set alarm() for the script being run only if alarm= parameter is given. M src/util/script.c 2012-01-20 17:56:32 +0200 Timo Sirainen (57d39b72f) decode2text.sh: Hide catdoc/catppt/xls2csv segmentation faults. We can't do anything about them anyway. M src/plugins/fts/decode2text.sh 2012-01-20 17:42:47 +0200 Timo Sirainen (53dff078a) imap, pop3: Added -t parameter to specify post-login script timeout. M src/imap/main.c M src/lib-master/master-login.c M src/lib-master/master-login.h M src/pop3/main.c 2012-01-20 17:42:15 +0200 Timo Sirainen (db0d5253b) script-login: If we fail to finish, exit with 0 to avoid master logging error unnecessarily. M src/util/script-login.c 2012-01-20 17:06:06 +0200 Timo Sirainen (15093714c) Maildir++ quota: Close maildirsize file after writing to it to force NFS to write it. This should fix the "Stale NFS file handle" errors with maildirsize. M src/plugins/quota/quota-maildir.c 2012-01-20 16:54:17 +0200 Timo Sirainen (3f9473b9c) eacces_error(): Removed bogus message about UNIX perms appearing to be ok. M src/lib/eacces-error.c 2012-01-20 16:40:06 +0200 Timo Sirainen (84de4076a) lib-auth: Don't log the "auth connection closed" warning if there were 0 non-aborted requests. M src/lib-auth/auth-server-connection.c 2012-01-20 16:37:10 +0200 Timo Sirainen (9ddd3d7d8) lib-auth: Improved warning message about aborting auth requests. M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client-request.h M src/lib-auth/auth-client.c M src/lib-auth/auth-client.h M src/lib-auth/auth-server-connection.c M src/lib-auth/auth-server-connection.h M src/login-common/client-common.c M src/login-common/main.c 2012-01-19 17:46:52 +0200 Timo Sirainen (f93c833d6) auth: Throttle SQL auth worker process creation if they can't connect to database. M src/auth/auth-settings.c M src/auth/auth-worker-client.c M src/auth/auth-worker-client.h M src/auth/auth-worker-server.c M src/auth/db-sql.c M src/auth/db-sql.h M src/auth/main.c M src/auth/passdb-sql.c M src/auth/userdb-sql.c 2012-01-19 16:33:13 +0200 Timo Sirainen (b62477398) auth: Show a better auth worker process title. M src/auth/auth-common.h M src/auth/auth-worker-client.c M src/auth/auth-worker-client.h M src/auth/main.c 2012-01-19 16:17:52 +0200 Timo Sirainen (de0022ee1) auth: Avoid adding duplicate extra fields to auth replies. This especially fixes default_fields/override_fields. M src/auth/auth-request.c 2012-01-19 16:16:56 +0200 Timo Sirainen (b4205cfdf) auth: Minor optimization. M src/auth/auth-stream.c M src/auth/auth-stream.h M src/auth/userdb-blocking.c 2012-01-19 16:15:03 +0200 Timo Sirainen (d9fe79368) auth: Don't crash when setting valueless default/override_fields to passdb. M src/auth/passdb-template.c 2012-01-19 15:53:42 +0200 Timo Sirainen (decb23442) imap-login: Handle SASL-IR without overflowing master_auth_request's buffer. M src/imap-login/client-authenticate.c M src/imap-login/client-authenticate.h M src/imap-login/client.c M src/imap-login/client.h M src/lib-master/master-auth.h M src/login-common/client-common-auth.c M src/login-common/client-common.h 2012-01-19 15:41:16 +0200 Timo Sirainen (0ad9d535b) lib-auth: Treat cert_username="" and initial_resp_base64="" the same as NULLs. M src/lib-auth/auth-client-request.c 2012-01-18 23:44:40 +0200 Timo Sirainen (964c86de7) auth: Log a warning if userdb ldap isn't used, but user_* or iterate_* aren't defaults. This is intended to stop people from wondering why their changes don't do anything. M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2012-01-18 23:36:13 +0200 Timo Sirainen (e665999b7) auth: Log a warning if userdb sql isn't used, but user_query or iterate_query isn't default. This is intended to stop people from wondering why user_query doesn't do anything. M src/auth/db-sql.c M src/auth/db-sql.h M src/auth/passdb-sql.c M src/auth/userdb-sql.c 2012-01-18 17:58:53 +0200 Timo Sirainen (0af68ff33) fs layout: Don't crash in mailbox listing if there are only invalid patterns. M src/lib-storage/list/mailbox-list-fs-iter.c 2012-01-18 16:52:14 +0200 Timo Sirainen (fd42aa358) lib-lda: Added %e / %{from_envelope} variable to deliver_log_format. M src/lib-lda/mail-deliver.c 2012-01-18 16:51:22 +0200 Timo Sirainen (e8dc3747d) lib-storage: Preserve from_envelope in save context's dest_mail even if it's temporary. This allows looking it up while the mail is being saved. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-storage.c 2012-01-18 14:21:53 +0200 Timo Sirainen (3a79fdaf3) master: Show the process_limit / client_limit value when logging that it's been reached. M src/master/service-monitor.c 2012-01-17 23:34:31 +0200 Timo Sirainen (1bb157060) lmtp: Removed unnecessary code. M src/lmtp/lmtp-proxy.c 2012-01-17 23:34:22 +0200 Timo Sirainen (68b788185) lib-lda: Fixed LMTP client hanging on sending large mails. M src/lib-lda/lmtp-client.c 2012-01-17 23:12:26 +0200 Timo Sirainen (05c32766d) lmtp: Get banner text from login_greeting setting. M src/lmtp/client.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2012-01-17 23:11:16 +0200 Timo Sirainen (19cadcc25) lib-storage: Added mail_storage_service_get_var_expand_table(). M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2012-01-17 22:54:11 +0200 Timo Sirainen (433f5c9cc) director: Added timeout to syncing to make sure we don't hang if it somehow gets lost. M src/director/director-connection.c M src/director/director.c M src/director/director.h 2012-01-17 22:21:57 +0200 Timo Sirainen (fe201fb18) director: Make sure ring syncing doesn't get lost when directors get disconnected. M src/director/director-connection.c 2012-01-17 17:20:07 +0200 Timo Sirainen (2b2459767) auth: DIGEST-MD5 supports authorization id now. Patch by Yubao Liu. M src/auth/mech-digest-md5.c 2012-01-17 17:17:24 +0200 Timo Sirainen (802d296fb) auth: DIGEST-MD5 didn't read nonce-count parameter correctly. Patch by Yubao Liu. M src/auth/mech-digest-md5.c 2012-01-17 16:18:05 +0200 Timo Sirainen (69b22a0c0) director: Drop privileges only after adding hosts. This allows reading files from /etc/ before chrooting. M src/director/main.c 2012-01-17 16:07:13 +0200 Timo Sirainen (8ff981265) auth: Fixed loading passdb/userdb plugins. Patch by Stephan Bosch. M src/auth/passdb.c M src/auth/userdb.c 2012-01-17 15:44:26 +0200 Timo Sirainen (c4900d313) director: Find director's own IP earlier in init. M src/director/director.c M src/director/director.h M src/director/main.c 2012-01-12 23:09:25 +0200 Timo Sirainen (f3dccddb8) dsync: Fixed handling -u parameter in backwards compatibility dsync mode. M src/doveadm/dsync/doveadm-dsync.c 2012-01-12 21:53:31 +0200 Timo Sirainen (b9c76fe9d) login: Added logging if auth process doesn't respond fast enough for greeting. M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h 2012-01-12 15:40:30 +0200 Timo Sirainen (4c1279dba) example-config: Updated vsz_limit default values. M doc/example-config/conf.d/10-master.conf 2012-01-11 12:07:44 +0200 Timo Sirainen (18f1bbf05) login proxy: Added extra logging for bug detection. M src/login-common/client-common-auth.c 2012-01-11 10:31:25 +0200 Timo Sirainen (967561920) configure: Add -fno-builtin-strftime flag with gcc to avoid warning. M configure.in 2012-01-10 23:34:43 +0200 Timo Sirainen (1f696b6f3) Compiler warning fix. M src/lib/iostream-rawlog.c 2012-01-10 23:30:36 +0200 Timo Sirainen (dded61056) decode2text.sh: Exit with 0 even if the decoding failed. There's nothing to be done anyway, since they are external programs. These errors just flood the error log unnecessarily. M src/plugins/fts/decode2text.sh 2012-01-10 23:28:03 +0200 Timo Sirainen (6a1ecaf2f) Don't assert-crash on mail search if decomposed titlecase of search key is empty. M src/lib-mail/message-search.c M src/lib-mail/message-search.h M src/lib-storage/index/index-search.c 2012-01-10 23:14:18 +0200 Timo Sirainen (46c6ebbfa) quota: Try to avoid logging NFS stale fhandle errors when closing maildirsize file. M src/plugins/quota/quota-maildir.c 2012-01-10 23:10:04 +0200 Timo Sirainen (0a5a9ccc0) imap/pop3-login: Include hostname and timestamp in "temporary auth failure" message. M src/imap-login/client-authenticate.c M src/pop3-login/client-authenticate.c 2012-01-10 22:57:09 +0200 Timo Sirainen (b1f37113a) Use t_strflocaltime() where possible. M src/doveadm/doveadm-util.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/lib/iostream-rawlog.c M src/util/rawlog.c 2012-01-10 22:51:52 +0200 Timo Sirainen (c3c07d652) Added t_strflocaltime(). M src/lib/macros.h M src/lib/time-util.c M src/lib/time-util.h 2012-01-10 21:39:13 +0200 Timo Sirainen (c2a5b91e0) master: default_idle_kill setting wasn't "time" type. M src/master/master-settings.c 2012-01-10 21:37:54 +0200 Timo Sirainen (152db3f90) director: If request is timed out, log an error. M src/director/director-connection.c M src/director/director-request.c M src/director/director-request.h M src/director/director.c M src/director/director.h M src/director/login-connection.c 2012-01-10 13:12:08 +0200 Timo Sirainen (39dc1412c) s/Fallbacking/Falling back/ M src/auth/auth-request.c 2012-01-10 02:27:26 +0200 Timo Sirainen (1e143a660) fts-solr: Make sure header name is lowercased in search queries. M src/plugins/fts-solr/fts-backend-solr.c 2012-01-10 00:34:09 +0200 Timo Sirainen (77f1da4b5) login proxy: If server disconnects during auth, log the connection duration. M src/login-common/client-common-auth.c 2012-01-09 23:57:25 +0200 Timo Sirainen (19d01d72f) master: "Out of memory" message shows now the service {} block around vsz_limit. M src/master/service-process.c 2012-01-09 21:10:35 +0200 Timo Sirainen (5c6aa687a) imapc: Added imapc_master_user setting. M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2012-01-09 21:10:30 +0200 Timo Sirainen (b988298ba) imapc: Treat master_user="" the same as NULL. M src/lib-imap-client/imapc-client.c 2012-01-09 20:53:51 +0200 Timo Sirainen (d82300014) auth: Check also masterdbs when checking if auth mechanism can be used. Patch by Yubao Liu M src/auth/auth.c 2012-01-09 20:31:53 +0200 Timo Sirainen (520398a73) lib-lda: Make lmtp_client_state_to_string() more verbose. M src/lib-lda/lmtp-client.c 2012-01-09 16:35:22 +0200 Timo Sirainen (27abb44a4) auth: Implemented support for Postfix's "TCP map" sockets for user existence lookups. M src/auth/Makefile.am A src/auth/auth-postfix-connection.c A src/auth/auth-postfix-connection.h M src/auth/main.c 2012-01-09 16:29:37 +0200 Timo Sirainen (29d4c6eac) auth: Use linked list instead of array for storing list of auth connections. With arrays the removal was slower than necessary. M src/auth/auth-client-connection.c M src/auth/auth-client-connection.h M src/auth/auth-master-connection.c M src/auth/auth-master-connection.h M src/auth/main.c 2012-01-07 20:28:42 +0200 Timo Sirainen (f571a68a0) Removed unnecessary code. M src/auth/auth-request.c 2012-01-06 21:34:36 +0200 Timo Sirainen (33e6cf3a2) Added signature for changeset 5398bdb8613f M .hgsigs 2012-01-06 21:34:33 +0200 Timo Sirainen (566856deb) Added tag 2.1.rc3 for changeset 5398bdb8613f M .hgtags 2012-01-06 21:34:33 +0200 Timo Sirainen (a246e7eb8) Released v2.1.rc3. M NEWS M TODO M configure.in 2012-01-06 20:39:48 +0200 Timo Sirainen (44d230b62) Compiler warning fix. M src/lib-storage/mail-storage.c 2012-01-06 19:54:03 +0200 Timo Sirainen (cdc2cb6a9) Make static analyzer happier. M src/doveadm/dsync/doveadm-dsync.c M src/doveadm/dsync/dsync-proxy.c 2012-01-06 19:29:23 +0200 Timo Sirainen (e9ac518aa) master: log/anvil listener names weren't set correctly. Also this fixes a long standing static analyzer "error". M src/master/service-process.c 2012-01-06 19:15:03 +0200 Timo Sirainen (b951c707c) Makefile: added missing file M src/doveadm/dsync/Makefile.am 2012-01-06 16:02:36 +0200 Timo Sirainen (c7a44fd90) Added signature for changeset a14b7333ae45 M .hgsigs 2012-01-06 16:02:33 +0200 Timo Sirainen (eb274150f) Added tag 2.1.rc2 for changeset a14b7333ae45 M .hgtags 2012-01-06 16:02:33 +0200 Timo Sirainen (7069d9d6a) Released v2.1.rc2. M NEWS M TODO M configure.in 2012-01-06 16:00:45 +0200 Timo Sirainen (a7908708f) log: Removed unnecessary code. M src/log/log-connection.c 2012-01-06 15:23:53 +0200 Timo Sirainen (8774bcd22) mail-log: Log all mail deliveries with "save" event, even if it happened via copying. M src/plugins/mail-log/mail-log-plugin.c 2012-01-06 15:23:12 +0200 Timo Sirainen (4f9b0e8c6) lib-lda: Use mailbox_save_using_mail() instead of mailbox_copy() for saving mails. M src/lib-lda/mail-deliver.c 2012-01-06 15:22:52 +0200 Timo Sirainen (00aaafa86) lib-storage: Added mailbox_save_using_mail() M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2012-01-06 15:17:20 +0200 Timo Sirainen (abec3f4c5) lib-storage: Renamed mail_save_context.copying to copying_via_save. M src/lib-storage/mail-copy.c M src/lib-storage/mail-storage-private.h M src/plugins/notify/notify-storage.c M src/plugins/quota/quota-storage.c 2012-01-06 14:24:06 +0200 Timo Sirainen (ad58b50ae) doveadm: Hide "dsync-server" from list of commands. M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/dsync/doveadm-dsync.c 2012-01-06 14:21:25 +0200 Timo Sirainen (e7f1fd99f) doveadm: Renamed dsync commands. M src/doveadm/dsync/doveadm-dsync.c 2012-01-06 13:50:07 +0200 Timo Sirainen (533929e77) auth: If master_user is specified by userdb, don't add another one to reply. The one specified by userdb should have overridden the other one though. M src/auth/auth-request-handler.c 2012-01-06 13:26:30 +0200 Timo Sirainen (6c973cffb) fts-solr: Avoid using too much memory unnecessarily. Log a warning about huge headers. M src/plugins/fts-solr/fts-backend-solr.c 2012-01-06 13:09:51 +0200 Timo Sirainen (2d21dcbbc) istream-data: Avoid assert crashing due to recently added assert. M src/lib/istream-data.c 2012-01-04 17:26:25 +0200 Timo Sirainen (d200ae871) lib-index: Avoid assert-crashing on keyword-update record with empty keyword. M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-transaction-log-view.c 2012-01-04 16:46:12 +0200 Timo Sirainen (3aa7a4817) dsync: Don't remove other namespaces entirely, just skip the unwanted ones. This fixes incorrectly removing subscriptions=no namespaces entries from subscriptions. M src/doveadm/dsync/dsync-worker-local.c 2012-01-04 15:22:26 +0200 Timo Sirainen (eacce2276) imap-acl: Don't log errors when trying to change ACLs for nonexistent mailboxes. M src/plugins/imap-acl/imap-acl-plugin.c 2012-01-04 15:08:39 +0200 Timo Sirainen (e3a4539a3) Added MAILBOX_LIST_ITER_SELECT_SPECIALUSE option and enable it for IMAP. RECURSIVEMATCH option doesn't currently work properly with it. M src/imap/cmd-list.c M src/lib-storage/mailbox-list-iter.c M src/lib-storage/mailbox-list.h 2012-01-04 12:00:13 +0200 Timo Sirainen (97e62b2b3) istream: Don't treat max_block_size=0 as unlimited. M src/lib/file-copy.c M src/lib/istream.c M src/plugins/fts-squat/squat-test.c 2012-01-03 14:42:51 +0200 Timo Sirainen (4fbbd38ee) dsync: Don't log unnecessary errors about not being able to delete \Noselect mailbox dirs. M src/doveadm/dsync/dsync-worker-local.c 2012-01-03 14:41:44 +0200 Timo Sirainen (59b2a629a) dsync: Previous commit did too many changes, reverting. M src/doveadm/dsync/dsync-worker-local.c 2012-01-03 14:33:20 +0200 Timo Sirainen (34c28e13e) dsync: Don't log unnecessary errors about not being able to delete \Noselect mailbox dirs. M src/doveadm/dsync/dsync-worker-local.c 2012-01-03 13:13:37 +0200 Timo Sirainen (60216d65b) imap-login: LOGIN_MAX_INBUF_SIZE was too small, because of SASL-IR extension M src/login-common/client-common.h 2012-01-02 16:30:06 +0200 Timo Sirainen (01435c38e) lib-storage: Added initial support for pop3c backend. M configure.in M src/lib-storage/index/Makefile.am A src/lib-storage/index/pop3c/Makefile.am A src/lib-storage/index/pop3c/pop3c-client.c A src/lib-storage/index/pop3c/pop3c-client.h A src/lib-storage/index/pop3c/pop3c-mail.c A src/lib-storage/index/pop3c/pop3c-settings.c A src/lib-storage/index/pop3c/pop3c-settings.h A src/lib-storage/index/pop3c/pop3c-storage.c A src/lib-storage/index/pop3c/pop3c-storage.h A src/lib-storage/index/pop3c/pop3c-sync.c A src/lib-storage/index/pop3c/pop3c-sync.h 2011-12-30 17:44:23 +0200 Timo Sirainen (21b4abea6) doveadm stats top: Added -b parameter to use read_bytes/write_bytes fields for disk io. This is useful when the kernel doesn't support the actual disk IO fields. M src/doveadm/doveadm-stats.c 2011-12-30 12:33:06 +0200 Timo Sirainen (faec0abfd) Use master_service_connection.name for determining listener type. M src/auth/main.c M src/director/main.c M src/ipc/main.c 2011-12-30 12:31:58 +0200 Timo Sirainen (f7423cbbd) Listener names are now in struct master_service_connection.name This allows service to use the names to figure out what type the listener is. M src/lib-master/master-service-private.h M src/lib-master/master-service.c M src/lib-master/master-service.h M src/master/service-process.c M src/master/service.c M src/master/service.h 2011-12-30 11:54:48 +0200 Timo Sirainen (6469cf211) lib-storage: Added struct mailbox.set_subscribed() virtual method. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/test-mailbox.c M src/plugins/virtual/virtual-storage.c 2011-12-29 14:43:45 +0200 Timo Sirainen (885a3c228) Merged dsync into "doveadm dsync". dsync symlink is installed for backwards compatibility. M .hgignore M configure.in M src/Makefile.am M src/doveadm/Makefile.am M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/doveadm.c R081 src/dsync/Makefile.am src/doveadm/dsync/Makefile.am A src/doveadm/dsync/doveadm-dsync.c A src/doveadm/dsync/doveadm-dsync.h R100 src/dsync/dsync-brain-msgs-new.c src/doveadm/dsync/dsync-brain-msgs-new.c R100 src/dsync/dsync-brain-msgs.c src/doveadm/dsync/dsync-brain-msgs.c R100 src/dsync/dsync-brain-private.h src/doveadm/dsync/dsync-brain-private.h R099 src/dsync/dsync-brain.c src/doveadm/dsync/dsync-brain.c R100 src/dsync/dsync-brain.h src/doveadm/dsync/dsync-brain.h R100 src/dsync/dsync-data.c src/doveadm/dsync/dsync-data.c R100 src/dsync/dsync-data.h src/doveadm/dsync/dsync-data.h R099 src/dsync/dsync-proxy-client.c src/doveadm/dsync/dsync-proxy-client.c R099 src/dsync/dsync-proxy-server-cmd.c src/doveadm/dsync/dsync-proxy-server-cmd.c R094 src/dsync/dsync-proxy-server.c src/doveadm/dsync/dsync-proxy-server.c R100 src/dsync/dsync-proxy-server.h src/doveadm/dsync/dsync-proxy-server.h R100 src/dsync/dsync-proxy.c src/doveadm/dsync/dsync-proxy.c R100 src/dsync/dsync-proxy.h src/doveadm/dsync/dsync-proxy.h R099 src/dsync/dsync-worker-local.c src/doveadm/dsync/dsync-worker-local.c R100 src/dsync/dsync-worker-private.h src/doveadm/dsync/dsync-worker-private.h R100 src/dsync/dsync-worker.c src/doveadm/dsync/dsync-worker.c R100 src/dsync/dsync-worker.h src/doveadm/dsync/dsync-worker.h R100 src/dsync/test-dsync-brain-msgs.c src/doveadm/dsync/test-dsync-brain-msgs.c R099 src/dsync/test-dsync-brain.c src/doveadm/dsync/test-dsync-brain.c R100 src/dsync/test-dsync-common.c src/doveadm/dsync/test-dsync-common.c R100 src/dsync/test-dsync-common.h src/doveadm/dsync/test-dsync-common.h R099 src/dsync/test-dsync-proxy-server-cmd.c src/doveadm/dsync/test-dsync-proxy-server-cmd.c R100 src/dsync/test-dsync-proxy.c src/doveadm/dsync/test-dsync-proxy.c R100 src/dsync/test-dsync-worker.c src/doveadm/dsync/test-dsync-worker.c R100 src/dsync/test-dsync-worker.h src/doveadm/dsync/test-dsync-worker.h D src/dsync/dsync.c 2011-12-29 11:19:52 +0200 Timo Sirainen (994bb1a8a) mail-log: Removed unnecessary code. M src/plugins/mail-log/Makefile.am M src/plugins/mail-log/mail-log-plugin.c 2011-12-21 14:40:29 +0200 Timo Sirainen (1f1165262) imapc: When searching for unused index dirs, ignore any ACLs. This also fixes a crash. M src/lib-storage/index/imapc/imapc-list.c 2011-12-20 14:45:22 +0200 Timo Sirainen (62920474c) script-login -d: Ignore chrooting, we can't exec anything inside chroot. M src/util/script-login.c 2011-12-20 14:40:18 +0200 Timo Sirainen (24a90132e) script-login: Close extra fds to avoid failing with --enable-devel-checks. M src/util/script-login.c 2011-12-20 13:16:55 +0200 Timo Sirainen (f323e3f0d) dict-file: Updated dotlock settings. M src/lib-dict/dict-file.c 2011-12-19 09:10:29 +0200 Timo Sirainen (eadbca0f2) sdbox: Added support for autodetection. M src/lib-storage/index/dbox-single/sdbox-storage.c 2011-12-16 13:08:49 +0200 Timo Sirainen (211cf1dfd) FS layout: Mark memory pool growing to avoid warnings with devel-checks. M src/lib-storage/list/mailbox-list-fs-iter.c 2011-12-16 13:08:18 +0200 Timo Sirainen (ca43e32c3) FS layout: When deleting a mailbox, don't give an error if mailbox has children. The mailbox got successfully deleted, but it still gave an error. M src/lib-storage/index/index-storage.c 2011-12-16 12:50:53 +0200 Timo Sirainen (1d9ecfa7f) --enable-devel-checks: Use -fcatch-undefined-behavior -ftrapv with clang. M configure.in 2011-12-16 12:43:51 +0200 Timo Sirainen (2ee478390) fts: Expunging could have expunged indexed FTS mail from wrong mailbox. M src/plugins/fts/fts-expunge-log.c 2011-12-16 12:42:21 +0200 Timo Sirainen (3f2dd5867) lib-storage: mailbox_list_get_permissions() didn't properly erase the full return struct. This shouldn't have caused any bugs currently. M src/lib-storage/mailbox-list.c 2011-12-15 13:40:20 +0200 Timo Sirainen (633c4c09d) imapc: Assert crashfix. M src/lib-imap-client/imapc-connection.c 2011-12-14 14:29:07 +0200 Timo Sirainen (3ed38c6e0) imapc: Try to avoid crashes on deinit/disconnection. M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c 2011-12-14 13:50:43 +0200 Timo Sirainen (c28f6aa0b) Added i_stream_unset_destroy_callback() M src/lib/istream.c M src/lib/istream.h 2011-12-14 13:00:05 +0200 Timo Sirainen (2ed248fba) imapc: Avoid assert-crashing when replacing mail stream with a new one. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/index-mail.c 2011-12-14 12:57:55 +0200 Timo Sirainen (276985298) imapc: Fixed missing BODY[]/INTERNALDATE to handle actual failures again. M src/lib-storage/index/imapc/imapc-mail.c 2011-12-14 12:33:59 +0200 Timo Sirainen (2f14155ea) imapc: Handle missing INTERNALDATE reply by returning an empty mail instead of disconnecting. M src/lib-storage/index/imapc/imapc-mail.c 2011-12-14 11:57:20 +0200 Timo Sirainen (dab64e8f3) imapc: Handle missing BODY[] reply by returning an empty mail instead of disconnecting. M src/lib-storage/index/imapc/imapc-mail.c 2011-12-14 10:55:11 +0200 Timo Sirainen (3028321ff) auth: Don't die if passwd-file can't open the file. The file is parsed after we already sent "we're ok" reply to master, so dying triggers infinite restarts. M src/auth/db-passwd-file.c 2011-12-12 08:45:32 +0200 Timo Sirainen (df452e962) imapc: Added support for fetching GUID from remote server, if supported. Currently this is only done for GMail. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-12-12 08:41:50 +0200 Timo Sirainen (afa672e8b) imapc: Added X-GM-EXT-1 and CONDSTORE to capabilities. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h 2011-12-12 08:36:25 +0200 Timo Sirainen (fe4691f2b) imapc: Don't crash if we receive tagged BAD reply. M src/lib-imap-client/imapc-connection.c 2011-12-12 08:29:50 +0200 Timo Sirainen (4c9745326) imap: When fetching X-GUID, set MAIL_FETCH_GUID also as "wanted fields" for optimization. M src/imap/imap-fetch.c 2011-12-12 08:43:04 +0200 Timo Sirainen (93ec4c886) imapc: Removed HIGHESTMODSEQ handling from STATUS command. We don't currently even attempt to handle remote modseqs, so HIGHESTMODSEQ shouldn't be used either. M src/lib-storage/index/imapc/imapc-storage.c 2011-12-12 07:04:46 +0200 Timo Sirainen (1114ab183) auth: Handle proxy_maybe=yes for PASS lookups. (Fixes it for LMTP.) M src/auth/auth-master-connection.c 2011-12-12 06:48:44 +0200 Timo Sirainen (ec82a9ba8) imap: Convert LIST/LSUB patterns from mUTF-7 to UTF-8 for internal representation. M src/imap/cmd-list.c 2011-12-12 06:36:31 +0200 Timo Sirainen (13b063ba3) lib-storage: Handle %{uid} and %{gid} expansion without relying on process's euid/egid. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2011-12-12 06:07:33 +0200 Timo Sirainen (88b0427d9) lib-storage: Previously added %{gid} variable didn't actually work. M src/lib-storage/mail-user.c 2011-12-10 10:59:30 +0200 Timo Sirainen (701c9fc6d) lmtp: Simplify LMTP proxying by first reading the whole input to memory/disk. This hopefully fixes problems related to LMTP proxying, at the cost of having to write large mails to temp directory. M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-proxy.h 2011-12-10 08:50:43 +0200 Timo Sirainen (5f9300cbf) passdb imap: Log about failures. M src/auth/passdb-imap.c 2011-12-10 08:44:33 +0200 Timo Sirainen (28c959a90) dsync: Update cache fields' decision and last_used fields explicitly. This makes v2.1's dsync incompatible with v2.0's when used in different servers. M src/dsync/dsync-data.c M src/dsync/dsync-data.h M src/dsync/dsync-proxy-client.c M src/dsync/dsync-proxy-server-cmd.c M src/dsync/dsync-proxy.c M src/dsync/dsync-proxy.h M src/dsync/dsync-worker-local.c M src/dsync/dsync-worker-private.h M src/dsync/test-dsync-common.c M src/dsync/test-dsync-proxy.c M src/dsync/test-dsync-worker.c M src/dsync/test-dsync-worker.h M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/mail-storage.h 2011-12-10 08:43:09 +0200 Timo Sirainen (7de34c916) doveadm: Compile fix for previous lib-index change. M src/doveadm/doveadm-dump-index.c 2011-12-10 08:42:26 +0200 Timo Sirainen (008a83e9f) lib-index: Allow updating cache's last_used field with mail_cache_register_fields() M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache.h 2011-12-10 08:41:01 +0200 Timo Sirainen (a2150da2d) lib-storage: Added separate %{gid} expansion to mail_user. The default %{gid} probably works also, but it's more reliable to do this explicitly. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2011-12-10 08:35:06 +0200 Timo Sirainen (a3738999f) lib-index: If cache field's decision is forced no, don't update the field's last_used. M src/lib-index/mail-cache-decisions.c 2011-12-10 08:15:58 +0200 Timo Sirainen (8a2401de6) lib-fs: Added "mode" parameter to "posix" backend to specify mode for created files/dirs. M src/lib-fs/fs-posix.c 2011-12-10 08:01:02 +0200 Timo Sirainen (723277fd3) maildir: If saving fails, don't bother trying to flush the file's ostream. M src/lib-storage/index/maildir/maildir-save.c 2011-12-10 07:57:16 +0200 Timo Sirainen (b51bac20a) zlib: Avoid assert-crashing if parent ostream's write had failed earlier. M src/plugins/zlib/ostream-bzlib.c M src/plugins/zlib/ostream-zlib.c 2011-12-10 07:28:22 +0200 Timo Sirainen (b033f0a67) config: Don't warn that ssl_parameters_regenerate=0 should have "hours" suffix. M src/config/old-set-parser.c 2011-12-10 07:05:56 +0200 Timo Sirainen (782f95ed0) lib-storage: FS layout mailbox list iteration code rewrite. This fixes listing non-ASCII mailboxes. Also the new way no longer keeps more than one file descriptor open. M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c 2011-12-10 07:03:09 +0200 Timo Sirainen (9b00ecffb) lib-storage: mailbox_list_get_vname() no longer treats INBOX case insensitively. The INBOX vname is case sensitive, the INBOX storage_name isn't, otherwise it's not possible to access /inBox cased mailboxes. M src/lib-storage/mailbox-list.c 2011-12-09 18:57:53 +0200 Timo Sirainen (d758298b3) var_expand(): Added %{uid} and %{gid} variables. M src/lib/var-expand.c 2011-12-09 17:49:13 +0200 Timo Sirainen (bac5a7e1c) lib-storage: Fixed search when mail prefetching is enabled. M src/lib-storage/index/index-search.c 2011-12-09 16:26:39 +0200 Timo Sirainen (2b6bc2e46) mdbox: Make sure m.* files aren't overwritten when storage index isn't found. This mainly helps to avoid situations where m.1 is replaced by mail delivery when index directory has been (wrongly) changed. M src/lib-storage/index/dbox-multi/mdbox-map-private.h M src/lib-storage/index/dbox-multi/mdbox-map.c 2011-12-08 18:56:48 +0200 Timo Sirainen (2a64bd104) auth: If verbose_proctitle=yes, show which processes are auth workers. M src/auth/main.c 2011-12-08 11:45:04 +0200 Timo Sirainen (79a5536c1) lib-storage: Reverted the last INBOX children listing change after all. M src/lib-storage/list/mailbox-list-fs-iter.c 2011-12-08 11:41:01 +0200 Timo Sirainen (16dc6ccda) lib-storage: Fixed listing INBOX's children with layout=fs and non-mbox format. M src/lib-storage/list/mailbox-list-fs-iter.c 2011-12-08 11:30:42 +0200 Timo Sirainen (14a717c96) imapc: Crashfix on error conditions. M src/lib-storage/index/imapc/imapc-storage.c 2011-12-08 09:30:14 +0200 Timo Sirainen (5df33e9ee) lib-storage: Code cleanup. M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/mailbox-header.c 2011-12-08 09:28:54 +0200 Timo Sirainen (076f8c12c) liblib: Added str_to_time() M src/lib/strnum.c M src/lib/strnum.h 2011-12-08 07:51:28 +0200 Timo Sirainen (a3786abd0) lib-storage: Removed unnecessarily duplicated code. M src/lib-storage/index/index-transaction.c 2011-12-08 07:36:39 +0200 Timo Sirainen (0de1e3762) lib-storage: Fixed assert-crash when search query contained (). M src/lib-storage/mail-search-build.c 2011-12-08 07:23:25 +0200 Timo Sirainen (f55d355a5) fts-lucene: Fixed Makefile.am M src/plugins/fts-lucene/Makefile.am 2011-12-08 07:02:03 +0200 Timo Sirainen (a34381145) lib-sql: If mysql/pgsql commit fails due to server disconnection, reconnect and retry. M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c 2011-12-08 06:11:03 +0200 Timo Sirainen (e51cfb550) lib-storage: Fixed assert-crash in user deinit with some installations. M src/lib-storage/mail-user.c 2011-12-08 05:55:19 +0200 Timo Sirainen (f04503466) login: Send the last connected client's IP address to log process. M src/login-common/main.c 2011-12-08 05:54:54 +0200 Timo Sirainen (8abe071cb) lib-storage: If client_limit=1, send user's log prefix to log process. M src/lib-storage/mail-storage-service.c 2011-12-08 05:54:23 +0200 Timo Sirainen (986ca1cb9) Added i_set_failure_send_prefix() and renamed i_set_failure_ip() to _send_ip(). M src/lib/failures.c M src/lib/failures.h 2011-12-08 05:53:55 +0200 Timo Sirainen (800fc30be) Added a new "FATAL" log command, which master uses to log all abnormal process exits. The log process adds the process's log prefix or IP address to the message if available. M src/log/log-connection.c M src/master/service-process.c 2011-12-08 05:24:48 +0200 Timo Sirainen (05f3f770d) log: Removed slightly confusing code. A log client always receives a BYE, so don't free it earlier. M src/log/log-connection.c 2011-12-08 05:17:01 +0200 Timo Sirainen (bfd8127fc) lmtp: If lmtp_save_to_detail_mailbox=yes and there was no detail, mail was logged as saved to "". M src/lmtp/commands.c 2011-12-08 05:13:44 +0200 Timo Sirainen (acf8ab052) stats: Chroot to empty directory by default. M src/stats/stats-settings.c 2011-12-08 05:12:12 +0200 Timo Sirainen (de84f428e) ssl_parameters_regenerate setting is now "time" type, as it should have been. M src/config/old-set-parser.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params.c 2011-12-08 05:05:57 +0200 Timo Sirainen (0579b94a7) indexer: Use stricter permissions for indexer-worker socket. M src/indexer/indexer-worker-settings.c 2011-12-08 05:03:22 +0200 Timo Sirainen (263fa7b43) director: chroot to base_dir by default. M src/director/director-settings.c 2011-12-08 05:02:15 +0200 Timo Sirainen (fb35b9f2c) director: Don't explicitly use base_dir. We're already chdired there, use relative paths. M src/director/Makefile.am M src/director/director-settings.c M src/director/director-settings.h M src/director/director.c M src/director/main.c 2011-12-08 05:02:12 +0200 Timo Sirainen (b9c9b81ba) director-test.sh script fixed to use a working path for director-test binary. M src/director/director-test.sh 2011-12-07 01:48:03 +0200 Timo Sirainen (d0b2bd9e2) dbox: If index was fscked, rebuild indexes to make sure no mails got lost. M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-sync.c 2011-12-07 01:46:42 +0200 Timo Sirainen (8a3f549a3) lib-index: Added mail_index_reset_fscked() M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index.h 2011-12-07 01:28:20 +0200 Timo Sirainen (0f1f0cc08) lib-storage: MAILBOX_LIST_ITER_RETURN_SPECIALUSE was checked wrong M src/lib-storage/mailbox-list-iter.c 2011-12-07 00:48:54 +0200 Timo Sirainen (a88810d5e) example-config: Added example mailboxes. A doc/example-config/conf.d/15-mailboxes.conf M doc/example-config/conf.d/Makefile.am 2011-12-07 00:30:26 +0200 Timo Sirainen (d477b279e) config: Allow section names to contain spaces. M src/config/config-parser.c M src/config/doveconf.c M src/lib-settings/settings-parser.c 2011-12-06 23:55:48 +0200 Timo Sirainen (5f46b8633) example-config: Use a default uncommented "namespace inbox". M doc/example-config/conf.d/10-mail.conf 2011-12-06 23:53:44 +0200 Timo Sirainen (c10669a42) Moved mailbox {} settings inside namespace {} and no longer require ns prefix in name. This allows specifying mailboxes more easily with per-user namespace prefixes. M src/lib-storage/mail-namespace.h M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-iter.c M src/plugins/autocreate/autocreate-plugin.c 2011-12-06 23:51:09 +0200 Timo Sirainen (3905cffc3) lib-storage: Avoid crashes if listing subscriptions for a namespace that can't have any. i.e. the namespace and its parents all have subscriptions=no M src/lib-storage/mailbox-list-iter.c 2011-12-06 23:35:58 +0200 Timo Sirainen (60d581582) master: Be more relaxed about giving service auth's client_limit being too low. imap/pop3/lmtp processes with service_count=1 use up a client only for a very short time. Don't count them. M src/master/master-settings.c 2011-12-05 21:25:22 +0200 Timo Sirainen (605d968e0) autocreate: Make sure we don't crash if there are no mailbox{}es. M src/plugins/autocreate/autocreate-plugin.c 2011-12-05 21:23:40 +0200 Timo Sirainen (759319c02) lib-storage: Don't crash when no there are no mailbox {} sections. M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-iter.c 2011-12-02 23:47:01 +0200 Timo Sirainen (33c0df448) auth: Fixed vpopmail to work again after recent change. M src/auth/passdb-vpopmail.c 2011-12-02 17:59:24 +0200 Timo Sirainen (caf33f5b3) README: Added SPECIAL-USE RFC M README 2011-12-02 17:05:31 +0200 Timo Sirainen (ed3549264) Implemented IMAP SPECIAL-USE extension. M configure.in M src/imap/cmd-list.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mailbox-list-iter.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.h 2011-12-02 16:22:31 +0200 Timo Sirainen (eb1572d7c) Moved autocreate plugin functionality into lib-storage. The autocreate plugin is still used for backwards compatibility. Mailboxes can be configured like: mailbox Sent { auto = subscribe } mailbox Spam { auto = create } M src/config/settings-get.pl M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-iter.c M src/lib-storage/mailbox-list-private.h M src/plugins/autocreate/autocreate-plugin.c 2011-12-02 14:49:08 +0200 Timo Sirainen (7ff6268cc) lib-storage: Added pool to struct mailbox_list_iterate_context. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/mailbox-list-private.h M src/plugins/acl/acl-mailbox-list.c 2011-12-02 14:23:47 +0200 Timo Sirainen (13d98ffa5) lib-storage: Moved mailbox list iteration functions to a separate file. M src/lib-storage/Makefile.am A src/lib-storage/mailbox-list-iter.c M src/lib-storage/mailbox-list.c 2011-12-02 13:12:16 +0200 Timo Sirainen (aaea3addd) imapc: Check for when to prefer LOGIN to AUTHENTICATE was wrong. M src/lib-imap-client/imapc-connection.c 2011-12-01 09:24:58 +0200 Timo Sirainen (166e683c2) imapc: If remote server disconnects, log the reason. M src/lib-imap-client/imapc-connection.c 2011-12-01 09:15:53 +0200 Timo Sirainen (353fbc1e0) auth: Fixed loading authdb_imap plugin when Dovecot is configured --without-shared-libs M src/auth/Makefile.am 2011-11-30 18:48:44 +0200 Timo Sirainen (2bcf783de) auth: Mention auth_worker_max_count in warning message about worker queue being slow. M src/auth/auth-worker-server.c 2011-11-25 04:25:09 +0200 Timo Sirainen (bd49b2e35) fts-lucene: Fixed search when all terms were MUST_NOT. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-11-24 21:27:19 +0200 Timo Sirainen (51fb71048) auth: Dropped default client_limit back to default_client_limit. Having it above 1024 logs an annoying warning at startup. Also in most cases the auth process wouldn't have nearly that many clients. If about 1000 imap/pop3 processes were logging in at the exact same time, the limit would be reached, but that's a bit unlikely. M src/auth/auth-settings.c 2011-11-24 03:05:54 +0200 Timo Sirainen (aa43e22ff) NEWS, README: Added SCRAM-SHA-1 support. M NEWS M README 2011-11-24 02:36:32 +0200 Timo Sirainen (af2ba5826) Added signature for changeset 18f32bf70fac M .hgsigs 2011-11-24 02:36:29 +0200 Timo Sirainen (16c77a6fa) Added tag 2.1.rc1 for changeset 18f32bf70fac M .hgtags 2011-11-24 02:36:29 +0200 Timo Sirainen (832f5c58c) Released v2.1.rc1. M NEWS M configure.in 2011-11-24 02:21:08 +0200 Timo Sirainen (f6611f125) man: mailbox[-guid] doesn't need to be first parameter in search query. M doc/man/doveadm-search-query.7 2011-11-24 02:13:13 +0200 Timo Sirainen (d8fc47550) Makefile: Added missing hmac-sha1.h M src/lib/Makefile.am 2011-11-24 02:06:45 +0200 Timo Sirainen (8a0641e05) lib-lda: Use ostream corking better in LMTP/SMTP client. M src/lib-lda/lmtp-client.c 2011-11-24 01:58:28 +0200 Timo Sirainen (f187a8c7e) TODO updated M TODO 2011-11-24 01:53:04 +0200 Timo Sirainen (5a3e9d125) example-config: Added ssl_crypto_device. M doc/example-config/conf.d/10-ssl.conf 2011-11-24 01:50:35 +0200 Timo Sirainen (11bbebd9f) imapc: Pass ssl_crypto_device setting to lib-ssl-iostream. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2011-11-24 01:49:58 +0200 Timo Sirainen (cd5d9e833) lib-ssl-iostream: Added crypto_device setting to set OpenSSL engine. Multiple engines aren't supported, so the first crypto_device value gets used for all SSL connections. M src/lib-ssl-iostream/iostream-openssl-context.c M src/lib-ssl-iostream/iostream-ssl.h 2011-11-24 01:49:40 +0200 Timo Sirainen (de82dd401) login: Do engine cleanups _after_ finishing the used engine. M src/login-common/ssl-proxy-openssl.c 2011-11-24 01:45:59 +0200 Timo Sirainen (58080063f) login: Added ssl_crypto_device setting to set OpenSSL engine. M src/login-common/login-settings.c M src/login-common/login-settings.h M src/login-common/ssl-proxy-openssl.c 2011-11-24 01:45:09 +0200 Timo Sirainen (aebfda1f6) login: Save final SASL reply to client struct. M src/login-common/client-common.h M src/login-common/sasl-server.c 2011-11-24 01:34:02 +0200 Timo Sirainen (8060dd5ea) lib-ssl-iostream: Call OpenSSL_add_all_algorithms() to make some OpenSSL versions happy. M src/lib-ssl-iostream/iostream-openssl-context.c 2011-11-24 01:12:33 +0200 Timo Sirainen (a30669826) auth: LDAP iterate's debug message didn't use expanded base string. M src/auth/userdb-ldap.c 2011-11-24 00:53:37 +0200 Timo Sirainen (9f6da3b2a) lib-storage: Getting headers as UTF-8 could have returned garbage for multi-line headers. M src/lib-storage/index/index-mail-headers.c 2011-11-24 00:52:09 +0200 Timo Sirainen (afa4eb029) login: Use AUTH_REQUEST_FLAG_SUPPORT_FINAL_RESP if protocol supports it. M src/imap-login/client.c M src/login-common/login-common.h M src/login-common/sasl-server.c M src/pop3-login/client.c 2011-11-24 00:51:41 +0200 Timo Sirainen (38505846b) lib-auth: Added AUTH_REQUEST_FLAG_SUPPORT_FINAL_RESP flag. M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h 2011-11-24 00:51:27 +0200 Timo Sirainen (723b179c9) auth: If client gives "final-resp-ok" parameter, send it in OK reply with DIGEST-MD5, SCRAM-SHA-1 M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/mech-digest-md5.c M src/auth/mech-scram-sha1.c 2011-11-23 22:55:57 +0200 Timo Sirainen (3ef451dc7) auth: Cleanups, fix and Dovecot code-stylifications to SCRAM-SHA-1. M src/auth/mech-scram-sha1.c 2011-10-30 12:39:53 +0100 Dennis Schridde (a5abb99ca) Add DOVECOT_PREREQ to src/lib/macros.h - convenience macro to test the version of dovecot M src/lib/macros.h 2011-10-30 12:23:28 +0100 Dennis Schridde (00d1c8619) Add macros DOVECOT_VERSION_{MAJOR,MINOR} to config.h to allow version checks in the preprocessor Version number set as PACKAGE_VERSION is assumed to be D.D* with D=digits M configure.in 2011-09-16 02:24:00 +0200 Florian Zeitz (15cb95494) auth: Implement the SCRAM-SHA-1 SASL mechanism M src/auth/Makefile.am A src/auth/mech-scram-sha1.c M src/auth/mech.c 2011-09-16 02:22:49 +0200 Florian Zeitz (a3350c34a) lib: Add hmac-sha1 adapted from hmac-md5 M src/lib/Makefile.am A src/lib/hmac-sha1.c A src/lib/hmac-sha1.h 2011-11-23 22:08:09 +0200 Timo Sirainen (665e9d14c) lib-auth: auth_master_user_list_init() now takes user_mask and info parameters. These are passed to auth process, which may use them to limit what usernames are returned. M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/lib-auth/auth-master.c M src/lib-auth/auth-master.h M src/lib-storage/mail-storage-service.c 2011-11-23 22:07:08 +0200 Timo Sirainen (e9371f899) auth: Support passing regular %variables to sql/ldap iterate queries. M src/auth/auth-master-connection.c M src/auth/auth-settings.c M src/auth/auth-worker-client.c M src/auth/userdb-blocking.c M src/auth/userdb-blocking.h M src/auth/userdb-ldap.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-sql.c M src/auth/userdb.h 2011-11-23 21:40:04 +0200 Timo Sirainen (726e5e808) auth: Don't leak memory in deinit. M src/auth/main.c 2011-11-23 21:14:11 +0200 Timo Sirainen (82883d006) Compiler warning fix M src/master/master-settings.c 2011-11-23 20:31:40 +0200 Timo Sirainen (742b9a0fc) lib-auth: Log a warning about auth disconnection only if there are pending requests. M src/lib-auth/auth-server-connection.c 2011-11-23 19:51:06 +0200 Timo Sirainen (ce7f8b30a) master: Log a warning at startup if fd limit is too low. M src/master/master-settings.c 2011-11-23 19:51:01 +0200 Timo Sirainen (9a3183f29) Added restrict_get_fd_limit() M src/lib/restrict-process-size.c M src/lib/restrict-process-size.h 2011-11-23 19:19:19 +0200 Timo Sirainen (eecb235c1) lib-storage: Track storage's all mailboxes to make it easier to debug if one isn't closed. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2011-11-23 19:11:13 +0200 Timo Sirainen (ad0df8e7d) Compile fix for some compilers. M src/anvil/anvil-connection.c 2011-11-23 19:10:34 +0200 Timo Sirainen (521dad64e) lib-index: Make sure we never go to infinite loop if fsck can't fix syncing problem. M src/lib-index/mail-index-sync.c 2011-11-23 19:04:15 +0200 Timo Sirainen (636468e8e) file_cache_set_size(): Cleanup properly after mmap() failure. M src/lib/file-cache.c 2011-11-23 19:01:28 +0200 Timo Sirainen (c2378fc4d) lib-index: Handle transaction log read errors separately from log corruption. M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-transaction-log.h 2011-11-23 17:01:51 +0200 Timo Sirainen (bfcca12a4) fts-lucene: Crashfix when compiled without stemmer. M src/plugins/fts-lucene/fts-lucene-plugin.c 2011-11-23 16:58:10 +0200 Timo Sirainen (c5a7be1b6) Compile fixes. M src/lib-imap-client/imapc-client.h M src/lib-storage/index/imapc/imapc-storage.c 2011-11-23 01:00:10 +0200 Timo Sirainen (bce078c0b) Compiling fix for non-gcc. M src/lib-imap-client/imapc-connection.c 2011-11-22 11:29:17 +0200 Timo Sirainen (b01280bda) imapc: Added assert to make sure callback is never NULL. M src/lib-imap-client/imapc-connection.c 2011-11-22 11:28:33 +0200 Timo Sirainen (13c96f61c) imapc: Crashfix after having idled for 29 mins without IDLE. M src/lib-imap-client/imapc-connection.c 2011-11-22 00:12:53 +0200 Timo Sirainen (714c6a150) mdbox: Don't assert-crash when having to open mail file during specific copying situations. M src/lib-storage/index/dbox-multi/mdbox-save.c 2011-11-21 23:26:46 +0200 Timo Sirainen (f05f569c2) doveadm dump: Added support for dumping dbox headers/metadata. M src/doveadm/Makefile.am A src/doveadm/doveadm-dump-dbox.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-dump.h 2011-11-21 23:26:41 +0200 Timo Sirainen (3c89294a5) dbox: Compiler warning fix if trying to include dbox-file.h directly. M src/lib-storage/index/dbox-common/dbox-file.h 2011-11-21 23:26:18 +0200 Timo Sirainen (c579e4abc) hex2dec(): Allow data to contain also lowercase hex characters. M src/lib/hex-dec.c 2011-11-21 22:43:19 +0200 Timo Sirainen (d5b030f57) dbox: Removed unused message type from header. M src/lib-storage/index/dbox-common/dbox-file.h 2011-11-19 23:42:05 +0200 Timo Sirainen (413079de9) login: Moved all i_fatal()s to preinit stage. This avoids a wrongly configured login process from rapidly respawning. M src/login-common/main.c 2011-11-19 23:41:50 +0200 Timo Sirainen (7ee226c2a) director: Moved all i_fatal()s to preinit stage. This avoids a wrongly configured director process from rapidly respawning. M src/director/main.c 2011-11-19 23:41:17 +0200 Timo Sirainen (3fc7d2bd2) auth: Moved all i_fatal()s to preinit stage. This avoids a wrongly configured auth process from rapidly respawning. M src/auth/auth.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c 2011-11-19 23:28:18 +0200 Timo Sirainen (a54cf831a) auth: Handle auth worker creation failure without killing the whole auth process. M src/auth/auth-worker-server.c 2011-11-19 23:15:19 +0200 Timo Sirainen (88c92ce2c) login: Show empty username in disconnect message. M src/login-common/client-common.c 2011-11-19 23:14:59 +0200 Timo Sirainen (a309a2b67) auth: If auth fails due to invalid username, send the username in the FAIL message. M src/auth/auth-request-handler.c 2011-11-19 23:04:54 +0200 Timo Sirainen (6998ca95b) login: Log a different disconnect message if client didn't finish SASL auth. M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2011-11-19 22:29:31 +0200 Timo Sirainen (2afb37869) env_clean(): Previous OSX compile fix broke the function completely. M src/lib/env-util.c 2011-11-19 21:48:14 +0200 Timo Sirainen (074014565) Compile fix for OSX. M src/lib/env-util.c 2011-11-19 05:06:10 +0200 Timo Sirainen (8fab907f3) doc: Removed auth-protocol.txt from Makefile. M doc/Makefile.am 2011-11-18 22:14:02 +0200 Timo Sirainen (905597627) doc: Removed auth-protocol.txt. A more up to date version is in wiki docs. D doc/auth-protocol.txt 2011-11-18 22:07:16 +0200 Timo Sirainen (ab122a3bb) auth: Don't allow auth clients to set internal auth request fields. This could have allowed attacker to bypass authentication if login process was first successfully attacked to allow arbitrary code execution. M src/auth/auth-master-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-request.h 2011-11-18 21:37:34 +0200 Timo Sirainen (3d99535d3) login: Call master_service_init_finish() later. This prevents automatic infinite process respawns if SSL initialization fails. M src/login-common/main.c 2011-11-18 21:35:52 +0200 Timo Sirainen (c444eeaa2) lib-master: Set service/client limits already in master_service_init() M src/lib-master/master-service.c 2011-11-18 21:31:15 +0200 Timo Sirainen (f45da0b45) login proxy: Added ssl_client_cert/key settings. The client cert is used sent to proxy destination server when SSL is used. M src/login-common/login-settings.c M src/login-common/login-settings.h M src/login-common/ssl-proxy-openssl.c 2011-11-18 16:22:44 +0200 Timo Sirainen (2cbef6f99) login: Added assert. M src/login-common/main.c 2011-11-18 16:16:34 +0200 Timo Sirainen (7c849dbc7) login: Differentiate between auth failure and auth process communication failure. Log a warning if auth connection dies. M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h M src/lib-auth/auth-server-connection.c M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2011-11-18 16:15:24 +0200 Timo Sirainen (a7e2c9856) auth: Log a warning if auth client disconnects while it still has pending requests. M src/auth/auth-client-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request-handler.h 2011-11-18 15:52:23 +0200 Timo Sirainen (2aac7ca85) login: Minor potential authentication fix when service_count>1 M src/login-common/client-common.c M src/login-common/login-common.h M src/login-common/main.c 2011-11-17 02:02:30 +0200 Timo Sirainen (3653420a1) login: Fixed a memory leak when SSL client connection was closed uncleanly. M src/login-common/ssl-proxy-openssl.c 2011-11-17 00:49:30 +0200 Timo Sirainen (a710cb439) passdb vpopmail: Fix to handling mixed cleartext/crypt passwords. M src/auth/passdb-vpopmail.c 2011-11-17 00:41:15 +0200 Timo Sirainen (6272526ac) login proxy: Don't fail connection if CRL isn't found for some certificate. M src/login-common/ssl-proxy-openssl.c 2011-11-16 22:59:36 +0200 Timo Sirainen (5cc9289a9) i_getgr*(): Use a generic workaround for all OSes that report too small grbuf size. M src/lib/ipwd.c 2011-11-16 22:13:35 +0200 Timo Sirainen (fdfb2153d) checkpassword: Export all auth %variables to AUTH_* environment. M src/auth/db-checkpassword.c 2011-11-16 20:24:07 +0200 Timo Sirainen (d16cbc755) lmtp: Include local/remote port in userdb lookups. M src/lmtp/commands.c 2011-11-16 20:23:50 +0200 Timo Sirainen (27ca6cb05) lib-storage: Added local/remote port to struct mail_storage_service_input for userdb lookups. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2011-11-16 20:00:37 +0200 Timo Sirainen (6e7954b94) lib-storage: Fixed listing subscriptions from prefix!="" namespace M src/lib-storage/list/mailbox-list-subscriptions.c 2011-11-16 19:48:01 +0200 Timo Sirainen (1227ccfc6) lib-storage: Fixed error handling for mailbox_set_subscribed() M src/lib-storage/mail-storage.c 2011-11-16 19:39:33 +0200 Timo Sirainen (708efcd85) lib-storage: Fixed using "auto" driver with shared namespaces. M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/index/shared/shared-storage.h 2011-11-16 19:39:18 +0200 Timo Sirainen (259c34523) lib-storage: Improved storage creation failure error message for "auto" driver. M src/lib-storage/mail-storage.c 2011-11-16 19:38:55 +0200 Timo Sirainen (f8e4a8eac) lib-storage: Crashfix for "auto" driver in some situations. M src/lib-storage/mail-storage.c 2011-11-16 19:38:16 +0200 Timo Sirainen (810321fb7) lib-storage: Use namespace owner user's home dir for autodetection (for shared namespaces). M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c 2011-11-16 19:14:43 +0200 Timo Sirainen (56c122d8f) man: Dovecot version numbers updated. M doc/man/doveadm-altmove.1.in M doc/man/doveadm-auth.1.in M doc/man/doveadm-director.1.in M doc/man/doveadm-dump.1.in M doc/man/doveadm-expunge.1.in M doc/man/doveadm-fetch.1.in M doc/man/doveadm-force-resync.1.in M doc/man/doveadm-help.1.in M doc/man/doveadm-import.1.in M doc/man/doveadm-index.1.in M doc/man/doveadm-kick.1.in M doc/man/doveadm-log.1.in M doc/man/doveadm-mailbox.1.in M doc/man/doveadm-move.1.in M doc/man/doveadm-penalty.1.in M doc/man/doveadm-purge.1.in M doc/man/doveadm-pw.1.in M doc/man/doveadm-quota.1.in M doc/man/doveadm-search-query.7 M doc/man/doveadm-search.1.in M doc/man/doveadm-user.1.in M doc/man/doveadm-who.1.in M doc/man/doveadm.1.in M doc/man/doveconf.1.in M doc/man/dovecot-lda.1.in M doc/man/dovecot.1.in M doc/man/dsync.1.in 2011-11-16 19:06:20 +0200 Timo Sirainen (626e38397) config: Skip spaces between '<' and value in "key=< value" M src/config/config-parser.c 2011-11-16 19:04:31 +0200 Timo Sirainen (2806f15ce) master: Don't log errors at shutdown about services' "command startup failed". M src/master/service-monitor.c 2011-11-16 18:15:46 +0200 Timo Sirainen (28dae6a00) login: Improved auth failed log messages. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2011-11-16 00:28:32 +0200 Timo Sirainen (9ab62bfdf) man: Fixes to previous doveadm-search-query.7 change. M doc/man/doveadm-search-query.7 2011-11-15 22:24:18 +0200 Timo Sirainen (208f88fd3) man: Updated doveadm-search-query.7 to include MAILBOX[-GUID] as search keys. M doc/man/doveadm-search-query.7 2011-11-15 20:58:48 +0200 Timo Sirainen (904324b95) master: Don't throttle successfully started services just because their processes didn't have clients. M src/master/service-monitor.c 2011-11-15 20:56:59 +0200 Timo Sirainen (5bbcbf504) stats: If process has crashed/restarted, hide initial "missing session GUID" warnings. M src/stats/mail-session.c 2011-11-15 18:29:52 +0200 Timo Sirainen (c886132f8) configure: Don't reorder --with-storages values. The ordering is used for storage autodetection. M configure.in 2011-11-15 18:29:14 +0200 Timo Sirainen (13307d0b3) mdbox: Added support for autodetection of ~/mdbox/ as mdbox storage. M src/lib-storage/index/dbox-multi/mdbox-storage.c 2011-11-15 18:21:39 +0200 Timo Sirainen (c5ae8a7c2) lib-storage: Added "auto" mail storage driver for forcing autodetection. M src/lib-storage/mail-storage.c 2011-11-15 17:40:13 +0200 Timo Sirainen (e1ba13485) stats: Freeing a user didn't remove it from hash table, leading to crash later. M src/stats/mail-user.c 2011-11-15 00:34:00 +0200 Timo Sirainen (80bcc6caa) maildir: Added maildir_broken_filename_sizes setting. M doc/example-config/conf.d/10-mail.conf M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-settings.h 2011-11-15 00:05:50 +0200 Timo Sirainen (3ec3632e1) maildir: When noticing invalid 'S' in filename, replace it with the correct one instead of removing it. M src/lib-storage/index/maildir/maildir-mail.c 2011-11-14 23:15:37 +0200 Timo Sirainen (c632d130d) imap-stats: Don't send IDLE command updates to stats service. M src/plugins/imap-stats/imap-stats-plugin.c 2011-11-14 23:15:17 +0200 Timo Sirainen (fb9509f2a) stats: Forcibly free command after running for 15 minutes without updates. M src/stats/mail-command.c 2011-11-09 22:58:38 +0200 Timo Sirainen (39200631b) maildir++: If listing finds non-mUTF7/UTF8 mailbox dir, rename it instead of assert-crashing later. M src/lib-storage/list/mailbox-list-maildir-iter.c 2011-11-09 18:33:59 +0200 Timo Sirainen (1a7f09949) master: Increase process count limit (ulimit -u) at startup high enough that we don't reach it. M src/master/main.c 2011-11-09 18:30:27 +0200 Timo Sirainen (9ebd0c59d) restrict_process_size() API changes. M src/lib/restrict-process-size.c M src/lib/restrict-process-size.h M src/login-common/main.c M src/master/service-process.c 2011-11-09 18:20:51 +0200 Timo Sirainen (4b5ba5014) restrict_access*(): If setuid() fails with EAGAIN, suggest ulimit -u being the problem. M src/lib/restrict-access.c 2011-11-09 18:14:04 +0200 Timo Sirainen (ef56d74af) imap/pop3-login: Use default_vsz_limit instead of adding our own. There's not a huge difference between 64 MB and the default 256 MB, and this change makes it easier to change the default limit globally. M src/imap-login/imap-login-settings.c M src/pop3-login/pop3-login-settings.c 2011-11-09 18:07:28 +0200 Timo Sirainen (59b7dc264) master: vsz_limit enforcement was done for 1024 times too much memory. M src/master/service-process.c 2011-11-09 18:05:25 +0200 Timo Sirainen (e960fec8b) lmtp: Default vsz_limit wasn't used for lmtp service. M src/lmtp/lmtp-settings.c 2011-11-09 14:15:18 +0200 Timo Sirainen (b12b6da6f) maildir: When fixing broken size in filename, try harder to find the latest filename. M src/lib-storage/index/maildir/maildir-mail.c 2011-11-09 13:24:49 +0200 Timo Sirainen (2bde8972f) maildir: Whenever we're guessing a filename correctly, remember it in uidlist. M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-uidlist.h M src/lib-storage/index/maildir/maildir-util.c 2011-11-09 12:55:37 +0200 Timo Sirainen (876a944ce) maildir: When renaming filename due to broken size, don't forget message flags. M src/lib-storage/index/maildir/maildir-mail.c 2011-11-09 00:10:07 +0200 Timo Sirainen (aecb97354) Added signature for changeset 437ae2c24872 M .hgsigs 2011-11-09 00:10:04 +0200 Timo Sirainen (5c63c7f57) Added tag 2.1.beta1 for changeset 437ae2c24872 M .hgtags 2011-11-09 00:10:04 +0200 Timo Sirainen (25af25293) Released v2.1.beta1. M NEWS M configure.in 2011-11-09 00:09:35 +0200 Timo Sirainen (93b7a2177) Make static analyzer happier. M src/lib-storage/list/mailbox-list-index-sync.c 2011-11-08 23:45:05 +0200 Timo Sirainen (97fb0af49) TODO updated M TODO 2011-11-08 23:44:31 +0200 Timo Sirainen (6a4039270) README: Added FUZZY RFC. M README 2011-11-08 23:40:54 +0200 Timo Sirainen (831f3bcdd) login proxy: Verify that remote hostname matches SSL cert, unless ssl=any-cert M configure.in M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/login-common/Makefile.am M src/login-common/login-proxy.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/login-common/ssl-proxy.h 2011-11-08 22:49:57 +0200 Timo Sirainen (74ec4fe07) eacces_error_get*(): Crashfix for recent change. M src/lib/eacces-error.c 2011-11-08 22:38:36 +0200 Timo Sirainen (45799f834) maildir: Log less lines when removing broken sizes from filenames. M src/lib-storage/index/maildir/maildir-mail.c 2011-11-08 21:50:46 +0200 Timo Sirainen (e5097d2c8) master: Never create new processes for services that are being destroyed (reload, deinit) M src/master/service-process.c 2011-11-08 21:29:34 +0200 Timo Sirainen (843640f0c) login: If login fails for some reason, but auth was successful, don't log "auth failed". For example if proxy fails to connect to remote server. M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/sasl-server.c 2011-11-08 21:14:32 +0200 Timo Sirainen (9ec06bb0b) login proxy: Always log the username in the error messages. M src/login-common/login-proxy.c 2011-11-07 22:54:32 +0200 Timo Sirainen (8eefc42b2) auth: When complaining about auth-userdb permission errors, log also the wanted UID's name. M src/auth/auth-master-connection.c 2011-11-07 22:17:15 +0200 Timo Sirainen (4605fd7e1) indexer-worker: If indexes are disabled for a mailbox, do nothing but log a message. M src/indexer/master-connection.c 2011-11-07 20:45:55 +0200 Timo Sirainen (5d46f4d07) master: Fixed giving config socket path to anvil process. M src/master/service-process.c 2011-11-05 20:35:56 +0200 Timo Sirainen (5d1ae898c) configure: Use libtool's -no-undefined flag instead of attempting it ourself. Patch by Brad. M configure.in 2011-11-05 19:59:55 +0200 Timo Sirainen (a47889031) doveadm import: Added -s parameter to subscribe to created mailboxes. M src/doveadm/doveadm-mail-import.c 2011-11-05 19:37:23 +0200 Timo Sirainen (a03eb91f2) dsync: Set user to be admin to ignore quota limits. M src/dsync/dsync.c 2011-11-05 19:37:02 +0200 Timo Sirainen (97daba822) quota: Ignore quota limits for admin users. M src/plugins/quota/quota.c 2011-11-05 19:17:59 +0200 Timo Sirainen (1c7b0cbdb) master: Wait for services to stop listening before unlinking the pid file. M src/master/main.c M src/master/service-monitor.c M src/master/service-monitor.h M src/master/service.c M src/master/service.h 2011-11-05 17:59:11 +0200 Timo Sirainen (969c10cf5) fts-lucene: Use FTS_BACKEND_FLAG_BUILD_FULL_WORDS flag. M src/plugins/fts-lucene/fts-backend-lucene.c 2011-11-05 17:58:50 +0200 Timo Sirainen (84f447a23) fts: Added FTS_BACKEND_FLAG_BUILD_FULL_WORDS for sending data to backends only in full words. M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-build-mail.c 2011-11-05 17:31:47 +0200 Timo Sirainen (65a67a3c1) fts-lucene: Optimize searching for existence of an indexed header. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-11-05 17:30:55 +0200 Timo Sirainen (d29454366) fts-lucene: Index the header name tokenized, or we can't search it. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-11-05 17:11:40 +0200 Timo Sirainen (1c8457afb) fts-lucene: Fixed handling "maybe" queries (unindexed headers) M src/plugins/fts-lucene/lucene-wrapper.cc 2011-11-04 21:57:05 +0000 Pascal Volk (e5c06764e) man: Added -f option to doveadm-user.1. M doc/man/doveadm-user.1.in 2011-11-05 00:07:14 +0200 Timo Sirainen (c53a0a298) Use SSL_MODE_RELEASE_BUFFERS if available to keep memory usage low. Based on patch by Cristian Rodríguez. M src/login-common/ssl-proxy-openssl.c 2011-11-05 00:00:49 +0200 Timo Sirainen (1906aead3) lmtp: Changed default client_limit to 1. LMTP processes can wait a long time on disk I/O, so a single process will be busy waiting long before it reaches default_client_limit (100). M src/lmtp/lmtp-settings.c 2011-11-04 21:21:11 +0200 Timo Sirainen (ee773c0f9) imapc: When doing a LIST, delete any extra local mailbox (index) directories. M src/lib-storage/index/imapc/imapc-list.c 2011-11-04 21:20:19 +0200 Timo Sirainen (7cf1c7dd3) imapc: Don't use separate indexes/ directory anymore. Fixes/cleanups to make it possible. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2011-11-04 21:17:09 +0200 Timo Sirainen (f86a9203b) imapc: If rawlog directory doesn't exist, silently ignore it. M src/lib-imap-client/imapc-connection.c 2011-11-04 20:36:28 +0200 Timo Sirainen (8e69d321c) imapc: Index files weren't deleted when mailbox was deleted. M src/lib-storage/index/imapc/imapc-list.c 2011-11-04 20:36:06 +0200 Timo Sirainen (fd057522c) lib-storage: Added MAILBOX_LIST_FLAG_OPTIONAL_BOXES flag. M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mailbox-list.h 2011-11-04 20:11:39 +0200 Timo Sirainen (ab96e72a5) anvil: Handle crash restarts without failing completely. M src/anvil/anvil-connection.c M src/anvil/common.h M src/anvil/main.c M src/master/service-anvil.c M src/master/service-anvil.h M src/master/service-process.c 2011-11-04 19:52:26 +0200 Timo Sirainen (0374f48ba) doveadm dump index: Dump also mime.parts decoded. M src/doveadm/doveadm-dump-index.c 2011-11-04 19:35:30 +0200 Timo Sirainen (2e5d62401) fts-lucene: Added whitespace_chars subsetting to fts_lucene. A value of "@." could be useful so that user@domain.tld allows searching user, domain and tld separately instead of requiring the whole string to match. M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/fts-lucene-plugin.h M src/plugins/fts-lucene/lucene-wrapper.cc 2011-11-04 18:50:24 +0200 Timo Sirainen (93e742e81) eacces_error_get*(): Log if group has r/w permissions, but we don't belong to it. M src/lib/eacces-error.c 2011-10-25 22:58:48 +0300 Timo Sirainen (2f6a8ef44) master: Assert-crashfix when service process limit was reached. Introduced by commit fddbb26400d0. M src/master/service-monitor.c 2011-10-25 21:44:38 +0300 Timo Sirainen (93c3674da) login: When renegotiating SSL handshake, don't reread settings when TLS SNI is used. M src/login-common/client-common.h M src/login-common/ssl-proxy-openssl.c 2011-10-25 21:41:28 +0300 Timo Sirainen (34228421f) login: Increased client's initial memory pool size. M src/login-common/main.c 2011-10-20 18:37:09 +0300 Timo Sirainen (acef354e7) master: When process_limit fills up, wait 10s before closing pending connections. It might have only been a temporary burst that gets resolved quickly enough. M src/master/service-monitor.c M src/master/service.h 2011-10-20 18:26:15 +0300 Timo Sirainen (605cce7e4) master: Reset service's listen_pending flag when it gets a new available process. M src/master/service-monitor.c 2011-10-20 16:54:36 +0300 Timo Sirainen (05b24d001) imapc: Fixed reopening a mailbox. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h 2011-10-19 16:11:44 +0300 Timo Sirainen (d336f5960) auth: passdb static crashed if no password was given M src/auth/passdb-static.c 2011-10-18 16:53:06 +0300 Timo Sirainen (de4e3a2e1) maildir: If maildir filename has broken W/S size, rename the file to drop them. M src/lib-storage/index/maildir/maildir-mail.c 2011-10-18 16:52:23 +0300 Timo Sirainen (601c1dd3a) istream-mail: Call mail_cache_set_corrupted() properly M src/lib-storage/index/istream-mail.c 2011-10-17 15:35:54 +0300 Timo Sirainen (357797549) imapc: Added imapc_ssl_verify setting. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2011-10-12 19:09:02 +0300 Timo Sirainen (9c0716dfc) mail-log: Use mail_log_update_wanted_fields() to avoid parsing message multiple times. M src/plugins/mail-log/mail-log-plugin.c 2011-10-12 19:08:31 +0300 Timo Sirainen (ecd69c4e8) lib-storage: Added mail_log_update_wanted_fields() M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/lib-storage/test-mail.c M src/plugins/virtual/virtual-mail.c 2011-10-12 17:21:01 +0300 Timo Sirainen (72c25bce6) mdbox rebuild: Log an error whenever opening a mailbox fails. M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2011-10-12 19:07:07 +0300 Timo Sirainen (0b5cf161d) imapc: Mail body wasn't always prefetched when it should have been. M src/lib-storage/index/imapc/imapc-mail.c 2011-10-09 20:46:53 +0300 Timo Sirainen (019ae3c13) imapc: When asking for capabilities, try to ask from a logged in connection. M src/lib-imap-client/imapc-client.c 2011-10-09 20:46:28 +0300 Timo Sirainen (a20216560) imapc: Post-login capabilities weren't detected/used. M src/lib-imap-client/imapc-connection.c 2011-10-09 20:38:11 +0300 Timo Sirainen (f87844c40) imapc: Support retrying some IMAP commands if we get disconnected. M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/imapc/imapc-sync.h 2011-10-09 20:36:28 +0300 Timo Sirainen (428fb4dc3) lib-imap: Added reference counting to imap parser. M src/director/director-test.c M src/imap-login/client.c M src/imap/cmd-append.c M src/imap/imap-client.c M src/lib-imap-client/imapc-connection.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-parser.h M src/lib-imap/test-imap-parser.c M src/plugins/virtual/virtual-config.c 2011-10-09 19:04:27 +0300 Timo Sirainen (b2048c45f) imapc: Mailbox reopening fix. M src/lib-storage/index/imapc/imapc-storage.c 2011-10-09 19:04:15 +0300 Timo Sirainen (f4ec0cc44) imapc: Fixed expunging too many messages from index. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-10-09 18:27:54 +0300 Timo Sirainen (4a4fe31b3) imapc: Better implementation of checking if index is missing messages. M src/lib-storage/index/imapc/imapc-sync.c 2011-10-09 18:25:18 +0300 Timo Sirainen (922fc890d) imapc: Fixes to sending commands. M src/lib-imap-client/imapc-connection.c 2011-10-09 17:15:31 +0300 Timo Sirainen (b50e80d23) imapc: Fixed detecting when messages are missing from index. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2011-10-09 16:41:17 +0300 Timo Sirainen (edcd6f722) imapc: Initial support for automatically reconnecting to remote server. M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h M src/lib-imap-client/imapc-msgmap.c M src/lib-imap-client/imapc-msgmap.h M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-10-08 20:31:22 +0300 Timo Sirainen (34bc7b583) imapc: Fixed updating message flags from another session. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-10-07 21:15:52 +0300 Timo Sirainen (c33cf2266) imapc: Fixed handling keywords. The status->keywords must point to mail_index's keywords. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-10-07 21:14:58 +0300 Timo Sirainen (dcb96a0dc) imapc: Detect when message has been unexpectedly expunged from index. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-10-07 20:50:02 +0300 Timo Sirainen (476956367) imapc: IDLE didn't notify immediately about new mails. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-10-07 20:49:32 +0300 Timo Sirainen (f5be4f5b4) imapc: Code cleanup: avoid unnecessarily accessing imapc-client-private.h M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-10-07 20:34:53 +0300 Timo Sirainen (f084de14d) imapc: Removed unused "stop now" functionality. M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c 2011-10-07 20:31:57 +0300 Timo Sirainen (fb37a9b7b) imapc: Changed mailbox opening API to be more extensible. M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h M src/lib-storage/index/imapc/imapc-storage.c 2011-10-07 20:10:11 +0300 Timo Sirainen (81d3c215b) imapc: Command sending API changed to be more extensible. M src/lib-imap-client/imapc-client-private.h M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-imap-client/imapc-connection.c M src/lib-imap-client/imapc-connection.h M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c 2011-10-07 19:25:52 +0300 Timo Sirainen (e5a776932) auth: Don't re-add IO to master connection input. This fixes a panic crash in some situations. M src/auth/auth-master-connection.c 2011-10-07 18:18:20 +0300 Timo Sirainen (86a583378) auth: Improved "auth client doesn't have permissions to do .." errors. M src/auth/auth-master-connection.c M src/auth/auth-master-connection.h M src/auth/main.c 2011-10-05 18:47:56 +0300 Timo Sirainen (01fd545f6) pop3: When pop3_fast_size_lookups=yes, don't assume we need to fetch virtual size. This fixes prefetch unnecessarily opening mail files. M src/pop3/pop3-client.c 2011-10-05 17:55:29 +0300 Timo Sirainen (13f6c879a) imapc: Fixed fetching data for a saved, but uncommitted, mail. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-10-05 17:51:32 +0300 Timo Sirainen (8774548a2) lib-storage: Fixed reopening a mail stream. M src/lib-storage/index/index-mail.c 2011-10-05 17:51:01 +0300 Timo Sirainen (6ac48a429) imapc: Memory leak fixes. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mail-fetch.c 2011-10-05 17:34:51 +0300 Timo Sirainen (15979d112) imapc: Fixed closing mail properly. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2011-10-05 17:34:16 +0300 Timo Sirainen (9cc5bd056) imapc: Fixed potential assert-crash when saving a mail. M src/lib-storage/index/imapc/imapc-save.c 2011-10-05 17:21:46 +0300 Timo Sirainen (7e24f82fb) imapc: Fixed "Bad file descriptor" errors after mail was closed. M src/lib-storage/index/imapc/imapc-mail.c 2011-10-05 15:57:03 +0300 Timo Sirainen (5b6854f83) raw storage: Don't crash with mailbox_get_metadata() M src/lib-storage/index/raw/raw-storage.c 2011-10-04 17:22:55 +0300 Timo Sirainen (7c3f90095) lib-storage: Verify that cached message size matches actually read size. M src/lib-storage/index/Makefile.am M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h D src/lib-storage/index/istream-mail-stats.c D src/lib-storage/index/istream-mail-stats.h A src/lib-storage/index/istream-mail.c A src/lib-storage/index/istream-mail.h 2011-10-04 17:17:12 +0300 Timo Sirainen (6df0ab0c1) lib-storage: Added mail_get_hdr_stream() and use it where possible. This makes it clearer for backends when it needs a message body instead of only message header. M src/doveadm/doveadm-mail-fetch.c M src/imap/imap-fetch-body.c M src/lib-lda/mail-send.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-mail.h M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-search.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/lib-storage/test-mail.c M src/plugins/virtual/virtual-mail.c 2011-10-04 17:14:30 +0300 Timo Sirainen (0daf6ffdc) imapc: Mail body caching should be done at close(), not at free(). This cached wrong mail bodies when fetching multiple mails. M src/lib-storage/index/imapc/imapc-mail.c 2011-10-03 20:00:55 +0300 Timo Sirainen (c0ebeec35) script-login: Disable alarm after input has been read. M src/util/script-login.c 2011-10-02 20:26:02 +0300 Timo Sirainen (1fb1687d8) passdb vpopmail: Always prefer to lookup plaintext password if it exists. This is important when multiple auth mechanisms are used and the password is cached. M src/auth/passdb-vpopmail.c 2011-10-02 20:09:04 +0300 Timo Sirainen (8746285eb) mailbox list indexes: Get mailbox_get_metadata(guid) from index if possible. M src/lib-storage/list/mailbox-list-index-status.c 2011-10-02 20:06:58 +0300 Timo Sirainen (206ed2f6f) lib-storage: mailbox_get_metadata() no longer always opens mailbox. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-status.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/mail-storage.c M src/plugins/virtual/virtual-storage.c 2011-10-02 20:05:23 +0300 Timo Sirainen (4552316c4) lib-storage: Compile fix for recent change. M src/lib-storage/mail-storage.c 2011-10-02 18:54:32 +0300 Timo Sirainen (c59137aad) maildir: Maildir list index change check should always check index log changes. (Not only when maildir_very_dirty_syncs=no) M src/lib-storage/index/maildir/maildir-sync-index.c 2011-10-02 18:49:09 +0300 Timo Sirainen (167da29da) mailbox list indexes: Handle name="" mailboxes. M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c 2011-10-02 18:39:49 +0300 Timo Sirainen (93ec3b0c4) lib-storage: Mailbox list index's ext_id shouldn't be cached in mail_storage. It's mailbox_list-specific, not mail_storage-specific. The easiest fix was to just cache it into mailbox rather than create a new index_mailbox_list. M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/mail-storage-private.h 2011-10-02 18:30:32 +0300 Timo Sirainen (0daea62c1) mailbox list indexes: Added comment. M src/lib-storage/list/mailbox-list-index.h 2011-10-02 18:12:05 +0300 Timo Sirainen (7887dbfe6) mailbox list indexes: Code cleanups. M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2011-10-02 17:48:23 +0300 Timo Sirainen (3a78410fa) mailbox list indexes: Error handling fixes. M src/lib-storage/list/mailbox-list-index-status.c M src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2011-10-02 17:34:49 +0300 Timo Sirainen (39140d628) mailbox list indexes: Moved syncing code to separate file. M src/lib-storage/list/Makefile.am A src/lib-storage/list/mailbox-list-index-sync.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2011-10-02 17:18:31 +0300 Timo Sirainen (66e1cf501) mailbox list indexes: Moved iteration code to separate file. M src/lib-storage/list/Makefile.am A src/lib-storage/list/mailbox-list-index-iter.c M src/lib-storage/list/mailbox-list-index.c M src/lib-storage/list/mailbox-list-index.h 2011-10-02 17:12:58 +0300 Timo Sirainen (9afe1b3ac) Renamed index-mailbox-list* to mailbox-list-index* M src/lib-storage/list/Makefile.am R089 src/lib-storage/list/index-mailbox-list-status.c src/lib-storage/list/mailbox-list-index-status.c R071 src/lib-storage/list/index-mailbox-list.c src/lib-storage/list/mailbox-list-index.c R067 src/lib-storage/list/index-mailbox-list.h src/lib-storage/list/mailbox-list-index.h M src/lib-storage/register/Makefile.am 2011-10-02 16:59:51 +0300 Timo Sirainen (0fe375928) mailbox list indexes: Disable index files for shared/public namespaces. M src/lib-storage/list/index-mailbox-list.c 2011-10-02 16:55:45 +0300 Timo Sirainen (684273742) mailbox list indexes: Use storage names instead of virtual names. M src/lib-storage/list/index-mailbox-list-status.c M src/lib-storage/list/index-mailbox-list.c M src/lib-storage/list/index-mailbox-list.h 2011-10-02 16:51:40 +0300 Timo Sirainen (8aa609890) lmtp: Code cleanup. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c 2011-10-02 16:47:25 +0300 Timo Sirainen (accc2e8b5) lda: Code cleanups M src/lda/main.c 2011-10-02 16:35:22 +0300 Timo Sirainen (15dd1857d) lda/lmtp: Moved common raw mailbox allocation code to raw-storage. M src/lda/main.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-storage.h M src/lmtp/commands.c 2011-10-02 16:34:41 +0300 Timo Sirainen (a12817443) lib-storage: Keep mail_user referenced while storage objects exist. This allows unreferencing mail_user after mailbox_alloc() and having it freed on mailbox_free(). M src/lib-storage/mail-storage.c 2011-10-02 16:33:51 +0300 Timo Sirainen (b7fa2a016) ioloop: Memory leak fix on ioloop destroy. M src/lib/ioloop.c 2011-10-02 16:32:59 +0300 Timo Sirainen (c1d4780bc) istream-seekable: Memory leak fix. M src/lib/istream-seekable.c 2011-10-02 16:03:10 +0300 Timo Sirainen (34e9dfbce) lda/lmtp: Moved raw user creation code to common raw_storage_create_from_set() M src/lda/main.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-storage.h M src/lmtp/client.c 2011-10-02 15:39:45 +0300 Timo Sirainen (940871157) mailbox list index: Minor code cleanup. M src/lib-storage/list/index-mailbox-list-status.c 2011-10-01 17:55:18 +0300 Timo Sirainen (cdf00df4d) imapc: Changed imapc_client_mailbox_cmd() parameter order to be same as in _cmdf(). M src/lib-imap-client/imapc-client.c M src/lib-imap-client/imapc-client.h M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c 2011-10-01 17:54:57 +0300 Timo Sirainen (92daf55a7) imapc: Don't assert-crash when receiving 0 size literal. M src/lib-imap-client/imapc-connection.c 2011-10-01 17:47:35 +0300 Timo Sirainen (17f2b2643) imapc: Make sure "is mail expunged?" NOOP is sent to correct connection. (Although currently there are never more than a single connection.) M src/lib-storage/index/imapc/imapc-mail.c 2011-10-01 17:41:12 +0300 Timo Sirainen (97ff916ad) imapc: Make sure mail cache is freed when mailbox is closed. M src/lib-storage/index/imapc/imapc-storage.c 2011-10-01 17:34:39 +0300 Timo Sirainen (966cb0c1a) auth: Lazily load authdb_* and mech_* plugins only when they're needed. M src/auth/auth-common.h M src/auth/main.c M src/auth/mech.c M src/auth/passdb.c M src/auth/userdb.c 2011-10-01 17:24:09 +0300 Timo Sirainen (7732d9fdf) auth: Renamed passdb_imap plugin to authdb_imap. M src/auth/Makefile.am M src/auth/passdb-imap.c 2011-10-01 17:22:44 +0300 Timo Sirainen (39d3ce140) module_dir_load*(): Support filtering and ignoring missing modules. M src/lib/module-dir.c M src/lib/module-dir.h 2011-10-01 17:09:00 +0300 Timo Sirainen (ec892704d) Added ssl_protocols setting. M doc/example-config/conf.d/10-ssl.conf M src/login-common/login-settings.c M src/login-common/login-settings.h M src/login-common/ssl-proxy-openssl.c 2011-10-01 17:06:04 +0300 Timo Sirainen (269f79898) doveadm: Compile fix for previous auth change. M src/doveadm/doveadm-pw.c 2011-10-01 16:48:17 +0300 Timo Sirainen (ce6c2809b) auth: If password data isn't valid for specified scheme, give a better error message. M src/auth/auth-request.c M src/auth/passdb.c M src/auth/password-scheme.c M src/auth/password-scheme.h 2011-09-30 19:02:31 +0300 Timo Sirainen (cf48ae78f) imap: Memory leak fixes for invalid parameter handling. M src/imap/cmd-copy.c M src/imap/cmd-expunge.c M src/imap/cmd-store.c M src/imap/imap-search-args.c 2011-09-30 18:53:09 +0300 Timo Sirainen (b1a2d2042) imapc: Keep the last fetched message body cached until mailbox is closed. This primarily helps partial IMAP fetches so each partial fetch doesn't redownload the message body. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-09-30 18:19:17 +0300 Timo Sirainen (0d82d7744) imap: Moved partial fetch cache from static variable into struct client. M src/imap/imap-client.h M src/imap/imap-fetch-body.c 2011-09-30 15:54:20 +0300 Timo Sirainen (8363f50d7) maildir: Handle open() failing with ESTALE. M src/lib-storage/index/maildir/maildir-mail.c 2011-09-27 18:57:14 +0300 Timo Sirainen (8654934ad) stats: Mail commands were sorted in wrong order, so they were never removed from memory. M src/stats/client-export.c M src/stats/mail-command.c M src/stats/mail-command.h 2011-09-27 18:14:32 +0300 Timo Sirainen (d93f51bbd) pop3: Fixed POP3-order sorting. M src/pop3/pop3-client.c 2011-09-27 00:44:03 +0300 Timo Sirainen (132bd0d1d) stats: Compiler warning fixes. M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-session.c M src/stats/mail-user.c 2011-09-27 00:41:49 +0300 Timo Sirainen (f92826264) stats: Error message fix. M src/stats/mail-stats.c 2011-09-27 00:12:49 +0300 Timo Sirainen (28aa68ccb) Compile fix for Solaris. M src/lib/network.c 2011-09-26 21:55:10 +0300 Timo Sirainen (ae1636c09) sdbox: Memory leak fix. M src/lib-storage/index/dbox-single/sdbox-sync.c 2011-09-26 15:36:21 +0300 Timo Sirainen (1da01eaa9) auth: Added passdb imap plugin. M src/auth/Makefile.am M src/auth/auth-settings.c M src/auth/auth-settings.h A src/auth/passdb-imap.c 2011-09-26 15:34:58 +0300 Timo Sirainen (503540420) Moved imapc-client into its own lib-imap-client library. M configure.in M src/Makefile.am A src/lib-imap-client/Makefile.am R084 src/lib-storage/index/imapc/imapc-client-private.h src/lib-imap-client/imapc-client-private.h R090 src/lib-storage/index/imapc/imapc-client.c src/lib-imap-client/imapc-client.c R096 src/lib-storage/index/imapc/imapc-client.h src/lib-imap-client/imapc-client.h R096 src/lib-storage/index/imapc/imapc-connection.c src/lib-imap-client/imapc-connection.c R093 src/lib-storage/index/imapc/imapc-connection.h src/lib-imap-client/imapc-connection.h R100 src/lib-storage/index/imapc/imapc-msgmap.c src/lib-imap-client/imapc-msgmap.c R100 src/lib-storage/index/imapc/imapc-msgmap.h src/lib-imap-client/imapc-msgmap.h M src/lib-storage/index/imapc/Makefile.am 2011-09-25 22:32:04 +0000 Pascal Volk (f6b42d683) man: Added doveadm move. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-move.1.in M doc/man/doveadm.1.in 2011-09-23 16:07:29 +0300 Timo Sirainen (6e03a5750) stats: Make sure unfinished commands get freed when their session disconnects. M src/stats/mail-command.c 2011-09-23 15:01:57 +0300 Timo Sirainen (9757435c4) file_dotlock: And fix to previous change.. M src/lib/file-dotlock.c 2011-09-23 15:01:23 +0300 Timo Sirainen (bbebb157d) file_dotlock: Don't warn about changed mtime when it's 1 second. This is mainly to avoid bogus warnings with NFS and its caching. M src/lib/file-dotlock.c 2011-09-23 14:52:46 +0300 Timo Sirainen (e0cc94d52) maildir: Improved guessing filename when it's still in new/ dir. M src/lib-storage/index/maildir/maildir-util.c 2011-09-23 14:38:24 +0300 Timo Sirainen (51335acfa) maildir: Don't always drop new flag from files when syncing. M src/lib-storage/index/maildir/maildir-uidlist.c 2011-09-23 00:49:51 +0300 Timo Sirainen (fa106fc8f) lib-storage: mail_namespace_find_unalias() crashed when namespace wasn't found. M src/lib-storage/mail-namespace.c 2011-09-23 00:46:19 +0300 Timo Sirainen (30eb745a4) doveadm server: Previous non-authentication fix broken authentication. M src/doveadm/server-connection.c 2011-09-23 00:04:11 +0300 Timo Sirainen (c87e04390) fts: Support also RFC 2231 style parsing when finding the attachment filename. M src/plugins/fts/fts-parser-script.c 2011-09-22 23:59:48 +0300 Timo Sirainen (88013ee6d) fts: Fixed running attachment decoder scripts. M src/plugins/fts/fts-parser-script.c 2011-09-22 14:31:57 +0300 Timo Sirainen (aed004ef9) imapc: Fix to previous message saving change. M src/lib-storage/index/imapc/imapc-save.c 2011-09-22 14:24:03 +0300 Timo Sirainen (530f80fcb) imapc: Allow accessing a mail that is being saved without crashing. This fixes crashes with LDA, LMTP, mail_log plugin, etc. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h M src/lib-storage/index/imapc/imapc-save.c 2011-09-22 14:21:56 +0300 Timo Sirainen (afb49e8ad) iampc: Small code cleanup. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-09-22 13:09:18 +0300 Timo Sirainen (a37b4f6df) lib-mail: Added broken input workaround to rfc822_parse_content_param(). M src/lib-mail/rfc822-parser.c 2011-09-22 12:54:27 +0300 Timo Sirainen (baebb412a) login: Added -R parameter to write pre-login rawlogs to given directory. M src/login-common/client-common.c M src/login-common/login-common.h M src/login-common/main.c 2011-09-22 01:38:34 +0300 Timo Sirainen (b4b87fa19) login: "cert required, client didn't start TLS" error could have been logged wrongly. M src/login-common/client-common.c 2011-09-21 17:51:59 +0300 Timo Sirainen (1c1cecd3d) Added new mail_location setting "UTF8" to use UTF-8 instead of mUTF-7 in storage names. This basically changes mailbox names to be UTF-8 everywhere where they are mUTF-7 currently (filesystem, subscriptions, etc.) M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2011-09-21 16:18:19 +0300 Timo Sirainen (9efbd934e) imapc: Don't try to send literal stream output until its '+' has been received. M src/lib-storage/index/imapc/imapc-connection.c 2011-09-21 15:58:26 +0300 Timo Sirainen (0998339f5) imapc: Added imapc_rawlog_dir setting. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c 2011-09-21 15:57:57 +0300 Timo Sirainen (be6ad6e46) Added rawlog i/ostreams. M src/lib/Makefile.am A src/lib/iostream-rawlog-private.h A src/lib/iostream-rawlog.c A src/lib/iostream-rawlog.h A src/lib/istream-rawlog.c A src/lib/istream-rawlog.h A src/lib/ostream-rawlog.c A src/lib/ostream-rawlog.h 2011-09-21 15:54:06 +0300 Timo Sirainen (96f071012) lib-ssl-iostream: If flush wants to read, make sure the flush callback isn't being called again. M src/lib-ssl-iostream/ostream-openssl.c 2011-09-21 15:53:00 +0300 Timo Sirainen (f28583935) ostream: Keep track of flush callback for filter ostreams as well. M src/lib/ostream.c 2011-09-21 15:51:00 +0300 Timo Sirainen (9b2d78591) i_stream_next_line(): Don't fail if stream doesn't have write buffer, we can handle it. M src/lib/istream.c 2011-09-21 14:40:35 +0300 Timo Sirainen (e3678f7bf) Simplified creating filter ostreams. M src/lib-fs/ostream-cmp.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib/ostream-buffer.c M src/lib/ostream-file.c M src/lib/ostream-private.h M src/lib/ostream.c M src/plugins/zlib/ostream-bzlib.c M src/plugins/zlib/ostream-zlib.c 2011-09-21 13:56:13 +0300 Timo Sirainen (0536ccb51) Renamed lib/*-internal.h files to lib/*-private.h for consistency. M src/lib-fs/ostream-cmp.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c M src/lib-storage/index/istream-attachment.c M src/lib-storage/index/istream-mail-stats.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-test/test-common.c M src/lib/Makefile.am M src/lib/ioloop-epoll.c M src/lib/ioloop-iolist.c M src/lib/ioloop-kqueue.c M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-kqueue.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c R097 src/lib/ioloop-internal.h src/lib/ioloop-private.h M src/lib/ioloop-select.c M src/lib/ioloop.c R092 src/lib/iostream-internal.h src/lib/iostream-private.h M src/lib/iostream.c M src/lib/istream-base64-encoder.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-file.c M src/lib/istream-limit.c M src/lib/istream-mmap.c R095 src/lib/istream-internal.h src/lib/istream-private.h M src/lib/istream-seekable.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/ostream-buffer.c M src/lib/ostream-file.c R092 src/lib/ostream-internal.h src/lib/ostream-private.h M src/lib/ostream.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/plugins/zlib/istream-bzlib.c M src/plugins/zlib/istream-zlib.c M src/plugins/zlib/ostream-bzlib.c M src/plugins/zlib/ostream-zlib.c 2011-09-19 17:10:11 +0300 Timo Sirainen (8c2f2e90b) doveadm: Fixed sending commands to doveadm server when it didn't require authentication. M src/doveadm/server-connection.c 2011-09-21 12:34:02 +0300 Timo Sirainen (ed41ec8aa) lib-ssl-iostream: Don't require SSL ostream to always have unlimited buffer size. It's important when reading/handshaking wants to write to output buffer, but writing itself can safely have zero sized buffer (e.g. while sending a large input stream). M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/ostream-openssl.c 2011-09-20 16:44:32 +0300 Timo Sirainen (edb71d39e) imapc: Added more checks to catch buggy IMAP server responses. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-msgmap.c M src/lib-storage/index/imapc/imapc-storage.h 2011-09-20 16:42:58 +0300 Timo Sirainen (0b5ae5cab) imapc: When remote IMAP server becomes confused, don't mark our indexes corrupted. Mark them corrupted only when after a reconnection the initial mailbox sync doesn't work. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-09-20 15:36:39 +0300 Timo Sirainen (00bf64c70) imapc: Filter out X-Message-Flag: header from incoming mails. This is only added by MS Exchange when \Flagged flag is set, so it could be made optional, but it probably doesn't really hurt to just make it unconditional to ease the configuration. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2011-09-20 15:22:37 +0300 Timo Sirainen (e39459afd) imapc: If FETCH is missing a reply, but we haven't seen EXPUNGE for it, do NOOP and check again. This fixes checking if message is expunged with servers that don't immediately send EXPUNGE during UID FETCH. M src/lib-storage/index/imapc/imapc-mail.c 2011-09-20 13:34:52 +0300 Timo Sirainen (feccf3f86) Increased initial memory pool sizes. M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/mail-storage-service.c 2011-09-20 13:34:36 +0300 Timo Sirainen (b1486804b) imapc: If mailbox sync fails, don't mark index corrupted. The sync could have failed because of disconnection. The failure will just cause the sync to be rollbacked and retried later. No need to delete the whole index. M src/lib-storage/index/imapc/imapc-sync.c 2011-09-20 13:33:34 +0300 Timo Sirainen (bcf478ad0) imapc: next_uid was sometimes lowered. M src/lib-storage/index/imapc/imapc-sync.c 2011-09-20 13:31:32 +0300 Timo Sirainen (bff477af4) imapc: When IMAP server unexpectedly doesn't send a reply, log also the mailbox name. M src/lib-storage/index/imapc/imapc-mail.c 2011-09-20 13:30:08 +0300 Timo Sirainen (8d6a6eccd) inotify: If read() fails with EAGAIN, ignore it instead of dying. M src/lib/ioloop-notify-inotify.c 2011-09-20 11:53:02 +0300 Timo Sirainen (d5e131e80) imapc: Handle disconnection better when fetching a mail. M src/lib-storage/index/imapc/imapc-mail.c 2011-09-19 18:41:36 +0300 Timo Sirainen (9b8fa20cb) Enable --no-undefined linker flag only for Linux. BSDs don't seem to be happy with it. M configure.in 2011-09-19 18:33:40 +0300 Timo Sirainen (57a712a49) fts-lucene: Fixed to work without stemmer support. M src/plugins/fts-lucene/fts-lucene-plugin.c 2011-09-19 18:28:14 +0300 Timo Sirainen (bb55679b0) Compile fix for OpenBSD. M src/lib/network.c 2011-09-19 14:25:29 +0300 Timo Sirainen (3b1c8905f) doveadm: Typofix s/messsage/message/ M src/doveadm/doveadm-mail-move.c 2011-09-16 17:00:30 +0300 Timo Sirainen (2275a3963) Added signature for changeset f9e744ffe021 M .hgsigs 2011-09-16 17:00:24 +0300 Timo Sirainen (6e3522ab4) Added tag 2.1.alpha2 for changeset f9e744ffe021 M .hgtags 2011-09-16 17:00:24 +0300 Timo Sirainen (5966e40fa) Released v2.1.alpha2. M configure.in 2011-09-16 16:59:10 +0300 Timo Sirainen (dc912088f) Merged changes from v2.0.15. 2011-09-16 16:45:25 +0300 Timo Sirainen (006be1e12) Added signature for changeset 11ef52450096 M .hgsigs 2011-09-16 16:45:22 +0300 Timo Sirainen (75a59166f) Added tag 2.0.15 for changeset 11ef52450096 M .hgtags 2011-09-16 16:45:22 +0300 Timo Sirainen (cf2c26df7) Released v2.0.15. M NEWS M configure.in 2011-09-16 16:40:32 +0300 Timo Sirainen (f62426425) auth: Use "auth-worker:" log prefix for auth worker processes. M src/auth/main.c 2011-09-16 16:14:14 +0300 Timo Sirainen (35fab6939) TODO updated M TODO 2011-09-16 16:01:53 +0300 Timo Sirainen (2fc2efa79) acl: Fixed listing multiple shared namespaces. M src/plugins/acl/acl-plugin.h M src/plugins/acl/acl-shared-storage.c 2011-09-16 16:01:29 +0300 Timo Sirainen (7a2fad1af) lib-storage: Don't try to use the same mail_storage for shared storages. This fixes having multiple independent shared namespaces. M src/lib-storage/mail-storage.c 2011-09-16 14:59:34 +0300 Timo Sirainen (cccfb98c5) lib-storage: Improved debug logging messages. M src/lib-storage/mail-storage.c 2011-09-16 14:52:29 +0300 Timo Sirainen (34e4d771f) Fixes to listing mailboxes/subscriptions in shared namespaces. M src/imap/cmd-list.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-subscriptions.c 2011-09-16 13:14:11 +0300 Timo Sirainen (a5bb2908b) lib-storage: If shared namespace prefix doesn't end with hierarchy separator, fail. M src/lib-storage/index/shared/shared-storage.c 2011-09-16 13:06:48 +0300 Timo Sirainen (21ce0d72b) lib-storage: If mailbox_rename() isn't possible and mail_debug=yes, log the reason why. M src/lib-storage/mail-storage.c 2011-09-16 12:57:40 +0300 Timo Sirainen (e200d1ba3) lib-storage: Changed debug message to sound less like an error message. M src/lib-storage/mailbox-list.c 2011-09-16 12:40:19 +0300 Timo Sirainen (b089505af) quota: When matching mailbox names in quota rules, unalias namespaces first. M src/plugins/quota/quota.c 2011-09-16 12:39:19 +0300 Timo Sirainen (288d6ef59) lib-storage: Added mail_namespace_find_unalias() M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h 2011-09-16 12:21:02 +0300 Timo Sirainen (35de8ec2d) lib-sql: Fixed load balancing between multiple SQL hosts to actually work. M src/lib-sql/driver-sqlpool.c 2011-09-16 12:11:25 +0300 Timo Sirainen (1ea57ace3) s/commiting/committing/ Caught by Marco Nenciarini. M src/doveadm/doveadm-mail-iter.c M src/lib-index/mail-index-transaction-update.c M src/lib-storage/index/index-sync.c 2011-09-16 12:08:49 +0300 Timo Sirainen (36175032e) config: Don't crash strlist section contains a subsection. M src/config/config-parser.c 2011-09-16 11:59:15 +0300 Timo Sirainen (2e79bf72c) man: Escape fix. M doc/man/dsync.1.in 2011-09-15 23:39:33 +0300 Timo Sirainen (eaec182b6) stats: Export also username for commands. M src/stats/client-export.c 2011-09-15 19:51:27 +0000 Pascal Volk (6c4449610) man: Added -r option to doveadm-altmove.1. M doc/man/doveadm-altmove.1.in 2011-09-15 13:53:10 +0300 Timo Sirainen (44e5c39db) lib-sql: Dropped connect timeout to 5 seconds. Postfix is using 10 second auth timeout and this needs to be less than that. M src/lib-sql/sql-api-private.h 2011-09-15 13:48:26 +0300 Timo Sirainen (bbac309a8) lib-sql: Don't try to connect to connections that are going to be reconnected later. This avoids unnecessarily trying to connect to failing connections. M src/lib-sql/driver-sqlpool.c 2011-09-15 13:47:44 +0300 Timo Sirainen (bf17de7e2) lib-sql: Connect to all configured hosts immediately. This makes load balancing between them actually work always. M src/lib-sql/driver-sqlpool.c 2011-09-15 13:46:45 +0300 Timo Sirainen (2d20d4606) lib-sql: When escaping a string, use the first ready connection (if any). This avoids unnecessarily trying to reconnect to a failing connection. M src/lib-sql/driver-sqlpool.c 2011-09-15 13:45:35 +0300 Timo Sirainen (f635aa2fd) lib-sql: If MySQL connect takes more than 1 sec, don't try to reconnect for that many secs. M src/lib-sql/driver-mysql.c 2011-09-15 13:41:03 +0300 Timo Sirainen (685a84a0c) lib-sql: If MySQL connect fails, update ioloop times so later timeouts get added properly. M src/lib-sql/driver-mysql.c 2011-09-15 13:38:54 +0300 Timo Sirainen (22e0c38e6) liblib: Added io_loop_time_refresh() M src/lib/ioloop.c M src/lib/ioloop.h 2011-09-15 13:09:50 +0300 Timo Sirainen (e8a96ad5c) auth: Don't assert-crash if login client disconnects during multi-reply mechanism. M src/auth/auth-request-handler.c 2011-09-15 12:34:03 +0300 Timo Sirainen (4b7b7a6de) mbox: mailbox_get_guid() works now without trying to sync the opened mailbox. This fixes assert-crash when LDA was trying to get mailbox GUID during save. M src/lib-storage/index/mbox/mbox-storage.c 2011-09-15 12:20:55 +0300 Timo Sirainen (2726ee94a) lib-storage: Fixed listing subscriptions in shared namespaces. M src/lib-storage/list/mailbox-list-subscriptions.c 2011-09-15 11:54:11 +0300 Timo Sirainen (cb108a8c7) doveadm altmove: Added -r parameter to move mails back to primary storage. M src/doveadm/doveadm-mail-altmove.c 2011-09-13 12:42:30 +0300 Timo Sirainen (9eb6f0bd1) auth: Use auth-worker(pid) prefix for auth processes. M src/auth/main.c 2011-09-13 11:55:25 +0300 Timo Sirainen (67aad957c) lib-storage: Make sure status/metadata structs are cleared when they're looked up. M src/lib-storage/mail-storage.c 2011-09-13 11:38:49 +0300 Timo Sirainen (3e1292580) imapc: Handle \Noselect flag properly for untagged LSUB replies. M src/lib-storage/index/imapc/imapc-list.c 2011-09-13 11:34:21 +0300 Timo Sirainen (f7b7a0516) lib-storage: Fixed handling subscriptions when they were saved to prefix!="" namespace. M src/lib-storage/list/mailbox-list-subscriptions.c 2011-09-13 10:32:11 +0300 Timo Sirainen (5532e2ec6) imapc: Crashfix when sometimes closing mailbox. M src/lib-storage/index/imapc/imapc-client.c 2011-09-13 02:09:02 +0300 Timo Sirainen (5a64a89ab) Removed unnecessary code. M src/lib-storage/mail-storage-service.c 2011-09-13 02:08:15 +0300 Timo Sirainen (f92db0bb4) dsync: Ignore SIGHUP M src/dsync/dsync.c 2011-09-13 02:07:30 +0300 Timo Sirainen (75e8db370) lib-index: mail_index_view_clone() didn't properly clear all fields in the destination view. The only caller already had it cleared though. Patch by Mike Abbott / Apple. M src/lib-index/mail-index-view.c 2011-09-12 18:29:17 +0300 Timo Sirainen (fbefe73af) stats: Track [rw]char and sysc[rw] fields in /proc/self/io (with Linux). M src/plugins/stats/stats-plugin.c M src/plugins/stats/stats-plugin.h M src/stats/client-export.c M src/stats/mail-stats.c M src/stats/mail-stats.h 2011-09-12 18:26:29 +0300 Timo Sirainen (31e563d31) stats: Added mail_ prefix to mail transaction statistics. Also added "m" prefix for them in the internal protocol. M src/plugins/stats/stats-plugin.c M src/stats/client-export.c M src/stats/mail-stats.c M src/stats/mail-stats.h 2011-09-12 16:32:20 +0300 Timo Sirainen (2c916140b) dsync: If mailbox can't be opened, log an error but continue anyway. M src/dsync/dsync-worker-local.c 2011-09-12 16:30:51 +0300 Timo Sirainen (b97c76223) dsync: If mailbox can't be opened, log an error but continue anyway. M src/dsync/dsync-worker-local.c 2011-09-12 16:23:21 +0300 Timo Sirainen (37cd04fc1) fts-squat: Crashfixes on indexing. M src/plugins/fts-squat/fts-backend-squat.c 2011-09-12 16:18:56 +0300 Timo Sirainen (8b304a268) fts-solr: Don't break when there are duplicate From/To/Subject/etc. fields. M src/plugins/fts-solr/fts-backend-solr.c 2011-09-12 14:44:01 +0300 Timo Sirainen (3967d4d92) stats: Increased idle timeout to 15 minutes. M src/stats/mail-session.c 2011-09-12 14:43:31 +0300 Timo Sirainen (c7639a2e0) stats: Avoid duplicate "Couldn't find session GUID" warnings. When it happens, just create a dummy session for it and log a warning once. M src/stats/mail-command.c M src/stats/mail-session.c M src/stats/mail-session.h 2011-09-12 14:40:49 +0300 Timo Sirainen (c4bb0320a) virtual: Compile fix for recent mailbox_exists() change. M src/plugins/virtual/virtual-storage.c 2011-09-12 14:32:37 +0300 Timo Sirainen (5dba704bc) indexer: Fixed assert-crash when number of indexed messages was divisible by 100. M src/indexer/master-connection.c 2011-09-12 14:27:46 +0300 Timo Sirainen (37fd9adee) mbox: Fixed fetching last message from compressed mboxes. M src/lib-storage/index/mbox/mbox-mail.c 2011-09-12 14:27:46 +0300 Timo Sirainen (767cd7e92) mbox: Fixed fetching last message from compressed mboxes. M src/lib-storage/index/mbox/mbox-mail.c 2011-09-12 14:01:36 +0300 Timo Sirainen (c4c3d4864) quota-dirsize: Get the quota from "mail root dir", not "mailboxes dir". Normally they are different only with dbox (~/dbox vs. ~/dbox/mailboxes). This mainly fixes using dirsize with mdbox, where the mail data is in ~/dbox/storage/ directory. Patch by Роман Захров. M src/plugins/quota/quota-dirsize.c 2011-09-12 14:02:30 +0300 Timo Sirainen (dfe42ed67) ldap: Fixed auth binds for nonexistent users with some LDAP servers. M src/auth/passdb-ldap.c 2011-09-12 14:01:36 +0300 Timo Sirainen (d62cb6994) quota-dirsize: Get the quota from "mail root dir", not "mailboxes dir". Normally they are different only with dbox (~/dbox vs. ~/dbox/mailboxes). This mainly fixes using dirsize with mdbox, where the mail data is in ~/dbox/storage/ directory. Patch by Роман Захров. M src/plugins/quota/quota-dirsize.c 2011-09-12 13:14:26 +0300 Timo Sirainen (1228c0604) imapc: Fixed mailbox_exists() to actually work. This fixes problems with subscribing to mailboxes. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h M src/lib-storage/index/imapc/imapc-storage.c 2011-09-12 13:13:35 +0300 Timo Sirainen (352cd70b5) lib-storage: Handle INBOX in the common mailbox_exists() code. M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/mail-storage.c 2011-09-12 12:41:09 +0300 Timo Sirainen (2dc23f341) imapc: Fixes to handling non-empty imapc namespace prefix. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c 2011-09-12 12:40:34 +0300 Timo Sirainen (ba36444cd) lib-storage: Fixed mailbox_list_mailbox() for backends without get_mailbox_flags(). M src/lib-storage/mailbox-list.c 2011-09-12 12:38:04 +0300 Timo Sirainen (3dddf036e) lib-storage: Finished previous get_mailbox_flags() change. M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs.h 2011-09-12 12:02:33 +0300 Timo Sirainen (fb365adde) lib-storage: Removed unused struct stat parameter from mailbox_list.get_mailbox_flags() M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.h M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2011-09-09 13:14:07 +0300 Timo Sirainen (e925d6db5) imapc: More fixes to listing mailbox names. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c 2011-09-09 13:05:33 +0300 Timo Sirainen (4bb24a20b) imapc: Another try at fixing mUTF-7 mailbox names. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-09-09 12:57:36 +0300 Timo Sirainen (56956c0bb) imapc: Use mUTF-7 for mailbox names. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-09-08 16:52:32 +0300 Timo Sirainen (063254ba7) imapc: If mail prefetching fails because of disconnection, don't log about it again. M src/lib-storage/index/imapc/imapc-mail-fetch.c 2011-09-08 16:51:51 +0300 Timo Sirainen (bf6d72f93) imapc: If NOOP fails with disconnection, set "internal error" to storage. M src/lib-storage/index/imapc/imapc-storage.c 2011-09-08 16:37:56 +0300 Timo Sirainen (a5074ab2b) fts-solr: Fixed indexing messages with multiple MIME body parts. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2011-09-08 16:24:18 +0300 Timo Sirainen (f2d3c2be0) lib-storage: Error handling fix for key+=value when key isn't of string type. M src/lib-storage/mail-storage-service.c 2011-09-08 13:41:20 +0300 Timo Sirainen (b5a36d9a0) lmtp: Improved "DATA output timeout" error message. M src/lmtp/lmtp-proxy.c 2011-09-08 12:39:13 +0300 Timo Sirainen (9dc53c1d1) imapc: Send NOOP command every 29 minutes to remote server. This avoids server idle-disconnecting us after doing nothing for 30 minutes. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-connection.c 2011-09-08 12:14:54 +0300 Timo Sirainen (c2c0c1e5d) lib-ssl-iostream: If plain stream disconnects, disconnect SSL stream also. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h 2011-09-08 11:51:18 +0300 Timo Sirainen (4130a3362) lib-lda: Log message improvement to differentiate mailbox open vs. save error. M src/lib-lda/mail-deliver.c 2011-09-08 11:51:18 +0300 Timo Sirainen (2f0c5d456) lib-lda: Log message improvement to differentiate mailbox open vs. save error. M src/lib-lda/mail-deliver.c 2011-09-08 11:50:23 +0300 Timo Sirainen (d4b2e2b0a) lib-storage: Fixed mail_storage_copy() error handling. M src/lib-storage/mail-copy.c 2011-09-08 11:50:23 +0300 Timo Sirainen (591aa6891) lib-storage: Fixed mail_storage_copy() error handling. M src/lib-storage/mail-copy.c 2011-09-08 11:39:00 +0300 Timo Sirainen (76a778615) lib-storage: Code cleanup to mail_storage_set_critical() M src/lib-storage/mail-storage.c 2011-09-08 11:16:55 +0300 Timo Sirainen (9e17ea6a3) lib-storage: Minor error handling cleanups. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-storage.c 2011-09-08 11:16:55 +0300 Timo Sirainen (a290ae22e) lib-storage: Minor error handling cleanups. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-storage.c 2011-09-01 19:33:22 +0300 Timo Sirainen (882fd2a05) lib-index: Make sure mail_index_sync_record() doesn't waste data stack. M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-view-sync.c 2011-09-01 19:33:22 +0300 Timo Sirainen (6d25194a4) lib-index: Make sure mail_index_sync_record() doesn't waste data stack. M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-view-sync.c 2011-09-07 17:15:10 +0300 Timo Sirainen (00a3bb342) imapc: When closing mailbox, don't abort any pending non-mailbox commands. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-connection.h 2011-09-07 16:44:14 +0300 Timo Sirainen (c175b2627) auth: Don't crash when using default static userdb. M src/auth/auth.c 2011-09-07 16:10:16 +0300 Timo Sirainen (6c6b1e9fd) lib-ssl-iostream: Some tweaks to BIO handling. M src/lib-ssl-iostream/iostream-openssl.c 2011-09-07 15:46:43 +0300 Timo Sirainen (2d8e4a429) imapc: Fixed assert-crashing when deleting a mailbox M src/lib-storage/index/imapc/imapc-sync.c 2011-09-07 11:52:08 +0300 Timo Sirainen (d71c50fd3) imapc: Place index files under root_dir/indexes/ directory. M src/lib-storage/index/imapc/imapc-list.c 2011-09-07 11:30:05 +0300 Timo Sirainen (abd477262) lib-index: Don't allow syncing to begin if index is marked corrupted. M src/lib-index/mail-index-sync.c 2011-09-07 11:19:03 +0300 Timo Sirainen (c239a1de4) lib-ssl-iostream: Handle flush_pending and set_max_buffer_size properly. M src/lib-ssl-iostream/ostream-openssl.c 2011-09-07 11:18:15 +0300 Timo Sirainen (ce8cd19cc) lib-ssl-iostream: Fixed ostream to preserve/use flush callback correctly. M src/lib-ssl-iostream/ostream-openssl.c 2011-09-07 11:03:33 +0300 Timo Sirainen (8e6def804) imapc: Switch connection output streams' ioloop when needed. This fixes hangs when output stream got full. M src/lib-storage/index/imapc/imapc-connection.c 2011-09-07 11:02:55 +0300 Timo Sirainen (e21a2c082) lib-ssl-iostream: When plain_output's buffer is full, set it flush-pending. This fixes hangs when the output buffer got full. M src/lib-ssl-iostream/iostream-openssl.c 2011-09-07 10:59:35 +0300 Timo Sirainen (71da44701) Added o_stream_switch_ioloop() and implemented it to all ostreams. M src/lib-ssl-iostream/ostream-openssl.c M src/lib/ostream-file.c M src/lib/ostream-internal.h M src/lib/ostream.c M src/lib/ostream.h M src/plugins/zlib/ostream-bzlib.c M src/plugins/zlib/ostream-zlib.c 2011-09-07 10:38:01 +0300 Timo Sirainen (b720f55c5) imapc: Connect to server immediately at startup and lookup hierarchy separator. If connecting to server fails, this makes it fail earlier. Also we don't have to worry about what to do later if hierarchy separator lookup fails. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h M src/lib-storage/index/imapc/imapc-storage.c 2011-09-07 10:24:11 +0300 Timo Sirainen (52d19b57c) lib-ssl-iostream: When SSL i/ostream is closed, close also the plain stream. M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c 2011-09-07 10:01:36 +0300 Timo Sirainen (d30c35e25) imapc: Don't crash if a newly seen uncommitted message is expunged. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2011-09-07 09:40:16 +0300 Timo Sirainen (e8443917e) imapc: Removed accidentally committed debug sleeps. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c 2011-09-07 08:41:25 +0300 Timo Sirainen (5dd17da0a) lib-ssl-iostream: Fixed compiling when SSL is disabled. M src/lib-ssl-iostream/iostream-ssl-none.c 2011-09-07 08:40:41 +0300 Timo Sirainen (da4baa95c) lib-ssl-iostream: Compiler warning fix. M src/lib-ssl-iostream/ostream-openssl.c 2011-09-06 17:29:38 +0300 Timo Sirainen (f4547bcf2) imapc: Don't crash when trying to use imapc's subscription list for another namespace. M src/lib-storage/index/imapc/imapc-list.c 2011-09-06 17:03:55 +0300 Timo Sirainen (417642dda) lib-storage: When mail_debug=yes logs userdb fields, hide values of all whose key contains "pass". M src/lib-storage/mail-storage-service.c 2011-09-06 17:03:06 +0300 Timo Sirainen (61767c753) lib-auth: When debug logging auth input, hide values of all fields containing "pass" in key. M src/lib-auth/auth-master.c 2011-09-06 17:01:29 +0300 Timo Sirainen (c96a1bff0) auth: If auth_debug_passwords=no, hide values of userdb keys containing "pass" string. M src/auth/auth-master-connection.c 2011-09-06 16:42:19 +0300 Timo Sirainen (24500b363) imapc: Error logging fix when SSL handshake fails. M src/lib-storage/index/imapc/imapc-connection.c 2011-09-06 16:33:09 +0300 Timo Sirainen (e1895a143) imapc: Verify that SSL certificate matches the connected hostname. M src/lib-storage/index/imapc/imapc-connection.c 2011-09-06 16:32:20 +0300 Timo Sirainen (1c4f8e4c4) lib-ssl-iostream: Added ssl_iostream_cert_match_name() M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-ssl.h 2011-09-06 13:40:50 +0300 Timo Sirainen (21fed972a) lib-ssl-iostream: Code cleanups, fixes, asserts and comments. M src/lib-ssl-iostream/iostream-openssl.c M src/lib-ssl-iostream/iostream-openssl.h M src/lib-ssl-iostream/istream-openssl.c M src/lib-ssl-iostream/ostream-openssl.c 2011-09-05 14:23:11 +0300 Timo Sirainen (148a8396b) lib-ssl-iostream: Avoid assert-crashing when remote disconnects during write. M src/lib-ssl-iostream/iostream-openssl.c 2011-09-05 12:46:49 +0300 Timo Sirainen (bfa38f13d) maildir: Avoid refreshing uidlist unnecessarily. Even if the uidlist itself wasn't read, it was still stat()ed. M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/maildir/maildir-sync.c 2011-09-05 11:48:11 +0300 Timo Sirainen (ae9365d3d) maildir: When logging "scanning took n secs" warning, log also why scan was done. This could help debugging why cur/ directory is sometimes scanned with maildir_very_dirty_syncs=yes (if the previous commit didn't fully solve it). M src/lib-storage/index/maildir/maildir-sync.c 2011-09-05 11:45:45 +0300 Timo Sirainen (f6b317c4a) maildir: Drop internal new-flag from mails that have been moved from new/ to cur/. This avoids unnecessary cur/ directory scans. M src/lib-storage/index/maildir/maildir-uidlist.c 2011-09-05 11:34:43 +0300 Timo Sirainen (e34961688) stats: Don't crash at deinit if there are still connected sessions. M src/stats/mail-session.c 2011-09-05 11:13:12 +0300 Timo Sirainen (e9ed8d308) stats: If forcibly disconnecting a session, show the session's username also. M src/stats/mail-session.c 2011-09-05 10:32:47 +0300 Timo Sirainen (d1b3f17d8) imapc: mailbox_status now returns permanent flags/keywords as they are on remote server. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-09-05 10:30:15 +0300 Timo Sirainen (9a3da808c) lib-storage: mailbox_keyword_is_valid() returns now FALSE if keyword can't be created. M src/lib-storage/mailbox-keywords.c 2011-09-05 10:28:49 +0300 Timo Sirainen (b3484b5b1) lib-storage: Added mailbox.disallow_new_keywords and use it for mailbox_status. M src/lib-storage/index/index-status.c M src/lib-storage/mail-storage-private.h 2011-09-04 20:11:33 +0300 Timo Sirainen (47ca156ce) stats: Add stats_ prefix to all settings. M src/stats/stats-settings.c 2011-09-04 19:00:47 +0300 Timo Sirainen (31ddc6910) master: fifos weren't created with correct user/group. M src/master/service-listen.c 2011-09-04 18:47:30 +0300 Timo Sirainen (b0b14c64c) imapc: Another compiler warning fix. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-09-04 18:46:20 +0300 Timo Sirainen (b0cfc1ced) imapc: Compiler warning fix. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-09-04 18:29:38 +0300 Timo Sirainen (854574e0a) imapc: Fixed checking if mail is expunged. M src/lib-storage/index/imapc/imapc-mail.c 2011-09-04 18:29:21 +0300 Timo Sirainen (faa489c31) imapc: Syncing fixes M src/lib-storage/index/imapc/imapc-mailbox.c 2011-09-04 17:59:58 +0300 Timo Sirainen (1af95e0fe) imapc: Redesigned remote sequence <-> index file record mapping is done. The previous code didn't work when multiple connections modified the same index files. M src/lib-storage/index/imapc/Makefile.am M src/lib-storage/index/imapc/imapc-client-private.h M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c A src/lib-storage/index/imapc/imapc-msgmap.c A src/lib-storage/index/imapc/imapc-msgmap.h D src/lib-storage/index/imapc/imapc-seqmap.c D src/lib-storage/index/imapc/imapc-seqmap.h M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c D src/lib-storage/index/imapc/test-imapc-seqmap.c 2011-09-04 16:34:23 +0300 Timo Sirainen (92f9aaf89) imapc: Delay handling new messages and setting uidvalidity/uidnext until sync. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2011-09-04 13:20:27 +0300 Timo Sirainen (5caec68be) imapc: Never use box->view for syncing related purposes. The view isn't up to date when MAILBOX_SYNC_FLAG_NO_EXPUNGES is used to sync it. Instead always use a separate sync view. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-09-04 12:38:24 +0300 Timo Sirainen (f01d1332d) lib-index: Fixed reopening index file that was marked as corrupted. M src/lib-index/mail-index.c 2011-09-04 12:37:51 +0300 Timo Sirainen (951c92a29) imapc: Fixed handling immediate changes when starting IDLE. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2011-09-04 12:29:45 +0300 Timo Sirainen (228e0b084) imapc: Avoid assert-crashing if a new message's UID is smaller than next_uid. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-09-04 12:04:09 +0300 Timo Sirainen (e809db922) imapc: Error logging cleanups. Don't bother to log disconnection errors for NOOP. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2011-09-04 12:03:12 +0300 Timo Sirainen (b328a8f1f) imapc: Fixed error handling while opening mailbox. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-09-04 11:52:16 +0300 Timo Sirainen (1be964ec6) lib-index: When marking index corrupted, delete also transaction log file. M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log.c M src/lib-index/mail-transaction-log.h 2011-09-04 11:51:23 +0300 Timo Sirainen (3fd0bcdff) imapc: Fixed syncing external changes to mailbox when opening it. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.h 2011-09-04 10:55:33 +0300 Timo Sirainen (a2d397c3a) imapc: Added assert. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-storage.c 2011-09-04 10:48:46 +0300 Timo Sirainen (6021cfec0) imapc: Fixed IDLE handling. M src/lib-storage/index/imapc/imapc-storage.c 2011-09-04 10:40:58 +0300 Timo Sirainen (f1fe62b69) stats: Minor error message fix. M src/stats/mail-session.c 2011-09-04 10:30:21 +0300 Timo Sirainen (0d5b4840d) imapc: Use EXAMINE command when possible. M src/lib-storage/index/imapc/imapc-storage.c 2011-09-04 10:25:39 +0300 Timo Sirainen (a54e0d5eb) stats: Don't increase session stats based on command stats. This was buggy because the session stats were now increased twice. It could have been possible to keep doing this and on UPDATE-SESSION simply replace the old session stats, but that might still have caused the session stats to temporarily go too high and then drop down. M src/stats/mail-command.c 2011-09-04 10:15:16 +0300 Timo Sirainen (d19fb2745) anvil: Assert-crashfix at exit when there were fifo connections. M src/anvil/anvil-connection.c 2011-09-04 10:12:30 +0300 Timo Sirainen (e736bb739) stats: Don't assert-crash at exit if there are unfinished commands. M src/stats/mail-command.c 2011-09-03 12:04:56 +0300 Timo Sirainen (6b26519e4) lib-sql: Don't link sql libraries to libdovecot-sql.so when building them as plugins. M src/lib-sql/Makefile.am 2011-09-02 07:11:16 +0300 Timo Sirainen (56a5ecd21) fts-solr: Don't send delete to Solr if we're quite sure it doesn't exist. M src/plugins/fts-solr/fts-backend-solr.c 2011-09-01 17:52:51 +0300 Timo Sirainen (2894d8559) stats: Log more verbosely what happened if stats shrink. M src/stats/mail-command.c M src/stats/mail-session.c M src/stats/mail-stats.c M src/stats/mail-stats.h 2011-09-01 12:34:11 +0300 Timo Sirainen (9510cc877) stats plugin: Get disk I/O from getrusage(), not from /proc/self/io. They're pretty much the same values anyway, and getrusage() is more portable. M src/plugins/stats/stats-plugin.c 2011-09-01 11:59:21 +0300 Timo Sirainen (b57c175e5) Added signature for changeset 8ae243558677 M .hgsigs 2011-09-01 11:59:16 +0300 Timo Sirainen (ad938d650) Added tag 2.1.alpha1 for changeset 8ae243558677 M .hgtags 2011-09-01 11:59:14 +0300 Timo Sirainen (eee5eaaf3) Released v2.1.alpha1. M configure.in 2011-09-01 11:57:59 +0300 Timo Sirainen (febbbf90e) Make static analyzer happy. M src/lib/network.c 2011-09-01 11:50:49 +0300 Timo Sirainen (55342cbdf) doveadm: Error handling fix M src/doveadm/doveadm-stats.c 2011-09-01 11:02:30 +0300 Timo Sirainen (89723511c) NEWS updated M NEWS 2011-09-01 10:59:50 +0300 Timo Sirainen (31dcba227) TODO updated M TODO 2011-09-01 10:58:41 +0300 Timo Sirainen (0d011467f) stats: Keep track of session's PIDs. M src/plugins/stats/stats-connection.c M src/stats/client-export.c M src/stats/mail-session.c M src/stats/mail-stats.h 2011-09-01 10:40:17 +0300 Timo Sirainen (699b2bf7b) stats: Keep track of last_update in microsecond precision and export it as such. M src/stats/client-export.c M src/stats/mail-command.c M src/stats/mail-domain.c M src/stats/mail-ip.c M src/stats/mail-session.c M src/stats/mail-stats.h M src/stats/mail-user.c 2011-09-01 10:39:37 +0300 Timo Sirainen (9f84515b2) doveadm: Change "stats dump" default formatter to "tab". M src/doveadm/doveadm-print.h M src/doveadm/doveadm-stats.c 2011-09-01 10:39:19 +0300 Timo Sirainen (06e3d76a9) doveadm: Initial implementation of "stats top" command. Currently it's hard coded to assume ANSI compatible terminal. M src/doveadm/doveadm-stats.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h 2011-09-01 10:37:55 +0300 Timo Sirainen (3f0f90583) Increased initial memory pool size. M src/doveadm/doveadm-print-table.c 2011-09-01 10:37:35 +0300 Timo Sirainen (91db58d09) stats plugin: Send one no-change session update after changes. This tells the stats client that the session is idle now. M src/plugins/stats/stats-plugin.c M src/plugins/stats/stats-plugin.h 2011-09-01 09:46:05 +0300 Timo Sirainen (3f3fa1a90) stats: Export CPU usecs prefixed with right number of zeros. M src/stats/client-export.c 2011-09-01 07:25:23 +0300 Timo Sirainen (95213c9dd) doveadm stats: Renamed "top" command to "dump" and allow giving any parameters to it. M src/doveadm/doveadm-stats.c 2011-09-01 07:24:25 +0300 Timo Sirainen (292381600) stats: Fixed dumping command stats. M src/stats/client-export.c 2011-09-01 07:21:41 +0300 Timo Sirainen (0c720138b) stats: Fixed handling IP address stats. M src/stats/client-export.c M src/stats/mail-session.c M src/stats/main.c 2011-09-01 06:52:43 +0300 Timo Sirainen (fc45ac80c) stats plugin: Added stats_refresh and stats_track_cmds settings. The stats plugin is enabled only when refresh is set to non-zero. The imap_stats plugin tracks commands only when stats_track_cmds=yes. M src/plugins/imap-stats/imap-stats-plugin.c M src/plugins/stats/Makefile.am M src/plugins/stats/stats-plugin.c M src/plugins/stats/stats-plugin.h 2011-09-01 06:36:34 +0300 Timo Sirainen (0c61cba6b) stats plugin: Optimized to lookup statistics only when necessary. M src/plugins/stats/stats-plugin.c 2011-09-01 06:13:36 +0300 Timo Sirainen (ab94710e5) stats: Don't attempt to track stats for autocreated users. M src/plugins/stats/stats-plugin.c 2011-09-01 06:13:26 +0300 Timo Sirainen (f534c0d42) lib-storage: Set struct mail_users.autocreated for raw/shared users. M src/lda/main.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/mail-user.h M src/lmtp/client.c 2011-09-01 06:02:23 +0300 Timo Sirainen (c0beaaee8) stats: Added more statistics fields (syscpu, page faults, context switches). M src/plugins/stats/stats-plugin.c M src/plugins/stats/stats-plugin.h M src/stats/client-export.c M src/stats/mail-stats.c M src/stats/mail-stats.h 2011-09-01 05:57:42 +0300 Timo Sirainen (650cd8fea) doveadm stats top: Don't hang if stats server doesn't send any statistics. M src/doveadm/doveadm-stats.c 2011-08-31 14:25:54 +0300 Timo Sirainen (790c2742f) lib-storage: Recognize "flags" cache field in MAILBOX_METADATA_PRECACHE_FIELDS. M src/lib-storage/index/index-status.c 2011-08-31 14:23:51 +0300 Timo Sirainen (adf8264ab) fts-solr: Fixed updating last indexed uid in fts header. M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c 2011-08-31 13:58:27 +0300 Timo Sirainen (d50ba8155) fts: Removed unused code. M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-storage.c 2011-08-31 13:49:48 +0300 Timo Sirainen (2ced1cbfb) fts-lucene: Fixed checking if optimize should be done directly or via indexer. M src/plugins/fts-lucene/fts-backend-lucene.c 2011-08-31 12:29:21 +0300 Timo Sirainen (128ea07da) lib-index: Changed mail_cache_view_close() API to take pointer-to-pointer. M src/doveadm/doveadm-dump-index.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache.c M src/lib-index/mail-cache.h M src/lib-storage/index/index-status.c M src/lib-storage/index/index-transaction.c 2011-08-31 12:02:29 +0300 Timo Sirainen (ff9eb4a57) indexer: Send completion% status updates to clients. M src/indexer/indexer-queue.c M src/indexer/master-connection.c M src/indexer/worker-connection.c 2011-08-31 11:39:50 +0300 Timo Sirainen (421d30619) Redesigned mail precaching APIs. There's no longer a one monolithic mailbox_sync(MAILBOX_SYNC_FLAG_PRECACHE) call, but rather one mail_precache() call for each mail to be precached. This allows the callers to show the progress and in general is cleaner. M src/doveadm/doveadm-mail-index.c M src/indexer/master-connection.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-status.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/lib-storage/test-mail.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts/Makefile.am M src/plugins/fts/fts-api-private.h R058 src/plugins/fts/fts-build.c src/plugins/fts/fts-build-mail.c A src/plugins/fts/fts-build-mail.h D src/plugins/fts/fts-build-mailbox.c M src/plugins/fts/fts-build-private.h D src/plugins/fts/fts-build-virtual.c D src/plugins/fts/fts-build.h R057 src/plugins/fts/fts-build-indexer.c src/plugins/fts/fts-indexer.c A src/plugins/fts/fts-indexer.h M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-storage.c 2011-08-31 11:35:24 +0300 Timo Sirainen (96da164ad) fts: Fixed checking settings compatibility with non-INBOX namespaces. M src/plugins/fts/fts-api.c 2011-08-31 11:33:54 +0300 Timo Sirainen (f3976df87) lib-index: Added mail_cache_exists() M src/lib-index/mail-cache.c M src/lib-index/mail-cache.h 2011-08-30 09:57:08 +0300 Timo Sirainen (65a1c0147) auth: Added missing files from recent commit. A src/auth/passdb-template.c A src/auth/passdb-template.h A src/auth/userdb-template.c A src/auth/userdb-template.h 2011-08-30 07:07:31 +0300 Timo Sirainen (b7fdf4fe2) fts: Added lookup_done() API call. Lucene uses it to close the index. This way it Lucene doesn't keep the index files unnecessarily open forever. M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c M src/plugins/fts/fts-api.h M src/plugins/fts/fts-search.c 2011-08-30 05:47:41 +0300 Timo Sirainen (f0054d010) mbox: mailbox_get_guid() does now better error handling when read-only mbox doesn't have GUID. M src/lib-storage/index/mbox/mbox-storage.c 2011-08-30 05:36:24 +0300 Timo Sirainen (06ed0c58e) fts-lucene, fts-solr: Try to optimize searching for existence of header name. M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-solr/fts-backend-solr.c 2011-08-30 05:27:54 +0300 Timo Sirainen (04052d7ca) auth: Added default_fields and override_fields settings to all passdbs and userdbs. M doc/example-config/conf.d/auth-ldap.conf.ext M doc/example-config/conf.d/auth-passwdfile.conf.ext M doc/example-config/conf.d/auth-system.conf.ext M src/auth/Makefile.am M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-settings.h M src/auth/auth.c M src/auth/passdb-static.c M src/auth/passdb.c M src/auth/passdb.h M src/auth/userdb-passwd.c M src/auth/userdb-static.c D src/auth/userdb-static.h M src/auth/userdb.c M src/auth/userdb.h 2011-08-30 04:32:55 +0300 Timo Sirainen (b1ba6a91b) lib-storage: Added MAILBOX_TRANSACTION_FLAG_NO_CACHE_DEC and use it when precaching. The result is that "doveadm index" no longer changes caching decisions. M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage.h 2011-08-30 04:31:28 +0300 Timo Sirainen (ab9a91eb0) lib-storage: Added MAILBOX_TRANSACTION_FLAG_NO_CACHE_DEC and use it when precaching. The result is that "doveadm index" no longer changes caching decisions. M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage.h 2011-08-30 04:31:00 +0300 Timo Sirainen (ad6fe4a3c) lib-index: Added mail_cache_view_update_cache_decisions() M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache.c M src/lib-index/mail-cache.h 2011-08-30 04:31:00 +0300 Timo Sirainen (8fa86f7ef) lib-index: Added mail_cache_view_update_cache_decisions() M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-private.h M src/lib-index/mail-cache.c M src/lib-index/mail-cache.h 2011-08-30 04:21:36 +0300 Timo Sirainen (64d3d21a7) Merged changes from v2.0 tree. 2011-08-29 07:08:04 +0300 Timo Sirainen (f50ad7cae) Added signature for changeset aa68f38c04f0 M .hgsigs 2011-08-29 07:08:02 +0300 Timo Sirainen (15ebb73a5) Added tag 2.0.14 for changeset aa68f38c04f0 M .hgtags 2011-08-29 07:08:02 +0300 Timo Sirainen (f7dadfb70) Released v2.0.14. M NEWS M TODO M configure.in 2011-08-29 07:04:49 +0300 Timo Sirainen (7f3e6cdc0) doveadm: Proxying fix M src/doveadm/doveadm-mail-server.c 2011-08-29 07:03:26 +0300 Timo Sirainen (3c6807cf4) doveadm: Fixed authentication with remote doveadm server. M src/doveadm/server-connection.c 2011-08-29 06:18:26 +0300 Timo Sirainen (d3af90438) doveadm: Added "director ring status" command. M src/doveadm/doveadm-director.c 2011-08-29 06:18:16 +0300 Timo Sirainen (4fda77c9e) director: Updated DIRECTOR-LIST doveadm command. M src/director/doveadm-connection.c 2011-08-29 05:36:04 +0300 Timo Sirainen (2b40570e1) doveadm: Skip mailbox optimizations under OR search terms. This fixes problem with e.g. "mailbox foo or seen". M src/doveadm/doveadm-mail-list-iter.c 2011-08-29 05:30:58 +0300 Timo Sirainen (649e009c7) lib-index: Error logging fix to previous commit. M src/lib-index/mail-index-write.c 2011-08-28 08:32:44 +0300 Timo Sirainen (bd83e16fd) configure: Added --with-stemmer and output which fts backends are compiled. M configure.in 2011-08-28 08:15:33 +0300 Timo Sirainen (4145cbac8) lib-storage: Replaced MAILBOX_FLAG_KEEP_RECENT flag with reverse MAILBOX_FLAG_DROP_RECENT. Very few places actually want to drop recent flags, so this way is easier. M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-move.c M src/doveadm/doveadm-mail.c M src/dsync/dsync-worker-local.c M src/imap/cmd-select.c M src/imap/imap-commands-util.c M src/imap/imap-status.c M src/indexer/master-connection.c M src/lib-lda/mail-deliver.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/list/index-mailbox-list.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/mail-storage.h M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-list.c M src/plugins/acl/doveadm-acl.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts/fts-api.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/quota/quota-count.c M src/plugins/snarf/snarf-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/pop3/pop3-client.c 2011-08-28 07:03:45 +0300 Timo Sirainen (2120346ee) stats plugin: Fixed stats connection reference counting. M src/plugins/stats/stats-plugin.c 2011-08-28 06:20:46 +0300 Timo Sirainen (7f44ba28e) doveadm dump: Updated fts_index_header. M src/doveadm/doveadm-dump-index.c 2011-08-28 06:19:52 +0300 Timo Sirainen (5b6470e0e) fts-lucene: If default_language changes, reindex mailbox. M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/fts-lucene-plugin.h M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-28 06:18:54 +0300 Timo Sirainen (54d437dea) fts: Changed private fts_index_header accessing APIs M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c 2011-08-28 05:49:36 +0300 Timo Sirainen (c35291cbf) stats plugin: Don't crash if stats collecting is disabled. M src/plugins/stats/stats-plugin.c 2011-08-28 05:49:06 +0300 Timo Sirainen (65889a7d8) lib-storage: Default mail_user.service (from NULL) to master_service.name. M src/lib-storage/mail-user.c 2011-08-27 11:48:20 +0300 Timo Sirainen (6140ef241) fts-lucene: Error logging fix. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-26 05:20:01 +0300 Timo Sirainen (3809ed86f) stats: Refresh idle timeout whenever session is updated. M src/stats/mail-session.c 2011-08-26 05:15:42 +0300 Timo Sirainen (6565fc65b) doveadm: Added initial implementation of "stats top" command. M src/doveadm/Makefile.am A src/doveadm/doveadm-stats.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h 2011-08-26 05:15:12 +0300 Timo Sirainen (ede6bdb42) Initial implementation of statistics gathering daemon and plugins to feed it. Some statistics are still missing, some of the code is a bit ugly and the internal protocols will probably still change. M .hgignore M configure.in M src/Makefile.am M src/plugins/Makefile.am A src/plugins/imap-stats/Makefile.am A src/plugins/imap-stats/imap-stats-plugin.c A src/plugins/imap-stats/imap-stats-plugin.h A src/plugins/stats/Makefile.am A src/plugins/stats/stats-connection.c A src/plugins/stats/stats-connection.h A src/plugins/stats/stats-plugin.c A src/plugins/stats/stats-plugin.h A src/stats/Makefile.am A src/stats/client-export.c A src/stats/client-export.h A src/stats/client.c A src/stats/client.h A src/stats/global-memory.c A src/stats/global-memory.h A src/stats/mail-command.c A src/stats/mail-command.h A src/stats/mail-domain.c A src/stats/mail-domain.h A src/stats/mail-ip.c A src/stats/mail-ip.h A src/stats/mail-server-connection.c A src/stats/mail-server-connection.h A src/stats/mail-session.c A src/stats/mail-session.h A src/stats/mail-stats.c A src/stats/mail-stats.h A src/stats/mail-user.c A src/stats/mail-user.h A src/stats/main.c A src/stats/stats-settings.c A src/stats/stats-settings.h 2011-08-26 05:10:54 +0300 Timo Sirainen (93aa246b9) lib-master: Don't count FIFOs as clients anymore. We never see them disconnected. This fixes a problem with shutdown_clients=no when a closed director process could hang around forever waiting for the FIFO to close. M src/director/notify-connection.c M src/lib-master/master-service.c M src/log/log-connection.c 2011-08-26 05:09:25 +0300 Timo Sirainen (6cdc91945) master: If fifo already exists, replace it to be sure it has proper permissions. M src/master/service-listen.c 2011-08-26 05:08:42 +0300 Timo Sirainen (b69f4d33f) imap: Added hooks that can be run always before/after any command handler. M src/imap/cmd-append.c M src/imap/cmd-uid.c M src/imap/imap-client.c M src/imap/imap-commands.c M src/imap/imap-commands.h 2011-08-26 05:07:53 +0300 Timo Sirainen (a14f6023d) liblib: Added IPADDR_BITS() macro. M src/lib/network.c M src/lib/network.h 2011-08-25 03:54:50 +0300 Timo Sirainen (2d01cc188) lib-storage: Moved all transaction stats_* to struct mailbox_transaction_stats. M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-search.c M src/lib-storage/index/istream-mail-stats.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h 2011-08-25 03:54:18 +0300 Timo Sirainen (1ee04b5cb) liblib: Added _FULL versions of all linked list handling macros with prev and next params. This allows putting structs into multiple linked lists. M src/lib/llist.h 2011-08-25 01:16:11 +0300 Timo Sirainen (de62ce819) Moved GUID code to liblib. Use guid_128_t type consistently everywhere. M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-search.c M src/dsync/dsync-brain-msgs.c M src/dsync/dsync-data.c M src/dsync/dsync-data.h M src/dsync/dsync-worker-local.c M src/dsync/test-dsync-brain-msgs.c M src/dsync/test-dsync-common.c M src/dsync/test-dsync-common.h M src/dsync/test-dsync-proxy-server-cmd.c M src/dsync/test-dsync-proxy.c M src/imap/imap-status.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index.h M src/lib-index/mail-transaction-log.h M src/lib-index/mailbox-log.h M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h M src/lib-mail/mail-types.h M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-save.h M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.h M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-changes.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-uidlist.h M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-storage.h M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/list/index-mailbox-list-status.c M src/lib-storage/list/index-mailbox-list.h M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/lib-storage/mailbox-guid-cache.c M src/lib-storage/mailbox-guid-cache.h M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/lib-storage/test-mailbox-get.c M src/lib/Makefile.am A src/lib/guid.c A src/lib/guid.h M src/lmtp/client.c M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h M src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c M src/plugins/fts/fts-expunge-log.c M src/plugins/fts/fts-expunge-log.h 2011-08-25 00:27:41 +0300 Timo Sirainen (6bf4371f7) liblib: Added io_loop_get_current_context() M src/lib/ioloop.c M src/lib/ioloop.h 2011-08-25 00:27:10 +0300 Timo Sirainen (ae800c8a9) liblib: io_loop_context_remove_callbacks() now requires also callbacks. M src/lib-storage/mail-storage-service.c M src/lib/ioloop.c M src/lib/ioloop.h 2011-08-24 21:37:15 +0300 Timo Sirainen (da4e1efd7) NEWS updated M NEWS 2011-08-24 21:24:59 +0300 Timo Sirainen (d6f592b6a) configure: Removed accidentally committed stats directory. M configure.in 2011-08-24 21:07:04 +0300 Timo Sirainen (c37098f8c) fts-lucene: Added default_language setting and separated stemmer/textcat support. M configure.in M src/plugins/fts-lucene/Makefile.am M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/fts-lucene-plugin.h M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h 2011-08-23 23:25:14 +0300 Timo Sirainen (d9f730d67) lib-index: When creating dovecot.index.backup files, fdatasync() them first. Otherwise if the dovecot.index file had been written to recently, it could lose both the new and the old backup data. M src/lib-index/mail-index-write.c 2011-08-23 23:03:41 +0300 Timo Sirainen (0fcfa7698) sdbox: Avoid assert-crashing if mail being saved suddenly became corrupted. M src/lib-storage/index/dbox-single/sdbox-mail.c 2011-08-23 22:39:26 +0300 Timo Sirainen (8ad684ff3) lib-master: Make sure ipc server fd isn't tried to be accessed after it's closed. M src/lib-master/ipc-server.c 2011-08-23 22:38:24 +0300 Timo Sirainen (b74cef81f) rawlog: Use the lib-master API calls. M src/util/rawlog.c 2011-08-23 22:14:38 +0300 Timo Sirainen (36f4f01d5) mbox: Avoid crashing when getting GUID or header-md5 in some conditions. mbox file can be opened and locked (especially with pop3_lock_session=yes) without actually creating a stream for it. M src/lib-storage/index/mbox/mbox-mail.c 2011-08-23 21:41:24 +0300 Timo Sirainen (f45038537) zlib: Fixed reading concatenated .gz files. M src/plugins/zlib/istream-zlib.c 2011-08-23 21:20:13 +0300 Timo Sirainen (b8afdaa1b) login proxy: Fixed assert-crash on io_add() when client disconnects at a bad time. M src/login-common/client-common-auth.c 2011-08-23 20:43:36 +0300 Timo Sirainen (683bae99b) lib-lda: Don't crash if remote disconnects during sending mail via LMTP. M src/lib-lda/lmtp-client.c 2011-08-23 04:52:55 +0300 Timo Sirainen (2d28870ca) fts-lucene: Add '/' suffix to textcat_dir if it's not already there. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-23 04:44:26 +0300 Timo Sirainen (64f30df0b) fts-lucene: Free all Lucene's memory on plugin deinit. M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h 2011-08-23 04:44:03 +0300 Timo Sirainen (920f6ee17) fts-lucene: Fixed memory leak in snowball analyzer. M src/plugins/fts-lucene/Snowball.cc M src/plugins/fts-lucene/SnowballAnalyzer.h 2011-08-23 03:31:50 +0300 Timo Sirainen (39d2cc255) indexer: Treat worker connections as client connections to avoid early idle-kills. M src/indexer/worker-pool.c 2011-08-23 03:31:15 +0300 Timo Sirainen (21e6b4fd8) lib-master: Added master_service_client_connection_created() M src/lib-master/master-service.c M src/lib-master/master-service.h 2011-08-18 18:21:33 +0300 Timo Sirainen (1ef2ea0e6) mdbox: Remove refcount=0 records from map index on the first purge (not second). M src/lib-storage/index/dbox-multi/mdbox-purge.c 2011-08-18 18:20:08 +0300 Timo Sirainen (50854b51d) mdbox: Remove refcount=0 records from map index on the first purge (not second). M src/lib-storage/index/dbox-multi/mdbox-purge.c 2011-08-18 18:12:59 +0300 Timo Sirainen (0575fb544) Increased initial memory pool size. M src/lib-storage/mail-storage-service.c 2011-08-18 17:59:52 +0300 Timo Sirainen (6f7b4a677) indexer: Code cleanup M src/indexer/worker-pool.c 2011-08-16 23:37:42 +0300 Timo Sirainen (d29ec22aa) fts-lucene: Use TermQuery instead of PrefixQuery for searches. Although PrefixQuery gives a more IMAP-like result, it's slower and can fail if the prefix string is small. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-16 23:31:31 +0300 Timo Sirainen (03f4c5f35) fts-lucene: Automatically delete corrupted indexes and mark all mailboxes unindexed. M src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h 2011-08-16 23:21:52 +0300 Timo Sirainen (3b55c4f0e) fts-lucene: doveadm fts rescan now resets "last indexed uid" for all mailboxes. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-16 23:12:35 +0300 Timo Sirainen (a92dab68f) fts-lucene: Avoid unnecessarily creating the lucene-indexes directory. M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-16 22:53:01 +0300 Timo Sirainen (1fb81cb0b) dbox: Create symlink to alt root dir, and warn whenever it changes. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-storage.h 2011-08-16 22:52:19 +0300 Timo Sirainen (2becb54a6) lib-storage: Don't crash on getting alt root dir, when no alt dir is specified. M src/lib-storage/mailbox-list.c 2011-08-16 22:36:23 +0300 Timo Sirainen (37cfbf01c) lib-storage: Log alt path when mail_debug=yes M src/lib-storage/mailbox-list.c 2011-08-16 22:36:04 +0300 Timo Sirainen (7920a4732) lib-storage: Log alt path when mail_debug=yes M src/lib-storage/mailbox-list.c 2011-08-16 22:27:18 +0300 Timo Sirainen (05c56ea2a) lib-index: Optimized handling MAIL_TRANSACTION_EXPUNGE_GUID records in large index. M src/lib-index/mail-index-sync-update.c 2011-08-16 22:27:06 +0300 Timo Sirainen (73e9db676) lib-index: Optimized handling MAIL_TRANSACTION_EXPUNGE_GUID records in large index. M src/lib-index/mail-index-sync-update.c 2011-08-16 22:26:12 +0300 Timo Sirainen (03a83759c) fts-lucene: Don't add messages to expunge log that aren't even in the index. M src/plugins/fts-lucene/fts-backend-lucene.c 2011-08-16 22:23:48 +0300 Timo Sirainen (37fefd2da) fts-lucene: Once enough messages have been deleted, trigger optimize via indexer. M src/plugins/fts-lucene/fts-backend-lucene.c 2011-08-16 22:22:32 +0300 Timo Sirainen (4ca9910d9) fts-lucene: Yet another (final!) attempt at avoiding "Too Many Clauses" error. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-16 22:21:38 +0300 Timo Sirainen (e9257b453) fts: Added fts_indexer_cmd() for easily sending commands to indexer. M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-build-indexer.c 2011-08-16 22:21:06 +0300 Timo Sirainen (294f579cd) indexer: Added OPTIMIZE command to optimize fts index. M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-queue.h M src/indexer/indexer.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/indexer/worker-connection.h 2011-08-16 22:20:40 +0300 Timo Sirainen (20eafc2a8) lib-storage: Added MAILBOX_SYNC_FLAG_OPTIMIZE flag for triggering fts optimize. This is a pretty ugly kludge, since it does nothing when FTS isn't enabled.. M src/lib-storage/mail-storage.h M src/plugins/fts/fts-storage.c 2011-08-16 21:08:23 +0300 Timo Sirainen (1e0842a68) fts-lucene: Another attempt to avoid "Too Many Clauses" error by not using ? wildcard. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-16 20:04:29 +0300 Timo Sirainen (6bc441731) fts-lucene: Fix to previous change: actually use WildcardQuery, not TermQuery.. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-16 19:51:28 +0300 Timo Sirainen (87ac1612e) lazy-expunge: Avoid crashing if user init fails. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2011-08-16 19:46:06 +0300 Timo Sirainen (bfd9dc27b) fts-lucene: Use WildcardQuery rather than RangeQuery to limit what UIDs to fetch. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-16 19:19:10 +0300 Timo Sirainen (eae082923) lazy-expunge: Fixed assert-crash when trying to open lazy-expunge mailbox. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2011-08-16 19:06:55 +0300 Timo Sirainen (6727b100f) lib-storage: MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT crashed after previous ioloop change. M src/lib-storage/mail-storage-service.c 2011-08-16 18:50:42 +0300 Timo Sirainen (b37dc96b1) fts: Assert-crashfix to HTML parsing if the document ends with a small tag. M src/plugins/fts/fts-parser-html.c 2011-08-16 18:33:27 +0300 Timo Sirainen (1388b590d) Replaced "ioloop log" with a more generic "ioloop context". The context can call multiple callbacks that can do anything they want, including setting the log prefix. M src/lib-storage/mail-storage-service.c M src/lib/ioloop-internal.h M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-kqueue.c M src/lib/ioloop.c M src/lib/ioloop.h 2011-08-16 18:27:40 +0300 Timo Sirainen (88f35177b) lib-storage: Fixed assert-crash caused by previous stats change. M src/lib-storage/index/index-search.c 2011-08-16 17:02:08 +0300 Timo Sirainen (1eaaa2c90) lib-storage: Moved stats_* from mail to transaction. With the API changes to search, having them in mail doesn't make sense anymore, since mailbox_search_next() can return multiple different mails with different stats. M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-search.c M src/lib-storage/index/istream-mail-stats.c M src/lib-storage/index/istream-mail-stats.h M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h 2011-08-16 16:59:40 +0300 Timo Sirainen (015523cce) Compiler warning fix. M src/lib-storage/mail-storage.c 2011-08-15 14:48:52 +0300 Timo Sirainen (e3f89f85e) lib-index: Assert-crashfix when reading transaction log header fails with ESTALE. M src/lib-index/mail-transaction-log-file.c 2011-08-15 14:48:18 +0300 Timo Sirainen (8f0e6d627) lib-index: Avoid crashing when dealing with duplicate transaction log sequences. M src/lib-index/mail-transaction-log-file.c 2011-08-15 14:33:36 +0300 Timo Sirainen (edc3dae18) fts-lucene: Don't crash if expunging didn't actually do anything. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-15 01:18:01 +0300 Timo Sirainen (2b49daf5e) example-config: Updated auth_username_format default to match reality. M doc/example-config/conf.d/10-auth.conf 2011-08-15 01:11:47 +0300 Timo Sirainen (8eb118a66) lib-storage: Fixed mail_storage_copy_can_use_hardlink() for mode=0600 with different uids. M src/lib-storage/mail-copy.c 2011-08-15 01:06:19 +0300 Timo Sirainen (47d5cc097) lib-storage: mailbox_list_get_permissions() now returns struct mailbox_permissions. Also added new file_uid and file_gid fields to the mailbox_permissions. M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/plugins/acl/acl-backend-vfile.c 2011-08-15 00:44:01 +0300 Timo Sirainen (6c1a5346f) Compiler warning fix. M src/lib-storage/mail.c 2011-08-15 00:34:45 +0300 Timo Sirainen (bfa7ef85a) mbox: Generate mailbox GUID without syncing the mbox, locking it is enough. M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-private.h M src/lib-storage/index/mbox/mbox-sync.c 2011-08-15 00:30:18 +0300 Timo Sirainen (4fe2f0c34) mbox: Fixed crashing with pop3_lock_session=yes M src/lib-storage/index/mbox/mbox-lock.c 2011-08-14 23:39:10 +0300 Timo Sirainen (1a78f0cc6) lib-storage: Don't crash if INBOX is in a namespace with non-"" non-"INBOX/" prefix. M src/lib-storage/mail-storage.c 2011-08-14 21:35:39 +0300 Timo Sirainen (9b664389d) fts-lucene: doveadm fts rescan now also optimizes the index at the end. M src/plugins/fts-lucene/fts-backend-lucene.c 2011-08-14 21:29:07 +0300 Timo Sirainen (96a738c37) fts-solr-old: Mailbox names are mUTF-7 in the Solr index, not UTF-8. M src/plugins/fts-solr/Makefile.am M src/plugins/fts-solr/fts-backend-solr-old.c 2011-08-14 21:28:28 +0300 Timo Sirainen (09c8ed62f) lib-imap: Added t_imap_utf8_to_utf7() M src/lib-imap/imap-utf7.c M src/lib-imap/imap-utf7.h 2011-08-14 21:02:43 +0300 Timo Sirainen (df26373d0) indexer: Don't die on "idle kill signal" if workers are still busy. M src/indexer/indexer.c M src/indexer/worker-pool.c M src/indexer/worker-pool.h 2011-08-14 20:55:32 +0300 Timo Sirainen (2a4723165) indexer: Potential crashfix on deinit. M src/indexer/worker-connection.c 2011-08-14 20:55:12 +0300 Timo Sirainen (6990472df) fts-lucene: Actually delete messages from index on expunge/rescan. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-14 20:41:44 +0300 Timo Sirainen (bc0553df7) fts: fts_expunge_log_uid_count() returned garbage on nonexistent log. M src/plugins/fts/fts-expunge-log.c 2011-08-14 20:41:21 +0300 Timo Sirainen (a7061727e) fts: Memory leak fix M src/plugins/fts/fts-storage.c 2011-08-14 20:41:06 +0300 Timo Sirainen (def291c1c) fts-lucene: Avoid crashing on doveadm dump. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-14 20:40:49 +0300 Timo Sirainen (5ab440ddd) fts-lucene: Fixed doveadm dump's lucene-index detection. M src/plugins/fts-lucene/doveadm-fts-lucene.c 2011-08-12 17:39:19 +0300 Timo Sirainen (027c729b3) fts-lucene: Use fts expunge log instead of scanning the entire index for expunged mails. M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h 2011-08-12 17:37:23 +0300 Timo Sirainen (3dfa8c707) fts: Added "doveadm fts rescan" command. M src/plugins/fts/doveadm-fts.c 2011-08-12 17:33:29 +0300 Timo Sirainen (a569c6df4) fts: Added fts_backend_rescan() M src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c M src/plugins/fts/fts-api.h 2011-08-12 17:47:29 +0300 Timo Sirainen (cc2954ad6) fts: Added generic "fts expunge log". This is intended to be used by fts backends that can't directly expunge from the index, but rather need to log the expunges and do the actual expunging later. Added also "doveadm dump" support for the log. M src/plugins/fts/Makefile.am A src/plugins/fts/doveadm-dump-fts-expunge-log.c M src/plugins/fts/doveadm-fts.c A src/plugins/fts/doveadm-fts.h A src/plugins/fts/fts-expunge-log.c A src/plugins/fts/fts-expunge-log.h 2011-08-12 17:27:05 +0300 Timo Sirainen (39ed514f9) fts-lucene: Added "doveadm dump" support for lucene index. M src/plugins/fts-lucene/Makefile.am A src/plugins/fts-lucene/doveadm-fts-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h 2011-08-12 17:40:55 +0300 Timo Sirainen (6feb0ff58) lib-storage: Added mail_guid_128_hash/cmp() M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/lib-storage/mailbox-guid-cache.c 2011-08-12 17:40:19 +0300 Timo Sirainen (b53af186a) liblib: Added generic mem_hash() M src/lib/hash.c M src/lib/hash.h 2011-08-11 18:10:33 +0300 Timo Sirainen (d3380f13c) fts: Added "doveadm fts optimize" command. M src/plugins/fts/Makefile.am A src/plugins/fts/doveadm-fts.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h 2011-08-11 18:05:56 +0300 Timo Sirainen (009d6d90b) fts-lucene: Several fixes and improvements. M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h 2011-08-11 18:03:20 +0300 Timo Sirainen (bd4e36a8c) lib-storage: Added mailbox_alloc_guid() for opening mailbox by its GUID. M src/lib-storage/Makefile.am M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h A src/lib-storage/mailbox-guid-cache.c A src/lib-storage/mailbox-guid-cache.h M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2011-08-11 18:02:25 +0300 Timo Sirainen (fcfe85637) lib-storage: Added struct mailbox.generation_sequence. This can be used for caching struct mailbox pointers and checking later if two struct mailboxes + their generation sequences match. If they do, it's the same struct mailbox. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage-private.h 2011-08-11 17:35:45 +0300 Timo Sirainen (1e1549f93) fts-lucene: Store indexed header names lowercased so they can actually be searched. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-10 18:53:50 +0300 Timo Sirainen (e2e55583a) fts-squat: Assert-crashfix on indexing M src/plugins/fts-squat/squat-trie.c 2011-08-10 17:47:50 +0300 Timo Sirainen (a57c161a5) Removed dead code. M src/imap/imap-status.c M src/lib-storage/index/imapc/imapc-seqmap.c M src/lib-storage/list/index-mailbox-list-status.c M src/lib-storage/list/index-mailbox-list.c 2011-08-10 17:43:49 +0300 Timo Sirainen (8f2444f78) lib-ssl-iostream: ssl_iostream_get_security_string() didn't return compression. M src/lib-ssl-iostream/iostream-openssl.c 2011-08-10 17:37:16 +0300 Timo Sirainen (857c9d201) Makefile fixes to include everything in dist M src/plugins/fts-lucene/Makefile.am M src/plugins/fts/Makefile.am 2011-08-10 17:37:07 +0300 Timo Sirainen (a5e89374c) fts: Increased initial memory pool size M src/plugins/fts/fts-storage.c 2011-08-10 17:02:18 +0300 Timo Sirainen (68c47763e) Fixed compiling without OpenSSL. M configure.in M src/lib-ssl-iostream/Makefile.am A src/lib-ssl-iostream/iostream-ssl-none.c 2011-08-10 16:50:19 +0300 Timo Sirainen (1994ae2ac) fts-lucene: Added missing textcat.conf A src/plugins/fts-lucene/textcat.conf 2011-08-10 16:16:57 +0300 Timo Sirainen (4b4aabb44) lib-storage: Fixed getting recent count for mailbox when it wasn't synced. M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c 2011-08-10 16:08:45 +0300 Timo Sirainen (ecf44c744) doveadm index -n: Don't sync mailbox when checking the recent count. The syncing alone can take a long time with huge maildirs. Better to be slightly wrong than waste a lot of time all the time. M src/doveadm/doveadm-mail-index.c M src/indexer/master-connection.c 2011-08-10 16:00:45 +0300 Timo Sirainen (08ed4ab71) lib-storage: Fixes to handling INBOX/ namespace prefix. M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c 2011-08-10 15:17:12 +0300 Timo Sirainen (947e4e68b) indexer: Deinitialize without crashing when there are requests. M src/indexer/indexer.c 2011-08-10 15:16:44 +0300 Timo Sirainen (7fdc192ee) indexer: Fix to handling disconnected worker. M src/indexer/worker-connection.c 2011-08-10 15:03:59 +0300 Timo Sirainen (451d1a0ce) fts: Assert-crashfix to HTML parsing. M src/plugins/fts/fts-parser-html.c 2011-08-10 14:56:00 +0300 Timo Sirainen (73caa98b5) fts: Don't crash if application/octet-stream attachment doesn't have filename. M src/plugins/fts/fts-parser-script.c 2011-08-10 14:50:56 +0300 Timo Sirainen (2ee34f0b0) indexer: If worker disconnects, log whose requests were discarded. M src/indexer/worker-connection.c 2011-08-10 14:48:08 +0300 Timo Sirainen (b24870f2d) indexer: Handle unexpected worker disconnections better. M src/indexer/worker-connection.c 2011-08-10 14:19:00 +0300 Timo Sirainen (fcaf124d4) doveadm: The actual doveadm part of the previous commit.. M src/doveadm/doveadm-mail-index.c 2011-08-10 14:17:54 +0300 Timo Sirainen (7c0e7d96e) doveadm index: Added -n parameter to specify max number of recent msgs to perform indexing. The idea is that if a user hasn't opened the mailbox for a long time (or ever), there's not much point in wasting time on doing indexing. M src/indexer/indexer-client.c M src/indexer/indexer-queue.c M src/indexer/indexer-queue.h M src/indexer/indexer.c M src/indexer/master-connection.c M src/indexer/worker-connection.c M src/indexer/worker-connection.h 2011-08-10 13:46:31 +0300 Timo Sirainen (dc03b7bb2) fts-lucene: Crashfix for handling header searches with stop words (etc). M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-09 20:44:34 +0300 Timo Sirainen (4f68fa8a1) script: Be sure to handle LF+LF properly. M src/plugins/quota/quota.c M src/util/script.c 2011-08-09 20:39:33 +0300 Timo Sirainen (6e52ab024) script: Comment update M src/util/script.c 2011-08-09 20:05:38 +0300 Timo Sirainen (0be9d7c58) indexer-worker: verbose_proctitle=yes now shows username+mailbox. M src/indexer/master-connection.c 2011-08-09 19:56:54 +0300 Timo Sirainen (212fbaebe) fts: Data stack access fix. M src/plugins/fts/fts-search.c 2011-08-09 19:50:02 +0300 Timo Sirainen (fe9fb910d) indexer: Read configuration earlier while we still have privileges. M src/indexer/indexer.c 2011-08-09 19:42:23 +0300 Timo Sirainen (cfa8a0446) indexer: If verbose_proctitle=yes, show how many clients/requests there are. M src/indexer/indexer-client.c M src/indexer/indexer-client.h M src/indexer/indexer-queue.c M src/indexer/indexer-queue.h M src/indexer/indexer.c M src/indexer/indexer.h 2011-08-09 19:28:00 +0300 Timo Sirainen (2ce5b1d19) fts-lucene: Fixed compiling without textcat/snowball M src/plugins/fts-lucene/Makefile.am M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-09 16:41:29 +0300 Timo Sirainen (73bc0de05) fts: Log how many messages were indexed. M src/plugins/fts/fts-build-private.h M src/plugins/fts/fts-build.c 2011-08-09 16:33:19 +0300 Timo Sirainen (cfbacf6ea) lib-index: MAIL_INDEX_SYNC_FLAG_DELETING_INDEX comment updated M src/lib-index/mail-index.h 2011-08-09 16:32:27 +0300 Timo Sirainen (491178793) lib-index: MAIL_INDEX_SYNC_FLAG_DELETING_INDEX now allows committing changes to deleted index. This fixes deleting mailboxes. M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction.c 2011-08-09 15:29:26 +0300 Timo Sirainen (b1b0ec3a0) fts-lucene: Crashfix when textcat wasn't enabled. M src/plugins/fts-lucene/fts-backend-lucene.c 2011-08-09 15:05:18 +0300 Timo Sirainen (c8296ac1e) fts-lucene: Added initial support for language detection and stemming. This requires textcat and snowball (libstemmer) libraries. This can be enabled by setting: fts_lucene = textcat_dir=/usr/share/libtextcat \ textcat_conf=/etc/dovecot/textcat.conf I'm not yet sure how good of an idea it is to actually use this, so it needs some testing.. For example how bad is it if language is detected incorrectly? M configure.in M src/plugins/fts-lucene/Makefile.am A src/plugins/fts-lucene/Snowball.cc A src/plugins/fts-lucene/SnowballAnalyzer.h A src/plugins/fts-lucene/SnowballFilter.h M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-lucene/fts-lucene-plugin.h M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h 2011-08-09 14:13:13 +0300 Timo Sirainen (9a4e08ad8) indexer-worker: Added -D parameter to enable core dumps. M src/indexer/indexer-worker.c 2011-08-09 13:53:59 +0300 Timo Sirainen (5c1fdc9aa) decode2text: If unzip fails, just ignore the attachment silently. M src/plugins/fts/decode2text.sh 2011-08-09 13:45:26 +0300 Timo Sirainen (dd7ec89cb) fts html parser: Assert-crashfix when parsing entities. M src/plugins/fts/fts-parser-html.c 2011-08-09 13:42:25 +0300 Timo Sirainen (402953973) decode2text: Ignore any errors from pdftotext M src/plugins/fts/decode2text.sh 2011-08-09 12:48:15 +0300 Timo Sirainen (1bed3cc1d) Compile fix for CentOS 4.9 (and maybe others). M src/lib-storage/index/index-mail.c 2011-08-07 22:28:19 +0300 Timo Sirainen (5dbce1887) doveadm-server: More fixes M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.c 2011-08-07 22:11:20 +0300 Timo Sirainen (10b804090) doveadm-server: Many fixes to make it actually work properly. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/doveadm-print-server.c M src/doveadm/server-connection.c 2011-08-07 22:10:23 +0300 Timo Sirainen (0950aed81) doveadm index -q: Delay connecting to indexer. M src/doveadm/doveadm-mail-index.c 2011-08-07 20:47:59 +0300 Timo Sirainen (523037562) doveadm server: Fixed handling command parameters M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2011-08-05 12:07:48 +0300 Timo Sirainen (a9f9c80e6) fts: decode2text.sh now ignores any errors from doc/xls/ppt decoders. M src/plugins/fts/decode2text.sh 2011-08-04 20:21:38 +0300 Timo Sirainen (d5d2eb556) ipc client: Fixed crashing on ipc server disconnection. M src/lib-master/ipc-server.c 2011-08-04 19:57:35 +0300 Timo Sirainen (82c7443ae) mail_index_get_keywords() / status.keywords weren't actually guaranteed to be NULL terminated This could have caused crashes or garbage keywords be presented to clients in some situations. M src/lib-index/mail-index.c 2011-08-04 19:57:02 +0300 Timo Sirainen (f5c53272a) mail_index_get_keywords() / status.keywords weren't actually guaranteed to be NULL terminated This could have caused crashes or garbage keywords be presented to clients in some situations. M src/lib-index/mail-index.c 2011-08-04 19:29:25 +0300 Timo Sirainen (1925b60ed) pop3: Fixed RETR/TOP commands. M src/pop3/pop3-commands.c 2011-08-04 16:45:02 +0300 Timo Sirainen (402406d66) fts-lucene: Several fixes to avoid opening index during expunging. M src/plugins/fts-lucene/fts-backend-lucene.c 2011-08-04 16:44:33 +0300 Timo Sirainen (a0475b241) fts: Tell backends if we're currently in the code because we're syncing. That basically means it's either indexer process or doveadm index. M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-storage.c 2011-08-04 16:43:51 +0300 Timo Sirainen (083c67ac2) fts: Maildir workaround to avoid assert-crash during indexing. This should be fixed by simply not having Maildir do a full sync when it's trying to find some file. M src/plugins/fts/fts-storage.c 2011-08-04 16:42:35 +0300 Timo Sirainen (e2462f35d) fts: Don't fail index build if trying to index a message that is already expunged. M src/plugins/fts/fts-build.c 2011-08-04 16:16:20 +0300 Timo Sirainen (61af1856d) fts-lucene: Don't crash when trying to search an unsearchable word. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-04 15:49:49 +0300 Timo Sirainen (a6de00f8d) fts-lucene: Fixed checking if we need to track expunges or optimize. M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-04 15:44:33 +0300 Timo Sirainen (97c4e232e) fts-lucene: Fixed handling expunges M src/plugins/fts-lucene/fts-backend-lucene.c 2011-08-04 15:40:30 +0300 Timo Sirainen (cea6742c3) fts: Clear updating flag on update deinit. M src/plugins/fts/fts-api.c 2011-08-04 15:08:44 +0300 Timo Sirainen (9d2ef4253) fts: Define pkglibexecdir explicitly in Makefile.am, since older automakes don't. M src/plugins/fts/Makefile.am 2011-08-04 14:49:36 +0300 Timo Sirainen (57b19a7fa) fts: Added a bit more error checking to decode2text.sh M src/plugins/fts/decode2text.sh 2011-08-04 14:13:39 +0300 Timo Sirainen (ceae1acc3) fts: force-resync now calls optimize on the backend. This mainly works with Lucene backend to recheck what messages actually exist. M src/plugins/fts/fts-storage.c 2011-08-04 14:12:56 +0300 Timo Sirainen (eead39e65) fts: NULs weren't still handled correctly in message headers. M src/plugins/fts/fts-build.c 2011-08-04 14:12:30 +0300 Timo Sirainen (8a7c3622d) fts-lucene: Don't crash if optimize can't open the index. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-04 14:12:11 +0300 Timo Sirainen (30003461d) fts-lucene: If optimize doesn't find an index, set all UIDs as missing. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-04 13:48:14 +0300 Timo Sirainen (f94e1eb89) fts-lucene: Delete stale write locks. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-08-04 13:42:49 +0300 Timo Sirainen (2f971d239) fts: Install decode2text to libexecdir. M src/plugins/fts/Makefile.am M src/plugins/fts/decode2text.sh 2011-08-04 13:40:43 +0300 Timo Sirainen (c4ba1974c) fts: decode2text added support for openxml and opendocument formats M src/plugins/fts/decode2text.sh 2011-08-04 13:38:51 +0300 Timo Sirainen (04f80fbc3) fts: Added xml2text binary M .hgignore M src/plugins/fts/Makefile.am A src/plugins/fts/xml2text.c 2011-08-04 13:05:26 +0300 Timo Sirainen (96f62326b) fts: HTML parser now makes sure space is added for each This could be smarter though, like not doing this for , but it gets a bit complex.. M src/plugins/fts/fts-parser-html.c 2011-08-03 20:44:43 +0300 Timo Sirainen (e7bdea8f7) lib-storage: Don't crash listing subscription entry of "ns prefix" without separator. M src/lib-storage/list/mailbox-list-subscriptions.c 2011-08-03 20:29:53 +0300 Timo Sirainen (06972d990) doveadm server: Non-proxying mode may not have worked. M src/doveadm/doveadm-mail-server.c 2011-08-03 20:29:16 +0300 Timo Sirainen (b38d0e738) eacces_error_get*(): Handle non-int struct stat.st_mode properly. M src/lib/eacces-error.c 2011-08-03 19:06:37 +0300 Timo Sirainen (4dd0cbd51) Merged changes from v2.0 tree. 2011-08-03 18:59:07 +0300 Timo Sirainen (4d27f95c7) fts: Don't pass NUL bytes to FTS backend. It can confuse them. M src/plugins/fts/fts-build.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-parser.h 2011-08-03 18:58:45 +0300 Timo Sirainen (a483163ec) fts: Fixed a crash in HTML parser. M src/plugins/fts/fts-parser-html.c 2011-08-03 18:54:19 +0300 Timo Sirainen (a34f47ba8) fts: Crashfix. M src/plugins/fts/fts-parser-script.c 2011-08-02 13:29:47 +0300 Timo Sirainen (fe215bf7c) i_getgr*(): OpenBSD workaround is now only used for <5.0. Patch by Brad. M src/lib/ipwd.c 2011-07-29 14:30:32 +0300 Timo Sirainen (9ba91492d) lib-storage: mailbox_list_mailbox() now returns INBOX as nonexistent if it physically doesn't exist. This is important for MAILBOX_LIST_ITER_NO_AUTO_BOXES to work correctly with Maildir++ layout INBOX. M src/lib-storage/mailbox-list.c 2011-07-29 14:29:01 +0300 Timo Sirainen (cff1f1822) lib-storage: Added auto_boxes parameter to mailbox_exists(). M src/imap/cmd-subscribe.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/test-mailbox.c M src/plugins/acl/acl-mailbox.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/virtual/virtual-storage.c 2011-07-29 14:21:13 +0300 Timo Sirainen (da700813d) lib-storage: Unit test fix M src/lib-storage/test-mail.c 2011-07-29 13:41:04 +0300 Timo Sirainen (647e66ca0) dsync: Crashfix M src/dsync/dsync-worker-local.c 2011-07-29 12:25:52 +0300 Timo Sirainen (253201e2b) lib-storage: renaming mailboxes under different parent was broken in fs layout If alt storage was used with sdbox or if index or control dirs were used, renaming "foo" to "bar/foo" would result "foo" not being renamed for those directories. M src/lib-storage/list/mailbox-list-fs.c 2011-07-29 00:04:20 +0300 Timo Sirainen (ea48f355d) lib-storage: Removed unnecessary NULL checks. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-namespace.c 2011-07-28 17:46:37 +0300 Timo Sirainen (0bcc7b7b4) lib-storage: Fixed crashing on "NOT " search. M src/lib-storage/index/index-search.c 2011-07-28 17:23:01 +0300 Timo Sirainen (ecc5a1a44) fts: Added attachment decoding via an external script. M src/plugins/fts/Makefile.am A src/plugins/fts/decode2text.sh M src/plugins/fts/fts-build.c M src/plugins/fts/fts-parser-html.c A src/plugins/fts/fts-parser-script.c M src/plugins/fts/fts-parser.c M src/plugins/fts/fts-parser.h 2011-07-28 17:01:26 +0300 Timo Sirainen (7e50cca6b) lib-mail: Added message_decoder_set_return_binary() M src/lib-mail/message-decoder.c M src/lib-mail/message-decoder.h 2011-07-28 17:01:09 +0300 Timo Sirainen (7631f1615) lib-storage: mail->saving was set too late, which could have caused crashes. M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail.c M src/plugins/virtual/virtual-mail.c 2011-07-28 17:00:29 +0300 Timo Sirainen (e638c0d05) lmtp: Crashfix M src/lmtp/client.c 2011-07-28 16:59:56 +0300 Timo Sirainen (2d3731908) "script" service API changed to provide more functionality. M src/plugins/quota/quota.c M src/util/script.c 2011-07-28 12:23:06 +0300 Timo Sirainen (ec089b730) mdbox: Crashfix M src/lib-storage/index/dbox-multi/mdbox-map.c 2011-07-28 12:08:10 +0300 Timo Sirainen (d4950399f) imap: FETCH BODY[HEADER.FIELDS (..)] may have tried to fetch garbage field names. Such situations were quite likely to cause a crash though. M src/imap/imap-fetch-body.c 2011-07-27 19:46:01 +0300 Timo Sirainen (d12d1accd) imap-quota: Don't crash if invalid mailbox name is given to GETQUOTAROOT. M src/plugins/imap-quota/imap-quota-plugin.c 2011-07-27 17:58:27 +0300 Timo Sirainen (772120713) fts: Strip text/html mails to plaintext before sending them to FTS backend. M src/plugins/fts/Makefile.am M src/plugins/fts/fts-build-private.h M src/plugins/fts/fts-build.c A src/plugins/fts/fts-parser-html.c A src/plugins/fts/fts-parser.c A src/plugins/fts/fts-parser.h A src/plugins/fts/html-entities.h 2011-07-27 14:53:52 +0300 Timo Sirainen (03176d7c7) solr-schema: Version number is Solr's schema version, not Dovecot version. M doc/solr-schema.xml 2011-07-26 15:09:02 +0300 Timo Sirainen (da2f9bc5d) IMAP: Implemented the rest of FUZZY extension. M configure.in M src/imap/imap-search.c M src/imap/imap-search.h 2011-07-26 15:04:57 +0300 Timo Sirainen (65c3bc966) lib-storage: Sorting by relevancy returned messages in reverse order. M src/lib-storage/index/index-sort.c 2011-07-26 14:11:23 +0300 Timo Sirainen (fd14806f8) s/search score/search relevancy/ M src/imap/cmd-sort.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-sort.c M src/lib-storage/mail-storage.h M src/plugins/fts/fts-storage.c 2011-07-26 14:10:47 +0300 Timo Sirainen (0ae79eb8f) fts-lucene: Added fuzzy search support. M src/plugins/fts-lucene/lucene-wrapper.cc 2011-07-26 14:10:41 +0300 Timo Sirainen (154224a06) fts-solr: Added fuzzy search support. M src/plugins/fts-solr/fts-backend-solr.c 2011-07-26 14:09:49 +0300 Timo Sirainen (560e65f6c) lib-storage: Added FUZZY search key that adds fuzzy=TRUE to its child args. M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search.h 2011-07-26 13:55:22 +0300 Timo Sirainen (13d58f3be) lib-storage: Search query building no longer converts strings to decomposed titlecase. M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-build.h M src/lib-storage/mail-search-register-imap.c 2011-07-26 13:54:23 +0300 Timo Sirainen (5601c23c0) fts-squat: Convert search key to decomposed titlecase instead of assuming it is. M src/plugins/fts-squat/fts-backend-squat.c 2011-07-26 13:52:20 +0300 Timo Sirainen (556f584a6) lib-mail: message_search_init() now converts search key to decomposed titlecase. M src/lib-mail/message-search.c M src/lib-mail/message-search.h 2011-07-26 13:38:35 +0300 Timo Sirainen (0fbea4dd3) fts: Convert input text to decomposed titlecase only for Squat backend. Lucene and Solr can handle case-insensitivity internally. M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-build-private.h M src/plugins/fts/fts-build.c 2011-07-22 13:52:27 +0300 Timo Sirainen (4fd7afd15) doveadm dump: Added fts support. M src/doveadm/doveadm-dump-index.c 2011-07-22 13:52:16 +0300 Timo Sirainen (fb6e98ba3) fts: Make sure build_more() is called at least once, even when message is 0 bytes. M src/plugins/fts/fts-build.c 2011-07-22 13:51:57 +0300 Timo Sirainen (403762eea) fts: Make sure fts_index_get_last_uid() gets the latest value from index. M src/plugins/fts/fts-api.c 2011-07-22 13:21:59 +0300 Timo Sirainen (8d587838c) fts: Redesigned/enhanced FTS API and how virtual plugin works with it. The changes include: - Only indexer process and "doveadm index" do FTS indexing now. Other processes connect to the indexer process via UNIX socket and request indexing a specific mailbox. - FTS backends can now index/search any search key. Current backends implement indexing for some specific header fields (Subject, From, To, Cc, Bcc), but it would also be possible to add indexing for e.g. message size or date. - CLucene support is fixed and fully functional. - Solr is split to "solr" and "solr_old" backends. The new "solr" backend supports the new header fields. It also uses mailbox GUIDs as mailbox identifiers, so that renaming a mailbox doesn't require reindexing. The "solr_old" uses the old Solr schema and doesn't support any new features. M configure.in M doc/solr-schema.xml M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc M src/plugins/fts-lucene/lucene-wrapper.h M src/plugins/fts-solr/Makefile.am A src/plugins/fts-solr/fts-backend-solr-old.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/fts-solr-plugin.h M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-solr/solr-connection.h M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-trie.h M src/plugins/fts/Makefile.am M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c M src/plugins/fts/fts-api.h A src/plugins/fts/fts-build-indexer.c A src/plugins/fts/fts-build-mailbox.c A src/plugins/fts/fts-build-private.h A src/plugins/fts/fts-build-virtual.c A src/plugins/fts/fts-build.c A src/plugins/fts/fts-build.h D src/plugins/fts/fts-mailbox.c D src/plugins/fts/fts-mailbox.h M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-plugin.h A src/plugins/fts/fts-search-serialize.c A src/plugins/fts/fts-search-serialize.h M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2011-07-22 13:13:29 +0300 Timo Sirainen (88311240b) Added uni_utf8_strlen(). M src/lib/unichar.c M src/lib/unichar.h 2011-07-22 13:11:26 +0300 Timo Sirainen (7e468fac2) lib-storage: mailbox_exists() now returns NOSELECT for invalid mailbox names instead of error. M src/lib-storage/mail-storage.c 2011-07-22 13:10:41 +0300 Timo Sirainen (cef9562bd) lib-storage: Error handling fix for FS layout. M src/lib-storage/list/mailbox-list-fs-iter.c 2011-07-22 13:10:09 +0300 Timo Sirainen (c10706d23) lib-mail: Added message_header_is_address() M src/lib-mail/message-address.c M src/lib-mail/message-address.h 2011-07-22 13:09:40 +0300 Timo Sirainen (6be93b191) indexer: Fixed loading some plugins when using configure --without-shared-libs. M src/indexer/Makefile.am 2011-07-22 13:09:14 +0300 Timo Sirainen (d616fa4dc) indexer: Send OK reply to client with the given tag. M src/indexer/indexer-client.c 2011-07-22 13:08:39 +0300 Timo Sirainen (71dc24a58) indexer: When worker disconnects, forget which user it was attached to. This fixes an assert crash. M src/indexer/worker-connection.c 2011-07-12 09:59:34 +0300 Timo Sirainen (dbffb9e8b) lib-lda: Do INBOX GUID deduplication based on mailbox GUID, not username. This should be a bit more reliable. M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h 2011-07-12 09:58:29 +0300 Timo Sirainen (43978457a) lib-mail: Make a mail_guid_128_t typedef. M src/lib-mail/mail-types.h 2011-07-02 07:08:26 +0300 Timo Sirainen (013a0e033) lib-storage: Renamed mail_search_arg.not to match_not. C++ compilers don't like the "not". M src/doveadm/doveadm-mail-list-iter.c M src/imap/imap-search-args.c M src/lib-storage/index/index-search.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h M src/plugins/fts/fts-search.c 2011-07-02 05:40:54 +0300 Timo Sirainen (89a2b8909) lib-storage: Made mailbox_list_mkdir_root() public M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.h 2011-07-02 05:38:45 +0300 Timo Sirainen (be110f0a3) lib-storage: mkdir APIs changed. M src/lib-storage/index/dbox-common/dbox-sync-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/plugins/acl/acl-backend-vfile-acllist.c 2011-06-30 08:54:04 +0300 Timo Sirainen (6b636dcfc) Fixed compiling ldap/sql/gssapi plugins. I couldn't figure out any way to disable NOPLUGIN_FLAGS only for those plugins, so those flags are now always disabled for lib-sql library and auth binaries. M src/auth/Makefile.am M src/lib-sql/Makefile.am 2011-06-30 08:35:43 +0300 Timo Sirainen (461c2a454) lmtp: Error message update M src/lmtp/client.c 2011-06-30 08:34:28 +0300 Timo Sirainen (41dbc52ce) lmtp client: Do corking when sending message data. M src/lib-lda/lmtp-client.c 2011-06-30 08:27:32 +0300 Timo Sirainen (ed45903d7) lmtp: Log the current state in disconnect message. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c 2011-06-30 08:00:07 +0300 Timo Sirainen (e30b9e07f) lib-storage: Fixed /chroot/./home style chrooting from userdb home. M src/lib-storage/mail-storage-service.c 2011-06-30 07:26:01 +0300 Timo Sirainen (90a2e2616) liblib: Don't try to send a log prefix to log process if there is none. M src/lib/failures.c 2011-06-29 22:03:24 +0300 Timo Sirainen (4bbaac421) imapc: Fixed previous UID EXPUNGE fix. M src/lib-storage/index/imapc/imapc-sync.c 2011-06-29 12:34:53 +0300 Timo Sirainen (7d6f8d258) imapc: Fixed using UID EXPUNGE for multiple messages M src/lib-storage/index/imapc/imapc-sync.c 2011-06-28 03:59:26 +0300 Timo Sirainen (db4cad7df) doveadm: Fixed displaying output when using -A or -u wildcards. M src/doveadm/doveadm-mail-server.c 2011-06-28 03:31:22 +0300 Timo Sirainen (674b589b8) doveadm acl: Updated usage string. M src/plugins/acl/doveadm-acl.c 2011-06-28 02:49:46 +0300 Timo Sirainen (7af5f78e9) lib-storage: Changed userdb +key=value to key+=value M src/lib-storage/mail-storage-service.c 2011-06-28 02:41:06 +0300 Timo Sirainen (f21c135cf) lib-lda: waitpid() for executed sendmail binary wasn't called correctly. It may have failed with -ECHILD, if the sendmail binary itself forked other processes. M src/lib-lda/smtp-client.c 2011-06-28 02:31:12 +0300 Timo Sirainen (c84c3db87) imap: Don't crash if mailbox UIDVALIDITY is zero when SELECTing a mailbox. M src/imap/cmd-select.c 2011-06-28 02:23:10 +0300 Timo Sirainen (4669fc293) mdbox: Minor code cleanup. M src/lib-storage/index/dbox-multi/mdbox-mail.c 2011-06-28 02:22:58 +0300 Timo Sirainen (e790c9b1f) mdbox: Log an error if uidvalidity=0 unexpectedly. M src/lib-storage/index/dbox-multi/mdbox-sync.c 2011-06-27 23:48:06 +0300 Timo Sirainen (de11cf486) fts: Replaced unnecessary lock()/unlock() from API with refresh() M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/fts-solr-plugin.h M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-trie.h M src/plugins/fts/fts-api-private.h M src/plugins/fts/fts-api.c M src/plugins/fts/fts-api.h M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.h 2011-06-27 23:40:13 +0300 Timo Sirainen (991c17647) fts: Removed the separation of "substring" and "fast" fts backends and search keys. No one wants to use two separate backends and it just makes the code more difficult. M src/lib-storage/index/index-search.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/fts/fts-storage.h 2011-06-27 23:03:00 +0300 Timo Sirainen (6c00502d4) doveadm index: Added -q option to do indexing via the new indexer service. M src/doveadm/doveadm-mail-index.c 2011-06-27 23:02:40 +0300 Timo Sirainen (d9e404180) Added "indexer" service, which uses worker processes to perform queued mailbox indexing. Only a single worker process will index the same user at the same time. This avoids lock waits, especially when doing full text search indexing with backends that require locking. M .hgignore M configure.in M src/Makefile.am A src/indexer/Makefile.am A src/indexer/indexer-client.c A src/indexer/indexer-client.h A src/indexer/indexer-queue.c A src/indexer/indexer-queue.h A src/indexer/indexer-settings.c A src/indexer/indexer-worker-settings.c A src/indexer/indexer-worker.c A src/indexer/indexer.c A src/indexer/indexer.h A src/indexer/master-connection.c A src/indexer/master-connection.h A src/indexer/worker-connection.c A src/indexer/worker-connection.h A src/indexer/worker-pool.c A src/indexer/worker-pool.h 2011-06-27 22:58:49 +0300 Timo Sirainen (8d85926bc) liblib: Added [tp]_strsplit_tabescaped() M src/lib/strescape.c M src/lib/strescape.h 2011-06-27 22:58:31 +0300 Timo Sirainen (ccf50662c) lib-master: Added master_service_set_idle_die_callback() M src/lib-master/master-service-private.h M src/lib-master/master-service.c M src/lib-master/master-service.h 2011-06-27 22:57:56 +0300 Timo Sirainen (1ffb2afe6) master process now tells its children their service's process_limit. M src/lib-master/master-interface.h M src/lib-master/master-service-private.h M src/lib-master/master-service.c M src/lib-master/master-service.h M src/master/service-process.c 2011-06-26 19:34:00 +0300 Timo Sirainen (437a8b0fe) Merged changes from v2.0 tree. 2011-06-26 19:11:52 +0300 Timo Sirainen (45d178e57) doveadm: Minor code cleanup M src/doveadm/doveadm-mail-index.c 2011-06-23 20:00:16 +0300 Timo Sirainen (bf37278dc) lib-storage: Error message fix. M src/lib-storage/mail-storage.c 2011-06-23 20:00:04 +0300 Timo Sirainen (90ed6f2bf) lib-storage: Treat "INBOX" in INBOX/children also case-insensitively. M src/lib-storage/mail-storage.c 2011-06-22 20:26:24 +0300 Timo Sirainen (1f5597beb) lib-storage: Fixed +key=value support to actually work. M src/lib-storage/mail-storage-service.c 2011-06-22 20:16:16 +0300 Timo Sirainen (085414413) lib-storage: MAILBOX_SYNC_FLAG_PRECACHE did nothing when mail_debug=yes M src/lib-storage/index/index-sync.c 2011-06-16 16:37:42 +0300 Timo Sirainen (dea01176c) ssl-params: Make sure we don't leak a timeout. M src/ssl-params/main.c 2011-06-14 16:59:57 +0300 Timo Sirainen (64b61cd24) Moved the main functionality from "doveadm index" to MAILBOX_SYNC_FLAG_PRECACHE This also allows plugins to hook into the sync and implement their own precaching easily. fts indexing is now done this way rather than kludging. M src/doveadm/doveadm-mail-index.c M src/lib-storage/index/index-sync.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/plugins/fts/fts-storage.c 2011-06-14 16:28:55 +0300 Timo Sirainen (737561538) Merged changes from v2.0 tree. 2011-06-13 17:17:59 +0300 Timo Sirainen (e5b06a21b) lmtp: Fixed parsing quoted strings with spaces as local-part for MAIL FROM and RCPT TO. M src/lmtp/commands.c 2011-06-10 19:11:00 +0300 Timo Sirainen (d99833530) lib-storage: When "Recent flags state corrupted" happens, avoid assert-crashing afterwards. M src/lib-storage/index/index-sync.c 2011-06-08 16:05:32 +0300 Timo Sirainen (47569a4b2) lib-storage: Allow appending to existing settings via userdb extra fields. "foo=bar" replaces the setting, while "+foo=bar" appends to the setting. M src/lib-storage/mail-storage-service.c 2011-06-08 16:04:35 +0300 Timo Sirainen (19ac3ae01) vpopmail: Fixed opening SMTP relays. Also don't even try to open IPv6 relays, since vpopmail becomes an open relay then. Based on patch by Matt Brookings. M src/auth/passdb-vpopmail.c 2011-06-07 16:17:25 +0300 Timo Sirainen (062ea54b7) auth_username_format default changed to %Lu M NEWS M src/auth/auth-settings.c 2011-06-07 16:12:13 +0300 Timo Sirainen (b00c511e4) lib-storage: Fixed mail_chroot to work when process was already chrooted there. M src/lib-storage/mail-storage-service.c 2011-06-07 15:18:19 +0300 Timo Sirainen (896766924) ldap: Fixed random assert-crashing with with sasl_bind=yes. M src/auth/db-ldap.c 2011-06-06 18:26:45 +0300 Timo Sirainen (5512d420d) Use SA_RESTART flag for signals wherever possible. Only SIGTERM (and SIGINT for standalone programs) shouldn't use it. M src/auth/auth-cache.c M src/auth/mech-winbind.c M src/doveadm/doveadm-mail.c M src/lib-master/master-service.c M src/lib/child-wait.c M src/log/main.c M src/master/main.c M src/ssl-params/main.c M src/util/maildirlock.c 2011-06-06 18:25:52 +0300 Timo Sirainen (72d404ae3) lib_signals_set_handler(): Changed API to take flags instead of boolean. This is still compatible with the old API, because using FALSE/TRUE as the flags still maps to the same behavior. M src/lib/lib-signals.c M src/lib/lib-signals.h 2011-06-06 18:06:22 +0300 Timo Sirainen (b65c4243b) lib-signals: Removed unnecessary code. M src/lib/lib-signals.c 2011-06-03 18:54:27 +0300 Timo Sirainen (49d3d898e) script-login: When not using "-d" parameter, don't do unnecessary config lookup. M src/util/script-login.c 2011-06-03 18:11:00 +0300 Timo Sirainen (376ed81e5) doveadm acl debug: Show also path to mailbox if it doens't exist. M src/plugins/acl/doveadm-acl.c 2011-06-03 17:37:25 +0300 Timo Sirainen (c4fb8b3ea) master: Fail at startup if default_login_user or default_internal_user doesn't exist. M src/config/settings-get.pl M src/master/master-settings.c 2011-06-03 17:22:09 +0300 Timo Sirainen (a497e8b94) eacces_get_error(): Give even better error message for directory permission errors. M src/lib/eacces-error.c 2011-06-03 17:13:59 +0300 Timo Sirainen (80b837ed5) eaccess_get_error(): Show also directory mode. M src/lib/eacces-error.c 2011-06-03 17:07:37 +0300 Timo Sirainen (37c435939) eaccess_get_error(): Fixes to reporting dir permissions. Also fixed an infinite loop if stat("/") fails. M src/lib/eacces-error.c 2011-06-03 16:40:03 +0300 Timo Sirainen (24e8feedf) IMAP: Treat also "inbox/" case-insensitively as invalid mailbox name. M src/imap/imap-commands-util.c 2011-06-03 16:33:43 +0300 Timo Sirainen (a4e30ea56) IMAP: Treat "namespace prefix/" as invalid mailbox name. M src/imap/imap-commands-util.c 2011-06-03 16:27:41 +0300 Timo Sirainen (94d509ea1) lib-storage: Treat "namespace prefix/" as invalid mailbox name. M src/lib-storage/mail-storage.c 2011-06-03 15:49:50 +0300 Timo Sirainen (dea871a9b) .hgignore updated M .hgignore 2011-06-03 15:49:30 +0300 Timo Sirainen (373734a6c) Compiler warning fix. M src/director/director-connection.c 2011-06-03 15:27:21 +0300 Timo Sirainen (66fff40a3) doveadm -A: Crashfix for doveadm server when using commands that print nothing. M src/doveadm/doveadm-print.c 2011-05-31 15:38:03 +0300 Timo Sirainen (9b6eb5a72) fts-lucene: Fixes to work with CLucene v2.3.3.4 and new FTS API. It's still not recommended to actually use this. M src/plugins/fts-lucene/Makefile.am M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/lucene-wrapper.cc 2011-05-31 15:36:22 +0300 Timo Sirainen (c6ead31ba) liblib: Added uni_utf8_to_ucs4_n(). M src/lib/unichar.c M src/lib/unichar.h 2011-05-24 20:06:24 +0300 Timo Sirainen (ac1118842) doveadm proxy: s/kill/kick/ and related internal code changes. Mainly for consistency, because "doveadm kick" already existed. M src/director/director.c M src/doveadm/doveadm-proxy.c M src/login-common/login-proxy.c 2011-05-23 16:26:21 +0300 Timo Sirainen (90da9c176) configure: Added missing ipc M configure.in 2011-05-23 16:12:44 +0300 Timo Sirainen (b59960aed) lib-storage: Export a list of permanent flags via mailbox_status(). Removed mailbox_allow_new_keywords(), since it's now included in the status structure. ACL plugin may limit what flags are permanent according to ACLs. M src/imap/imap-commands-util.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/test-mailbox.c M src/plugins/acl/acl-mailbox.c M src/plugins/virtual/virtual-storage.c 2011-05-23 15:47:27 +0300 Timo Sirainen (d0b929d5f) doveadm: Compile fix for recent auth change. M src/doveadm/doveadm-pw.c 2011-05-23 15:45:44 +0300 Timo Sirainen (026be738e) acl: ACLs apply to private flags as well. Fixed returning READ-ONLY resp-code. M src/plugins/acl/acl-mailbox.c 2011-05-23 15:38:16 +0300 Timo Sirainen (06d948c4a) auth: Don't log warnings/errors when guessing a password's scheme. M src/auth/password-scheme-otp.c M src/auth/password-scheme.c M src/auth/password-scheme.h 2011-05-23 15:37:43 +0300 Timo Sirainen (31e557dc2) auth: Give password scheme suggestions also when passdb data is invalid for scheme. M src/auth/auth-request.c 2011-05-23 15:05:13 +0300 Timo Sirainen (5411e6f71) director: Changed the "user killed" delay from 12 secs to 2 secs. It was 12 secs only for testing. M src/director/director.c 2011-05-23 15:04:36 +0300 Timo Sirainen (eef20a55e) ipc: Fixes when sending commands to an empty group. M src/ipc/client.c M src/ipc/ipc-group.c M src/ipc/ipc-group.h 2011-05-23 14:54:02 +0300 Timo Sirainen (15ab2452b) director: Added support for moving user to another server with "doveadm director move". M src/director/director-connection.c M src/director/director-request.c M src/director/director-test.sh M src/director/director.c M src/director/director.h M src/director/doveadm-connection.c M src/director/user-directory.c M src/director/user-directory.h M src/doveadm/doveadm-director.c M src/login-common/login-proxy.c 2011-05-20 21:46:32 +0300 Timo Sirainen (4bd6702bf) message header parser: Allow NULs in header name also when header is missing ':'. This doesn't fix any crashes/corruption unlike the earlier fix, but it makes the code more correct. Although it might help with mbox rewriting seeing some size mismatches (or might not). M src/lib-mail/message-header-parser.c 2011-05-20 19:54:57 +0300 Timo Sirainen (f56e93cc8) login proxy: Show in disconnect reason who did the disconnection and possible error. M src/login-common/login-proxy.c 2011-05-20 18:47:26 +0300 Timo Sirainen (02aedbc20) doveadm: Added "proxy list" and "proxy kill" commands. M src/doveadm/Makefile.am A src/doveadm/doveadm-proxy.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h 2011-05-20 18:47:02 +0300 Timo Sirainen (833820f16) login proxy: Connect to IPC server and implement KILL and LIST commands. M src/login-common/login-proxy.c 2011-05-20 18:45:29 +0300 Timo Sirainen (83942ac16) Added support for a simplified IPC infrastructure. The idea is that you have one "ipc" proxy process, where all server processes connect to. IPC clients can then connect to the proxy and ask it to forward commands to either a specific server or all servers. The proxy does this, and forwards back any replies from the server. M src/Makefile.am A src/ipc/Makefile.am A src/ipc/client.c A src/ipc/client.h A src/ipc/ipc-connection.c A src/ipc/ipc-connection.h A src/ipc/ipc-group.c A src/ipc/ipc-group.h A src/ipc/ipc-settings.c A src/ipc/main.c M src/lib-master/Makefile.am A src/lib-master/ipc-client.c A src/lib-master/ipc-client.h A src/lib-master/ipc-server.c A src/lib-master/ipc-server.h 2011-05-20 14:21:51 +0300 Timo Sirainen (f07f57d64) doveadm: Added doveadm_allowed_commands setting, which is used by doveadm server. M src/doveadm/client-connection.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h 2011-05-20 14:20:46 +0300 Timo Sirainen (584c79069) doveadm server: Fixed running multiple commands without crashing. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail-server.c 2011-05-20 14:08:43 +0300 Timo Sirainen (72bc08129) doveadm: Added support for using local/remote {} settings. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2011-05-20 13:30:40 +0300 Timo Sirainen (d472804f3) doveadm: Added simple PLAIN authentication for remote connections. Currently clients are required to use "doveadm" as the username and the password must match doveadm_password setting. When using doveadm as a client, it automatically uses these settings when connecting to remote servers. M src/doveadm/client-connection.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/server-connection.c 2011-05-20 13:05:16 +0300 Timo Sirainen (67cc1d2d8) doveadm: Added doveadm_proxy_port setting to make it work with proxying. M src/doveadm/Makefile.am M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/main.c 2011-05-20 13:03:34 +0300 Timo Sirainen (66ed2ab52) doveadm: Set service=doveadm for userdb lookup. M src/doveadm/doveadm-mail.c 2011-05-16 17:34:42 +0300 Timo Sirainen (01758d8aa) pop3: If mail storage couldn't be initialized, send -ERR to client before disconnecting. M src/pop3/main.c 2011-05-16 17:29:40 +0300 Timo Sirainen (3cde0cc5f) pop3: Add [IN-USE] to all login -ERR replies. M src/pop3/pop3-client.c 2011-05-16 17:06:11 +0300 Timo Sirainen (33efc9521) imap: Changed default imap_logout_format. M src/imap/imap-settings.c 2011-05-16 17:02:56 +0300 Timo Sirainen (d916e67d3) imap: If client disconnects in APPEND, log more about what it did before that. M src/imap/cmd-append.c 2011-05-16 15:53:13 +0300 Timo Sirainen (00b6a40fd) Compiler warning fix on 32bit systems. Patch by Mike Abbott / Apple M src/director/user-directory.c 2011-05-11 21:46:56 +0000 Pascal Volk (a66800cdc) man: Corrected cmd name in doveadm-index.1. M doc/man/doveadm-index.1.in 2011-05-11 23:32:26 +0300 Timo Sirainen (2d193dca7) lib-storage: Fixed checking if mail's virtual size is cached. M src/lib-storage/index/index-mail.c 2011-05-11 23:24:41 +0300 Timo Sirainen (a543ac63e) imapc: Fix for 32bit systems. M src/lib-storage/index/imapc/imapc-connection.c 2011-05-11 22:34:27 +0300 Timo Sirainen (ec1fe002d) doveadm: doveadm_mail_iter_init() API change to fix "doveadm fetch" crash. M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-iter.h 2011-05-11 22:33:55 +0300 Timo Sirainen (0027dcd5b) doveadm search crashfix M src/doveadm/doveadm-mail-search.c 2011-05-11 22:29:48 +0300 Timo Sirainen (b3feec992) Compiler warning fixes M src/lib-storage/list/index-mailbox-list.c 2011-05-11 18:49:44 +0300 Timo Sirainen (d9866dbc6) doveadm: Code correctness fix. M src/doveadm/doveadm-mail-index.c 2011-05-11 17:59:59 +0300 Timo Sirainen (3acfd3a5e) Added signature for changeset aa8dfa085a99 M .hgsigs 2011-05-11 17:59:56 +0300 Timo Sirainen (2e6d6c01b) Added tag 2.0.13 for changeset aa8dfa085a99 M .hgtags 2011-05-11 17:59:56 +0300 Timo Sirainen (ba130dc5b) Released v2.0.13. M NEWS M configure.in 2011-05-11 17:56:25 +0300 Timo Sirainen (ed1ad90a1) man: Added doveadm index. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-index.1.in M doc/man/doveadm.1.in 2011-05-11 17:45:03 +0300 Timo Sirainen (bafecbae4) man: Added doveadm director dump. M doc/man/doveadm-director.1.in 2011-05-11 17:00:08 +0300 Timo Sirainen (4f8cc3d72) Increased highest signal number limit. HP-UX can use at least 44. M src/lib/lib-signals.c 2011-05-11 16:58:07 +0300 Timo Sirainen (6a9ecc62c) Compile fix for HP-UX M src/lib/compat.h 2011-05-11 16:28:32 +0300 Timo Sirainen (e92359673) example-config: Updated auth_krb5_keytab comment. M doc/example-config/conf.d/10-auth.conf 2011-05-11 16:20:15 +0300 Timo Sirainen (e4ff3c71a) config: Updated obsolete protocol warning messages. M src/config/old-set-parser.c 2011-05-11 15:57:47 +0300 Timo Sirainen (b75feeb58) director: Avoid potential problems by making sure users list is always sorted by timestamp. M src/director/user-directory.c 2011-05-11 15:35:20 +0300 Timo Sirainen (317beb7d0) man: Updated doveconf. M doc/man/doveconf.1.in 2011-05-11 15:20:19 +0300 Timo Sirainen (ec0210389) fts: Added assert to make sure all header data is valid UTF-8. M src/plugins/fts/fts-storage.c 2011-05-11 15:19:34 +0300 Timo Sirainen (b516a7812) message [header] decoder: Output only valid UTF-8 data. M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c 2011-05-11 15:17:02 +0300 Timo Sirainen (200500ebd) message header parser: Fixed handling NUL characters in header names. line->name_len was too large and line->middle pointer may have pointed past allocated memory. These may have caused crashes/corruption (fts, mbox at least). M src/lib-mail/message-header-parser.c 2011-05-11 14:35:15 +0300 Timo Sirainen (5b969a1fe) lda: Log destination address and its source with mail_debug=yes M src/lda/main.c 2011-05-11 14:24:18 +0300 Timo Sirainen (529220011) example-config: Updated auth_gssapi_hostname comment. M doc/example-config/conf.d/10-auth.conf 2011-05-10 18:24:31 +0300 Timo Sirainen (36a65640b) zlib: Don't unnecessarily reset istream caches. M src/plugins/zlib/istream-bzlib.c M src/plugins/zlib/istream-zlib.c 2011-05-10 18:19:35 +0300 Timo Sirainen (e34eee500) istream-[b]zlib: stat(exact=FALSE) should always return the same value if file hasn't changed. M src/plugins/zlib/istream-bzlib.c M src/plugins/zlib/istream-zlib.c 2011-05-10 17:55:27 +0300 Timo Sirainen (36b402281) doveadm mailbox status: Don't assert-crash at exit if syncing a mailbox fails. M src/doveadm/doveadm-mail.c 2011-05-10 17:46:50 +0300 Timo Sirainen (9d7718a76) acl: Don't waste time doing ACL checks for IMAP LSUB command. M src/plugins/acl/acl-mailbox-list.c 2011-05-10 01:24:34 +0300 Timo Sirainen (a04a1eae9) Removed ssl_parameters_file setting. It wasn't used by anything. M src/login-common/login-settings.c M src/login-common/login-settings.h 2011-05-09 20:11:00 +0300 Timo Sirainen (34496158c) script-login: When -d isn't given, drop privileges as specified by the service settings. M src/util/script-login.c 2011-05-09 20:03:24 +0300 Timo Sirainen (11eee3491) script-login: Reverted last change. M src/util/script-login.c 2011-05-09 19:59:21 +0300 Timo Sirainen (05aad808b) script-login: Changed default behavior to be to drop privileges. Also since the default is to run as root, allow that. There is now "-n" parameter to avoid dropping privileges. M src/util/script-login.c 2011-05-09 19:28:27 +0300 Timo Sirainen (e58672448) Minor typofix. M src/plugins/lazy-expunge/lazy-expunge-plugin.h 2011-05-09 19:25:44 +0300 Timo Sirainen (a35ebc48b) lib-settings: Crashfix for broken settings under strlist. M src/lib-settings/settings-parser.c 2011-05-09 19:08:43 +0300 Timo Sirainen (d779da03f) auth: Added assert. M src/auth/db-ldap.c 2011-05-09 18:43:35 +0300 Timo Sirainen (6a6c6403d) master: Warn if service's vsz_limit < 1 MB It's unlikely anyone wants it to be smaller, and small values give random errors/crashes. M src/master/master-settings.c 2011-05-09 18:23:23 +0300 Timo Sirainen (d5b66e8d5) imap: RENAME and DELETE wasn't replying with NONEXISTENT resp code. M src/imap/cmd-delete.c M src/imap/cmd-rename.c 2011-05-09 17:58:37 +0300 Timo Sirainen (b9b086bc4) lib-storage: Fixed LIST/LSUB with LAYOUT=none. It shouldn't have listed INBOX if it didn't match the given patterns. M src/lib-storage/list/mailbox-list-none.c 2011-05-09 17:41:45 +0300 Timo Sirainen (16dfe1f9c) lmtp: With lmtp_save_to_detail_mailbox=yes, save mail to detail. The previous behavior required using prefix="" namespace to work. M src/lmtp/commands.c 2011-05-05 18:13:55 +0200 Timo Sirainen (643a81fff) doveadm: Added "index" command to add unindexed messages into index/cache/fts. The caching adds only the fields that were previously added to the mailbox's caching decisions, so it won't do anything useful for mailboxes that user's client hasn't accessed yet. M src/doveadm/Makefile.am A src/doveadm/doveadm-mail-index.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2011-05-05 17:49:45 +0200 Timo Sirainen (c7e14824e) lib-storage: Added mail_parse(). M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/lib-storage/mail.c M src/lib-storage/test-mail.c M src/plugins/virtual/virtual-mail.c 2011-05-05 17:48:55 +0200 Timo Sirainen (7370fb9ff) lib-storage: Added mail_is_cached() M src/lib-storage/index/index-transaction.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.h M src/lib-storage/mail.c 2011-05-05 17:47:58 +0200 Timo Sirainen (58816241c) lib-index: Added mail_cache_field_exists_any() M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache.h 2011-05-04 15:03:14 +0200 Timo Sirainen (dd6e81be6) doveadm user: Added -f parameter to show only the specified extra field's value. M src/doveadm/doveadm-auth.c 2011-05-04 14:58:03 +0200 Timo Sirainen (723c066e9) doveadm cleanup: Don't try to keep auth/user comand handlers in same function. M src/doveadm/doveadm-auth.c 2011-05-04 11:43:59 +0200 Timo Sirainen (1045d05d1) pop3: Added support for showing messages in "pop3 order". M src/pop3/pop3-client.c M src/pop3/pop3-client.h M src/pop3/pop3-commands.c 2011-05-04 11:43:16 +0200 Timo Sirainen (1f47e4754) lib-storage: Added MAIL_SORT_POP3_ORDER M src/lib-storage/index/index-sort.c M src/lib-storage/mail-storage.h 2011-05-04 11:42:17 +0200 Timo Sirainen (e1eeb3be2) lib-storage: Added MAIL_FETCH_POP3_ORDER special field and implemented for Maildir. The idea is that this specifies the order of messages when accessing via POP3. This is useful when migrating both POP3 and IMAP users from servers where their message ordering differes and they still want to be preserved. M src/lib-storage/index/index-mail.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-uidlist.h M src/lib-storage/mail-storage.h 2011-05-04 10:17:27 +0200 Timo Sirainen (766f20fab) pop3: Small code cleanup. M src/pop3/pop3-client.h M src/pop3/pop3-commands.c 2011-05-03 18:41:10 +0200 Timo Sirainen (8b16d3b00) doveadm: Added "director dump" command. It outputs doveadm director commands to add/remove the current host configuration, so if all directors are stopped, their state can be easily restored by running the commands. M src/director/doveadm-connection.c M src/doveadm/doveadm-director.c 2011-05-03 09:58:11 +0200 Timo Sirainen (0f4f40b4e) lib-index: Try to avoid duplicate "duplicate transaction log sequence" errors. M src/lib-index/mail-transaction-log-file.c 2011-05-03 09:43:41 +0200 Timo Sirainen (39f78d7dc) lib-storage: Remove invalid subscription file entries instead of only ignoring them. M src/lib-storage/list/mailbox-list-subscriptions.c 2011-04-30 16:32:28 +0300 Timo Sirainen (100c33c29) TODO updated M TODO 2011-04-30 16:24:42 +0300 Timo Sirainen (3df398a46) Merged changes from v2.0 tree. 2011-04-30 15:55:08 +0300 Timo Sirainen (7e1b549a1) sdbox: In-memory mailbox GUID differed from on-index GUID after mailbox_create(). M src/lib-storage/index/dbox-single/sdbox-storage.c 2011-04-30 15:12:20 +0300 Timo Sirainen (0b25846ba) lib-storage: mailbox_delete() for a symlink now removes the symlink instead of expunging mails. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-delete.h M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2011-04-30 15:00:42 +0300 Timo Sirainen (af9edddbb) lib-storage: mailbox_delete() now always first expunges all mails before trying deletion. If any new mails are added during expunging, the mailbox deletion fails. This behavior allows removing basically duplicated code where this is done for mdbox, sdbox with external attachments, quota updates and lazy-expunge. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-storage.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/quota/quota-storage.c 2011-04-30 14:54:16 +0300 Timo Sirainen (3aa40b530) mdbox: Fixed storage rebuild M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c 2011-04-30 14:20:30 +0300 Timo Sirainen (d6c00d762) lazy-expunge: Removed support for more than one lazy-expunge namespace. More than one is conceptually difficult to understand, complicates the code and after the next change it wouldn't even work anymore. M src/plugins/lazy-expunge/lazy-expunge-plugin.c 2011-04-30 13:41:18 +0300 Timo Sirainen (a966016e6) Use -Wl,--as-needed -Wl,--no-undefined GNU ld flags for non-plugins. M configure.in M src/plugins/acl/Makefile.am M src/plugins/autocreate/Makefile.am M src/plugins/expire/Makefile.am M src/plugins/fts-lucene/Makefile.am M src/plugins/fts-solr/Makefile.am M src/plugins/fts-squat/Makefile.am M src/plugins/fts/Makefile.am M src/plugins/imap-acl/Makefile.am M src/plugins/imap-quota/Makefile.am M src/plugins/imap-zlib/Makefile.am M src/plugins/lazy-expunge/Makefile.am M src/plugins/listescape/Makefile.am M src/plugins/mail-log/Makefile.am M src/plugins/notify/Makefile.am M src/plugins/quota/Makefile.am M src/plugins/snarf/Makefile.am M src/plugins/trash/Makefile.am M src/plugins/virtual/Makefile.am M src/plugins/zlib/Makefile.am 2011-04-30 13:38:20 +0300 Timo Sirainen (09d81c57d) Compile fix for previous change. M src/lib-ssl-iostream/Makefile.am 2011-04-30 13:18:31 +0300 Timo Sirainen (5ec40a17d) Makefile: Fixes to compiling with LDFLAGS="-Wl,--as-needed -Wl,--no-undefined" M src/lib-sql/Makefile.am M src/lib-ssl-iostream/Makefile.am M src/login-common/Makefile.am 2011-04-30 13:17:53 +0300 Timo Sirainen (5a250816f) login-common API redesign so that the library doesn't refer to nonexistent variables. M src/imap-login/client.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/client-common.h M src/login-common/login-common.h M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/pop3-login/client.c 2011-04-29 19:10:52 +0300 Timo Sirainen (6ea8dfa4a) master: Increased max. listen() backlog 128 -> 511 (by copying Apache) M src/master/service-listen.c 2011-04-29 18:22:00 +0300 Timo Sirainen (c9ce71e26) example-config: Removed plugin/mail_log_group_events since it no longer exists. M doc/example-config/conf.d/10-logging.conf 2011-04-28 21:31:16 +0300 Timo Sirainen (ced3c1f44) dbox: If file can't be opened read-write, fallback to read-only. M src/lib-storage/index/dbox-common/dbox-file.c 2011-04-28 21:30:21 +0300 Timo Sirainen (94d5a3fe1) lib-index: If .log file can't be opened read-write, fallback to read-only indexes. M src/lib-index/mail-transaction-log-file.c 2011-04-28 21:11:30 +0300 Timo Sirainen (ce05b1406) Compiler warning fix. M src/lib-settings/settings-parser.c 2011-04-28 21:11:23 +0300 Timo Sirainen (6b9c807cf) mdbox purge: Fixed warning about corrupted extrefs. M src/lib-storage/index/dbox-multi/mdbox-purge.c 2011-04-28 21:10:57 +0300 Timo Sirainen (e6aa82aeb) mbox: Looking up GUID/MD5(header) more than once was broken. M src/lib-storage/index/mbox/mbox-mail.c 2011-04-28 17:20:22 +0300 Timo Sirainen (65e42545a) Compiler warning fixes about enums. M src/doveadm/doveadm-mail-altmove.c M src/lib-storage/index/index-sync-changes.c 2011-04-27 16:25:08 +0300 Timo Sirainen (1b85e6aaa) i_getgr*(): OpenBSD workaround. M src/lib/ipwd.c 2011-04-20 18:55:39 +0300 Timo Sirainen (66d7dd2a3) config: Avoid growing data stack / memory pools. M src/config/config-parser.c M src/config/doveconf.c 2011-04-20 18:55:17 +0300 Timo Sirainen (f637b33bb) doveconf: Fixed a broken "subsection has ssl=yes" warning. M src/config/config-parser.c 2011-04-20 18:28:49 +0300 Timo Sirainen (95fa94ecc) lib-lda: If deliver_log_format setting is empty, don't log anything. Patch by Joseph Tam. M src/lib-lda/mail-deliver.c 2011-04-20 17:58:03 +0300 Timo Sirainen (ac1c79d03) maildir: Added asserts to make sure invalid extension records aren't written to uidlist. M src/lib-storage/index/maildir/maildir-uidlist.c 2011-04-20 17:57:20 +0300 Timo Sirainen (df9169221) maildir: Remove invalid extension records from dovecot-uidlist. For now we'll assume that if the key is outside A..Z it's invalid. Since only 4 keys are used currently, there is still a lot of letters available for future use. M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-uidlist.h 2011-04-20 17:44:36 +0300 Timo Sirainen (ed34a210e) maildir: If uidlist has an empty GUID entry, log an error and remove it. This fixes an assert-crash in dsync. M src/lib-storage/index/maildir/maildir-mail.c 2011-04-13 12:40:48 +0300 Timo Sirainen (3a6bc9a3d) doveconf: Added -S parameter to dump a simplified machine readable config. This should make it slightly easier for external programs/scripts to call doveconf and parse its output. M src/config/doveconf.c 2011-04-13 12:23:35 +0300 Timo Sirainen (6a865d46c) config: Abort local/remote block DNS lookups after 30s and warn after 5s. M src/config/config-parser.c 2011-04-13 10:36:00 +0300 Timo Sirainen (60bdf7c04) Compiling fix for Solaris. M src/lib/ipwd.c 2011-04-12 20:10:17 +0300 Timo Sirainen (288c572ef) Added signature for changeset 606faab2b896 M .hgsigs 2011-04-12 20:10:14 +0300 Timo Sirainen (2a50cac6a) Added tag 2.0.12 for changeset 606faab2b896 M .hgtags 2011-04-12 20:10:14 +0300 Timo Sirainen (10ef96a23) Released v2.0.12. M NEWS M configure.in 2011-04-12 20:09:44 +0300 Timo Sirainen (85e7220cb) test-index-fetch unit test fixed. M src/lib-storage/index/test-index-fetch.c 2011-04-12 18:41:15 +0300 Timo Sirainen (ea0ab5d5e) sdbox: When rebuilding index, don't unnecessarily change mailbox's GUID. M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c 2011-04-12 18:38:50 +0300 Timo Sirainen (0a7b04ec6) sdbox: If message file is unexpectedly lost, rebuild index. M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.h 2011-04-12 18:38:00 +0300 Timo Sirainen (44fb32493) sdbox: Commit expunges to index first before unlinking the files. M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-sync.h 2011-04-12 17:55:26 +0300 Timo Sirainen (5096d157a) mdbox: Fixed mail_get_save_date() returning wrong return value. This broke expire plugin. M src/lib-storage/index/dbox-multi/mdbox-mail.c 2011-04-12 17:13:27 +0300 Timo Sirainen (bd0720cca) auth: Export/import auth_request->successful for auth workers. M src/auth/auth-request.c 2011-04-12 17:05:49 +0300 Timo Sirainen (31088625f) auth: Removed max. request queue limit from LDAP. Old requests get dropped after 60 seconds, but other than that there is probably not much point in having a hard coded limit. M src/auth/db-ldap.c M src/auth/db-ldap.h 2011-04-10 13:54:06 +0300 Timo Sirainen (8d5c97bf9) lib-storage: Fixed crash in mail_storage_service_all_init() (doveadm .. -A) M src/lib-storage/mail-storage-service.c 2011-04-08 20:23:17 +0300 Timo Sirainen (447543b5f) imap-login: Reduced the max. number of allowed bad commands. This makes it even more sure that we won't reply with anything dangerous when attempting to access us with HTTP client. M src/imap-login/client.c 2011-04-08 20:21:58 +0300 Timo Sirainen (cc6807a62) imap-login: Don't allow IMAP command tags that have invalid characters. This simply attempts to prevent HTTP requests from replying with any potentially danerous data that some web browsers might execute, e.g.: curl --request POST -F 'x=""' http://localhost:143/ The above command probably doesn't work, because max. bad commands is reached earlier. But if it isn't, this change makes sure it doesn't return back anything, because '"' and '(' aren't allowed characters. Even if '"' weren't required, there hopefully isn't much to be done without being able to call any functions. M src/imap-login/client.c 2011-04-08 19:50:31 +0300 Timo Sirainen (85da8c055) Linux NFS: fstat() may return ENOENT instead of ESTALE in some kernel versions. M src/lib-index/mail-cache.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mailbox-list-index.c M src/lib/compat.h 2011-04-08 19:36:51 +0300 Timo Sirainen (4e43828ef) director: Improved debug/error logging. M src/director/director-connection.c M src/director/director.c 2011-04-08 19:35:27 +0300 Timo Sirainen (4c20178a7) director: Reset hosts' last_failed timestamps when they're suspected to be working again. This should fix some problems during director removals and additions. M src/director/director-connection.c M src/director/director.c 2011-04-08 17:27:52 +0300 Timo Sirainen (7feee845a) doveadm import: Initialize the import user properly. M src/doveadm/doveadm-mail-import.c 2011-04-08 17:26:49 +0300 Timo Sirainen (b9b841558) lib-storage: Allow each user lookup to override global mail_storage_service_flags. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2011-04-08 17:26:14 +0300 Timo Sirainen (d9250ee7e) lib-storage: Added mail_namespaces_init_location() for creating a single namespace for user. M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h 2011-04-08 16:41:26 +0300 Timo Sirainen (6407c617c) config: Log a warning if global ssl=no, but some section has ssl=yes/required. Actually supporting per-protocol (or even worse, per-ip) SSL would be too much trouble. M src/config/config-parser.c 2011-04-08 16:06:20 +0300 Timo Sirainen (0622f54c0) eperm_error_get_chgrp(): Changed wiki link. M src/lib/eacces-error.c 2011-04-08 16:05:03 +0300 Timo Sirainen (4a3e6e01e) eperm_error_get_chgrp(): Improved error message and added a link to wiki. M src/lib/eacces-error.c 2011-04-08 15:47:34 +0300 Timo Sirainen (fc3197e14) Updated main documentation.txt index. M doc/documentation.txt 2011-04-08 15:39:43 +0300 Timo Sirainen (099201113) Changed wiki.dovecot.org links to wiki2.dovecot.org M INSTALL M README M doc/documentation.txt M doc/example-config/dovecot-ldap.conf.ext M doc/example-config/dovecot-sql.conf.ext M doc/example-config/dovecot.conf M src/lda/main.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/mail-storage-service.c 2011-04-05 22:43:54 +0300 Timo Sirainen (513c37060) sdbox: Added more error message logging. M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c 2011-04-05 19:08:31 +0300 Timo Sirainen (a2aa37d22) lib-index: Fix to previous check. M src/lib-index/mail-index-map.c 2011-04-05 19:07:01 +0300 Timo Sirainen (4ad296607) lib-index: Added extra checks against broken extension record introductions. M src/lib-index/mail-index-map.c 2011-04-05 13:26:45 +0300 Timo Sirainen (723c3049b) quota: Fixed the quota limit check changes in previous commit. Casting (uint64_t)-1 to (int64_t) isn't a good idea. M src/plugins/quota/quota.c 2011-04-05 12:44:21 +0300 Timo Sirainen (889437fa2) Changed auth-userdb socket's default permissions to 0666. M doc/example-config/conf.d/10-master.conf M src/auth/auth-settings.c 2011-04-05 12:28:32 +0300 Timo Sirainen (c95b7ce6c) auth: If auth-userdb socket is 0666, allow peer to do only USER lookups whose uid matches its. Anything else results in failure. If userdb doesn't return uid, the lookups also fail. To truly give full permissions for everyone, use 0777 mode. M src/auth/auth-master-connection.c M src/auth/auth-master-connection.h M src/auth/main.c 2011-04-05 12:24:59 +0300 Timo Sirainen (e2aabdc78) Added net_getunixcred() to get UNIX socket peer process's UID and GID. M configure.in M src/lib/network.c M src/lib/network.h 2011-04-04 23:19:01 +0300 Timo Sirainen (30ad2b030) quota: Code cleanup. M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2011-04-04 23:18:31 +0300 Timo Sirainen (c1838f0f2) quota: Fixed checking message count limit when saving multiple mails in transaction. M src/plugins/quota/quota.c 2011-04-04 23:07:37 +0300 Timo Sirainen (64529e3b7) quota: Set quota limit correctly (for code path that doesn't exist). quota_alloc() followed by quota_test/try_alloc() set the "quota left" limit wrong. But this is only a theoretical problem, because nothing actually calls quota_alloc() currently. M src/plugins/quota/quota.c 2011-04-04 19:20:20 +0300 Timo Sirainen (1694d8420) dbox: External attachment's size was set wrong if base64 MIME part ended unexpectedly. M src/lib-storage/index/index-attachment.c 2011-04-04 17:53:05 +0300 Timo Sirainen (2d0a00272) auth: If initial binding to LDAP server hangs, detect it and abort. M src/auth/db-ldap.c 2011-04-04 16:08:50 +0300 Timo Sirainen (cf1f6978a) lib-storage: Request sort program's all fields, not just the first one. M src/lib-storage/index/index-search.c 2011-04-04 16:02:05 +0300 Timo Sirainen (045aa2f81) lib-storage: Removed struct mail_private.extra_* fields. There isn't much point in keeping them separated. M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-thread.c M src/lib-storage/mail-storage-private.h 2011-04-04 15:41:19 +0300 Timo Sirainen (bf190046c) imapc: Minor code cleanup. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-04-04 15:27:33 +0300 Timo Sirainen (8ddc45fe2) imapc: Fixes to handling expunges. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mailbox.c 2011-04-04 15:08:50 +0300 Timo Sirainen (68a8f0794) Compiler warning fix for newer OpenSSL library. M src/lib-ssl-iostream/iostream-openssl.c 2011-04-04 14:12:01 +0300 Timo Sirainen (0102d0a01) imapc: Make sure we wait for SELECT/APPEND/COPY commands to finish. M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c 2011-04-04 14:09:11 +0300 Timo Sirainen (86520dddd) imapc: Removed support for connection locking and multiple connections to mailbox. If needed they can be added back by reversing this change, but for now they're no longer needed. M src/lib-storage/index/imapc/imapc-client-private.h M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-04-04 13:51:34 +0300 Timo Sirainen (b67628e50) imapc: Don't log an error message about missing BODY[] if message was already expunged. M src/lib-storage/index/imapc/imapc-mail.c 2011-04-04 13:42:23 +0300 Timo Sirainen (9ed77dd00) imapc: Stop FETCH wait after untagged reply is received, don't wait for tagged reply. M src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c 2011-04-04 13:07:19 +0300 Timo Sirainen (1af0a5938) lib-storage: Added mail prefetching support for searching. M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search.c M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h 2011-04-04 12:57:49 +0300 Timo Sirainen (c405ed31f) doveadm: Don't link with all AUTH_LIBS, only -lcrypt is needed. M configure.in M src/doveadm/Makefile.am 2011-04-04 12:52:21 +0300 Timo Sirainen (e4c43c353) Compile warning fix. M src/plugins/autocreate/autocreate-plugin.c 2011-04-03 06:42:48 +0300 Timo Sirainen (14247d7f5) example-config: Fixed vpopmail config. M doc/example-config/conf.d/auth-vpopmail.conf.ext 2011-03-31 11:10:22 +0300 Timo Sirainen (e15b305e9) Search supports now prefetching data for returned mails. Dropped imapc's own prefetching. mail_prefetch_count specifies how many mails can be kept open and issue a prefetch. This works using posix_fadvise(POSIX_FADV_WILLNEED) for maildir, sdbox and cydir backends. Apparently only Linux supports this. imapc backend also implements this internally by sending wanted IMAP commands to remote server. The command pipelining helps with latency. This change also makes it actually possible for imapc backend to first check if wanted data is already cached in local index and avoid sending unnecessary IMAP commands to remote server. M configure.in M doc/example-config/conf.d/10-mail.conf M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/Makefile.am A src/lib-storage/index/imapc/imapc-mail-fetch.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h M src/lib-storage/index/imapc/imapc-mailbox.c D src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-search.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mail.c M src/lib-storage/test-mail.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-search.c 2011-03-31 09:48:37 +0300 Timo Sirainen (c3f7ca68f) lib-storage: Search code cleanup. M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-sort.h 2011-03-31 09:23:22 +0300 Timo Sirainen (0a1ec0f2a) lib-storage: Fail mail_search_build() if charset is unknown, even if it's not used. For example this causes "SEARCH CHARSET foo ALL" command to fail. M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-build.h 2011-03-31 09:19:10 +0300 Timo Sirainen (d798962a5) Changed header/body searching to do search key charset translation earlier. This cleans up and simplifies error handling. M src/doveadm/doveadm-mail.c M src/imap/imap-search-args.c M src/lib-mail/message-search.c M src/lib-mail/message-search.h M src/lib-storage/Makefile.am M src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-search.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-build.h M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search.c M src/lib-storage/mail-search.h M src/lib-storage/mail-storage.h M src/plugins/fts/Makefile.am M src/plugins/fts/fts-search.c M src/plugins/virtual/virtual-config.c 2011-03-31 07:02:55 +0300 Timo Sirainen (89d7ddf6e) auth: Mention auth_username_chars in log when disallowing username because of it. M src/auth/auth-request.c 2011-03-29 07:00:40 +0300 Timo Sirainen (eef4ba0cc) lib-storage: Changed mailbox_search_*() API to return pointer struct mail. This reduces the flexibility, because now different mailbox_search_next() calls can't have different mail parameters with possibly different wanted_fields settings. This flexibility was never used though, and removing it gives a couple of benefits: * it's now easier for backends to implement prefetch and parallel search * usage is easier since mail_alloc()/mail_free() is no longer needed M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-iter.h M src/doveadm/doveadm-mail-search.c M src/dsync/dsync-worker-local.c M src/imap/cmd-copy.c M src/imap/cmd-store.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-fetch.h M src/imap/imap-search.c M src/imap/imap-search.h M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-thread.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/test-mailbox.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts/fts-storage.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-storage.c M src/plugins/snarf/snarf-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.h M src/plugins/virtual/virtual-sync.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c 2011-03-29 04:47:55 +0300 Timo Sirainen (e2170d0df) imapc: Try to get received date first from cache. M src/lib-storage/index/imapc/imapc-mail.c 2011-03-29 04:45:34 +0300 Timo Sirainen (5940a2b11) imapc: Try to get physical/virtual size first from cache. M src/lib-storage/index/imapc/imapc-mail.c 2011-03-29 04:32:54 +0300 Timo Sirainen (bc6ef0b01) lib-storage: Small optimizations to setting mail's access_parts. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/maildir/maildir-mail.c 2011-03-26 01:10:59 +0200 Timo Sirainen (ff640c9b1) lib-settings: Fixed crash when trying treat strlist as having a subsection. For example "plugin/foo/bar=yes" crashed, while it should have been just ignored. M src/lib-settings/settings-parser.c 2011-03-26 00:42:48 +0200 Timo Sirainen (863ea896f) lib-index: Delete dovecot.index.log.2 files after 2 days, not after 30 mins. M src/lib-index/mail-transaction-log-private.h 2011-03-26 00:40:58 +0200 Timo Sirainen (abd042f10) dsync: Fixed handling expunges of last message when it didn't have a known GUID. M src/dsync/dsync-worker-local.c 2011-03-26 00:39:40 +0200 Timo Sirainen (4979e25d8) imap: Use mailbox_get_expunged_uids() for QRESYNC code. M src/imap/imap-fetch.c 2011-03-26 00:33:51 +0200 Timo Sirainen (4590a0c0a) lib-storage: Fixed mailbox_get_expunges() to return GUIDs with all mailbox formats. Also added mailbox_get_expunged_uids() for use cases that don't really need GUIDs. M src/lib-storage/index/index-fetch.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/test-index-fetch.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/test-mailbox.c 2011-03-24 19:30:21 +0200 Timo Sirainen (1460ef7a1) lib-storage: Moved index_mailbox_context.save_*() methods to mailbox_vfuncs. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-transaction.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/test-mailbox.c M src/plugins/virtual/virtual-storage.c 2011-03-24 19:22:03 +0200 Timo Sirainen (a9dcc72d7) lib-storage: Removed unused index_mailbox_context.notify_last_check M src/lib-storage/index/index-storage.h 2011-03-24 19:14:42 +0200 Timo Sirainen (1fdae2764) lib-storage: Removed unused index_mail.uid_validity. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2011-03-24 00:28:06 +0200 Timo Sirainen (e755d1cd7) lmtp: Fixed loading Sieve plugin when configuring --without-shared-libs M src/lmtp/Makefile.am 2011-03-24 00:14:58 +0200 Timo Sirainen (9f5a3b788) autocreate: Disable plugin when running from dsync. M src/plugins/autocreate/Makefile.am M src/plugins/autocreate/autocreate-plugin.c 2011-03-24 00:10:59 +0200 Timo Sirainen (ab670459e) lib-storage: Removed extra "don't allow INBOX to be deleted" check. It's already checked in places where it could cause actual harm (accidentally deleting other mailboxes) and where it's not allowed (IMAP). This allows dsync backup to delete unwanted INBOX if the mail location settings allow it. M src/lib-storage/mail-storage.c 2011-03-24 00:01:16 +0200 Timo Sirainen (d799e4233) dsync backup: Handle better deletion of mailboxes from destination. M src/dsync/dsync-worker-local.c 2011-03-23 23:13:00 +0200 Timo Sirainen (58c8d266f) lib-storage: When mail_location is looked up from environment, set its unexpanded string properly. This fixes a crash when creating index directories and mail location was autodetected. M src/lib-storage/mail-namespace.c 2011-03-23 22:55:03 +0200 Timo Sirainen (dff3feece) autocreate: Don't list autocreate mailboxes with MAILBOX_LIST_ITER_NO_AUTO_BOXES. M src/plugins/autocreate/autocreate-plugin.c 2011-03-23 22:54:24 +0200 Timo Sirainen (b3126bef7) lib-storage: Renamed MAILBOX_LIST_ITER_NO_AUTO_INBOX to _NO_AUTO_BOXES. M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-search.c M src/dsync/dsync-worker-local.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/mailbox-list.h 2011-03-23 22:16:24 +0200 Timo Sirainen (b932ee7fb) doveadm: Added "move" command for moving mails between mailboxes. M src/doveadm/Makefile.am M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-iter.h A src/doveadm/doveadm-mail-move.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2011-03-22 23:03:41 +0200 Timo Sirainen (c84c0d4cb) doveconf: Fixed showing plugin {} section. M src/config/config-request.c M src/config/doveconf.c 2011-03-22 22:50:26 +0200 Timo Sirainen (303e375b7) lib-storage: Added MAIL_STORAGE_SERVICE_FLAG_NO_NAMESPACES flag. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2011-03-21 19:16:14 +0200 Timo Sirainen (76a8438e7) lib-storage: Don't try to create /dovecot.mailbox.index when indexes are disabled. M src/lib-storage/mailbox-list.c 2011-03-21 19:10:08 +0200 Timo Sirainen (68fb1a6c4) example-config: Uncommented !include_try local.conf At least one Linux distro wants this. M doc/example-config/dovecot.conf 2011-03-21 18:51:51 +0200 Timo Sirainen (089a5b2ce) lmtp/smtp client: Crashfix if remote returned failure to RCPT TO. M src/lib-lda/lmtp-client.c 2011-03-17 19:02:26 +0200 Timo Sirainen (e4f7d8e45) fts: Don't notify storage about finishing indexing if notify_ok callback is NULL. M src/plugins/fts/fts-storage.c 2011-03-17 16:37:45 +0200 Timo Sirainen (2b0856fd2) imapc: Fixed setting flags for newly seen messages. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-03-17 16:37:22 +0200 Timo Sirainen (8a97355c3) Merged changes from v2.0 tree. 2011-03-17 16:21:00 +0200 Timo Sirainen (70afae43c) Replaced all getpw/gr*() to use i_getpw/gr*() with improved error handling. M src/auth/passdb-bsdauth.c M src/auth/passdb-passwd.c M src/auth/userdb-passwd.c M src/auth/userdb.c M src/lda/main.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/mail-storage-service.c M src/lib/eacces-error.c M src/lib/home-expand.c M src/lib/ioloop-notify-inotify.c M src/lib/lib.c M src/lib/mkdir-parents.c M src/lib/restrict-access.c M src/master/main.c M src/master/service-process.c 2011-03-17 16:20:12 +0200 Timo Sirainen (596f582a4) Added i_getpw*() and i_getgr*() wrappers for getpw*()/getgr*(). These functions make error handling easier. M src/lib/Makefile.am A src/lib/ipwd.c A src/lib/ipwd.h 2011-03-16 19:49:27 +0200 Timo Sirainen (ba55f1248) master: Don't close stderr if logging goes there. M src/master/main.c 2011-03-16 19:17:57 +0200 Timo Sirainen (2128e2beb) virtual: Support +mailbox entries that clear \Recent flag from messages. M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2011-03-16 18:40:40 +0200 Timo Sirainen (ee9254cc7) dbox: Fixed crash on creation of a new mailbox. Broken by recent changes. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c 2011-03-16 18:37:14 +0200 Timo Sirainen (882eb2253) eacces_error_get*(): Handle errors to / directory better. M src/lib/eacces-error.c 2011-03-16 18:20:47 +0200 Timo Sirainen (7cdf66ecb) lib-auth: If connection to auth-master gets lost, reconnect. M src/lib-auth/auth-master.c 2011-03-16 17:59:07 +0200 Timo Sirainen (7d20b3ad9) lib-storage: Moved mailbox_update() assert check from mdbox to common, plus fixed it. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/mail-storage.c 2011-03-16 17:46:29 +0200 Timo Sirainen (a6f6a702e) dsync: Preserve \Recent flags state (instead of setting everything \Recent). M src/dsync/dsync-brain.c M src/dsync/dsync-data.h M src/dsync/dsync-proxy.c M src/dsync/dsync-worker-local.c M src/dsync/test-dsync-brain.c M src/dsync/test-dsync-proxy-server-cmd.c 2011-03-16 17:42:42 +0200 Timo Sirainen (293377014) lib-storage: Added min_first_recent_uid to struct mailbox_update. Implemented for dbox. Maildir/mbox needs some more code to make this work correctly. M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-storage.c M src/lib-storage/mail-storage.h 2011-03-16 17:42:06 +0200 Timo Sirainen (97f6b3242) lib-storage: Added first_recent_uid to struct mailbox_status. M src/lib-storage/index/index-status.c M src/lib-storage/mail-storage.h 2011-03-15 21:53:21 +0200 Timo Sirainen (cb2d128de) imap-login: Changed CAPABILITY's tagged OK reply to say post-login capabilities have more. M src/imap-login/client.c 2011-03-14 19:43:31 +0200 Timo Sirainen (2caedbda8) dbox: Fixed wrong error check while reading external attachments. M src/lib-storage/index/dbox-common/dbox-attachment.c 2011-03-12 17:43:46 +0200 Timo Sirainen (8c109ec31) dsync: When showing mailbox names, show also their GUIDs. M src/dsync/dsync-brain.c 2011-03-12 17:24:38 +0200 Timo Sirainen (7d73c8f29) dbox: Give more verbose error message about broken attachment ext-refs. M src/lib-storage/index/dbox-common/dbox-attachment.c 2011-03-12 17:18:47 +0200 Timo Sirainen (c7a50b2c2) maildir, sdbox: If committed transaction has only aborted msg saves, don't assert-crash. M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/maildir/maildir-save.c 2011-03-12 15:48:24 +0200 Timo Sirainen (b6b63ea77) dsync: If remote dsync times out, log a more verbose reason. M src/dsync/dsync-proxy-client.c 2011-03-12 15:27:54 +0200 Timo Sirainen (216cd45a5) lib-storage: When uid/gid is invalid, tell if it's from setting or userdb lookup. M src/lib-storage/mail-storage-service.c 2011-03-12 15:12:22 +0200 Timo Sirainen (1c3e6a4a7) imap: Added tb-lsub-flags to imap_client_workarounds. Patch by Bruno Tréguier. M doc/example-config/conf.d/20-imap.conf M src/imap/cmd-list.c M src/imap/imap-settings.c M src/imap/imap-settings.h 2011-03-10 18:44:20 +0200 Timo Sirainen (731e1bc5d) imapc: When unselecting a mailbox, send DONE to stop IDLE. M src/lib-storage/index/imapc/imapc-connection.c 2011-03-10 18:44:00 +0200 Timo Sirainen (c2ecc7b6c) imapc: If server sends BAD, disconnect from it. M src/lib-storage/index/imapc/imapc-connection.c 2011-03-10 18:32:08 +0200 Timo Sirainen (d83e46e7c) imapc: Initial support for local index files. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/imapc/imapc-sync.h 2011-03-10 18:31:28 +0200 Timo Sirainen (db8b0a3f7) lib-storage: Allow creating a secondary mailbox_list for a namespace. M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2011-03-10 18:29:59 +0200 Timo Sirainen (4401e78c3) quota-fs: Don't log error if storage doesn't have a root directory. M src/plugins/quota/quota-fs.c 2011-03-10 16:25:26 +0200 Timo Sirainen (dc5606fb6) Moved most of listescape plugin functionality directly to lib-storage. This fixes actually opening escaped mailboxes. The plugin may eventually be removed and replaced with a setting. M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/plugins/listescape/listescape-plugin.c 2011-03-10 15:56:46 +0200 Timo Sirainen (7692e292b) dsync: Reset idle timeouts at the end of i/o callbacks, not beginning. This could make a difference if the callback runs for a long time. M src/dsync/dsync-proxy-server.c 2011-03-09 20:22:52 +0200 Timo Sirainen (cdf95300f) IMAP: Fixed ID command to log the parameters properly. Patch by Mike Abbott / Apple. M src/lib-imap/imap-id.c 2011-03-09 19:02:42 +0200 Timo Sirainen (36de2c0bc) dsync: Use a smaller idle timeout value for client than for server. M src/dsync/dsync-proxy-client.c M src/dsync/dsync-proxy-server.c M src/dsync/dsync-proxy.h 2011-03-07 19:35:09 +0200 Timo Sirainen (276c4d0d9) dsync: Avoid hanging when saving messages. M src/dsync/dsync-proxy-client.c 2011-03-07 01:00:28 +0200 Timo Sirainen (fd35227c4) expire: Fixed mail_debug logging when same transaction expunged all messages and saved new. M src/plugins/expire/expire-plugin.c 2011-03-07 00:57:08 +0200 Timo Sirainen (2e263a9d9) expire: Added more debugging with mail_debug=yes M src/plugins/expire/expire-plugin.c 2011-03-07 00:56:54 +0200 Timo Sirainen (bbd4c4cf9) expire: When saving first message to expire mailbox, use the oldest message's save-time. This makes it easier to enable and test expire plugin. This also changes how expire dict is used: previously when all messages were expunged in a mailbox its entry was deleted in dict, but now its value is set to 0. M src/plugins/expire/expire-plugin.c 2011-03-07 00:35:25 +0200 Timo Sirainen (ff4312f39) Added signature for changeset 3355b4bbd4ac M .hgsigs 2011-03-07 00:35:20 +0200 Timo Sirainen (29593f342) Added tag 2.0.11 for changeset 3355b4bbd4ac M .hgtags 2011-03-07 00:35:20 +0200 Timo Sirainen (13aeac6ac) Released v2.0.11. M NEWS M configure.in 2011-03-07 00:31:22 +0200 Timo Sirainen (06545b0f9) lib-storage: dotlock_use_excl default was accidentally set to "no". M src/lib-storage/mail-storage-settings.c 2011-03-07 00:16:26 +0200 Timo Sirainen (452eb0c73) dsync: Fixed a timeout/crash when saving messages to remote dsync. M src/dsync/dsync-proxy-client.c 2011-03-06 23:55:01 +0200 Timo Sirainen (47448611b) mdbox: Avoid leaking fds when saving many messages larger than mdbox_rotate_size. M src/lib-storage/index/dbox-multi/mdbox-map.c 2011-03-05 13:36:19 +0200 Timo Sirainen (baa6930bf) auth: Fixed ldap assert-crash. M src/auth/db-ldap.c 2011-03-04 21:21:37 +0200 Timo Sirainen (be78bc833) doveadm acl set: Require non-standard rights to be prefixed with ':' char. M src/plugins/acl/doveadm-acl.c 2011-03-04 20:59:31 +0200 Timo Sirainen (b9139dca1) Added signature for changeset 755c63ff089f M .hgsigs 2011-03-04 20:59:28 +0200 Timo Sirainen (43effe8e5) Added tag 2.0.10 for changeset 755c63ff089f M .hgtags 2011-03-04 20:59:24 +0200 Timo Sirainen (48dd81bbf) Released v2.0.10. M NEWS M TODO M configure.in 2011-03-04 20:54:29 +0200 Timo Sirainen (2e37d4586) Updated copyright notices to include year 2011. M src/anvil/anvil-connection.c M src/anvil/anvil-settings.c M src/anvil/connect-limit.c M src/anvil/main.c M src/anvil/penalty.c M src/anvil/test-penalty.c M src/auth/auth-cache.c M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-stream.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-checkpassword.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-external.c M src/auth/mech-plain.c M src/auth/mech.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-ldap.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/config-settings.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-settings.c M src/dict/main.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-request.c M src/director/director-settings.c M src/director/director-test.c M src/director/director.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/main.c M src/director/notify-connection.c M src/director/user-directory.c M src/dns/dns-client-settings.c M src/dns/dns-client.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-list-iter.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-mutf7.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/dsync/dsync-brain-msgs-new.c M src/dsync/dsync-brain-msgs.c M src/dsync/dsync-brain.c M src/dsync/dsync-data.c M src/dsync/dsync-proxy-client.c M src/dsync/dsync-proxy-server-cmd.c M src/dsync/dsync-proxy-server.c M src/dsync/dsync-proxy.c M src/dsync/dsync-worker-local.c M src/dsync/dsync-worker.c M src/dsync/dsync.c M src/dsync/test-dsync-brain-msgs.c M src/dsync/test-dsync-brain.c M src/dsync/test-dsync-common.c M src/dsync/test-dsync-proxy-server-cmd.c M src/dsync/test-dsync-proxy.c M src/dsync/test-dsync-worker.c M src/imap-login/client-authenticate.c M src/imap-login/client.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-proxy.c M src/imap/cmd-append.c M src/imap/cmd-cancelupdate.c M src/imap/cmd-capability.c M src/imap/cmd-check.c M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-enable.c M src/imap/cmd-examine.c M src/imap/cmd-expunge.c M src/imap/cmd-fetch.c M src/imap/cmd-id.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-logout.c M src/imap/cmd-lsub.c M src/imap/cmd-namespace.c M src/imap/cmd-noop.c M src/imap/cmd-rename.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-sort.c M src/imap/cmd-status.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/cmd-uid.c M src/imap/cmd-unselect.c M src/imap/cmd-unsubscribe.c M src/imap/cmd-x-cancel.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/imap/main.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/test-dict.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-api.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/ostream-cmp.c M src/lib-imap/imap-arg.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-seqset.c M src/lib-imap/imap-utf7.c M src/lib-imap/imap-util.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-dummy-view.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/duplicate.c M src/lib-lda/lda-settings.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-search.c M src/lib-mail/message-send.c M src/lib-mail/message-size.c M src/lib-mail/quoted-printable.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-master/anvil-client.c M src/lib-master/master-auth.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service.c M src/lib-master/syslog-util.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-sql/sql-db-cache.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-sync-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-check.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/istream-attachment.c M src/lib-storage/index/istream-mail-stats.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename-flags.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-md5.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync-update.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-error.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-parser-cmdline.c M src/lib-storage/mail-search-parser-imap.c M src/lib-storage/mail-search-parser.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-thread.c M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/lib-storage/mailbox-get.c M src/lib-storage/mailbox-header.c M src/lib-storage/mailbox-keywords.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-search-result.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/test-mail-storage.c M src/lib-storage/test-mail.c M src/lib-storage/test-mailbox-get.c M src/lib-storage/test-mailbox.c M src/lib-test/test-common.c M src/lib/abspath.c M src/lib/aqueue.c M src/lib/array.c M src/lib/askpass.c M src/lib/backtrace-string.c M src/lib/base64.c M src/lib/bsearch-insert-pos.c M src/lib/buffer.c M src/lib/child-wait.c M src/lib/close-keep-errno.c M src/lib/compat.c M src/lib/crc32.c M src/lib/data-stack.c M src/lib/eacces-error.c M src/lib/env-util.c M src/lib/execv-const.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/fd-set-nonblock.c M src/lib/fdatasync-path.c M src/lib/fdpass.c M src/lib/file-cache.c M src/lib/file-copy.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/hash-format.c M src/lib/hash-method.c M src/lib/hash.c M src/lib/hash2.c M src/lib/hex-binary.c M src/lib/hex-dec.c M src/lib/home-expand.c M src/lib/hostpid.c M src/lib/imem.c M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/iostream.c M src/lib/istream-base64-encoder.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-file.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-seekable.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mkdir-parents.c M src/lib/mmap-anon.c M src/lib/mmap-util.c M src/lib/module-dir.c M src/lib/mountpoint.c M src/lib/network.c M src/lib/nfs-workarounds.c M src/lib/ostream-buffer.c M src/lib/ostream-file.c M src/lib/ostream.c M src/lib/printf-format-fix.c M src/lib/priorityq.c M src/lib/process-title.c M src/lib/randgen.c M src/lib/read-full.c M src/lib/restrict-access.c M src/lib/restrict-process-size.c M src/lib/safe-memset.c M src/lib/safe-mkdir.c M src/lib/safe-mkstemp.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str.c M src/lib/strescape.c M src/lib/strfuncs.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/test-base64.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-buffer.c M src/lib/test-crc32.c M src/lib/test-hash-format.c M src/lib/test-hex-binary.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-lib.c M src/lib/test-llist.c M src/lib/test-mempool-alloconly.c M src/lib/test-network.c M src/lib/test-ostream-file.c M src/lib/test-primes.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-str-find.c M src/lib/test-str-sanitize.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-time-util.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/time-util.c M src/lib/unichar.c M src/lib/unix-socket-create.c M src/lib/unlink-directory.c M src/lib/unlink-old-files.c M src/lib/utc-mktime.c M src/lib/utc-offset.c M src/lib/var-expand.c M src/lib/write-full.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c M src/log/log-connection.c M src/log/log-settings.c M src/log/main.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/master/dup2-array.c M src/master/main.c M src/master/master-settings.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/master/service-process.c M src/master/service.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-mailbox.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/snarf/snarf-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/plugins/zlib/doveadm-zlib.c M src/plugins/zlib/istream-bzlib.c M src/plugins/zlib/istream-zlib.c M src/plugins/zlib/ostream-bzlib.c M src/plugins/zlib/ostream-zlib.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/pop3-login-settings.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/ssl-params/main.c M src/ssl-params/ssl-params-openssl.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params.c M src/util/gdbhelper.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap-settings.c M src/util/tcpwrap.c 2011-03-04 20:53:46 +0200 Timo Sirainen (183bea41f) Updated copyright notices to include year 2011. M src/anvil/anvil-connection.c M src/anvil/anvil-settings.c M src/anvil/connect-limit.c M src/anvil/main.c M src/anvil/penalty.c M src/anvil/test-penalty.c M src/auth/auth-cache.c M src/auth/auth-client-connection.c M src/auth/auth-master-connection.c M src/auth/auth-penalty.c M src/auth/auth-request-handler.c M src/auth/auth-request.c M src/auth/auth-settings.c M src/auth/auth-stream.c M src/auth/auth-worker-client.c M src/auth/auth-worker-server.c M src/auth/auth.c M src/auth/db-checkpassword.c M src/auth/db-ldap.c M src/auth/db-passwd-file.c M src/auth/db-sql.c M src/auth/main.c M src/auth/mech-anonymous.c M src/auth/mech-cram-md5.c M src/auth/mech-digest-md5.c M src/auth/mech-external.c M src/auth/mech-plain.c M src/auth/mech.c M src/auth/passdb-blocking.c M src/auth/passdb-bsdauth.c M src/auth/passdb-cache.c M src/auth/passdb-checkpassword.c M src/auth/passdb-ldap.c M src/auth/passdb-passwd-file.c M src/auth/passdb-passwd.c M src/auth/passdb-shadow.c M src/auth/passdb-sql.c M src/auth/passdb-static.c M src/auth/passdb-vpopmail.c M src/auth/passdb.c M src/auth/password-scheme-crypt.c M src/auth/password-scheme.c M src/auth/userdb-blocking.c M src/auth/userdb-checkpassword.c M src/auth/userdb-ldap.c M src/auth/userdb-nss.c M src/auth/userdb-passwd-file.c M src/auth/userdb-passwd.c M src/auth/userdb-prefetch.c M src/auth/userdb-sql.c M src/auth/userdb-static.c M src/auth/userdb-vpopmail.c M src/auth/userdb.c M src/config/config-connection.c M src/config/config-filter.c M src/config/config-parser.c M src/config/config-request.c M src/config/config-settings.c M src/config/doveconf.c M src/config/main.c M src/config/old-set-parser.c M src/config/sysinfo-get.c M src/dict/dict-commands.c M src/dict/dict-connection.c M src/dict/dict-settings.c M src/dict/main.c M src/director/auth-connection.c M src/director/director-connection.c M src/director/director-host.c M src/director/director-request.c M src/director/director-settings.c M src/director/director-test.c M src/director/director.c M src/director/doveadm-connection.c M src/director/login-connection.c M src/director/mail-host.c M src/director/main.c M src/director/notify-connection.c M src/director/user-directory.c M src/dns/dns-client-settings.c M src/dns/dns-client.c M src/doveadm/client-connection.c M src/doveadm/doveadm-auth.c M src/doveadm/doveadm-director.c M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/doveadm/doveadm-dump-mailboxlog.c M src/doveadm/doveadm-dump-thread.c M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-kick.c M src/doveadm/doveadm-log.c M src/doveadm/doveadm-mail-altmove.c M src/doveadm/doveadm-mail-expunge.c M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-list-iter.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-master.c M src/doveadm/doveadm-mutf7.c M src/doveadm/doveadm-penalty.c M src/doveadm/doveadm-print-flow.c M src/doveadm/doveadm-print-pager.c M src/doveadm/doveadm-print-server.c M src/doveadm/doveadm-print-tab.c M src/doveadm/doveadm-print-table.c M src/doveadm/doveadm-print.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-sis.c M src/doveadm/doveadm-util.c M src/doveadm/doveadm-who.c M src/doveadm/doveadm.c M src/doveadm/main.c M src/doveadm/server-connection.c M src/dsync/dsync-brain-msgs-new.c M src/dsync/dsync-brain-msgs.c M src/dsync/dsync-brain.c M src/dsync/dsync-data.c M src/dsync/dsync-proxy-client.c M src/dsync/dsync-proxy-server-cmd.c M src/dsync/dsync-proxy-server.c M src/dsync/dsync-proxy.c M src/dsync/dsync-worker-local.c M src/dsync/dsync-worker.c M src/dsync/dsync.c M src/dsync/test-dsync-brain-msgs.c M src/dsync/test-dsync-brain.c M src/dsync/test-dsync-common.c M src/dsync/test-dsync-proxy-server-cmd.c M src/dsync/test-dsync-proxy.c M src/dsync/test-dsync-worker.c M src/imap-login/client-authenticate.c M src/imap-login/client.c M src/imap-login/imap-login-settings.c M src/imap-login/imap-proxy.c M src/imap/cmd-append.c M src/imap/cmd-cancelupdate.c M src/imap/cmd-capability.c M src/imap/cmd-check.c M src/imap/cmd-close.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-enable.c M src/imap/cmd-examine.c M src/imap/cmd-expunge.c M src/imap/cmd-fetch.c M src/imap/cmd-id.c M src/imap/cmd-idle.c M src/imap/cmd-list.c M src/imap/cmd-logout.c M src/imap/cmd-lsub.c M src/imap/cmd-namespace.c M src/imap/cmd-noop.c M src/imap/cmd-rename.c M src/imap/cmd-search.c M src/imap/cmd-select.c M src/imap/cmd-sort.c M src/imap/cmd-status.c M src/imap/cmd-store.c M src/imap/cmd-subscribe.c M src/imap/cmd-thread.c M src/imap/cmd-uid.c M src/imap/cmd-unselect.c M src/imap/cmd-unsubscribe.c M src/imap/cmd-x-cancel.c M src/imap/imap-client.c M src/imap/imap-commands-util.c M src/imap/imap-commands.c M src/imap/imap-expunge.c M src/imap/imap-fetch-body.c M src/imap/imap-fetch.c M src/imap/imap-search-args.c M src/imap/imap-search.c M src/imap/imap-settings.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/imap/mail-storage-callbacks.c M src/imap/main.c M src/lda/main.c M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.c M src/lib-auth/auth-master.c M src/lib-auth/auth-server-connection.c M src/lib-charset/charset-iconv.c M src/lib-charset/charset-utf8.c M src/lib-dict/dict-client.c M src/lib-dict/dict-db.c M src/lib-dict/dict-file.c M src/lib-dict/dict-sql-settings.c M src/lib-dict/dict-sql.c M src/lib-dict/dict.c M src/lib-dict/test-dict.c M src/lib-dns/dns-lookup.c M src/lib-fs/fs-api.c M src/lib-fs/fs-posix.c M src/lib-fs/fs-sis-common.c M src/lib-fs/fs-sis-queue.c M src/lib-fs/fs-sis.c M src/lib-fs/ostream-cmp.c M src/lib-imap/imap-arg.c M src/lib-imap/imap-base-subject.c M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-date.c M src/lib-imap/imap-envelope.c M src/lib-imap/imap-id.c M src/lib-imap/imap-match.c M src/lib-imap/imap-parser.c M src/lib-imap/imap-quote.c M src/lib-imap/imap-seqset.c M src/lib-imap/imap-utf7.c M src/lib-imap/imap-util.c M src/lib-imap/test-imap-match.c M src/lib-imap/test-imap-parser.c M src/lib-imap/test-imap-utf7.c M src/lib-imap/test-imap-util.c M src/lib-index/mail-cache-compress.c M src/lib-index/mail-cache-decisions.c M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache-lookup.c M src/lib-index/mail-cache-sync-update.c M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-cache.c M src/lib-index/mail-index-alloc-cache.c M src/lib-index/mail-index-dummy-view.c M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-lock.c M src/lib-index/mail-index-map-hdr.c M src/lib-index/mail-index-map-read.c M src/lib-index/mail-index-map.c M src/lib-index/mail-index-modseq.c M src/lib-index/mail-index-strmap.c M src/lib-index/mail-index-sync-ext.c M src/lib-index/mail-index-sync-keywords.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-transaction-export.c M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-sort-appends.c M src/lib-index/mail-index-transaction-update.c M src/lib-index/mail-index-transaction-view.c M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-util.c M src/lib-index/mail-index-view-sync.c M src/lib-index/mail-index-view.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mailbox-list-index-sync.c M src/lib-index/mailbox-list-index.c M src/lib-index/mailbox-log.c M src/lib-index/test-mail-index-sync-ext.c M src/lib-index/test-mail-index-transaction-finish.c M src/lib-index/test-mail-index-transaction-update.c M src/lib-index/test-mail-transaction-log-append.c M src/lib-index/test-mail-transaction-log-view.c M src/lib-lda/duplicate.c M src/lib-lda/lda-settings.c M src/lib-lda/lmtp-client.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-send.c M src/lib-lda/smtp-client.c M src/lib-mail/istream-dot.c M src/lib-mail/istream-header-filter.c M src/lib-mail/mbox-from.c M src/lib-mail/message-address.c M src/lib-mail/message-date.c M src/lib-mail/message-decoder.c M src/lib-mail/message-header-decode.c M src/lib-mail/message-header-encode.c M src/lib-mail/message-header-parser.c M src/lib-mail/message-id.c M src/lib-mail/message-parser.c M src/lib-mail/message-part-serialize.c M src/lib-mail/message-search.c M src/lib-mail/message-send.c M src/lib-mail/message-size.c M src/lib-mail/quoted-printable.c M src/lib-mail/rfc2231-parser.c M src/lib-mail/rfc822-parser.c M src/lib-mail/test-istream-dot.c M src/lib-mail/test-istream-header-filter.c M src/lib-mail/test-mbox-from.c M src/lib-mail/test-message-address.c M src/lib-mail/test-message-date.c M src/lib-mail/test-message-decoder.c M src/lib-mail/test-message-header-decode.c M src/lib-mail/test-message-header-encode.c M src/lib-mail/test-message-header-parser.c M src/lib-mail/test-message-id.c M src/lib-mail/test-message-parser.c M src/lib-mail/test-quoted-printable.c M src/lib-mail/test-rfc2231-parser.c M src/lib-master/anvil-client.c M src/lib-master/master-auth.c M src/lib-master/master-login-auth.c M src/lib-master/master-login.c M src/lib-master/master-service-settings-cache.c M src/lib-master/master-service-settings.c M src/lib-master/master-service.c M src/lib-master/syslog-util.c M src/lib-settings/settings-parser.c M src/lib-settings/settings.c M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.c M src/lib-sql/sql-db-cache.c M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/cydir/cydir-save.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/cydir/cydir-sync.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-file-fix.c M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-sync-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/index-fetch.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mailbox-check.c M src/lib-storage/index/index-search-result.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort-string.c M src/lib-storage/index/index-sort.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-sync-changes.c M src/lib-storage/index/index-sync-search.c M src/lib-storage/index/index-sync.c M src/lib-storage/index/index-thread-finish.c M src/lib-storage/index/index-thread-links.c M src/lib-storage/index/index-thread.c M src/lib-storage/index/index-transaction.c M src/lib-storage/index/istream-attachment.c M src/lib-storage/index/istream-mail-stats.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-settings.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/istream-raw-mbox.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-md5.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-settings.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync-parse.c M src/lib-storage/index/mbox/mbox-sync-rewrite.c M src/lib-storage/index/mbox/mbox-sync-update.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/raw/raw-sync.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/index/test-index-fetch.c M src/lib-storage/list/index-mailbox-list-sync.c M src/lib-storage/list/index-mailbox-list.c M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-fs-flags.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-error.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-search-build.c M src/lib-storage/mail-search-parser-cmdline.c M src/lib-storage/mail-search-parser-imap.c M src/lib-storage/mail-search-parser.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-search-register.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-hooks.c M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-thread.c M src/lib-storage/mail-user.c M src/lib-storage/mail.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-search-result.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-uidvalidity.c M src/lib-storage/test-mail-storage.c M src/lib-storage/test-mail.c M src/lib-storage/test-mailbox.c M src/lib-test/test-common.c M src/lib/abspath.c M src/lib/aqueue.c M src/lib/array.c M src/lib/askpass.c M src/lib/backtrace-string.c M src/lib/base64.c M src/lib/bsearch-insert-pos.c M src/lib/buffer.c M src/lib/child-wait.c M src/lib/close-keep-errno.c M src/lib/compat.c M src/lib/crc32.c M src/lib/data-stack.c M src/lib/eacces-error.c M src/lib/env-util.c M src/lib/execv-const.c M src/lib/failures.c M src/lib/fd-close-on-exec.c M src/lib/fd-set-nonblock.c M src/lib/fdatasync-path.c M src/lib/fdpass.c M src/lib/file-cache.c M src/lib/file-copy.c M src/lib/file-dotlock.c M src/lib/file-lock.c M src/lib/file-set-size.c M src/lib/hash-format.c M src/lib/hash-method.c M src/lib/hash.c M src/lib/hash2.c M src/lib/hex-binary.c M src/lib/hex-dec.c M src/lib/home-expand.c M src/lib/hostpid.c M src/lib/imem.c M src/lib/ioloop-notify-dn.c M src/lib/ioloop-notify-fd.c M src/lib/ioloop-notify-inotify.c M src/lib/ioloop-notify-none.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/iostream.c M src/lib/istream-base64-encoder.c M src/lib/istream-concat.c M src/lib/istream-crlf.c M src/lib/istream-data.c M src/lib/istream-file.c M src/lib/istream-limit.c M src/lib/istream-mmap.c M src/lib/istream-seekable.c M src/lib/istream-tee.c M src/lib/istream.c M src/lib/lib-signals.c M src/lib/lib.c M src/lib/mempool-alloconly.c M src/lib/mempool-datastack.c M src/lib/mempool-system.c M src/lib/mempool-unsafe-datastack.c M src/lib/mempool.c M src/lib/mkdir-parents.c M src/lib/mmap-anon.c M src/lib/mmap-util.c M src/lib/module-dir.c M src/lib/mountpoint.c M src/lib/network.c M src/lib/nfs-workarounds.c M src/lib/ostream-buffer.c M src/lib/ostream-file.c M src/lib/ostream.c M src/lib/printf-format-fix.c M src/lib/priorityq.c M src/lib/process-title.c M src/lib/randgen.c M src/lib/read-full.c M src/lib/restrict-access.c M src/lib/restrict-process-size.c M src/lib/safe-memset.c M src/lib/safe-mkdir.c M src/lib/safe-mkstemp.c M src/lib/sendfile-util.c M src/lib/seq-range-array.c M src/lib/str-find.c M src/lib/str-sanitize.c M src/lib/str.c M src/lib/strescape.c M src/lib/strfuncs.c M src/lib/strnum.c M src/lib/test-aqueue.c M src/lib/test-array.c M src/lib/test-base64.c M src/lib/test-bsearch-insert-pos.c M src/lib/test-buffer.c M src/lib/test-crc32.c M src/lib/test-hash-format.c M src/lib/test-hex-binary.c M src/lib/test-istream-base64-encoder.c M src/lib/test-istream-concat.c M src/lib/test-istream-crlf.c M src/lib/test-istream-seekable.c M src/lib/test-istream-tee.c M src/lib/test-lib.c M src/lib/test-llist.c M src/lib/test-mempool-alloconly.c M src/lib/test-network.c M src/lib/test-ostream-file.c M src/lib/test-primes.c M src/lib/test-priorityq.c M src/lib/test-seq-range-array.c M src/lib/test-str-find.c M src/lib/test-str-sanitize.c M src/lib/test-strescape.c M src/lib/test-strfuncs.c M src/lib/test-time-util.c M src/lib/test-utc-mktime.c M src/lib/test-var-expand.c M src/lib/time-util.c M src/lib/unichar.c M src/lib/unix-socket-create.c M src/lib/unlink-directory.c M src/lib/unlink-old-files.c M src/lib/utc-mktime.c M src/lib/utc-offset.c M src/lib/var-expand.c M src/lib/write-full.c M src/lmtp/client.c M src/lmtp/commands.c M src/lmtp/lmtp-proxy.c M src/lmtp/lmtp-settings.c M src/lmtp/main.c M src/log/log-connection.c M src/log/log-settings.c M src/log/main.c M src/login-common/access-lookup.c M src/login-common/client-common-auth.c M src/login-common/client-common.c M src/login-common/login-proxy-state.c M src/login-common/login-proxy.c M src/login-common/login-settings.c M src/login-common/main.c M src/login-common/sasl-server.c M src/login-common/ssl-proxy-gnutls.c M src/login-common/ssl-proxy-openssl.c M src/login-common/ssl-proxy.c M src/master/dup2-array.c M src/master/main.c M src/master/master-settings.c M src/master/service-anvil.c M src/master/service-listen.c M src/master/service-log.c M src/master/service-monitor.c M src/master/service-process-notify.c M src/master/service-process.c M src/master/service.c M src/plugins/acl/acl-api.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/acl/acl-plugin.c M src/plugins/acl/acl-shared-storage.c M src/plugins/acl/acl-storage.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/expire/doveadm-expire.c M src/plugins/expire/expire-plugin.c M src/plugins/expire/expire-set.c M src/plugins/fts-lucene/fts-backend-lucene.c M src/plugins/fts-lucene/fts-lucene-plugin.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-solr/fts-solr-plugin.c M src/plugins/fts-solr/solr-connection.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts-squat/fts-squat-plugin.c M src/plugins/fts-squat/squat-test.c M src/plugins/fts-squat/squat-trie.c M src/plugins/fts-squat/squat-uidlist.c M src/plugins/fts/fts-api.c M src/plugins/fts/fts-plugin.c M src/plugins/fts/fts-search.c M src/plugins/fts/fts-storage.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/mail-log/mail-log-plugin.c M src/plugins/quota/doveadm-quota.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-dict.c M src/plugins/quota/quota-dirsize.c M src/plugins/quota/quota-fs.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-plugin.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/snarf/snarf-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-plugin.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-search.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/plugins/virtual/virtual-transaction.c M src/plugins/zlib/doveadm-zlib.c M src/plugins/zlib/istream-bzlib.c M src/plugins/zlib/istream-zlib.c M src/plugins/zlib/ostream-bzlib.c M src/plugins/zlib/ostream-zlib.c M src/plugins/zlib/zlib-plugin.c M src/pop3-login/client-authenticate.c M src/pop3-login/client.c M src/pop3-login/pop3-login-settings.c M src/pop3-login/pop3-proxy.c M src/pop3/main.c M src/pop3/pop3-client.c M src/pop3/pop3-commands.c M src/pop3/pop3-settings.c M src/ssl-params/main.c M src/ssl-params/ssl-params-openssl.c M src/ssl-params/ssl-params-settings.c M src/ssl-params/ssl-params.c M src/util/gdbhelper.c M src/util/listview.c M src/util/maildirlock.c M src/util/rawlog.c M src/util/script-login.c M src/util/script.c M src/util/tcpwrap-settings.c M src/util/tcpwrap.c 2011-03-04 20:46:41 +0200 Timo Sirainen (ea2a42503) lib-master: Added reconnection timeout to anvil client. Previously if anvil kept disconnecting, the client was rapidly flooding the logs with errors. M src/lib-master/anvil-client.c 2011-03-04 20:45:17 +0200 Timo Sirainen (698a43982) master: Allow protocols value to be empty (= same as "none") M src/master/master-settings.c 2011-03-04 20:37:03 +0200 Timo Sirainen (29f32cdcf) master: Use per-services_list "master is dead" fd, so services know when config is reload. M src/master/common.h M src/master/main.c M src/master/service-monitor.c M src/master/service-process.c M src/master/service.c M src/master/service.h 2011-03-04 20:01:03 +0200 Timo Sirainen (b825078c3) master: Memory leak fix if services couldn't be initialized. (On config reload.) M src/master/service.c 2011-03-04 19:51:44 +0200 Timo Sirainen (2a7070297) lib-sql: When adding more connections to sql pool, connect to them immediately. M src/lib-sql/driver-sqlpool.c 2011-03-04 19:51:06 +0200 Timo Sirainen (294c71436) pgsql: Don't assert-crash if query fails when trying to send it. M src/lib-sql/driver-pgsql.c 2011-03-04 19:33:52 +0200 Timo Sirainen (554c1c792) pgsql: If host isn't given, don't show pgsql((null)) as log prefix (or crash). M src/lib-sql/driver-pgsql.c 2011-03-04 19:07:31 +0200 Timo Sirainen (515ec4775) example-config: Added import_environment. M doc/example-config/dovecot.conf 2011-03-04 18:52:17 +0200 Timo Sirainen (5e992fca7) login: Skip auth penalty checks from IPs in login_trusted_networks. M src/login-common/sasl-server.c 2011-03-04 18:51:46 +0200 Timo Sirainen (d8702d15e) auth: Allow clients to specify that they want to skip auth penalty check. This is "safe", because the clients specify the IP for the penalty check anyway. M src/auth/auth-penalty.c M src/auth/auth-request.c M src/auth/auth-request.h M src/lib-auth/auth-client-request.c M src/lib-auth/auth-client.h 2011-03-04 18:32:09 +0200 Timo Sirainen (f67059a0f) virtual: Allow search rule continuation lines to begin with tab as well as space. M src/plugins/virtual/virtual-config.c 2011-03-04 18:32:09 +0200 Timo Sirainen (ebc7480f2) virtual: Allow search rule continuation lines to begin with tab as well as space. M src/plugins/virtual/virtual-config.c 2011-03-04 18:31:02 +0200 Timo Sirainen (5000d15a4) lib-imap: imap_parser_finish_line() didn't return failure on invalid input. M src/lib-imap/imap-parser.c 2011-03-04 18:31:02 +0200 Timo Sirainen (1f0d01bc0) lib-imap: imap_parser_finish_line() didn't return failure on invalid input. M src/lib-imap/imap-parser.c 2011-03-04 18:20:38 +0200 Timo Sirainen (7baab0b0b) sdbox: Fixed creating mailbox with given GUID. M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2011-03-04 18:19:56 +0200 Timo Sirainen (1c288c40f) sdbox: Fixed creating mailbox with given GUID. M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2011-03-04 18:09:01 +0200 Timo Sirainen (6bd9ffc5d) doveadm acl debug: If any errors are noticed, fix them. M src/plugins/acl/doveadm-acl.c 2011-03-04 18:09:01 +0200 Timo Sirainen (26a0113bb) doveadm acl debug: If any errors are noticed, fix them. M src/plugins/acl/doveadm-acl.c 2011-03-04 18:08:30 +0200 Timo Sirainen (579e70631) acl: Added acl_backend_nonowner_lookups_rebuild() M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c M src/plugins/acl/acl-api.h M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend-vfile.h 2011-03-04 18:08:30 +0200 Timo Sirainen (83ecd8be8) acl: Added acl_backend_nonowner_lookups_rebuild() M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c M src/plugins/acl/acl-api.h M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend-vfile.h 2011-03-04 17:57:29 +0200 Timo Sirainen (7b3959785) doveadm acl debug: Compile fix for earlier change. M src/plugins/acl/doveadm-acl.c 2011-03-04 17:56:11 +0200 Timo Sirainen (7ce0510a5) doveadm: Added acl delete command. M src/plugins/acl/doveadm-acl.c 2011-03-04 17:56:11 +0200 Timo Sirainen (3aa600b84) doveadm: Added acl delete command. M src/plugins/acl/doveadm-acl.c 2011-03-04 17:51:46 +0200 Timo Sirainen (8962fb60b) doveadm acl debug: Show also if mailbox has private flags. M src/plugins/acl/doveadm-acl.c 2011-03-04 17:51:46 +0200 Timo Sirainen (facd0971a) doveadm acl debug: Show also if mailbox has private flags. M src/plugins/acl/doveadm-acl.c 2011-03-04 03:22:45 +0200 Timo Sirainen (fe25191fe) acl: Added doveadm plugin supporting acl get/set/rights/debug commands. M src/plugins/acl/Makefile.am M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-lookup-dict.h A src/plugins/acl/doveadm-acl.c 2011-03-04 03:16:51 +0200 Timo Sirainen (08968b259) lib-storage: Fixed accessing shared mailboxes. M src/lib-storage/index/shared/shared-list.c 2011-03-04 03:16:25 +0200 Timo Sirainen (44fea1d43) lib-storage: MAIL_STORAGE_SERVICE_FLAG_DEBUG didn't do anything. M src/lib-storage/mail-storage-service.c 2011-03-04 03:16:15 +0200 Timo Sirainen (7a330e74e) lib-storage: MAIL_STORAGE_SERVICE_FLAG_DEBUG didn't do anything. M src/lib-storage/mail-storage-service.c 2011-03-04 03:03:26 +0200 Timo Sirainen (7c598f384) acl: Added doveadm acl debug command. M src/plugins/acl/acl-lookup-dict.c M src/plugins/acl/acl-lookup-dict.h M src/plugins/acl/doveadm-acl.c 2011-03-04 02:51:18 +0200 Timo Sirainen (78eb65ce3) acl: Fixed crash when acl_lookup_dict was disabled and user belonged to groups. M src/plugins/acl/acl-lookup-dict.c 2011-03-04 02:50:47 +0200 Timo Sirainen (fdf03f944) acl: Fixed crash when acl_lookup_dict was disabled and user belonged to groups. M src/plugins/acl/acl-lookup-dict.c 2011-03-04 02:13:26 +0200 Timo Sirainen (7d8afd1e1) acl: Added doveadm plugin supporting acl get/set/rights commands. M src/plugins/acl/Makefile.am M src/plugins/acl/acl-api-private.h M src/plugins/acl/acl-api.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c A src/plugins/acl/doveadm-acl.c 2011-03-02 15:52:10 +0200 Timo Sirainen (27caac427) mdbox purge: Fixes to handling corrupted mdbox files. M src/lib-storage/index/dbox-multi/mdbox-purge.c 2011-03-02 15:51:28 +0200 Timo Sirainen (57f4bbb1e) mdbox: Storage rebuilding may have skipped over messages if the file was already at EOF. Probably didn't happen except when purging noticed corruption and triggered index rebuild. M src/lib-storage/index/dbox-common/dbox-file.c 2011-03-02 14:57:58 +0200 Timo Sirainen (5fbf8719b) mysql/pgsql: Log prefixes now contain also the hostname. This is useful when there are multiple hosts in use. M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c 2011-02-28 19:52:10 +0200 Timo Sirainen (9b0c832da) lib-charset: Skip over only invalid characters, not entire buffers around them. M src/lib-charset/charset-iconv.c 2011-02-28 19:20:00 +0200 Timo Sirainen (db654c757) doveadm import: Fixed potential memory corruption. M src/doveadm/doveadm-mail-import.c 2011-02-28 18:57:21 +0200 Timo Sirainen (2f414d71a) doveadm: Unload plugins only after calling command's deinit() function. This fixes a crash on deinit when using a plugin that hooks into user.deinit(). M src/doveadm/doveadm-mail.c 2011-02-28 17:50:41 +0200 Timo Sirainen (218153e0a) doveadm: Memory leak fix. M src/doveadm/doveadm-mail.c 2011-02-28 17:34:24 +0200 Timo Sirainen (3dadeec1c) auth: Log a warning if ldap attribute has unexpectedly multiple values. M src/auth/auth-request.c M src/auth/auth-request.h M src/auth/db-ldap.c M src/auth/db-ldap.h M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2011-02-28 16:34:04 +0200 Timo Sirainen (fafe15346) lib-storage: Crashfix on thread handling. M src/lib-storage/index/index-thread.c 2011-02-28 16:33:50 +0200 Timo Sirainen (29371e68a) imapc: Use multiple client connections when necessary. Some other fixes. M src/lib-storage/index/imapc/imapc-client-private.h M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-connection.h M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-02-28 16:03:40 +0200 Timo Sirainen (b2be59051) lib-storage: Failures when building thread index were hidden. M src/lib-storage/index/index-thread.c 2011-02-28 13:13:38 +0200 Timo Sirainen (7b8d53b46) imapc: Fixed sending large streams in commands (APPEND) M src/lib-storage/index/imapc/imapc-connection.c 2011-02-25 10:55:34 +0200 Timo Sirainen (c3a0b433a) lib-index: If keyword is added and remove within transaction, don't write a broken keyword update. This could have caused "No UID ranges (type=0x400)" errors. M src/lib-index/mail-index-transaction-export.c 2011-02-24 17:06:41 +0200 Timo Sirainen (9106fd92e) imapc: Don't try to wait for FETCH to return messages that are known to be expunged. M src/lib-storage/index/imapc/imapc-search.c 2011-02-24 15:37:22 +0200 Timo Sirainen (92927ceff) imapc: Fixes to handling FETCH commands. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-search.c 2011-02-24 15:17:47 +0200 Timo Sirainen (df48643c3) imapc: Many fixes related to syncing and error handling. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-connection.h M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-seqmap.c M src/lib-storage/index/imapc/imapc-seqmap.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/imapc/imapc-sync.h 2011-02-24 13:19:05 +0200 Timo Sirainen (1727610db) lib-index: Give better assert-crashes if view or log view isn't closed. Earlier it should have also assert-crashed with "log->files == NULL", which didn't make it clear enough why the files aren't NULL. M src/lib-index/mail-index-private.h M src/lib-index/mail-index-view.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-view.c M src/lib-index/mail-transaction-log.c M src/lib-index/mail-transaction-log.h 2011-02-24 12:57:31 +0200 Timo Sirainen (ad99e7b93) ioloop: Memory leak fix. M src/lib/ioloop.c 2011-02-24 11:27:42 +0200 Timo Sirainen (18aeafbbc) imapc: Fixed crashing in IDLE handling when server got disconnected. M src/lib-storage/index/imapc/imapc-connection.c 2011-02-24 11:26:27 +0200 Timo Sirainen (d2470b3df) Avoid unnecessary data stack leaks. M src/imap/imap-sync.c M src/lib-index/mail-index-transaction.c M src/lib/process-title.c 2011-02-24 11:02:29 +0200 Timo Sirainen (fad068d45) lib-index: If keyword is added and remove within transaction, don't write a broken keyword update. This could have caused "No UID ranges (type=0x400)" errors. M src/lib-index/mail-index-transaction-export.c 2011-02-22 15:49:14 +0200 Timo Sirainen (40b9f641a) NEWS updated with initial list of new features. M NEWS 2011-02-22 15:49:04 +0200 Timo Sirainen (e68612809) TODO updated M TODO 2011-02-22 15:44:42 +0200 Timo Sirainen (a37c2c1ad) config: Fixed converting old auth/mail_process_size settings. M src/config/old-set-parser.c 2011-02-22 15:31:31 +0200 Timo Sirainen (072f06b60) Merged changes from v2.0 tree. 2011-02-22 15:02:23 +0200 Timo Sirainen (6851806b0) config: Previous commit allows removing "0" from strlist/0/key=value output. M src/config/config-request.c 2011-02-22 15:00:37 +0200 Timo Sirainen (c15526241) lib-settings: Fixed setting "strlist/key=value" when strlist hadn't been initialized yet. This happened when using -O parameter. M src/lib-settings/settings-parser.c 2011-02-22 13:57:20 +0200 Timo Sirainen (d7ec9b491) lib-lda: Added submission_host setting to send mails via SMTP instead of sendmail. M doc/example-config/conf.d/15-lda.conf M src/lib-lda/lda-settings.c M src/lib-lda/lda-settings.h M src/lib-lda/smtp-client.c 2011-02-22 11:59:57 +0200 Timo Sirainen (d8f73a44f) imap: Fixed infinite loop / memory eating with SEARCHRES + pipelining $. If SEARCH RETURN (SAVE) command was running long enough so that Dovecot started executing the next command, and if that command used $ in messageset, Dovecot went into infinite function recursion. M src/imap/imap-client.c M src/imap/imap-client.h 2011-02-22 11:14:31 +0200 Mike Kazantsev (sacrilege) (9f1461d90) systemd service: added [Install] section, so it can be used independently from dovecot.socket M dovecot.service.in 2011-02-22 11:04:55 +0200 Timo Sirainen (88339cce7) doveadm expire: Added more error and debug messages. M src/plugins/expire/doveadm-expire.c 2011-02-22 10:43:28 +0200 Timo Sirainen (f0b336216) doveadm import: Settings weren't correctly used for the import storage. For example plugins weren't loaded, causing problems with zlib compressed messages. M src/doveadm/doveadm-mail-import.c 2011-02-22 10:21:26 +0200 Timo Sirainen (6f0bb992c) lib-index: Verify that expunge-guid records have valid UID. M src/lib-index/mail-transaction-log-view.c 2011-02-19 16:56:21 +0200 Timo Sirainen (b9fdd5b3c) Fixed compiling with configure --with-storages when imapc wasn't listed. M configure.in M src/lib-storage/register/Makefile.am 2011-02-19 16:46:14 +0200 Timo Sirainen (a5c81d77e) fs layout: Fixed crash on listing % when namespace had a prefix. M src/lib-storage/mailbox-list.c 2011-02-19 16:42:45 +0200 Timo Sirainen (97dc3902e) imapc: Added more debugging output with mail_debug=yes M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-storage.c 2011-02-18 05:56:38 +0200 Timo Sirainen (ebc49d923) Compiler warning fix. M src/plugins/zlib/doveadm-zlib.c 2011-02-18 05:55:34 +0200 Timo Sirainen (296857bde) Added uni_utf8_data_is_valid(). M src/lib/unichar.c M src/lib/unichar.h 2011-02-17 18:02:45 +0200 Timo Sirainen (c2d29d9a1) Makefile: Added missing imapc-client*.h M src/lib-storage/index/imapc/Makefile.am 2011-02-17 15:30:46 +0000 Pascal Volk (656393f25) man: Storage quota values are reported in kilobytes. M doc/man/doveadm-quota.1.in 2011-02-17 10:57:05 +0200 Timo Sirainen (e2c9c32cb) dsync: Flush workers' output earlier when saving messages. M src/dsync/dsync-brain-msgs-new.c 2011-02-17 10:55:38 +0200 Timo Sirainen (aa7b95345) dsync: Error handling fix to "proxy client timed out". M src/dsync/dsync-proxy-client.c 2011-02-17 10:55:07 +0200 Timo Sirainen (69c1f045d) dsync: Fixed somewhat random failures with saving messages to remote dsync. M src/dsync/dsync-proxy-client.c 2011-02-17 09:54:26 +0200 Timo Sirainen (647a01176) dbox index rebuild: If alt dir isn't mounted (can't be mkdir()ed), abort rebuild. M src/lib-storage/index/dbox-common/dbox-sync-rebuild.c M src/lib-storage/index/dbox-common/dbox-sync-rebuild.h M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c 2011-02-17 09:32:35 +0200 Timo Sirainen (b22f7b9ba) dbox: Check that attachment extref parts won't point outside message. M src/lib-storage/index/dbox-common/dbox-attachment.c 2011-02-17 09:28:55 +0200 Timo Sirainen (843197a6b) istream-limit: Allow seeking past limit without assert-crashing. The next read() will simply return EOF. M src/lib/istream-limit.c 2011-02-17 09:01:38 +0200 Timo Sirainen (04b732360) example-config: mail_max_userip_connections default is 10, even for pop3. 3 would probably be better, but there's no way to set per-protocol defaults currently. M doc/example-config/conf.d/20-pop3.conf 2011-02-17 08:58:43 +0200 Timo Sirainen (6df2db16b) pgsql: Added assert. M src/lib-sql/driver-pgsql.c 2011-02-17 08:41:46 +0200 Timo Sirainen (f119596e3) pgsql: Don't assert-crash on "query timed out" error. M src/lib-sql/driver-pgsql.c 2011-02-17 08:29:47 +0200 Timo Sirainen (874766f94) lib-storage: Fixed renaming mailboxes in a non-private namespace. M src/lib-storage/mail-storage.c 2011-02-17 08:12:21 +0200 Timo Sirainen (fcd443a32) lmtp: Don't forget LHLO host when sending multiple messages in session. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c 2011-02-17 07:45:30 +0200 Timo Sirainen (847112173) imapc: When local IDLE is started, force remote server to first check changes with NOOP. This is makes clicking Thunderbird's "get mail" button to check for new mails with servers that don't notify about them immediately after they arrive. M src/lib-storage/index/imapc/imapc-storage.c 2011-02-12 06:06:32 +0200 Timo Sirainen (31277bf6e) imapc: Mailbox listing code works now perfectly. M src/lib-storage/index/imapc/Makefile.am M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h 2011-02-12 06:05:40 +0200 Timo Sirainen (a0cda1ea5) lib-storage: Fixes to mailbox_list_iter_update() M src/lib-storage/mailbox-list.c 2011-02-12 06:05:07 +0200 Timo Sirainen (688d869f3) lib-storage: mailbox_list_mailbox() should have replaced info flags, not updated them. Many callers didn't have the flags cleared before calling it. M src/lib-storage/mailbox-list.c 2011-02-12 01:29:20 +0200 Timo Sirainen (c2839134a) lib-storage: Added mailbox_tree_set_separator() M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-tree.h 2011-02-12 01:09:10 +0200 Timo Sirainen (45baf5d8e) lib-storage: Minor code cleanup. M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c 2011-02-12 05:32:25 +0200 Timo Sirainen (9b2bbd890) lib-storage: When listing subscriptions, make sure children flags are returned if requested. M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h 2011-02-12 05:31:32 +0200 Timo Sirainen (c4529ff75) printf_format_fix*() assert-crashed if the format ended with "%%". M src/lib/printf-format-fix.c 2011-02-12 05:17:12 +0200 Timo Sirainen (047e3bbb0) lib-storage: layout=fs now uses mailbox_exists() instead of requiring storage hooks. M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/plugins/virtual/virtual-storage.c 2011-02-12 05:12:36 +0200 Timo Sirainen (68d98139f) lib-storage: mailbox_create() failed if it was done to \noselect mailbox. M src/lib-storage/mail-storage.c 2011-02-12 04:59:44 +0200 Timo Sirainen (c8db5bcaa) lib-storage: mailbox_list_index setting meaning was reversed. M src/lib-storage/list/index-mailbox-list.c 2011-02-12 04:50:03 +0200 Timo Sirainen (c29216637) lib-storage: mailbox_exists() can now return if it's selectable or non-selectable. M src/imap/cmd-subscribe.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/test-mailbox.c M src/plugins/acl/acl-mailbox.c M src/plugins/autocreate/autocreate-plugin.c 2011-02-12 00:48:47 +0200 Timo Sirainen (4ba962c3e) lib-storage: Changed mailbox_list.subscriptions_refresh() API to be more flexible. The new API makes it easier implement subscriptions=no to a backend that doesn't use the regular subscriptions file. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/mailbox-list-subscriptions.h M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c 2011-02-12 00:38:09 +0200 Timo Sirainen (c563c72e1) lib-storage: Mailbox list indexes are now enabled also for in-memory indexes. M src/lib-storage/list/index-mailbox-list.c 2011-02-12 00:16:06 +0200 Timo Sirainen (4b2e3b39b) lib-storage: Don't allow renaming mailbox under another one with different permissions. This is mainly to avoid any weird situations arising with shared mailboxes. M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c 2011-02-12 00:15:04 +0200 Timo Sirainen (73408e56e) lib-storage: Crashfix to removing deleted mailboxes from mailbox list index. M src/lib-storage/list/index-mailbox-list.c 2011-02-12 00:02:02 +0200 Timo Sirainen (d06c46087) lib-storage: When creating a new mailbox, get permissions from its parent mailbox, not root. M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/mailbox-list.c 2011-02-11 23:44:39 +0200 Timo Sirainen (44aef6497) auth: If username contains invalid chars, log sanitized username even without auth_debug. M src/auth/auth-request.c 2011-02-11 23:35:52 +0200 Timo Sirainen (1be788012) doveadm: Previous mailbox create -s fix broke -A/-u parameters. Fixed now properly the root cause: -S parameter was handled as -s by getopt. M src/doveadm/doveadm-mail.c 2011-02-10 14:58:43 +0100 Dennis Schridde (10823ce2f) Put modulename in quotes when complaining about its non-existence M src/lib/module-dir.c 2011-02-10 03:03:28 +0200 Timo Sirainen (303afe90f) master: Change stderr to /dev/null just before forking. M src/master/main.c 2011-02-10 02:51:22 +0200 Timo Sirainen (33a896321) istream-header-filter: Fixes handling HEADER_FILTER_END_BODY_WITH_LF correctly. M src/lib-mail/istream-header-filter.c 2011-02-10 02:21:03 +0200 Timo Sirainen (87a861a8c) Maildir++: Fixed crash when listing subscriptions for a subscriptions=no namespace from LAYOUT=fs namespace. M src/lib-storage/list/mailbox-list-maildir.c 2011-02-10 01:54:26 +0200 Timo Sirainen (d5eb47a79) Added import_environment setting. This also cleans up different places in code where TZ and other environments are preserved. If it's not in the import_environment setting, it's not preserved. M src/doveadm/doveadm.c M src/lib-lda/smtp-client.c M src/lib-master/master-interface.h M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-master/master-service.c M src/lib-master/master-service.h M src/lib-storage/mail-storage-service.c M src/master/main.c M src/master/master-settings.c M src/master/master-settings.h M src/master/service-process.c M src/master/service.c M src/master/service.h 2011-02-10 00:45:51 +0200 Timo Sirainen (76ed4f853) doveadm: Fixed giving parameters to mail commands. M src/doveadm/doveadm-mail.c 2011-02-09 02:26:44 +0200 Timo Sirainen (461fecc68) lib-storage: Use RECENT count in mailbox list index to set \Marked and \UnMarked LIST flag. M src/lib-storage/list/index-mailbox-list-status.c M src/lib-storage/list/index-mailbox-list.c M src/lib-storage/list/index-mailbox-list.h 2011-02-09 02:25:47 +0200 Timo Sirainen (4373a04f3) lib-storage: Update mailbox list indexes also after each transaction commit. Fixed RECENT counter. M src/lib-storage/list/index-mailbox-list-status.c 2011-02-09 01:58:56 +0200 Timo Sirainen (dae6f4756) lmtp: Fixed crash at startup. M src/lmtp/client.c 2011-02-09 01:54:34 +0200 Timo Sirainen (828a1be47) lda: Fixed crash at startup. M src/lda/main.c 2011-02-09 01:31:40 +0200 Timo Sirainen (c0d069950) lib-storage: Return STATUS replies from mailbox list index only when it's fully up-to-date. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-sync.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.h M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/list/index-mailbox-list-status.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2011-02-08 22:54:14 +0200 Timo Sirainen (2c0120006) lib-storage: Mailbox list indexes now refresh the index on create/delete/rename. M src/lib-storage/list/index-mailbox-list-status.c M src/lib-storage/list/index-mailbox-list.c M src/lib-storage/list/index-mailbox-list.h 2011-02-08 22:18:14 +0200 Timo Sirainen (b84451fa6) lib-index: sync_stamp and sync_size fields are unused, mark them as such. M src/doveadm/doveadm-dump-index.c M src/doveadm/doveadm-dump-log.c M src/lib-index/mail-index.h 2011-02-08 22:17:44 +0200 Timo Sirainen (8bf9b56df) mbox: No longer try to preserve sync stamps from v1.0 mbox index files. The worst that can happen is if a v1.0 user upgrades to v2.1, an mbox gets resynced unnecessarily. M src/lib-storage/index/mbox/mbox-sync.c 2011-02-08 03:31:46 +0200 Timo Sirainen (6ef23d3e0) lib-master: If post-login socket disconnects unexpectedly, suggest process_limit being the reason. M src/lib-master/master-auth.c 2011-02-08 03:31:01 +0200 Timo Sirainen (f7f13e206) master: If process limit is reached, just accept and close the client connection. This makes it a bit clearer what the problem is, so that client can log a better error message. M src/master/service-monitor.c 2011-02-08 01:36:19 +0200 Timo Sirainen (16f5ed4f7) lib-index: Removed the old "mailbox list" type index, which is no longer used. It was rather overdesigned and fragile. M src/lib-index/Makefile.am D src/lib-index/mailbox-list-index-private.h D src/lib-index/mailbox-list-index-sync.c D src/lib-index/mailbox-list-index.c D src/lib-index/mailbox-list-index.h M src/util/Makefile.am D src/util/listview.c 2011-02-08 01:35:45 +0200 Timo Sirainen (dc53fff37) lib-storage: Initial commit for rewritten mailbox list indexes code. They're only enabled with mailbox_list_index=yes setting (default is no). They can also get out of sync pretty easily currently. M src/lib-storage/list/Makefile.am A src/lib-storage/list/index-mailbox-list-status.c D src/lib-storage/list/index-mailbox-list-sync.c M src/lib-storage/list/index-mailbox-list.c M src/lib-storage/list/index-mailbox-list.h M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/mail-storage.c 2011-02-08 00:08:38 +0200 Timo Sirainen (8f430e257) lib-index: Avoid writing tail offset unnecessarily to transaction log file. This could have happened with MAIL_INDEX_TRANSACTION_FLAG_AVOID_FLAG_UPDATES when all flag updates were cancelled and no other changes were done. M src/lib-index/mail-transaction-log-append.c 2011-02-08 00:06:28 +0200 Timo Sirainen (9a0cde255) lib-storage: Crashfix to layout=fs. M src/lib-storage/list/mailbox-list-fs-iter.c 2011-02-07 22:37:45 +0200 Timo Sirainen (f3e177265) lib-storage: Give restrict_access() uid/gid source (userdb or mail_u/gid setting). M src/lib-storage/mail-storage-service.c 2011-02-07 22:37:19 +0200 Timo Sirainen (42c9dff73) restrict_access(): Show uid/gid source in setuid()/setgid() failure messages if given. M src/lib/restrict-access.c M src/lib/restrict-access.h 2011-02-05 04:43:49 +0200 Timo Sirainen (cb933f0a5) lib-storage: Crashfix. M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/mailbox-list.c 2011-02-04 19:48:29 +0200 Timo Sirainen (7b22071c7) lmtp: Fixed handling recipient_delimiter when it was found from domain name. M src/lmtp/commands.c 2011-02-02 23:58:32 +0200 Timo Sirainen (c135b709f) imap: Fixed a hang when trying to COPY to a nonexistent mailbox. M src/imap/cmd-copy.c 2011-02-02 05:33:04 +0200 Timo Sirainen (b13f738e8) lib-storage: Cleaned up subscription listing internally. The subscription listing code is now mostly separated from the mailbox listing code. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/index-mailbox-list.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/mailbox-list-subscriptions.h M src/lib-storage/list/subscription-file.c M src/lib-storage/list/subscription-file.h M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-tree.c M src/lib-storage/mailbox-tree.h 2011-02-02 05:31:46 +0200 Timo Sirainen (c5f13b6f0) IMAP LIST: Never return subscribed children state if RECURSIVEMATCH isn't specified. Not even when backends give it automatically. M src/imap/cmd-list.c 2011-02-02 01:43:08 +0200 Timo Sirainen (8c98b8adb) imapc: Support IDLE even if remote IMAP server doesn't support it. M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-02-02 01:27:50 +0200 Timo Sirainen (e594141a6) autocreate: Redesigned autocreate plugin to create/subscribe mailboxes lazily. Mailboxes are listed as if they existed, but they're not created until the mailbox is opened for the first time. Mailboxes are autosubscribed only during mailbox creation, so subscription file isn't unnecessarily being read all the time either. This lazy creation also means that if autocreate mailbox is removed from configuration and it was never opened by the client, it was also never physically created. M src/plugins/autocreate/Makefile.am M src/plugins/autocreate/autocreate-plugin.c 2011-02-02 01:17:59 +0200 Timo Sirainen (294658a0e) lib-storage: Fixed mailbox listing with Maildir++ layout M src/lib-storage/list/mailbox-list-maildir-iter.c 2011-02-02 01:14:57 +0200 Timo Sirainen (9f46aa48a) lib-storage: Made struct mailbox_list_iterate_context usable for plugins. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mailbox-list-private.h 2011-02-01 21:07:27 +0200 Timo Sirainen (70d86de5a) maildir: Avoid stat()ing dovecot-shared unnecessarily. M src/lib-storage/index/maildir/maildir-storage.c 2011-02-01 20:59:21 +0200 Timo Sirainen (e5aa8d4c9) lib-storage: Merged returning dir mode into mailbox_list_get_[root_]permissions(). M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/lib-storage/mailbox-uidvalidity.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/quota/quota-maildir.c 2011-02-01 20:41:54 +0200 Timo Sirainen (636f017be) lib-storage: Mailbox virtual names are now in UTF-8 format, not IMAP mUTF-7. Plugins that use mailbox names in configuration now take them also as UTF-8 rather than mUTF-7. M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/imap/cmd-list.c M src/imap/cmd-subscribe.c M src/imap/imap-commands-util.c M src/imap/imap-fetch.c M src/lda/main.c M src/lib-lda/mail-deliver.c M src/lib-storage/mail-search-register-human.c M src/lib-storage/mail-search-register-imap.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/snarf/snarf-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c 2011-02-01 20:37:17 +0200 Timo Sirainen (2c88845cb) imapc: Don't use uninitialized variable. M src/lib-storage/index/imapc/imapc-connection.c 2011-02-01 19:19:01 +0200 Timo Sirainen (c458d2e8b) imapc: Default imapc_user to %u. M src/lib-storage/index/imapc/imapc-settings.c M src/lib-storage/index/imapc/imapc-storage.c 2011-02-01 19:17:36 +0200 Timo Sirainen (dfaefeaba) imapc: Don't force a root directory to exist. M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2011-02-01 19:05:54 +0200 Timo Sirainen (c5d6b453e) imapc: Moved settings from plugin {} section to proper imapc_* settings. M src/lib-storage/index/imapc/Makefile.am A src/lib-storage/index/imapc/imapc-settings.c A src/lib-storage/index/imapc/imapc-settings.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-01-31 19:29:17 +0200 Timo Sirainen (241ab3354) imapc: Added support for STARTTLS. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c 2011-01-31 19:29:04 +0200 Timo Sirainen (9ab078696) lib-ssl-iostream: Don't hang if given output stream is in corked state. M src/lib-ssl-iostream/iostream-openssl.c 2011-01-31 19:05:18 +0200 Timo Sirainen (7eb799cd8) imapc: Avoid hanging with SSL M src/lib-storage/index/imapc/imapc-connection.c 2011-01-31 19:01:58 +0200 Timo Sirainen (ce03ab180) imapc: Don't use AUTHENTICATE PLAIN if server doesn't advertise AUTH=PLAIN capability. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c 2011-01-31 19:01:22 +0200 Timo Sirainen (de0170faf) imapc: Fixed LIST/LSUB handling. M src/lib-storage/index/imapc/imapc-list.c 2011-01-31 19:00:57 +0200 Timo Sirainen (5235a79ca) imapc: Fixed sending STATUS command. M src/lib-storage/index/imapc/imapc-storage.c 2011-01-31 18:46:42 +0200 Timo Sirainen (bec25e916) Makefile: Build lib-ssl-iostream earlier M src/Makefile.am 2011-01-31 18:41:04 +0200 Timo Sirainen (bfc7fcde9) imapc: Added initial support for SSL. M configure.in M src/lib-storage/index/imapc/Makefile.am M src/lib-storage/index/imapc/imapc-client-private.h M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-storage.c 2011-01-31 18:40:27 +0200 Timo Sirainen (e98de01b5) Added lib-ssl-iostream for handling SSL connections more easily. M configure.in M src/Makefile.am A src/lib-ssl-iostream/Makefile.am A src/lib-ssl-iostream/iostream-openssl-context.c A src/lib-ssl-iostream/iostream-openssl-params.c A src/lib-ssl-iostream/iostream-openssl.c A src/lib-ssl-iostream/iostream-openssl.h A src/lib-ssl-iostream/iostream-ssl.h A src/lib-ssl-iostream/istream-openssl.c A src/lib-ssl-iostream/ostream-openssl.c 2011-01-31 04:02:04 +0200 Timo Sirainen (8a26102b8) imapc: Write large message bodies to temp files rather than keeping in memory. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-mail.h M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-01-31 04:00:44 +0200 Timo Sirainen (f6a8cd6ea) lib-imap: struct imap_arg.str_size now contains the string value lengths. This is especially useful for literals that might contain NUL bytes. M src/lib-imap/imap-arg.h M src/lib-imap/imap-parser.c 2011-01-31 02:17:26 +0200 Timo Sirainen (5fa6399cf) lib-storage: Threading code uses now separate extra_wanted_headers also. M src/lib-storage/index/index-thread.c 2011-01-31 02:13:51 +0200 Timo Sirainen (e3f2f1bee) imapc: Fixed sending single FETCH queries. M src/lib-storage/index/imapc/imapc-mail.h M src/lib-storage/index/imapc/imapc-search.c 2011-01-31 02:13:06 +0200 Timo Sirainen (e29f8a6a5) lib-storage: Moved setting "wanted fields/headers" fields for sort program from imap-specific code. Also separate between fields that are actually wanted to be fetched from the fields that sorting wants to temporarily use. M src/imap/imap-search.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-search.c M src/lib-storage/index/index-sort.c M src/lib-storage/mail-storage-private.h 2011-01-31 01:36:29 +0200 Timo Sirainen (d164cc33d) imapc: Minor code cleanup M src/lib-storage/index/imapc/imapc-search.c 2011-01-31 00:27:53 +0200 Timo Sirainen (b3f46fa8a) lib-sql: Implemented sql_result_get_field_value_binary() for MySQL. M src/lib-sql/driver-mysql.c 2011-01-30 23:57:14 +0200 Timo Sirainen (e1e623510) dovecot-config, dovecot.m4: Export SQL_LIBS as DOVECOT_SQL_LIBS M dovecot-config.in.in M dovecot.m4 2011-01-30 23:56:23 +0200 Timo Sirainen (6facdb051) lib-sql: Install libdovecot-sql.so as well. M src/lib-sql/Makefile.am 2011-01-30 23:16:46 +0200 Timo Sirainen (020f1989b) lib-storage: layout=noop now shows INBOX as existing if namespace has inbox=yes. It also shows INBOX as always being subscribed. M src/lib-storage/list/mailbox-list-none.c 2011-01-30 20:47:43 +0200 Timo Sirainen (94a77d6e5) imapc: Send UID FETCH commands with larger uidset parameter if possible. This code assumes that server doesn't reorganize FETCH replies when it's given an increasing UID range, which in theory IMAP server would be allowed to do, but I doubt there are any. M src/lib-storage/index/imapc/Makefile.am M src/lib-storage/index/imapc/imapc-client-private.h M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-connection.h M src/lib-storage/index/imapc/imapc-mail.c A src/lib-storage/index/imapc/imapc-mail.h M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h 2011-01-30 20:16:04 +0200 Timo Sirainen (56b8bee59) lib-storage: Index search context is now more accessible by backends. Moved struct index_search_context to index-search-private.h and added recheck_index_args flag that backends can set. M src/lib-storage/index/Makefile.am A src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-search.c 2011-01-30 17:51:17 +0200 Timo Sirainen (7d41c5a9d) script: Root permissions weren't being dropped before executing the script. M src/util/script.c 2011-01-30 17:51:17 +0200 Timo Sirainen (00c45bda5) script: Root permissions weren't being dropped before executing the script. M src/util/script.c 2011-01-28 19:41:03 +0200 Timo Sirainen (bd4cc8e98) script utility now supports the script using stdio/stdout for communication. M src/plugins/quota/quota.c M src/util/script.c 2011-01-28 19:39:00 +0200 Timo Sirainen (13aff14ae) imapc: If mail's input stream is changed, don't assume virtual size = physical size. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-search.c 2011-01-28 17:57:21 +0200 Timo Sirainen (689b06e33) imapc: Added support for saving and copying messages. M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-save.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-01-26 21:47:52 +0200 Timo Sirainen (562d0d9da) ioloop: Use -1 for infinite poll/epoll timeout rather than INT_MAX. Should improve performance a tiny bit and also works around a CPU eater bug in Linux 2.6.37. M src/lib/ioloop.c 2011-01-26 21:47:52 +0200 Timo Sirainen (61cb43e24) ioloop: Use -1 for infinite poll/epoll timeout rather than INT_MAX. Should improve performance a tiny bit and also works around a CPU eater bug in Linux 2.6.37. M src/lib/ioloop.c 2011-01-25 17:35:32 +0200 Timo Sirainen (04807a245) imapc: Syncing optimization: Don't wait for STOREs to complete before sending EXPUNGE. M src/lib-storage/index/imapc/imapc-sync.c 2011-01-25 17:23:52 +0200 Timo Sirainen (934dbb10a) imapc: Added support for changing flags and expunging. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-sync.c M src/lib-storage/index/imapc/imapc-sync.h 2011-01-25 17:15:54 +0200 Timo Sirainen (83a03a417) imapc: Added support for keywords. M src/lib-storage/index/imapc/imapc-mailbox.c 2011-01-25 00:32:50 +0200 Timo Sirainen (c58c12049) lib-storage: Give a better error message if mail_location has INBOX but no mail root dir. M src/lib-storage/mailbox-list.c 2011-01-25 00:10:46 +0200 Timo Sirainen (8ff346cf8) dotlocks: When locking using hard links, make sure the dotlock's timestamp is new enough. M src/lib/file-dotlock.c 2011-01-24 00:42:29 +0200 Timo Sirainen (37f749662) dsync: Changes to make it work with imapc storage. M src/dsync/dsync-worker-local.c M src/dsync/dsync.c 2011-01-24 00:42:06 +0200 Timo Sirainen (9ca6d68fb) imapc: Fixed mail_set_seq/uid() to work. M src/lib-storage/index/imapc/imapc-mail.c M src/lib-storage/index/imapc/imapc-search.c M src/lib-storage/index/imapc/imapc-storage.h 2011-01-24 00:31:05 +0200 Timo Sirainen (5e042146d) dbox: mailbox_create/update() might not have updated index header correctly. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c 2011-01-24 00:31:05 +0200 Timo Sirainen (84e49ad7d) dbox: mailbox_create/update() might not have updated index header correctly. M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c 2011-01-24 00:00:02 +0200 Timo Sirainen (719bda796) imapc: Implemented more methods. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-connection.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-01-23 23:32:52 +0200 Timo Sirainen (51130f00b) imapc: Fixed mailbox deletion and some error handling. Code cleanups. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-connection.h M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-sync.c 2011-01-23 23:32:34 +0200 Timo Sirainen (56c0277dc) lib-storage: Don't fail mailbox deletion if backend doesn't support mailbox GUIDs. M src/lib-storage/index/index-storage.c 2011-01-23 22:58:34 +0200 Timo Sirainen (494a5de15) lib-storage: Recent changes accidentally made INBOX case-sensitive. M src/lib-storage/mailbox-list.c 2011-01-23 22:57:01 +0200 Timo Sirainen (6f9a5ecb5) imapc: Handle properly mailbox changes while it's selected. Added support for IDLE. M src/lib-storage/index/imapc/imapc-client.c M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-connection.h M src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/index/imapc/imapc-sync.c 2011-01-23 20:26:02 +0200 Timo Sirainen (c291de483) imapc: Fixed seqmap to work. The algorithm is a bit slow, could be improved. But probably won't make much of a difference in real life. M src/lib-storage/index/imapc/Makefile.am M src/lib-storage/index/imapc/imapc-seqmap.c A src/lib-storage/index/imapc/test-imapc-seqmap.c 2011-01-21 21:46:24 +0200 Timo Sirainen (6d3ebefb8) IDLE: Don't assert-crash if IDLE+DONE is sent in same TCP packet. M src/imap/cmd-idle.c 2011-01-21 19:16:34 +0200 Timo Sirainen (a446ff0c6) Added doveadm zlibconnect command for testing IMAP COMPRESS. M src/plugins/zlib/Makefile.am M src/plugins/zlib/doveadm-zlib.c 2011-01-21 19:15:37 +0200 Timo Sirainen (5cbd6f3ed) zlib: Make sure output stream flushes the stream automatically when not corked. Fixes hangs with IMAP COMPRESS extension. M src/plugins/zlib/ostream-zlib.c 2011-01-21 17:39:24 +0200 Timo Sirainen (c5c71245f) imapc: Code cleanups and fixes. M src/lib-storage/index/imapc/Makefile.am M src/lib-storage/index/imapc/imapc-client.h M src/lib-storage/index/imapc/imapc-connection.c M src/lib-storage/index/imapc/imapc-list.c M src/lib-storage/index/imapc/imapc-list.h A src/lib-storage/index/imapc/imapc-mailbox.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h 2011-01-21 01:05:00 +0200 Timo Sirainen (f6605a419) imapc: Call istream_opened() method if it's set for mail. M src/lib-storage/index/imapc/imapc-search.c 2011-01-20 23:16:23 +0200 Timo Sirainen (b8cee9a13) dotlocks: Refresh current time after having waited for a lock. M src/lib/file-dotlock.c 2011-01-20 23:09:44 +0200 Timo Sirainen (ba02cf1da) lib-storage: Fixed handling chroot/home for services that don't really chroot (lmtp). M src/lib-storage/mail-storage-service.c 2011-01-20 22:45:41 +0200 Timo Sirainen (90de49eb1) imapc: Added support for LIST/LSUB. M src/lib-storage/index/imapc/Makefile.am A src/lib-storage/index/imapc/imapc-list.c A src/lib-storage/index/imapc/imapc-list.h M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/imapc/imapc-storage.h M src/lib-storage/register/Makefile.am 2011-01-20 22:44:53 +0200 Timo Sirainen (80987f13c) imapc: Don't send broken FETCH command when we don't actually have to fetch anything. M src/lib-storage/index/imapc/imapc-search.c 2011-01-20 20:59:07 +0200 Timo Sirainen (c0a87e5f3) lib-storage: mailbox_alloc() now takes a virtual mailbox name and other related API changes. All storage_name <-> vname conversions now go through the same two mailbox_list methods. This has many benefits, such as: * listescape plugin is now much simpler and bugfree * allows changing lib-storage API to use UTF-8 mailbox names in future * allows creation of "mailbox aliases" plugin M TODO M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-list-iter.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/dsync/dsync-worker-local.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-list.c M src/imap/cmd-namespace.c M src/imap/cmd-rename.c M src/imap/cmd-select.c M src/imap/cmd-status.c M src/imap/cmd-subscribe.c M src/imap/imap-commands-util.c M src/imap/imap-commands-util.h M src/lib-lda/mail-deliver.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.h M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/index/shared/shared-storage.c M src/lib-storage/list/index-mailbox-list.c M src/lib-storage/list/mailbox-list-fs-iter.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir-iter.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-maildir.h M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/mail-namespace.c M src/lib-storage/mail-namespace.h M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/lib-storage/test-mail-storage.h M src/lib-storage/test-mailbox.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts/fts-storage.c M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/listescape/listescape-plugin.c M src/plugins/quota/quota-count.c M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/snarf/snarf-plugin.c M src/plugins/trash/trash-plugin.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-storage.c M src/pop3/pop3-client.c 2011-01-20 19:21:20 +0200 Timo Sirainen (11352dc3e) lib-storage: Added mailbox_get_last_*error() wrappers and use them. M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail-iter.c M src/doveadm/doveadm-mail-mailbox.c M src/doveadm/doveadm-mail.c M src/dsync/dsync-worker-local.c M src/imap/cmd-fetch.c M src/imap/imap-commands-util.c M src/imap/imap-status.c M src/lda/main.c M src/lib-lda/mail-deliver.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lmtp/commands.c M src/plugins/autocreate/autocreate-plugin.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/quota/quota-count.c M src/plugins/snarf/snarf-plugin.c M src/plugins/virtual/virtual-storage.c M src/pop3/pop3-client.c 2011-01-20 18:17:22 +0200 Timo Sirainen (b30f98f26) lib-storage: Crashfix on trying to create index root dir. M src/lib-storage/mailbox-list.c 2011-01-20 18:14:53 +0200 Timo Sirainen (306cfd771) lib-storage: Replaced mailbox_list_get_name_status() with mailbox_exists(). M src/imap/cmd-subscribe.c M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/imapc/imapc-storage.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/lib-storage/test-mailbox.c M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c M src/plugins/listescape/listescape-plugin.c M src/plugins/virtual/virtual-storage.c 2011-01-19 20:06:39 +0000 Pascal Volk (16b3aad00) lmtp: Write "+ext" part to Delivered-To: header. (reverted changeset 19231e3585db) M src/lmtp/commands.c 2011-01-19 01:21:03 +0200 Timo Sirainen (4afc13f6d) imapc: Fixed authenticating with AUTHENTICATE command without SASL-IR. M src/lib-storage/index/imapc/imapc-connection.c 2011-01-19 01:20:48 +0200 Timo Sirainen (0c7c38847) imapc: Fixed sending non-syncing literals. M src/lib-storage/index/imapc/imapc-connection.c 2011-01-19 00:25:47 +0200 Timo Sirainen (13b4ea020) auth: Logging improvement for nopassword=y. M src/auth/auth-request.c 2011-01-17 21:25:01 +0200 Timo Sirainen (14b8bbb81) lib-index: Avoid corrupting dovecot.index file when recreating it even in case of broken file locking. M src/lib-index/mail-index.c 2011-01-16 21:47:15 +0200 Christian Wiese (afe44ead2) auth: Fixed mech_winbind_ntlm by using mech_winbind_auth_initial() In changeset 9002 a new function named mech_winbind_auth_initial() was introduced, but only the mech_winbind_spnego module part was changed to finally use this function. The mech_winbind_ntlm module part was not properly adapted which leads to a non functioning NTLM authentication mechanism while using winbind, because it will never call the `ntlm_auth` helper. The simple fix is to replace mech_generic_auth_initial() with mech_winbind_auth_initial() as auth_initial "hook" when setting up the mech_winbind_ntlm module, like it is done in the mech_winbind_spnego module. References: - Changeset 9002: http://hg.dovecot.org/dovecot-2.0/diff/9d0037a997f4/src/auth/mech-winbind.c --- src/auth/mech-winbind.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) M src/auth/mech-winbind.c 2011-01-16 21:26:13 +0200 Timo Sirainen (c04d26995) man: Updated dsync.1's -o parameter description. M doc/man/dsync.1.in 2011-01-16 21:25:34 +0200 Timo Sirainen (9d7ea9186) man: Added -o parameter to dovecot-lda.1 M doc/man/dovecot-lda.1.in 2011-01-16 21:15:10 +0200 Timo Sirainen (b710c5119) mkdir_*chown/chgrp(): If chown() fails, rmdir() the directory. M src/lib/mkdir-parents.c 2011-01-16 18:53:27 +0200 Timo Sirainen (9d522c9ad) dsync: Fixed crash when mailbox had zero cache_fields but its array was initialized. M src/dsync/dsync-data.c 2011-01-16 18:08:23 +0200 Timo Sirainen (9fb018dea) Added initial implementation of "imapc" storage. It can be used to create a "smart IMAP proxy" where Dovecot uses remote IMAP server as a mail storage. This is a very rough early implementation. Performance isn't good, many required features are missing, error handling is lacking and code needs de-uglification. Still, it should be enough for selecting INBOX and accessing mails in it. M configure.in M src/lib-storage/index/Makefile.am A src/lib-storage/index/imapc/Makefile.am A src/lib-storage/index/imapc/imapc-client-private.h A src/lib-storage/index/imapc/imapc-client.c A src/lib-storage/index/imapc/imapc-client.h A src/lib-storage/index/imapc/imapc-connection.c A src/lib-storage/index/imapc/imapc-connection.h A src/lib-storage/index/imapc/imapc-mail.c A src/lib-storage/index/imapc/imapc-save.c A src/lib-storage/index/imapc/imapc-search.c A src/lib-storage/index/imapc/imapc-seqmap.c A src/lib-storage/index/imapc/imapc-seqmap.h A src/lib-storage/index/imapc/imapc-storage.c A src/lib-storage/index/imapc/imapc-storage.h A src/lib-storage/index/imapc/imapc-sync.c A src/lib-storage/index/imapc/imapc-sync.h M src/lib-storage/index/index-sync-private.h M src/lib-storage/index/index-sync.c 2011-01-13 13:18:20 +0200 Timo Sirainen (520be643c) Added signature for changeset 440fcf8cb338 M .hgsigs 2011-01-13 13:18:17 +0200 Timo Sirainen (8bc7dd115) Added tag 2.0.9 for changeset 440fcf8cb338 M .hgtags 2011-01-13 13:18:17 +0200 Timo Sirainen (66281cd93) Released v2.0.9. M NEWS M TODO M configure.in 2011-01-13 13:08:40 +0200 Timo Sirainen (6dcea8fd7) TODO updated M TODO 2011-01-13 13:08:21 +0200 Timo Sirainen (33d7b3718) Added io_loop_move_io() and io_loop_move_timeout(). M src/lib/ioloop.c M src/lib/ioloop.h 2011-01-13 13:08:02 +0200 Timo Sirainen (97ee61d72) cydir: Minor fix. M src/lib-storage/index/cydir/cydir-mail.c 2011-01-09 23:39:00 +0200 Timo Sirainen (2524ef7b3) i_stream_read(): Added extra assert. M src/lib/istream.c 2011-01-09 23:38:49 +0200 Timo Sirainen (156736910) istream-seekable: Minor code cleanup. M src/lib/istream-seekable.c 2011-01-09 22:01:36 +0200 Timo Sirainen (b24ffea8b) auth: Don't give an error if doing a passdb lookup and the result has NULL password. M src/auth/passdb.c 2011-01-09 21:37:24 +0200 Timo Sirainen (36c470213) pgsql: When executing synchronous queries, don't wrongly add a connect timeout. M src/lib-sql/driver-pgsql.c 2011-01-09 21:13:31 +0200 Timo Sirainen (06c5f3485) cydir: Minor code fix. M src/lib-storage/index/cydir/cydir-mail.c 2011-01-08 21:03:15 +0200 Timo Sirainen (5297aa3ce) istream-seekable: Minor code cleanup. M src/lib/istream-seekable.c 2011-01-05 20:21:38 +0200 Timo Sirainen (d356d47d6) dsync: Don't crash if message can't be saved to destination mailbox. M src/dsync/dsync-worker-local.c 2011-01-05 18:47:40 +0200 Timo Sirainen (a62470cd2) mdbox: Don't leave partially written messages to mdbox files. M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-file.h M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-single/sdbox-save.c 2011-01-05 18:11:04 +0200 Timo Sirainen (e27411f95) dsync: Fixed iterating through mailboxes when using proxy. This fixes "Unexpected reply from server: +" errors. M src/dsync/dsync-brain-msgs.c 2011-01-04 13:57:33 +0200 Timo Sirainen (33ef806e0) config: Give clear error that auth settings aren't supported inside local/remote blocks. M src/config/config-parser.c 2011-01-04 13:53:17 +0200 Timo Sirainen (434abef12) login: ssl_require_client_cert and ssl_username_from_cert settings should have had auth_ prefix. The actual functionality was provided by the auth_* settings, but with these duplicated settings login process didn't give as good error messages. M src/login-common/client-common.c M src/login-common/login-settings.c M src/login-common/login-settings.h 2011-01-04 13:22:20 +0200 Timo Sirainen (6cbe2facd) auth: Minor code cleanup, use PASSWORD_HIDDEN_STR macro. M src/auth/passdb-cache.c 2011-01-04 13:17:57 +0200 Timo Sirainen (5a01a2c1f) maildir: Fixed renaming child mailboxes when using a namespace prefix. M src/lib-storage/list/mailbox-list-maildir.c 2011-01-04 12:34:48 +0200 Timo Sirainen (1a8b6bb75) maildir: Getting mailbox GUID unnecessarily rewrote the uidlist. M src/lib-storage/index/maildir/maildir-uidlist.c 2011-01-04 12:14:02 +0200 Timo Sirainen (5f41bf551) IDLE was listed twice in capabilities. M configure.in 2011-01-04 12:04:42 +0200 Timo Sirainen (a31ee53e1) dsync: Saved messages' save-date was set to 1970-01-01. M src/dsync/dsync-worker-local.c 2011-01-04 11:55:36 +0200 Timo Sirainen (395682d47) virtual: Fixed saving multiple mails in a transaction (e.g. copy multiple messages). M src/plugins/virtual/virtual-save.c 2011-01-04 11:44:07 +0200 Timo Sirainen (4371df92c) lib-sql: Include Dovecot version number check when loading SQL plugins. M src/lib-sql/driver-mysql.c M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlite.c 2011-01-03 19:06:49 +0200 Timo Sirainen (21fdf5394) lib-lda: Simplified mail_deliver_deduplicate_guid_if_needed() API. M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h 2011-01-03 19:06:02 +0200 Timo Sirainen (d5bc63631) lib-storage: Added mailbox_save_get_transaction(). M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2011-01-03 18:59:07 +0200 Timo Sirainen (44f3f472a) lmtp: If delivering duplicate messages to same user's INBOX, use different GUIDs. This is to avoid POP3 clients getting confused with duplicate UIDLs, when using GUIDs as UIDLs. M src/lda/main.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h M src/lmtp/commands.c 2011-01-03 18:57:05 +0200 Timo Sirainen (90e39174d) dbox: If mail GUID is changed for copied mail, create a new copy of it so it changes. M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-copy.c 2011-01-01 16:00:01 +0200 Timo Sirainen (6f83ab655) configure: Added a note that this is the UNSTABLE branch. M configure.in 2011-01-01 15:59:02 +0200 Timo Sirainen (e1f21d05a) Merged fixes from v2.0 tree. 2011-01-01 15:56:37 +0200 Timo Sirainen (c8af325a6) TODO updated. M TODO 2011-01-01 15:52:39 +0200 Timo Sirainen (51327f248) lib-storage: Moved some items from mailbox_get_status() to a new mailbox_get_metadata(). The idea is now that all status items are tracked all the time after mailbox is opened and they can always be looked up without failure. The metadata items are looked up lazily and the lookups may fail at any time. mailbox_get_status() can be used after mailbox_alloc() to indicate that the mailbox doesn't necessarily have to be opened, just that the status fields get returned. If mailbox is already known to be open, mailbox_get_open_status() can be used. It never fails. M src/doveadm/doveadm-mail-fetch.c M src/doveadm/doveadm-mail-mailbox-status.c M src/doveadm/doveadm-mail-search.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/dsync/dsync-worker-local.c M src/imap/cmd-enable.c M src/imap/cmd-select.c M src/imap/cmd-store.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-commands-util.c M src/imap/imap-fetch.c M src/imap/imap-search.c M src/imap/imap-status.c M src/imap/imap-status.h M src/imap/imap-sync.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-search.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/list/index-mailbox-list-sync.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/fts/fts-storage.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c M src/pop3/pop3-client.c 2011-01-01 14:34:14 +0200 Timo Sirainen (afff56f12) lib-storage: Added warning comments about mail_get_*header*utf8(). M src/lib-storage/mail-storage.h 2011-01-01 13:27:16 +0200 Timo Sirainen (58fe555d8) lib-storage: Don't double-demimefy headers when DISPLAYFROM/DISPLAYTO sorting. M src/lib-storage/index/index-sort.c 2010-12-30 13:45:11 +0200 Timo Sirainen (4cdfd6cc4) lib-storage: Fixed deleting symlinked mailbox. M src/lib-storage/list/mailbox-list-delete.c M src/lib-storage/list/mailbox-list-delete.h M src/lib-storage/list/mailbox-list-maildir-iter.c 2010-12-30 13:41:10 +0200 Timo Sirainen (2c8041ef3) unlink_directory(): Return ELOOP for unexpected symlinks also when O_NOFOLLOW isn't supported. M src/lib/unlink-directory.c 2010-12-30 12:45:52 +0200 Timo Sirainen (a5da67c37) doveadm quota: Don't crash if quota isn't enabled. M src/plugins/quota/doveadm-quota.c 2010-12-30 12:40:50 +0200 Timo Sirainen (d793248cb) doveadm: Fixed mailbox-guid search key to work with shared/public mailboxes. M src/doveadm/doveadm-mail-list-iter.c 2010-12-30 12:04:30 +0200 Timo Sirainen (47fed6b26) vpopmail: "Service disabled" check wasn't being done correctly. M src/auth/passdb-vpopmail.c 2010-12-30 11:51:59 +0200 Timo Sirainen (f827f6b7e) doveadm user: If user isn't found, exit with status 2. M src/doveadm/doveadm-auth.c 2010-12-29 11:43:01 +0200 Timo Sirainen (d3280fe31) lib-storage: mailbox_get_status() can now fail. It might have failed earlier also, but the errors were hidden from caller. M src/doveadm/doveadm-mail-mailbox-status.c M src/dsync/dsync-worker-local.c M src/imap/cmd-select.c M src/imap/imap-client.c M src/imap/imap-status.c M src/imap/imap-sync.c M src/lib-storage/index/index-status.c M src/lib-storage/index/index-storage.h M src/lib-storage/list/index-mailbox-list-sync.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/test-mailbox.c 2010-12-29 11:39:32 +0200 Timo Sirainen (e12203f8a) lib-storage: Crashfix for opening sdbox/mdbox mailbox. M src/lib-storage/index/index-storage.c 2010-12-17 13:23:07 +0000 Timo Sirainen (30a2755b8) lda: Removed optimization of not creating temp files for large mails when not using Sieve. The backwards seeking was still needed if bouncing the mail because of out of quota. M src/lda/main.c 2010-12-17 13:16:01 +0000 Timo Sirainen (c14ceb2ca) snarf: Make sure destination mailbox is open when syncing it. M src/plugins/snarf/snarf-plugin.c 2010-12-15 17:07:01 +0000 Timo Sirainen (cbcba924a) master-child API change: Use a separate fd for tracking when master dies. This works around a Linux performance problem where when one process writes to status fd all the other processes of the same service type wake up. M src/lib-master/master-interface.h M src/lib-master/master-service.c M src/master/common.h M src/master/main.c M src/master/service-process.c 2010-12-13 13:40:27 +0000 Timo Sirainen (a2e77b012) net_listen(): If IPv6 isn't supported, don't fallback to IPv4 if my_ip is given. M src/lib/network.c 2010-12-13 13:27:18 +0000 Timo Sirainen (968aab2a0) quota: Quota warnings could have been executed at incorrect times with some configs. If target mailbox had quota ignored, the warning was sent if the mail would have otherwise exceeded the warning threshold. Same when using multiple quota roots where all of the roots weren't used for the target mailbox. M src/plugins/quota/quota.c 2010-12-09 20:49:53 +0000 Timo Sirainen (31ed209b2) imap: Fixed a memory leak in ESEARCH M src/imap/imap-search.c 2010-12-09 11:16:24 +0000 Timo Sirainen (c599385ac) lib-storage: Added assert check to make sure we never do timeout_add(0) M src/lib-storage/index/index-mailbox-check.c 2010-12-08 23:17:11 +0000 Timo Sirainen (835e8c586) acl: Crashfix at deinit in some configurations. M src/plugins/acl/acl-mailbox-list.c 2010-12-07 02:00:45 +0000 Timo Sirainen (7b32aeca7) auth: Master user login + prefetch userdb changed username to master user. M src/auth/auth-request.c 2010-12-07 01:50:43 +0000 Timo Sirainen (a33cc2d1b) auth: Checkpassword's output fields are now logged with auth_debug=yes M src/auth/passdb-checkpassword.c 2010-12-06 04:36:30 +0000 Timo Sirainen (9981d8da4) auth: When logging in as anonymous user, return "anonymous" userdb extra field. M TODO M src/auth/auth-request-handler.c 2010-12-06 04:36:30 +0000 Timo Sirainen (e8e966468) auth: When logging in as anonymous user, return "anonymous" userdb extra field. M TODO M src/auth/auth-request-handler.c 2010-12-06 04:00:26 +0000 Timo Sirainen (90c636fc0) TODO updated. M TODO 2010-12-06 03:58:17 +0000 Timo Sirainen (b62140c58) lib-storage: Moved mailbox.save_is_attachment() to mail_save_context.part_is_attachment() M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-attachment.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/test-mailbox.c M src/plugins/virtual/virtual-storage.c 2010-12-06 03:53:30 +0000 Timo Sirainen (a4f097498) lib-storage: Unvirtualized mailbox_header_lookup_*() M src/lib-storage/Makefile.am M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c A src/lib-storage/mailbox-header.c M src/lib-storage/test-mailbox.c M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-storage.c 2010-12-06 03:43:23 +0000 Timo Sirainen (dbe64f389) lib-storage: Unvirtualized some methods from struct mailbox. There was never any point in overriding or hooking into them. M src/lib-storage/Makefile.am M src/lib-storage/index/Makefile.am M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-transaction.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c R088 src/lib-storage/index/index-fetch.c src/lib-storage/mailbox-get.c R097 src/lib-storage/index/test-index-fetch.c src/lib-storage/test-mailbox-get.c M src/lib-storage/test-mailbox.c M src/plugins/virtual/virtual-storage.c 2010-12-06 03:41:31 +0000 Timo Sirainen (8871c9797) lib-storage: Added missing mailbox-keywords.c for recent commit. A src/lib-storage/mailbox-keywords.c 2010-12-06 03:40:41 +0000 Timo Sirainen (1ae453453) fts: Added missing new files for last commit. A src/plugins/fts/fts-mailbox.c A src/plugins/fts/fts-mailbox.h 2010-12-06 03:28:29 +0000 Timo Sirainen (499fec344) Moved fts/virtual plugin communication functions away from lib-storage. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/test-mailbox.c M src/plugins/fts-solr/fts-backend-solr.c M src/plugins/fts/Makefile.am M src/plugins/fts/fts-storage.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-storage.h 2010-12-06 03:11:08 +0000 Timo Sirainen (50e6d6276) lib-lda: duplicate_check() should return bool, not int. M src/lib-lda/duplicate.c M src/lib-lda/duplicate.h 2010-12-06 03:08:31 +0000 Timo Sirainen (17cf149e5) lib-storage: Added mailbox_list_get_root_[dir_]permissions() They should be used instead of mailbox_list_get_[dir_]permissions() with name=NULL parameter. M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/subscription-file.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/lib-storage/mailbox-uidvalidity.c M src/plugins/acl/acl-backend-vfile-acllist.c M src/plugins/lazy-expunge/lazy-expunge-plugin.c M src/plugins/quota/quota-maildir.c 2010-12-06 02:16:22 +0000 Timo Sirainen (4182d8cd8) lib-storage: Simplified mailbox_keyword*() APIs. They are no longer struct mailbox methods, because they're always implemented as being wrappers to lib-index APIs anyway. Also mailbox_keywords_ref/unref() no longer take mailbox parameter. M src/dsync/dsync-worker-local.c M src/imap/cmd-append.c M src/imap/cmd-store.c M src/lib-lda/mail-deliver.c M src/lib-storage/Makefile.am M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-search.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/test-mailbox.c M src/plugins/acl/acl-mailbox.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-storage.c M src/plugins/virtual/virtual-sync.c 2010-12-06 01:47:50 +0000 Timo Sirainen (c000c8eca) lib-storage: Removed mailbox.backend_readonly. Backends set it internally lazily now. M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-storage.h M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2010-12-06 01:27:11 +0000 Timo Sirainen (0ed9ccd00) maildir: Avoid harder to unnecessarily read uidlist when syncing mailbox. M src/lib-storage/index/maildir/maildir-sync.c 2010-12-06 01:27:03 +0000 Timo Sirainen (70fa27d9f) maildir: Avoid harder to unnecessarily read uidlist when syncing mailbox. M src/lib-storage/index/maildir/maildir-sync.c 2010-12-06 01:20:14 +0000 Timo Sirainen (8d889b6d8) maildir: Avoid unnecessarily reading uidlist when opening mailbox. M src/lib-storage/index/maildir/maildir-sync.c 2010-12-06 01:19:25 +0000 Timo Sirainen (2881363d3) maildir: Avoid unnecessarily reading uidlist when opening mailbox. M src/lib-storage/index/maildir/maildir-sync.c 2010-12-06 01:11:07 +0000 Timo Sirainen (8a13b020f) lib-storage: Moved box->private_flags_mask to mailbox_get_private_flags_mask() This allows getting it lazily only when it's actually needed. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h M src/lib-storage/test-mailbox.c M src/plugins/acl/acl-mailbox.c M src/plugins/virtual/virtual-storage.c 2010-12-06 00:52:42 +0000 Timo Sirainen (d45055314) lib-storage: Removed subscription name validity check from lib-storage after all. It could have broken when subscriptions were being set for subscriptions=no namespace. M src/imap/cmd-subscribe.c M src/lib-storage/mailbox-list.c 2010-12-06 00:43:28 +0000 Timo Sirainen (7fd8e1582) lib-storage: Mailbox directory creation didn't properly enforce that the name was valid. The name was checked against "valid existing name" rather than "valid create name", which mainly meant that the name could have contained control characters and other things that weren't really intended. This couldn't be used to cause any security holes though. M src/lib-storage/mailbox-list.c 2010-12-06 00:42:42 +0000 Timo Sirainen (7339ddde3) acl: Make the mailbox visible only when it has l/r/i right. This change only affects the ability to SUBSCRIBE to a mailbox. Previously it was allowed when user had any rights at all to mailbox. M src/plugins/acl/acl-mailbox-list.c 2010-12-06 00:37:20 +0000 Timo Sirainen (43a4450c3) lib-storage: Removed unused mailbox_list_get_mailbox_name_status() status codes. M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/plugins/acl/acl-mailbox-list.c 2010-12-06 00:37:09 +0000 Timo Sirainen (f750d1b49) imap-acl, imap-quota: Compile fix for last change. M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c 2010-12-06 00:30:36 +0000 Timo Sirainen (62f49ddfc) imap: Avoid using mailbox_list_get_mailbox_name_status() The validity checks should already be done by the actual commands in most cases (if they didn't, there would be race condition bugs). The only exception is SUBSCRIBE. It doesn't require that the mailbox exists, but we want to enforce that anyway via IMAP. M src/imap/cmd-append.c M src/imap/cmd-copy.c M src/imap/cmd-create.c M src/imap/cmd-delete.c M src/imap/cmd-rename.c M src/imap/cmd-select.c M src/imap/cmd-status.c M src/imap/cmd-subscribe.c M src/imap/imap-commands-util.c M src/imap/imap-commands-util.h 2010-12-06 00:14:25 +0000 Timo Sirainen (510c82e83) lib-storage: Don't allow subscribing to invalid mailbox names. M src/lib-storage/mailbox-list.c 2010-12-06 00:13:28 +0000 Timo Sirainen (1c1e571f5) lib-storage: Mailbox directory creation didn't properly enforce that the name was valid. The name was checked against "valid existing name" rather than "valid create name", which mainly meant that the name could have contained control characters and other things that weren't really intended. This couldn't be used to cause any security holes though. M src/lib-storage/mailbox-list.c 2010-12-05 23:53:47 +0000 Timo Sirainen (14609d1c8) Removed unused BITS_IN_UINT and CLAMP macros. M src/lib/macros.h 2010-12-05 23:53:25 +0000 Timo Sirainen (92550656e) Unexpand BITS_IN_SIZE_T in the only place it's used and remove the macro. M src/lib/lib.c M src/lib/macros.h 2010-12-05 23:52:37 +0000 Timo Sirainen (65b15c350) Moved a global NVL() macro to the few places in lib-imap where it was actually used. M src/lib-imap/imap-bodystructure.c M src/lib-imap/imap-envelope.c M src/lib/macros.h 2010-12-05 23:48:34 +0000 Timo Sirainen (1e4623e33) lib-storage: Fixed error handling when trying to delete mailbox under noinferiors mailbox. M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c 2010-12-05 23:44:38 +0000 Timo Sirainen (df0041260) lib-storage: Don't allocate index until mailbox_open() M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2010-12-05 23:18:55 +0000 Timo Sirainen (ca98892a6) lib-storage: Lazily look up mailbox path and permissions. Added functions to get them. M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-sync.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-keywords.c M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-util.c M src/lib-storage/index/mbox/mbox-file.c M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-sync.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c M src/plugins/fts-squat/fts-backend-squat.c M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-sync.c M src/plugins/zlib/zlib-plugin.c 2010-12-05 22:11:01 +0000 Timo Sirainen (de213b54c) lib-storage: mailbox_create_fd() handles "no inferior mailboxes allowed" error now. M src/lib-storage/mail-storage.c 2010-12-05 21:39:09 +0000 Timo Sirainen (c04f9a724) lib-storage: Removed struct index_transaction_context. All of its contents are now in struct mailbox_transaction_context. M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/index-mail-headers.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/index-transaction.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/mbox/mbox-storage.h M src/lib-storage/mail-storage-private.h M src/plugins/virtual/virtual-mail.c M src/plugins/virtual/virtual-save.c M src/plugins/virtual/virtual-transaction.c M src/plugins/virtual/virtual-transaction.h 2010-12-05 21:11:03 +0000 Timo Sirainen (a45730106) Compiler warning fix. M src/lib-storage/index/maildir/maildir-sync.h 2010-12-03 23:16:26 +0000 Timo Sirainen (5226c54b8) lib-master: Error message typofix. M src/lib-master/master-login-auth.c 2010-12-03 19:38:02 +0000 Timo Sirainen (a763b99a5) Added signature for changeset 51e41fcc7856 M .hgsigs 2010-12-03 19:37:58 +0000 Timo Sirainen (70be0d5b7) Added tag 2.0.8 for changeset 51e41fcc7856 M .hgtags 2010-12-03 19:37:56 +0000 Timo Sirainen (a0a488f68) Released v2.0.8. M NEWS M TODO M configure.in 2010-12-03 19:25:04 +0000 Timo Sirainen (201780864) example-config: Added comments to default_vsz_limit. M doc/example-config/conf.d/10-master.conf 2010-12-03 10:47:46 +0000 Timo Sirainen (d721a5f55) lib-index: Make static analyzer happier. M src/lib-index/mail-index-sync-keywords.c 2010-12-03 10:47:07 +0000 Timo Sirainen (00a570d09) Dead code removal. M src/lib/test-istream-base64-encoder.c 2010-12-03 10:43:03 +0000 Timo Sirainen (c0b11b57c) lib-storage: mail_storage_copy_can_use_hardlink() was always returning TRUE. M src/lib-storage/mail-copy.c 2010-12-03 10:15:48 +0000 Timo Sirainen (fc45e0ed5) dbox: Fixed reading attachments for compressed mails. M src/lib-storage/index/dbox-common/dbox-attachment.c 2010-12-03 10:15:20 +0000 Timo Sirainen (427ad9fea) dbox: Added dbox_file_get_plaintext_size() for easily getting it. M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-file.h M src/lib-storage/index/dbox-common/dbox-mail.c 2010-12-03 10:05:38 +0000 Timo Sirainen (bdb9f7f7f) Log login pid/id for internal failures to allow matching errors between processes. M src/lib-master/master-login-auth.c M src/login-common/client-common.c 2010-12-03 09:10:12 +0000 Timo Sirainen (928529ce8) lib-storage: Fixed storing newlines at the end of base64 attachments. M src/lib-storage/index/index-attachment.c 2010-12-03 09:09:10 +0000 Timo Sirainen (58438ae6f) istream-base64-encoder: Fixed reading when parent stream returned little data. M src/lib/istream-base64-encoder.c 2010-12-03 07:39:13 +0000 Timo Sirainen (e5974bef9) Compiler warning fixes. M src/auth/userdb-passwd.c M src/lib-fs/fs-posix.c 2010-12-03 07:12:20 +0000 Timo Sirainen (c74ee9cd8) ioloop: Don't leak memory when detecting a leaked timeout. M src/lib/ioloop.c 2010-12-03 07:06:34 +0000 Timo Sirainen (799263016) ioloop log: Added asserts M src/lib/ioloop.c 2010-12-03 07:00:17 +0000 Timo Sirainen (97333cbaa) mail storage service: Use ioloop log prefix automation. This properly fixes imap/pop3 when using with client_limit>1. M src/lib-storage/mail-storage-service.c 2010-12-03 06:58:38 +0000 Timo Sirainen (b9a13c136) ioloop: Added support for per-io/timeout callback log prefix automation. M src/lib/ioloop-epoll.c M src/lib/ioloop-internal.h M src/lib/ioloop-kqueue.c M src/lib/ioloop-poll.c M src/lib/ioloop-select.c M src/lib/ioloop.c M src/lib/ioloop.h 2010-12-03 06:57:58 +0000 Timo Sirainen (5be786ac7) imap, pop3: Removed previous log prefix hack. M src/imap/cmd-append.c M src/imap/cmd-idle.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-search.c M src/pop3/pop3-client.c 2010-12-03 05:46:57 +0000 Timo Sirainen (bbb0b2462) imap, pop3: Small optimization to last logging change. Also added FIXMEs. This is an ugly way to change log prefixes. M src/imap/imap-client.c M src/pop3/pop3-client.c 2010-12-03 05:43:16 +0000 Timo Sirainen (0fb11b635) imap, pop3: Try to use the correct log prefix when service_count!=1. M src/imap/cmd-append.c M src/imap/cmd-idle.c M src/imap/imap-client.c M src/imap/imap-client.h M src/imap/imap-search.c M src/pop3/pop3-client.c 2010-12-03 04:25:06 +0000 Timo Sirainen (e188bab0b) lib-index: Added "transaction boundary" record for future compatibility. M src/doveadm/doveadm-dump-log.c M src/lib-index/mail-index-sync-update.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log.h 2010-12-02 22:59:42 +0000 Timo Sirainen (0b47e0098) lib_init(): Call srand() with a bit better seed. M src/lib/lib.c 2010-12-02 21:42:30 +0000 Timo Sirainen (b5322c827) auth: Fail if auth client tries to use a duplicate ID. M src/auth/auth-request-handler.c 2010-12-02 21:42:18 +0000 Timo Sirainen (65565b19b) lib-master: Try to use auth request ID numbers from wider range to ease debugging. M src/lib-master/master-login-auth.c 2010-12-02 19:10:23 +0000 Timo Sirainen (bc2739c26) auth: passdb credentials lookup fix when using multiple passdbs. If at least one passdb returns "user unknown" and the last passdb returns "credential lookup not supported", the proper return value is still "user unknown". M src/auth/auth-request.c M src/auth/auth-request.h 2010-12-02 17:38:08 +0000 Timo Sirainen (93f4e5baf) lib-master: Added extra debug info for a "user not found" error message. M src/lib-master/master-login-auth.c 2010-12-02 04:37:38 +0000 Timo Sirainen (e49769b64) lib-index: Added a missing sanity check for expunge-guid record's uid. This fixes a non-self healing assert-crash. M src/lib-index/mail-index-sync-update.c 2010-11-30 22:38:05 +0000 Timo Sirainen (70af4db1c) lmtp: Added lmtp_save_to_detail_mailbox setting. M doc/example-config/conf.d/20-lmtp.conf M src/lmtp/commands.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2010-11-30 15:01:06 +0000 Timo Sirainen (0547a828e) master: Fixed crash due to recent SSL key password askpass change. M src/master/service-process.c 2010-11-30 00:20:09 +0000 Timo Sirainen (eadbe304f) askpass: Removed unnecessary code. M src/lib/askpass.c 2010-11-30 00:17:20 +0000 Timo Sirainen (24b31da04) askpass: Allow reading password from stdin even if it's not a tty. M src/lib/askpass.c 2010-11-30 00:13:45 +0000 Timo Sirainen (4ef46445d) master: Use t_askpass() for getting the manual SSL key password. M src/master/common.h M src/master/main.c 2010-11-30 00:12:54 +0000 Timo Sirainen (f7ecae867) t_askpass(): Removed a limit of 1024 bytes for the password. M src/lib/askpass.c 2010-11-29 23:58:19 +0000 Timo Sirainen (4afd50dff) lmtp: Recent change broke accessing mail_temp_dir. Also when it happened, an error message wasn't always logged. M src/lmtp/client.c M src/lmtp/client.h M src/lmtp/commands.c M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2010-11-29 19:13:37 +0000 Timo Sirainen (66a164c35) fs-sis: Memory leak fix. M src/lib-fs/fs-sis.c 2010-11-29 19:08:37 +0000 Timo Sirainen (567728568) doveadm import: Free memory used by source storage at deinit. M src/doveadm/doveadm-mail-import.c 2010-11-26 23:06:24 +0000 Pascal Volk (a4fb6a33c) man: doveadm-import.1: Added missing argument descriptions. M doc/man/doveadm-import.1.in 2010-11-26 18:59:29 +0000 Timo Sirainen (20fec0142) TODO updated M TODO 2010-11-26 18:19:16 +0000 Timo Sirainen (7af2a19a8) auth sql/ldap: Allow using global %variables in iterate_query/filter. No per-query %variables are defined, but e.g. %{hostname} or %{env:*} can be used. M src/auth/userdb-ldap.c M src/auth/userdb-sql.c 2010-11-26 17:46:49 +0000 Timo Sirainen (d1e742504) login: Fixed potential assert-crash during failed proxy authentication. M src/login-common/client-common-auth.c 2010-11-26 17:31:00 +0000 Timo Sirainen (de63a9a98) auth: Assume inet_listeners are auth client listeners if they exist. M src/auth/main.c 2010-11-26 17:27:44 +0000 Timo Sirainen (b918f91ce) auth: Minor error message fix. M src/auth/main.c 2010-11-25 17:44:02 +0000 Pascal Volk (44c6dbf0a) man: Added "-S socket_path" description. M doc/man/Makefile.am M doc/man/doveadm-altmove.1.in M doc/man/doveadm-expunge.1.in M doc/man/doveadm-fetch.1.in M doc/man/doveadm-force-resync.1.in M doc/man/doveadm-import.1.in M doc/man/doveadm-mailbox.1.in M doc/man/doveadm-purge.1.in M doc/man/doveadm-quota.1.in M doc/man/doveadm-search.1.in M doc/man/doveadm.1.in M doc/man/global-options-formatter.inc M doc/man/global-options.inc A doc/man/option-S-socket.inc M doc/man/sed.sh 2010-11-24 18:56:48 +0000 Timo Sirainen (8bce86e7b) doveadm: -s was already used by some mailbox commands, renamed to -S. Also added -S to usage output. M src/doveadm/doveadm-mail.c 2010-11-24 17:20:33 +0000 Pascal Volk (10635b60b) doveadm: Removed -s option from the usage message (according to 66428c763354) M src/doveadm/doveadm.c 2010-11-23 19:37:56 +0000 Timo Sirainen (68bc73799) lib-storage: mail_temp_dir setting should have done %variable expansion. M src/lib-storage/mail-storage-settings.c 2010-11-23 19:07:19 +0000 Timo Sirainen (d5ef38077) doveadm: Moved -s parameter among -u/-A parameters, since it's only used by mail commands. M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-settings.c M src/doveadm/doveadm-settings.h M src/doveadm/doveadm.c 2010-11-23 18:42:27 +0000 Pascal Volk (7f0736b04) man: Added -s parameter. M doc/man/doveadm.1.in M doc/man/global-options-formatter.inc M doc/man/global-options.inc 2010-11-23 18:26:38 +0000 Timo Sirainen (ca0cdd1fa) lib-index: Don't try to stat() in-memory index. M src/lib-index/mail-transaction-log.c 2010-11-23 17:39:19 +0000 Pascal Volk (c9775dea8) man: *roff syntax-fix. M doc/man/doveadm-import.1.in 2010-11-23 17:04:07 +0000 Pascal Volk (1add53ffb) doveadm: Added -s parameter to the usage message. M src/doveadm/doveadm.c 2010-11-23 17:05:04 +0000 Timo Sirainen (11ca7819a) man: Make it clear that doveadm-import allows dest_parent to be "" M doc/man/doveadm-import.1.in 2010-11-23 16:55:55 +0000 Timo Sirainen (ddf2fc35b) man: Added pointer to doveadm-import from doveadm main man page. M doc/man/doveadm.1.in 2010-11-23 16:23:31 +0000 Timo Sirainen (43955c82f) maildir: Log a warning if scanning new/ or cur/ takes over 60s. M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-sync.h 2010-11-23 16:11:15 +0000 Timo Sirainen (35d87d75a) lib-master: Added missing master_service_get_settings_parser() required by recent change. M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h 2010-11-23 15:59:09 +0000 Timo Sirainen (7f735cb86) lib-storage: If disable_reflink_copy_to=TRUE, disable hardlink/refcount copying. M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-copy.h M src/lib-storage/mail-storage-private.h 2010-11-23 15:30:32 +0000 Timo Sirainen (2cc88ff50) doveadm server: Fixes to command/parameter handling. M src/doveadm/doveadm-mail-server.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h M src/doveadm/main.c 2010-11-23 15:30:06 +0000 Timo Sirainen (773eca779) doveadm: Added -s parameter to execute mail command via given doveadm socket. M src/doveadm/doveadm.c 2010-11-23 15:28:47 +0000 Timo Sirainen (da63ca2e5) doveadm-server: Don't disconnect client after each command. M src/doveadm/client-connection.c 2010-11-22 19:04:13 +0000 Timo Sirainen (61e04b38e) imap: Make sure IDLE isn't broken too early if DONE is sent in multiple packets. M src/imap/cmd-idle.c 2010-11-22 18:35:07 +0000 Timo Sirainen (426e50e76) quota: If user has unlimited quota, ignore any specific quota rules. M src/plugins/quota/quota.c 2010-11-22 18:21:25 +0000 Timo Sirainen (e170e0d6d) doveadm-server: Fixed command parameter handling. M src/doveadm/client-connection.c 2010-11-19 21:08:37 +0000 Timo Sirainen (9036d3226) lib-master: Added missing anvil_client_is_connected() M src/lib-master/anvil-client.c M src/lib-master/anvil-client.h 2010-11-19 16:24:41 +0000 Timo Sirainen (d47aaddba) imap, pop3: Fixed giving any -parameters. M src/imap/main.c M src/pop3/main.c 2010-11-18 20:35:39 +0000 Timo Sirainen (e9d9f9071) auth: If we get disconnected from anvil and can't reconnect, die. M src/auth/auth-penalty.c 2010-11-18 20:35:20 +0000 Timo Sirainen (2e0eb7bb2) auth: Fixed assert-crash at deinit if there were clients left with pending auth requests. M src/auth/auth-client-connection.c 2010-11-18 19:32:50 +0000 Timo Sirainen (9bd607718) snarf: Added mbox_snarf setting to enable snarfing only optionally. M src/plugins/snarf/Makefile.am M src/plugins/snarf/snarf-plugin.c 2010-11-18 18:58:33 +0000 Timo Sirainen (a6e79dffa) Replaced broken mbox-snarf plugin with a more generic snarf plugin. M configure.in M src/plugins/Makefile.am D src/plugins/mbox-snarf/mbox-snarf-plugin.c D src/plugins/mbox-snarf/mbox-snarf-plugin.h R052 src/plugins/mbox-snarf/Makefile.am src/plugins/snarf/Makefile.am A src/plugins/snarf/snarf-plugin.c A src/plugins/snarf/snarf-plugin.h 2010-11-18 18:57:18 +0000 Timo Sirainen (00a297eb7) pop3: Avoid crash when updating proctitle if client init fails. M src/pop3/pop3-client.c 2010-11-18 18:56:34 +0000 Timo Sirainen (fbb324fed) mbox: Allow mail_privileged_group locking for INBOXes also in inbox=no namespaces. M src/lib-storage/index/mbox/mbox-lock.c M src/lib-storage/index/mbox/mbox-storage.c 2010-11-18 18:51:34 +0000 Timo Sirainen (85bb9e3d4) configure: And small fix to previous --with-systemdsystemunitdir fix. M configure.in 2010-11-18 18:49:34 +0000 Timo Sirainen (ee043005e) configure: --with-systemdsystemunitdir wasn't working right. M configure.in 2010-11-18 18:38:08 +0000 Timo Sirainen (54f17c220) configure: Use AS_HELP_STRING() macro. M configure.in 2010-11-18 18:28:40 +0000 Timo Sirainen (061758633) master: Compiling fix when systemd is enabled. M src/master/service-listen.c 2010-11-17 18:40:52 +0000 Timo Sirainen (f6ba2de94) Added support for systemd. Based on patch by Christophe Fergeau M Makefile.am M configure.in A dovecot.service.in A dovecot.socket M src/lib-master/master-service.c M src/master/Makefile.am M src/master/main.c A src/master/sd-daemon.c A src/master/sd-daemon.h M src/master/service-listen.c 2010-11-17 18:21:46 +0000 Timo Sirainen (71c5cba2a) configure: Use PKG_PROG_PKG_CONFIG to find pkg-config binary. M configure.in 2010-11-17 18:10:46 +0000 Timo Sirainen (b2b2b63e2) istream-header-filter: Fixed header name validation to use case-insensitive comparison. M src/lib-mail/istream-header-filter.c 2010-11-17 17:52:52 +0000 Timo Sirainen (178839556) lib-master: If auth master login fails, make sure error message is logged. M src/lib-master/master-login-auth.c 2010-11-17 16:55:56 +0000 Timo Sirainen (b57cd9928) mysql: When using multiple hosts, it never connected to more than the first one. M src/lib-sql/driver-mysql.c 2010-11-17 16:55:44 +0000 Timo Sirainen (73bc59c2a) lib-sql: Connect earlier to fallback host when using multiple hosts and primary fails. M src/lib-sql/driver-sqlpool.c 2010-11-17 14:33:46 +0000 Timo Sirainen (d190598d2) master: Allow services' vsz_limit to be 0 (unlimited) M src/master/master-settings.c 2010-11-16 19:58:03 +0000 Timo Sirainen (f7f25f9e1) Services' default vsz_limit wasn't actually using default_vsz_limit but rather 4 GB. M src/anvil/anvil-settings.c M src/auth/auth-settings.c M src/config/config-settings.c M src/dict/dict-settings.c M src/director/director-settings.c M src/dns/dns-client-settings.c M src/doveadm/doveadm-settings.c M src/imap/imap-settings.c M src/log/log-settings.c M src/pop3/pop3-settings.c M src/ssl-params/ssl-params-settings.c M src/util/tcpwrap-settings.c 2010-11-16 19:51:46 +0000 Timo Sirainen (002179a89) Fixed home=/home/./user style chrooting to work again. M src/lib-storage/mail-storage-service.c 2010-11-16 19:32:51 +0000 Timo Sirainen (3f6093a29) master: Fail if service's vsz_limit is less than 1 kB M src/master/master-settings.c 2010-11-16 19:32:00 +0000 Timo Sirainen (e6aaf5a9d) imap/pop3-login: Default vsz_limit=64 caused it to be unlimited, not 64 MB. M src/imap-login/imap-login-settings.c M src/pop3-login/pop3-login-settings.c 2010-11-16 18:51:37 +0000 Timo Sirainen (3d4c24127) mbox: Another utime()=EPERM log message hiding. M src/lib-storage/index/mbox/mbox-file.c 2010-11-16 18:47:48 +0000 Timo Sirainen (205debb6e) mbox: Ignore utime()=EPERM failures when trying to set atime back. This happens with shared mboxes when file's owner isn't the process's euid. M src/lib-storage/index/mbox/mbox-save.c M src/lib-storage/index/mbox/mbox-sync.c 2010-11-15 17:40:12 +0000 Timo Sirainen (57dc9b1d2) istream-base64-encoder: Set the stream seekable if parent stream is seekable. M src/lib/istream-base64-encoder.c 2010-11-15 17:03:52 +0000 Timo Sirainen (d482079eb) "Running standalone?" check now uses a new DOVECOT_CHILD_PROCESS environment rather than GENERATION. The GENERATION environment was already set in some systems for Java. M src/imap/main.c M src/lib-master/master-interface.h M src/lmtp/main.c M src/master/service-process.c M src/pop3/main.c M src/util/script-login.c 2010-11-15 16:49:26 +0000 Timo Sirainen (74b324a43) lib-settings: Improved performance of previous duplicate key parsing change. M src/lib-settings/settings-parser.c 2010-11-15 16:42:19 +0000 Timo Sirainen (cdc74bd19) lib-settings: Fixed parsing settings when the key was duplicated to multiple roots. Previously only the first one got the value set, now all of them get it. M src/lib-settings/settings-parser.c 2010-11-15 16:33:27 +0000 Timo Sirainen (7c20c51d8) Removed unused auth/mail_debug settings from structs. M src/imap/imap-settings.c M src/imap/imap-settings.h M src/master/master-settings.c M src/master/master-settings.h M src/pop3/pop3-settings.c M src/pop3/pop3-settings.h 2010-11-15 16:25:23 +0000 Timo Sirainen (334fcad69) istream-file: Minor error message fix. M src/lib/istream-file.c 2010-11-15 16:22:08 +0000 Timo Sirainen (6a3a07233) Added unit test for istream-base64-encoder. M src/lib/Makefile.am A src/lib/test-istream-base64-encoder.c M src/lib/test-lib.c M src/lib/test-lib.h 2010-11-15 16:21:45 +0000 Timo Sirainen (5b548e185) istream-base64-encoder: Fixed seeking to beginning of stream. M src/lib/istream-base64-encoder.c 2010-11-15 16:06:58 +0000 Timo Sirainen (aa7103b52) istream-base64-encoder: Don't add unwanted trailing [CR]LF M src/lib/istream-base64-encoder.c 2010-11-15 15:42:21 +0000 Timo Sirainen (010affb9f) dbox: dbox file could have been closed too early in some situations, causing EBADF errors. M src/lib-storage/index/dbox-common/dbox-mail.c 2010-11-15 15:31:26 +0000 Timo Sirainen (b5453782b) stream-base64-encoder: Added support for seeking backwards in stream. M src/lib/istream-base64-encoder.c 2010-11-15 15:31:02 +0000 Timo Sirainen (d9ab8a13b) istream: Exported i_stream_default_seek() M src/lib/istream-internal.h M src/lib/istream.c 2010-11-15 15:19:13 +0000 Timo Sirainen (e22ac7474) sdbox: Fixed race condition when one session opens a mailbox while another is still creating it. This happened mostly when nonexistent INBOX was being opened by multiple sessions at the same time. M src/lib-storage/index/dbox-single/sdbox-storage.c 2010-11-10 16:09:14 +0000 Timo Sirainen (8787860a1) anvil: Don't die until all of our clients have gone. M src/anvil/main.c 2010-11-09 21:42:58 +0000 Timo Sirainen (a857fb61f) Added env_get_environ_p() as more portable way of accessing environ variable. Implemented with OS X using _NSGetEnviron(). M src/lib-settings/settings-parser.c M src/lib/env-util.c M src/lib/env-util.h M src/lib/process-title.c 2010-11-09 21:17:15 +0000 Timo Sirainen (ac607f4bd) example-config: sendmail_path defaults to /usr/sbin/sendmail, not /usr/lib/sendmail M doc/example-config/conf.d/15-lda.conf 2010-11-09 21:16:06 +0000 Timo Sirainen (a1f2b44a1) example-config: Moved include conf.d/*.conf last in dovecot.conf. This fixes problems where conf.d/ files try to modify settings in dovecot.conf, especially managesieve adding itself to protocols setting. M doc/example-config/dovecot.conf 2010-11-09 21:12:35 +0000 Timo Sirainen (a2f99d3fb) dsync: Don't assert-crash if trying to convert mailbox whose name is too long. M src/dsync/dsync-worker-local.c 2010-11-09 21:03:34 +0000 Timo Sirainen (1a70427c2) istream-[b]zlib: Corking now affects also the parent stream. M src/plugins/zlib/ostream-bzlib.c M src/plugins/zlib/ostream-zlib.c 2010-11-09 20:25:36 +0000 Timo Sirainen (fc2a751e2) liblib: Delay sending log prefix updates until it's needed. This avoids sending them unnecessarily. M src/lib/failures.c 2010-11-09 20:24:12 +0000 Timo Sirainen (4cf07bf08) imap: Uncork at logout a bit later. M src/imap/cmd-logout.c M src/imap/imap-client.c 2010-11-09 19:48:47 +0000 Timo Sirainen (e599fa1e1) lib-master: Don't wait for handshake before sending auth-master request. M src/lib-master/master-login-auth.c 2010-11-09 18:36:37 +0000 Timo Sirainen (9abf5be09) lib-storage: Fixed expanding "~" (without '/' afterwards) in mail_location M src/lib-storage/mailbox-list.c 2010-11-08 19:55:35 +0000 Timo Sirainen (feba01f33) NEWS: Split too long line. M NEWS 2010-11-08 19:45:17 +0000 Timo Sirainen (ea6a5c12b) Added signature for changeset d0d3aca1c958 M .hgsigs 2010-11-08 19:45:14 +0000 Timo Sirainen (6371b34fc) Added tag 2.0.7 for changeset d0d3aca1c958 M .hgtags 2010-11-08 19:45:14 +0000 Timo Sirainen (45ed2663d) Released v2.0.7. M NEWS M TODO M configure.in 2010-11-08 18:38:31 +0000 Timo Sirainen (7aa2dd189) lmtp: Don't allow mixed proxy/non-proxy RCPT TO destinations. Although the code attempts to handle this case already, the DATA replies aren't sent in correct order. M src/lmtp/commands.c 2010-11-08 18:37:25 +0000 Timo Sirainen (1e0950766) lmtp proxy: Don't internally finish proxying before client has even sent DATA command. This fixes some crashes when all recipients were invalid. M src/lmtp/lmtp-proxy.c 2010-11-08 18:30:05 +0000 Timo Sirainen (106e86d8b) istream-tee: Fixed to work right when input stream didn't start from offset 0. M src/lib/istream-tee.c 2010-11-08 18:03:07 +0000 Timo Sirainen (c991c182b) maildir: p_strdup() GUID and UIDL_BACKEND to make sure they don't change unexpectedly. M src/lib-storage/index/maildir/maildir-mail.c 2010-11-05 19:51:47 +0000 Timo Sirainen (63e2edd14) lib-index: Fixed another transaction log read optimization. Buffer's size should always be the same as sync_offset, otherwise some optimizations could think that the data doesn't have to be re-read even though it was updated in disk already. M src/lib-index/mail-transaction-log-file.c 2010-11-05 18:58:56 +0000 Timo Sirainen (f34227d18) lib-index: Fix to transaction log read optimization. The log wasn't always refreshed while locked when it should have. M src/lib-index/mail-transaction-log-file.c 2010-11-05 12:24:01 +0000 Timo Sirainen (9d2a30e39) lib-auth: Less leaky fix to previous auth_master_*() bugfix. M src/lib-auth/auth-master.c 2010-11-05 12:15:53 +0000 Timo Sirainen (f98b69fec) lib-auth: Don't crash in auth_master_*() lookups if caller hasn't created ioloop. M src/lib-auth/auth-master.c 2010-11-04 18:56:47 +0000 Timo Sirainen (40c24f8fe) quota: Better fix to avoid counting quota for virtual mailboxes. M src/plugins/quota/quota-maildir.c M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c 2010-11-04 18:56:13 +0000 Timo Sirainen (4ba9a1d3f) virtual: Set MAIL_STORAGE_CLASS_FLAG_NOQUOTA to storage's class_flags. M src/lib-storage/mail-storage-private.h M src/plugins/virtual/virtual-storage.c 2010-11-04 17:55:47 +0000 Timo Sirainen (a32ac1ad1) lib-index: Minor error message improvement. M src/lib-index/mail-transaction-log-file.c 2010-11-04 17:50:42 +0000 Timo Sirainen (46b0fad7b) lib-fs / posix: If create/link/rename fails with ENOENT, try creating parent dir multiple times. This avoids random failures when the parent dir happens to be removed at just the right time. M src/lib-fs/fs-posix.c 2010-11-04 17:00:42 +0000 Timo Sirainen (7bb3cf921) dbox: Minor optimization when creating a mailbox when its alt dir already existed. Patch by DINH Viêt Hoà M src/lib-storage/index/dbox-common/dbox-storage.c 2010-11-04 16:37:49 +0000 Timo Sirainen (a640b0614) ssl: Call OpenSSL_add_all_algorithms() to make some OpenSSL versions happy. M src/login-common/ssl-proxy-openssl.c 2010-11-04 16:25:39 +0000 Timo Sirainen (170d90af1) istream-attachment: Error handling improvements. M src/lib-storage/index/istream-attachment.c 2010-11-04 16:25:18 +0000 Timo Sirainen (64c48ffb7) istream-concat: Fixed error handling when one of the stream read()s failed. M src/lib/istream-concat.c 2010-11-04 15:47:37 +0000 Timo Sirainen (1618629fd) config parser: Log an error about missing '}'. M src/config/config-parser-private.h M src/config/config-parser.c 2010-11-04 14:11:15 +0000 Timo Sirainen (effd6c0d0) istream-base64-encoder: Panic if stat() is tried to be called with exact size. M src/lib/istream-base64-encoder.c 2010-11-04 14:07:30 +0000 Timo Sirainen (ee083c411) istream-attachment: Removed parent stream's size sanity check. It didn't work right with base64 streams. M src/lib-storage/index/istream-attachment.c 2010-11-03 18:00:15 +0000 Timo Sirainen (cb506a7cb) lda: If Sieve is disabled, don't create temp files for large mails. M src/lda/main.c 2010-11-03 17:57:20 +0000 Timo Sirainen (291f1e54d) lib-lda: mail_deliver_save() tries now to avoid re-parsing message header when logging the result. M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h 2010-11-03 16:27:00 +0000 Timo Sirainen (8677db8bb) doveadm dump: Added imapzlib type to uncompress IMAP's COMPRESS DEFLATE I/O traffic. M src/plugins/zlib/Makefile.am A src/plugins/zlib/doveadm-zlib.c 2010-11-03 16:24:31 +0000 Timo Sirainen (134582c78) doveadm dump: Allow plugins to add more dump types M src/doveadm/doveadm-dump.c M src/doveadm/doveadm-dump.h M src/doveadm/doveadm.c 2010-11-03 15:31:48 +0000 Timo Sirainen (76dd05677) master: Log a warning at startup if anvil's client_limit is too low. M src/master/master-settings.c 2010-11-03 15:31:36 +0000 Timo Sirainen (f98cd3b7c) lmtp: Minor code cleanup: s/lmtp_login_/lmtp_/ M src/lmtp/lmtp-settings.c 2010-11-03 15:27:40 +0000 Timo Sirainen (412b772c3) director: Show number of connections in process title if verbose_proctitle=yes M src/director/main.c 2010-11-03 15:26:40 +0000 Timo Sirainen (737f6f1c3) anvil: Show number of connections in process title if verbose_proctitle=yes M src/anvil/main.c 2010-11-03 15:23:52 +0000 Timo Sirainen (e2bdca820) lib-master: Added MASTER_SERVICE_FLAG_UPDATE_PROCTITLE for showing number of connections in ps. The title is still only updated if verbose_proctitle=yes, so this allows binaries to easily just set the flag and lib-master handles the rest. M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-master/master-service.c M src/lib-master/master-service.h 2010-11-03 14:59:39 +0000 Timo Sirainen (361c90a10) auth workers: Don't unnecessary connect to anvil. M src/auth/main.c 2010-11-03 13:33:02 +0000 Timo Sirainen (5543cc0f4) master: default_process_limit wasn't actually used anywhere, rather the default was unlimited. M src/master/master-settings.c M src/master/service.c 2010-11-02 19:23:37 +0000 Timo Sirainen (89ad7c332) lib-storage: Maildir++ mailbox listing could have given wrong flags to parent mailboxes. M src/lib-storage/list/mailbox-list-maildir-iter.c 2010-11-02 18:25:53 +0000 Timo Sirainen (cbb5c7abe) imap: Removed accidentally commited debug code. M src/imap/imap-client.c 2010-11-02 18:21:05 +0000 Timo Sirainen (c4c8182e1) lib-master: Stop accepting new connections after auth-master gets disconnected. M src/lib-master/master-login-auth.c 2010-11-02 18:13:39 +0000 Timo Sirainen (0e6bd4b9a) imap, pop3: Use absolute path to auth-master socket. M src/imap/main.c M src/pop3/main.c 2010-11-02 18:07:20 +0000 Timo Sirainen (5c9ddc089) ldap auth: Hide password_noscheme from debug logs unless auth_debug_passwords=yes M src/auth/db-ldap.c 2010-11-02 18:06:39 +0000 Timo Sirainen (dc8ba4890) sql auth: Fixed using password_noscheme M src/auth/passdb-sql.c 2010-11-02 17:31:14 +0000 Timo Sirainen (9766c242b) auth: Disable auth caching entirely for master users. The cache key contains only the master username, without the logged-in username, so wrong data could be looked up from cache. M src/auth/auth-request.c M src/auth/passdb-cache.c 2010-11-02 17:14:25 +0000 Timo Sirainen (23163a946) imap: Fixed SELECT QRESYNC not to crash on mailbox close if a lot of changes were being sent. M src/imap/cmd-select.c M src/imap/imap-client.c M src/imap/main.c 2010-11-02 15:39:28 +0000 Timo Sirainen (c64e71419) auth: vpopmail passdb/userdb uses now auth-worker processes by default. Adding blocking=no parameter disables this. M src/auth/passdb-vpopmail.c M src/auth/userdb-vpopmail.c 2010-11-02 15:34:50 +0000 Timo Sirainen (7c6b8ca03) dbox: Comment update. M src/lib-storage/index/dbox-common/dbox-file.h 2010-11-02 15:32:47 +0000 Timo Sirainen (676bf7a0b) imap: Fixed LIST-STATUS when listing subscriptions with subscriptions=no namespaces. M src/imap/cmd-list.c 2010-11-02 14:59:13 +0000 Timo Sirainen (5bd2cf0f3) mail-log plugin: Log mailbox name as virtual name rather than physical name. M src/plugins/mail-log/mail-log-plugin.c 2010-11-02 13:43:43 +0000 Timo Sirainen (fa87f0ef3) director: inet_listener port finder should ignore doveadm's port. M src/director/main.c 2010-11-01 14:33:26 +0000 Timo Sirainen (53e85e63d) quota: Added a temporary hack to avoid virtual mailboxes being counted in quota. M src/plugins/quota/quota-storage.c 2010-10-25 22:22:48 +0100 Timo Sirainen (1ebce8085) dsync: Make sure MSG-GET command doesn't hang. M src/dsync/dsync-proxy-server-cmd.c 2010-10-25 22:13:05 +0100 Timo Sirainen (41a8595f2) dsync: Added more idle timeout resets to proxying. M src/dsync/dsync-proxy-client.c 2010-10-25 19:26:34 +0100 Timo Sirainen (0dc7a67fb) dbox: mail_get_special() for POP3 UIDL or GUID return value wasn't permanent enough. Another call to mail_get_*() could have caused the string to point to some garbage. M src/lib-storage/index/dbox-common/dbox-mail.c 2010-10-25 18:53:04 +0100 Timo Sirainen (afe62291f) dsync: Error handling fixes. M src/dsync/dsync-proxy-client.c M src/dsync/dsync-proxy-server.c M src/dsync/dsync-worker-local.c 2010-10-25 18:26:50 +0100 Timo Sirainen (2be46afcf) dsync: If msg input reading fails, don't also log a wrong "Unknown internal error" line. M src/dsync/dsync-worker-local.c 2010-10-25 18:11:04 +0100 Timo Sirainen (5ab855872) lib-storage: Comment update to mail_get_stream() M src/lib-storage/mail-storage.h 2010-10-25 17:34:10 +0100 Timo Sirainen (5e6abd3a2) master: Use env_clean_except() instead of doing it ourself. M src/master/main.c 2010-10-25 17:31:39 +0100 Timo Sirainen (75e531c01) lib-master: Use env_clean_except() for master_service_env_clean() M src/lib-master/master-service.c 2010-10-25 17:31:01 +0100 Timo Sirainen (5aaddefb3) Added env_clean_except() M src/lib/env-util.c M src/lib/env-util.h 2010-10-25 17:22:40 +0100 Timo Sirainen (3eeaad729) lib-master: Code cleanup for master_service_env_clean() M src/lib-master/master-service.c 2010-10-25 16:27:42 +0100 Timo Sirainen (92c474bae) doveadm expunge: Sync mailbox after commit to make sure messages get physically expunged. M src/doveadm/doveadm-mail-expunge.c 2010-10-25 16:13:33 +0100 Timo Sirainen (b3b536d43) maildir: Duplicate GUIDs during a single save transaction weren't handled correctly. M src/lib-storage/index/maildir/maildir-save.c 2010-10-21 22:59:26 +0100 Timo Sirainen (8effb0cf8) file_preallocate(): Don't ignore ENOSPC with OSX either, caller will check it. M src/lib/file-set-size.c 2010-10-21 22:56:02 +0100 Timo Sirainen (ed7dbb42d) file_preallocate(): Added support for OS X. M src/lib/file-set-size.c 2010-10-21 22:45:27 +0100 Timo Sirainen (7f03bac2e) doveadm fetch: Added support for pop3.uidl field. M src/doveadm/doveadm-mail-fetch.c 2010-10-21 22:21:57 +0100 Timo Sirainen (3649d7f1f) NEWS: mdbox_preallocate_space is for ext4, not ext3. M NEWS 2010-10-21 22:09:08 +0100 Timo Sirainen (62c635c76) configure: Use sdbox name instead of dbox in the help. M configure.in 2010-10-21 19:07:18 +0100 Timo Sirainen (d8346a741) Added signature for changeset 8a838dcf8e76 M .hgsigs 2010-10-21 19:07:15 +0100 Timo Sirainen (f29623651) Added tag 2.0.6 for changeset 8a838dcf8e76 M .hgtags 2010-10-21 19:07:14 +0100 Timo Sirainen (9b9d8e095) Released v2.0.6. M NEWS M TODO M configure.in 2010-10-21 19:03:39 +0100 Timo Sirainen (0b7d39288) Static analyzer warning fix. M src/doveadm/doveadm-sis.c 2010-10-21 18:59:22 +0100 Timo Sirainen (13625d480) doveadm import: Code correctness fix (wasn't visible to users) M src/doveadm/doveadm-mail-import.c 2010-10-21 18:56:24 +0100 Timo Sirainen (eb4b779b7) lib-fs: Fixed error handling for posix.write_stream_finish() M src/lib-fs/fs-posix.c 2010-10-21 18:49:19 +0100 Timo Sirainen (4ca836167) dbox: Reverted the "check if altpath is mounted" change for now. If alt path didn't yet exist, it reported bogus errors. It should somehow check if there is anything under the alt root dir. M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-file.h M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-file.h M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c 2010-10-21 18:28:10 +0100 Timo Sirainen (8342ac5d1) dsync: Make sure POP3 UIDL string isn't corrupted while saving it. M src/dsync/dsync-worker-local.c 2010-10-21 18:27:38 +0100 Timo Sirainen (7cd7bd65a) lib-storage: Make sure POP3 UIDLs aren't tried to be saved with LFs. M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/mail-storage.c 2010-10-21 17:12:19 +0100 Timo Sirainen (cb51bd239) Compiler warning fix. M src/lib-master/master-login-auth.c 2010-10-21 17:11:02 +0100 Timo Sirainen (a7f5035ee) auth: userdb passwd iteration now lists only users within first_valid_uid..last_valid_uid range. M src/auth/auth-settings.c M src/auth/auth-settings.h M src/auth/userdb-passwd.c 2010-10-21 16:33:28 +0100 Timo Sirainen (763155262) dbox: If alt path is lost, fail with an error rather than rebuilding indexes. This could be simply because alt storage is unmounted at the time and rebuilding would just lose messages. If this error happens unintentionally, it's still possible to fix it with "doveadm force-resync". M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-file.h M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-file.h M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c M src/lib-storage/index/dbox-single/sdbox-sync.c 2010-10-21 16:12:13 +0100 Timo Sirainen (a5925b17e) dsync: Don't crash if USER environment isn't set and -u parameter isn't given. M src/dsync/dsync.c 2010-10-20 19:32:16 +0100 Timo Sirainen (f807d40b4) example-config: Added a warning about mail_attachment* being experimental. M doc/example-config/conf.d/10-mail.conf 2010-10-20 19:30:12 +0100 Timo Sirainen (9ff4eaf73) example-config: Added mail_attachment_* settings. M doc/example-config/conf.d/10-mail.conf 2010-10-20 18:58:42 +0100 Timo Sirainen (d4f72116b) zlib: Hook into mail.istream_opened() method rather than mail.get_stream() This fixes zlib plugin to work with mail attachments. M src/plugins/zlib/zlib-plugin.c 2010-10-20 18:55:36 +0100 Timo Sirainen (656420882) lib-storage: Added istream_opened() method to struct mail. This can be hooked into by plugins that want to do something with the message's stream in the message file, rather than the virtual resulting stream visible to client. For example when using dbox attachments, this stream contains only the data in the dbox files without any external attachments. M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/dbox-common/dbox-attachment.c M src/lib-storage/index/dbox-common/dbox-attachment.h M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-file.h M src/lib-storage/index/dbox-common/dbox-mail.c M src/lib-storage/index/dbox-multi/mdbox-mail.c M src/lib-storage/index/dbox-single/sdbox-mail.c M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/mbox/mbox-mail.c M src/lib-storage/index/raw/raw-mail.c M src/lib-storage/mail-storage-private.h M src/lib-storage/test-mail.c M src/plugins/virtual/virtual-mail.c 2010-10-20 18:49:07 +0100 Timo Sirainen (64055bc6d) istream-concat: Avoid assert-crashing. M src/lib/istream-concat.c 2010-10-20 17:51:07 +0100 Timo Sirainen (f6aaada61) mdbox: Added mdbox_preallocate_space setting to preallocate size for newly created files. M doc/example-config/conf.d/10-mail.conf M src/lib-storage/index/dbox-multi/mdbox-file.c M src/lib-storage/index/dbox-multi/mdbox-settings.c M src/lib-storage/index/dbox-multi/mdbox-settings.h M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-multi/mdbox-storage.h 2010-10-20 17:50:03 +0100 Timo Sirainen (54fc3887b) Added file_preallocate() to preallocate space to a file without changing its size. Implemented for Linux. Doesn't look like other OSes support this. M configure.in M src/lib/file-set-size.c M src/lib/file-set-size.h 2010-10-20 16:07:03 +0100 Timo Sirainen (1554bed8d) dbox, maildir: When copying messages, copy the cached fields also. Copy only fields whose caching decision is not "no" in the destination mailbox. M src/lib-storage/index/dbox-multi/mdbox-save.c M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/index-storage.c M src/lib-storage/index/index-storage.h M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-storage.h 2010-10-20 16:03:13 +0100 Timo Sirainen (f43dce346) lib-storage: mailbox_get_status(): return cache fields allocated from data stack. Allocating them from mailbox's pool just wastes memory if it's called multiple times for same mailbox. M src/lib-storage/index/index-status.c 2010-10-20 16:01:46 +0100 Timo Sirainen (e2e105f61) lib-index: Added mail_cache_register_get_field(). M src/lib-index/mail-cache-fields.c M src/lib-index/mail-cache.h 2010-10-19 20:20:18 +0100 Timo Sirainen (d26d53604) pop3: Don't crash if client disconnects in output handler. M src/pop3/pop3-client.c 2010-10-19 19:27:59 +0100 Timo Sirainen (8b6f56900) ioloop: If io_add() is called twice for same fd, give a bit more informative panic message. M src/lib/ioloop-iolist.c 2010-10-19 18:48:00 +0100 Timo Sirainen (aee9abea5) istream-header-filter: Fix to previous change. M src/lib-mail/istream-header-filter.c 2010-10-19 18:47:17 +0100 Timo Sirainen (b9f564d00) lib-storage: Added support for saving mail attachments separately via filesystem API. Currently this works only with sdbox and mdbox backends. M src/config/settings-get.pl M src/lib-storage/index/Makefile.am M src/lib-storage/index/cydir/cydir-storage.c M src/lib-storage/index/dbox-common/Makefile.am A src/lib-storage/index/dbox-common/dbox-attachment.c A src/lib-storage/index/dbox-common/dbox-attachment.h M src/lib-storage/index/dbox-common/dbox-file.c M src/lib-storage/index/dbox-common/dbox-save.c M src/lib-storage/index/dbox-common/dbox-storage.c M src/lib-storage/index/dbox-common/dbox-storage.h M src/lib-storage/index/dbox-multi/mdbox-purge.c M src/lib-storage/index/dbox-multi/mdbox-storage.c M src/lib-storage/index/dbox-single/Makefile.am M src/lib-storage/index/dbox-single/sdbox-copy.c M src/lib-storage/index/dbox-single/sdbox-file.c M src/lib-storage/index/dbox-single/sdbox-file.h M src/lib-storage/index/dbox-single/sdbox-save.c M src/lib-storage/index/dbox-single/sdbox-storage.c M src/lib-storage/index/dbox-single/sdbox-storage.h M src/lib-storage/index/dbox-single/sdbox-sync.c A src/lib-storage/index/index-attachment.c A src/lib-storage/index/index-attachment.h M src/lib-storage/index/index-storage.c A src/lib-storage/index/istream-attachment.c A src/lib-storage/index/istream-attachment.h M src/lib-storage/index/maildir/maildir-storage.c M src/lib-storage/index/mbox/mbox-storage.c M src/lib-storage/index/raw/raw-storage.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage-settings.c M src/lib-storage/mail-storage-settings.h M src/lib-storage/test-mailbox.c M src/plugins/virtual/virtual-storage.c 2010-10-19 18:30:51 +0100 Timo Sirainen (dc2e774b4) liblib: Added istream for reading binary data as base64-encoded. M src/lib/Makefile.am A src/lib/istream-base64-encoder.c A src/lib/istream-base64-encoder.h 2010-10-19 18:27:30 +0100 Timo Sirainen (75d9024d9) doveadm: Added commands for managing SiS directories. M src/doveadm/Makefile.am A src/doveadm/doveadm-sis.c M src/doveadm/doveadm.c M src/doveadm/doveadm.h 2010-10-19 18:16:10 +0100 Timo Sirainen (c33d3f93a) Added lib-fs for simple filesystem accessing. Implemented POSIX, SiS and SiS-queue backends. M configure.in M src/Makefile.am M src/lib-dovecot/Makefile.am A src/lib-fs/Makefile.am A src/lib-fs/fs-api-private.h A src/lib-fs/fs-api.c A src/lib-fs/fs-api.h A src/lib-fs/fs-posix.c A src/lib-fs/fs-sis-common.c A src/lib-fs/fs-sis-common.h A src/lib-fs/fs-sis-queue.c A src/lib-fs/fs-sis.c A src/lib-fs/ostream-cmp.c A src/lib-fs/ostream-cmp.h 2010-10-19 18:10:34 +0100 Timo Sirainen (37bd98570) liblib: Added API for easily building hash strings based on given format string and input. M src/lib/Makefile.am A src/lib/hash-format.c A src/lib/hash-format.h A src/lib/test-hash-format.c M src/lib/test-lib.c M src/lib/test-lib.h 2010-10-19 18:09:16 +0100 Timo Sirainen (74ae32512) liblib: Added a common API for accessing all hash methods. M src/lib/Makefile.am A src/lib/hash-method.c A src/lib/hash-method.h M src/lib/md4.c M src/lib/md4.h M src/lib/md5.c M src/lib/md5.h M src/lib/sha1.c M src/lib/sha1.h M src/lib/sha2.c M src/lib/sha2.h 2010-10-19 18:39:27 +0100 Timo Sirainen (b32c01699) istream-header-filter: Drop duplicate headers instead of assert-crashing with them. M src/lib-mail/istream-header-filter.c 2010-10-18 19:00:59 +0100 Timo Sirainen (dd350fbef) acl: Recent change broke setting acls. M src/plugins/acl/acl-mailbox.c 2010-10-18 18:30:42 +0100 Timo Sirainen (88c816e8b) doveadm: Added import command for importing mails from other storages. M .hgignore M doc/man/Makefile.am A doc/man/doveadm-import.1.in M src/doveadm/Makefile.am A src/doveadm/doveadm-mail-import.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2010-10-18 18:30:02 +0100 Timo Sirainen (354268abe) doveadm: Call mail command's init() only after service storage is initialized. M src/doveadm/client-connection.c M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2010-10-18 18:09:56 +0100 Timo Sirainen (762e17079) lib-storage: Added no_userdb_lookup flag to storage service lookups. M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2010-10-18 16:51:12 +0100 Timo Sirainen (08baf8e4f) ostream-file: Fixed potential crash in write_at() and also fixed attempted optimization. M src/lib/Makefile.am M src/lib/ostream-file.c M src/lib/test-lib.c M src/lib/test-lib.h A src/lib/test-ostream-file.c 2010-10-18 16:14:08 +0100 Timo Sirainen (47c7c7aae) lib-index: More undoing of locking code changes. M src/lib-index/mail-index-lock.c 2010-10-18 16:07:17 +0100 Timo Sirainen (c22572f8d) acl: Fixed memory leaks. M src/plugins/acl/acl-mailbox-list.c M src/plugins/acl/acl-mailbox.c 2010-10-18 15:38:58 +0100 Timo Sirainen (f2df30697) auth: Default for auth_cache_negative_ttl was supposed to be 1 hour, not disabled. M src/auth/auth-settings.c 2010-10-18 15:35:24 +0100 Timo Sirainen (25c4225e8) auth: Log userdb cache hits and misses with auth_debug=yes M src/auth/auth-request.c 2010-10-18 15:07:02 +0100 Timo Sirainen (9789e1f8a) lib-storage: Log a debug message if shared user's storage root doesn't exist with mail_debug=yes M src/lib-storage/mail-storage.c 2010-10-18 14:52:02 +0100 Timo Sirainen (9c3b04173) acl: Avoid passing NULL parameter to printf %s when mail_debug=yes M src/plugins/acl/acl-backend-vfile.c 2010-10-16 18:33:42 +0100 Timo Sirainen (0678d7e4c) pop3: Recent corking change caused hangs. M src/pop3/pop3-client.c 2010-10-16 00:49:35 +0100 Timo Sirainen (8406c1d3e) Removed some dead code. M src/lib-index/mail-index-sync-ext.c M src/lib-mail/istream-header-filter.c M src/plugins/acl/acl-backend-vfile.c 2010-10-16 00:43:49 +0100 Timo Sirainen (b99f3f908) lib-index: Work around clang static analyzer's false positive "dead code" issue. M src/lib-index/mail-index-sync-update.c 2010-10-16 00:35:28 +0100 Timo Sirainen (4059c8e70) lib-lda: Make sure duplicate_init() handles non-existent home correctly. With previous change mail_user_get_home() always set home, but this is good anyway. M src/lib-lda/duplicate.c 2010-10-16 00:34:28 +0100 Timo Sirainen (72276c90a) lib-storage: mail_user_get_home(): Make sure user_r is always set. M src/lib-storage/mail-user.c 2010-10-16 00:30:50 +0100 Timo Sirainen (751cb41a8) lib-storage: mailbox_get_guid() crashed if storage didn't support GUIDs. M src/lib-storage/mail-storage.c 2010-10-16 00:23:20 +0100 Timo Sirainen (5a0ac2e5e) istream-concat: Fixed another memory leak. M src/lib/istream-concat.c 2010-10-16 00:21:35 +0100 Timo Sirainen (4143cfa11) lmtp: Don't access freed memory if input couldn't be opened as raw mail. This shouldn't really have ever happened. M src/lmtp/commands.c 2010-10-15 19:50:51 +0100 Timo Sirainen (701a594c6) istream-header-filter: Assert-crash if headers aren't given sorted. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2010-10-15 19:40:06 +0100 Timo Sirainen (fa0762ecd) Compiler warning/error fix to recent logging API changes. M src/master/main.c 2010-10-15 19:30:04 +0100 Timo Sirainen (efb0def04) lmtp: Reverted last change after all. Besides, the error code was wrong. M src/lmtp/commands.c 2010-10-15 19:21:43 +0100 Timo Sirainen (979b2a063) lmtp: Don't allow saving zero byte sized messages. M src/lmtp/commands.c 2010-10-15 19:04:42 +0100 Timo Sirainen (4d4cd9cde) epoll: Suggest not-so-UUOC if epoll_ctl() fails for stdin M src/lib/ioloop-epoll.c 2010-10-15 18:55:52 +0100 Timo Sirainen (7823ef73e) istream-concat: Fixed a memory leak. M src/lib/istream-concat.c 2010-10-15 18:50:44 +0100 Timo Sirainen (e6488134f) lib-storage: Added assert to transaction rollback to make sure all mails are freed. The same assert was already in commit, so this should be fine. M src/lib-storage/index/index-transaction.c 2010-10-15 16:24:25 +0100 Timo Sirainen (301740f53) auth: Make sure auth request is kept referenced during the lookup. M src/auth/auth-penalty.c 2010-10-15 16:16:23 +0100 Timo Sirainen (56ba5a9b6) lib-master: Properly fixed accepting FIFO connections with BSDI. M src/lib-master/master-service.c 2010-10-15 16:09:13 +0100 Timo Sirainen (19c587fe0) log: Avoid calling time() unnecessary when logging multiple lines. M src/log/log-connection.c 2010-10-15 16:08:12 +0100 Timo Sirainen (8882cee80) Failure logging supports now getting timestamp as parameter. M src/lib/failures.c M src/lib/failures.h 2010-10-15 15:46:43 +0100 Timo Sirainen (2303ad681) Cleaned up log callbacks and made them more extensible. fatal_failure_callback_t type is now gone, there's only failure_callback_t left that has a struct pointer as parameter. More parameters can be easily added to the struct in future. M src/doveadm/doveadm-log.c M src/lib-test/test-common.c M src/lib/failures.c M src/lib/failures.h M src/log/log-connection.c M src/master/main.c 2010-10-15 15:13:59 +0100 Timo Sirainen (925915bad) acl: Log mailbox names that are skipped due to missing lookup right with mail_debug=yes M src/plugins/acl/acl-mailbox-list.c 2010-10-15 15:09:18 +0100 Timo Sirainen (4ed1c0fed) lib-storage: Log attempted accesses to nonexistent users' mails with mail_debug=yes. M src/lib-storage/index/shared/shared-storage.c 2010-10-15 14:57:36 +0100 Timo Sirainen (cc2c73be3) lib-storage: Use MAIL_STORAGE_FLAG_NO_AUTOVERIFY for creating shared namespace storages. This avoids failing storage creation for nonexistent users. Previous failure made it possible for logged in users to figure out what other usernames existed on the system. M src/lib-storage/index/shared/shared-storage.c 2010-10-15 14:56:05 +0100 Timo Sirainen (cab9d33e9) lib-storage: Added MAIL_STORAGE_FLAG_NO_AUTOVERIFY to skip checking storage root dir existence. M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2010-10-15 14:48:31 +0100 Timo Sirainen (9a3f0c5b6) ldap: Compare LDAP attribute names case-insensitively. M src/auth/passdb-ldap.c M src/auth/userdb-ldap.c 2010-10-15 13:27:59 +0100 Timo Sirainen (834726fa6) ldap: Log a warning if iterate_attrs has other fields than 'user'. M src/auth/userdb-ldap.c 2010-10-14 18:20:58 +0100 Timo Sirainen (42eaa0804) maildir: Check correctly if file is a symlink. Patch by Mike Abbott / Apple. M src/lib-storage/index/maildir/maildir-util.c 2010-10-14 17:23:11 +0100 Timo Sirainen (6c8017214) lib-index: Put back some of the removed locking complexity. This fixes a crash when mmap_disable=no and a index was mmap()ed (which keeps the index locked) and later its read-lock was tried to be changed to write-lock. M src/lib-index/mail-index-lock.c 2010-10-14 17:02:20 +0100 Timo Sirainen (506e41a4e) *-login: If client didn't log in, don't log mpid in logout message. M src/login-common/client-common.c 2010-10-14 16:58:57 +0100 Timo Sirainen (53d62bbb2) imap, pop3: Cork TCP connection before trying to flush output in output callback. M src/imap/imap-client.c M src/pop3/pop3-client.c 2010-10-14 16:53:04 +0100 Timo Sirainen (038cb2779) lib-storage: If mailbox deletion failed, we crashed while trying to write undelete record to index. M src/lib-storage/mail-storage.c 2010-10-14 16:22:54 +0100 Timo Sirainen (b32546191) lib-index: Don't reopen mailbox log file too often. M src/lib-index/mailbox-log.c 2010-10-14 16:17:43 +0100 Timo Sirainen (dedf3b461) lib-index: Mailbox log writing was trying to write to a closed log file fd. M src/lib-index/mailbox-log.c 2010-10-14 15:59:11 +0100 Timo Sirainen (0595524d1) auth: Give a better error message if pass=yes can't be used in master passdb. M src/auth/auth-request.c 2010-10-06 19:49:31 +0100 Timo Sirainen (282142061) quota: Log a warning if Maildir++ quota is enabled for non-Maildir storage. M src/plugins/quota/quota-maildir.c 2010-10-06 19:35:17 +0100 Timo Sirainen (51a9c44be) master: Parse and check full config at startup. M src/master/main.c 2010-10-06 19:35:06 +0100 Timo Sirainen (8d173ad4d) lib-master: Added support for parse_full_config input option for settings parsing. M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h 2010-10-06 19:34:41 +0100 Timo Sirainen (fbef0c41a) doveconf: Added -p parameter to parse full config even if -m module is given. M src/config/doveconf.c 2010-10-06 19:19:48 +0100 Timo Sirainen (6af9d209e) maildir: Write only base filenames to uidlist. Previously the old filename was used to guess the initial filename, but nowadays we do that by building the filename based on flags in index. M src/lib-storage/index/maildir/maildir-uidlist.c 2010-10-06 19:08:43 +0100 Timo Sirainen (de6247993) imap search: Fixed YOUNGER/OLDER M src/lib-storage/mail-search-register-imap.c 2010-10-06 19:02:20 +0100 Timo Sirainen (c4476f503) search: If body search fails due to I/O error, keep the result as "unknown". Found by Vadim Okun M src/lib-storage/index/index-search.c 2010-10-06 18:57:38 +0100 Timo Sirainen (7ccae906b) lda: -m parameter's UTF-8 validity wasn't checked correctly. Found by Vadim Okun M src/lda/main.c 2010-10-06 18:57:16 +0100 Timo Sirainen (a2ec9828a) lib-lda: Fixed error handling if newly delivered mail couldn't be opened. Found by Vadim Okun. M src/lib-lda/mail-deliver.c 2010-10-06 18:20:26 +0100 Timo Sirainen (5e88e4624) lib-index: Always update index map while committing a transaction. The previous code was doing this only in some situations, which was probably enough, except maybe in some special cases. The log file was also read until EOF always anyway, so the only thing this was saving was some CPU. With the new behavior the committing stage should be more reliable, and also makes it easier to do changes without accidentally breaking it. M src/lib-index/mail-index-transaction-finish.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction.c 2010-10-06 18:18:30 +0100 Timo Sirainen (16c28dd75) lib-index: Cache offsets were sometimes written pointing to an older cache file. M src/lib-index/mail-cache-transaction.c M src/lib-index/mail-index-transaction-private.h M src/lib-index/mail-index-transaction-update.c 2010-10-06 17:15:51 +0100 Timo Sirainen (07e80e04c) lib-index: Avoid unnecessary pread()s at end of transaction log file. If we've already read until EOF while the file has been locked, there's no need to do it again. Previously this worked while index was being synced, but not while committing a transaction. M src/lib-index/mail-index-fsck.c M src/lib-index/mail-index-private.h M src/lib-index/mail-index-transaction.c M src/lib-index/mail-index-write.c M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log-append.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c M src/lib-index/test-mail-transaction-log-view.c 2010-10-06 17:11:52 +0100 Timo Sirainen (25d22147c) lib-index: Removed unnecessary code from lock handling. The code was intended only for blocking write-locks, but those haven't been used for a long time now. M src/lib-index/mail-index-lock.c 2010-10-06 16:17:08 +0100 Timo Sirainen (858aec7b4) lib-dict: If connect() to dict socket fails, log an error, but don't die. M src/lib-dict/dict-client.c 2010-10-06 15:54:14 +0100 Timo Sirainen (596ec3842) quota: Give better error message for connect() EACCES failure to quota-warning socket. M src/plugins/quota/quota.c 2010-10-05 22:55:37 +0100 Timo Sirainen (a3d1e2366) auth: Added lookup_credentials() support for passdb static M src/auth/passdb-static.c 2010-10-05 22:53:58 +0100 Timo Sirainen (5fcc2aa18) imap IDLE: Don't send "Still here" notifications if there is already data in output buffer. M src/imap/cmd-idle.c 2010-10-05 22:52:55 +0100 Timo Sirainen (28bf18526) master: Get only master-related configuration from doveconf at startup. M src/master/main.c 2010-10-05 02:20:31 +0100 Timo Sirainen (70cd73914) maildir: Don't assert-crash when saving a message without locking uidlist. M src/lib-storage/index/maildir/maildir-save.c 2010-10-04 17:16:38 +0100 Timo Sirainen (e622ff624) priority queue: Set item's idx value to invalid when it's removed from queue. This should assert-crash on double-removes more reliably. M src/lib/priorityq.c 2010-10-04 17:10:08 +0100 Timo Sirainen (8126e56fe) lmtp proxy: Avoid hanging at the end of message input. M src/lmtp/lmtp-proxy.c 2010-10-04 16:01:09 +0100 Timo Sirainen (5a0fc34c5) lib-storage: Don't write to dovecot.mailbox.log if setting subscription didn't actually change anything. M src/lib-storage/list/subscription-file.c M src/lib-storage/list/subscription-file.h M src/lib-storage/mailbox-list.c 2010-10-04 15:55:34 +0100 Timo Sirainen (cbd6cad82) lib-index: Fixed leaking fds when writing to dovecot.mailbox.log M src/lib-index/mailbox-log.c 2010-10-04 15:13:20 +0100 Timo Sirainen (ac0fed903) imap-* plugins: Use the new imap_client_created_hook_set() to set the hook. This avoids accessing variables directly, which allows Dovecot to give better error messages if imap-* plugins are tried to be loaded by non-imap binary. M src/plugins/imap-acl/imap-acl-plugin.c M src/plugins/imap-quota/imap-quota-plugin.c M src/plugins/imap-zlib/imap-zlib-plugin.c 2010-10-04 15:12:23 +0100 Timo Sirainen (93f0b2f8b) imap: Added imap_client_created_hook_set() to update the hook. M src/imap/imap-common.h M src/imap/main.c 2010-10-04 14:53:02 +0100 Timo Sirainen (fdeb669a3) configure: Added IDLE to banner CAPABILITY to make Blackberry happy. M configure.in 2010-10-04 14:45:25 +0100 Timo Sirainen (2a5b41c5b) login: Give a better error message if ssl_cert=path is attempted without '<' M src/login-common/ssl-proxy-openssl.c 2010-10-01 22:10:02 +0100 Timo Sirainen (6524d7237) Added signature for changeset 2690facaa927 M .hgsigs 2010-10-01 22:09:44 +0100 Timo Sirainen (e5d067329) Added tag 2.0.5 for changeset 2690facaa927 M .hgtags 2010-10-01 22:09:43 +0100 Timo Sirainen (3b5fd54da) Released v2.0.5. M NEWS M TODO M configure.in 2010-10-01 21:42:18 +0100 Timo Sirainen (85f8811e4) lmtp: Make sure we partial messages aren't saved if client disconnects during DATA. M src/lmtp/commands.c 2010-10-01 21:33:38 +0100 Timo Sirainen (2e426575a) lib-storage: Don't wrongly ignore subscriptions=no namespace entries. M src/lib-storage/list/mailbox-list-subscriptions.c M src/lib-storage/list/subscription-file.c 2010-10-01 19:09:29 +0100 Timo Sirainen (3643fe9aa) dsync: Fail if both source and destination mail location point to same directory. This should prevent some accidents. M src/dsync/dsync.c 2010-10-01 18:58:47 +0100 Timo Sirainen (ca7e608c2) config: Show time/size setting values as more human readable. M src/config/config-request.c 2010-10-01 18:33:58 +0100 Timo Sirainen (ea06c6e68) imap: Don't reset input/output byte counters when COMPRESS is started. M src/imap/imap-client.c M src/plugins/imap-zlib/imap-zlib-plugin.c 2010-10-01 18:33:19 +0100 Timo Sirainen (923115fd3) Added i_stream_get_absolute_offset(). M src/lib/istream.c M src/lib/istream.h 2010-10-01 17:46:03 +0100 Timo Sirainen (344a9a9c2) zlib: eof_offset wasn't always set right, causing assert-crashes. M src/plugins/zlib/istream-bzlib.c M src/plugins/zlib/istream-zlib.c 2010-10-01 17:35:01 +0100 Timo Sirainen (616073376) zlib: Fixed istream-bzlib also with mark=TRUE seeking M src/plugins/zlib/istream-bzlib.c 2010-10-01 17:06:27 +0100 Timo Sirainen (1546b3a75) zlib: Fixed istream-zlib when using seeking with mark=TRUE (i.e. mbox) M src/plugins/zlib/istream-zlib.c 2010-10-01 16:39:11 +0100 Timo Sirainen (d5b5529d7) pop3: Added pop3_fast_size_lookups setting. M doc/example-config/conf.d/20-pop3.conf M src/pop3/pop3-client.c M src/pop3/pop3-settings.c M src/pop3/pop3-settings.h 2010-10-01 16:19:10 +0100 Timo Sirainen (fa8f3c681) mail-storage.h comments updated. M src/lib-storage/mail-storage.h 2010-10-01 16:14:08 +0100 Timo Sirainen (b9e573897) pop3: Code cleanup for mailbox opening code. M src/pop3/pop3-client.c 2010-10-01 15:37:19 +0100 Timo Sirainen (27a7dee37) acl: Fixed the logic of merging multiple ACLs. M src/plugins/acl/acl-api.h M src/plugins/acl/acl-backend-vfile.c M src/plugins/acl/acl-backend.c M src/plugins/acl/acl-cache.c 2010-10-01 15:01:09 +0100 Timo Sirainen (360e3e43d) acl: Reverted last change. It still allows reading the default ACL from .DEFAULT file. M src/plugins/acl/acl-backend-vfile.c 2010-10-01 14:56:07 +0100 Timo Sirainen (038674c13) acl: Avoid extra open() on a directory for default acl. M src/plugins/acl/acl-backend-vfile.c 2010-09-30 20:28:54 +0100 Timo Sirainen (e72a7cb3a) acl: Avoid opening two dict iterators at the same time. M src/plugins/acl/acl-lookup-dict.c 2010-09-30 19:18:13 +0100 Timo Sirainen (6860dd5bc) dict: Support file backend also with dict proxy. M configure.in M src/lib-dict/Makefile.am 2010-09-30 17:57:55 +0100 Timo Sirainen (1f792fb84) doveadm fetch: Fixed fetching uid field. M src/doveadm/doveadm-mail-fetch.c 2010-09-30 17:49:17 +0100 Timo Sirainen (5363f51ad) auth: Don't assert-crash if a request still succeeds after its client connection is gone. M src/auth/auth-client-connection.c M src/auth/auth-request-handler.c M src/auth/auth-request-handler.h 2010-09-30 17:12:55 +0100 Timo Sirainen (ea95a057f) auth: Avoid crashing when finishing failed requests that already timed out. M src/auth/auth-request-handler.c M src/auth/auth-request.h 2010-09-30 16:49:16 +0100 Timo Sirainen (755aea84b) virtual: Allow opening virtual mailboxes that refer to non-existing mailboxes. It could be intentional that not everyone has the same set of mailboxes always. M src/plugins/virtual/virtual-storage.c 2010-09-30 16:05:57 +0100 Timo Sirainen (b8e2c73d8) lib-index: If mail_index_sync_begin() fails, don't assert-crash M src/lib-index/mail-index-sync.c 2010-09-30 15:33:56 +0100 Timo Sirainen (ef44f827d) director: Properly detect invalid command parameters in director<->director connections. Found by Paul E. Black. M src/director/director-connection.c 2010-09-29 19:07:16 +0100 Timo Sirainen (7133574ad) maildir: Avoid recreating uidlist all the time when indexes are disabled. This code originally existed because old records weren't removed from uidlist->records and so this compression would never have been done, but 0818f0a49704 changed this behavior. M src/lib-storage/index/maildir/maildir-uidlist.c 2010-09-29 18:49:34 +0100 Timo Sirainen (6d50c4d87) maildir: Avoid opening cache file when getting physical message size. M src/lib-storage/index/maildir/maildir-mail.c 2010-09-29 18:38:29 +0100 Timo Sirainen (a0aedab7c) Maildir: If mail's virtual size can be found from filename/uidlist, do it instead of using cache. This is especially useful with POP3 to avoid opening cache file. M src/lib-storage/index/index-mail.c M src/lib-storage/index/index-mail.h M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-uidlist.h 2010-09-29 18:09:28 +0100 Timo Sirainen (9061a2a9a) lib-index: If transaction log file is small enough, just read all of it to memory immediately. M src/lib-index/mail-transaction-log-file.c 2010-09-29 17:15:12 +0100 Timo Sirainen (3a854fc26) maildir: Avoid refreshing transaction log immediately on first sync. M src/lib-index/mail-index-sync.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/maildir/maildir-sync.c 2010-09-29 17:14:22 +0100 Timo Sirainen (3c72b9bc9) lib-index: Avoid refreshing transaction log immediately after it was opened. M src/lib-index/mail-index.c M src/lib-index/mail-transaction-log.c 2010-09-29 16:34:56 +0100 Timo Sirainen (722957a2f) virtual: Don't unnecessarily stat() the virtual directory. Its existence is checked automatically when trying to open dovecot-virtual file. M src/plugins/virtual/virtual-config.c M src/plugins/virtual/virtual-storage.c 2010-09-29 16:33:12 +0100 Timo Sirainen (6340dee9c) pop3: Fixed virtual plugin when compiling --without-shared-libs M src/pop3/Makefile.am 2010-09-29 16:32:47 +0100 Timo Sirainen (96975ce7b) lib-index: Don't waste time on every mailbox open checking if .log.2 should be deleted. M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c 2010-09-29 15:46:32 +0100 Timo Sirainen (e12d28861) Maildir++: When opening namespace prefix as mailbox, don't add extra '/' to path names. M src/lib-storage/list/mailbox-list-maildir.c 2010-09-28 19:07:33 +0100 Timo Sirainen (50349cd04) lda: If doveconf fails, make it exit with EX_TEMPFAIL. M src/config/doveconf.c M src/lda/main.c M src/lib-master/master-service-settings.c M src/lib-master/master-service-settings.h M src/lib-storage/mail-storage-service.c M src/lib-storage/mail-storage-service.h 2010-09-28 17:41:43 +0100 Timo Sirainen (38cb3d139) login: If master login fails, tell auth process to free the auth request. M src/login-common/client-common.h M src/login-common/sasl-server.c 2010-09-28 17:15:52 +0100 Timo Sirainen (f6f021c13) maildir: If we see unwanted non-empty directories in new/ or cur/, move them to ../extra-* M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-storage.h M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-util.c 2010-09-28 17:09:50 +0100 Timo Sirainen (098e1a7ae) config: Don't even try to open (e982ce57a) doveconf: Skip verifying settings for modules we don't care about. This was done sometimes, but not always. M src/config/config-parser.c 2010-09-28 16:29:33 +0100 Timo Sirainen (8a68b403f) lib-index: Try to keep writing to latest mailbox log. Fixes a problem where a long running session keeps writing to a rotate log that has already been deleted. M src/lib-index/mailbox-log.c 2010-09-28 16:05:40 +0100 Timo Sirainen (a9a77f463) quota: Don't crash if user has quota disabled. M src/plugins/quota/quota-storage.c 2010-09-27 19:53:07 +0100 Timo Sirainen (2c50ccaa9) sdbox: Fixed memory leak when copying messages with hard links. M src/lib-storage/index/dbox-single/sdbox-copy.c 2010-09-27 19:34:08 +0100 Timo Sirainen (01afde78e) config: Verify settings plugins' versions are valid if they're specified. M src/config/config-parser.c 2010-09-27 16:46:26 +0100 Timo Sirainen (d581fe175) doveconf: Expand "key=$key" variable even without -x parameter. Without this expansion it hides what the settings actually contain. M src/config/config-parser.c 2010-09-27 15:50:43 +0100 Timo Sirainen (e71f71176) lib-storage: Buffer writes to subscriptions file. M src/lib-storage/list/subscription-file.c 2010-09-27 15:40:02 +0100 Timo Sirainen (063e414fb) lib-storage: Avoid fsyncing subscriptions file when it doesn't change or if mail_fsync=never. M src/lib-storage/list/subscription-file.c 2010-09-27 13:45:24 +0100 Timo Sirainen (0b69aadbd) zlib: Avoid using hardcoded storage name strings. M src/plugins/zlib/Makefile.am M src/plugins/zlib/zlib-plugin.c 2010-09-27 13:44:49 +0100 Timo Sirainen (03a2840ef) zlib: dbox storage is now called sdbox. M src/plugins/zlib/zlib-plugin.c 2010-09-26 18:47:56 +0100 Timo Sirainen (a2d9acbdd) Added signature for changeset 7f5c5778c4b9 M .hgsigs 2010-09-26 18:47:51 +0100 Timo Sirainen (ec4755b90) Added tag 2.0.4 for changeset 7f5c5778c4b9 M .hgtags 2010-09-26 18:47:51 +0100 Timo Sirainen (f70467fbf) Released v2.0.4. M NEWS M TODO M configure.in 2010-09-26 18:36:14 +0100 Timo Sirainen (36122480c) Maildir: Fixed accessing INBOX whose tmp/ directory was lost. M src/lib-storage/index/maildir/maildir-storage.c 2010-09-26 18:05:25 +0100 Timo Sirainen (921a0bd6b) imap: Give better error message for "Unknown namespace" M src/imap/imap-commands-util.c 2010-09-24 22:32:03 +0100 Timo Sirainen (83c6bd1b0) module_dir_load(): Make it clearer that "Skipping module" debug message is normal. M src/lib/module-dir.c 2010-09-24 19:39:41 +0100 Timo Sirainen (fd420c645) mdbox: Removed unused code. M src/lib-storage/index/dbox-multi/mdbox-storage.c 2010-09-24 18:36:22 +0100 Timo Sirainen (407caeb5d) pgsql: Avoid epoll_ctl() errors when closing connection. M src/lib-sql/driver-pgsql.c 2010-09-24 18:14:16 +0100 Timo Sirainen (fe70da4a4) maildir: Another assert for saving messages. M src/lib-storage/index/maildir/maildir-save.c 2010-09-24 17:35:51 +0100 Timo Sirainen (afa201e7e) sdbox: Use "sdbox" name in the internal storage structure. This fixes copying with hard links. M src/lib-storage/index/dbox-single/sdbox-storage.c 2010-09-24 17:02:08 +0100 Timo Sirainen (9a5622016) maildir: Added extra asserts. M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.c 2010-09-24 16:59:44 +0100 Timo Sirainen (826bddaaa) maildir: Don't waste time stat()ing if generated filename is in tmp/. M src/lib-storage/index/maildir/maildir-save.c 2010-09-24 11:48:57 +0100 Timo Sirainen (7d12f263b) lib-storage: Check valid subscriptions list entries with _is_valid_existing_name() M src/lib-storage/list/subscription-file.c 2010-09-23 20:04:40 +0100 Timo Sirainen (5183f8269) quota: When logging about obsolete rule, log the full rule string. M src/plugins/quota/quota.c 2010-09-23 20:00:41 +0100 Timo Sirainen (4c4f6141f) quota: When logging about obsolete rule, log also the quota root name. M src/plugins/quota/quota.c 2010-09-23 19:54:26 +0100 Timo Sirainen (ba8a3fbee) config: Added conversion support for obsolete sieve/sieve_storage settings. M src/config/old-set-parser.c 2010-09-23 19:34:31 +0100 Timo Sirainen (be04e84a9) lib-storage: Log and hide invalid entries in subscriptions file. M src/lib-storage/list/subscription-file.c 2010-09-23 19:25:22 +0100 Timo Sirainen (35fcdde46) Fail at startup if process_limit>1 for services that don't support it. M src/anvil/anvil-settings.c M src/auth/auth-settings.c M src/director/director-settings.c M src/lib-master/service-settings.h M src/log/log-settings.c M src/master/master-settings.c 2010-09-23 19:00:31 +0100 Timo Sirainen (b6455d61b) lib-master: If auth server is restarted, still log a warning about aborted auth request. M src/lib-master/master-login-auth.c 2010-09-23 18:39:22 +0100 Timo Sirainen (0873fc3bd) maildir: Log a warning if mailbox synchronization takes longer than 1 min. M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-sync.h 2010-09-23 18:21:09 +0100 Timo Sirainen (ef859438e) maildir: Use correct enum for getting uidlist record GUID. M src/lib-storage/index/maildir/maildir-sync-index.c 2010-09-23 18:18:51 +0100 Timo Sirainen (24cd47a2c) maildir: Fixed a race condition in getting a new message's GUID. M src/lib-storage/index/maildir/maildir-mail.c 2010-09-23 18:02:20 +0100 Timo Sirainen (4cc8a7921) maildir: Code cleanup: Use MAILDIR_UIDLIST_HDR_EXT_* when building the header string. M src/lib-storage/index/maildir/maildir-uidlist.c 2010-09-23 17:51:07 +0100 Timo Sirainen (bf289bd2a) maildir: Don't add GUIDs to "external expunge" records. There's no point. M src/lib-storage/index/maildir/maildir-sync-index.c 2010-09-23 17:35:37 +0100 Timo Sirainen (05f323615) maildir: When uidlist file is recreated and reread, clear old records from memory. This should avoid wasting some memory and also fix "Duplicate file entry" errors. M src/lib-storage/index/maildir/maildir-uidlist.c 2010-09-23 17:26:20 +0100 Timo Sirainen (53f9b8709) maildir: Cleaned up filename/guid preserving code on save/copy. M src/lib-storage/index/maildir/maildir-copy.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-storage.h 2010-09-23 16:40:42 +0100 Timo Sirainen (cf4b066bf) dsync: Avoid assert-crashing when trying to create a reserved mailbox name (e.g. dbox-Mails) M src/dsync/dsync-worker-local.c 2010-09-23 16:36:00 +0100 Timo Sirainen (1d6dbe153) maildir: Fixed expunging messages with GUIDs in uidlist. M src/lib-storage/index/maildir/maildir-sync-index.c 2010-09-23 16:06:28 +0100 Timo Sirainen (8a98b2a93) lib-lda: Fixed handling duplicate database when user has no home dir. Now it gives a clear error message and doesn't crash with some OSes. M src/lib-lda/duplicate.c 2010-09-23 15:53:09 +0100 Timo Sirainen (d9fda7e3a) lib-index: Log a warning if transaction log lock is kept over 3 minutes. M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h 2010-09-22 18:19:31 +0100 Timo Sirainen (e0923dd55) Attempt to fix vpopmail support. M configure.in M src/auth/passdb-vpopmail.c 2010-09-22 18:11:03 +0100 Timo Sirainen (add4be35a) dict-file: Don't leak fd on deinit. M src/lib-dict/dict-file.c 2010-09-21 18:15:56 +0100 Timo Sirainen (8eb223b84) dict quota: Avoid crashing if quota recalculation tries to recurse. M src/plugins/quota/quota-count.c M src/plugins/quota/quota-private.h 2010-09-21 18:05:13 +0100 Timo Sirainen (4316355ca) quota: Avoid calling i_fatal() on initialization errors, plus some other fixes. M src/plugins/quota/quota-storage.c M src/plugins/quota/quota.c M src/plugins/quota/quota.h 2010-09-21 18:04:30 +0100 Timo Sirainen (a26b7e87b) lib-storage: If user->error is set during initialization, fail user creation. M src/lib-storage/mail-user.c M src/lib-storage/mail-user.h 2010-09-21 16:30:20 +0100 Timo Sirainen (6261a540c) ssl-params: Don't start it at startup if Dovecot is compiled without SSL support. M src/ssl-params/ssl-params-settings.c 2010-09-21 15:22:57 +0100 Timo Sirainen (ba7881c73) Maildir: If POP3 UIDL is specified for saved message, add it to uidlist. M src/lib-storage/index/maildir/maildir-save.c 2010-09-21 15:22:38 +0100 Timo Sirainen (89dbeaa49) lib-storage: Added assert against empty UIDL in mailbox_save_set_pop3_uidl(). M src/lib-storage/mail-storage.c 2010-09-21 15:22:16 +0100 Timo Sirainen (c584cd900) dsync: Don't set POP3 UIDLs to empty values. M src/dsync/dsync-worker-local.c 2010-09-21 15:11:05 +0100 Timo Sirainen (57593ca3c) lib-auth: Last change broke multi-step auth mechanisms. M src/lib-auth/auth-client-request.c 2010-09-21 14:59:59 +0100 Timo Sirainen (87e603100) dict client: If connect to server socket fails with EACCES, give better error message. M src/lib-dict/dict-client.c 2010-09-21 14:55:33 +0100 Timo Sirainen (db8770388) doveadm-expire: Improved debug logging. M src/plugins/expire/doveadm-expire.c 2010-09-21 14:55:22 +0100 Timo Sirainen (29f138b4b) doveadm: Added iterate_single_user mail context field. M src/doveadm/doveadm-mail.c M src/doveadm/doveadm-mail.h 2010-09-21 14:04:22 +0100 Timo Sirainen (c60ae7afb) lda: If mail_debug=yes and no -d parameter is given, log where username is taken from. M src/lda/main.c 2010-09-20 19:06:26 +0100 Timo Sirainen (4a0641e1f) lib-auth: Make sure auth request isn't tried to be double-freed on error conditions. This could have happened if auth server crashed. M src/lib-auth/auth-client-request.c 2010-09-20 18:19:53 +0100 Timo Sirainen (983495935) Make sure no data is leaked across processes via struct ip_addr fields. M src/lib/network.c 2010-09-20 17:50:29 +0100 Timo Sirainen (f1dd517d1) lib-master: When finishing auth, don't send REQUEST if auth process has restarted. This avoids unnecessary "Master requested auth for nonexistent client" errors when auth process restarts (crashes). M src/lib-master/master-login-auth.c 2010-09-20 16:06:17 +0100 Timo Sirainen (f302af729) lda, storage .so libs: Added explicit linking against other .so libs they require Based on patch by Funda Wang M src/lib-lda/Makefile.am M src/lib-storage/Makefile.am 2010-09-20 15:30:07 +0100 Timo Sirainen (02d72ab3d) mdbox: If :INDEX=path is specified, keep storage indexes there also. M src/lib-storage/index/dbox-multi/mdbox-map-private.h M src/lib-storage/index/dbox-multi/mdbox-map.c M src/lib-storage/index/dbox-multi/mdbox-map.h M src/lib-storage/index/dbox-multi/mdbox-storage.c 2010-09-17 20:20:53 +0100 Timo Sirainen (6d65b5347) Added signature for changeset a475e8d4eb21 M .hgsigs 2010-09-17 20:20:48 +0100 Timo Sirainen (57df7292e) Added tag 2.0.3 for changeset a475e8d4eb21 M .hgtags 2010-09-17 20:20:48 +0100 Timo Sirainen (66347046d) Released v2.0.3. M NEWS M TODO M configure.in 2010-09-17 18:38:47 +0100 Timo Sirainen (93305d79c) lib-storage: If subscriptions contains an invalid entry, don't crash with fs layout. M src/lib-storage/list/mailbox-list-fs-iter.c 2010-09-17 17:54:22 +0100 Timo Sirainen (ae7d74df3) fdpass: Use memcpy() to access data in CMSG_DATA(). This fixes at least AIX where the previous way was broken for some reason. M src/lib/fdpass.c 2010-09-17 17:30:30 +0100 Timo Sirainen (cd6592076) poll: Added a workaround for AIX to get it to notice IO_ERRORs M src/lib/ioloop-poll.c 2010-09-16 16:28:58 +0100 Timo Sirainen (e4e7475f6) maildir: uidlist can now override message's GUID M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-uidlist.h 2010-09-16 16:26:48 +0100 Timo Sirainen (e79121679) maildir: Use array_bsearch() in uidlist instead of reimplementing it. M src/lib-storage/index/maildir/maildir-uidlist.c 2010-09-16 15:19:45 +0100 Timo Sirainen (d61d56a65) lib-storage: Recent change broke creating mailboxes with fs layout. M src/lib-storage/list/mailbox-list-fs.c 2010-09-16 13:49:35 +0100 Timo Sirainen (554badea1) doveadm: Give binary name to plugin loading code so it can give better error messages. M src/doveadm/doveadm-mail.c 2010-09-15 18:59:34 +0100 Timo Sirainen (9506271b8) dsync: Don't crash/hang if syncing fails before ioloop is started. M src/dsync/dsync-brain.c M src/dsync/dsync-brain.h M src/dsync/dsync.c 2010-09-15 16:28:32 +0100 Timo Sirainen (699b27536) master: Fixed previous "client/process_limit reached" log change. M src/master/service-monitor.c 2010-09-15 16:20:21 +0100 Timo Sirainen (98b27a037) lib-storage: Fail if list=yes namespace prefix starts with hierarchy separator. M src/lib-storage/mail-namespace.c 2010-09-15 16:07:15 +0100 Timo Sirainen (9042caa1a) lib-mail: Previous message parser optimization caused infinite looping with some mails. M src/lib-mail/message-parser.c 2010-09-14 21:12:08 +0100 Timo Sirainen (5f43b6def) lib-index: day_first_uid[] array wasn't kept properly up to date. The result was that caching decisions could have been sometimes slightly wrong. Based on patch by Paul E. Black. M src/lib-index/mail-index-transaction-update.c 2010-09-14 17:55:25 +0100 Timo Sirainen (dadd25034) master: If service with process_limit=1 reaches client_limit, log it better. M src/master/service-monitor.c 2010-09-14 17:39:40 +0100 Timo Sirainen (ad7abd5b9) When writing to logs, ignore write()=EINTR failures from non-terminal signals. The previous code failed after 3 successive EINTRs, which was possible if the process got a lot of signals (e.g. master process getting lots of SIGCHLD signals). M src/lib/failures.c 2010-09-14 17:38:08 +0100 Timo Sirainen (4c5004b53) Added signal_term_counter that keeps track of how many terminal signals have been received. M src/lib/lib-signals.c M src/lib/lib-signals.h 2010-09-14 16:43:10 +0100 Timo Sirainen (703c03f7c) dsync: Fixed creating \noselect mailboxes. M src/dsync/dsync-worker-local.c 2010-09-14 16:20:18 +0100 Timo Sirainen (f466caf79) dsync: Don't create \Noselect mailboxes as selectable mailboxes, rather just don't create them. This fixes creating extra empty mailboxes when mirroring mbox+fs layout and maildir++ layout. M src/dsync/dsync-worker-local.c 2010-09-14 16:18:13 +0100 Timo Sirainen (a91bd6256) lib-storage: Added mailbox_list_create_dir() M src/lib-storage/index/shared/shared-list.c M src/lib-storage/list/mailbox-list-fs.c M src/lib-storage/list/mailbox-list-maildir.c M src/lib-storage/list/mailbox-list-none.c M src/lib-storage/mail-storage.c M src/lib-storage/mailbox-list-private.h M src/lib-storage/mailbox-list.c M src/lib-storage/mailbox-list.h M src/plugins/acl/acl-mailbox-list.c 2010-09-14 15:22:37 +0100 Timo Sirainen (d4fe93a9c) istream-crlf: Fixed assert-crash. M src/lib/istream-crlf.c 2010-09-14 14:45:01 +0100 Timo Sirainen (691b39f8b) lib-settings: Give a better error message for invalid boolean values M src/lib-settings/settings-parser.c 2010-09-14 13:45:57 +0100 Timo Sirainen (71564d36e) Added lda_original_recipient_header setting. Removed non-standard use of Envelope-To: header. M doc/example-config/conf.d/15-lda.conf M src/lda/main.c M src/lib-lda/lda-settings.c M src/lib-lda/lda-settings.h M src/lmtp/commands.c 2010-09-14 13:17:18 +0100 Timo Sirainen (9c45821d7) lda: Added -r parameter to specify final recipient address. (As opposed to -a which specifies original recipient address.) This is going to be used by Sieve checks. M src/lda/main.c M src/lib-lda/mail-deliver.h M src/lmtp/commands.c 2010-09-14 11:06:44 +0100 Timo Sirainen (ad4f1b066) quota: Added support for reverse quota warnings. Based on patch by Jeroen Koekkoek M src/plugins/quota/quota-private.h M src/plugins/quota/quota.c 2010-09-13 18:11:37 +0100 Timo Sirainen (f24b881d7) doveadm quota: Removed unused search_args. This fixes a crash when used with doveadm_expire plugin. M src/plugins/quota/doveadm-quota.c 2010-09-13 16:59:45 +0100 Timo Sirainen (cb2c44f33) *-login: Ignore ENOTCONN error for shutdown() It's probably just a duplicate of a previous read() failure. M src/login-common/client-common-auth.c 2010-09-13 16:18:31 +0100 Timo Sirainen (c91d4619f) iostream: Call destroy callback after the destroy() method is called. M src/lib/iostream.c 2010-09-13 15:08:30 +0100 Timo Sirainen (3db806259) mysql: When sql_exec() fails, log an error. M src/lib-sql/driver-mysql.c 2010-09-13 15:08:12 +0100 Timo Sirainen (a5be5a0d0) mysql: When query fails because connection gets lost, use MySQL failure message instead of generic one. M src/lib-sql/driver-mysql.c 2010-09-13 14:43:27 +0100 Timo Sirainen (980061e0c) acl: Don't break if mailbox listing returns an empty name. M src/plugins/acl/acl-mailbox-list.c 2010-09-13 13:10:31 +0100 Timo Sirainen (d6871d371) login proxy: If proxy-login pipe isn't found, don't log an error. The pipe exists only when director is enabled. M src/login-common/login-proxy-state.c 2010-09-13 11:56:08 +0100 Timo Sirainen (3e42e3748) lib-index: fsck shouldn't assert-crash when no .log file exists M src/lib-index/mail-index-fsck.c 2010-09-13 11:52:18 +0100 Timo Sirainen (c734f70a4) lib-index: readonly status was checked wrong when deleting corrupted index files. M src/lib-index/mail-index-map-read.c 2010-09-13 11:29:23 +0100 Timo Sirainen (73fed8af5) lib-master: If config file can't be even stat()ed (e.g. permission error), give better error msg. M src/lib-master/master-service-settings.c 2010-09-13 10:48:28 +0100 Timo Sirainen (919930535) lda: If destination user isn't found, exit with EX_NOUSER, not EX_TEMPFAIL. M src/lda/main.c 2010-09-08 17:38:49 +0100 Timo Sirainen (02aa666f8) Added signature for changeset f4eb53065879 M .hgsigs 2010-09-08 17:38:41 +0100 Timo Sirainen (1e0a22958) Added tag 2.0.2 for changeset f4eb53065879 M .hgtags 2010-09-08 17:38:41 +0100 Timo Sirainen (af7e6e2fa) Released v2.0.2. M NEWS M TODO M configure.in 2010-09-08 17:02:48 +0100 Timo Sirainen (4b9382f92) acl: Make sure acl-list and dict is rebuild when replacing/clearing ACLs M src/plugins/acl/acl-backend-vfile.c 2010-09-08 17:02:25 +0100 Timo Sirainen (2fff31fd2) acl: Fixed removing entries from shared dict when rebuilding M src/plugins/acl/acl-lookup-dict.c 2010-09-08 15:35:32 +0100 Timo Sirainen (1d23a4926) dovecot.m4: Added --with-moduledir and export dovecotdir M configure.in M dovecot.m4 2010-09-08 15:11:03 +0100 Timo Sirainen (ac5acc5f5) lmtp: Read initial settings with service=lmtp M src/lmtp/main.c 2010-09-08 15:02:18 +0100 Timo Sirainen (57010e707) auth: If no passdb is specified, don't fail when userdb static tries to verify user existence. M src/auth/userdb-static.c 2010-09-08 14:58:31 +0100 Timo Sirainen (6bd263caf) Don't fail with auth_cache_size=0 M src/auth/auth-settings.c M src/config/old-set-parser.c 2010-09-08 14:56:15 +0100 Timo Sirainen (5ce40a737) config: Automatically convert old-style auth_cache_size value. M src/config/old-set-parser.c 2010-09-08 14:55:57 +0100 Timo Sirainen (4fc74bba3) auth: Fail if auth_cache_size value is too small. M src/auth/auth-settings.c 2010-09-08 14:47:45 +0100 Timo Sirainen (1e50a4f93) auth: Don't crash if auth_cache_size has a very small value. M src/auth/auth-cache.c 2010-09-08 14:47:28 +0100 Timo Sirainen (80e461e94) login: Crashfix when client disconnects before auth process has started. M src/login-common/client-common-auth.c 2010-09-07 19:50:48 +0100 Timo Sirainen (75113e5fa) sql pool: Delay creating a transaction until commit is called. Otherwise sql connection is reserved for the duration of the transaction. M src/lib-sql/driver-sqlpool.c 2010-09-07 17:19:40 +0100 Timo Sirainen (e5de04b9d) Compiler warning fixes. M src/lib-master/master-auth.c M src/lib-storage/index/index-mail.c M src/lib/fdpass.c M src/login-common/ssl-proxy-openssl.c 2010-09-07 16:32:17 +0100 Timo Sirainen (b6ccb2a38) maildir: Avoid unnecessary uidlist recreation during mail delivery. M src/lib-storage/index/maildir/maildir-uidlist.c 2010-09-07 16:23:03 +0100 Timo Sirainen (f53a6e86c) maildir: If uidlist isn't read, don't mark its UIDs as being known when saving. M src/lib-storage/index/maildir/maildir-uidlist.c 2010-09-06 19:07:49 +0100 Timo Sirainen (6fe912987) maildir: Moved maildir_filename_flags_*() to a separate file. M src/lib-storage/index/maildir/Makefile.am A src/lib-storage/index/maildir/maildir-filename-flags.c A src/lib-storage/index/maildir/maildir-filename-flags.h M src/lib-storage/index/maildir/maildir-filename.c M src/lib-storage/index/maildir/maildir-filename.h M src/lib-storage/index/maildir/maildir-save.c M src/lib-storage/index/maildir/maildir-sync-index.c M src/lib-storage/index/maildir/maildir-util.c 2010-12-05 21:07:01 +0000 Timo Sirainen (d656ea232) maildir: uidlist code cleanup. M src/lib-storage/index/maildir/maildir-uidlist.c 2010-12-05 21:05:40 +0000 Timo Sirainen (6013fbad6) maildir: maildir_uidlist_lookup() -> maildir_sync_lookup() refactoring. M src/lib-storage/index/maildir/maildir-mail.c M src/lib-storage/index/maildir/maildir-sync.c M src/lib-storage/index/maildir/maildir-sync.h M src/lib-storage/index/maildir/maildir-uidlist.c M src/lib-storage/index/maildir/maildir-uidlist.h M src/lib-storage/index/maildir/maildir-util.c 2010-09-06 18:17:17 +0100 Timo Sirainen (c2f76dfe4) zlib: Potential assert-crashfix. M src/plugins/zlib/istream-bzlib.c M src/plugins/zlib/istream-zlib.c 2010-09-06 16:35:13 +0100 Timo Sirainen (6600c05e2) lib-storage: Don't fail with "maildir_name not supported" when using empty DIRNAME= M src/lib-storage/mailbox-list.c 2010-09-06 15:41:31 +0100 Timo Sirainen (eedc9de82) maildir: Minor code cleanup. M src/lib-storage/index/maildir/maildir-sync-index.c 2010-09-06 15:41:25 +0100 Timo Sirainen (f84e7cabe) maildir: If we see duplicate file with retry_rewind set, try rewinding first. M src/lib-storage/index/maildir/maildir-uidlist.c 2010-09-03 19:10:28 +0100 Timo Sirainen (95dd5084f) config: Give an error if "block {" continues with non-whitespace. M src/config/config-parser.c 2010-09-03 15:18:55 +0100 Timo Sirainen (49469ba8d) alloconly mempool: Clear pool with memset(), not safe_memset(). M src/lib/mempool-alloconly.c 2010-09-03 15:18:09 +0100 Timo Sirainen (2a2beae3a) liblib: Removed unused system-clean and alloconly-clean mempools. They're just making the code messier and slower. M src/lib/Makefile.am M src/lib/mempool-alloconly.c D src/lib/mempool-system-clean.c M src/lib/mempool.h 2010-09-03 15:11:35 +0100 Timo Sirainen (767aabe13) test-imap-match: Don't use "clean" alloconly mempool, there's no point. M src/lib-imap/test-imap-match.c 2010-09-02 18:03:13 +0100 Timo Sirainen (56aa9083e) mdbox: If save fails due to lock failure, don't assert-crash M src/lib-storage/index/dbox-multi/mdbox-save.c 2010-09-02 17:46:55 +0100 Timo Sirainen (bdd7a96c3) lib-index: Lock timeout setting wasn't actually used in all places. M src/lib-index/mail-index-lock.c M src/lib-index/mail-transaction-log-file.c M src/lib-index/mail-transaction-log-private.h M src/lib-index/mail-transaction-log.c 2010-09-02 17:28:10 +0100 Timo Sirainen (f6d63a210) lib-storage: Fail earlier if shared namespace prefix contains modifiers. M src/lib-storage/index/shared/shared-storage.c 2010-09-02 17:06:37 +0100 Timo Sirainen (42d16c8fa) lib-storage: Minor namespace error handling cleanup. M src/lib-storage/mail-namespace.c 2010-09-02 17:04:15 +0100 Timo Sirainen (c2c68f751) lib-storage: Give an error about duplicate namespace prefixes. M src/lib-storage/mail-namespace.c 2010-09-02 17:01:00 +0100 Timo Sirainen (d32d7ecc7) doveconf: Quote output values when necessary. M src/config/config-parser.c M src/config/config-parser.h M src/config/doveconf.c 2010-09-02 15:53:08 +0100 Timo Sirainen (c62f5b167) lib-storage: If shared namespace uses %% in location, but not in prefix, fail with error. M src/lib-storage/mail-namespace.c 2010-09-02 15:35:21 +0100 Timo Sirainen (4bc404278) director: If outgoing connection dies soon, mark the host as failed to avoid immediate reconnect. M src/director/director-connection.c 2010-09-02 13:50:17 +0100 Timo Sirainen (c17099a13) fts: More percentage counter calculation fixes. Patch by William Blunn M src/plugins/fts/fts-storage.c 2010-09-01 20:33:20 +0100 Timo Sirainen (f1b2c5701) fts: Removed float calculations from "Indexed n% of the mailbox" message. M src/plugins/fts/fts-storage.c 2010-09-01 18:44:32 +0100 Timo Sirainen (705822798) doveadm: Support accessing mailboxes in non-private namespaces. The default is still the same as "*", and wildcards won't cross namespace boundaries so unless the namespace prefix is explicitly used non-private namespaces are still invisible. M src/doveadm/doveadm-mail-list-iter.c 2010-09-01 17:52:33 +0100 Timo Sirainen (fc5767738) imap: Don't hang if client sends IDLE + DONE pipelined. M src/imap/cmd-idle.c 2010-09-01 17:48:04 +0100 Timo Sirainen (969107800) imap: Make sure we don't crash when client disconnects during IDLE with lots of changes. M src/imap/cmd-idle.c 2010-09-01 17:37:31 +0100 Timo Sirainen (4a06dd795) imap: Fixed a crash with tb-extra-mailbox-sep workaround and selecting "ns-prefix/" box. M src/imap/imap-commands-util.c 2010-09-01 17:32:37 +0100 Timo Sirainen (ef652c941) lib-storage: If mailbox deletion fails, mark the index back as undeleted. M src/lib-storage/mail-storage.c 2010-09-01 17:10:14 +0100 Timo Sirainen (b7651d283) i_stream_next_line(): Fix for the previous optimization. M src/lib/istream.c 2010-09-01 16:55:14 +0100 Timo Sirainen (ee4d09cff) master: Make sure base_dir has at least 0755 permissions. M src/master/master-settings.c 2010-09-01 16:40:53 +0100 Timo Sirainen (fed9ba318) imap: If selecting a mailbox fails, close the already selected mailbox. M src/imap/cmd-select.c 2010-09-01 16:22:20 +0100 Timo Sirainen (8ad2759cf) istream-crlf optimization. Based on patch by Len7hir M src/lib/istream-crlf.c 2010-09-01 16:22:00 +0100 Timo Sirainen (7b42d6cbe) istream_next_line() optimization. Based on patch by Len7hir M src/lib/istream.c 2010-09-01 16:21:30 +0100 Timo Sirainen (1af608089) lib-mail: Optimized message parser code. Based on patch by Len7hir M src/lib-mail/message-parser.c 2010-08-31 20:04:24 +0100 Timo Sirainen (43fb7851f) auth: Give better EACCES error if we can't connect to auth-worker. M src/auth/auth-worker-server.c 2010-08-31 20:04:10 +0100 Timo Sirainen (0471a9dde) access_get_error(): Fixed to give better error messages with relative paths. M src/lib/eacces-error.c 2010-08-31 19:33:21 +0100 Timo Sirainen (661614ab9) configure: vpopmail is broken, fail configure if --with-vpopmail is used. M configure.in 2010-08-31 17:06:20 +0100 Timo Sirainen (8a7a946ae) Fixed setgid() failure error message. Based on patch by Clint Adams M src/lib/restrict-access.c 2010-08-26 20:06:49 +0100 Timo Sirainen (66fbbac23) doveconf: When logging an obsolete warning, log a note about using doveconf. M src/config/old-set-parser.c 2010-08-24 18:10:31 +0100 Timo Sirainen (7e93a7bd4) Added signature for changeset 8baa8ccb4021 M .hgsigs 2010-08-24 18:10:27 +0100 Timo Sirainen (b86c22983) Added tag 2.0.1 for changeset 8baa8ccb4021 M .hgtags 2010-08-24 18:10:27 +0100 Timo Sirainen (b4dc8d930) Released v2.0.1. M NEWS M configure.in 2010-08-24 18:07:48 +0100 Timo Sirainen (6c073ea23) dbox: Create dbox temp files with ".temp." prefix, not "temp." This makes it consistent with the rest of the created temp files and also gets any stale temp files deleted. M src/lib-storage/index/dbox-common/dbox-storage.h 2010-08-24 17:18:01 +0100 Timo Sirainen (7f472e15b) lda: Don't fail with "mail_uid/mail_gid not set" error when running without -u. M src/lib-storage/mail-storage-service.c 2010-08-24 17:01:27 +0100 Timo Sirainen (b79a09b59) quota: Mark the mailbox deleted before starting to reduce quota. This fixes race conditions with another process modifying the same mailbox at the same time. M src/plugins/quota/quota-storage.c 2010-08-24 17:00:39 +0100 Timo Sirainen (6b0d8106a) lib-storage: Allow mailbox_mark_index_deleted() to be called multiple times within same mailbox alloc. M src/lib-storage/mail-storage-private.h M src/lib-storage/mail-storage.c 2010-08-23 20:15:06 +0100 Timo Sirainen (49215f4b5) fts-solr: Fixes to previous data encoding changes. Patch by Erik Hetzner M src/plugins/fts-solr/fts-backend-solr.c 2010-08-23 19:03:05 +0100 Timo Sirainen (99469474f) Added base64_is_valid_char() M src/lib/base64.c M src/lib/base64.h 2010-08-23 18:43:17 +0100 Timo Sirainen (96bd662dd) liblib: Don't segfault if write is attempted beyond non-dynamic buffer's bounds. M src/lib/buffer.c 2010-08-23 16:24:22 +0100 Timo Sirainen (17bb9b0a1) dsync: Assert-crashfix with remote dsyncing. M src/dsync/dsync-proxy-client.c 2010-08-23 16:09:11 +0100 Timo Sirainen (cc4d0d30f) auth: Crashfix when aborting auth request doing async passdb/userdb lookup. M src/auth/auth-request-handler.c 2010-08-23 15:59:22 +0100 Timo Sirainen (607f0cc73) auth: Abort any pending SQL requests earler to avoid crashes. M src/auth/db-sql.c 2010-08-23 15:58:53 +0100 Timo Sirainen (9349a0aff) lib-sql: sql_disconnect() now aborts all pending requests. M src/lib-sql/driver-pgsql.c M src/lib-sql/driver-sqlpool.c M src/lib-sql/sql-api.h 2010-08-23 15:31:37 +0100 Timo Sirainen (2cbe7654b) imap: Fixed parsing SELECT QRESYNC parameters M src/imap/cmd-select.c 2010-08-23 15:28:55 +0100 Timo Sirainen (46bcd670b) imap: Fail if QRESYNC seqset parameters use '*' M src/imap/cmd-select.c 2010-08-23 15:28:35 +0100 Timo Sirainen (e12ccf1e6) lib-imap: Added imap_seq_set_nostar_parse() M src/lib-imap/imap-seqset.c M src/lib-imap/imap-seqset.h 2010-08-23 15:12:56 +0100 Timo Sirainen (05c64024e) man: Updated dsync man page. M doc/man/dsync.1.in 2010-08-23 14:35:50 +0100 Timo Sirainen (25ef92718) dsync: If worker fails, abort earlier. M src/dsync/dsync-brain.c 2010-08-23 14:30:08 +0100 Timo Sirainen (e4e9e0dcb) dsync: Execute remote dsync binary before dropping privileges. M src/dsync/dsync.c 2010-08-23 00:26:39 +0100 Timo Sirainen (b24e8c89e) configure: --with-ssl=gnutls gives error now immediately M configure.in 2010-08-20 20:38:26 +0100 Timo Sirainen (6f60491fc) fts-solr: Replace characters not valid for XML with replacement char. M src/plugins/fts-solr/fts-backend-solr.c 2010-08-20 20:37:31 +0100 Timo Sirainen (f2de6ecc4) Added a global utf8_replacement_char variable. M src/lib/unichar.c M src/lib/unichar.h 2010-08-20 20:12:51 +0100 Timo Sirainen (b955a1c1b) master: Fixed log_path=/dev/stderr M src/master/service-process.c 2010-08-20 19:49:42 +0100 Timo Sirainen (13295d1c3) lib-storage: Don't complain about missing UID/GID when running as root is allowed (standalone). M src/lib-storage/mail-storage-service.c 2010-08-20 19:45:01 +0100 Timo Sirainen (0139fcb57) lib-storage: Give better error message if user is missing UID/GID M src/lib-storage/mail-storage-service.c 2010-08-20 18:28:18 +0100 Timo Sirainen (bbcca9a28) example-config: Added example dict service M doc/example-config/conf.d/10-master.conf 2010-08-20 18:22:39 +0100 Timo Sirainen (cab0827de) Reverted previous commit. It's a stupid feature: mail_access_groups already exists. M src/imap/imap-settings.c M src/lmtp/lmtp-settings.c M src/master/master-settings.c M src/master/master-settings.h M src/pop3/pop3-settings.c 2010-08-20 18:19:50 +0100 Timo Sirainen (8b55be744) Added default_mail_extra_groups setting. imap/pop3/lmtp services' extra_groups defaults to it. For now this default is empty to make sure existing installations don't break. M src/imap/imap-settings.c M src/lmtp/lmtp-settings.c M src/master/master-settings.c M src/master/master-settings.h M src/pop3/pop3-settings.c 2010-08-20 18:19:04 +0100 Timo Sirainen (1503ac761) lib-storage: Preserve permission settings in master's service blocks. Most importantly preserve extra_groups setting. M src/lib-storage/mail-storage-service.c 2010-08-20 18:18:01 +0100 Timo Sirainen (4b2a1030f) master: Set RESTRICT_* environment even when drop_priv_before_exec=yes Otherwise the executed process could still try to drop some of the privileges (groups). M src/master/service-process.c 2010-08-20 16:14:19 +0100 Timo Sirainen (90257f60a) lib-storage: Log namespace location with mail_debug=yes M src/lib-storage/mail-namespace.c 2010-08-19 18:44:20 +0100 Timo Sirainen (85646d8e6) doc: Updated tls_cert/key_file comment in dovecot-ldap.conf.ext M doc/example-config/dovecot-ldap.conf.ext 2010-08-19 18:36:09 +0100 Timo Sirainen (905951e44) imap: Don't crash with QRESYNC SELECT specifying sequences larger than mailbox's message count. M src/imap/imap-fetch.c 2010-08-19 18:28:20 +0100 Timo Sirainen (dae0fbe10) pop3: Show APOP challenge only when APOP auth mechanism is enabled. M src/pop3-login/client.c 2010-08-19 18:19:53 +0100 Timo Sirainen (835ba470f) lib-master: Fixed accepting FIFO connections with BSDI. M src/lib-master/master-service.c 2010-08-19 18:06:22 +0100 Timo Sirainen (a0044466c) UTF-8 string validity was still checked incorrectly. M src/lib/unichar.c M src/lib/unichar.h 2010-08-18 16:24:13 +0100 Timo Sirainen (6bb8c6900) lib-index: Give a clearer error message for syscall failing with EFBIG. M src/lib-index/mail-index.c 2010-08-18 16:21:04 +0100 Timo Sirainen (613dee739) lib-index: Put all syscall error logging through one function. M src/lib-index/mail-index.c 2010-08-18 15:17:40 +0100 Timo Sirainen (6b4c4d92d) UTF-8 string validity was checked incorrectly. M src/lib/unichar.c 2010-08-17 19:16:03 +0100 Timo Sirainen (750c79d1f) auth: Pass requested_login_user to auth worker processes. M src/auth/auth-request.c 2010-08-17 18:10:16 +0100 Timo Sirainen (873286c86) auth: Added more master user login debugging. M src/auth/auth-request.c 2010-08-16 20:35:26 +0100 Timo Sirainen (f3ef6fdc7) eaccess_error_get(): If UID/GID doesn't have name, show it as M src/lib/eacces-error.c 2010-08-16 16:49:29 +0100 Timo Sirainen (89025037c) master: Give better error messages for unknown users/groups. M src/lib-master/service-settings.h M src/master/master-settings.c M src/master/service.c 2010-08-16 16:07:01 +0100 Timo Sirainen (b1f6c5bde) configure: v2.0.0 is no longer UNSTABLE development branch. M configure.in 2010-08-16 15:35:16 +0100 Timo Sirainen (1f1ce1097) Added signature for changeset d0d3ba81d205 M .hgsigs 2010-08-16 15:35:13 +0100 Timo Sirainen (d009ccd4f) Added tag 2.0.0 for changeset d0d3ba81d205 M .hgtags 2010-08-16 15:35:11 +0100 Timo Sirainen (5d5c4f2bf) Released v2.0.0. M NEWS M configure.in