handle messages which are newly doomed after an interruption
we already didn't propagate messages which would be instantly expunged from the target, but failed to cancel propagations that were already scheduled before we got interrupted. this matters a bit when the resumption happens significantly later than the initial attempt, giving the user time to mark messages on the source as deleted.
This commit is contained in:
parent
4aaada18e9
commit
ceb09fcd44
|
@ -1593,7 +1593,13 @@ box_loaded( int sts, message_t *msgs, int total_msgs, int recent_msgs, void *aux
|
||||||
: svars->newmaxuid[1-t] < tmsg->uid && (svars->chan->ops[t] & OP_NEW)) {
|
: svars->newmaxuid[1-t] < tmsg->uid && (svars->chan->ops[t] & OP_NEW)) {
|
||||||
debug( "new message %u on %s\n", tmsg->uid, str_fn[1-t] );
|
debug( "new message %u on %s\n", tmsg->uid, str_fn[1-t] );
|
||||||
if ((svars->chan->ops[t] & OP_EXPUNGE) && (tmsg->flags & F_DELETED)) {
|
if ((svars->chan->ops[t] & OP_EXPUNGE) && (tmsg->flags & F_DELETED)) {
|
||||||
debug( "-> ignoring - would be expunged anyway\n" );
|
if (srec) {
|
||||||
|
JLOG( "- %u %u", (srec->uid[F], srec->uid[N]), "killing - would be expunged anyway" );
|
||||||
|
tmsg->srec = NULL;
|
||||||
|
srec->status = S_DEAD;
|
||||||
|
} else {
|
||||||
|
debug( "-> ignoring - would be expunged anyway\n" );
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (srec) {
|
if (srec) {
|
||||||
debug( "-> pair(%u,%u) exists\n", srec->uid[F], srec->uid[N] );
|
debug( "-> pair(%u,%u) exists\n", srec->uid[F], srec->uid[N] );
|
||||||
|
|
Loading…
Reference in New Issue
Block a user