History log of /dovecot/src/lib-imap-client/imapc-connection.h
Revision Date Author Comments Expand
651630fe2c92b696197ca7558925153d891997ed 19-May-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-imap-client: Change server IP only on connect() failures Also log an warning-level message about it. This is mainly useful to see that a slow connection could be caused by a connect() timeout. Since more IPs are still available, it's not yet an error.

78aafd062427cb22e9cf57ff08ced5b08baf55b3 19-May-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Fix infinite reconnection when server keeps sending corrupted state When corrupted state was found, imapc_client_mailbox_reconnect() is called to reconnect. This call skipped the normal "is it safe to reconnect?" checks causing potentially infinite reconnections.

b884dafdd32a43c3c62bf9dbcc7a1a5df1409b0f 10-Apr-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-imap-client: Remove hardcoded IMAPC_CONNECT_RETRY_WAIT_MSECS We have a setting for it now.

f3e5f802fac1c2047e46b44b856116cca1cbf5df 10-Apr-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-imap-client: Call the public login callback exactly once. Previously it was also called only once, as long as there were only a single imap connection. (The current imapc code wouldn't create more than one connection.) It was a bit confusing what the expectation was, so now the callback is never called more than once.

d35da39e688b94bb7e9adc6c865a45004c64a506 19-Mar-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Use LOGOUT to cleanly disconnect from server. This makes it clearer in the remote server's logs whether the disconnection was intentional or not. Use a hardcoded 5 second timeout for LOGOUT. It should be enough time for the server to finish sending the tagged reply.

3b94c8fb6952f5c0f284bd65fb1cb11bb1fe2e63 13-Jan-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Fix re-sending retryable commands after reconnect

e4020d174b147924a279a3b608e0223a2c234c2b 12-Apr-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Support retrying after connect() failure.

b60daa2dcb94b129a25ab5b42a2c6b6748c781aa 12-Apr-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Prepare for non-mailbox command retrying: Set reconnect_command_count earlier This probably doesn't fix itself anything yet, but is needed for the following changes.

639ba5ff2ba668b41b8a8102ce626d0b58d384ad 25-Aug-2015 Timo Sirainen <tss@iki.fi>

lib-imap-client: Allow reconnecting to IMAP server even if there had been no idle moments.

de26c21cfadf24c1fa59f06414854d58b3d8baad 11-Mar-2015 Timo Sirainen <tss@iki.fi>

imapc: Added throttling settings to imapc_features=throttle:a:b:c This change could be reverted once good settings are found.

b09f510e3f7e3bd4a5216a60fa1406d1e83d001b 31-Jul-2012 Timo Sirainen <tss@iki.fi>

imapc: Fixed crashes during mailbox close.

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 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 /dovecot/src/lib-storage/index/dbox-common/dbox-file-fix.c /dovecot/src/lib-storage/index/dbox-common/dbox-save.h /dovecot/src/lib-storage/index/dbox-common/dbox-storage.c /dovecot/src/lib-storage/index/dbox-common/dbox-sync-rebuild.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-map.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.c /dovecot/src/lib-storage/index/dbox-multi/mdbox-storage.h /dovecot/src/lib-storage/index/dbox-multi/mdbox-sync.c /dovecot/src/lib-storage/index/dbox-single/sdbox-storage.c /dovecot/src/lib-storage/index/imapc/imapc-mail.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-search.c /dovecot/src/lib-storage/index/index-sort.c /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-flags.c /dovecot/src/lib-storage/index/maildir/maildir-filename-flags.h /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-index.c /dovecot/src/lib-storage/index/maildir/maildir-sync.c /dovecot/src/lib-storage/index/maildir/maildir-sync.h /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/mbox-file.c /dovecot/src/lib-storage/index/mbox/mbox-lock.c /dovecot/src/lib-storage/index/mbox/mbox-mail.c /dovecot/src/lib-storage/index/mbox/mbox-storage.c /dovecot/src/lib-storage/index/mbox/mbox-sync-parse.c /dovecot/src/lib-storage/index/mbox/mbox-sync.c /dovecot/src/lib-storage/index/raw/raw-storage.c /dovecot/src/lib-storage/index/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
05b24d0011d82687674c8545db1217b4f9f327b7 20-Oct-2011 Timo Sirainen <tss@iki.fi>

imapc: Fixed reopening a mailbox.

f87844c400cf9741abad57d9815121d0738a738f 09-Oct-2011 Timo Sirainen <tss@iki.fi>

imapc: Support retrying some IMAP commands if we get disconnected.

edcd6f7223568e080d5a6767c5038e3bc891e963 09-Oct-2011 Timo Sirainen <tss@iki.fi>

imapc: Initial support for automatically reconnecting to remote server.

fb37a9b7bb71807a394e3ecdb74511f32a79c39b 07-Oct-2011 Timo Sirainen <tss@iki.fi>

imapc: Changed mailbox opening API to be more extensible.

81d3c215bb1fdbda2cf7ccd9519f6b4fd03c3791 07-Oct-2011 Timo Sirainen <tss@iki.fi>

imapc: Command sending API changed to be more extensible.

5035404202587543bb4843d4aec46331651b6e16 26-Sep-2011 Timo Sirainen <tss@iki.fi>

Moved imapc-client into its own lib-imap-client library.