History log of /dovecot/src/doveadm/dsync/dsync-brain-private.h
Revision Date Author Comments Expand
c864fdd520b0c3f10a4b9bc5373368f4ae8faaff 28-Dec-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

dsync: Add per-mailbox sync lock that is always used. Both importing and exporting gets the lock before they even sync the mailbox. The lock is kept until the import/export finishes. This guarantees that no matter how dsync is run, two dsyncs can't be working on the same mailbox at the same time. This lock is in addition to the optional per-user lock enabled by the -l parameter. If the -l parameter is used, the same lock timeout is used for the per-mailbox lock. Otherwise 30s timeout is used. This should help to avoid email duplication when replication is enabled for public namespaces, and maybe in some other rare situations as well.

69a71891361b2b27ff68ed84b29278486628464a 27-Sep-2017 Aki Tuomi <aki.tuomi@dovecot.fi>

dsync: Add hashed_headers setting This makes it possible to configure them

f3c24c2c92802cb773315eba1132254932d8709b 23-Jun-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

dsync: Use header hashing version 3

a76faea3eb26c4cd67886fbe02c604f74d54be8c 17-May-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

dsync: Try to commit transactions every dsync_commit_msgs_interval messages This was first attempted to be implemented by ec0cc8fa647794e44a1afaa448f495a713048dc4, but it was later partially reverted by 5973d496b16721af6d2c1fa90b016aacddf13554. This current commit should fix its problems.

4f7951e71128c120d8a502d6406cc603fcc8eb0b 01-Dec-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

dsync: When logging "Mailbox changed caused a desync", log also the reason. The reason is usually somewhere in the debug logs, but it's difficult to find from there.

ee8294dbc7bb549557f6ba1264d66b55fbef69b6 10-Oct-2016 Aki Tuomi <aki.tuomi@dovecot.fi>

doveadm-sync: Add end-date support

ae949831f1f668b5501b4b125e7f7b1767fb109b 11-Aug-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

doveadm sync/backup: Added -S <max size> parameter to skip too large mails.

afd6d387ea65843b59fb6051fb567719d2a5279c 08-Aug-2016 Aki Tuomi <aki.tuomi@dovecot.fi>

dsync: Add support for features Add empty_header_workaround as first feature

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 dsync-brain-private.h dsync-ibc-private.h dsync-ibc-stream.c dsync-mailbox-export.c dsync-mailbox-import.c 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 /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
45af47783693b3ba2768c5ad34eeff68132382d0 26-Jan-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

dsync: When comparing headers' hashes to match messages, try to normalize the input. This is especially useful because some IMAP servers return different data depending on whether we're fetching only specific header fields, all headers or entire body. For now we're assuming that any non-ASCII is going to be replaced with '?', which helps at least with Zimbra and Yahoo. The header hashing algorithm is now versionable, so it can be modified more easily in future. This change should make imapc_features=zimbra-workarounds setting obsolete.

14b1d2a2634e75b988078baee1e8ad678de28a04 20-Oct-2015 Timo Sirainen <tss@iki.fi>

dsync: Added DSYNC_BRAIN_FLAG_NO_NOTIFY to enable MAILBOX_TRANSACTION_FLAG_NO_NOTIFY It's arguable that this should be enabled by default, but people might like to keep mail_log notifications for dsync.

1a1d00fd04bfcf8436b00b58d527e46b23523c9d 27-Aug-2015 Timo Sirainen <tss@iki.fi>

dsync: Added -D parameter to disable mailbox renaming. The renaming logic is annoyingly complex and there are some bugs left in it. With this parameter renames are never even attempted, but instead a rename would be done (slowly) with mailbox delete + create + fill. Although with imapc protocol mailbox renames are rarely detected anyway.

ce0e25f26d6e67480ee39b5ca0ad634fa60c4605 18-Mar-2015 Timo Sirainen <tss@iki.fi>

dsync: Use storage's mail_error to choose the doveadm exit code. Instead of always assuming that all errors are EX_TEMPFAIL.

24bd831901b8fd59718e353b36eaef6a950f09a2 13-Mar-2015 Timo Sirainen <tss@iki.fi>

dsync: Added an extra "finish" state to allow slave-dsync to report error to master-dsync. I'm not sure if that's actually necessary, but just trying to follow the different possibilities on how dsync run can finish made me unsure about it. This should make it at least clear that if a slave-dsync has a failure flag set at deinit master-dsync will know about it before it returns success.

2e652d2651b2800f99a17dcb3014a009fe4660d3 20-Jan-2015 Timo Sirainen <tss@iki.fi>

dsync: Added -F parameter to sync only mails with[out] specific flag.

70df8f39fb3db7c49b18c855178f8172176a037a 20-Jan-2015 Timo Sirainen <tss@iki.fi>

dsync: If same GUID already exists in storage, try to copy it instead of recreating the mail. This way most mailbox backends can reduce disk space by only doing a reference count update. This feature isn't enabled by default. A virtual "All Mails" mailbox needs to be configured using the virtual plugin. Then you need to give this mailbox as -a parameter, e.g.: doveadm sync -a "Virtual/All Mails" ... Currently this is implemented by reading through all the GUIDs in the virtual mailbox. This of course isn't very efficient for things like incremental replication. An upcoming conversation plugin will keep track of all the mails' GUIDs, so in future replication should be able to have this functionality efficiently as well.

3561c7bb472a78af74d755219cc0fc71c85ff5c2 19-Jan-2015 Timo Sirainen <tss@iki.fi>

dsync: Added -t <timestamp> parameter to save only mails newer than <timestamp> If one side has old mails that don't exist on the other side, they are ignored (not synced and not deleted).

d519a0449d0e536a32db93305516fdbd7db6773d 29-Sep-2014 Timo Sirainen <tss@iki.fi>

dsync: Added DSYNC_BRAIN_FLAG_NO_MAIL_PREFETCH to avoid opening mails unnecessarily.

0219a05495ca78d0ccc2a4d5dcfcf17aa859481f 15-Sep-2014 Timo Sirainen <tss@iki.fi>

dsync: Moved all doveadm-specific code to doveadm-dsync.c

9f240e2ce97176146b63506a8ee04034f712cf45 11-May-2014 Timo Sirainen <tss@iki.fi>

dsync: mailbox_metadata.cache_fields must be copied to permanent memory. Any other call to mailbox_get_metadata() would have cleared the memory.

40440c0fee87be994ba7eb60fc3512a9355708aa 28-Apr-2014 Timo Sirainen <tss@iki.fi>

dsync: If incremental dsync finds that its state is stale, retry (later) with full sync. This works only when the master itself notices such changes locally. Remote changes aren't noticed, because the master doesn't send the state to remote dsync and the master is also the one that decides which mailboxes are synced. The fix to this probably means sending the state string to remote dsync and have it check if the state is still valid (= protocol change).

089acbfed9532c40fdc7fe31ed5e32cc1824e846 28-Apr-2014 Timo Sirainen <tss@iki.fi>

dsync: Finished previous change to actually compile

d487aa885845c33fb358d5b3b514eece6791db0e 25-Mar-2014 Timo Sirainen <tss@iki.fi>

dsync: Support multiple -n parameters.

d0ff92b81b05166d800e04bbd2054a664305a330 22-Sep-2013 Timo Sirainen <tss@iki.fi>

dsync: Added -P parameter to do a purge for the remote storage after syncing.

ec047a9c54a02338e85fb1767120b0923f6d4148 17-Sep-2013 Timo Sirainen <tss@iki.fi>

dsync: Improved debug/error logging for changes during sync.

36723cf206a7b64b9d972ab0719bbfaacc9316fa 26-Jun-2013 Timo Sirainen <tss@iki.fi>

dsync: Added -1 parameter to do a "one way sync" without reverting changes. This can be useful during migration when you don't want to delete any mails, but you also don't want to send changes to the old server either.

47255691575e06a1c95ce78ff0a1b502199de3ab 24-Jun-2013 Timo Sirainen <tss@iki.fi>

dsync: If verbose_proctitle=yes, show the current state in it.

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

dsync: Added -x parameter to exclude mailboxes from sync. Multiple -x parameters can be added. Giving \flag as parameter means that the mailbox with the given SPECIAL-USE \flag is skipped. For example: doveadm sync -x '\All' -x '\Flagged' -x '\Important' mdbox:~/mdbox

9f99b5c3e607c41c16a6380203d401250d9e2603 25-Mar-2013 Timo Sirainen <tss@iki.fi>

doveadm sync/backup: Added -g <guid> to sync only the specified mailbox (by GUID) Similar to -m <mailbox name>.

f48fdb57185ca68e8c079e174f3e04da36646880 21-Mar-2013 Timo Sirainen <tss@iki.fi>

dsync: -m '' parameter now syncs mailbox list, but no actual mails.

55d33f807765482eb47374aaaced1fe714e0b256 14-Mar-2013 Timo Sirainen <tss@iki.fi>

dsync: Added support for syncing mailbox attributes.

ea245d7a9683e7bb9cd74fcdf1a26d049b2947eb 26-Feb-2013 Timo Sirainen <tss@iki.fi>

dsync: If I/O gets stalled, log the state in which it happened.

4fa4166f9b7770e11bc9969f78d66841f05e5939 19-Feb-2013 Timo Sirainen <tss@iki.fi>

dsync: Renamed -a parameter to -N. It also now skips invisible namespaces.

0e03baa885b89cd42fb76fe0282f272f035638cd 16-Feb-2013 Timo Sirainen <tss@iki.fi>

dsync: -l parameter locking is now done on the server with "lower" hostname. This allows running multi-master replication on two servers without two dsyncs mixing up changes by running at the same time.

979d89c147520f2934c14c31aeb9310fd2d62a46 10-Feb-2013 Timo Sirainen <tss@iki.fi>

dsync: Automatically figure out which mailboxes can sync with message GUIDs.

887a9fbbb2ca6afd53365ba2ccae0ef8728d6948 10-Feb-2013 Timo Sirainen <tss@iki.fi>

dsync: Renamed "guid_requests" to "mail_requests" The mails aren't necessarily requested by their GUID.

c7be65f5adbc2990fbe6eeffb6df5054a8a49d9d 15-Dec-2012 Timo Sirainen <tss@iki.fi>

dsync: Don't start reading a mailbox until we know we actually need to sync it.

707f172cd4e4c91af86ff5bd82a60a873dec6f70 15-Dec-2012 Timo Sirainen <tss@iki.fi>

dsync: Added back support for syncing only one mailbox (-m parameter)

ec66a68735096e81df73176231b49179222ad9ce 14-Dec-2012 Timo Sirainen <tss@iki.fi>

dsync: Added -a parameter to sync all namespaces, not just the default one.

5332128f69ad688cc024897c2a92f6b37ef8d05c 14-Dec-2012 Timo Sirainen <tss@iki.fi>

dsync: Added debugging and rawlogging support.

c307328f59c963eba21091ecd36c9435d42b47d8 20-Oct-2012 Timo Sirainen <tss@iki.fi>

doveadm sync/backup: Added -s <state> parameter to do a fast stateful sync. Initially use an empty string for the input state. The output state is written to stdout.

e83126866761632b437e532dfdc30be01d14039d 21-Oct-2012 Timo Sirainen <tss@iki.fi>

doveadm: "backup" command is working again.

a85473f7c11c8734bdee9c2cbe4b767f144a18aa 07-Sep-2012 Timo Sirainen <tss@iki.fi>

dsync: Renamed "slave" to "ibc" (= inter-brain communicator)

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 dsync-brain-mailbox.c dsync-brain-private.h dsync-brain.c dsync-mailbox-export.c dsync-mailbox-import.c dsync-mailbox-tree-fill.c dsync-mailbox-tree-private.h dsync-mailbox-tree-sync.c dsync-mailbox-tree.c dsync-transaction-log-scan.c 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 /dovecot/src/lib-index/mail-cache-fields.c /dovecot/src/lib-index/mail-cache-private.h /dovecot/src/lib-index/mail-cache.c /dovecot/src/lib-index/mail-index-private.h /dovecot/src/lib-index/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
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29 22-May-2012 Timo Sirainen <tss@iki.fi>

Initial version of dsync rewrite. * doveadm backup not implemented at all yet * syncing mailbox renames is somewhat broken (at least renaming \noselect mailboxes) * saving/restoring "state" is implemented by dsync brain, but not by doveadm. this should be easy to do, just need to figure out how the replication code wants it.

/dovecot/src/doveadm/doveadm-settings.c Makefile.am doveadm-dsync.c dsync-brain-mailbox-tree-sync.c dsync-brain-mailbox-tree.c dsync-brain-mailbox.c dsync-brain-mails.c dsync-brain-msgs-new.c dsync-brain-msgs.c dsync-brain-private.h dsync-brain.c dsync-brain.h dsync-data.c dsync-data.h dsync-deserializer.c dsync-deserializer.h dsync-mail.c dsync-mail.h dsync-mailbox-export.c dsync-mailbox-export.h dsync-mailbox-import.c dsync-mailbox-import.h dsync-mailbox-state-export.h dsync-mailbox-state.c dsync-mailbox-state.h dsync-mailbox-tree-fill.c dsync-mailbox-tree-private.h dsync-mailbox-tree-sync.c dsync-mailbox-tree.c dsync-mailbox-tree.h dsync-mailbox.h dsync-proxy-client.c dsync-proxy-server-cmd.c dsync-proxy-server.c dsync-proxy-server.h dsync-proxy.c dsync-proxy.h dsync-serializer.c dsync-serializer.h dsync-slave-io.c dsync-slave-pipe.c dsync-slave-private.h dsync-slave.c dsync-slave.h dsync-transaction-log-scan.c dsync-transaction-log-scan.h dsync-worker-local.c dsync-worker-private.h dsync-worker.c dsync-worker.h test-dsync-brain-msgs.c test-dsync-brain.c test-dsync-common.c test-dsync-common.h test-dsync-proxy-server-cmd.c test-dsync-proxy.c test-dsync-worker.c test-dsync-worker.h
f8aa3440094a546a35821f93370541a2f2875d47 16-Feb-2012 Timo Sirainen <tss@iki.fi>

dsync: If message with same GUID is saved multiple times in session, copy it instead of re-saving. This only works if the messages are in different mailboxes. It would be possible to fix it also for copying within same mailbox, but that's probably rare enough that it's not worth the extra code.

885a3c2287ae3e5827aa580ea06b231de38abb47 29-Dec-2011 Timo Sirainen <tss@iki.fi>

Merged dsync into "doveadm dsync". dsync symlink is installed for backwards compatibility.

/dovecot/.hgignore /dovecot/configure.in /dovecot/src/Makefile.am /dovecot/src/doveadm/Makefile.am /dovecot/src/doveadm/client-connection.c /dovecot/src/doveadm/doveadm-mail.c /dovecot/src/doveadm/doveadm-mail.h /dovecot/src/doveadm/doveadm-settings.c /dovecot/src/doveadm/doveadm-settings.h /dovecot/src/doveadm/doveadm.c Makefile.am doveadm-dsync.c doveadm-dsync.h dsync-brain-msgs-new.c dsync-brain-msgs.c dsync-brain-private.h dsync-brain.c dsync-brain.h dsync-data.c dsync-data.h dsync-proxy-client.c dsync-proxy-server-cmd.c dsync-proxy-server.c dsync-proxy-server.h dsync-proxy.c dsync-proxy.h dsync-worker-local.c dsync-worker-private.h dsync-worker.c dsync-worker.h test-dsync-brain-msgs.c test-dsync-brain.c test-dsync-common.c test-dsync-common.h test-dsync-proxy-server-cmd.c test-dsync-proxy.c test-dsync-worker.c test-dsync-worker.h /dovecot/src/dsync/dsync.c