From: Timo Sirainen Date: Fri, 23 Jan 2015 21:18:01 +0000 (+0200) Subject: imapc: With gmail-labels-keyword feature add the $GMailHaveLabels only to \All mailbox X-Git-Tag: 2.2.16.rc1~108 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2813037cc30ddd53a21e6376d9698400feec7c59;p=thirdparty%2Fdovecot%2Fcore.git imapc: With gmail-labels-keyword feature add the $GMailHaveLabels only to \All mailbox This is primarily intended for migration, and with this behavior dsync can be run just once so it's faster. --- diff --git a/src/lib-storage/index/imapc/imapc-sync.c b/src/lib-storage/index/imapc/imapc-sync.c index beecd68388..eeadc871c9 100644 --- a/src/lib-storage/index/imapc/imapc-sync.c +++ b/src/lib-storage/index/imapc/imapc-sync.c @@ -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));