dovecot: Support returning MAIL_FETCH_FROM_ENVELOPE.

dovecot at dovecot.org dovecot at dovecot.org
Thu Nov 8 21:26:01 EET 2007


details:   http://hg.dovecot.org/dovecot/rev/ced2ffbeef8b
changeset: 6749:ced2ffbeef8b
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Nov 08 21:25:07 2007 +0200
description:
Support returning MAIL_FETCH_FROM_ENVELOPE.

diffstat:

2 files changed, 17 insertions(+), 1 deletion(-)
src/lib-storage/index/raw/raw-mail.c    |   17 ++++++++++++++++-
src/lib-storage/index/raw/raw-storage.h |    1 +

diffs (45 lines):

diff -r d712370dfd14 -r ced2ffbeef8b src/lib-storage/index/raw/raw-mail.c
--- a/src/lib-storage/index/raw/raw-mail.c	Thu Nov 08 21:18:55 2007 +0200
+++ b/src/lib-storage/index/raw/raw-mail.c	Thu Nov 08 21:25:07 2007 +0200
@@ -84,6 +84,21 @@ raw_mail_get_stream(struct mail *_mail, 
 	return index_mail_init_stream(mail, hdr_size, body_size, stream_r);
 }
 
+static int
+raw_mail_get_special(struct mail *_mail, enum mail_fetch_field field,
+		     const char **value_r)
+{
+	struct raw_mailbox *mbox = (struct raw_mailbox *)_mail->box;
+
+	switch (field) {
+	case MAIL_FETCH_FROM_ENVELOPE:
+		*value_r = mbox->envelope_sender;
+		return 0;
+	default:
+		return index_mail_get_special(_mail, field, value_r);
+	}
+}
+
 struct mail_vfuncs raw_mail_vfuncs = {
 	index_mail_close,
 	index_mail_free,
@@ -102,7 +117,7 @@ struct mail_vfuncs raw_mail_vfuncs = {
 	index_mail_get_headers,
 	index_mail_get_header_stream,
 	raw_mail_get_stream,
-	index_mail_get_special,
+	raw_mail_get_special,
 	index_mail_update_flags,
 	index_mail_update_keywords,
 	index_mail_expunge
diff -r d712370dfd14 -r ced2ffbeef8b src/lib-storage/index/raw/raw-storage.h
--- a/src/lib-storage/index/raw/raw-storage.h	Thu Nov 08 21:18:55 2007 +0200
+++ b/src/lib-storage/index/raw/raw-storage.h	Thu Nov 08 21:25:07 2007 +0200
@@ -21,6 +21,7 @@ struct raw_mailbox {
 
 	time_t mtime, ctime;
 	uoff_t size;
+	const char *envelope_sender;
 
 	unsigned int synced:1;
 };


More information about the dovecot-cvs mailing list