dovecot-2.0: virtual: Small code cleanup.
dovecot at dovecot.org
dovecot at dovecot.org
Mon Apr 5 09:18:17 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/d61ffd81124c
changeset: 11071:d61ffd81124c
user: Timo Sirainen <tss at iki.fi>
date: Mon Apr 05 09:13:55 2010 +0300
description:
virtual: Small code cleanup.
diffstat:
src/plugins/virtual/virtual-sync.c | 19 +++++++++++++++----
1 files changed, 15 insertions(+), 4 deletions(-)
diffs (57 lines):
diff -r bd2ac7e2fc40 -r d61ffd81124c src/plugins/virtual/virtual-sync.c
--- a/src/plugins/virtual/virtual-sync.c Mon Apr 05 08:59:04 2010 +0300
+++ b/src/plugins/virtual/virtual-sync.c Mon Apr 05 09:13:55 2010 +0300
@@ -1071,21 +1071,22 @@
{
uint32_t virtual_ext_id = ctx->mbox->virtual_ext_id;
struct virtual_sync_mail *vmails;
- struct virtual_backend_box *bbox, *const *bboxes;
+ struct virtual_backend_box *bbox;
struct virtual_backend_uidmap *uidmap = NULL;
struct virtual_add_record add_rec;
const struct virtual_mail_index_record *vrec;
const void *data;
bool expunged;
- uint32_t i, vseq, vuid, messages, count;
+ uint32_t i, vseq, vuid, messages;
unsigned int j = 0, uidmap_count = 0;
messages = mail_index_view_get_messages_count(ctx->sync_view);
+ if (messages == 0)
+ return;
/* sort the messages in current view by their backend mailbox and
real UID */
- vmails = messages == 0 ? NULL :
- i_new(struct virtual_sync_mail, messages);
+ vmails = i_new(struct virtual_sync_mail, messages);
for (vseq = 1; vseq <= messages; vseq++) {
mail_index_lookup_ext(ctx->sync_view, vseq, virtual_ext_id,
&data, &expunged);
@@ -1149,9 +1150,18 @@
add_rec.rec.real_uid = uidmap[j].real_uid;
array_append(&ctx->all_adds, &add_rec, 1);
}
+}
+
+static void virtual_sync_new_backend_boxes(struct virtual_sync_context *ctx)
+{
+ struct virtual_backend_box *const *bboxes;
+ struct virtual_add_record add_rec;
+ struct virtual_backend_uidmap *uidmap;
+ unsigned int i, j, count, uidmap_count;
/* if there are any mailboxes we didn't yet sync, add new messages in
them */
+ memset(&add_rec, 0, sizeof(add_rec));
bboxes = array_get(&ctx->mbox->backend_boxes, &count);
for (i = 0; i < count; i++) {
if (bboxes[i]->sync_seen)
@@ -1391,6 +1401,7 @@
sync all flags */
ctx->mbox->uids_mapped = TRUE;
virtual_sync_backend_map_uids(ctx);
+ virtual_sync_new_backend_boxes(ctx);
}
virtual_sync_backend_add_new(ctx);
array_free(&ctx->all_adds);
More information about the dovecot-cvs
mailing list