dovecot-1.2: Changed mail index view syncing API to return only ...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Jun 17 12:36:49 EEST 2008
details: http://hg.dovecot.org/dovecot-1.2/rev/8ded6c06bcfc
changeset: 7875:8ded6c06bcfc
user: Timo Sirainen <tss at iki.fi>
date: Tue Jun 17 10:43:16 2008 +0300
description:
Changed mail index view syncing API to return only flag changes.
Currently it has only a single caller and it's not interested in anything
else.
diffstat:
3 files changed, 12 insertions(+), 42 deletions(-)
src/lib-index/mail-index-view-sync.c | 31 +++----------------------------
src/lib-index/mail-index.h | 9 ++++++---
src/lib-storage/index/index-sync.c | 14 +++-----------
diffs (108 lines):
diff -r 650330db2f99 -r 8ded6c06bcfc src/lib-index/mail-index-view-sync.c
--- a/src/lib-index/mail-index-view-sync.c Tue Jun 17 10:25:55 2008 +0300
+++ b/src/lib-index/mail-index-view-sync.c Tue Jun 17 10:43:16 2008 +0300
@@ -509,31 +509,6 @@ mail_index_view_sync_get_rec(struct mail
const void *data = ctx->data;
switch (hdr->type & MAIL_TRANSACTION_TYPE_MASK) {
- case MAIL_TRANSACTION_APPEND: {
- /* data contains the appended records, but we don't care */
- rec->type = MAIL_INDEX_SYNC_TYPE_APPEND;
- rec->uid1 = rec->uid2 = 0;
- ctx->data_offset += hdr->size;
- break;
- }
- case MAIL_TRANSACTION_EXPUNGE: {
- const struct mail_transaction_expunge *exp =
- CONST_PTR_OFFSET(data, ctx->data_offset);
-
- if ((hdr->type & MAIL_TRANSACTION_EXTERNAL) == 0) {
- /* this is simply a request for expunge */
- ctx->data_offset = ctx->hdr->size;
- return 0;
- }
-
- /* data contains mail_transaction_expunge[] */
- rec->type = MAIL_INDEX_SYNC_TYPE_EXPUNGE;
- rec->uid1 = exp->uid1;
- rec->uid2 = exp->uid2;
-
- ctx->data_offset += sizeof(*exp);
- break;
- }
case MAIL_TRANSACTION_FLAG_UPDATE: {
const struct mail_transaction_flag_update *update =
CONST_PTR_OFFSET(data, ctx->data_offset);
@@ -551,7 +526,7 @@ mail_index_view_sync_get_rec(struct mail
update = CONST_PTR_OFFSET(data, ctx->data_offset);
}
- rec->type = MAIL_INDEX_SYNC_TYPE_FLAGS;
+ rec->type = MAIL_INDEX_VIEW_SYNC_TYPE_FLAGS;
rec->uid1 = update->uid1;
rec->uid2 = update->uid2;
break;
@@ -571,7 +546,7 @@ mail_index_view_sync_get_rec(struct mail
}
uids = CONST_PTR_OFFSET(data, ctx->data_offset);
- rec->type = MAIL_INDEX_SYNC_TYPE_KEYWORD_ADD;
+ rec->type = MAIL_INDEX_VIEW_SYNC_TYPE_FLAGS;
rec->uid1 = uids[0];
rec->uid2 = uids[1];
@@ -583,7 +558,7 @@ mail_index_view_sync_get_rec(struct mail
CONST_PTR_OFFSET(data, ctx->data_offset);
/* data contains mail_transaction_keyword_reset[] */
- rec->type = MAIL_INDEX_SYNC_TYPE_KEYWORD_RESET;
+ rec->type = MAIL_INDEX_VIEW_SYNC_TYPE_FLAGS;
rec->uid1 = reset->uid1;
rec->uid2 = reset->uid2;
ctx->data_offset += sizeof(*reset);
diff -r 650330db2f99 -r 8ded6c06bcfc src/lib-index/mail-index.h
--- a/src/lib-index/mail-index.h Tue Jun 17 10:25:55 2008 +0300
+++ b/src/lib-index/mail-index.h Tue Jun 17 10:43:16 2008 +0300
@@ -157,11 +157,14 @@ struct mail_index_sync_rec {
unsigned int keyword_idx;
};
+enum mail_index_view_sync_type {
+ /* Flags or keywords changed */
+ MAIL_INDEX_VIEW_SYNC_TYPE_FLAGS = 0x01
+};
+
struct mail_index_view_sync_rec {
uint32_t uid1, uid2;
- /* keyword appends and removes are packed into one and same
- MAIL_INDEX_SYNC_TYPE_KEYWORD_ADD */
- enum mail_index_sync_type type;
+ enum mail_index_view_sync_type type;
/* TRUE if this was a hidden transaction. */
unsigned int hidden:1;
diff -r 650330db2f99 -r 8ded6c06bcfc src/lib-storage/index/index-sync.c
--- a/src/lib-storage/index/index-sync.c Tue Jun 17 10:25:55 2008 +0300
+++ b/src/lib-storage/index/index-sync.c Tue Jun 17 10:43:16 2008 +0300
@@ -112,18 +112,10 @@ static void index_view_sync_recs_get(str
i_array_init(&ctx->modseq_updates, 32);
while (mail_index_view_sync_next(ctx->sync_ctx, &sync_rec)) {
switch (sync_rec.type) {
- case MAIL_INDEX_SYNC_TYPE_APPEND:
- /* not interested */
- break;
- case MAIL_INDEX_SYNC_TYPE_EXPUNGE:
- /* later */
- break;
- case MAIL_INDEX_SYNC_TYPE_FLAGS:
- case MAIL_INDEX_SYNC_TYPE_KEYWORD_ADD:
- case MAIL_INDEX_SYNC_TYPE_KEYWORD_REMOVE:
- case MAIL_INDEX_SYNC_TYPE_KEYWORD_RESET:
+ case MAIL_INDEX_VIEW_SYNC_TYPE_FLAGS:
if (!mail_index_lookup_seq_range(ctx->ibox->view,
- sync_rec.uid1, sync_rec.uid2,
+ sync_rec.uid1,
+ sync_rec.uid2,
&seq1, &seq2))
break;
More information about the dovecot-cvs
mailing list