# HG changeset patch # User Timo Sirainen # Date 1255134796 14400 # Node ID 51329696ecf525c4ba4636611021e99c7786b269 # Parent 352eab3d6ade8f70e91849d0ecb0ec7747ae470c QRESYNC: Minor code cleanup by renaming variables to be more understandable. diff -r 352eab3d6ade -r 51329696ecf5 src/imap/imap-fetch.c --- a/src/imap/imap-fetch.c Fri Oct 09 15:26:18 2009 -0400 +++ b/src/imap/imap-fetch.c Fri Oct 09 20:33:16 2009 -0400 @@ -163,7 +163,7 @@ static void expunges_drop_known(struct imap_fetch_context *ctx, struct mail *mail, - ARRAY_TYPE(seq_range) *expunges) + ARRAY_TYPE(seq_range) *expunged_uids) { const uint32_t *seqs, *uids; unsigned int i, count; @@ -180,34 +180,34 @@ break; } if (i > 0) - seq_range_array_remove_range(expunges, 1, uids[i-1]); + seq_range_array_remove_range(expunged_uids, 1, uids[i-1]); } static int get_expunges_fallback(struct imap_fetch_context *ctx, - const ARRAY_TYPE(seq_range) *uids, - ARRAY_TYPE(seq_range) *expunges) + const ARRAY_TYPE(seq_range) *uid_filter_arr, + ARRAY_TYPE(seq_range) *expunged_uids) { struct mailbox_transaction_context *trans; struct mail_search_args *search_args; struct mail_search_context *search_ctx; struct mail *mail; - const struct seq_range *uid_range; + const struct seq_range *uid_filter; struct mailbox_status status; unsigned int i, count; uint32_t next_uid; int ret = 0; - uid_range = array_get(uids, &count); + uid_filter = array_get(uid_filter_arr, &count); i_assert(count > 0); i = 0; - next_uid = uid_range[0].seq1; + next_uid = uid_filter[0].seq1; - /* search UIDs in given range */ + /* search UIDs only in given range */ search_args = mail_search_build_init(); search_args->args = p_new(search_args->pool, struct mail_search_arg, 1); search_args->args->type = SEARCH_UIDSET; - i_array_init(&search_args->args->value.seqset, array_count(uids)); - array_append_array(&search_args->args->value.seqset, uids); + i_array_init(&search_args->args->value.seqset, count); + array_append_array(&search_args->args->value.seqset, uid_filter_arr); trans = mailbox_transaction_begin(ctx->box, 0); mail = mail_alloc(trans, 0, NULL); @@ -216,52 +216,55 @@ while (mailbox_search_next(search_ctx, mail) > 0) { if (mail->uid == next_uid) { - if (next_uid < uid_range[i].seq2) + if (next_uid < uid_filter[i].seq2) next_uid++; else if (++i < count) - next_uid = uid_range[++i].seq1; + next_uid = uid_filter[++i].seq1; else break; } else { /* next_uid .. mail->uid-1 are expunged */ i_assert(mail->uid > next_uid); - while (mail->uid > uid_range[i].seq2) { - seq_range_array_add_range(expunges, next_uid, - uid_range[i].seq2); + while (mail->uid > uid_filter[i].seq2) { + seq_range_array_add_range(expunged_uids, + next_uid, + uid_filter[i].seq2); i++; i_assert(i < count); - next_uid = uid_range[i].seq1; + next_uid = uid_filter[i].seq1; } if (next_uid != mail->uid) { - seq_range_array_add_range(expunges, next_uid, + seq_range_array_add_range(expunged_uids, + next_uid, mail->uid - 1); } - if (uid_range[i].seq2 == mail->uid) - next_uid = uid_range[++i].seq1; + if (uid_filter[i].seq2 == mail->uid) + next_uid = uid_filter[++i].seq1; else next_uid = mail->uid + 1; } } if (i < count) { - i_assert(next_uid <= uid_range[i].seq2); - seq_range_array_add_range(expunges, next_uid, - uid_range[i].seq2); + i_assert(next_uid <= uid_filter[i].seq2); + seq_range_array_add_range(expunged_uids, next_uid, + uid_filter[i].seq2); i++; } for (; i < count; i++) { - seq_range_array_add_range(expunges, uid_range[i].seq1, - uid_range[i].seq2); + seq_range_array_add_range(expunged_uids, uid_filter[i].seq1, + uid_filter[i].seq2); } mailbox_get_status(ctx->box, STATUS_UIDNEXT, &status); - seq_range_array_remove_range(expunges, status.uidnext, (uint32_t)-1); + seq_range_array_remove_range(expunged_uids, status.uidnext, + (uint32_t)-1); if (mailbox_search_deinit(&search_ctx) < 0) ret = -1; if (ret == 0 && ctx->qresync_sample_seqset != NULL && array_is_created(ctx->qresync_sample_seqset)) - expunges_drop_known(ctx, mail, expunges); + expunges_drop_known(ctx, mail, expunged_uids); mail_free(&mail); (void)mailbox_transaction_commit(&trans); @@ -273,29 +276,31 @@ { const struct mail_search_arg *uidarg = ctx->search_args->args; const struct mail_search_arg *modseqarg = uidarg->next; - const ARRAY_TYPE(seq_range) *uids = &uidarg->value.seqset; + const ARRAY_TYPE(seq_range) *uid_filter = &uidarg->value.seqset; uint64_t modseq = modseqarg->value.modseq->modseq - 1; - ARRAY_TYPE(seq_range) expunges; + ARRAY_TYPE(seq_range) expunged_uids; string_t *str; int ret = 0; - i_array_init(&expunges, array_count(uids)); - if (!mailbox_get_expunged_uids(ctx->box, modseq, uids, &expunges)) { + i_array_init(&expunged_uids, array_count(uid_filter)); + if (!mailbox_get_expunged_uids(ctx->box, modseq, uid_filter, + &expunged_uids)) { /* return all expunged UIDs */ - if (get_expunges_fallback(ctx, uids, &expunges) < 0) { - array_clear(&expunges); + if (get_expunges_fallback(ctx, uid_filter, + &expunged_uids) < 0) { + array_clear(&expunged_uids); ret = -1; } } - if (array_count(&expunges) > 0) { + if (array_count(&expunged_uids) > 0) { str = str_new(default_pool, 128); str_append(str, "* VANISHED (EARLIER) "); - imap_write_seq_range(str, &expunges); + imap_write_seq_range(str, &expunged_uids); str_append(str, "\r\n"); o_stream_send(ctx->client->output, str_data(str), str_len(str)); str_free(&str); } - array_free(&expunges); + array_free(&expunged_uids); return ret; }