Mercurial > dovecot > original-hg > dovecot-1.2
diff src/lib-index/mail-cache-compress.c @ 2339:406692edc12d HEAD
Cache fixes. Decisions are saved again.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 20 Jul 2004 19:50:56 +0300 |
parents | 7d02e2a7672d |
children | fed6d07bd8ee |
line wrap: on
line diff
--- a/src/lib-index/mail-cache-compress.c Tue Jul 20 15:45:13 2004 +0300 +++ b/src/lib-index/mail-cache-compress.c Tue Jul 20 19:50:56 2004 +0300 @@ -32,7 +32,8 @@ *field_seen = ctx->field_seen_value; field = view->cache->file_field_map[file_field]; - dec = view->cache->fields[field].decision & ~MAIL_CACHE_DECISION_FORCED; + dec = view->cache->fields[field].field.decision & + ~MAIL_CACHE_DECISION_FORCED; if (ctx->new_msg) { if (dec == MAIL_CACHE_DECISION_NO) return 1; @@ -43,7 +44,7 @@ buffer_append(ctx->buffer, &file_field, sizeof(file_field)); - if (view->cache->fields[field].field_size == (unsigned int)-1) { + if (view->cache->fields[field].field.field_size == (unsigned int)-1) { size32 = (uint32_t)data_size; buffer_append(ctx->buffer, &size32, sizeof(size32)); } @@ -65,7 +66,6 @@ struct mail_cache_record cache_rec; struct ostream *output; buffer_t *buffer; - size_t size; uint32_t message_count, seq, first_new_seq, old_offset; uoff_t offset; @@ -93,14 +93,12 @@ hdr.version = MAIL_CACHE_VERSION; hdr.indexid = idx_hdr->indexid; hdr.file_seq = idx_hdr->cache_file_seq + 1; + o_stream_send(output, &hdr, sizeof(hdr)); if (cache->fields_count != 0) { hdr.field_header_offset = - mail_cache_uint32_to_offset(sizeof(hdr)); - } - o_stream_send(output, &hdr, sizeof(hdr)); + mail_cache_uint32_to_offset(output->offset); - if (cache->fields_count != 0) { t_push(); buffer = buffer_create_dynamic(pool_datastack_create(), 256, (size_t)-1);