From 03d0ab0fbf5b3a5363fd77d63641e51533a7d767 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 1 Jun 2022 20:30:13 +0200 Subject: [PATCH] fix dropping of pending message propagations when resuming started message propagations will now complete upon resumption even if the run was requested to be a no-op - whether that's a good thing can be argued, but it's the least effort way to avoid that committing discards transaction state. --- src/sync.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/sync.c b/src/sync.c index 58556da..eb2fba7 100644 --- a/src/sync.c +++ b/src/sync.c @@ -737,11 +737,13 @@ box_opened2( sync_vars_t *svars, int t ) if (srec->status & S_PURGE) { t = srec->uid[F] ? F : N; opts[t] |= OPEN_SETFLAGS; - } - if (srec->status & S_UPGRADE) { + } else if (srec->status & S_PENDING) { t = !srec->uid[F] ? F : N; opts[t] |= OPEN_APPEND; - opts[t^1] |= OPEN_OLD; + if (srec->status & S_UPGRADE) + opts[t^1] |= OPEN_OLD; + else + opts[t^1] |= OPEN_NEW; if (chan->ops[t] & OP_EXPUNGE) // Don't propagate doomed msgs opts[t^1] |= OPEN_FLAGS; }