changeset 21826:bb83a3781301

imapc: Add imapc_features=delay-login The connection to imapc_host is delayed until it's actually needed to be performed.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Sun, 19 Mar 2017 15:35:14 +0200
parents f04be671add7
children f72bff071414
files src/lib-storage/index/imapc/imapc-settings.c src/lib-storage/index/imapc/imapc-settings.h src/lib-storage/index/imapc/imapc-storage.c
diffstat 3 files changed, 5 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/imapc/imapc-settings.c	Sun Mar 19 15:34:20 2017 +0200
+++ b/src/lib-storage/index/imapc/imapc-settings.c	Sun Mar 19 15:35:14 2017 +0200
@@ -96,6 +96,7 @@
 	{ "fetch-msn-workarounds", IMAPC_FEATURE_FETCH_MSN_WORKAROUNDS },
 	{ "fetch-fix-broken-mails", IMAPC_FEATURE_FETCH_FIX_BROKEN_MAILS },
 	{ "modseq", IMAPC_FEATURE_MODSEQ },
+	{ "delay-login", IMAPC_FEATURE_DELAY_LOGIN },
 	{ NULL, 0 }
 };
 
--- a/src/lib-storage/index/imapc/imapc-settings.h	Sun Mar 19 15:34:20 2017 +0200
+++ b/src/lib-storage/index/imapc/imapc-settings.h	Sun Mar 19 15:35:14 2017 +0200
@@ -15,7 +15,8 @@
 	IMAPC_FEATURE_PROXYAUTH			= 0x80,
 	IMAPC_FEATURE_FETCH_MSN_WORKAROUNDS	= 0x100,
 	IMAPC_FEATURE_FETCH_FIX_BROKEN_MAILS	= 0x200,
-	IMAPC_FEATURE_MODSEQ			= 0x400
+	IMAPC_FEATURE_MODSEQ			= 0x400,
+	IMAPC_FEATURE_DELAY_LOGIN		= 0x800,
 };
 /* </settings checks> */
 
--- a/src/lib-storage/index/imapc/imapc-storage.c	Sun Mar 19 15:34:20 2017 +0200
+++ b/src/lib-storage/index/imapc/imapc-storage.c	Sun Mar 19 15:35:14 2017 +0200
@@ -338,7 +338,8 @@
 	client->client = imapc_client_init(&set);
 	imapc_client_register_untagged(client->client,
 				       imapc_storage_client_untagged_cb, client);
-	if ((ns->flags & NAMESPACE_FLAG_LIST_PREFIX) != 0) {
+	if ((ns->flags & NAMESPACE_FLAG_LIST_PREFIX) != 0 &&
+	    (imapc_set->parsed_features & IMAPC_FEATURE_DELAY_LOGIN) == 0) {
 		/* start logging in immediately */
 		imapc_storage_client_login(client, ns->user, set.host);
 	}