Mercurial > dovecot > original-hg > dovecot-1.2
changeset 5573:9805becea644 HEAD
Fixed mailbox_transaction_commit_get_uids() to actually work and not just
crash.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 17 Apr 2007 20:17:52 +0300 |
parents | 896845fbc4ed |
children | 0bc6ec4cddab |
files | src/lib-storage/index/cydir/cydir-save.c src/lib-storage/index/dbox/dbox-save.c src/lib-storage/index/index-storage.h src/lib-storage/index/index-transaction.c src/lib-storage/index/maildir/maildir-save.c src/lib-storage/index/mbox/mbox-save.c |
diffstat | 6 files changed, 15 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/cydir/cydir-save.c Tue Apr 17 19:40:55 2007 +0300 +++ b/src/lib-storage/index/cydir/cydir-save.c Tue Apr 17 20:17:52 2007 +0300 @@ -186,8 +186,8 @@ uid = hdr->next_uid; mail_index_append_assign_uids(ctx->trans, uid, &next_uid); - t->ictx.first_saved_uid = uid; - t->ictx.last_saved_uid = next_uid - 1; + *t->ictx.first_saved_uid = uid; + *t->ictx.last_saved_uid = next_uid - 1; dir = mailbox_list_get_path(ctx->mbox->storage->storage.list, ctx->mbox->ibox.box.name,
--- a/src/lib-storage/index/dbox/dbox-save.c Tue Apr 17 19:40:55 2007 +0300 +++ b/src/lib-storage/index/dbox/dbox-save.c Tue Apr 17 20:17:52 2007 +0300 @@ -346,8 +346,8 @@ } mail_index_append_assign_uids(ctx->trans, uid, &next_uid); - t->ictx.first_saved_uid = uid; - t->ictx.last_saved_uid = next_uid - 1; + *t->ictx.first_saved_uid = uid; + *t->ictx.last_saved_uid = next_uid - 1; /* update UIDs */ for (seq = t->first_saved_mail_seq; seq <= ctx->seq; seq++, uid++) {
--- a/src/lib-storage/index/index-storage.h Tue Apr 17 19:40:55 2007 +0300 +++ b/src/lib-storage/index/index-storage.h Tue Apr 17 20:17:52 2007 +0300 @@ -82,7 +82,7 @@ struct mail_cache_view *cache_view; struct mail_cache_transaction_ctx *cache_trans; - uint32_t first_saved_uid, last_saved_uid; + uint32_t *first_saved_uid, *last_saved_uid; unsigned int cache_trans_failed:1; };
--- a/src/lib-storage/index/index-transaction.c Tue Apr 17 19:40:55 2007 +0300 +++ b/src/lib-storage/index/index-transaction.c Tue Apr 17 20:17:52 2007 +0300 @@ -89,15 +89,13 @@ uint32_t seq; uoff_t offset; - t->commit_flags = flags; - if (mail_index_transaction_commit(&itrans, &seq, &offset) < 0) - return -1; + *first_saved_uid_r = *last_saved_uid_r = 0; - if (t->first_saved_uid <= t->last_saved_uid) { - *first_saved_uid_r = t->first_saved_uid; - *last_saved_uid_r = t->last_saved_uid; - } - return 0; + t->commit_flags = flags; + t->first_saved_uid = first_saved_uid_r; + t->last_saved_uid = last_saved_uid_r; + + return mail_index_transaction_commit(&itrans, &seq, &offset); } void index_transaction_rollback(struct mailbox_transaction_context *_t)
--- a/src/lib-storage/index/maildir/maildir-save.c Tue Apr 17 19:40:55 2007 +0300 +++ b/src/lib-storage/index/maildir/maildir-save.c Tue Apr 17 20:17:52 2007 +0300 @@ -556,8 +556,8 @@ i_assert(first_uid != 0); mail_index_append_assign_uids(ctx->trans, first_uid, &next_uid); - t->ictx.first_saved_uid = first_uid; - t->ictx.last_saved_uid = next_uid - 1; + *t->ictx.first_saved_uid = first_uid; + *t->ictx.last_saved_uid = next_uid - 1; } flags = MAILDIR_UIDLIST_REC_FLAG_NEW_DIR |
--- a/src/lib-storage/index/mbox/mbox-save.c Tue Apr 17 19:40:55 2007 +0300 +++ b/src/lib-storage/index/mbox/mbox-save.c Tue Apr 17 20:17:52 2007 +0300 @@ -200,7 +200,7 @@ ctx->synced = TRUE; t->mbox_modified = TRUE; - t->ictx.first_saved_uid = ctx->next_uid; + *t->ictx.first_saved_uid = ctx->next_uid; mail_index_view_close(&view); } @@ -650,7 +650,7 @@ &sync_size, sizeof(sync_size), TRUE); } - t->ictx.last_saved_uid = ctx->next_uid - 1; + *t->ictx.last_saved_uid = ctx->next_uid - 1; } if (!ctx->synced && ctx->mbox->mbox_fd != -1 &&