History log of /dovecot/src/lib-imap-client/imapc-client.h
Revision Date Author Comments Expand
3b7427fca4b403ad87bafc668e23cbb0a15fc975 08-Aug-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

lib-imap-client: Support sending IMAP ID command including unique x-session-ext-id

be21b9e65a37c29995899f7923f6d7e5771dc3ad 12-Jun-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Change auth_failed boolean to more specific auth_failed_state Since we now rely on auth_failed_state being initialized to zero, explicitly set IMAPC_COMMAND_STATE_OK to be defined as 0.

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.

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

lib-imap-client: Avoid infinite reconnection loops when retrying command fails reconnect_command_count wasn't calculated correctly, because the SELECT and potentially other following sync commands weren't included in it.

654c60f1741fd195878d74a30df90bf130649d64 25-Apr-2017 Timo Sirainen <timo.sirainen@dovecot.fi>

quota: Add imapc backend This allows using imapc storage with imapc quota. The quota acts as read-only, so it's used only when the current quota usage is explicitly asked. The quota can be looked up using either a mailbox name or quota root name. By default INBOX's quota is looked up. If there are multiple quota roots returned for the mailbox, only the first quota root returned by the QUOTAROOT reply is used.

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

imapc: Make sure client is logged in when checking capabilities Especially with imapc_features=delay-login the capability could have been looked at before the client was even connected.

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

lib-imap-client: Add unit test Initially this tests some connection and reconnection problems.

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

lib-imap-client: Disconnection during LOGIN should still have state=disconnected It's not an authentication failure, which would imply that the user or password was wrong.

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.

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

lib-imap-client: Change connect_retry_interval_secs to _msecs This allows caller to provide better precision.

fc1584e525d413183d37e1052081f3685a06c7fc 05-Apr-2017 Aki Tuomi <aki.tuomi@dovecot.fi>

imapc: Use IMAPC_COMMAND_STATE_AUTH_FAILED to indicate auth failure

276c62e4538faf5bf3ae127a7b7c246c5d37add2 05-Apr-2017 Aki Tuomi <aki.tuomi@dovecot.fi>

global: Fix imapc_client_login usage

dc2bbf10739ab8b4ed2a18f6ee5756d5dd00a870 05-Apr-2017 Aki Tuomi <aki.tuomi@dovecot.fi>

lib-imap-client: Add login_callback setter This way it can be set before actually calling login which might happen some time later.

c515f5c969f7a3a5b525ab15bde2f116cbe932de 03-Apr-2017 Aki Tuomi <aki.tuomi@dovecot.fi>

lib-imap-client: Make retry count and interval configurable

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.

7d8fe66fbc53ab28d4e06492ca5a897743c0ee9c 15-Feb-2017 Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>

lib-imap-client: invoke state change callback on "authentication success"

e883e4406713e4cd6a3c98029cee00c537415f17 15-Feb-2017 Josef 'Jeff' Sipek <jeff.sipek@dovecot.fi>

lib-imap-client: add callback to notify consumers about state changes Add a callback to notify imapc users about failures. Currently, the only failure defined is "authentication failed".

c23ebb9b0e0b760ca8da16fde34ff33f5ece5e07 06-Oct-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Added imapc_max_line_length to limit maximum memory usage. The default is still unlimited, but this should be set to something smaller for untrusted servers.

bd06c77a12bb02871b25dceb749fa955f4a272ff 16-Jan-2016 Timo Sirainen <timo.sirainen@dovecot.fi>

imapc: Added support for PROXYAUTH command by setting imapc_features = proxyauth This can be useful when talking to Sun/Oracle IMAP server, which wants you to use LOGIN+PROXYAUTH to perform master user logins, instead of supporting the standard SASL PLAIN authentication.

009217abb57a24a4076092e8e4e165545747839e 29-Aug-2015 Stephan Bosch <stephan@rename-it.nl>

Changed type of internet port values to in_port_t everywhere. Created special SET_IN_PORT setting type for internet port values. Created net_str2port() for parsing internet port values. Removed several atoi() invocations in the process.

/dovecot/src/auth/auth-request.c /dovecot/src/auth/auth-request.h /dovecot/src/auth/passdb-imap.c /dovecot/src/config/config-request.c /dovecot/src/director/director-connection.c /dovecot/src/director/director-host.c /dovecot/src/director/director-host.h /dovecot/src/director/director-settings.c /dovecot/src/director/director-settings.h /dovecot/src/director/director-test.c /dovecot/src/director/director.c /dovecot/src/director/director.h /dovecot/src/director/doveadm-connection.c /dovecot/src/director/login-connection.c /dovecot/src/director/main.c /dovecot/src/doveadm/client-connection.h /dovecot/src/doveadm/doveadm-auth.c /dovecot/src/doveadm/doveadm-director.c /dovecot/src/doveadm/doveadm-mail-server.c /dovecot/src/doveadm/doveadm-settings.c /dovecot/src/doveadm/doveadm-settings.h /dovecot/src/doveadm/doveadm-util.c /dovecot/src/doveadm/doveadm-util.h /dovecot/src/doveadm/doveadm-zlib.c /dovecot/src/doveadm/server-connection.c /dovecot/src/imap-hibernate/imap-client.h /dovecot/src/imap-hibernate/imap-hibernate-client.c /dovecot/src/imap-login/client.c /dovecot/src/imap-urlauth/imap-urlauth-worker-settings.c /dovecot/src/imap-urlauth/imap-urlauth-worker-settings.h /dovecot/src/imap/imap-client-hibernate.c /dovecot/src/imap/imap-master-client.c /dovecot/src/imap/imap-settings.c /dovecot/src/imap/imap-settings.h /dovecot/src/lib-auth/auth-client.h /dovecot/src/lib-auth/auth-master.h /dovecot/src/lib-dict/dict-memcached-ascii.c /dovecot/src/lib-dict/dict-memcached.c /dovecot/src/lib-dict/dict-redis.c /dovecot/src/lib-http/http-client-connection.c /dovecot/src/lib-http/http-server-connection.c /dovecot/src/lib-http/test-http-server.c imapc-client.h /dovecot/src/lib-imap-urlauth/imap-urlauth-private.h /dovecot/src/lib-imap-urlauth/imap-urlauth.h /dovecot/src/lib-lda/lmtp-client.c /dovecot/src/lib-lda/lmtp-client.h /dovecot/src/lib-lda/smtp-client.c /dovecot/src/lib-master/master-service-haproxy.c /dovecot/src/lib-master/master-service.h /dovecot/src/lib-master/service-settings.h /dovecot/src/lib-settings/settings-parser.c /dovecot/src/lib-settings/settings-parser.h /dovecot/src/lib-sql/driver-mysql.c /dovecot/src/lib-storage/index/imapc/imapc-settings.c /dovecot/src/lib-storage/index/imapc/imapc-settings.h /dovecot/src/lib-storage/index/pop3c/pop3c-client.h /dovecot/src/lib-storage/index/pop3c/pop3c-settings.c /dovecot/src/lib-storage/index/pop3c/pop3c-settings.h /dovecot/src/lib-storage/mail-storage-service.h /dovecot/src/lib/connection.c /dovecot/src/lib/connection.h /dovecot/src/lib/fd-close-on-exec.c /dovecot/src/lib/iostream-rawlog.c /dovecot/src/lib/net.c /dovecot/src/lib/net.h /dovecot/src/lib/uri-util.c /dovecot/src/lmtp/client.h /dovecot/src/lmtp/commands.c /dovecot/src/lmtp/lmtp-proxy.h /dovecot/src/login-common/client-common-auth.c /dovecot/src/login-common/client-common.h /dovecot/src/login-common/login-common.h /dovecot/src/login-common/login-proxy-state.c /dovecot/src/login-common/login-proxy-state.h /dovecot/src/login-common/login-proxy.c /dovecot/src/login-common/login-proxy.h /dovecot/src/master/master-settings.c /dovecot/src/master/service-listen.c /dovecot/src/master/service.c /dovecot/src/pop3-login/client.c /dovecot/src/replication/aggregator/aggregator-settings.c /dovecot/src/replication/aggregator/aggregator-settings.h /dovecot/src/replication/aggregator/replicator-connection.c /dovecot/src/replication/aggregator/replicator-connection.h
45a3ea3347dd42fccc84a3efafb6331e7baeb404 23-Apr-2015 Timo Sirainen <tss@iki.fi>

imapc: Don't write SEARCH YOUNGER/OLDER queries if server doesn't support WITHIN extension

051c44cfe0f79b7c7b4d057fc7d3e071591f9659 13-Mar-2015 Timo Sirainen <tss@iki.fi>

lib-imap-client: If we get disconnected and reconnect, log it as warning instead of as error.

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.

6e1cac3defe84a222b804f3ef41ff558e1a86391 03-Feb-2015 Timo Sirainen <tss@iki.fi>

imapc: Added imapc_features=search support for sending SEARCH commands. Currently requires the remote server to support ESEARCH (but this would be easy to avoid). This is only minimally tested for now, so bugs may exist (especially related to sub-queries).

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

lib-imap-client: Added imapc_command_get_tag()

c6033074ada5c7441ff7bb12c4b433cae737fea2 08-Jan-2015 Timo Sirainen <tss@iki.fi>

imapc: Added imapc_sasl_mechanisms setting The first supported SASL mechanism is used, otherwise the login fails entirely.

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

imapc: If connection isn't in selected state when deleting mailbox, don't try to UNSELECT it.

9a7f22e2c14b507e6044e5534df978a0c3b638d0 19-Sep-2013 Timo Sirainen <tss@iki.fi>

imapc: Abort pending commands before any deinitialization to avoid crashes.

719e8f8c67bdf3f70695a26885f68e13a6ac0297 06-Jun-2013 Timo Sirainen <tss@iki.fi>

lib-imap-client: Added support for UNSELECT capability.

9f3b630d62d70fc0a06a07b85d9e66116fd444a8 31-May-2013 Timo Sirainen <tss@iki.fi>

lib-imap-client: Connect and command timeouts are now configurable. Also use the same connect timeout for the DNS lookup's timeout.

56d1345c43bbd28c36b7faa85e4163bd9e874290 07-Apr-2013 Timo Sirainen <tss@iki.fi>

Added ssl_client_ca_file to specify the CA certs as a file instead of as a dir. This is required for Redhat-based systems where there isn't a CA directory like in Debian/Ubuntu.

bf5a238894b81b0719c60d6a9fdb66aafd5171db 24-Sep-2012 Timo Sirainen <tss@iki.fi>

imapc: Added IMAPC_DEFAULT_MAX_IDLE_TIME macro.

e5d809128c61f4503b394e7fe48165afa052b18b 03-Sep-2012 Timo Sirainen <tss@iki.fi>

lib-imap-client: Added support for NAMESPACE capability Required by previous imapc commit

cee50689ea9f3cfec451a6e105307ee2d86ed5dc 14-Aug-2012 Timo Sirainen <tss@iki.fi>

imapc: Added imapc_max_idle_time setting to force activity on connection. Reducing this from the default 29 minutes should help when there's a stateful firewall between imapc and the backend server.

afa672e8be526567d29c7eccf4bf95d63a4a749c 12-Dec-2011 Timo Sirainen <tss@iki.fi>

imapc: Added X-GM-EXT-1 and CONDSTORE to capabilities.

11bbebd9f9a8043365e87a621a263749e93334bd 24-Nov-2011 Timo Sirainen <tss@iki.fi>

imapc: Pass ssl_crypto_device setting to lib-ssl-iostream.

c5a7be1b6f1a957065951f24530741faa18c58a6 23-Nov-2011 Timo Sirainen <tss@iki.fi>

Compile fixes.

35779754964119c94b919b75bbf1ccc1c02aad52 17-Oct-2011 Timo Sirainen <tss@iki.fi>

imapc: Added imapc_ssl_verify setting.

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

imapc: Initial support for automatically reconnecting to remote server.

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

imapc: Removed unused "stop now" functionality.

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.

cdf00df4dc5d0ae5acfdf200d2e846dbb92fda7e 01-Oct-2011 Timo Sirainen <tss@iki.fi>

imapc: Changed imapc_client_mailbox_cmd() parameter order to be same as in _cmdf().

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

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