commit 58e35bc74b2a41a641a03b8d9f6da3320a548c6e Author: Oswald Buddenhagen <o...@kde.org> Date: Sun Oct 3 14:31:30 2010 +0200
fix UIDNEXT handling UIDNEXT *can* be legally zero, so deal with it. src/drv_imap.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/drv_imap.c b/src/drv_imap.c index 757ba48..cb45970 100644 --- a/src/drv_imap.c +++ b/src/drv_imap.c @@ -910,7 +910,7 @@ parse_response_code( imap_store_t *ctx, struct imap_cmd *cmd, char *s ) return RESP_BAD; } } else if (!strcmp( "UIDNEXT", arg )) { - if (!(arg = next_arg( &s )) || !(ctx->uidnext = atoi( arg ))) { + if (!(arg = next_arg( &s )) || (ctx->uidnext = strtol( arg, &p, 10 ), *p)) { error( "IMAP error: malformed NEXTUID status\n" ); return RESP_BAD; } @@ -1553,6 +1553,8 @@ imap_select( store_t *gctx, int minuid, int maxuid, int *excs, int nexcs, prefix = ctx->prefix; } + ctx->uidnext = -1; + cmd->param.create = (gctx->opts & OPEN_CREATE) != 0; cmd->param.trycreate = 1; if ((ret = imap_exec_b( ctx, cmd, "SELECT \"%s%s\"", prefix, gctx->name )) != DRV_OK) @@ -1577,7 +1579,7 @@ imap_select( store_t *gctx, int minuid, int maxuid, int *excs, int nexcs, goto bail; } if (maxuid == INT_MAX) - maxuid = ctx->uidnext ? ctx->uidnext - 1 : 1000000000; + maxuid = ctx->uidnext >= 0 ? ctx->uidnext - 1 : 1000000000; if (maxuid >= minuid && (ret = imap_exec_b( ctx, 0, "UID FETCH %d:%d (UID%s%s)", minuid, maxuid, (gctx->opts & OPEN_FLAGS) ? " FLAGS" : "", ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ isync-devel mailing list isync-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/isync-devel