Revert "fix UIDNEXT handling"
in fact, UIDNEXT (and UIDVALIDITY) null is *not* allowed (see RFC3501 section 9). them popping up nonetheless was a dovecot bug (which would also confuse dovecot itself). having it in as a workaround was no good either, as quite some other code in mbsync assumes that UIDs are not null. This reverts commite1fa867
and most of39006d7
. -REFMAIL: 4CA62BA1.4020104@lemma.co.uk
This commit is contained in:
parent
233f563569
commit
9bbb02b8fd
3
TODO
3
TODO
|
@ -15,9 +15,6 @@ quotas are weird, they make close() fail.
|
|||
|
||||
clarify error cases of transactions.
|
||||
|
||||
sync.c does not consider UID 0 valid, which is wrong. fixing this requires
|
||||
an incompatible change or a remapping hack in sync state files.
|
||||
|
||||
clarify UID 0 vs. < 0 returns vor store_msg & find_msg.
|
||||
|
||||
create dbg_srec(srec, fmt, ...).
|
||||
|
|
|
@ -751,7 +751,7 @@ parse_response_code( imap_store_t *ctx, struct imap_cmd *cmd, char *s )
|
|||
return RESP_CANCEL;
|
||||
}
|
||||
} else if (!strcmp( "UIDNEXT", arg )) {
|
||||
if (!(arg = next_arg( &s )) || (ctx->gen.uidnext = strtol( arg, &p, 10 ), *p)) {
|
||||
if (!(arg = next_arg( &s )) || !(ctx->gen.uidnext = atoi( arg ))) {
|
||||
error( "IMAP error: malformed NEXTUID status\n" );
|
||||
return RESP_CANCEL;
|
||||
}
|
||||
|
@ -969,7 +969,7 @@ get_cmd_result_p2( imap_store_t *ctx, struct imap_cmd *cmd, int response )
|
|||
if (response != RESP_OK) {
|
||||
done_imap_cmd( ctx, ocmd, response );
|
||||
} else {
|
||||
ctx->gen.uidnext = 0;
|
||||
ctx->gen.uidnext = 1;
|
||||
if (ocmd->param.to_trash)
|
||||
ctx->trashnc = TrashKnown;
|
||||
ocmd->param.create = 0;
|
||||
|
@ -1436,7 +1436,7 @@ imap_select( store_t *gctx, int create,
|
|||
prefix = ctx->prefix;
|
||||
}
|
||||
|
||||
ctx->gen.uidnext = -1;
|
||||
ctx->gen.uidnext = 0;
|
||||
|
||||
INIT_IMAP_CMD(imap_cmd_simple, cmd, cb, aux)
|
||||
cmd->gen.param.create = create;
|
||||
|
@ -1480,7 +1480,7 @@ imap_load( store_t *gctx, int minuid, int maxuid, int newuid, int *excs, int nex
|
|||
goto done;
|
||||
}
|
||||
if (maxuid == INT_MAX)
|
||||
maxuid = ctx->gen.uidnext >= 0 ? ctx->gen.uidnext - 1 : 1000000000;
|
||||
maxuid = ctx->gen.uidnext ? ctx->gen.uidnext - 1 : 1000000000;
|
||||
if (maxuid >= minuid) {
|
||||
if ((ctx->gen.opts & OPEN_FIND) && minuid < newuid) {
|
||||
sprintf( buf, "%d:%d", minuid, newuid - 1 );
|
||||
|
|
|
@ -466,8 +466,6 @@ lost if they are marked as deleted after the message list was retrieved but
|
|||
before the mailbox is expunged. This can be fixed by using UID EXPUNGE.
|
||||
There is no risk as long as the IMAP mailbox is not simultaneously accessed
|
||||
by \fBmbsync\fR and another mail client.
|
||||
.P
|
||||
The IMAP message UID 0 is assumed to be impossible, which is wrong.
|
||||
..
|
||||
.SH FILES
|
||||
.TP
|
||||
|
|
Loading…
Reference in New Issue
Block a user