commit 03d0ab0fbf5b3a5363fd77d63641e51533a7d767
parent e6c6840651b794e00bd1dc800a47079d82b121ff
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date: Wed, 1 Jun 2022 20:30:13 +0200
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.
Diffstat:
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git 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;
}