t_strdup_printf("* OK [UIDNEXT %u] Predicted next UID",
status.uidnext));
+ client->nonpermanent_modseqs = status.nonpermanent_modseqs;
if (status.nonpermanent_modseqs) {
client_send_line(client,
"* OK [NOMODSEQ] No permanent modsequences");
unsigned int notify_count_changes:1;
unsigned int notify_flag_changes:1;
unsigned int imap_metadata_enabled:1;
+ unsigned int nonpermanent_modseqs:1;
};
struct imap_module_register {
ret = imap_sync_finish(ctx, TRUE);
imap_client_notify_finished(ctx->client);
- if ((ctx->client->enabled_features & MAILBOX_FEATURE_QRESYNC) != 0)
+ if ((ctx->client->enabled_features & MAILBOX_FEATURE_QRESYNC) != 0 &&
+ !ctx->client->nonpermanent_modseqs)
imap_sync_send_highestmodseq(ctx, sync_cmd);
if (array_is_created(&ctx->search_removes)) {
if (ctx->imap_flags & IMAP_SYNC_FLAG_SEND_UID)
str_printfa(str, "UID %u ", ctx->mail->uid);
if ((mailbox_get_enabled_features(ctx->box) &
- MAILBOX_FEATURE_CONDSTORE) != 0) {
+ MAILBOX_FEATURE_CONDSTORE) != 0 &&
+ !ctx->client->nonpermanent_modseqs) {
imap_sync_add_modseq(ctx, str);
str_append_c(str, ' ');
}