]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Changed mail index view syncing API to return only flag changes.
authorTimo Sirainen <tss@iki.fi>
Tue, 17 Jun 2008 07:43:16 +0000 (10:43 +0300)
committerTimo Sirainen <tss@iki.fi>
Tue, 17 Jun 2008 07:43:16 +0000 (10:43 +0300)
Currently it has only a single caller and it's not interested in anything
else.

--HG--
branch : HEAD

src/lib-index/mail-index-view-sync.c
src/lib-index/mail-index.h
src/lib-storage/index/index-sync.c

index 7bab0410e39fe1548fbc4243ba0a7f85eb0b3d7e..7b714a37f716d3e5243ef79d01460a2cff7d8fca 100644 (file)
@@ -509,31 +509,6 @@ mail_index_view_sync_get_rec(struct mail_index_view_sync_ctx *ctx,
        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_index_view_sync_ctx *ctx,
                        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_index_view_sync_ctx *ctx,
                }
 
                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_index_view_sync_ctx *ctx,
                        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);
index a204e4b18d02a2778faf60e292e1884f38f3a991..dd04aa1f20b360ecb83bea316a3b93155fde44c7 100644 (file)
@@ -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;
index b07d9e5f5137bea04ad74a7b0d7f1cc7b849400b..908272ea50f44524e5367a8b577c417c1ae99421 100644 (file)
@@ -112,18 +112,10 @@ static void index_view_sync_recs_get(struct index_mailbox_sync_context *ctx)
                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;