2019-09-30 10:33:25 +0300 Aki Tuomi (878d28c) Update NEWS for 2.3.8 M NEWS 2019-10-05 15:46:47 +0300 Timo Sirainen (a73bedb) lib-index: Fix checking if log file can be rotated This fixes a bug caused by 883a3022992d0f832f0aff21572caeb7c63b7668 where dovecot.index.log file wasn't rotated as often as it was supposed to be. It also could have caused dovecot.index to be rewritten much more often than it was supposed to be. The buggy commit was correct that the tail_offset wasn't updated previously to the dovecot.index.log file after changes. However, I didn't realize that the tail_offset was internally still updated and required by this rotation check to work correctly. The fix works by relaxing the tail_offset==head_offset requirement for rotation. It's enough that all the changes are synced, which can be checked from mail_index_sync_ctx.fully_synced. Any changes after tail_offset are then supposed to be external transactions, which aren't synced anyway, so rotation is allowed. M src/lib-index/mail-index-sync.c M src/lib-index/mail-index-write.c 2019-10-01 12:15:51 +0300 Timo Sirainen (d6d8503) lib-storage: Simplify mail_save_context.keywords reference counting This change also makes it possible for plugins to change the keywords without leaking memory. M src/lib-storage/index/index-storage.c M src/lib-storage/mail-copy.c M src/lib-storage/mail-storage.c 2019-09-04 13:51:26 +0300 Timo Sirainen (d97c9ef) push-notification: Add accessor functions to global variables These are enough for the current plugin. Maybe others will be needed in the future. M src/plugins/push-notification/push-notification-event-messagenew.c 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 2019-03-16 16:24:59 +0100 Stephan Bosch (45100c0) lib-smtp: smtp-server-recipient - Add smtp_server_recipient_get_reply() and use it. M src/lib-smtp/smtp-server-recipient.c M src/lib-smtp/smtp-server.h 2019-03-16 14:41:37 +0100 Stephan Bosch (fadab5d) lib-smtp: smtp-server-recipient - Add hook for the submission of a DATA/BDAT/BURL command reply. M src/lib-smtp/smtp-server-cmd-data.c M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-recipient.c M src/lib-smtp/smtp-server.h 2019-03-16 15:26:58 +0100 Stephan Bosch (b6fdd6d) lib-smtp: smtp-server-cmd-data - Call smtp_server_transaction_last_data() earlier for the DATA command. Makes sure rcpt->cmd is set before replies are being submitted. M src/lib-smtp/smtp-server-cmd-data.c 2019-03-16 15:20:22 +0100 Stephan Bosch (26d778b) lib-mstp: smtp-server-recipient - Make smtp_server_recipient_call_hooks() private rather than static. M src/lib-smtp/smtp-server-private.h M src/lib-smtp/smtp-server-recipient.c 2019-03-16 15:14:59 +0100 Stephan Bosch (d445ba9) lib-smtp: smtp-server-transaction - Allow calling smtp_server_transaction_last_data() more than once. M src/lib-smtp/smtp-server-transaction.c 2019-03-16 15:13:03 +0100 Stephan Bosch (39778bb) lib-smtp: smtp-server-transaction - Allow calling smtp_server_transaction_last_data() when all recipients failed. M src/lib-smtp/smtp-server-transaction.c 2019-03-16 15:03:39 +0100 Stephan Bosch (de7d5d1) lib-smtp: smtp-server-command - Add hook for the submission of individual replies. M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server.h 2019-03-16 14:47:41 +0100 Stephan Bosch (b9debf6) lib-smtp: smtp-server-command - Make removal of hook optional for smtp_server_command_call_hooks(). M src/lib-smtp/smtp-server-command.c M src/lib-smtp/smtp-server-private.h 2019-03-15 01:50:01 +0100 Stephan Bosch (510ae29) lib-smtp: smtp-server-recipient - Add smtp_server_recipient_reply_forward(). This acts as a wrapper around smtp_server_reply_index_forward(). M src/lib-smtp/smtp-server-recipient.c M src/lib-smtp/smtp-server.h 2019-03-15 01:38:29 +0100 Stephan Bosch (82cb87f) lib-smtp: smtp-server-recipient - Add smtp_server_recipient_is_replied(). This is a convenience wrapper around smtp_server_command_is_replied(). M src/lib-smtp/smtp-server-recipient.c M src/lib-smtp/smtp-server.h 2019-03-14 22:31:09 +0100 Stephan Bosch (f5d680d) lib-smtp: smtp-server-recipient - Add smtp_server_recipient_reply(). This is a convenience wrapper around smtp_server_reply_index(). This implicitly adds the prefix to the reply (when it is not an RCPT success reply). M src/lib-smtp/smtp-server-recipient.c M src/lib-smtp/smtp-server.h 2019-03-19 12:37:53 +0100 Stephan Bosch (36cb9ac) lib-smtp: smtp-server-cmd-rcpt - Add smtp_server_cmd_is_rcpt(). M src/lib-smtp/smtp-server-cmd-rcpt.c M src/lib-smtp/smtp-server.h 2019-03-14 18:57:54 +0200 Timo Sirainen (5fb4af0) lmtp: Add mail_user_settings to struct client M src/lmtp/lmtp-client.c M src/lmtp/lmtp-client.h M src/lmtp/lmtp-settings.c M src/lmtp/lmtp-settings.h 2019-03-14 18:58:14 +0200 Timo Sirainen (0428a2f) lib-storage: Add mailbox_keywords_merge() M src/lib-storage/mail-storage.h M src/lib-storage/mailbox-keywords.c 2019-02-28 15:10:59 +0200 Timo Sirainen (3bd70fd) lib-storage: Add mailbox_search_mail_detach() This allows keeping the struct mail open even after the mail_search_context that created it is freed. M src/lib-storage/mail-storage.c M src/lib-storage/mail-storage.h 2019-02-28 15:03:22 +0200 Timo Sirainen (f42d09a) lib-storage: Move tracking mails to mail_search_context from index-specific code This makes the next commit much easier to implement. M src/lib-storage/index/index-search-private.h M src/lib-storage/index/index-search.c M src/lib-storage/mail-storage-private.h 2019-02-28 15:08:38 +0200 Timo Sirainen (73bbd3e) lib-storage: Move index_mail.search_mail to mail_private struct 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-search.c M src/lib-storage/mail-storage-private.h M src/lib-storage/mail.c 2019-03-18 15:34:10 +0200 Timo Sirainen (e4609a9) lib-mail: istream-header-filter: Fix HEADER_FILTER_ADD_MISSING_EOH with callback If mail already had EOH and callback returned matched=TRUE in the EOH callback (e.g. adding more headers), the callback was called a second time for the EOH. Currently there doesn't seem to be any existing code that was affected by this bug. M src/lib-mail/istream-header-filter.c M src/lib-mail/test-istream-header-filter.c 2019-07-02 19:33:59 +0300 Aki Tuomi (0561696) index: Pass index sync flags to index view sync for pvt When recovering from inconsistent view, this needs to passed for pvt indexes too. Fixes Error: dovecot.index.pvt reset, view is now inconsistent 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 2019-09-17 19:52:25 +0300 Timo Sirainen (f0c8e43) lib-index: Add index alloc cache timeout to root ioloop The cache is a global one and the timeout shouldn't trigger until the global root ioloop is reached. This fixes a timeout leak / crash when index was opened in an inner ioloop. M src/lib-index/mail-index-alloc-cache.c 2019-09-17 19:52:14 +0300 Timo Sirainen (cbc0c22) lib: Add io_loop_get_root() M src/lib/ioloop.c M src/lib/ioloop.h 2019-09-04 17:13:15 +0300 Timo Sirainen (f506663) lib-auth: Fix auth_client_is_connected() to work after disconnection M src/lib-auth/auth-client.c 2019-09-03 11:58:18 +0300 Aki Tuomi (5caac33) lib-dcrypt: Add static keyword to ECDSA_SIG_get0 Otherwise compilers complain as it's not declared anywhere. M src/lib-dcrypt/dcrypt-openssl.c 2019-09-03 11:57:51 +0300 Aki Tuomi (334c2ae) lib-dcrypt: Free EVP_MD_CTX in dcrypt_openssl_digest M src/lib-dcrypt/dcrypt-openssl.c 2019-09-03 11:57:17 +0300 Aki Tuomi (85b018e) lib-dcrypt: Free existing BIGNUMs in setters M src/lib-dcrypt/dcrypt-openssl.c 2019-09-03 09:10:13 +0300 Aki Tuomi (05a0cd8) lib-dcrypt: Add ECDSA_SIG_set0 and ECDSA_SIG_get0 when missing These are needed for low-level operations M src/lib-dcrypt/dcrypt-openssl.c 2019-09-03 09:06:29 +0300 Aki Tuomi (b536585) m4: Check for ECDSA_SIG_set0 and ECDSA_SIG_get0 These are not present in older libssl M m4/ssl.m4 2019-09-02 14:17:50 +0300 Aki Tuomi (975a7a2) lib-dcrypt: Ignore padding when decoding base64url M src/lib-dcrypt/dcrypt-openssl.c 2019-09-02 12:54:12 +0300 Aki Tuomi (1db75a0) dcrypt: Add signature format Needed to implement RFC7515 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 2019-08-29 17:09:55 +0300 Aki Tuomi (ef5de58) lib-dcrypt: Only use compressed points with dovecot internal formats M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/test-crypto.c 2019-08-29 16:54:27 +0300 Aki Tuomi (fecb1b7) lib-dcrypt: Implement dcrypt_ecdh_derive_secret for OpenSSL M src/lib-dcrypt/dcrypt-openssl.c 2019-08-29 16:43:45 +0300 Aki Tuomi (62a1dd3) lib-dcrypt: Move shared secret derivation to dcrypt_openssl_echd_derive_secret Makes it possible to expose it on next commit. M src/lib-dcrypt/dcrypt-openssl.c 2019-08-29 16:52:51 +0300 Aki Tuomi (2e82769) lib-dcrypt: Add API for dcrypt_ecdh_derive_secret M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h 2019-08-29 12:56:21 +0300 Aki Tuomi (d597acf) lib-dcrypt: Return value from RSA_set0_crt_params M src/lib-dcrypt/dcrypt-openssl.c 2019-08-29 12:52:46 +0300 Aki Tuomi (24d8493) lib-dcrypt: Fix key format in raw & jwk keys It needs to be point compressed with named curve M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/test-crypto.c 2019-08-29 12:25:07 +0300 Aki Tuomi (b147bfa) lib-dcrypt: Use correct variables names in RSA_set0_key Broken in 79e9ccdc4a536f3881ec2b9304020514d1f92590 M src/lib-dcrypt/dcrypt-openssl.c 2019-08-29 12:24:42 +0300 Aki Tuomi (3799120) lib-dcrypt: Use ERR_R_PASSED_NULL_PARAMETER It's the correct error and exists for older OpenSSL Added in 79e9ccdc4a536f3881ec2b9304020514d1f92590 M src/lib-dcrypt/dcrypt-openssl.c 2019-08-27 10:09:30 +0300 Aki Tuomi (e826c16) lib-dcrypt: Fix memory leak in raw key test M src/lib-dcrypt/test-crypto.c 2017-01-23 14:56:54 +0200 Aki Tuomi (fdc7f5e) lib-dcrypt: Add unit tests for changes M src/lib-dcrypt/test-crypto.c 2017-01-23 14:56:38 +0200 Aki Tuomi (dfddb5f) dcrypt-openssl: Implement signature API for OpenSSL M src/lib-dcrypt/dcrypt-openssl.c 2017-01-23 17:40:01 +0200 Aki Tuomi (b5ae681) lib-dcrypt: Add padding parameter for RSA encrypt/decrypt 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/istream-decrypt.c M src/lib-dcrypt/ostream-encrypt.c 2017-01-23 14:56:27 +0200 Aki Tuomi (5d17528) lib-dcrypt: Add signature API M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h 2019-08-23 12:34:54 +0300 Aki Tuomi (49ae6d3) lib-dcrypt: Unit test for JWK keys M src/lib-dcrypt/test-crypto.c 2019-08-21 16:16:22 +0300 Aki Tuomi (239c0ef) lib-dcrypt: Add JWK key format support M src/doveadm/doveadm-dump-dcrypt-key.c 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 2019-08-23 11:51:45 +0300 Aki Tuomi (6a92622) lib-dcrypt: Implement usage and key ID accessors for openssl M src/lib-dcrypt/dcrypt-openssl.c 2019-08-23 10:42:09 +0300 Aki Tuomi (6f5d0a2) lib-dcrypt: Add key usage and id These can be used for e.g. JWK 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 2019-08-23 11:51:21 +0300 Aki Tuomi (f017389) lib-dcrypt: Add key id and usage fields to dcrypt keys Simplifies next change M src/lib-dcrypt/dcrypt-openssl.c M src/lib-dcrypt/dcrypt.h 2019-08-23 12:27:23 +0300 Aki Tuomi (3374a5a) lib-dcrypt: Make key unref with NULL no-op M src/lib-dcrypt/dcrypt-openssl.c 2019-08-22 14:28:17 +0300 Aki Tuomi (83616b2) doveadm: Do not call dcrypt_deinitialize It can break openssl M src/doveadm/doveadm-dump-dcrypt-file.c M src/doveadm/doveadm-dump-dcrypt-key.c 2019-08-22 13:58:52 +0300 Aki Tuomi (6ecf538) lib-dcrypt: Clarify when dcrypt_deinitialize is to be used It should never be called if it's going to be used later on. M src/lib-dcrypt/dcrypt.h 2019-08-21 16:15:57 +0300 Aki Tuomi (b7146c1) m4: Check if some RSA key manipulators are present Needed for JWK M m4/ssl.m4 2019-08-22 18:43:11 +0300 Aki Tuomi (7f3381c) lib: hmac - Add hkdf for key derivation M src/lib/hmac.c M src/lib/hmac.h M src/lib/test-hmac.c 2019-08-25 20:55:24 +0300 Aki Tuomi (ef0a57a) lib-dcrypt: Use BN_secure_new when available for secrets M src/lib-dcrypt/dcrypt-openssl.c 2019-08-25 20:54:12 +0300 Aki Tuomi (4f5dca1) m4: Check for BN_secure_new M m4/ssl.m4 2019-08-21 13:26:29 +0300 Aki Tuomi (519f70a) lib-dcrypt: Implement dcrypt_key_get_curve_public using openssl M src/lib-dcrypt/dcrypt-openssl.c 2019-08-21 13:25:33 +0300 Aki Tuomi (203dac8) lib-dcrypt: Add dcrypt_key_get_curve_public Returns name of the curve of public key M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h 2019-08-19 22:40:02 +0300 Aki Tuomi (13b62e8) lib-dcrypt: Add tests for raw keys M src/lib-dcrypt/test-crypto.c 2019-08-19 14:39:05 +0300 Aki Tuomi (54f095d) lib-dcrypt: Implement raw key API using OpenSSL M src/lib-dcrypt/dcrypt-openssl.c 2019-08-19 14:20:47 +0300 Aki Tuomi (e397f8d) lib-dcrypt: Add API for dealing with raw keys M src/lib-dcrypt/dcrypt-private.h M src/lib-dcrypt/dcrypt.c M src/lib-dcrypt/dcrypt.h 2019-08-23 19:39:16 +0300 Aki Tuomi (ef9a1cd) lib-dcrypt: Fix i2d_ASN1_OBJECT usage i2d_ASN1_OBJECT tells how much memory we need. M src/lib-dcrypt/dcrypt-openssl.c 2019-08-23 13:48:03 +0300 Aki Tuomi (b4f08e0) lib-dcrypt: Symbolize maximum OID length M src/lib-dcrypt/dcrypt-openssl.c 2019-08-23 13:46:33 +0300 Aki Tuomi (8be6134) lib-dcrypt: Use len instead of ln M src/lib-dcrypt/dcrypt-openssl.c 2019-08-19 12:11:59 +0300 Timo Sirainen (d503115) lib-http: Make http_client_request_delay_from_response() public M src/lib-http/http-client-private.h M src/lib-http/http-client.h 2019-08-16 22:07:51 +0300 Timo Sirainen (8cdf7b2) push-notification: Allow easy access to Message-ID header M src/plugins/push-notification/push-notification-driver-lua.c 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-messagenew.c M src/plugins/push-notification/push-notification-event-messagenew.h 2019-03-12 23:23:35 +0100 Stephan Bosch (1f21fe0) lib-lda: mail-deliver - Emit events at start and finish of delivery. M src/lib-lda/mail-deliver.c 2019-03-10 13:08:34 +0100 Stephan Bosch (9cfd9d5) lib-lda: Replace i_warning() with e_warning(). M src/lib-lda/mail-deliver.c 2019-03-10 13:01:08 +0100 Stephan Bosch (3cfa44d) lib-lda: Replace i_info() with e_info(). M src/lib-lda/mail-deliver.c 2019-03-10 12:58:03 +0100 Stephan Bosch (7de2c8d) lib-lda: Replace i_error() with e_error(). M src/lib-lda/mail-deliver.c 2019-03-10 10:53:51 +0100 Stephan Bosch (caf98c4) lib-lda: mail-deliver - Add message fields to the deliver event. M src/lib-lda/mail-deliver.c 2019-03-10 12:13:10 +0100 Stephan Bosch (5c3a1ad) lib-lda: mail-deliver - Rename mail_deliver_cache to mail_deliver_fields. Also make the fields public. M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h 2019-03-04 01:15:47 +0100 Stephan Bosch (0c4ddd2) lda: Use LDA event as mail_*user's parent event. M src/lda/main.c 2019-03-04 01:12:55 +0100 Stephan Bosch (4cddcba) lda: Add support for event API. M src/lda/main.c 2019-03-04 01:08:21 +0100 Stephan Bosch (ed3bd62) lda: Assign envelope fields in mail deliver context right away. M src/lda/main.c 2019-03-04 00:30:27 +0100 Stephan Bosch (d7ccac0) lmtp: lmtp-local - Use recipient event for mail delivery. M src/lmtp/lmtp-local.c 2019-03-04 00:28:42 +0100 Stephan Bosch (3b73c80) lib-lda: mail-deliver - Add support for event API. M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h 2019-03-27 01:25:57 +0100 Stephan Bosch (3dc59dc) lib-lda: Initialize/deinitialize mail_deliver_context in separate functions. This changes the allocation of parsed SMTP addresses to initially use a datastack pool rather than the mail_deliver context pool. This is necessary because the context is created a bit later. Upon mail_deliver_init(), the addresses are moved to the context pool. M src/lda/main.c M src/lib-lda/mail-deliver.c M src/lib-lda/mail-deliver.h M src/lmtp/lmtp-local.c 2019-03-31 16:14:06 +0200 Stephan Bosch (a4521cd) lda: Move mail_deliver() invocation to a separate function. M src/lda/main.c 2019-03-04 01:19:05 +0100 Stephan Bosch (7162a1b) lib-lda: mail-deliver - Split the mail_deliver() function to perform post-delivery cleanup in one place. M src/lib-lda/mail-deliver.c 2019-03-15 00:14:05 +0100 Stephan Bosch (e4d76ae) lib: str - Add str_replace(). M src/lib/str.h 2019-03-14 23:55:00 +0100 Stephan Bosch (c4b8b26) lib: buffer - Add buffer_replace(). M src/lib/buffer.c M src/lib/buffer.h M src/lib/test-buffer.c 2019-03-18 00:52:37 +0100 Stephan Bosch (3a3e4e8) lib: buffer - Improve header comment for buffer_insert() and buffer_delete(). M src/lib/buffer.h 2019-09-05 13:06:28 +0200 Stephan Bosch (cf8b5f2) lib: test-istream-base64-decoder - Make random test also test CRLF vs LF line endings at random. M src/lib/test-istream-base64-decoder.c 2019-09-05 11:50:04 +0200 Stephan Bosch (474e981) lib: test-istream-base64-decoder - Add explicit test cases for decoding the empty string. M src/lib/test-istream-base64-decoder.c 2019-09-05 11:45:02 +0200 Stephan Bosch (642e233) lib: test-base64 - Add explicit test cases for encoding/decoding the empty string. M src/lib/test-base64.c 2019-09-05 02:31:58 +0200 Stephan Bosch (a288e92) lib: base64 - Add assertion preventing calling base64_encode_more() after base64_encode_finish(). M src/lib/base64.c M src/lib/base64.h 2019-09-05 01:13:46 +0200 Stephan Bosch (b7e1b34) lib: test-istream-base64-decoder - Reduce minimum random stream buffer size to 1. M src/lib/test-istream-base64-decoder.c 2019-09-05 01:11:53 +0200 Stephan Bosch (b5d0bad) lib: test-istream-base64-decoder - Abort random test at first error and print parameters. M src/lib/test-istream-base64-decoder.c 2019-09-04 23:40:25 +0200 Stephan Bosch (7822274) lib: test-istream-base64-encoder - Fix test names. M src/lib/test-istream-base64-encoder.c 2019-09-04 23:37:11 +0200 Stephan Bosch (a1b0b14) lib: test-base64 - Abort random test at first error and print parameters. M src/lib/test-base64.c 2019-09-04 23:16:24 +0200 Stephan Bosch (34304b6) lib: test-base64 - Test Base64 encoding with maximum line length of 1. This corner case is a useful test for problems in the line encoding. M src/lib/test-base64.c 2019-09-04 22:52:00 +0200 Stephan Bosch (983f342) lib: test-base64 - Better check output of incrementally encoded random Base64. Check whether it is equal to the same data encoded as a single block and whether the length matches the base64_get_full_encoded_size() output. M src/lib/test-base64.c 2019-09-04 22:44:03 +0200 Stephan Bosch (78186e2) lib: base64 - Fix incremental/streaming Base64 encoding with CRLF line endings. Line lengths became inconsistent due to a design error. The encoding itself remained valid. The linefeed is no longer appended to the write buffer when the destination buffer is full. Rather, a flag is set that makes the encoder emit the linefeed immediately next time the encoder is called with more buffer space. Appending it to the write buffer was wrong; it in fact needs to be prepended and in that case a flag is more efficient. M src/lib/base64.c M src/lib/base64.h 2019-09-05 01:17:55 +0200 Stephan Bosch (dd3d49e) lib: base64 - Restructure base64_encode_get_size(). M src/lib/base64.c 2019-09-04 22:23:25 +0200 Stephan Bosch (11ad516) lib: base64 - Use unsigned size type for base64_get_full_encoded_size(). Makes more sense. M src/lib/base64.c M src/lib/base64.h 2019-09-04 18:34:30 +0200 Stephan Bosch (8f566ce) lib: base64 - Truly fix dest buffer assertion in base64_decode_more(). Previous fix was inadequate in the presence of padding at the end of input. M src/lib/base64.c M src/lib/test-base64.c 2019-09-05 14:21:53 +0200 Stephan Bosch (eb659dd) lib: test-istream-base64-decoder - Use unsigned int for bit field in random test. M src/lib/test-istream-base64-decoder.c 2019-09-04 12:33:08 +0200 Stephan Bosch (692d678) lib: base64 - Fix dest buffer assertion in base64_decode_more(). The assertion is supposed to trigger when the encoder hits the buffer size limit unexpectedly (src_pos_r==NULL means that all should be encoded at once). It triggered erroneously when the destination buffer had the exact size needed for the encoded data. M src/lib/base64.c 2019-09-03 21:45:35 +0200 Stephan Bosch (99b6719) lib: test-istream-base64-decoder - Add extensive random base64 stream I/O unit test. M src/lib/test-istream-base64-decoder.c 2019-09-03 21:44:55 +0200 Stephan Bosch (d73e630) lib: istream-base64-encoder - Fix handling of error, EOF and stream buffer overflow conditions. M src/lib/istream-base64-encoder.c 2019-09-03 21:43:31 +0200 Stephan Bosch (1f73492) lib: istream-base64-decoder - Fix handling of error, EOF and stream buffer overflow conditions. M src/lib/istream-base64-decoder.c 2019-09-03 18:37:57 +0200 Stephan Bosch (973cbc5) lib: base64 - Restructure encoder to always fill the output buffer as much as possible. This is not strictly required, but makes the encoder easier to use in streams and less bug-prone in incremental encoding applications in general. M src/lib/base64.c M src/lib/base64.h 2019-09-03 18:15:57 +0200 Stephan Bosch (ec9e358) lib: base64 - Allow encoding line endings one octet at a time. M src/lib/base64.c M src/lib/base64.h 2019-09-03 21:10:55 +0200 Stephan Bosch (41d3d67) lib: base64 - Add more w_buf_len assertions to encoder. M src/lib/base64.c 2019-09-03 21:04:20 +0200 Stephan Bosch (424a0c6) lib: base64 - Use sizeof() for determining the size of the encoder w_buf. M src/lib/base64.c 2019-09-03 12:22:16 +0200 Stephan Bosch (82f8859) lib: base64 - Fix base64_get_full_encoded_size() for size 0. M src/lib/base64.c 2019-09-02 22:48:30 +0200 Stephan Bosch (2f40bd4) lib: istream-base64-decoder - Use i_stream_try_alloc() properly. M src/lib/istream-base64-decoder.c 2019-09-02 21:56:37 +0200 Stephan Bosch (befb706) lib: istream-base64-encoder - Use i_stream_try_alloc() properly. M src/lib/istream-base64-encoder.c 2019-09-03 14:38:17 +0200 Markus Valentin (cdfa3ad) imap: previews/snippets requested with lazy update the caching decision If lazy is true set the lookup_abort to NOT_IN_CACHE_START_CACHING which results in the snippet field becoming wanted for caching. M src/imap/imap-fetch-body.c 2019-09-03 14:33:03 +0200 Markus Valentin (bfbc28e) lib-storage: change caching decision for lazy requests in cache lookup In case lookup_abort is set to NOT_IN_CACHE_START_CACHING update the cacheing decision for the requested field. M src/lib-storage/index/index-mail.c 2019-09-03 14:30:15 +0200 Markus Valentin (f3ca745) lib-storage: introduce MAIL_LOOKUP_ABORT_NOT_IN_CACHE_START_CACHING In some cases we would like to mark an field as to be cached but still don't fetch it now. For this occasions this change introduces a new enum value for mail_lookup_abort which allows to implement such a behaviour. M src/lib-storage/index/cydir/cydir-mail.c M src/lib-storage/index/index-mail-headers.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