From f7548d6d28c313cf80e6f3ef89aed16a19815df1 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 11:51:24 +0200 Subject: Adding upstream version 1:2.3.19.1+dfsg1. Signed-off-by: Daniel Baumann --- src/lib-storage/fail-mail.c | 271 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 src/lib-storage/fail-mail.c (limited to 'src/lib-storage/fail-mail.c') diff --git a/src/lib-storage/fail-mail.c b/src/lib-storage/fail-mail.c new file mode 100644 index 0000000..f236d76 --- /dev/null +++ b/src/lib-storage/fail-mail.c @@ -0,0 +1,271 @@ +/* Copyright (c) 2009-2018 Dovecot authors, see the included COPYING file */ + +#include "lib.h" +#include "array.h" +#include "mail-storage-private.h" +#include "fail-mail-storage.h" + +struct mail * +fail_mailbox_mail_alloc(struct mailbox_transaction_context *t, + enum mail_fetch_field wanted_fields ATTR_UNUSED, + struct mailbox_header_lookup_ctx *wanted_headers ATTR_UNUSED) +{ + struct mail_private *mail; + pool_t pool; + + pool = pool_alloconly_create("fail mail", 1024); + mail = p_new(pool, struct mail_private, 1); + mail->mail.box = t->box; + mail->mail.transaction = t; + mail->v = fail_mail_vfuncs; + mail->pool = pool; + p_array_init(&mail->module_contexts, pool, 5); + return &mail->mail; +} + +static void fail_mail_free(struct mail *mail) +{ + struct mail_private *pmail = (struct mail_private *)mail; + + pool_unref(&pmail->pool); +} + +static void fail_mail_set_seq(struct mail *mail, uint32_t seq, bool saving) +{ + mail->seq = seq; + mail->uid = seq; + mail->saving = saving; + + mail->expunged = TRUE; + mail->has_nuls = FALSE; + mail->has_no_nuls = FALSE; +} + +static bool fail_mail_set_uid(struct mail *mail, uint32_t uid) +{ + fail_mail_set_seq(mail, uid, FALSE); + return TRUE; +} + +static void fail_mail_set_uid_cache_updates(struct mail *mail ATTR_UNUSED, + bool set ATTR_UNUSED) +{ +} + +static bool fail_mail_prefetch(struct mail *mail ATTR_UNUSED) +{ + return TRUE; +} + +static int fail_mail_precache(struct mail *mail ATTR_UNUSED) +{ + return 0; +} + +static void +fail_mail_add_temp_wanted_fields(struct mail *mail ATTR_UNUSED, + enum mail_fetch_field fields ATTR_UNUSED, + struct mailbox_header_lookup_ctx *headers ATTR_UNUSED) +{ +} + +static enum mail_flags fail_mail_get_flags(struct mail *mail ATTR_UNUSED) +{ + return 0; +} + +static const char *const * +fail_mail_get_keywords(struct mail *mail ATTR_UNUSED) +{ + return t_new(const char *, 1); +} + +static const ARRAY_TYPE(keyword_indexes) * +fail_mail_get_keyword_indexes(struct mail *mail ATTR_UNUSED) +{ + ARRAY_TYPE(keyword_indexes) *kw_indexes; + + kw_indexes = t_new(ARRAY_TYPE(keyword_indexes), 1); + t_array_init(kw_indexes, 1); + array_append_zero(kw_indexes); + return kw_indexes; +} + +static uint64_t fail_mail_get_modseq(struct mail *mail ATTR_UNUSED) +{ + return 0; +} + +static int +fail_mail_get_parts(struct mail *mail ATTR_UNUSED, + struct message_part **parts_r ATTR_UNUSED) +{ + return -1; +} + +static int +fail_mail_get_date(struct mail *mail ATTR_UNUSED, + time_t *date_r ATTR_UNUSED, int *timezone_r ATTR_UNUSED) +{ + return -1; +} + +static int +fail_mail_get_received_date(struct mail *mail ATTR_UNUSED, + time_t *date_r ATTR_UNUSED) +{ + return -1; +} + +static int +fail_mail_get_save_date(struct mail *mail ATTR_UNUSED, + time_t *date_r ATTR_UNUSED) +{ + return -1; +} + +static int +fail_mail_get_fail_mail_size(struct mail *mail ATTR_UNUSED, + uoff_t *size_r ATTR_UNUSED) +{ + return -1; +} + +static int +fail_mail_get_physical_size(struct mail *mail ATTR_UNUSED, + uoff_t *size_r ATTR_UNUSED) +{ + return -1; +} + +static int +fail_mail_get_first_header(struct mail *mail ATTR_UNUSED, + const char *field ATTR_UNUSED, + bool decode_to_utf8 ATTR_UNUSED, + const char **value_r) +{ + *value_r = NULL; + return 0; +} + +static int +fail_mail_get_headers(struct mail *mail ATTR_UNUSED, + const char *field ATTR_UNUSED, + bool decode_to_utf8 ATTR_UNUSED, + const char *const **value_r) +{ + *value_r = NULL; + return 0; +} + +static int +fail_mail_get_header_stream(struct mail *mail ATTR_UNUSED, + struct mailbox_header_lookup_ctx *headers ATTR_UNUSED, + struct istream **stream_r ATTR_UNUSED) +{ + return -1; +} + +static int +fail_mail_get_stream(struct mail *mail ATTR_UNUSED, bool get_body ATTR_UNUSED, + struct message_size *hdr_size ATTR_UNUSED, + struct message_size *body_size ATTR_UNUSED, + struct istream **stream_r ATTR_UNUSED) +{ + return -1; +} + +static int +fail_mail_get_binary_stream(struct mail *_mail ATTR_UNUSED, + const struct message_part *part ATTR_UNUSED, + bool include_hdr ATTR_UNUSED, + uoff_t *size_r ATTR_UNUSED, + unsigned int *body_lines_r ATTR_UNUSED, + bool *binary_r ATTR_UNUSED, + struct istream **stream_r ATTR_UNUSED) +{ + return -1; +} + +static int +fail_mail_get_special(struct mail *mail ATTR_UNUSED, + enum mail_fetch_field field ATTR_UNUSED, + const char **value_r ATTR_UNUSED) +{ + return -1; +} + +static int fail_mail_get_backend_mail(struct mail *mail, + struct mail **real_mail_r) +{ + *real_mail_r = mail; + return 0; +} + +static void +fail_mail_update_flags(struct mail *mail ATTR_UNUSED, + enum modify_type modify_type ATTR_UNUSED, + enum mail_flags flags ATTR_UNUSED) +{ +} + +static void +fail_mail_update_keywords(struct mail *mail ATTR_UNUSED, + enum modify_type modify_type ATTR_UNUSED, + struct mail_keywords *keywords ATTR_UNUSED) +{ +} + +static void fail_mail_update_modseq(struct mail *mail ATTR_UNUSED, + uint64_t min_modseq ATTR_UNUSED) +{ +} + +static void fail_mail_expunge(struct mail *mail ATTR_UNUSED) +{ +} + +static void +fail_mail_set_cache_corrupted(struct mail *mail ATTR_UNUSED, + enum mail_fetch_field field ATTR_UNUSED, + const char *reason ATTR_UNUSED) +{ +} + +struct mail_vfuncs fail_mail_vfuncs = { + NULL, + fail_mail_free, + fail_mail_set_seq, + fail_mail_set_uid, + fail_mail_set_uid_cache_updates, + fail_mail_prefetch, + fail_mail_precache, + fail_mail_add_temp_wanted_fields, + + fail_mail_get_flags, + fail_mail_get_keywords, + fail_mail_get_keyword_indexes, + fail_mail_get_modseq, + fail_mail_get_modseq, + fail_mail_get_parts, + fail_mail_get_date, + fail_mail_get_received_date, + fail_mail_get_save_date, + fail_mail_get_fail_mail_size, + fail_mail_get_physical_size, + fail_mail_get_first_header, + fail_mail_get_headers, + fail_mail_get_header_stream, + fail_mail_get_stream, + fail_mail_get_binary_stream, + fail_mail_get_special, + fail_mail_get_backend_mail, + fail_mail_update_flags, + fail_mail_update_keywords, + fail_mail_update_modseq, + fail_mail_update_modseq, + NULL, + fail_mail_expunge, + fail_mail_set_cache_corrupted, + NULL, +}; -- cgit v1.2.3