isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

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:
Msrc/sync.c | 8+++++---
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; }