]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imapc: With gmail-labels-keyword feature add the $GMailHaveLabels only to \All mailbox
authorTimo Sirainen <tss@iki.fi>
Fri, 23 Jan 2015 21:18:01 +0000 (23:18 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 23 Jan 2015 21:18:01 +0000 (23:18 +0200)
This is primarily intended for migration, and with this behavior dsync can
be run just once so it's faster.

src/lib-storage/index/imapc/imapc-sync.c

index beecd68388d057aa347a3a69f57441da550ac65c..eeadc871c923f114973c515c2d9b3e82d2150492 100644 (file)
@@ -281,8 +281,15 @@ imapc_sync_send_commands(struct imapc_sync_context *ctx, uint32_t first_uid)
        string_t *cmd = t_str_new(64);
 
        str_printfa(cmd, "UID FETCH %u:* (FLAGS", first_uid);
-       if (IMAPC_BOX_HAS_FEATURE(ctx->mbox, IMAPC_FEATURE_GMAIL_LABELS_KEYWORD))
-               str_append(cmd, " X-GM-LABELS");
+       if (IMAPC_BOX_HAS_FEATURE(ctx->mbox, IMAPC_FEATURE_GMAIL_LABELS_KEYWORD)) {
+               /* do this only for the \All mailbox */
+               enum mailbox_info_flags flags;
+
+               if (imapc_list_get_mailbox_flags(ctx->mbox->box.list,
+                                                ctx->mbox->box.name, &flags) == 0 &&
+                   (flags & MAILBOX_SPECIALUSE_ALL) != 0)
+                       str_append(cmd, " X-GM-LABELS");
+       }
        str_append_c(cmd, ')');
        imapc_sync_cmd(ctx, str_c(cmd));