changeset 19564:4d671a0e6219

imapc: Added imapc_features = no-examine
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Fri, 15 Jan 2016 15:40:56 +0200
parents 11872411f6a0
children 103896524313
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, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/imapc/imapc-settings.c	Fri Jan 15 15:12:30 2016 +0200
+++ b/src/lib-storage/index/imapc/imapc-settings.c	Fri Jan 15 15:40:56 2016 +0200
@@ -87,6 +87,7 @@
 	{ "gmail-migration", IMAPC_FEATURE_GMAIL_MIGRATION },
 	{ "search", IMAPC_FEATURE_SEARCH },
 	{ "zimbra-workarounds", IMAPC_FEATURE_ZIMBRA_WORKAROUNDS },
+	{ "no-examine", IMAPC_FEATURE_NO_EXAMINE },
 	{ NULL, 0 }
 };
 
--- a/src/lib-storage/index/imapc/imapc-settings.h	Fri Jan 15 15:12:30 2016 +0200
+++ b/src/lib-storage/index/imapc/imapc-settings.h	Fri Jan 15 15:40:56 2016 +0200
@@ -10,7 +10,8 @@
 	IMAPC_FEATURE_FETCH_HEADERS		= 0x04,
 	IMAPC_FEATURE_GMAIL_MIGRATION		= 0x08,
 	IMAPC_FEATURE_SEARCH			= 0x10,
-	IMAPC_FEATURE_ZIMBRA_WORKAROUNDS	= 0x20
+	IMAPC_FEATURE_ZIMBRA_WORKAROUNDS	= 0x20,
+	IMAPC_FEATURE_NO_EXAMINE		= 0x40
 };
 /* </settings checks> */
 
--- a/src/lib-storage/index/imapc/imapc-storage.c	Fri Jan 15 15:12:30 2016 +0200
+++ b/src/lib-storage/index/imapc/imapc-storage.c	Fri Jan 15 15:40:56 2016 +0200
@@ -441,6 +441,12 @@
 
 static bool imapc_mailbox_want_examine(struct imapc_mailbox *mbox)
 {
+	if (IMAPC_BOX_HAS_FEATURE(mbox, IMAPC_FEATURE_NO_EXAMINE)) {
+		/* mainly a Courier-workaround: With POP3-only Maildir that
+		   doesn't have UIDVALIDITY set, EXAMINE won't generate a
+		   permanent UIDVALIDITY while SELECT will. */
+		return FALSE;
+	}
 	return (mbox->box.flags & MAILBOX_FLAG_DROP_RECENT) == 0 &&
 		((mbox->box.flags & MAILBOX_FLAG_READONLY) != 0 ||
 		 (mbox->box.flags & MAILBOX_FLAG_SAVEONLY) != 0);