sanitize S_DEL
This commit is contained in:
parent
e205eb62f5
commit
40fc6a6ac8
13
src/sync.c
13
src/sync.c
|
@ -665,6 +665,10 @@ sync_boxes( store_t *ctx[], const char *names[], channel_conf_t *chan )
|
||||||
} else {
|
} else {
|
||||||
del[M] = nom && (srec->uid[M] > 0);
|
del[M] = nom && (srec->uid[M] > 0);
|
||||||
del[S] = nos && (srec->uid[S] > 0);
|
del[S] = nos && (srec->uid[S] > 0);
|
||||||
|
if (srec->msg[M] && (srec->msg[M]->flags & F_DELETED))
|
||||||
|
srec->status |= S_DEL(M);
|
||||||
|
if (srec->msg[S] && (srec->msg[S]->flags & F_DELETED))
|
||||||
|
srec->status |= S_DEL(S);
|
||||||
nflags = srec->flags;
|
nflags = srec->flags;
|
||||||
|
|
||||||
for (t = 0; t < 2; t++) {
|
for (t = 0; t < 2; t++) {
|
||||||
|
@ -687,6 +691,7 @@ sync_boxes( store_t *ctx[], const char *names[], channel_conf_t *chan )
|
||||||
case DRV_BOX_BAD: ret = SYNC_FAIL; goto finish;
|
case DRV_BOX_BAD: ret = SYNC_FAIL; goto finish;
|
||||||
default: /* ok */ break;
|
default: /* ok */ break;
|
||||||
case DRV_OK:
|
case DRV_OK:
|
||||||
|
srec->status |= S_DEL(t);
|
||||||
Fprintf( jfp, "%c %d %d 0\n", "><"[t], srec->uid[M], srec->uid[S] );
|
Fprintf( jfp, "%c %d %d 0\n", "><"[t], srec->uid[M], srec->uid[S] );
|
||||||
srec->uid[1-t] = 0;
|
srec->uid[1-t] = 0;
|
||||||
}
|
}
|
||||||
|
@ -730,6 +735,10 @@ sync_boxes( store_t *ctx[], const char *names[], channel_conf_t *chan )
|
||||||
case DRV_BOX_BAD: ret = SYNC_FAIL; goto finish;
|
case DRV_BOX_BAD: ret = SYNC_FAIL; goto finish;
|
||||||
default: /* ok */ break;
|
default: /* ok */ break;
|
||||||
case DRV_OK:
|
case DRV_OK:
|
||||||
|
if (aflags & F_DELETED)
|
||||||
|
srec->status |= S_DEL(t);
|
||||||
|
else if (dflags & F_DELETED)
|
||||||
|
srec->status &= ~S_DEL(t);
|
||||||
nflags = (nflags | aflags) & ~dflags;
|
nflags = (nflags | aflags) & ~dflags;
|
||||||
if (unex) {
|
if (unex) {
|
||||||
debug( "unexpiring pair(%d,%d)\n", srec->uid[M], srec->uid[S] );
|
debug( "unexpiring pair(%d,%d)\n", srec->uid[M], srec->uid[S] );
|
||||||
|
@ -747,10 +756,6 @@ sync_boxes( store_t *ctx[], const char *names[], channel_conf_t *chan )
|
||||||
srec->flags = nflags;
|
srec->flags = nflags;
|
||||||
Fprintf( jfp, "* %d %d %u\n", srec->uid[M], srec->uid[S], nflags );
|
Fprintf( jfp, "* %d %d %u\n", srec->uid[M], srec->uid[S], nflags );
|
||||||
}
|
}
|
||||||
if (srec->msg[M] && (srec->msg[M]->flags & F_DELETED))
|
|
||||||
srec->status |= S_DEL(M);
|
|
||||||
if (srec->msg[S] && (srec->msg[S]->flags & F_DELETED))
|
|
||||||
srec->status |= S_DEL(S);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user