]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: Added imapc_features = no-examine
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 15 Jan 2016 13:40:56 +0000 (15:40 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 15 Jan 2016 13:40:56 +0000 (15:40 +0200)
src/lib-storage/index/imapc/imapc-settings.c
src/lib-storage/index/imapc/imapc-settings.h
src/lib-storage/index/imapc/imapc-storage.c

index 549593fa96ec11237d2d70f17d8ba6302111b4fa..b47af9313ee25750a22b0d820d1cae33ddfbec64 100644 (file)
@@ -87,6 +87,7 @@ static const struct imapc_feature_list imapc_feature_list[] = {
        { "gmail-migration", IMAPC_FEATURE_GMAIL_MIGRATION },
        { "search", IMAPC_FEATURE_SEARCH },
        { "zimbra-workarounds", IMAPC_FEATURE_ZIMBRA_WORKAROUNDS },
+       { "no-examine", IMAPC_FEATURE_NO_EXAMINE },
        { NULL, 0 }
 };
 
index 6aba885d103507ac51dec7d63ea0f5bac1287e36..34b107716b8632bc2c28316fd76c3c5765d743ed 100644 (file)
@@ -10,7 +10,8 @@ enum imapc_features {
        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> */
 
index 6767652f9d2a8a03668de5801241aaab49040436..0670c260cb073e9b35cc0fcdcf5d19c3fd31a491 100644 (file)
@@ -441,6 +441,12 @@ imapc_mailbox_exists(struct mailbox *box, bool auto_boxes ATTR_UNUSED,
 
 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);