[dovecot-cvs] dovecot/src/lib-index mail-index-private.h, 1.14,
1.15 mail-index-sync-private.h, 1.3, 1.4 mail-index-sync.c,
1.11, 1.12 mail-index-view-sync.c, 1.5, 1.6 mail-index.c,
1.119, 1.120
cras at procontrol.fi
cras at procontrol.fi
Mon May 10 02:06:29 EEST 2004
- Previous message: [dovecot-cvs] dovecot/src/lib-storage/index/mbox mbox-lock.c, 1.1,
1.2 mbox-storage.c, 1.74, 1.75 mbox-sync-parse.c, 1.3,
1.4 mbox-sync-private.h, 1.4, 1.5 mbox-sync-rewrite.c, 1.3,
1.4 mbox-sync-update.c, 1.3, 1.4 mbox-sync.c, 1.4, 1.5
- Next message: [dovecot-cvs] dovecot/src/lib-storage/index index-sync.c,1.30,1.31
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/dovecot/src/lib-index
In directory talvi:/tmp/cvs-serv29121/lib-index
Modified Files:
mail-index-private.h mail-index-sync-private.h
mail-index-sync.c mail-index-view-sync.c mail-index.c
Log Message:
syncing fixes
Index: mail-index-private.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index-private.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- mail-index-private.h 3 May 2004 14:22:24 -0000 1.14
+++ mail-index-private.h 9 May 2004 23:06:27 -0000 1.15
@@ -112,11 +112,6 @@
void mail_index_view_transaction_ref(struct mail_index_view *view);
void mail_index_view_transaction_unref(struct mail_index_view *view);
-int mail_index_sync_get_rec(struct mail_index_view *view,
- struct mail_index_sync_rec *rec,
- const struct mail_transaction_header *hdr,
- const void *data, size_t *data_offset);
-
void mail_index_set_inconsistent(struct mail_index *index);
int mail_index_set_error(struct mail_index *index, const char *fmt, ...)
Index: mail-index-sync-private.h
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index-sync-private.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- mail-index-sync-private.h 2 May 2004 19:24:35 -0000 1.3
+++ mail-index-sync-private.h 9 May 2004 23:06:27 -0000 1.4
@@ -31,4 +31,11 @@
void mail_index_header_update_lowwaters(struct mail_index_header *hdr,
const struct mail_index_record *rec);
+void
+mail_index_sync_get_expunge(struct mail_index_sync_rec *rec,
+ const struct mail_transaction_expunge *exp);
+void
+mail_index_sync_get_update(struct mail_index_sync_rec *rec,
+ const struct mail_transaction_flag_update *update);
+
#endif
Index: mail-index-sync.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index-sync.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- mail-index-sync.c 4 May 2004 18:13:10 -0000 1.11
+++ mail-index-sync.c 9 May 2004 23:06:27 -0000 1.12
@@ -198,7 +198,7 @@
return 1;
}
-static void
+void
mail_index_sync_get_expunge(struct mail_index_sync_rec *rec,
const struct mail_transaction_expunge *exp)
{
@@ -207,7 +207,7 @@
rec->seq2 = exp->seq2;
}
-static void
+void
mail_index_sync_get_update(struct mail_index_sync_rec *rec,
const struct mail_transaction_flag_update *update)
{
@@ -252,45 +252,6 @@
return TRUE;
}
-int mail_index_sync_get_rec(struct mail_index_view *view,
- struct mail_index_sync_rec *rec,
- const struct mail_transaction_header *hdr,
- const void *data, size_t *data_offset)
-{
- switch (hdr->type & MAIL_TRANSACTION_TYPE_MASK) {
- case MAIL_TRANSACTION_APPEND: {
- rec->type = MAIL_INDEX_SYNC_TYPE_APPEND;
- rec->seq1 = view->index->map->records_count + 1;
- rec->seq2 = rec->seq1 + hdr->size /
- sizeof(struct mail_index_record) - 1;
- rec->appends = NULL;
-
- *data_offset += hdr->size;
- break;
- }
- case MAIL_TRANSACTION_EXPUNGE: {
- const struct mail_transaction_expunge *exp =
- CONST_PTR_OFFSET(data, *data_offset);
-
- *data_offset += sizeof(*exp);
- mail_index_sync_get_expunge(rec, exp);
- break;
- }
- case MAIL_TRANSACTION_FLAG_UPDATE: {
- const struct mail_transaction_flag_update *update =
- CONST_PTR_OFFSET(data, *data_offset);
-
- *data_offset += sizeof(*update);
- mail_index_sync_get_update(rec, update);
- break;
- }
- default:
- i_unreached();
- }
-
- return mail_index_sync_rec_check(view, rec);
-}
-
int mail_index_sync_next(struct mail_index_sync_ctx *ctx,
struct mail_index_sync_rec *sync_rec)
{
Index: mail-index-view-sync.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index-view-sync.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- mail-index-view-sync.c 2 May 2004 20:32:16 -0000 1.5
+++ mail-index-view-sync.c 9 May 2004 23:06:27 -0000 1.6
@@ -12,6 +12,7 @@
enum mail_index_sync_type sync_mask;
struct mail_index_map *sync_map;
buffer_t *expunges;
+ uint32_t messages_count;
const struct mail_transaction_header *hdr;
const void *data;
@@ -104,6 +105,7 @@
ctx->sync_mask = sync_mask;
ctx->sync_map = map;
ctx->expunges = expunges;
+ ctx->messages_count = mail_index_view_get_message_count(view);
*ctx_r = ctx;
return 0;
@@ -246,6 +248,46 @@
return 1;
}
+static void
+mail_index_view_sync_get_rec(struct mail_index_view_sync_ctx *ctx,
+ struct mail_index_sync_rec *rec)
+{
+ const struct mail_transaction_header *hdr = ctx->hdr;
+ const void *data = ctx->data;
+
+ switch (hdr->type & MAIL_TRANSACTION_TYPE_MASK) {
+ case MAIL_TRANSACTION_APPEND: {
+ rec->type = MAIL_INDEX_SYNC_TYPE_APPEND;
+ rec->seq1 = ctx->messages_count + 1;
+ ctx->messages_count +=
+ hdr->size / sizeof(struct mail_index_record);
+ rec->seq2 = ctx->messages_count;
+ rec->appends = NULL;
+
+ ctx->data_offset += hdr->size;
+ break;
+ }
+ case MAIL_TRANSACTION_EXPUNGE: {
+ const struct mail_transaction_expunge *exp =
+ CONST_PTR_OFFSET(data, ctx->data_offset);
+
+ ctx->data_offset += sizeof(*exp);
+ mail_index_sync_get_expunge(rec, exp);
+ break;
+ }
+ case MAIL_TRANSACTION_FLAG_UPDATE: {
+ const struct mail_transaction_flag_update *update =
+ CONST_PTR_OFFSET(data, ctx->data_offset);
+
+ ctx->data_offset += sizeof(*update);
+ mail_index_sync_get_update(rec, update);
+ break;
+ }
+ default:
+ i_unreached();
+ }
+}
+
int mail_index_view_sync_next(struct mail_index_view_sync_ctx *ctx,
struct mail_index_sync_rec *sync_rec)
{
@@ -278,9 +320,7 @@
}
}
- if (!mail_index_sync_get_rec(view, sync_rec, ctx->hdr, ctx->data,
- &ctx->data_offset))
- return -1;
+ mail_index_view_sync_get_rec(ctx, sync_rec);
return 1;
}
Index: mail-index.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-index/mail-index.c,v
retrieving revision 1.119
retrieving revision 1.120
diff -u -d -r1.119 -r1.120
--- mail-index.c 3 May 2004 14:37:49 -0000 1.119
+++ mail-index.c 9 May 2004 23:06:27 -0000 1.120
@@ -277,8 +277,10 @@
hdr = map->mmap_base;
used_size = hdr->header_size +
hdr->messages_count * sizeof(struct mail_index_record);
- if (map->mmap_size >= used_size && !force)
+ if (map->mmap_size >= used_size && !force) {
+ map->records_count = hdr->messages_count;
return 1;
+ }
if (munmap(map->mmap_base, map->mmap_size) < 0)
mail_index_set_syscall_error(index, "munmap()");
- Previous message: [dovecot-cvs] dovecot/src/lib-storage/index/mbox mbox-lock.c, 1.1,
1.2 mbox-storage.c, 1.74, 1.75 mbox-sync-parse.c, 1.3,
1.4 mbox-sync-private.h, 1.4, 1.5 mbox-sync-rewrite.c, 1.3,
1.4 mbox-sync-update.c, 1.3, 1.4 mbox-sync.c, 1.4, 1.5
- Next message: [dovecot-cvs] dovecot/src/lib-storage/index index-sync.c,1.30,1.31
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the dovecot-cvs
mailing list