#define BODY_SNIPPET_ALGO_V1 "1"
#define BODY_SNIPPET_MAX_CHARS 200
-struct mail_cache_field global_cache_fields[MAIL_INDEX_CACHE_FIELD_COUNT] = {
+static struct mail_cache_field global_cache_fields[MAIL_INDEX_CACHE_FIELD_COUNT] = {
{ .name = "flags",
.type = MAIL_CACHE_FIELD_BITMASK,
.field_size = sizeof(uint32_t) },
enum index_cache_field field);
static int index_mail_write_body_snippet(struct index_mail *mail);
+struct mail_cache_field *index_mail_global_cache_fields_dup(void)
+{
+ return i_memdup(global_cache_fields, sizeof(global_cache_fields));
+}
+
int index_mail_cache_lookup_field(struct index_mail *mail, buffer_t *buf,
unsigned int field_idx)
{
MAIL_INDEX_CACHE_FIELD_COUNT
};
-extern struct mail_cache_field
- global_cache_fields[MAIL_INDEX_CACHE_FIELD_COUNT];
#define IMAP_BODY_PLAIN_7BIT_ASCII \
"\"text\" \"plain\" (\"charset\" \"us-ascii\") NIL NIL \"7bit\""
#define INDEX_MAIL(s) container_of(s, struct index_mail, mail.mail)
+struct mail_cache_field *index_mail_global_cache_fields_dup(void);
+
struct mail *
index_mail_alloc(struct mailbox_transaction_context *t,
enum mail_fetch_field wanted_fields,
const struct mail_storage_settings *set = box->storage->set;
struct mail_cache *cache = box->cache;
- ibox->cache_fields = i_malloc(sizeof(global_cache_fields));
- memcpy(ibox->cache_fields, global_cache_fields,
- sizeof(global_cache_fields));
+ ibox->cache_fields = index_mail_global_cache_fields_dup();
mail_cache_register_fields(cache, ibox->cache_fields,
MAIL_INDEX_CACHE_FIELD_COUNT);