[dovecot-cvs] dovecot/src/lib-storage/index index-sync.c,1.33,1.34
cras at procontrol.fi
cras at procontrol.fi
Sun May 23 04:58:34 EEST 2004
- Previous message: [dovecot-cvs] dovecot/src/lib ostream-file.c,1.24,1.25
- Next message: [dovecot-cvs]
dovecot/src/lib-storage/index/mbox istream-raw-mbox.c, 1.4,
1.5 mbox-sync-parse.c, 1.5, 1.6 mbox-sync-private.h, 1.5,
1.6 mbox-sync-rewrite.c, 1.4, 1.5 mbox-sync.c, 1.7, 1.8
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/lib-storage/index
In directory talvi:/tmp/cvs-serv9086/lib-storage/index
Modified Files:
index-sync.c
Log Message:
mbox syncing fixes
Index: index-sync.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/index-sync.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- a/index-sync.c 22 May 2004 21:30:42 -0000 1.33
+++ b/index-sync.c 23 May 2004 01:58:32 -0000 1.34
@@ -15,8 +15,9 @@
size_t i, expunges_count;
void *sc_context;
enum mail_index_sync_type sync_mask;
- uint32_t seq, seq1, seq2, messages_count, recent_count;
- int ret, appends;
+ uint32_t seq, seq1, seq2;
+ uint32_t messages_count, new_messages_count, recent_count;
+ int ret;
sync_mask = MAIL_INDEX_SYNC_MASK_ALL;
if ((flags & MAILBOX_SYNC_FLAG_NO_EXPUNGES) != 0)
@@ -37,15 +38,11 @@
sc = ibox->storage->callbacks;
sc_context = ibox->storage->callback_context;
- appends = FALSE;
-
- messages_count = mail_index_view_get_message_count(ibox->view);
memset(&full_flags, 0, sizeof(full_flags));
while ((ret = mail_index_view_sync_next(ctx, &sync)) > 0) {
switch (sync.type) {
case MAIL_INDEX_SYNC_TYPE_APPEND:
- appends = TRUE;
break;
case MAIL_INDEX_SYNC_TYPE_EXPUNGE:
/* later */
@@ -82,20 +79,25 @@
if (ret < 0)
mail_storage_set_index_error(ibox);
+ messages_count = new_messages_count =
+ mail_index_view_get_message_count(ibox->view);
+
if (sc->expunge != NULL) {
for (i = expunges_count*2; i > 0; i -= 2) {
seq = expunges[i-1];
if (seq > messages_count)
seq = messages_count;
- for (; seq >= expunges[i-2]; seq--)
+ for (; seq >= expunges[i-2]; seq--) {
sc->expunge(&ibox->box, seq, sc_context);
+ new_messages_count--;
+ }
}
}
mail_index_view_sync_end(ctx);
- if (appends) {
- messages_count = mail_index_view_get_message_count(ibox->view);
+ messages_count = mail_index_view_get_message_count(ibox->view);
+ if (messages_count != new_messages_count) {
recent_count = ibox->get_recent_count(ibox);
sc->new_messages(&ibox->box, messages_count, recent_count,
sc_context);
- Previous message: [dovecot-cvs] dovecot/src/lib ostream-file.c,1.24,1.25
- Next message: [dovecot-cvs]
dovecot/src/lib-storage/index/mbox istream-raw-mbox.c, 1.4,
1.5 mbox-sync-parse.c, 1.5, 1.6 mbox-sync-private.h, 1.5,
1.6 mbox-sync-rewrite.c, 1.4, 1.5 mbox-sync.c, 1.7, 1.8
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list