History log of /dovecot/src/lib-index/mail-cache-private.h
Revision Date Author Comments Expand
bdcd91c28c0f5269d8971b9f5ec5d68f7155492a 08-Feb-2018 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-index: Fix assert-crash with lock_method=dotlock The dotlock wasn't deleted in all code paths. Fix this by simplifying the unlocking to be done the same way with and without dotlock. Fixes: Panic: file mail-cache.c: line 624 (mail_cache_lock_file): assertion failed: (cache->dotlock == NULL)

69a43b024f964c86a73f7940922c79b2960843cf 24-Jan-2018 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-index: Update comments for mail_cache_decision_*()

67bbcd664bebce9a507a49c67273be4814d07c97 12-Oct-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-index: Add mail_index_cache_optimization_settings

52b52b5f9e5d705f068cf38c4fd0e10931c776d9 06-Jun-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-index: Fix reset_id handling in mail_cache_get_missing_reason() cache Broken by bd897f82a5d9b00ba256b462d2056c2dc7df257c

bd897f82a5d9b00ba256b462d2056c2dc7df257c 05-Jun-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-index: Add cache to mail_cache_get_missing_reason() This avoids excessive CPU usage when it's called in a loop for many mails.

38228c961f0e2c5fb8a0620a8ce620bb245dc88d 11-May-2017 Aki Tuomi <aki.tuomi@dovecot.fi>

lib-index: Add mail_cache_expunge_count It can be called to correctly handle cache counters when records are removed.

e9594e86dc601b72c1636f2b901dcfbf4ffaf47f 21-Nov-2016 Aki Tuomi <aki.tuomi@dovecot.fi>

lib-index: Limit mmap errors in index cache to 1/s

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 mail-cache-private.h mail-cache-transaction.c mail-index-private.h mail-index-strmap.c mail-index-sync-private.h mail-index-sync.c mail-index-transaction-private.h mail-index-view-private.h mail-index-view-sync.c mail-index.h mail-transaction-log-private.h mail-transaction-log-view-private.h 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 /dovecot/src/lib-storage/index/cydir/cydir-save.c /dovecot/src/lib-storage/index/dbox-common/dbox-file.h /dovecot/src/lib-storage/index/dbox-common/dbox-save.h /dovecot/src/lib-storage/index/dbox-multi/mdbox-map-private.h /dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.h /dovecot/src/lib-storage/index/imapc/imapc-list.h /dovecot/src/lib-storage/index/imapc/imapc-save.c /dovecot/src/lib-storage/index/imapc/imapc-storage.h /dovecot/src/lib-storage/index/imapc/imapc-sync.h /dovecot/src/lib-storage/index/index-mail.h /dovecot/src/lib-storage/index/index-rebuild.h /dovecot/src/lib-storage/index/index-search-private.h /dovecot/src/lib-storage/index/index-search.c /dovecot/src/lib-storage/index/index-sort-string.c /dovecot/src/lib-storage/index/index-thread-finish.c /dovecot/src/lib-storage/index/index-thread-private.h /dovecot/src/lib-storage/index/index-thread.c /dovecot/src/lib-storage/index/istream-mail.c /dovecot/src/lib-storage/index/maildir/maildir-copy.c /dovecot/src/lib-storage/index/maildir/maildir-keywords.c /dovecot/src/lib-storage/index/maildir/maildir-save.c /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-sync.c /dovecot/src/lib-storage/index/maildir/maildir-uidlist.c /dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c /dovecot/src/lib-storage/index/mbox/mbox-save.c /dovecot/src/lib-storage/index/mbox/mbox-storage.h /dovecot/src/lib-storage/index/mbox/mbox-sync-private.h /dovecot/src/lib-storage/index/pop3c/pop3c-client.c /dovecot/src/lib-storage/index/pop3c/pop3c-storage.h /dovecot/src/lib-storage/index/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
ab70f55bb8d824ca1ed7c74196f2f502edd29cc7 07-Oct-2014 Timo Sirainen <tss@iki.fi>

lib-index: mail_cache_lock() partial rewrite. require_same_reset_id is no longer needed, if it ever was. If we're locking the cache file, we always want the latest one. The logic of locking in general was somewhat confusing and it probably didn't always successfully lock when it should have, because the reset_id happened to match an old file.

2219015cc814b18a72d8d37696a5bffc52edd767 07-Oct-2014 Timo Sirainen <tss@iki.fi>

lib-index: Don't keep cache file locked for as long while syncing index. The earlier code was required for updating the cache offsets, but this code no longer exists. Now we just need to update the record counts in the header, which can be done quickly at the end of the sync.

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

lib-index: mail_cache_lookup*() can now return fields recently added with mail_cache_add() Previously it was returning them if they had already been written to dovecot.index.cache, but not if they were still in the in-memory buffer. This avoids caching/parsing the same field multiple times when messages aren't accessed in ascending order (e.g. when sorting messages).

285e73e04966dd57d5eda183be56e8a59e081c93 27-Nov-2012 Timo Sirainen <tss@iki.fi>

lib-index: Added v2.2+ forwards compatibility to dovecot.index.cache

f0ff961282e618945dfe997dc45ff95d656e5790 03-Nov-2012 Timo Sirainen <tss@iki.fi>

lib-index: Replaced cache's deleted_space with deleted_record_count. This way when expunging messages we don't need to actually read through the cache file and calculate how many bytes will be freed, we can simply increase the deleted_record_count by 1. We'll still compress the cache file approximately after 20% of the space (records) has been deleted. This also converts the old "hole offset" header field to tracking the number of records in the cache file. Otherwise we'd have to assume that all of the messages in mailbox have a cache record, but that isn't true for users who have only temporary cache fields. This "hole offset" cannot be trusted completely, because nothing prevents old Dovecot version from simply writing a hole offset there and messing up the record counts. Because of this there are a couple of extra sanity checks for it. (Unfortunately there wasn't any easy way to simply add a new field to header without breaking backwards compatibility.)

920b9f0fdfa5a5d7763e05736601a31bcb291a53 03-Nov-2012 Timo Sirainen <tss@iki.fi>

lib-index: Added minor version to dovecot.index.cache file header.

330d54e9e3bf076efe91f101c562d1268160b128 03-Nov-2012 Timo Sirainen <tss@iki.fi>

lib-index: If a cache record is larger than 64 kB, don't add it to cache file. This shouldn't affect anything except mails that probably shouldn't exist in the first place.

131b073bdc3650083b00616dc778dd3017c2bbb5 03-Nov-2012 Timo Sirainen <tss@iki.fi>

lib-index: Cache record linking is now while writing new records, not later with pwrite(). This should make performance somewhat better. It also means that now the only overwrites to cache file are to the file header and the fields header. This means that we no longer have to invalidate file_cache (with mmap_disable=yes) except when reading the headers, which is always done anyway. It would be nice to move the overwritten fields in the headers to a cache header in dovecot.index file, but this is a bit tricky currently. When writing these headers the cache file needs to be locked to avoid race conditions. To avoid deadlocks the transaction log would have to be locked before the cache. The code to do all this would still be a bit complex, and to keep backwards compatibility with old Dovecot versions it would still have to do the overwriting until the backwards compatibility code is disabled.

18d92dbbb752c79dc461514e52f7ef11847e636b 18-Oct-2012 Timo Sirainen <tss@iki.fi>

lib-index: Added MAIL_INDEX_OPEN_FLAG_SAVEONLY to do only minimal reads from cache file.

8ac66221e8fdc2c5523cff1893e0d1c5de25fa49 18-Oct-2012 Timo Sirainen <tss@iki.fi>

lib-index: Code cleanup: Removed mail_cache.data

82ed69779f49bd71ef1b570ce8aca67d357dbee8 18-Oct-2012 Timo Sirainen <tss@iki.fi>

lib-index: mail_cache_map() API cleanup

289064eb21595d3e4460439eccdc48232d13f5e1 04-Oct-2012 Timo Sirainen <tss@iki.fi>

lib-index: Simplified writing to dovecot.index.cache file. The old method was basically: - write max. 32 kB to internal buffer - flush it by writing to reserved areas (with no locks) The reserved areas were acquired by doing (whenever needed): - lock dovecot.index.cache - reserve data from dovecot.index.cache for writing, potentially increasing the file size by writing 0 bytes. the reserved area size varies. - unlock dovecot.index.cache This worked, but if multiple processes were writing to the cache file it could have left incomplete reserved areas as holes. The holes were attempted to be filled if they were large enough. The new method is: - write max. 256 kB to internal buffer - lock dovecot.index.cache - append the buffer to dovecot.index.cache - unlock dovecot.index.cache No reserved areas, holes or anything else weird going on. Ideally no data would be overwritten in the dovecot.index.cache file, only appended. Unfortunately currently some data is still overwritten: - mail_cache_header.{deleted_space,continued_record_count} - mail_cache_header_fields.next_offset when writing a new one - mail_cache_header_fields.{last_used,decision} - mail_cache_record.prev_offset The changing headers could eventually be moved to dovecot.index. This however is a backwards-incompatible change. The record's prev_offset could maybe simply just not be written in those (somewhat rare) problematic situations.

a75d470c9223a75801418fcdda258885c36317e0 20-Aug-2012 Timo Sirainen <tss@iki.fi>

Reverted "support for non-pointers" part of the hash table API changes. Originally I wrote it using clang, which didn't give as many warnings as gcc did. I guess this way is safer anyway..

/dovecot/src/anvil/connect-limit.c /dovecot/src/auth/auth-request-handler.c /dovecot/src/auth/db-checkpassword.c /dovecot/src/auth/db-ldap.c /dovecot/src/auth/db-passwd-file.c /dovecot/src/director/director-test.c /dovecot/src/director/user-directory.c /dovecot/src/doveadm/doveadm-director.c /dovecot/src/doveadm/doveadm-kick.c /dovecot/src/doveadm/doveadm-log.c /dovecot/src/doveadm/doveadm-mail-server.c /dovecot/src/doveadm/doveadm-stats.c /dovecot/src/doveadm/doveadm-who.c /dovecot/src/doveadm/dsync/dsync-mailbox-export.c /dovecot/src/doveadm/dsync/dsync-mailbox-import.c /dovecot/src/doveadm/dsync/dsync-transaction-log-scan.c /dovecot/src/doveadm/dsync/dsync-transaction-log-scan.h /dovecot/src/imap/imap-client.c /dovecot/src/lib-auth/auth-server-connection.c /dovecot/src/lib-auth/auth-server-connection.h /dovecot/src/lib-dict/dict-file.c mail-cache-fields.c mail-cache-private.h mail-index-private.h mail-index.c /dovecot/src/lib-lda/duplicate.c /dovecot/src/lib-master/master-auth.c /dovecot/src/lib-master/master-login-auth.c /dovecot/src/lib-settings/settings-parser.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c /dovecot/src/lib-storage/index/index-thread-finish.c /dovecot/src/lib-storage/index/maildir/maildir-keywords.c /dovecot/src/lib-storage/list/mailbox-list-index-sync.c /dovecot/src/lib-storage/list/mailbox-list-index.c /dovecot/src/lib-storage/list/mailbox-list-index.h /dovecot/src/lib/child-wait.c /dovecot/src/lib/hash.c /dovecot/src/lib/hash.h /dovecot/src/log/log-connection.c /dovecot/src/login-common/ssl-proxy-openssl.c /dovecot/src/master/service-monitor.c /dovecot/src/master/service-process.c /dovecot/src/master/service.c /dovecot/src/master/service.h /dovecot/src/plugins/acl/acl-cache.c /dovecot/src/plugins/expire/doveadm-expire.c /dovecot/src/plugins/fts-lucene/lucene-wrapper.cc /dovecot/src/plugins/fts/fts-expunge-log.c /dovecot/src/pop3/pop3-commands.c /dovecot/src/replication/aggregator/replicator-connection.c
678d0463849ba777106eb7875f27db07a5d8e3df 19-Aug-2012 Timo Sirainen <tss@iki.fi>

Hash table API is now (mostly) type safe.

/dovecot/src/anvil/connect-limit.c /dovecot/src/anvil/penalty.c /dovecot/src/auth/auth-cache.c /dovecot/src/auth/auth-request-handler.c /dovecot/src/auth/db-checkpassword.c /dovecot/src/auth/db-ldap.c /dovecot/src/auth/db-passwd-file.c /dovecot/src/auth/db-passwd-file.h /dovecot/src/auth/mech-otp-skey-common.c /dovecot/src/config/config-request.c /dovecot/src/director/director-test.c /dovecot/src/director/user-directory.c /dovecot/src/doveadm/doveadm-director.c /dovecot/src/doveadm/doveadm-kick.c /dovecot/src/doveadm/doveadm-log.c /dovecot/src/doveadm/doveadm-mail-server.c /dovecot/src/doveadm/doveadm-stats.c /dovecot/src/doveadm/doveadm-who.c /dovecot/src/doveadm/doveadm-who.h /dovecot/src/doveadm/dsync/dsync-brain-mailbox.c /dovecot/src/doveadm/dsync/dsync-brain-private.h /dovecot/src/doveadm/dsync/dsync-brain.c /dovecot/src/doveadm/dsync/dsync-mailbox-export.c /dovecot/src/doveadm/dsync/dsync-mailbox-import.c /dovecot/src/doveadm/dsync/dsync-mailbox-tree-fill.c /dovecot/src/doveadm/dsync/dsync-mailbox-tree-private.h /dovecot/src/doveadm/dsync/dsync-mailbox-tree-sync.c /dovecot/src/doveadm/dsync/dsync-mailbox-tree.c /dovecot/src/doveadm/dsync/dsync-transaction-log-scan.c /dovecot/src/doveadm/dsync/dsync-transaction-log-scan.h /dovecot/src/indexer/indexer-queue.c /dovecot/src/lib-auth/auth-server-connection.c /dovecot/src/lib-auth/auth-server-connection.h /dovecot/src/lib-dict/dict-file.c mail-cache-fields.c mail-cache-private.h mail-cache.c mail-index-private.h mail-index.c /dovecot/src/lib-lda/duplicate.c /dovecot/src/lib-master/master-auth.c /dovecot/src/lib-master/master-login-auth.c /dovecot/src/lib-master/master-service-settings-cache.c /dovecot/src/lib-settings/settings-parser.c /dovecot/src/lib-sql/sql-db-cache.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-purge.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c /dovecot/src/lib-storage/index/index-thread-finish.c /dovecot/src/lib-storage/index/maildir/maildir-filename.c /dovecot/src/lib-storage/index/maildir/maildir-filename.h /dovecot/src/lib-storage/index/maildir/maildir-keywords.c /dovecot/src/lib-storage/index/maildir/maildir-uidlist.c /dovecot/src/lib-storage/list/mailbox-list-index-sync.c /dovecot/src/lib-storage/list/mailbox-list-index.c /dovecot/src/lib-storage/list/mailbox-list-index.h /dovecot/src/lib-storage/mailbox-guid-cache.c /dovecot/src/lib-storage/mailbox-list-private.h /dovecot/src/lib-storage/mailbox-list.c /dovecot/src/lib/child-wait.c /dovecot/src/lib/guid.c /dovecot/src/lib/guid.h /dovecot/src/lib/hash.c /dovecot/src/lib/hash.h /dovecot/src/lib/lib.h /dovecot/src/lib/macros.h /dovecot/src/log/log-connection.c /dovecot/src/login-common/login-proxy-state.c /dovecot/src/login-common/ssl-proxy-openssl.c /dovecot/src/master/service-monitor.c /dovecot/src/master/service-process.c /dovecot/src/master/service.c /dovecot/src/master/service.h /dovecot/src/plugins/acl/acl-cache.c /dovecot/src/plugins/expire/doveadm-expire.c /dovecot/src/plugins/fts-lucene/fts-backend-lucene.c /dovecot/src/plugins/fts-lucene/lucene-wrapper.cc /dovecot/src/plugins/fts-lucene/lucene-wrapper.h /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/fts-expunge-log.c /dovecot/src/pop3/pop3-commands.c /dovecot/src/replication/aggregator/replicator-connection.c /dovecot/src/replication/replicator/replicator-queue.c /dovecot/src/stats/mail-domain.c /dovecot/src/stats/mail-ip.c /dovecot/src/stats/mail-session.c /dovecot/src/stats/mail-user.c
cb6b9d1ce0a3514b98feabef5a477afaf66ce549 09-Feb-2012 Timo Sirainen <tss@iki.fi>

lib-index: mail_cache_open_and_verify() is now public.

008a83e9f680f04f69789fb702232416eab2a86c 10-Dec-2011 Timo Sirainen <tss@iki.fi>

lib-index: Allow updating cache's last_used field with mail_cache_register_fields()

ad6fe4a3c0d589bb2db5238e0a6418f8d863b3c2 30-Aug-2011 Timo Sirainen <tss@iki.fi>

lib-index: Added mail_cache_view_update_cache_decisions()

8fa86f7ef06aa6cf0239c7ca2eb98889691d40d4 30-Aug-2011 Timo Sirainen <tss@iki.fi>

lib-index: Added mail_cache_view_update_cache_decisions()

763f83d3cc47bce05cbc396419c4db2b71dd8e68 11-Sep-2008 Timo Sirainen <tss@iki.fi>

Mail cache: If locking failed, the next time try to lock it only once. Also increased the first timeout to 10 seconds. --HG-- branch : HEAD

d0bbbc7057aa33b52ee378196dee7d773437468f 11-Sep-2008 Timo Sirainen <tss@iki.fi>

Mail cache compression: If we can't get lock immediately, do it later. --HG-- branch : HEAD

5724e7103eed12fe36b55a7b5a8653284a2184b9 11-Sep-2008 Timo Sirainen <tss@iki.fi>

Mail cache: lock_method=dotlock could have caused a process to deadlock with itself. --HG-- branch : HEAD

3f5b0dcbdc4f804a99935b648b34540bd2dc9c08 09-Sep-2008 Timo Sirainen <tss@iki.fi>

Mail cache file: Changed lock timeout to just 2 seconds. It's better to not update cache than waste a lot of time waiting for a lock. Also increased staleness timeout to 5 minutes - it's safer that way and with the reduced lock timeout doesn't matter as much. --HG-- branch : HEAD

84da9c6d6e162b064608cbfa9a47e0d60553c593 09-Sep-2008 Timo Sirainen <tss@iki.fi>

mail_cache_lock(): Return -1 if locking times out. This fixes cache compression starting even when locking timed out. --HG-- branch : HEAD

d6693dac50e4fb547d8dc61b85820f1761a33575 02-Mar-2008 Timo Sirainen <tss@iki.fi>

Optimized cache record loop tracking. --HG-- branch : HEAD

ba8bdb9dfc467ed2e6a988c42567fc44a28bebfc 02-Mar-2008 Timo Sirainen <tss@iki.fi>

Optimized cache record loop tracking. --HG-- branch : HEAD

6a7f64562ddd0dd2fec755ec4e9c9afde8e85cf1 10-Jan-2008 Timo Sirainen <tss@iki.fi>

Link cache records together directly when writing the new records, instead of delaying them until later and causing lots of small writes. We still do this delayed check and do the writes when it's required, but it shouldn't happen normally. --HG-- branch : HEAD

ddbad7a661c0663fafd2b79393efa85f840d6af6 04-Jan-2008 Timo Sirainen <tss@iki.fi>

Fixes to handling when fields are dropped from cache file. --HG-- branch : HEAD

0beb5d6c661ee68130a954ed0f31a34c19195fb7 29-Dec-2007 Timo Sirainen <tss@iki.fi>

Update caching decision for fields even if it doesn't currently exist in the cache file. If the field is added later within the session, the decision and last_used field will be correct. --HG-- branch : HEAD

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

mail_cache_field_want_add(): Return TRUE for temp fields only if we're adding the field to a new enough message. --HG-- branch : HEAD

bc564f1d3d953cf724828322b11ae89e0f59ffc9 18-Nov-2007 Timo Sirainen <tss@iki.fi>

NFS cache flushing APIs changed and backend implements it a bit differently. Hopefully this works now more correctly. --HG-- branch : HEAD

2131ef7a3390f15ea6a958256ea54908f1096350 16-Nov-2007 Timo Sirainen <tss@iki.fi>

Fixed cache file's NFS attribute cache flushing. --HG-- branch : HEAD

6e235046e1d8e9d89fc948f5c623676c20421a28 06-Nov-2007 Timo Sirainen <tss@iki.fi>

When reading the latest fields, begin finding the fields from the last known header instead of from the beginning. --HG-- branch : HEAD

f501ad38c51cf1d8f4f84313922c785e6ae6e81f 06-Nov-2007 Timo Sirainen <tss@iki.fi>

Keep a separate copy of mail_cache_header when mmap_disable=yes, otherwise it could get cleared unexpectedly. --HG-- branch : HEAD

abb83d133dd082527d500916fca66a72fbbbaa8d 05-Nov-2007 Timo Sirainen <tss@iki.fi>

If we need to do more than 4 reads to get to the cached fields header, compress the cache file. --HG-- branch : HEAD

6f73af3a3a6ee900c7e736874587968d76a20bc0 22-Sep-2007 Timo Sirainen <tss@iki.fi>

mail_cache_transaction_commit()/rollback() API is now public and takes a ** pointer. Don't break if transaction is committed/rollbacked multiple times for a cache view. --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 mail-cache-private.h mail-cache.h mail-hash.h mail-index-private.h mail-index-sync-private.h mail-index-transaction-private.h mail-index-view-private.h mail-index.h mail-transaction-log-private.h mail-transaction-log.h mailbox-list-index-private.h 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 /dovecot/src/lib-storage/index/cydir/cydir-storage.h /dovecot/src/lib-storage/index/cydir/cydir-sync.h /dovecot/src/lib-storage/index/dbox/dbox-file.h /dovecot/src/lib-storage/index/dbox/dbox-index.h /dovecot/src/lib-storage/index/dbox/dbox-storage.h /dovecot/src/lib-storage/index/dbox/dbox-sync.h /dovecot/src/lib-storage/index/index-mail.h /dovecot/src/lib-storage/index/index-sort.h /dovecot/src/lib-storage/index/index-storage.h /dovecot/src/lib-storage/index/index-sync-changes.h /dovecot/src/lib-storage/index/maildir/maildir-filename.h /dovecot/src/lib-storage/index/maildir/maildir-keywords.h /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-sync.h /dovecot/src/lib-storage/index/maildir/maildir-uidlist.h /dovecot/src/lib-storage/index/mbox/istream-raw-mbox.h /dovecot/src/lib-storage/index/mbox/mbox-file.h /dovecot/src/lib-storage/index/mbox/mbox-from.h /dovecot/src/lib-storage/index/mbox/mbox-lock.h /dovecot/src/lib-storage/index/mbox/mbox-md5.h /dovecot/src/lib-storage/index/mbox/mbox-storage.h /dovecot/src/lib-storage/index/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
9a583c7a827f7a4d89ee43774f2d51ea6a214543 13-Aug-2007 Timo Sirainen <tss@iki.fi>

Drop fields that haven't been used for 30 days when compressing. --HG-- branch : HEAD

73a44af966c790560a72a0447f37bb35b1031a83 15-Jul-2007 Timo Sirainen <tss@iki.fi>

mail_cache_lookup_iter_next() returned -1 if entry didn't exist, causing the first field for the record not to be added to cache. --HG-- branch : HEAD

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

Flush NFS caches when needed if MAIL_INDEX_OPEN_FLAG_NFS_FLUSH is enabled. --HG-- branch : HEAD

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

Don't create cache file until something is actually being added to it. --HG-- branch : HEAD

6b85bc4b03e552cfaeeae872d63c2d8ac5fcb7c4 14-Jun-2007 Timo Sirainen <tss@iki.fi>

Changed mail_cache_foreach() to be an iterator: mail_cache_lookup_iter_*() --HG-- branch : HEAD

1b97a59edb073e9a89ac43a21a9abe5d590d4a56 14-Jun-2007 Timo Sirainen <tss@iki.fi>

Cache code cleanups --HG-- branch : HEAD

d8ade1a6747c57095fba2c3765bbd9c1a19efbbb 14-Jan-2007 Timo Sirainen <tss@iki.fi>

Removed file offset caching from mail_cache_foreach(). It didn't work correctly when cache file was just compressed, and caused "cache file corrupted" errors. --HG-- branch : HEAD

1a21e7049796c98d6d998fcf7a438d7a97193dc4 20-Dec-2006 Timo Sirainen <tss@iki.fi>

Prefix COMPRESS_* defines with MAIL_CACHE_. --HG-- branch : HEAD

00efa7d99981e18e286c02b18c1163dde18ee521 15-Dec-2006 Timo Sirainen <tss@iki.fi>

Type safe callbacks weren't as easy as I thought. Only callback(void *context) can be handled generically. Others can be handled specially, but only if all the parameters are pointers, otherwise eg. int parameter can be replaced with long without compiler giving any warnings. --HG-- branch : HEAD

/dovecot/src/auth/auth-request-handler.h /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/lib-auth/auth-client.c /dovecot/src/lib-auth/auth-client.h /dovecot/src/lib-auth/auth-server-request.c mail-cache-lookup.c mail-cache-private.h mail-hash.h mail-index-private.h mail-index.c /dovecot/src/lib-mail/istream-header-filter.h /dovecot/src/lib-mail/message-content-parser.c /dovecot/src/lib-mail/message-content-parser.h /dovecot/src/lib-mail/message-header-decode.c /dovecot/src/lib-mail/message-header-decode.h /dovecot/src/lib-mail/message-header-parser.h /dovecot/src/lib-mail/message-parser.h /dovecot/src/lib-settings/settings.h /dovecot/src/lib-sql/sql-api.h /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-util.c /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mailbox-list.c /dovecot/src/lib-storage/mailbox-list.h /dovecot/src/lib/lib-signals.c /dovecot/src/lib/lib-signals.h /dovecot/src/lib/macros.h /dovecot/src/login-common/login-proxy.h
59151b71059df1190acd75d8717ed04a7920c862 15-Dec-2006 Timo Sirainen <tss@iki.fi>

Added context parameter type safety checks for most callback APIs. --HG-- branch : HEAD

/dovecot/src/auth/auth-request-handler.c /dovecot/src/auth/auth-request-handler.h /dovecot/src/auth/db-ldap.c /dovecot/src/auth/db-sql.c /dovecot/src/auth/main.c /dovecot/src/deliver/deliver.c /dovecot/src/deliver/mail-send.c /dovecot/src/dict/main.c /dovecot/src/imap-login/client.c /dovecot/src/imap/cmd-append.c /dovecot/src/imap/imap-fetch.c /dovecot/src/imap/imap-fetch.h /dovecot/src/imap/imap-thread.c /dovecot/src/imap/main.c /dovecot/src/lib-auth/auth-client.c /dovecot/src/lib-auth/auth-client.h /dovecot/src/lib-auth/auth-server-request.c /dovecot/src/lib-imap/imap-bodystructure.c mail-cache-lookup.c mail-cache-private.h mail-cache.c mail-hash.c mail-hash.h mail-index-private.h mail-index.c /dovecot/src/lib-mail/istream-header-filter.c /dovecot/src/lib-mail/istream-header-filter.h /dovecot/src/lib-mail/message-body-search.c /dovecot/src/lib-mail/message-content-parser.c /dovecot/src/lib-mail/message-content-parser.h /dovecot/src/lib-mail/message-decoder.c /dovecot/src/lib-mail/message-header-decode.c /dovecot/src/lib-mail/message-header-decode.h /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-parser.h /dovecot/src/lib-settings/settings.c /dovecot/src/lib-settings/settings.h /dovecot/src/lib-sql/sql-api.c /dovecot/src/lib-sql/sql-api.h /dovecot/src/lib-storage/index/index-mail.c /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-util.c /dovecot/src/lib-storage/index/mbox/mbox-mail.c /dovecot/src/lib-storage/mail-search.c /dovecot/src/lib-storage/mail-search.h /dovecot/src/lib-storage/mailbox-list.c /dovecot/src/lib-storage/mailbox-list.h /dovecot/src/lib/ioloop-notify-dn.c /dovecot/src/lib/ioloop.c /dovecot/src/lib/ioloop.h /dovecot/src/lib/lib-signals.c /dovecot/src/lib/lib-signals.h /dovecot/src/lib/macros.h /dovecot/src/lib/ostream.c /dovecot/src/lib/ostream.h /dovecot/src/login-common/login-proxy.c /dovecot/src/login-common/login-proxy.h /dovecot/src/login-common/main.c /dovecot/src/master/main.c /dovecot/src/pop3-login/client.c /dovecot/src/pop3/main.c
d9fdacd5fb3e07997e5c389739d2054f0c8441d8 06-Dec-2006 Timo Sirainen <tss@iki.fi>

Lock handling changes. Everything goes through file-lock API now and there's only a single enum listing the different lock methods. This change exposed some unneeded (or possibly even wrong?) unlock calls in index file handling which were fixed. --HG-- branch : HEAD

/dovecot/src/deliver/deliver.c /dovecot/src/imap/namespace.c mail-cache-compress.c mail-cache-private.h mail-cache.c mail-hash.c mail-index-lock.c mail-index-private.h mail-index.c mail-index.h mail-transaction-log-private.h mail-transaction-log.c /dovecot/src/lib-storage/index/dbox/dbox-storage.c /dovecot/src/lib-storage/index/index-storage.c /dovecot/src/lib-storage/index/index-storage.h /dovecot/src/lib-storage/index/maildir/maildir-storage.c /dovecot/src/lib-storage/index/mbox/mbox-lock.c /dovecot/src/lib-storage/index/mbox/mbox-storage.c /dovecot/src/lib-storage/list/index-mailbox-list.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/mailbox-list.c /dovecot/src/lib-storage/mailbox-list.h /dovecot/src/lib/file-lock.c /dovecot/src/lib/file-lock.h /dovecot/src/plugins/convert/convert-storage.c /dovecot/src/plugins/expire/expire-tool.c /dovecot/src/pop3/main.c
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

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

Delay opening the cache file until it's actually needed. --HG-- branch : HEAD

da985034a708db2f61394b30d117050ae6829ee5 11-Jul-2006 Timo Sirainen <tss@iki.fi>

Added support for calling expunge handler for an extension even if the extension isn't used in the opened index file. Added context-parameter to the callback function. If the function returns -1, the sync is failed. --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 mail-cache-compress.c mail-cache-lookup.c mail-cache-private.h mail-cache-transaction.c mail-index-private.h mail-index-sync-ext.c mail-index-sync-private.h mail-index-sync-update.c mail-index-sync.c mail-index-transaction-private.h mail-index-transaction-view.c mail-index-transaction.c mail-index-view-private.h mail-index-view-sync.c mail-index-view.c mail-index.c mail-index.h 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 /dovecot/src/lib-storage/index/dbox/dbox-keywords.c /dovecot/src/lib-storage/index/dbox/dbox-save.c /dovecot/src/lib-storage/index/dbox/dbox-storage.h /dovecot/src/lib-storage/index/dbox/dbox-sync-expunge.c /dovecot/src/lib-storage/index/dbox/dbox-sync-full.c /dovecot/src/lib-storage/index/dbox/dbox-sync.c /dovecot/src/lib-storage/index/dbox/dbox-sync.h /dovecot/src/lib-storage/index/dbox/dbox-uidlist.c /dovecot/src/lib-storage/index/dbox/dbox-uidlist.h /dovecot/src/lib-storage/index/index-mail-headers.c /dovecot/src/lib-storage/index/index-mail.c /dovecot/src/lib-storage/index/index-mail.h /dovecot/src/lib-storage/index/index-sort.c /dovecot/src/lib-storage/index/index-storage.h /dovecot/src/lib-storage/index/index-sync.c /dovecot/src/lib-storage/index/maildir/maildir-keywords.c /dovecot/src/lib-storage/index/maildir/maildir-save.c /dovecot/src/lib-storage/index/maildir/maildir-storage.c /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-sync.c /dovecot/src/lib-storage/index/maildir/maildir-uidlist.c /dovecot/src/lib-storage/index/mbox/mbox-save.c /dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c /dovecot/src/lib-storage/index/mbox/mbox-sync-private.h /dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c /dovecot/src/lib-storage/index/mbox/mbox-sync-update.c /dovecot/src/lib-storage/index/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
58be9d6bcc3800f5b3d76a064ee767fbe31a5a8a 03-May-2006 Timo Sirainen <tss@iki.fi>

Don't compress cache file if it was just compressed by another process. --HG-- branch : HEAD

8ecbb74bc4c7f6f6145da3525941d1d0e20e67f1 05-Feb-2006 Timo Sirainen <tss@iki.fi>

Removed immediate_stale_timeout and changed the stale_timeout behavior to check both dotlock and the file it protects, and overwrite the lock file whenever neither of them have been modified for stale_timeout seconds (ie. also immediately if their timestamps are old enough). --HG-- branch : HEAD

811f2e26d9782d9cb99fdf82e18ffa0a77564fe2 06-Jan-2006 Timo Sirainen <tss@iki.fi>

Moved uoff_t and time_t compatibility checks to cache file, since they're not needed for index/log. Only index file incompatibility check is now endianess flag. --HG-- branch : HEAD

a817fdcc43aedf423e2134091d5f83f91d64bcc9 30-Sep-2005 Timo Sirainen <tss@iki.fi>

Unlocking cache file can also corrupt it since it modifies it. Added a return value for it and checks to handle the failure. Fixes a crash in some error situations. --HG-- branch : HEAD

dbd9604da561399cc6255289d5b6f6f662ab2d00 14-May-2005 Timo Sirainen <tss@iki.fi>

Whenever writing to cache file, also updated file_cache. Fixes problems with mmap_disable=yes. --HG-- branch : HEAD

287ba82a8da3eaa473b5735d4eeac2fb4c5d8117 12-Mar-2005 Timo Sirainen <tss@iki.fi>

Changed many buffers to arrays. Cleans up the code a lot. --HG-- branch : HEAD

13c6532dc104d23061e6901783ceb1ff8872c206 16-Jan-2005 Timo Sirainen <tss@iki.fi>

Changed dotlocking API. --HG-- branch : HEAD

6931e77051716370803d2d69bdeb6c7dff7d559d 19-Dec-2004 Timo Sirainen <tss@iki.fi>

mail_cache_decision_*() prototypes were wrong. --HG-- branch : HEAD

2af769daebd83719ac696a440e06f6020471cec0 05-Dec-2004 Timo Sirainen <tss@iki.fi>

lock_method=dotlock doesn't crash anymore while trying to modify cache file. We didn't previously deal with any fatal errors that fcntl/flock locking could have given but assumed that the locking succeeded. --HG-- branch : HEAD

f23298fea47eecbeded985ee2537a34c4c4ef56b 05-Dec-2004 Timo Sirainen <tss@iki.fi>

Added "sync lost" handlers which are called with mmap_disable=yes when index file is re-read without going through all of the transaction log. --HG-- branch : HEAD

fcfb528483369975066c6adf1c55c16e6fb6e91f 29-Nov-2004 Timo Sirainen <tss@iki.fi>

Crashfixes for reading corrupted cache files. --HG-- branch : HEAD

1098fc409a45e7603701dc94635927a673bee0c1 08-Nov-2004 Timo Sirainen <tss@iki.fi>

Cache file works now with mmap_disable=yes. Still needs a few optimizations. --HG-- branch : HEAD

6a19e109ee8c5a6f688da83a86a7f6abeb71abdd 06-Nov-2004 Timo Sirainen <tss@iki.fi>

Removed cache_offset from mail_index_record and changed it to use extension instead. Added possibility to register sync and expunge handlers for extensions. Changed the way extension resets work: all extension updates which were committed without having seen the reset are ignored. --HG-- branch : HEAD

58febed28f2af78b2d8a281c851d9b67160c4bd3 16-Sep-2004 Timo Sirainen <tss@iki.fi>

Fix for circular record list detection, we can't use data stack for buffer. --HG-- branch : HEAD

4edf90751f075cc6ab3d6f53fc78b656efa80922 12-Sep-2004 Timo Sirainen <tss@iki.fi>

ID mapping fixes. --HG-- branch : HEAD

44ff75ca53188056ff5a3e50428e3f2078800b3c 31-Jul-2004 Timo Sirainen <tss@iki.fi>

Transaction log file is now read-lockless. --HG-- branch : HEAD

e96fb85799dc95603bb1a6b4d3685df2d042a2f8 20-Jul-2004 Timo Sirainen <tss@iki.fi>

Fixes for big endian systems. --HG-- branch : HEAD

0a51697f82fbd45a511710479e99efd42dc18453 20-Jul-2004 Timo Sirainen <tss@iki.fi>

Limit how much a single transaction can reserve space --HG-- branch : HEAD

4bbee99b3aef449a9a2a11a5b5cf1ca486915c49 20-Jul-2004 Timo Sirainen <tss@iki.fi>

Cache fixes. Decisions are saved again. --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 Makefile.am mail-cache-compress.c mail-cache-decisions.c mail-cache-fields.c mail-cache-lookup.c mail-cache-private.h mail-cache-transaction.c mail-cache.c mail-cache.h /dovecot/src/lib-mail/istream-header-filter.c /dovecot/src/lib-mail/istream-header-filter.h /dovecot/src/lib-storage/index/index-mail-headers.c /dovecot/src/lib-storage/index/index-mail.c /dovecot/src/lib-storage/index/index-mail.h /dovecot/src/lib-storage/index/index-search.c /dovecot/src/lib-storage/index/index-storage.c /dovecot/src/lib-storage/index/index-storage.h /dovecot/src/lib-storage/index/maildir/maildir-storage.c /dovecot/src/lib-storage/index/mbox/mbox-mail.c /dovecot/src/lib-storage/index/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
ca316aeb7648d3f1bcf45231f73ddeb1b67a6961 10-Jul-2004 Timo Sirainen <tss@iki.fi>

Cache fixes. Lookups now look into transactions too. --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

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

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

Caching fixes and optimizations. Removed all network byte ordering code - it's not worth the trouble and would require massive changes in indexing code as well to be useful. Changed next_offset to prev_offset which is updated while syncing index. --HG-- branch : HEAD

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

Cache file compression works now and compressed cache file is reopened. Several other cleanups related to opening - cache file isn't created immediately anymore. --HG-- branch : HEAD

8aacc9e7c84f8376822823ec98c2f551d4919b2e 28-Jun-2004 Timo Sirainen <tss@iki.fi>

Added some smartness for deciding what to cache. Cache compression code compiles, but untested. --HG-- branch : HEAD

56f45b3f3ae20e5c933701f4657dda5ef1916855 19-Jun-2004 Timo Sirainen <tss@iki.fi>

Several fixes and cleanups to cache file code, still badly broken --HG-- branch : HEAD

da5d50534cfca45d0aaaf0bdac17b287b4588809 20-Jun-2004 Timo Sirainen <tss@iki.fi>

Beginnings of getting cache file working again. Easy to break currently, but basics seem to work. --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 Makefile.am mail-cache-compress.c mail-cache-lookup.c mail-cache-old.c mail-cache-private.h mail-cache-transaction.c mail-cache.c mail-cache.h mail-index-fsck.c mail-index-lock.c mail-index-private.h mail-index-reset.c mail-index-sync-private.h mail-index-sync-update.c mail-index-sync.c mail-index-transaction-private.h mail-index-transaction.c mail-index-view-private.h mail-index-view-sync.c mail-index-view.c mail-index.c mail-index.h mail-transaction-log-private.h mail-transaction-log-view.c mail-transaction-log.c mail-transaction-log.h mail-transaction-util.c mail-transaction-util.h maildir/Makefile.am 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 /dovecot/src/lib-storage/index/Makefile.am /dovecot/src/lib-storage/index/index-copy.c /dovecot/src/lib-storage/index/index-expunge.c /dovecot/src/lib-storage/index/index-expunge.h /dovecot/src/lib-storage/index/index-fetch.c /dovecot/src/lib-storage/index/index-mail-headers.c /dovecot/src/lib-storage/index/index-mail.c /dovecot/src/lib-storage/index/index-mail.h /dovecot/src/lib-storage/index/index-mailbox-check.c /dovecot/src/lib-storage/index/index-messageset.c /dovecot/src/lib-storage/index/index-messageset.h /dovecot/src/lib-storage/index/index-search.c /dovecot/src/lib-storage/index/index-status.c /dovecot/src/lib-storage/index/index-storage.c /dovecot/src/lib-storage/index/index-storage.h /dovecot/src/lib-storage/index/index-sync.c /dovecot/src/lib-storage/index/index-transaction.c /dovecot/src/lib-storage/index/index-update-flags.c /dovecot/src/lib-storage/index/maildir/Makefile.am /dovecot/src/lib-storage/index/maildir/maildir-copy.c /dovecot/src/lib-storage/index/maildir/maildir-expunge.c /dovecot/src/lib-storage/index/maildir/maildir-list.c /dovecot/src/lib-storage/index/maildir/maildir-mail.c /dovecot/src/lib-storage/index/maildir/maildir-save.c /dovecot/src/lib-storage/index/maildir/maildir-storage.c /dovecot/src/lib-storage/index/maildir/maildir-storage.h /dovecot/src/lib-storage/index/maildir/maildir-sync.c /dovecot/src/lib-storage/index/maildir/maildir-transaction.c /dovecot/src/lib-storage/index/maildir/maildir-uidlist.c /dovecot/src/lib-storage/index/maildir/maildir-uidlist.h /dovecot/src/lib-storage/index/maildir/maildir-util.c /dovecot/src/lib-storage/index/mbox/Makefile.am /dovecot/src/lib-storage/index/mbox/istream-raw-mbox.c /dovecot/src/lib-storage/index/mbox/istream-raw-mbox.h /dovecot/src/lib-storage/index/mbox/mbox-expunge.c /dovecot/src/lib-storage/index/mbox/mbox-from.c /dovecot/src/lib-storage/index/mbox/mbox-from.h /dovecot/src/lib-storage/index/mbox/mbox-list.c /dovecot/src/lib-storage/index/mbox/mbox-save.c /dovecot/src/lib-storage/index/mbox/mbox-sync-header.c /dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c /dovecot/src/lib-storage/index/mbox/mbox-sync-private.h /dovecot/src/lib-storage/index/mbox/mbox-sync-rewrite.c /dovecot/src/lib-storage/index/mbox/mbox-sync-update.c /dovecot/src/lib-storage/index/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