History log of /dovecot/src/lib-storage/index/index-mail.h
Revision Date Author Comments Expand
2c4349f25ae850ffff0543bdbbbd7806b9af3c80 19-Feb-2018 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-storage: Make index_mail_want_cache() global

87490012895b4f371635ded00add04c9107dcfef 18-Sep-2017 Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>

lib-storage: convert index to use container_of

b2723d68898e4a6a6e6ba2a06926dcaa1911daf5 24-Apr-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-storage: Add index_mail_get_cached_body[structure]() This just moves the code to these functions without changing any of the logic.

b674bd911aaab7e8b1a77c106a0b5bccb603439f 30-Jan-2017 Stephan Bosch <stephan.bosch@dovecot.fi>

lib-mail: message-part-data: Renamed struct message_part_envelope_data to message_part_envelope.

424633d1a1e22139a5ab9345f807a89d0792ead3 30-Jan-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-storage: Add index_mail_get_vsize_extension()

134987bc3b685d7ec71c04e9337f7125cff0698f 30-Jan-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

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.

ae2bad232435e5f81f37dd4b8ddb631a564d3dc2 16-Jan-2017 Aki Tuomi <aki.tuomi@dovecot.fi>

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.

21aaa6affb9f134112b75b5db737309fc35ef1cf 27-Oct-2016 Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi>

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.

0206dc57f2c04da69599dea5816235cfeb2b897a 13-Aug-2016 Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi>

lib-storage: remove set_cache_corrupted_reason from mail_vfuncs Change set_cache_corrupted signature to what set_cache_corrupted_reason used to be.

02b78558dc03daa2e7da2010b63f247b49936a38 03-Aug-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

Use mail_get_*stream_because() wherever possible.

0dffa25d211be541ee3c953b23566a1a990789df 06-Jun-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

global: unsigned int:1 -> bool:1 perl -i -pe 's/unsigned int ([^,:;]+):1;/bool $1:1;/' **/*.[ch]

/dovecot/src/anvil/anvil-connection.c /dovecot/src/anvil/penalty.c /dovecot/src/auth/auth-client-connection.h /dovecot/src/auth/auth-master-connection.h /dovecot/src/auth/auth-penalty.c /dovecot/src/auth/auth-postfix-connection.c /dovecot/src/auth/auth-request-handler.c /dovecot/src/auth/auth-request.h /dovecot/src/auth/auth-worker-client.c /dovecot/src/auth/auth-worker-server.c /dovecot/src/auth/db-checkpassword.c /dovecot/src/auth/db-passwd-file.h /dovecot/src/auth/db-sql.h /dovecot/src/auth/mech-digest-md5.c /dovecot/src/auth/passdb-pam.c /dovecot/src/auth/userdb-passwd.c /dovecot/src/auth/userdb-sql.c /dovecot/src/auth/userdb-static.c /dovecot/src/config/config-connection.c /dovecot/src/config/config-parser-private.h /dovecot/src/config/doveconf.c /dovecot/src/dict/dict-connection.h /dovecot/src/director/director-connection.c /dovecot/src/director/director-host.h /dovecot/src/director/director.h /dovecot/src/director/doveadm-connection.c /dovecot/src/director/login-connection.c /dovecot/src/director/mail-host.h /dovecot/src/director/user-directory.h /dovecot/src/doveadm/client-connection.h /dovecot/src/doveadm/doveadm-dsync.c /dovecot/src/doveadm/doveadm-mail-index.c /dovecot/src/doveadm/doveadm-mail-mailbox-status.c /dovecot/src/doveadm/doveadm-mail.h /dovecot/src/doveadm/doveadm-print-flow.c /dovecot/src/doveadm/doveadm-print-pager.c /dovecot/src/doveadm/doveadm-print-tab.c /dovecot/src/doveadm/doveadm-print-table.c /dovecot/src/doveadm/doveadm-stats.c /dovecot/src/doveadm/dsync/dsync-brain-private.h /dovecot/src/doveadm/dsync/dsync-ibc-private.h /dovecot/src/doveadm/dsync/dsync-ibc-stream.c /dovecot/src/doveadm/dsync/dsync-mailbox-export.c /dovecot/src/doveadm/dsync/dsync-mailbox-import.c /dovecot/src/doveadm/dsync/dsync-mailbox-tree.h /dovecot/src/doveadm/server-connection.c /dovecot/src/imap-login/imap-login-client.h /dovecot/src/imap-urlauth/imap-urlauth-client.h /dovecot/src/imap-urlauth/imap-urlauth-login.c /dovecot/src/imap-urlauth/imap-urlauth-worker.c /dovecot/src/imap/cmd-append.c /dovecot/src/imap/cmd-idle.c /dovecot/src/imap/cmd-list.c /dovecot/src/imap/cmd-select.c /dovecot/src/imap/cmd-urlfetch.c /dovecot/src/imap/imap-client.h /dovecot/src/imap/imap-fetch-body.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-notify.h /dovecot/src/imap/imap-search.h /dovecot/src/imap/imap-sync.c /dovecot/src/indexer/indexer-client.c /dovecot/src/indexer/indexer-queue.h /dovecot/src/indexer/master-connection.c /dovecot/src/indexer/worker-connection.c /dovecot/src/ipc/ipc-connection.h /dovecot/src/lib-auth/auth-client-private.h /dovecot/src/lib-auth/auth-master.c /dovecot/src/lib-auth/auth-master.h /dovecot/src/lib-auth/auth-server-connection.h /dovecot/src/lib-compression/istream-bzlib.c /dovecot/src/lib-compression/istream-lz4.c /dovecot/src/lib-compression/istream-lzma.c /dovecot/src/lib-compression/istream-zlib.c /dovecot/src/lib-compression/ostream-bzlib.c /dovecot/src/lib-compression/ostream-lzma.c /dovecot/src/lib-compression/ostream-zlib.c /dovecot/src/lib-dict/dict-client.c /dovecot/src/lib-dict/dict-private.h /dovecot/src/lib-dict/dict-sql.c /dovecot/src/lib-fs/fs-api-private.h /dovecot/src/lib-http/http-client-private.h /dovecot/src/lib-http/http-header-parser.c /dovecot/src/lib-http/http-message-parser.h /dovecot/src/lib-http/http-request-parser.c /dovecot/src/lib-http/http-request.h /dovecot/src/lib-http/http-response.h /dovecot/src/lib-http/http-server-private.h /dovecot/src/lib-http/http-transfer-chunked.c /dovecot/src/lib-http/http-url.c /dovecot/src/lib-http/http-url.h /dovecot/src/lib-imap-client/imapc-connection.c /dovecot/src/lib-imap-storage/imap-metadata.c /dovecot/src/lib-imap-storage/imap-msgpart-url.c /dovecot/src/lib-imap-storage/imap-msgpart.c /dovecot/src/lib-imap-urlauth/imap-urlauth-connection.c /dovecot/src/lib-imap-urlauth/imap-urlauth-fetch.c /dovecot/src/lib-imap-urlauth/imap-urlauth-fetch.h /dovecot/src/lib-imap-urlauth/imap-urlauth-private.h /dovecot/src/lib-imap/imap-arg.h /dovecot/src/lib-imap/imap-parser.c /dovecot/src/lib-imap/imap-url.c /dovecot/src/lib-imap/imap-url.h /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-cache-transaction.c /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-strmap.c /dovecot/src/lib-index/mail-index-sync-private.h /dovecot/src/lib-index/mail-index-sync.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-view-private.h /dovecot/src/lib-index/mail-index-view-sync.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log-private.h /dovecot/src/lib-index/mail-transaction-log-view-private.h /dovecot/src/lib-index/mail-transaction-log.h /dovecot/src/lib-lda/duplicate.c /dovecot/src/lib-lda/lmtp-client.c /dovecot/src/lib-mail/istream-binary-converter.c /dovecot/src/lib-mail/istream-dot.c /dovecot/src/lib-mail/istream-header-filter.c /dovecot/src/lib-mail/message-decoder.c /dovecot/src/lib-mail/message-header-decode.c /dovecot/src/lib-mail/message-header-parser.c /dovecot/src/lib-mail/message-header-parser.h /dovecot/src/lib-mail/message-parser.c /dovecot/src/lib-mail/message-search.c /dovecot/src/lib-master/ipc-server.c /dovecot/src/lib-master/master-instance.c /dovecot/src/lib-master/master-login-auth.c /dovecot/src/lib-master/master-login.c /dovecot/src/lib-master/master-login.h /dovecot/src/lib-master/master-service-private.h /dovecot/src/lib-master/master-service-settings-cache.c /dovecot/src/lib-master/master-service-settings.h /dovecot/src/lib-master/master-service.h /dovecot/src/lib-master/service-settings.h /dovecot/src/lib-sql/driver-cassandra.c /dovecot/src/lib-sql/driver-mysql.c /dovecot/src/lib-sql/driver-pgsql.c /dovecot/src/lib-sql/driver-sqlite.c /dovecot/src/lib-sql/sql-api-private.h /dovecot/src/lib-ssl-iostream/iostream-openssl.h cydir/cydir-save.c dbox-common/dbox-file.h dbox-common/dbox-save.h dbox-multi/mdbox-map-private.h dbox-multi/mdbox-map.c dbox-multi/mdbox-storage-rebuild.c dbox-multi/mdbox-storage.h imapc/imapc-list.h imapc/imapc-save.c imapc/imapc-storage.h imapc/imapc-sync.h index-mail.h index-rebuild.h index-search-private.h index-search.c index-sort-string.c index-thread-finish.c index-thread-private.h index-thread.c istream-mail.c maildir/maildir-copy.c maildir/maildir-keywords.c maildir/maildir-save.c maildir/maildir-storage.h maildir/maildir-sync.c maildir/maildir-uidlist.c mbox/istream-raw-mbox.c mbox/mbox-save.c mbox/mbox-storage.h mbox/mbox-sync-private.h pop3c/pop3c-client.c pop3c/pop3c-storage.h raw/raw-storage.h /dovecot/src/lib-storage/list/mailbox-list-fs-iter.c /dovecot/src/lib-storage/list/mailbox-list-index-notify.c /dovecot/src/lib-storage/list/mailbox-list-index-sync.h /dovecot/src/lib-storage/list/mailbox-list-index.h /dovecot/src/lib-storage/list/mailbox-list-iter.c /dovecot/src/lib-storage/list/mailbox-list-none.c /dovecot/src/lib-storage/mail-namespace.h /dovecot/src/lib-storage/mail-search-register.c /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage-service.c /dovecot/src/lib-storage/mail-storage-service.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail-user.h /dovecot/src/lib-storage/mailbox-list-private.h /dovecot/src/lib-storage/mailbox-search-result-private.h /dovecot/src/lib-storage/mailbox-tree.c /dovecot/src/lib/buffer.c /dovecot/src/lib/connection.h /dovecot/src/lib/file-dotlock.c /dovecot/src/lib/file-dotlock.h /dovecot/src/lib/ioloop-private.h /dovecot/src/lib/istream-crlf.c /dovecot/src/lib/istream-file-private.h /dovecot/src/lib/istream-jsonstr.c /dovecot/src/lib/istream-mmap.c /dovecot/src/lib/istream-private.h /dovecot/src/lib/istream-tee.c /dovecot/src/lib/istream.h /dovecot/src/lib/mempool.h /dovecot/src/lib/module-dir.h /dovecot/src/lib/ostream-file-private.h /dovecot/src/lib/ostream-private.h /dovecot/src/lib/ostream.h /dovecot/src/lmtp/client.h /dovecot/src/lmtp/lmtp-proxy.c /dovecot/src/log/log-connection.c /dovecot/src/login-common/client-common.h /dovecot/src/login-common/login-proxy.c /dovecot/src/login-common/ssl-proxy-openssl.c /dovecot/src/master/service-process.h /dovecot/src/master/service.h /dovecot/src/plugins/acl/acl-api-private.h /dovecot/src/plugins/acl/acl-api.h /dovecot/src/plugins/acl/acl-backend-vfile.h /dovecot/src/plugins/acl/acl-lookup-dict.c /dovecot/src/plugins/acl/acl-mailbox-list.c /dovecot/src/plugins/expire/expire-plugin.c /dovecot/src/plugins/fts-lucene/fts-backend-lucene.c /dovecot/src/plugins/fts-solr/fts-backend-solr.c /dovecot/src/plugins/fts-solr/solr-connection.c /dovecot/src/plugins/fts-squat/squat-trie-private.h /dovecot/src/plugins/fts-squat/squat-trie.c /dovecot/src/plugins/fts-squat/squat-uidlist.c /dovecot/src/plugins/fts/fts-api-private.h /dovecot/src/plugins/fts/fts-indexer.c /dovecot/src/plugins/fts/fts-storage.c /dovecot/src/plugins/fts/fts-storage.h /dovecot/src/plugins/lazy-expunge/lazy-expunge-plugin.c /dovecot/src/plugins/pop3-migration/pop3-migration-plugin.c /dovecot/src/plugins/quota/quota-fs.c /dovecot/src/plugins/quota/quota-maildir.c /dovecot/src/plugins/quota/quota-private.h /dovecot/src/plugins/quota/quota-storage.c /dovecot/src/plugins/virtual/virtual-mail.c /dovecot/src/plugins/virtual/virtual-storage.h /dovecot/src/plugins/virtual/virtual-sync.c /dovecot/src/pop3/pop3-client.h /dovecot/src/replication/replicator/dsync-client.c /dovecot/src/replication/replicator/notify-connection.c /dovecot/src/replication/replicator/replicator-brain.c /dovecot/src/replication/replicator/replicator-queue.h
489301ee88b2174e3171875e979e667de2c4a174 28-Feb-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-storage: When cached mime.parts is detected to be inconsistent, log it as hex-encoded.

6de6ec228a41275ddda972d4a554699ea75cd06d 28-Feb-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-storage: Added mail_set_cache_corrupted_reason()

52fbebc87d7ae4fc4585863d38cb87f166a6521a 16-Jan-2015 Timo Sirainen <tss@iki.fi>

lib-storage: Added MAIL_FETCH_BODY_SNIPPET.

823af4a2cc4e2ce90d12f9ec362160546aa4c4b8 05-Dec-2014 Timo Sirainen <tss@iki.fi>

lib-storage: Mail prefetching was still not working right. I wonder if it ever actually worked (except for SEARCH TEXT).

96a410ecef6d2e08c8bce325eec084ce1edce100 25-Nov-2014 Timo Sirainen <tss@iki.fi>

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.

70612e07102b75a8511aa7f9de60771176b18de0 24-Sep-2014 Timo Sirainen <tss@iki.fi>

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.

bc15c6934f69be09cca1e9f87f9dc344f77e8b7c 04-Jul-2014 Timo Sirainen <tss@iki.fi>

lib-storage: istream-mail updates mail->expunged if it notices ENOENT from parent stream.

d052dcfff0c96a0af17a3158e51f709edf4b93a1 04-Jul-2014 Timo Sirainen <tss@iki.fi>

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.

884228e5496378bada39a932db67aa3d9478198f 28-May-2014 Timo Sirainen <tss@iki.fi>

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.

ceac44e7560fcbf6fc2f932c7b624a5055dc3bc9 30-Apr-2014 Timo Sirainen <tss@iki.fi>

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.

541b251a99a55cb0fa2eaf02645a7c39ad997092 15-Apr-2014 Timo Sirainen <tss@iki.fi>

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.

147a788fea2a88f7125b27226451271d55cf5b01 26-May-2013 Timo Sirainen <tss@iki.fi>

dbox: Added support for POP3 message order.

49be238e250e99af8c69321264a461d8f6ceef62 22-Jan-2013 Timo Sirainen <tss@iki.fi>

lib-storage: Catch input stream errors when parsing mail.

f46885a5b78b15a8d2419f6e5d13b643bd85e41f 04-Jan-2013 Timo Sirainen <tss@iki.fi>

lib-storage: Added support for "private modseqs" for INDEXPVT index. Used by dsync (next commit).

50de46721446795c42943c572625f2f1a9abfe01 29-Oct-2012 Timo Sirainen <tss@iki.fi>

lib-storage: Check and log stream errors when parsing/searching messages.

e53ab6c7081246c865917f9aa0eff031a08ad1e7 23-Oct-2012 Timo Sirainen <tss@iki.fi>

imap: URLFETCH BINARY BODYPARTSTRUCTURE returns binary-decoded line counts.

4906414a3e02e7750b0e702ec992afba20a0338a 03-Oct-2012 Timo Sirainen <tss@iki.fi>

lib-storage: struct mail.close() now clears all of its data.

5f44975ec6c5755dd74bcd4c47a123a7242ecab3 15-Sep-2012 Timo Sirainen <tss@iki.fi>

lib-storage: Moved index_mail.data_pool to mail_private.data_pool

4ee00532a265bdfb38539d811fcd12d51210ac35 19-Aug-2012 Timo Sirainen <tss@iki.fi>

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]

/dovecot/src/auth/auth-request-handler.c /dovecot/src/auth/auth-settings.c /dovecot/src/auth/auth-settings.h /dovecot/src/auth/auth-worker-server.c /dovecot/src/auth/auth.c /dovecot/src/auth/db-ldap.h /dovecot/src/auth/main.c /dovecot/src/auth/passdb-template.c /dovecot/src/auth/passdb.c /dovecot/src/auth/userdb-template.c /dovecot/src/auth/userdb.c /dovecot/src/config/config-parser-private.h /dovecot/src/config/config-parser.c /dovecot/src/dict/dict-connection.h /dovecot/src/dict/dict-settings.h /dovecot/src/director/director-test.c /dovecot/src/director/director.h /dovecot/src/director/mail-host.c /dovecot/src/director/main.c /dovecot/src/director/user-directory.c /dovecot/src/doveadm/doveadm-dump.c /dovecot/src/doveadm/doveadm-kick.c /dovecot/src/doveadm/doveadm-mail-altmove.c /dovecot/src/doveadm/doveadm-mail-fetch.c /dovecot/src/doveadm/doveadm-mail.h /dovecot/src/doveadm/doveadm-print-flow.c /dovecot/src/doveadm/doveadm-print-pager.c /dovecot/src/doveadm/doveadm-print-table.c /dovecot/src/doveadm/doveadm-print.c /dovecot/src/doveadm/doveadm-server.h /dovecot/src/doveadm/doveadm-settings.h /dovecot/src/doveadm/doveadm-stats.c /dovecot/src/doveadm/doveadm-who.c /dovecot/src/doveadm/doveadm.c /dovecot/src/doveadm/dsync/dsync-mailbox-export.c /dovecot/src/doveadm/dsync/dsync-mailbox-import.c /dovecot/src/doveadm/dsync/dsync-mailbox-tree-private.h /dovecot/src/doveadm/dsync/dsync-mailbox-tree-sync.c /dovecot/src/doveadm/dsync/dsync-slave-pipe.c /dovecot/src/imap/cmd-list.c /dovecot/src/imap/imap-client.h /dovecot/src/imap/imap-commands-util.c /dovecot/src/imap/imap-commands.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-notify.h /dovecot/src/imap/imap-search.h /dovecot/src/indexer/worker-connection.c /dovecot/src/ipc/ipc-connection.h /dovecot/src/ipc/ipc-group.c /dovecot/src/lib-auth/auth-server-connection.h /dovecot/src/lib-dict/dict-memcached-ascii.c /dovecot/src/lib-dict/dict-redis.c /dovecot/src/lib-dict/dict-sql-settings.c /dovecot/src/lib-dict/dict-sql-settings.h /dovecot/src/lib-dict/dict-sql.c /dovecot/src/lib-dict/dict-transaction-memory.h /dovecot/src/lib-dict/dict.c /dovecot/src/lib-imap-client/imapc-client-private.h /dovecot/src/lib-imap-client/imapc-connection.c /dovecot/src/lib-index/mail-cache-compress.c /dovecot/src/lib-index/mail-cache-lookup.c /dovecot/src/lib-index/mail-cache-transaction.c /dovecot/src/lib-index/mail-index-modseq.c /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-strmap.c /dovecot/src/lib-index/mail-index-sync-private.h /dovecot/src/lib-index/mail-index-sync.c /dovecot/src/lib-index/mail-index-transaction-export.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-transaction-view.c /dovecot/src/lib-index/mail-index-view-private.h /dovecot/src/lib-index/mail-transaction-log-view-private.h /dovecot/src/lib-lda/lmtp-client.c /dovecot/src/lib-lda/mail-deliver.h /dovecot/src/lib-mail/istream-attachment-connector.c /dovecot/src/lib-mail/istream-header-filter.c /dovecot/src/lib-mail/rfc2231-parser.c /dovecot/src/lib-mail/test-istream-attachment.c /dovecot/src/lib-master/anvil-client.c /dovecot/src/lib-master/ipc-client.c /dovecot/src/lib-master/master-instance.c /dovecot/src/lib-master/master-service-settings.c /dovecot/src/lib-master/mountpoint-list.c /dovecot/src/lib-settings/settings-parser.c /dovecot/src/lib-sql/driver-pgsql.c /dovecot/src/lib-sql/driver-sqlpool.c /dovecot/src/lib-sql/sql-api-private.h dbox-common/dbox-file.h dbox-multi/mdbox-map-private.h dbox-multi/mdbox-save.c dbox-multi/mdbox-storage-rebuild.c dbox-multi/mdbox-storage.h dbox-single/sdbox-save.c imapc/imapc-storage.h index-mail-binary.c index-mail-headers.c index-mail.h index-search-private.h index-storage.c index-sync-changes.c index-thread-finish.c maildir/maildir-keywords.c maildir/maildir-save.c mbox/mbox-sync-private.h /dovecot/src/lib-storage/list/mailbox-list-fs-iter.c /dovecot/src/lib-storage/list/mailbox-list-index-notify.c /dovecot/src/lib-storage/list/mailbox-list-maildir.c /dovecot/src/lib-storage/mail-search-register-human.c /dovecot/src/lib-storage/mail-search-register.c /dovecot/src/lib-storage/mail-storage-hooks.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage-settings.h /dovecot/src/lib-storage/mail-user.h /dovecot/src/lib-storage/mailbox-keywords.c /dovecot/src/lib-storage/mailbox-list-iter.c /dovecot/src/lib-storage/mailbox-list-private.h /dovecot/src/lib-storage/mailbox-list.c /dovecot/src/lib-storage/mailbox-tree.c /dovecot/src/lib/array-decl.h /dovecot/src/lib/array.h /dovecot/src/lib/ioloop-epoll.c /dovecot/src/lib/ioloop-kqueue.c /dovecot/src/lib/ioloop-private.h /dovecot/src/lib/lib.h /dovecot/src/lib/module-context.h /dovecot/src/lib/priorityq.c /dovecot/src/lib/test-aqueue.c /dovecot/src/lib/test-array.c /dovecot/src/lib/var-expand.c /dovecot/src/lmtp/client.h /dovecot/src/lmtp/lmtp-proxy.c /dovecot/src/log/log-connection.c /dovecot/src/master/service-listen.c /dovecot/src/master/service-process-notify.c /dovecot/src/master/service.h /dovecot/src/plugins/acl/acl-backend-vfile.h /dovecot/src/plugins/acl/acl-cache.c /dovecot/src/plugins/expire/doveadm-expire.c /dovecot/src/plugins/expire/expire-set.c /dovecot/src/plugins/fts-lucene/fts-backend-lucene.c /dovecot/src/plugins/fts-lucene/lucene-wrapper.cc /dovecot/src/plugins/fts-solr/fts-backend-solr-old.c /dovecot/src/plugins/fts-solr/fts-backend-solr.c /dovecot/src/plugins/fts-solr/solr-connection.c /dovecot/src/plugins/fts-squat/squat-trie.c /dovecot/src/plugins/fts-squat/squat-uidlist.c /dovecot/src/plugins/fts/fts-api.c /dovecot/src/plugins/fts/fts-parser-script.c /dovecot/src/plugins/fts/fts-storage.h /dovecot/src/plugins/pop3-migration/pop3-migration-plugin.c /dovecot/src/plugins/quota/quota-private.h /dovecot/src/plugins/quota/quota-storage.c /dovecot/src/plugins/quota/quota.c /dovecot/src/plugins/trash/trash-plugin.c /dovecot/src/plugins/virtual/virtual-mail.c /dovecot/src/plugins/virtual/virtual-search.c /dovecot/src/plugins/virtual/virtual-storage.h /dovecot/src/plugins/virtual/virtual-sync.c /dovecot/src/plugins/virtual/virtual-transaction.h /dovecot/src/pop3/pop3-client.c /dovecot/src/pop3/pop3-client.h /dovecot/src/replication/replicator/replicator-brain.c /dovecot/src/replication/replicator/replicator-queue.c /dovecot/src/ssl-params/main.c
6e8f0036cad59d1d6bcd9ef69bfe712d01656ca3 11-Aug-2012 Timo Sirainen <tss@iki.fi>

lib-storage: Added caching for mail_get_binary_size()

306b3f41b05da642d87e7ca7a1496efce9f5902f 11-Aug-2012 Timo Sirainen <tss@iki.fi>

IMAP BINARY extension supports now FETCH BINARY command.

/dovecot/src/doveadm/doveadm-mail.c /dovecot/src/imap/cmd-fetch.c /dovecot/src/imap/imap-commands-util.c /dovecot/src/imap/imap-fetch-body.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/lib-imap-storage/imap-msgpart.c /dovecot/src/lib-imap-storage/imap-msgpart.h /dovecot/src/lib-storage/fail-mail.c Makefile.am cydir/cydir-mail.c dbox-multi/mdbox-mail.c dbox-single/sdbox-mail.c imapc/imapc-mail.c index-mail-binary.c index-mail.h maildir/maildir-mail.c mbox/mbox-mail.c pop3c/pop3c-mail.c raw/raw-mail.c /dovecot/src/lib-storage/mail-error.h /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail-user.c /dovecot/src/lib-storage/mail.c /dovecot/src/plugins/virtual/virtual-mail.c
a10ed8c47534b4c6b6bf2711ccfe577e720a47b4 23-Jun-2012 Timo Sirainen <tss@iki.fi>

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

/dovecot/src/anvil/main.c /dovecot/src/auth/auth-master-connection.c /dovecot/src/auth/auth-master-connection.h /dovecot/src/auth/auth-request-handler.c /dovecot/src/auth/auth-request.c /dovecot/src/auth/auth-request.h /dovecot/src/auth/auth-settings.h /dovecot/src/auth/auth-stream.h /dovecot/src/auth/auth-worker-server.c /dovecot/src/auth/auth.c /dovecot/src/auth/auth.h /dovecot/src/auth/db-checkpassword.h /dovecot/src/auth/db-ldap.c /dovecot/src/auth/db-ldap.h /dovecot/src/auth/db-passwd-file.c /dovecot/src/auth/main.c /dovecot/src/auth/mech-anonymous.c /dovecot/src/auth/mech-apop.c /dovecot/src/auth/mech-cram-md5.c /dovecot/src/auth/mech-ntlm.c /dovecot/src/auth/mech-otp-skey-common.c /dovecot/src/auth/mech-plain-common.c /dovecot/src/auth/mech-rpa.c /dovecot/src/auth/mech-winbind.c /dovecot/src/auth/mech.c /dovecot/src/auth/password-scheme-otp.c /dovecot/src/auth/password-scheme.h /dovecot/src/auth/userdb-passwd.c /dovecot/src/auth/userdb-static.c /dovecot/src/auth/userdb.h /dovecot/src/config/config-parser-private.h /dovecot/src/config/config-request.h /dovecot/src/config/doveconf.c /dovecot/src/config/main.c /dovecot/src/dict/main.c /dovecot/src/director/director-connection.c /dovecot/src/director/director-test.c /dovecot/src/director/director.h /dovecot/src/dns/dns-client.c /dovecot/src/doveadm/doveadm-director.c /dovecot/src/doveadm/doveadm-log.c /dovecot/src/doveadm/doveadm-mail-fetch.c /dovecot/src/doveadm/doveadm-mail-iter.h /dovecot/src/doveadm/doveadm-mail-mailbox-status.c /dovecot/src/doveadm/dsync/doveadm-dsync.c /dovecot/src/doveadm/dsync/dsync-brain.c /dovecot/src/doveadm/dsync/dsync-mailbox-import.c /dovecot/src/doveadm/dsync/dsync-slave-io.c /dovecot/src/doveadm/main.c /dovecot/src/imap-login/client.c /dovecot/src/imap-login/client.h /dovecot/src/imap/cmd-append.c /dovecot/src/imap/cmd-expunge.c /dovecot/src/imap/imap-client.h /dovecot/src/imap/imap-commands-util.h /dovecot/src/imap/imap-expunge.h /dovecot/src/imap/imap-fetch-body.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-search.h /dovecot/src/imap/imap-sync.c /dovecot/src/indexer/indexer.c /dovecot/src/indexer/master-connection.c /dovecot/src/ipc/client.c /dovecot/src/ipc/main.c /dovecot/src/lib-auth/auth-client-request.c /dovecot/src/lib-auth/auth-client.h /dovecot/src/lib-auth/auth-master.c /dovecot/src/lib-auth/auth-master.h /dovecot/src/lib-dict/dict.h /dovecot/src/lib-dns/dns-lookup.h /dovecot/src/lib-imap-client/imapc-connection.h /dovecot/src/lib-imap-storage/imap-msgpart.c /dovecot/src/lib-imap/imap-base-subject.c /dovecot/src/lib-imap/imap-parser.c /dovecot/src/lib-imap/imap-parser.h /dovecot/src/lib-imap/imap-url.c /dovecot/src/lib-imap/imap-util.h /dovecot/src/lib-index/mail-cache-lookup.c /dovecot/src/lib-index/mail-cache-transaction.c /dovecot/src/lib-index/mail-index-alloc-cache.c /dovecot/src/lib-index/mail-index-alloc-cache.h /dovecot/src/lib-index/mail-index-map-hdr.c /dovecot/src/lib-index/mail-index-map.c /dovecot/src/lib-index/mail-index-util.h /dovecot/src/lib-index/mail-index-view.c /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-lda/mail-deliver.h /dovecot/src/lib-lda/smtp-client.h /dovecot/src/lib-mail/istream-binary-converter.c /dovecot/src/lib-mail/istream-dot.c /dovecot/src/lib-mail/istream-header-filter.h /dovecot/src/lib-mail/message-header-parser.h /dovecot/src/lib-mail/message-parser.h /dovecot/src/lib-mail/message-part-serialize.c /dovecot/src/lib-mail/message-search.h /dovecot/src/lib-mail/message-size.c /dovecot/src/lib-mail/message-size.h /dovecot/src/lib-mail/rfc822-parser.h /dovecot/src/lib-mail/test-istream-header-filter.c /dovecot/src/lib-master/anvil-client.h /dovecot/src/lib-master/ipc-client.h /dovecot/src/lib-master/ipc-server.c /dovecot/src/lib-master/master-service-settings-cache.h /dovecot/src/lib-master/master-service-settings.h /dovecot/src/lib-master/master-service.c /dovecot/src/lib-master/master-service.h /dovecot/src/lib-master/mountpoint-list.c /dovecot/src/lib-ntlm/ntlm-encrypt.c /dovecot/src/lib-ntlm/ntlm-encrypt.h /dovecot/src/lib-otp/otp-parse.c /dovecot/src/lib-settings/settings-parser.c /dovecot/src/lib-settings/settings.h /dovecot/src/lib-sql/driver-mysql.c /dovecot/src/lib-sql/driver-pgsql.c /dovecot/src/lib-sql/driver-sqlpool.c /dovecot/src/lib-sql/sql-api.c dbox-common/dbox-file-fix.c dbox-common/dbox-save.h dbox-common/dbox-storage.c dbox-common/dbox-sync-rebuild.c dbox-multi/mdbox-map.c dbox-multi/mdbox-storage.c dbox-multi/mdbox-storage.h dbox-multi/mdbox-sync.c dbox-single/sdbox-storage.c imapc/imapc-mail.c index-mail-headers.c index-mail.c index-mail.h index-search.c index-sort.c index-storage.h index-sync-changes.h maildir/maildir-filename-flags.c maildir/maildir-filename-flags.h maildir/maildir-mail.c maildir/maildir-save.c maildir/maildir-storage.c maildir/maildir-storage.h maildir/maildir-sync-index.c maildir/maildir-sync.c maildir/maildir-sync.h maildir/maildir-uidlist.c maildir/maildir-uidlist.h maildir/maildir-util.c mbox/mbox-file.c mbox/mbox-lock.c mbox/mbox-mail.c mbox/mbox-storage.c mbox/mbox-sync-parse.c mbox/mbox-sync.c raw/raw-storage.c shared/shared-storage.c /dovecot/src/lib-storage/list/mailbox-list-delete.c /dovecot/src/lib-storage/list/mailbox-list-fs-iter.c /dovecot/src/lib-storage/list/mailbox-list-fs.c /dovecot/src/lib-storage/list/mailbox-list-index-status.c /dovecot/src/lib-storage/list/mailbox-list-index.c /dovecot/src/lib-storage/list/mailbox-list-maildir.c /dovecot/src/lib-storage/mail-namespace.h /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mail-storage-service.c /dovecot/src/lib-storage/mail-storage-service.h /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail-thread.h /dovecot/src/lib-storage/mail.c /dovecot/src/lib-storage/mailbox-get.c /dovecot/src/lib-storage/mailbox-list-private.h /dovecot/src/lib-storage/mailbox-list.c /dovecot/src/lib-storage/mailbox-list.h /dovecot/src/lib-storage/mailbox-tree.c /dovecot/src/lib-storage/mailbox-tree.h /dovecot/src/lib-test/test-common.h /dovecot/src/lib/base64.h /dovecot/src/lib/buffer.h /dovecot/src/lib/child-wait.h /dovecot/src/lib/eacces-error.h /dovecot/src/lib/failures.c /dovecot/src/lib/file-dotlock.c /dovecot/src/lib/hash.c /dovecot/src/lib/hash.h /dovecot/src/lib/hash2.h /dovecot/src/lib/ioloop-notify-fd.h /dovecot/src/lib/ioloop.c /dovecot/src/lib/ioloop.h /dovecot/src/lib/iso8601-date.c /dovecot/src/lib/istream-base64-encoder.c /dovecot/src/lib/istream-chain.c /dovecot/src/lib/istream-chain.h /dovecot/src/lib/istream-crlf.c /dovecot/src/lib/istream-private.h /dovecot/src/lib/istream-seekable.h /dovecot/src/lib/istream.c /dovecot/src/lib/istream.h /dovecot/src/lib/lib-signals.c /dovecot/src/lib/lib-signals.h /dovecot/src/lib/macros.h /dovecot/src/lib/mkdir-parents.c /dovecot/src/lib/module-dir.h /dovecot/src/lib/network.c /dovecot/src/lib/network.h /dovecot/src/lib/ostream-private.h /dovecot/src/lib/ostream.c /dovecot/src/lib/ostream.h /dovecot/src/lib/restrict-access.h /dovecot/src/lib/safe-mkstemp.c /dovecot/src/lib/strfuncs.c /dovecot/src/lib/strfuncs.h /dovecot/src/lib/test-iso8601-date.c /dovecot/src/lib/uri-util.c /dovecot/src/lib/uri-util.h /dovecot/src/lib/var-expand.h /dovecot/src/lmtp/client.h /dovecot/src/lmtp/lmtp-proxy.h /dovecot/src/log/main.c /dovecot/src/login-common/client-common-auth.c /dovecot/src/login-common/login-proxy.c /dovecot/src/login-common/login-settings.h /dovecot/src/login-common/sasl-server.c /dovecot/src/login-common/ssl-proxy-openssl.c /dovecot/src/master/common.h /dovecot/src/plugins/acl/acl-backend-vfile-acllist.c /dovecot/src/plugins/acl/acl-plugin.h /dovecot/src/plugins/fts-lucene/fts-backend-lucene.c /dovecot/src/plugins/fts-lucene/lucene-wrapper.h /dovecot/src/plugins/fts-solr/solr-connection.c /dovecot/src/plugins/fts-squat/squat-trie.h /dovecot/src/plugins/fts/fts-storage.c /dovecot/src/plugins/quota/quota-dirsize.c /dovecot/src/plugins/quota/quota-fs.c /dovecot/src/plugins/quota/quota-maildir.c /dovecot/src/plugins/quota/quota.c /dovecot/src/pop3/pop3-client.h /dovecot/src/replication/aggregator/aggregator.c /dovecot/src/replication/replicator/replicator.c /dovecot/src/ssl-params/main.c /dovecot/src/stats/mail-domain.h /dovecot/src/stats/mail-ip.h /dovecot/src/stats/mail-session.h /dovecot/src/stats/mail-user.h /dovecot/src/stats/main.c
46c903eac3abcc7d32780da76ee6a79c26d185b6 04-Apr-2012 Timo Sirainen <tss@iki.fi>

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.

e8dc3747de75e2bf208f0f2dbdbae4a279b5ee6f 18-Jan-2012 Timo Sirainen <tss@iki.fi>

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.

ecd69c4e8371853667e01b0c16d436ef7f7393e2 12-Oct-2011 Timo Sirainen <tss@iki.fi>

lib-storage: Added mail_log_update_wanted_fields()

15979d11259a2391c943bb47af4d174df52d9eb9 05-Oct-2011 Timo Sirainen <tss@iki.fi>

imapc: Fixed closing mail properly.

7c3f90095b4168d89a268ac1ec820c5925d48fd3 04-Oct-2011 Timo Sirainen <tss@iki.fi>

lib-storage: Verify that cached message size matches actually read size.

421d30619384e72a27e2a5d13ff6525aff4d17fe 31-Aug-2011 Timo Sirainen <tss@iki.fi>

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.

/dovecot/src/doveadm/doveadm-mail-index.c /dovecot/src/indexer/master-connection.c cydir/cydir-mail.c dbox-multi/mdbox-mail.c dbox-single/sdbox-mail.c imapc/imapc-mail.c index-mail.c index-mail.h index-status.c index-sync.c maildir/maildir-mail.c mbox/mbox-mail.c raw/raw-mail.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail.c /dovecot/src/lib-storage/test-mail.c /dovecot/src/plugins/fts-lucene/fts-backend-lucene.c /dovecot/src/plugins/fts/Makefile.am /dovecot/src/plugins/fts/fts-api-private.h /dovecot/src/plugins/fts/fts-build-mail.c /dovecot/src/plugins/fts/fts-build-mail.h /dovecot/src/plugins/fts/fts-build-mailbox.c /dovecot/src/plugins/fts/fts-build-private.h /dovecot/src/plugins/fts/fts-build-virtual.c /dovecot/src/plugins/fts/fts-build.h /dovecot/src/plugins/fts/fts-indexer.c /dovecot/src/plugins/fts/fts-indexer.h /dovecot/src/plugins/fts/fts-storage.c /dovecot/src/plugins/fts/fts-storage.h /dovecot/src/plugins/virtual/virtual-mail.c /dovecot/src/plugins/virtual/virtual-storage.c
7631f16156aca373004953fe6b01a7f343fb47e0 28-Jul-2011 Timo Sirainen <tss@iki.fi>

lib-storage: mail->saving was set too late, which could have caused crashes.

c7e14824e4e1ca9dc5d48d1eddc4a38d3041218f 05-May-2011 Timo Sirainen <tss@iki.fi>

lib-storage: Added mail_parse().

1af0a59380337d4d9adc634da47888c150869f65 04-Apr-2011 Timo Sirainen <tss@iki.fi>

lib-storage: Added mail prefetching support for searching.

e15b305e90c9834734ccf35ed78f0ad29d570ee9 31-Mar-2011 Timo Sirainen <tss@iki.fi>

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.

/dovecot/configure.in /dovecot/doc/example-config/conf.d/10-mail.conf cydir/cydir-mail.c cydir/cydir-storage.c dbox-multi/mdbox-mail.c dbox-single/sdbox-mail.c dbox-single/sdbox-storage.c imapc/Makefile.am imapc/imapc-mail-fetch.c imapc/imapc-mail.c imapc/imapc-mail.h imapc/imapc-mailbox.c imapc/imapc-search.c imapc/imapc-storage.c imapc/imapc-storage.h index-mail.c index-mail.h index-search-private.h index-search.c maildir/maildir-mail.c maildir/maildir-storage.c mbox/mbox-mail.c raw/raw-mail.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage-settings.c /dovecot/src/lib-storage/mail-storage-settings.h /dovecot/src/lib-storage/mail.c /dovecot/src/lib-storage/test-mail.c /dovecot/src/plugins/virtual/virtual-mail.c /dovecot/src/plugins/virtual/virtual-search.c
eef4ba0cc3e78f8c26804c1c9251a76580a41f0c 29-Mar-2011 Timo Sirainen <tss@iki.fi>

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

/dovecot/src/doveadm/doveadm-mail-altmove.c /dovecot/src/doveadm/doveadm-mail-expunge.c /dovecot/src/doveadm/doveadm-mail-fetch.c /dovecot/src/doveadm/doveadm-mail-import.c /dovecot/src/doveadm/doveadm-mail-iter.c /dovecot/src/doveadm/doveadm-mail-iter.h /dovecot/src/doveadm/doveadm-mail-search.c /dovecot/src/dsync/dsync-worker-local.c /dovecot/src/imap/cmd-copy.c /dovecot/src/imap/cmd-store.c /dovecot/src/imap/imap-expunge.c /dovecot/src/imap/imap-fetch-body.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-search.c /dovecot/src/imap/imap-search.h dbox-single/sdbox-storage.c imapc/imapc-search.c imapc/imapc-storage.h index-mail.c index-mail.h index-search-private.h index-search-result.c index-search.c index-status.c index-storage.h index-thread.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/test-mailbox.c /dovecot/src/plugins/fts-squat/fts-backend-squat.c /dovecot/src/plugins/fts/fts-storage.c /dovecot/src/plugins/lazy-expunge/lazy-expunge-plugin.c /dovecot/src/plugins/quota/quota-count.c /dovecot/src/plugins/quota/quota-storage.c /dovecot/src/plugins/snarf/snarf-plugin.c /dovecot/src/plugins/trash/trash-plugin.c /dovecot/src/plugins/virtual/virtual-search.c /dovecot/src/plugins/virtual/virtual-storage.h /dovecot/src/plugins/virtual/virtual-sync.c /dovecot/src/pop3/pop3-client.c /dovecot/src/pop3/pop3-commands.c
bc6ef0b01b99c43ee46aa796420516e89a744c30 29-Mar-2011 Timo Sirainen <tss@iki.fi>

lib-storage: Small optimizations to setting mail's access_parts.

1fdae276436f31f1d50a2ab21e8007ee46f17f3c 24-Mar-2011 Timo Sirainen <tss@iki.fi>

lib-storage: Removed unused index_mail.uid_validity.

94a77d6e5d7600859e4c5e4a7ea19dc3e91998b9 30-Jan-2011 Timo Sirainen <tss@iki.fi>

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.

a4f09749814b93e8ad3ec8a0dc18885b874d6f8c 06-Dec-2010 Timo Sirainen <tss@iki.fi>

lib-storage: Unvirtualized mailbox_header_lookup_*()

c04f9a724a7b3cc649485a61b0a540868d25d71b 05-Dec-2010 Timo Sirainen <tss@iki.fi>

lib-storage: Removed struct index_transaction_context. All of its contents are now in struct mailbox_transaction_context.

6564208826b0f46a00f010d1b5711d85944c3c88 20-Oct-2010 Timo Sirainen <tss@iki.fi>

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.

a0aedab7cd06125e4d73638b1bd0c01c7caa2626 29-Sep-2010 Timo Sirainen <tss@iki.fi>

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.

de9d79337eca11a7f9c1cd476c74dfe4f09a4bd7 30-Jun-2010 Timo Sirainen <tss@iki.fi>

Removed mail_update_uid() / mail_index_update_uid(). It was working properly only with mdbox and there wasn't really a need for it. --HG-- branch : HEAD

/dovecot/src/doveadm/doveadm-dump-log.c /dovecot/src/lib-index/mail-index-sync-update.c /dovecot/src/lib-index/mail-index-transaction-export.c /dovecot/src/lib-index/mail-index-transaction-finish.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-transaction-update.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log-file.c /dovecot/src/lib-index/mail-transaction-log.h /dovecot/src/lib-index/test-mail-index-transaction-finish.c /dovecot/src/lib-index/test-mail-index-transaction-update.c cydir/cydir-mail.c dbox-multi/mdbox-mail.c dbox-multi/mdbox-save.c dbox-single/sdbox-mail.c index-mail.c index-mail.h index-transaction.c maildir/maildir-mail.c maildir/maildir-save.c maildir/maildir-storage.h mbox/mbox-mail.c raw/raw-mail.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail.c /dovecot/src/lib-storage/test-mail.c /dovecot/src/plugins/virtual/virtual-mail.c
9af6cc9ebc9986c1275ebdfa29c39e152af1557e 12-May-2010 Timo Sirainen <tss@iki.fi>

lib-storage: Added mail_get_real_mail() that returns physical mail in a virtual mailbox. --HG-- branch : HEAD

c0225f7f6b43d34dc58c17d3304f0fd60ab89894 27-Mar-2010 Timo Sirainen <tss@iki.fi>

lib-storage: mail_get_parts() no longer returns const pointer. The struct message_part contained context-pointer and other APIs were using it, so the pointer really couldn't be const without casting it away sometimes. --HG-- branch : HEAD

6df86fcb245e7cf8f199026269be644116efde9a 12-Feb-2010 Timo Sirainen <tss@iki.fi>

lib-storage: If plugin changes mail's input stream, don't assert-crash on close. --HG-- branch : HEAD

d22301419109ed4a38351715e6760011421dadec 07-Feb-2010 Timo Sirainen <tss@iki.fi>

lib-storage: *_mailboxes don't descend from index_mailbox anymore, it's now a context. --HG-- branch : HEAD

cydir/cydir-save.c cydir/cydir-storage.c cydir/cydir-storage.h cydir/cydir-sync.c dbox-common/dbox-mail.c dbox-common/dbox-storage.c dbox-common/dbox-sync-rebuild.c dbox-common/dbox-sync-rebuild.h dbox-multi/mdbox-mail.c dbox-multi/mdbox-save.c dbox-multi/mdbox-storage-rebuild.c dbox-multi/mdbox-storage.c dbox-multi/mdbox-storage.h dbox-multi/mdbox-sync.c dbox-single/sdbox-file.c dbox-single/sdbox-mail.c dbox-single/sdbox-save.c dbox-single/sdbox-storage.c dbox-single/sdbox-storage.h dbox-single/sdbox-sync-file.c dbox-single/sdbox-sync-rebuild.c dbox-single/sdbox-sync.c index-mail-headers.c index-mail.c index-mail.h index-mailbox-check.c index-search.c index-status.c index-storage.c index-storage.h index-sync-changes.c index-sync-changes.h index-sync-private.h index-sync-search.c index-sync.c index-thread-private.h index-thread.c index-transaction.c maildir/maildir-copy.c maildir/maildir-keywords.c maildir/maildir-mail.c maildir/maildir-save.c maildir/maildir-storage.c maildir/maildir-storage.h maildir/maildir-sync-index.c maildir/maildir-sync.c maildir/maildir-uidlist.c maildir/maildir-uidlist.h maildir/maildir-util.c mbox/mbox-file.c mbox/mbox-lock.c mbox/mbox-mail.c mbox/mbox-save.c mbox/mbox-storage.c mbox/mbox-storage.h mbox/mbox-sync-parse.c mbox/mbox-sync-update.c mbox/mbox-sync.c raw/raw-storage.c raw/raw-storage.h raw/raw-sync.c test-index-fetch.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/plugins/virtual/virtual-config.c /dovecot/src/plugins/virtual/virtual-mail.c /dovecot/src/plugins/virtual/virtual-search.c /dovecot/src/plugins/virtual/virtual-storage.c /dovecot/src/plugins/virtual/virtual-storage.h /dovecot/src/plugins/virtual/virtual-sync.c
573f0491a5733fe21fa062a455acb4790b4e0499 13-Aug-2009 Timo Sirainen <tss@iki.fi>

Use separate read block sizes when reading only message header vs. full message. --HG-- branch : HEAD

6f6f3dc5b33b09097192124bce17b7017d6bbfcf 06-Aug-2009 Timo Sirainen <tss@iki.fi>

index-mail: Expose tee_stream so plugins can read the stream too while mail is being read. --HG-- branch : HEAD

129cc29ae6d8ad64d6d2b72f18da18fa134d0f3e 03-Aug-2009 Timo Sirainen <tss@iki.fi>

lib-storage: Use less memory from data stack. --HG-- branch : HEAD

ad48319996942463675b53877092ab7e13a7a75a 29-Jul-2009 Timo Sirainen <tss@iki.fi>

Added ability to specify message's minimum modseq value. --HG-- branch : HEAD

/dovecot/src/lib-index/mail-index-modseq.c /dovecot/src/lib-index/mail-index-modseq.h /dovecot/src/lib-index/mail-index-sync-update.c /dovecot/src/lib-index/mail-index-transaction-export.c /dovecot/src/lib-index/mail-index-transaction-finish.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-transaction-update.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log-append.c /dovecot/src/lib-index/mail-transaction-log-file.c /dovecot/src/lib-index/mail-transaction-log-private.h /dovecot/src/lib-index/mail-transaction-log-view.c /dovecot/src/lib-index/mail-transaction-log.h /dovecot/src/lib-index/test-mail-index-transaction-finish.c /dovecot/src/lib-index/test-mail-index-transaction-update.c /dovecot/src/lib-index/test-mail-transaction-log-append.c /dovecot/src/lib-index/test-mail-transaction-log-view.c cydir/cydir-mail.c cydir/cydir-save.c dbox/dbox-mail.c dbox/dbox-save.c index-mail.c index-mail.h maildir/maildir-mail.c maildir/maildir-save.c mbox/mbox-mail.c mbox/mbox-save.c raw/raw-mail.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail.c /dovecot/src/lib-storage/test-mail.c /dovecot/src/plugins/virtual/virtual-mail.c /dovecot/src/plugins/virtual/virtual-save.c /dovecot/src/util/logview.c
bddd52cb7f3e5a894c080f60750aa76b5aeaf103 28-Jul-2009 Timo Sirainen <tss@iki.fi>

Added ability to change existing messages' UIDs with mail_[index_]update_uid(). --HG-- branch : HEAD

/dovecot/src/lib-index/mail-index-sync-update.c /dovecot/src/lib-index/mail-index-transaction-export.c /dovecot/src/lib-index/mail-index-transaction-finish.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-transaction-update.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log.h /dovecot/src/lib-index/test-mail-index-transaction-finish.c /dovecot/src/lib-index/test-mail-index-transaction-update.c cydir/cydir-mail.c dbox/dbox-mail.c index-mail.c index-mail.h index-transaction.c maildir/maildir-mail.c mbox/mbox-mail.c raw/raw-mail.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail.c /dovecot/src/lib-storage/test-mail.c /dovecot/src/plugins/virtual/virtual-mail.c
b0a901f1dbe9e05ac1c92a0974af6bce0274f31a 29-Apr-2009 Timo Sirainen <tss@iki.fi>

struct mail_private now contains all kinds of statistics about file accesses. --HG-- branch : HEAD

e217d6fce33746e198ecc21bff0bc658664c9ef4 23-Mar-2009 Timo Sirainen <tss@iki.fi>

Don't cache Date: header if we don't really want it. --HG-- branch : HEAD

942312f81841c0e3a8b5609c7530826afa5a7f3b 23-Mar-2009 Timo Sirainen <tss@iki.fi>

Don't cache Date: header if we don't really want it. --HG-- branch : HEAD

aa247243412a49f9bdebf7255e131dc6ece4ed46 25-Feb-2009 Timo Sirainen <tss@iki.fi>

Mail copying: Avoid updating cache file because of copying. The mail is being opened in any case, so it's unlikely to help anything. --HG-- branch : HEAD

3fe9483b2b412a14493e3120751b0e99ecfe9388 14-Dec-2008 Timo Sirainen <tss@iki.fi>

mail_get_flags/keywords() now returns updated values if they've been changed within transaction. --HG-- branch : HEAD

b19a1420da0618a10edf67c2cfd13c8c8633057a 07-Aug-2008 Timo Sirainen <tss@iki.fi>

Added the concept of Global UIDs that are preserved across copies. They can be fetched, searched and specified for the save API. dbox format supports them correctly, but with maildir the base filename is used so maildir_copy_preserve_filename=yes is required to preserve GUIDs when copying. --HG-- branch : HEAD

4b95b3147352f12e5f5df7267c3021ac6cfa8deb 02-Jun-2008 Timo Sirainen <tss@iki.fi>

dbox: Forgot to add pop3.uidl cache variables in previous commit. --HG-- branch : HEAD

ea4f28398a0e4fb46be074307d512925c1fe7fc1 14-Mar-2008 Timo Sirainen <tss@iki.fi>

struct mail can't necessarily be casted to struct index_mail. Added a new get_index_mail() method to return it. --HG-- branch : HEAD

01404d41657a104c5ea1c12bb87f9c321e9c1ac4 14-Mar-2008 Timo Sirainen <tss@iki.fi>

struct mail can't necessarily be casted to struct index_mail. Added a new get_index_mail() method to return it. --HG-- branch : HEAD

a2f250a332dfc1e6cd4ffd196c621eb9dbf7b8a1 15-Mar-2008 Timo Sirainen <tss@iki.fi>

Initial CONDSTORE support. --HG-- branch : HEAD

/dovecot/src/imap/client.c /dovecot/src/imap/client.h /dovecot/src/imap/cmd-append.c /dovecot/src/imap/cmd-copy.c /dovecot/src/imap/cmd-fetch.c /dovecot/src/imap/cmd-search.c /dovecot/src/imap/cmd-select.c /dovecot/src/imap/cmd-store.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-status.c /dovecot/src/imap/imap-sync.c /dovecot/src/lib-imap/imap-util.c /dovecot/src/lib-imap/imap-util.h /dovecot/src/lib-index/Makefile.am /dovecot/src/lib-index/mail-index-map.c /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-sync-ext.c /dovecot/src/lib-index/mail-index-sync-keywords.c /dovecot/src/lib-index/mail-index-sync-private.h /dovecot/src/lib-index/mail-index-sync-update.c /dovecot/src/lib-index/mail-index-transaction.c /dovecot/src/lib-index/mail-index-view-sync.c /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-index/mail-index.h cydir/cydir-mail.c cydir/cydir-storage.c dbox/dbox-mail.c dbox/dbox-storage.c index-mail.c index-mail.h index-search.c index-status.c index-storage.c index-storage.h index-transaction.c maildir/maildir-mail.c maildir/maildir-storage.c mbox/mbox-mail.c mbox/mbox-storage.c raw/raw-mail.c raw/raw-storage.c /dovecot/src/lib-storage/mail-search-build.c /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail.c
838e367716bbd5e44b4a1691db9cbf72af53e9f0 14-Feb-2008 Timo Sirainen <tss@iki.fi>

Added mail_set_cache_corrupted() to rebuild the cache file and force recalculating the given field. --HG-- branch : HEAD

277506e6e05cdac79bacfb57e629e2fa0aa1ffdc 14-Feb-2008 Timo Sirainen <tss@iki.fi>

Added mail_set_cache_corrupted() to rebuild the cache file and force recalculating the given field. --HG-- branch : HEAD

2d1663351e67fd778ed34df09b8ad5fe29da23d9 25-Jan-2008 Timo Sirainen <tss@iki.fi>

If mail saving fails, don't try to update cache file (only to have the changes rollbacked). --HG-- branch : HEAD

eb85b91195d29df67077cc02a60b7851b6293eff 22-Dec-2007 Timo Sirainen <tss@iki.fi>

Assert-crash if mail's input stream is closed too early or too late. --HG-- branch : HEAD

a757f31393b9d6fc7760a9dec8363404ab3ae576 09-Dec-2007 Timo Sirainen <tss@iki.fi>

Added mail_get_keyword_indexes() --HG-- branch : HEAD

ae1b268ffff743ad9927c304a1344c5cbd7f909d 22-Nov-2007 Timo Sirainen <tss@iki.fi>

Cleanups/rewrites to how/when date/size caching is done. --HG-- branch : HEAD

86ad841251a38aa9ffcf4db4ee2c9fd449121bcb 22-Nov-2007 Timo Sirainen <tss@iki.fi>

Don't cache all headers just because they're listed in cache file. First check if we actually want to cache them. --HG-- branch : HEAD

c25356d5978632df6203437e1953bcb29e0c736f 16-Sep-2007 Timo Sirainen <tss@iki.fi>

Changed .h ifdef/defines to use <NAME>_H format. --HG-- branch : HEAD

/dovecot/src/auth/auth-cache.h /dovecot/src/auth/auth-client-connection.h /dovecot/src/auth/auth-client-interface.h /dovecot/src/auth/auth-master-connection.h /dovecot/src/auth/auth-master-interface.h /dovecot/src/auth/auth-master-listener.h /dovecot/src/auth/auth-request-handler.h /dovecot/src/auth/auth-request.h /dovecot/src/auth/auth-stream.h /dovecot/src/auth/auth-worker-client.h /dovecot/src/auth/auth-worker-server.h /dovecot/src/auth/auth.h /dovecot/src/auth/common.h /dovecot/src/auth/db-ldap.h /dovecot/src/auth/db-passwd-file.h /dovecot/src/auth/db-sql.h /dovecot/src/auth/mech.h /dovecot/src/auth/mycrypt.h /dovecot/src/auth/otp-skey-common.h /dovecot/src/auth/passdb-blocking.h /dovecot/src/auth/passdb-cache.h /dovecot/src/auth/passdb.h /dovecot/src/auth/password-scheme.h /dovecot/src/auth/plain-common.h /dovecot/src/auth/userdb-blocking.h /dovecot/src/auth/userdb-static.h /dovecot/src/auth/userdb-vpopmail.h /dovecot/src/auth/userdb.h /dovecot/src/deliver/auth-client.h /dovecot/src/deliver/deliver.h /dovecot/src/deliver/duplicate.h /dovecot/src/deliver/mail-send.h /dovecot/src/deliver/smtp-client.h /dovecot/src/dict/dict-cache.h /dovecot/src/dict/dict-server.h /dovecot/src/imap-login/client-authenticate.h /dovecot/src/imap-login/client.h /dovecot/src/imap-login/imap-proxy.h /dovecot/src/imap/client.h /dovecot/src/imap/commands-util.h /dovecot/src/imap/commands.h /dovecot/src/imap/common.h /dovecot/src/imap/imap-expunge.h /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-messageset.h /dovecot/src/imap/imap-search.h /dovecot/src/imap/imap-sort.h /dovecot/src/imap/imap-status.h /dovecot/src/imap/imap-sync.h /dovecot/src/imap/imap-thread.h /dovecot/src/lib-auth/auth-client.h /dovecot/src/lib-auth/auth-server-connection.h /dovecot/src/lib-auth/auth-server-request.h /dovecot/src/lib-charset/charset-utf8.h /dovecot/src/lib-dict/dict-client.h /dovecot/src/lib-dict/dict-private.h /dovecot/src/lib-dict/dict-sql.h /dovecot/src/lib-dict/dict.h /dovecot/src/lib-imap/imap-base-subject.h /dovecot/src/lib-imap/imap-bodystructure.h /dovecot/src/lib-imap/imap-date.h /dovecot/src/lib-imap/imap-envelope.h /dovecot/src/lib-imap/imap-match.h /dovecot/src/lib-imap/imap-parser.h /dovecot/src/lib-imap/imap-quote.h /dovecot/src/lib-imap/imap-util.h /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-cache.h /dovecot/src/lib-index/mail-hash.h /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-sync-private.h /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-view-private.h /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log-private.h /dovecot/src/lib-index/mail-transaction-log.h /dovecot/src/lib-index/mailbox-list-index-private.h /dovecot/src/lib-index/mailbox-list-index.h /dovecot/src/lib-mail/istream-header-filter.h /dovecot/src/lib-mail/mail-types.h /dovecot/src/lib-mail/message-address.h /dovecot/src/lib-mail/message-date.h /dovecot/src/lib-mail/message-decoder.h /dovecot/src/lib-mail/message-header-decode.h /dovecot/src/lib-mail/message-header-parser.h /dovecot/src/lib-mail/message-id.h /dovecot/src/lib-mail/message-parser.h /dovecot/src/lib-mail/message-part-serialize.h /dovecot/src/lib-mail/message-search.h /dovecot/src/lib-mail/message-send.h /dovecot/src/lib-mail/message-size.h /dovecot/src/lib-mail/quoted-printable.h /dovecot/src/lib-mail/rfc822-parser.h /dovecot/src/lib-ntlm/ntlm-byteorder.h /dovecot/src/lib-ntlm/ntlm-des.h /dovecot/src/lib-ntlm/ntlm-encrypt.h /dovecot/src/lib-ntlm/ntlm-flags.h /dovecot/src/lib-ntlm/ntlm-message.h /dovecot/src/lib-ntlm/ntlm-types.h /dovecot/src/lib-ntlm/ntlm.h /dovecot/src/lib-otp/otp-dictionary.h /dovecot/src/lib-otp/otp-hash.h /dovecot/src/lib-otp/otp-parity.h /dovecot/src/lib-otp/otp-parse.h /dovecot/src/lib-otp/otp.h /dovecot/src/lib-settings/settings.h /dovecot/src/lib-sql/sql-api-private.h /dovecot/src/lib-sql/sql-api.h cydir/cydir-storage.h cydir/cydir-sync.h dbox/dbox-file.h dbox/dbox-index.h dbox/dbox-storage.h dbox/dbox-sync.h index-mail.h index-sort.h index-storage.h index-sync-changes.h maildir/maildir-filename.h maildir/maildir-keywords.h maildir/maildir-storage.h maildir/maildir-sync.h maildir/maildir-uidlist.h mbox/istream-raw-mbox.h mbox/mbox-file.h mbox/mbox-from.h mbox/mbox-lock.h mbox/mbox-md5.h mbox/mbox-storage.h mbox/mbox-sync-private.h /dovecot/src/lib-storage/list/index-mailbox-list.h /dovecot/src/lib-storage/list/mailbox-list-fs.h /dovecot/src/lib-storage/list/mailbox-list-maildir.h /dovecot/src/lib-storage/list/mailbox-list-subscriptions.h /dovecot/src/lib-storage/list/subscription-file.h /dovecot/src/lib-storage/mail-copy.h /dovecot/src/lib-storage/mail-error.h /dovecot/src/lib-storage/mail-namespace.h /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mailbox-list-private.h /dovecot/src/lib-storage/mailbox-list.h /dovecot/src/lib-storage/mailbox-tree.h /dovecot/src/lib/array-decl.h /dovecot/src/lib/array.h /dovecot/src/lib/backtrace-string.h /dovecot/src/lib/base64.h /dovecot/src/lib/bsearch-insert-pos.h /dovecot/src/lib/buffer.h /dovecot/src/lib/close-keep-errno.h /dovecot/src/lib/compat.h /dovecot/src/lib/crc32.h /dovecot/src/lib/data-stack.h /dovecot/src/lib/env-util.h /dovecot/src/lib/failures.h /dovecot/src/lib/fd-close-on-exec.h /dovecot/src/lib/fd-set-nonblock.h /dovecot/src/lib/fdpass.h /dovecot/src/lib/file-cache.h /dovecot/src/lib/file-copy.h /dovecot/src/lib/file-dotlock.h /dovecot/src/lib/file-lock.h /dovecot/src/lib/file-set-size.h /dovecot/src/lib/hash.h /dovecot/src/lib/hex-binary.h /dovecot/src/lib/hex-dec.h /dovecot/src/lib/hmac-md5.h /dovecot/src/lib/home-expand.h /dovecot/src/lib/hostpid.h /dovecot/src/lib/imem.h /dovecot/src/lib/ioloop-internal.h /dovecot/src/lib/ioloop-iolist.h /dovecot/src/lib/ioloop-notify-fd.h /dovecot/src/lib/ioloop.h /dovecot/src/lib/iostream-internal.h /dovecot/src/lib/istream-internal.h /dovecot/src/lib/istream-seekable.h /dovecot/src/lib/istream-tee.h /dovecot/src/lib/istream.h /dovecot/src/lib/lib-signals.h /dovecot/src/lib/lib.h /dovecot/src/lib/macros.h /dovecot/src/lib/md4.h /dovecot/src/lib/md5.h /dovecot/src/lib/mempool.h /dovecot/src/lib/mkdir-parents.h /dovecot/src/lib/mmap-util.h /dovecot/src/lib/module-context.h /dovecot/src/lib/module-dir.h /dovecot/src/lib/mountpoint.h /dovecot/src/lib/network.h /dovecot/src/lib/nfs-workarounds.h /dovecot/src/lib/ostream-crlf.h /dovecot/src/lib/ostream-internal.h /dovecot/src/lib/ostream.h /dovecot/src/lib/primes.h /dovecot/src/lib/printf-format-fix.h /dovecot/src/lib/process-title.h /dovecot/src/lib/randgen.h /dovecot/src/lib/read-full.h /dovecot/src/lib/restrict-access.h /dovecot/src/lib/restrict-process-size.h /dovecot/src/lib/safe-memset.h /dovecot/src/lib/safe-mkdir.h /dovecot/src/lib/safe-mkstemp.h /dovecot/src/lib/sendfile-util.h /dovecot/src/lib/seq-range-array.h /dovecot/src/lib/sha1.h /dovecot/src/lib/str-find.h /dovecot/src/lib/str-sanitize.h /dovecot/src/lib/str.h /dovecot/src/lib/strescape.h /dovecot/src/lib/strfuncs.h /dovecot/src/lib/unichar.h /dovecot/src/lib/unix-socket-create.h /dovecot/src/lib/unlink-directory.h /dovecot/src/lib/unlink-lockfiles.h /dovecot/src/lib/utc-mktime.h /dovecot/src/lib/utc-offset.h /dovecot/src/lib/var-expand.h /dovecot/src/lib/write-full.h /dovecot/src/login-common/client-common.h /dovecot/src/login-common/common.h /dovecot/src/login-common/login-proxy.h /dovecot/src/login-common/master.h /dovecot/src/login-common/sasl-server.h /dovecot/src/login-common/ssl-proxy.h /dovecot/src/master/askpass.h /dovecot/src/master/auth-process.h /dovecot/src/master/capabilities.h /dovecot/src/master/child-process.h /dovecot/src/master/common.h /dovecot/src/master/dict-process.h /dovecot/src/master/dup2-array.h /dovecot/src/master/listener.h /dovecot/src/master/log.h /dovecot/src/master/login-process.h /dovecot/src/master/mail-process.h /dovecot/src/master/master-login-interface.h /dovecot/src/master/master-settings.h /dovecot/src/master/ssl-init.h /dovecot/src/master/syslog-util.h /dovecot/src/plugins/acl/acl-api-private.h /dovecot/src/plugins/acl/acl-api.h /dovecot/src/plugins/acl/acl-backend-vfile.h /dovecot/src/plugins/acl/acl-cache.h /dovecot/src/plugins/acl/acl-plugin.h /dovecot/src/plugins/convert/convert-plugin.h /dovecot/src/plugins/convert/convert-storage.h /dovecot/src/plugins/expire/auth-client.h /dovecot/src/plugins/expire/expire-env.h /dovecot/src/plugins/expire/expire-plugin.h /dovecot/src/plugins/fts-lucene/fts-lucene-plugin.h /dovecot/src/plugins/fts-lucene/lucene-wrapper.h /dovecot/src/plugins/fts-squat/fts-squat-plugin.h /dovecot/src/plugins/fts-squat/squat-trie-private.h /dovecot/src/plugins/fts-squat/squat-trie.h /dovecot/src/plugins/fts-squat/squat-uidlist.h /dovecot/src/plugins/fts/fts-api-private.h /dovecot/src/plugins/fts/fts-api.h /dovecot/src/plugins/fts/fts-plugin.h /dovecot/src/plugins/imap-quota/imap-quota-plugin.h /dovecot/src/plugins/lazy-expunge/lazy-expunge-plugin.h /dovecot/src/plugins/mail-log/mail-log-plugin.h /dovecot/src/plugins/mbox-snarf/mbox-snarf-plugin.h /dovecot/src/plugins/quota/quota-fs.h /dovecot/src/plugins/quota/quota-plugin.h /dovecot/src/plugins/quota/quota-private.h /dovecot/src/plugins/quota/quota.h /dovecot/src/plugins/trash/trash-plugin.h /dovecot/src/plugins/zlib/istream-zlib.h /dovecot/src/plugins/zlib/zlib-plugin.h /dovecot/src/pop3-login/client-authenticate.h /dovecot/src/pop3-login/client.h /dovecot/src/pop3-login/pop3-proxy.h /dovecot/src/pop3/capability.h /dovecot/src/pop3/client.h /dovecot/src/pop3/commands.h /dovecot/src/pop3/common.h
4bab017ff69d6877253dde54b5a5f1f3f5e92fdf 13-Aug-2007 Timo Sirainen <tss@iki.fi>

mail.close() virtual function finishing. --HG-- branch : HEAD

0d86aa0d47f7393c669c084b34c0537b193688ad 13-Aug-2007 Timo Sirainen <tss@iki.fi>

Added mail.close() virtual function. --HG-- branch : HEAD

83bb013a99f0936995f9c7a1077822662d8fefdb 12-Aug-2007 Timo Sirainen <tss@iki.fi>

mail_*() APIs changed to return int and return the actual data as pointer. Changed some code to do error handling a bit better. --HG-- branch : HEAD

/dovecot/src/deliver/deliver.c /dovecot/src/deliver/mail-send.c /dovecot/src/imap/imap-fetch-body.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-thread.c cydir/cydir-mail.c dbox/dbox-mail.c index-mail-headers.c index-mail.c index-mail.h index-search.c index-sort.c maildir/maildir-mail.c maildir/maildir-save.c mbox/mbox-mail.c /dovecot/src/lib-storage/mail-copy.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail.c /dovecot/src/plugins/expire/expire-plugin.c /dovecot/src/plugins/expire/expire-tool.c /dovecot/src/plugins/fts/fts-storage.c /dovecot/src/plugins/mail-log/mail-log-plugin.c /dovecot/src/plugins/quota/quota-count.c /dovecot/src/plugins/quota/quota-storage.c /dovecot/src/plugins/quota/quota.c /dovecot/src/plugins/trash/trash-plugin.c /dovecot/src/pop3/client.c /dovecot/src/pop3/commands.c
73b50eecfc31750a312e2f940023f522eb07178c 12-Aug-2007 Timo Sirainen <tss@iki.fi>

mail_index_lookup*() can't fail anymore. Changed several APIs not to return failure anymore. --HG-- branch : HEAD

/dovecot/src/deliver/deliver.c /dovecot/src/imap/cmd-store.c /dovecot/src/imap/imap-expunge.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-sync.c /dovecot/src/imap/imap-thread.c /dovecot/src/lib-index/mail-cache-lookup.c /dovecot/src/lib-index/mail-index-sync.c /dovecot/src/lib-index/mail-index-transaction-view.c /dovecot/src/lib-index/mail-index-transaction.c /dovecot/src/lib-index/mail-index-view-private.h /dovecot/src/lib-index/mail-index-view.c /dovecot/src/lib-index/mail-index.h cydir/cydir-save.c dbox/dbox-file.c dbox/dbox-save.c index-mail.c index-mail.h index-search.c index-sort.c index-sort.h maildir/maildir-save.c maildir/maildir-sync-index.c mbox/mbox-file.c mbox/mbox-save.c mbox/mbox-sync-parse.c mbox/mbox-sync-private.h mbox/mbox-sync.c /dovecot/src/lib-storage/list/index-mailbox-list-sync.c /dovecot/src/lib-storage/list/index-mailbox-list.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail.c /dovecot/src/plugins/acl/acl-mailbox.c /dovecot/src/plugins/expire/expire-plugin.c /dovecot/src/plugins/expire/expire-tool.c /dovecot/src/plugins/fts/fts-storage.c /dovecot/src/plugins/lazy-expunge/lazy-expunge-plugin.c /dovecot/src/plugins/mail-log/mail-log-plugin.c /dovecot/src/plugins/quota/quota-storage.c /dovecot/src/plugins/trash/trash-plugin.c /dovecot/src/pop3/commands.c
a6816f64a17982a1c23416d3dd168e82a5fafda6 12-Aug-2007 Timo Sirainen <tss@iki.fi>

Don't store data->rec. It may not stay usable. --HG-- branch : HEAD

7a54d58280aad8a64f266c61273ea1e8dff511a3 11-Aug-2007 Timo Sirainen <tss@iki.fi>

Cache received date, sent date, save date and physical size when saving mails if they're wanted. --HG-- branch : HEAD

dce5a2719df4fc64a8762d2aa94ba98dcf9cd6fe 19-Jul-2007 Timo Sirainen <tss@iki.fi>

Added mail_get_first_header_utf8() and mail_get_headers_utf8(). --HG-- branch : HEAD

e54512a5189192fe72d1e2c53927c98c5ac920b4 18-Jul-2007 Timo Sirainen <tss@iki.fi>

Moved tee stream handling to index-mail code. --HG-- branch : HEAD

45b2a27617d8475f71fdfc870690e46cd63849f2 15-Jul-2007 Timo Sirainen <tss@iki.fi>

We didn't cache correctly headers that existed in cache file for other messages, but we weren't currently interested of. --HG-- branch : HEAD

c36ec256c1bd1abe1c12e792cf64f0b7e3b3135a 12-Jul-2007 Timo Sirainen <tss@iki.fi>

Store virtual sizes to dovecot-uidlist if we want to use them all the time. If nothing else than virtual size is wanted to be known (ie. POP3 or POP3-like IMAP client), don't bother updating cache file at all. --HG-- branch : HEAD

77af0bd168cf3e3ddc3ae68abc82bfad7e9b5ff4 04-Apr-2007 Timo Sirainen <tss@iki.fi>

Don't feed index_mail_parser headers while searching message bodies, unless we actually need something from there. --HG-- branch : HEAD

31be5ed1551c98cddeb2295a594f010aaf4b76bc 02-Nov-2006 Timo Sirainen <tss@iki.fi>

Compiling fix --HG-- branch : HEAD

e192a3b1ca8ae857e7d87298ea507d32977ba570 13-Oct-2006 Timo Sirainen <tss@iki.fi>

Don't use time_t anymore in cache file. uint32_t is large enough and makes cache files compatible between 32bit and 64bit systems. --HG-- branch : HEAD

5cda0bfea032000c4a51134c748d9efe6614870b 31-Jul-2006 Timo Sirainen <tss@iki.fi>

index_mail_cache_add() was used with lib-storage's internal indexes for most of the received date, physical size and virtual size cache additions. This may have caused all kinds of trouble, but since it went unnoticed this long perhaps not.. --HG-- branch : HEAD

90adcaa0a00eba29b7fbd50ca66be11c8d086d6a 29-Jun-2006 Timo Sirainen <timo.sirainen@movial.fi>

Added mail_get_save_date() and some cleanups. --HG-- branch : HEAD

8d80659e504ffb34bb0c6a633184fece35751b18 28-Jun-2006 Timo Sirainen <tss@iki.fi>

Array API redesigned to work using unions. It now provides type safety without having to enable DEBUG, as long as the compiler supports typeof(). Its API changed a bit. It now allows directly accessing the array contents, although that's not necessarily recommended. Changed existing array usage to be type safe in a bit more places. Removed array_t completely. Also did s/modifyable/modifiable/. --HG-- branch : HEAD

/dovecot/src/auth/auth-master-listener.c /dovecot/src/auth/auth-master-listener.h /dovecot/src/auth/auth-request-handler.c /dovecot/src/auth/auth-worker-server.c /dovecot/src/auth/mech-gssapi.c /dovecot/src/auth/userdb-static.c /dovecot/src/dict/dict-server.c /dovecot/src/imap/client.h /dovecot/src/imap/cmd-list.c /dovecot/src/imap/commands-util.c /dovecot/src/imap/commands-util.h /dovecot/src/imap/commands.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/lib-auth/auth-client.c /dovecot/src/lib-dict/dict.c /dovecot/src/lib-imap/imap-base-subject.c /dovecot/src/lib-index/mail-cache-compress.c /dovecot/src/lib-index/mail-cache-lookup.c /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-cache-transaction.c /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-sync-ext.c /dovecot/src/lib-index/mail-index-sync-private.h /dovecot/src/lib-index/mail-index-sync-update.c /dovecot/src/lib-index/mail-index-sync.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-transaction-view.c /dovecot/src/lib-index/mail-index-transaction.c /dovecot/src/lib-index/mail-index-view-private.h /dovecot/src/lib-index/mail-index-view-sync.c /dovecot/src/lib-index/mail-index-view.c /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log-append.c /dovecot/src/lib-mail/mail-types.h /dovecot/src/lib-mail/message-body-search.c /dovecot/src/lib-mail/message-header-search.c /dovecot/src/lib-sql/driver-mysql.c /dovecot/src/lib-sql/sql-api-private.h /dovecot/src/lib-sql/sql-api.c dbox/dbox-keywords.c dbox/dbox-save.c dbox/dbox-storage.h dbox/dbox-sync-expunge.c dbox/dbox-sync-full.c dbox/dbox-sync.c dbox/dbox-sync.h dbox/dbox-uidlist.c dbox/dbox-uidlist.h index-mail-headers.c index-mail.c index-mail.h index-sort.c index-storage.h index-sync.c maildir/maildir-keywords.c maildir/maildir-save.c maildir/maildir-storage.c maildir/maildir-storage.h maildir/maildir-sync.c maildir/maildir-uidlist.c mbox/mbox-save.c mbox/mbox-sync-parse.c mbox/mbox-sync-private.h mbox/mbox-sync-rewrite.c mbox/mbox-sync-update.c mbox/mbox-sync.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib/array-decl.h /dovecot/src/lib/array.h /dovecot/src/lib/buffer.c /dovecot/src/lib/buffer.h /dovecot/src/lib/ioloop-epoll.c /dovecot/src/lib/istream.c /dovecot/src/lib/istream.h /dovecot/src/lib/lib.h /dovecot/src/lib/module-dir.c /dovecot/src/lib/seq-range-array.c /dovecot/src/lib/seq-range-array.h /dovecot/src/lib/str.c /dovecot/src/lib/str.h /dovecot/src/master/mail-process.c /dovecot/src/master/master-settings.h /dovecot/src/plugins/acl/acl-backend-vfile.c /dovecot/src/plugins/acl/acl-cache.c /dovecot/src/plugins/acl/acl-mailbox.c /dovecot/src/plugins/acl/acl-plugin.h /dovecot/src/plugins/quota/quota-dirsize.c /dovecot/src/plugins/quota/quota-private.h /dovecot/src/plugins/quota/quota-storage.c /dovecot/src/plugins/quota/quota.c /dovecot/src/plugins/trash/trash-plugin.c /dovecot/src/plugins/zlib/zlib-plugin.c
a12399903f415a7e14c2816cffa2f7a09dcbb097 15-May-2006 Timo Sirainen <timo.sirainen@movial.fi>

Added mail_set_uid() to select a mail by UID. --HG-- branch : HEAD

2ebeb22b9a8a8bb7fbe2f2e2908478a220792b87 09-May-2006 Timo Sirainen <timo.sirainen@movial.fi>

Changed mailbox_save_*() API a bit: Moved the struct mail *dest_mail to save_init() instead of being in save_finish(). This way you can request wanted fields from the mail while it's being saved. With maildir the message is being parsed at the same time as it's being saved, and the results are stored into cache file. --HG-- branch : HEAD

bb6a0eeab27569790d58a036f67dcd2a965fc539 08-May-2006 Timo Sirainen <timo.sirainen@movial.fi>

Cleanups and minor logic changes as to what should be cached. --HG-- branch : HEAD

97511ac4d7607e1ba64ce151eda3d9b5f9775519 18-Jan-2006 Timo Sirainen <tss@iki.fi>

Added mail_cache_min_mail_count setting. --HG-- branch : HEAD

3af0a1a2c2ef22a14c6b3c5cc4f780a2ea4df438 13-Jul-2005 Timo Sirainen <tss@iki.fi>

Header caching was more or less broken. --HG-- branch : HEAD

d2b94d25f842cd1b7acaf4dd7de858f7c6a821c9 03-Jul-2005 Timo Sirainen <tss@iki.fi>

Mark *all* non-found headers that are registered in cache file as non-found at the end of header parsing. --HG-- branch : HEAD

1b4441e3e6f9e78ebeae8218de971959cd55bf60 03-Jul-2005 Timo Sirainen <tss@iki.fi>

Added MAIL_CACHE_FLAG_TEXT_PLAIN_7BIT_ASCII to compress simple BODY and BODYSTRUCTURE replies into a single flag + message parts. Also did other cleanups. --HG-- branch : HEAD

55773f17bccf6361d6599ffcbe072d7c9fe205bf 03-Jul-2005 Timo Sirainen <tss@iki.fi>

Try to be a bit smarter about when to parse header/body. --HG-- branch : HEAD

bb10ebcf076c959c752f583746d83805d7686df8 02-Apr-2005 Timo Sirainen <tss@iki.fi>

Keywords are now stored in X-Keywords headers in mbox. Did several related API changes to get better performance. --HG-- branch : HEAD

/dovecot/src/imap/client.h /dovecot/src/imap/cmd-append.c /dovecot/src/imap/cmd-select.c /dovecot/src/imap/commands-util.c /dovecot/src/imap/commands-util.h /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-sync-keywords.c /dovecot/src/lib-index/mail-index-sync-private.h /dovecot/src/lib-index/mail-index-sync.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-transaction.c /dovecot/src/lib-index/mail-index-view.c /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log-append.c index-mail.c index-mail.h index-status.c index-storage.c index-storage.h mbox/mbox-save.c mbox/mbox-sync-parse.c mbox/mbox-sync-private.h mbox/mbox-sync-rewrite.c mbox/mbox-sync-update.c mbox/mbox-sync.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib/array.h
87460b08cb97b31cde640d4975a6aa2c1d0e7226 29-Mar-2005 Timo Sirainen <tss@iki.fi>

Renamed mail_get_header() to mail_get_first_header() and mail_gets_headers() to mail_get_header_stream(). Added new mail_get_headers() which returns NULL-terminated string list of all found headers. --HG-- branch : HEAD

cf52b37d807553e91a2d6fb7cb2c8b4c34589e1d 29-Mar-2005 Timo Sirainen <tss@iki.fi>

Changed some buffers to arrays. --HG-- branch : HEAD

fdc557286bc9f92c5f3bb49096ff6e2bcec0ea79 15-Mar-2005 Timo Sirainen <tss@iki.fi>

Major mail-storage API changes. It's now a bit cleaner and much more plugin friendly. Removed proxy_mailbox* stuff, they were difficult to use and there's now much easier way to replace them. --HG-- branch : HEAD

/dovecot/src/deliver/deliver.c /dovecot/src/imap/cmd-append.c /dovecot/src/imap/cmd-copy.c /dovecot/src/imap/cmd-search.c /dovecot/src/imap/cmd-store.c /dovecot/src/imap/common.h /dovecot/src/imap/imap-expunge.c /dovecot/src/imap/imap-fetch-body.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-sort.c /dovecot/src/imap/imap-sync.c /dovecot/src/imap/imap-thread.c /dovecot/src/imap/main.c /dovecot/src/imap/namespace.c /dovecot/src/lib-storage/Makefile.am index-fetch.c index-mail-headers.c index-mail.c index-mail.h index-search.c index-storage.c index-storage.h index-transaction.c maildir/maildir-copy.c maildir/maildir-mail.c maildir/maildir-save.c maildir/maildir-storage.c maildir/maildir-storage.h maildir/maildir-transaction.c mbox/mbox-mail.c mbox/mbox-save.c mbox/mbox-storage.c mbox/mbox-storage.h mbox/mbox-transaction.c /dovecot/src/lib-storage/mail-copy.c /dovecot/src/lib-storage/mail-copy.h /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/mail.c /dovecot/src/lib-storage/proxy-mail-storage.c /dovecot/src/lib-storage/proxy-mail-storage.h /dovecot/src/lib-storage/proxy-mail.c /dovecot/src/lib-storage/proxy-mail.h /dovecot/src/lib-storage/proxy-mailbox.c /dovecot/src/lib-storage/proxy-mailbox.h /dovecot/src/pop3/client.c /dovecot/src/pop3/commands.c
41e1c7380edda701719d8ce1fb4d465d2ec4c84d 10-Jan-2005 Timo Sirainen <tss@iki.fi>

Keyword fixes. --HG-- branch : HEAD

b093b87c303d420bd14aeb53498f881ef2944aa0 07-Jan-2005 Timo Sirainen <tss@iki.fi>

mail->expunged field wasn't actually set. Now it's always set if wanted_fields contains message header or body. --HG-- branch : HEAD

33a266b34369641349d5116de6fd76b2e2bd13c8 28-Dec-2004 Timo Sirainen <tss@iki.fi>

Removed "mail.uid". It's not used and will not be used. --HG-- branch : HEAD

16c89b1260c9d07c01c83a9219424d3727069b2e 26-Dec-2004 Timo Sirainen <tss@iki.fi>

Initial support for keywords. Syncing to mbox/maildir doesn't work yet. --HG-- branch : HEAD

/dovecot/src/imap/cmd-append.c /dovecot/src/imap/cmd-store.c /dovecot/src/imap/commands-util.c /dovecot/src/imap/commands-util.h /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-sync.c /dovecot/src/lib-imap/imap-util.c /dovecot/src/lib-imap/imap-util.h /dovecot/src/lib-index/Makefile.am /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-sync-keywords.c /dovecot/src/lib-index/mail-index-sync-private.h /dovecot/src/lib-index/mail-index-sync-update.c /dovecot/src/lib-index/mail-index-sync.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-transaction.c /dovecot/src/lib-index/mail-index-view-sync.c /dovecot/src/lib-index/mail-index-view.c /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log.c /dovecot/src/lib-index/mail-transaction-log.h /dovecot/src/lib-index/mail-transaction-util.c /dovecot/src/lib-mail/mail-types.h index-mail.c index-mail.h index-search.c index-status.c index-storage.c index-storage.h index-sync.c maildir/maildir-copy.c maildir/maildir-mail.c maildir/maildir-save.c maildir/maildir-storage.c maildir/maildir-storage.h maildir/maildir-sync.c maildir/maildir-util.c mbox/mbox-mail.c mbox/mbox-save.c mbox/mbox-storage.c mbox/mbox-storage.h mbox/mbox-sync-private.h mbox/mbox-sync-update.c mbox/mbox-sync.c /dovecot/src/lib-storage/mail-copy.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/proxy-mail.c /dovecot/src/lib-storage/proxy-mailbox.c /dovecot/src/pop3/client.c /dovecot/src/pop3/commands.c
bcd8a160ce32e5afe3566793b5a144028063b2fb 04-Sep-2004 Timo Sirainen <tss@iki.fi>

Cache field indexes are cache file specific, not globals. --HG-- branch : HEAD

e667602217af55105d44d8d9b75f09a8a9ac2f14 04-Sep-2004 Timo Sirainen <tss@iki.fi>

Fixed cache flags to work again. Flags are cached by default now. --HG-- branch : HEAD

d67fde1a8ebc1d85704c5986d8f93aae97eccef3 28-Aug-2004 Timo Sirainen <tss@iki.fi>

Added mail.get_physical_size(). --HG-- branch : HEAD

a58e4aec412a30352d9d45e63726cac044aa6aa5 23-Jul-2004 Timo Sirainen <tss@iki.fi>

Fixed a crash with fetch (rfc822.size body). Also fixed it so it doesn't anymore parse the message body twice. --HG-- branch : HEAD

98dd8e6e81f11f1e6040ca72f4916242d246c863 23-Jul-2004 Timo Sirainen <tss@iki.fi>

get_index() wasn't working with caching disabled --HG-- branch : HEAD

2aecf7be5834e7f6520f8deaad683a6fa1de4d61 18-Jul-2004 Timo Sirainen <tss@iki.fi>

header caching fixes --HG-- branch : HEAD

e015e2f7e7f48874495f9df8b0dd192b7ffcb5cc 18-Jul-2004 Timo Sirainen <tss@iki.fi>

Header caching redesigned. New design allows caching decisions per field, so they can be divided to temporary/permanent. Cached headers are now always returned in original order, old code didn't guarantee it. Some other caching changes. (still missing code to store changes in caching decisions) --HG-- branch : HEAD

/dovecot/src/imap/imap-fetch-body-section.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-sort.c /dovecot/src/imap/imap-thread.c /dovecot/src/lib-imap/imap-bodystructure.c /dovecot/src/lib-index/Makefile.am /dovecot/src/lib-index/mail-cache-compress.c /dovecot/src/lib-index/mail-cache-decisions.c /dovecot/src/lib-index/mail-cache-fields.c /dovecot/src/lib-index/mail-cache-lookup.c /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-cache-transaction.c /dovecot/src/lib-index/mail-cache.c /dovecot/src/lib-index/mail-cache.h /dovecot/src/lib-mail/istream-header-filter.c /dovecot/src/lib-mail/istream-header-filter.h index-mail-headers.c index-mail.c index-mail.h index-search.c index-storage.c index-storage.h maildir/maildir-storage.c mbox/mbox-mail.c mbox/mbox-storage.c /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/proxy-mail.c /dovecot/src/lib-storage/proxy-mailbox.c
1efb8b95e87ca3940cc74f9553a3c8ca5d85ead3 09-Jul-2004 Timo Sirainen <tss@iki.fi>

Always create cache transaction. Easier that way .. and fixes a crash. --HG-- branch : HEAD

992a13add4eea0810e4db0f042a595dddf85536a 08-Jul-2004 Timo Sirainen <tss@iki.fi>

Cache file fixes, API changes, etc. It's still in somewhat ugly state, but getting better.. --HG-- branch : HEAD

1171f0abf442638bac1827bb24a0b6b8eb682a82 04-Jul-2004 Timo Sirainen <tss@iki.fi>

Cache API updates. Don't return direct pointers to mmaped cache file anymore. --HG-- branch : HEAD

72cbf33ae81fde08384d30c779ff540752d9256c 04-Jul-2004 Timo Sirainen <tss@iki.fi>

Cache updating is done now by first reserving space where to write, and then writing to it whenever buffer gets full. There is no persistent cache file locks anymore because of this, but it also means that the same cached field may be written multiple times to the file by different processes. Also since we reserve more space than we actually need at first, it some space can be wasted if multiple processes are updating the cache. --HG-- branch : HEAD

33d63688ed8b26dc333e3c2edbfb2fe6e412604d 23-Jun-2004 Timo Sirainen <tss@iki.fi>

Added a framework for getting POP3 UIDL strings from mail-storage. The default still is uidvalidity.uid. Added beginnings of overriding it from X-UIDL header in mbox. --HG-- branch : HEAD

8fcff4c5b52f24d9c681805fdf06b486f1d0fcbe 06-May-2004 Timo Sirainen <tss@iki.fi>

mbox code compiles again, but syncing is only partially implemented so accessing mboxes fails.. Also some cleanups to index-storage and maildir code. --HG-- branch : HEAD

0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834 27-Apr-2004 Timo Sirainen <tss@iki.fi>

importing new index code. mbox still broken. --HG-- branch : HEAD

/dovecot/configure.in /dovecot/src/imap/Makefile.am /dovecot/src/imap/client.c /dovecot/src/imap/cmd-append.c /dovecot/src/imap/cmd-close.c /dovecot/src/imap/cmd-copy.c /dovecot/src/imap/cmd-create.c /dovecot/src/imap/cmd-delete.c /dovecot/src/imap/cmd-expunge.c /dovecot/src/imap/cmd-fetch.c /dovecot/src/imap/cmd-idle.c /dovecot/src/imap/cmd-list.c /dovecot/src/imap/cmd-logout.c /dovecot/src/imap/cmd-rename.c /dovecot/src/imap/cmd-search.c /dovecot/src/imap/cmd-select.c /dovecot/src/imap/cmd-sort.c /dovecot/src/imap/cmd-status.c /dovecot/src/imap/cmd-store.c /dovecot/src/imap/cmd-subscribe.c /dovecot/src/imap/cmd-thread.c /dovecot/src/imap/cmd-unselect.c /dovecot/src/imap/commands-util.c /dovecot/src/imap/imap-expunge.c /dovecot/src/imap/imap-expunge.h /dovecot/src/imap/imap-fetch-body-section.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-messageset.c /dovecot/src/imap/imap-messageset.h /dovecot/src/imap/imap-search.c /dovecot/src/imap/imap-search.h /dovecot/src/imap/imap-sort.c /dovecot/src/imap/imap-thread.c /dovecot/src/imap/mail-storage-callbacks.c /dovecot/src/imap/namespace.c /dovecot/src/lib-imap/imap-util.c /dovecot/src/lib-imap/imap-util.h /dovecot/src/lib-index/Makefile.am /dovecot/src/lib-index/mail-cache-compress.c /dovecot/src/lib-index/mail-cache-lookup.c /dovecot/src/lib-index/mail-cache-old.c /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-cache-transaction.c /dovecot/src/lib-index/mail-cache.c /dovecot/src/lib-index/mail-cache.h /dovecot/src/lib-index/mail-index-fsck.c /dovecot/src/lib-index/mail-index-lock.c /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/mail-index-reset.c /dovecot/src/lib-index/mail-index-sync-private.h /dovecot/src/lib-index/mail-index-sync-update.c /dovecot/src/lib-index/mail-index-sync.c /dovecot/src/lib-index/mail-index-transaction-private.h /dovecot/src/lib-index/mail-index-transaction.c /dovecot/src/lib-index/mail-index-view-private.h /dovecot/src/lib-index/mail-index-view-sync.c /dovecot/src/lib-index/mail-index-view.c /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/mail-transaction-log-private.h /dovecot/src/lib-index/mail-transaction-log-view.c /dovecot/src/lib-index/mail-transaction-log.c /dovecot/src/lib-index/mail-transaction-log.h /dovecot/src/lib-index/mail-transaction-util.c /dovecot/src/lib-index/mail-transaction-util.h /dovecot/src/lib-index/maildir/Makefile.am /dovecot/src/lib-index/mbox/Makefile.am /dovecot/src/lib-mail/Makefile.am /dovecot/src/lib-mail/mail-types.h /dovecot/src/lib-mail/message-parser.c /dovecot/src/lib-mail/message-parser.h /dovecot/src/lib-storage/Makefile.am Makefile.am index-copy.c index-expunge.c index-expunge.h index-fetch.c index-mail-headers.c index-mail.c index-mail.h index-mailbox-check.c index-messageset.c index-messageset.h index-search.c index-status.c index-storage.c index-storage.h index-sync.c index-transaction.c index-update-flags.c maildir/Makefile.am maildir/maildir-copy.c maildir/maildir-expunge.c maildir/maildir-list.c maildir/maildir-mail.c maildir/maildir-save.c maildir/maildir-storage.c maildir/maildir-storage.h maildir/maildir-sync.c maildir/maildir-transaction.c maildir/maildir-uidlist.c maildir/maildir-uidlist.h maildir/maildir-util.c mbox/Makefile.am mbox/istream-raw-mbox.c mbox/istream-raw-mbox.h mbox/mbox-expunge.c mbox/mbox-from.c mbox/mbox-from.h mbox/mbox-list.c mbox/mbox-save.c mbox/mbox-sync-header.c mbox/mbox-sync-parse.c mbox/mbox-sync-private.h mbox/mbox-sync-rewrite.c mbox/mbox-sync-update.c mbox/mbox-sync.c /dovecot/src/lib-storage/mail-save.c /dovecot/src/lib-storage/mail-save.h /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mail-storage-private.h /dovecot/src/lib-storage/mail-storage.c /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/proxy-mail-storage.c /dovecot/src/lib-storage/proxy-mail-storage.h /dovecot/src/lib-storage/proxy-mail.c /dovecot/src/lib-storage/proxy-mailbox.c /dovecot/src/lib-storage/proxy-mailbox.h /dovecot/src/lib-storage/register/Makefile.am /dovecot/src/lib-storage/subscription-file/Makefile.am /dovecot/src/lib-storage/subscription-file/subscription-file.c /dovecot/src/lib-storage/subscription-file/subscription-file.h /dovecot/src/lib/Makefile.am /dovecot/src/lib/compat.h /dovecot/src/lib/file-dotlock.c /dovecot/src/lib/file-lock.c /dovecot/src/lib/istream-data.c /dovecot/src/lib/istream-file.c /dovecot/src/lib/istream-limit.c /dovecot/src/lib/istream-mmap.c /dovecot/src/lib/macros.h /dovecot/src/lib/network.c /dovecot/src/lib/read-full.c /dovecot/src/lib/read-full.h /dovecot/src/lib/write-full.c /dovecot/src/lib/write-full.h /dovecot/src/pop3/client.c /dovecot/src/pop3/commands.c /dovecot/src/pop3/mail-storage-callbacks.c
644268f7848a7c4221146d0b11feb8ed5bbed233 08-Sep-2003 Timo Sirainen <tss@iki.fi>

Stop parsing cached headers when we've got everything. --HG-- branch : HEAD

96541d31299bb40b5a6efdbf9b4cb3d4f4b4a069 21-Aug-2003 Timo Sirainen <tss@iki.fi>

Message parsing can now be done in two parts - header and body. We're now more eager at parsing MIME structure for message. It's done whenever body has to be fully read (eg. rfc822.size). --HG-- branch : HEAD

645f258ea29afaf09b673fc65d1bd788dfec8db8 20-Aug-2003 Timo Sirainen <tss@iki.fi>

If BODY/BODYSTRUCTURE is requested with some other headers, parse the headers only once. If body contains multiple MIME parts, cache the internal MIME structure so BODY[part] fetching doesn't need to parse it again. --HG-- branch : HEAD

1bdda5c0c30463160c47151537e6bb2c6c994841 18-Aug-2003 Timo Sirainen <tss@iki.fi>

Changed how cached headers are stored. Previously when we added new headers, all the old headers were duplicated as well which wasted space. Also fixed several bugs in caching. --HG-- branch : HEAD

6789ed17e7ca4021713507baf0dcf6979bb42e0c 06-Aug-2003 Timo Sirainen <tss@iki.fi>

Index cache file rewrite. It's not finished yet and mbox support is completely broken. But it's getting difficult to maintain outside cvs :) --HG-- branch : HEAD

/dovecot/src/imap/cmd-copy.c /dovecot/src/imap/cmd-fetch.c /dovecot/src/imap/cmd-store.c /dovecot/src/imap/imap-fetch-body-section.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-search.c /dovecot/src/imap/imap-thread.c /dovecot/src/lib-imap/imap-envelope.c /dovecot/src/lib-imap/imap-envelope.h /dovecot/src/lib-index/Makefile.am /dovecot/src/lib-index/mail-cache.c /dovecot/src/lib-index/mail-cache.h /dovecot/src/lib-index/mail-custom-flags.c /dovecot/src/lib-index/mail-index-compress.c /dovecot/src/lib-index/mail-index-data.c /dovecot/src/lib-index/mail-index-data.h /dovecot/src/lib-index/mail-index-fsck.c /dovecot/src/lib-index/mail-index-open.c /dovecot/src/lib-index/mail-index-rebuild.c /dovecot/src/lib-index/mail-index-update-cache.c /dovecot/src/lib-index/mail-index-update.c /dovecot/src/lib-index/mail-index.c /dovecot/src/lib-index/mail-index.h /dovecot/src/lib-index/maildir/Makefile.am /dovecot/src/lib-index/maildir/maildir-build.c /dovecot/src/lib-index/maildir/maildir-expunge.c /dovecot/src/lib-index/maildir/maildir-index.c /dovecot/src/lib-index/maildir/maildir-index.h /dovecot/src/lib-index/maildir/maildir-open.c /dovecot/src/lib-index/maildir/maildir-sync.c /dovecot/src/lib-index/maildir/maildir-uidlist.c /dovecot/src/lib-index/maildir/maildir-update-flags.c /dovecot/src/lib-index/mbox/Makefile.am /dovecot/src/lib-index/mbox/mbox-append.c /dovecot/src/lib-index/mbox/mbox-index.c /dovecot/src/lib-index/mbox/mbox-index.h /dovecot/src/lib-index/mbox/mbox-open.c /dovecot/src/lib-index/mbox/mbox-rebuild.c /dovecot/src/lib-index/mbox/mbox-rewrite.c /dovecot/src/lib-index/mbox/mbox-sync-full.c /dovecot/src/lib-index/mbox/mbox-sync.c index-expunge.c index-fetch.c index-mail.c index-mail.h index-search.c index-storage.c index-storage.h maildir/maildir-copy.c /dovecot/src/lib-storage/mail-search.c /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mail-storage.h /dovecot/src/lib-storage/proxy-mailbox.c /dovecot/src/pop3/client.c /dovecot/src/pop3/commands.c
dbb1fb1c51727e2050792f8c333b212e22a36d69 26-Jul-2003 Timo Sirainen <tss@iki.fi>

API change for expunging messages. Not exactly what I wanted, but good enough. --HG-- branch : HEAD

6389aeec8c26b585e583c364b48ad12adf741898 23-Jul-2003 Timo Sirainen <tss@iki.fi>

API change for updating message flags. --HG-- branch : HEAD

5bc4a5fd9a421f4c5763e03c0449479cedcf9f06 26-Mar-2003 Timo Sirainen <tss@iki.fi>

Better handling for multiline headers. Before we skipped headers larger than input buffer size (8k with read (default), 256k with mmap). The skipping was also a bit buggy. Now we parse the lines one at a time. There's also a way to read the header fully into memory before parsing it, if really needed. --HG-- branch : HEAD

b7f14c9568e7edc75d1d7fd86751c02bc97cde3e 21-Jan-2003 Timo Sirainen <tss@iki.fi>

FETCH ENVELOPE failed if it wasn't already cached. --HG-- branch : HEAD

e8a59a1671127f87e2d22f42e84c572f28299d81 21-Jan-2003 Timo Sirainen <tss@iki.fi>

Forgot to add --HG-- branch : HEAD