dovecot-2.0-sslstream: mail_cache_register_fields(): Update cach...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Feb 13 02:56:27 EET 2010
details: http://hg.dovecot.org/dovecot-2.0-sslstream/rev/d7e946e3c0c4
changeset: 10339:d7e946e3c0c4
user: Timo Sirainen <tss at iki.fi>
date: Mon Nov 16 19:59:41 2009 -0500
description:
mail_cache_register_fields(): Update caching decisions from input fields.
diffstat:
2 files changed, 9 insertions(+), 1 deletion(-)
src/lib-index/mail-cache-fields.c | 6 ++++++
src/lib-index/mail-cache.h | 4 +++-
diffs (37 lines):
diff -r 69c2aa08cf2c -r d7e946e3c0c4 src/lib-index/mail-cache-fields.c
--- a/src/lib-index/mail-cache-fields.c Mon Nov 16 19:38:13 2009 -0500
+++ b/src/lib-index/mail-cache-fields.c Mon Nov 16 19:59:41 2009 -0500
@@ -69,6 +69,7 @@ void mail_cache_register_fields(struct m
struct mail_cache_field *fields,
unsigned int fields_count)
{
+ struct mail_cache_field *orig_field;
void *orig_key, *orig_value;
char *name;
unsigned int new_idx;
@@ -83,6 +84,11 @@ void mail_cache_register_fields(struct m
fields[i].idx =
POINTER_CAST_TO(orig_value, unsigned int);
+
+ orig_field = &cache->fields[fields[i].idx].field;
+ if (orig_field->decision == MAIL_CACHE_DECISION_NO)
+ orig_field->decision = fields[i].decision;
+
(void)field_type_verify(cache, fields[i].idx,
fields[i].type,
fields[i].field_size);
diff -r 69c2aa08cf2c -r d7e946e3c0c4 src/lib-index/mail-cache.h
--- a/src/lib-index/mail-cache.h Mon Nov 16 19:38:13 2009 -0500
+++ b/src/lib-index/mail-cache.h Mon Nov 16 19:59:41 2009 -0500
@@ -44,7 +44,9 @@ struct mail_cache *mail_cache_create(str
struct mail_cache *mail_cache_create(struct mail_index *index);
void mail_cache_free(struct mail_cache **cache);
-/* Register fields. fields[].idx is updated to contain field index. */
+/* Register fields. fields[].idx is updated to contain field index.
+ If field already exists and its caching decision is NO, the decision is
+ updated to the input field's decision. */
void mail_cache_register_fields(struct mail_cache *cache,
struct mail_cache_field *fields,
unsigned int fields_count);
More information about the dovecot-cvs
mailing list