dovecot-2.2: lib-imap-storage: Added imap_msgpart_contains_body()

dovecot at dovecot.org dovecot at dovecot.org
Fri May 15 11:37:10 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/4cd9e46e0c78
changeset: 18705:4cd9e46e0c78
user:      Timo Sirainen <tss at iki.fi>
date:      Fri May 15 14:34:54 2015 +0300
description:
lib-imap-storage: Added imap_msgpart_contains_body()

diffstat:

 src/lib-imap-storage/imap-msgpart.c |  16 ++++++++++++++++
 src/lib-imap-storage/imap-msgpart.h |   5 +++++
 2 files changed, 21 insertions(+), 0 deletions(-)

diffs (41 lines):

diff -r c627a0f64719 -r 4cd9e46e0c78 src/lib-imap-storage/imap-msgpart.c
--- a/src/lib-imap-storage/imap-msgpart.c	Fri May 15 14:03:02 2015 +0300
+++ b/src/lib-imap-storage/imap-msgpart.c	Fri May 15 14:34:54 2015 +0300
@@ -306,6 +306,22 @@
 	pool_unref(&msgpart->pool);
 }
 
+bool imap_msgpart_contains_body(const struct imap_msgpart *msgpart)
+{
+	switch (msgpart->fetch_type) {
+	case FETCH_HEADER:
+	case FETCH_HEADER_FIELDS:
+	case FETCH_HEADER_FIELDS_NOT:
+		return FALSE;
+	case FETCH_FULL:
+	case FETCH_MIME:
+	case FETCH_MIME_BODY:
+	case FETCH_BODY:
+		break;
+	}
+	return TRUE;
+}
+
 void imap_msgpart_set_decode_to_binary(struct imap_msgpart *msgpart)
 {
 	msgpart->decode_cte_to_binary = TRUE;
diff -r c627a0f64719 -r 4cd9e46e0c78 src/lib-imap-storage/imap-msgpart.h
--- a/src/lib-imap-storage/imap-msgpart.h	Fri May 15 14:03:02 2015 +0300
+++ b/src/lib-imap-storage/imap-msgpart.h	Fri May 15 14:34:54 2015 +0300
@@ -24,6 +24,11 @@
 int imap_msgpart_parse(const char *section, struct imap_msgpart **msgpart_r);
 void imap_msgpart_free(struct imap_msgpart **msgpart);
 
+/* Returns TRUE if the msgpart might return at least part of the message body.
+   Or alternatively: If FALSE is returned, the msgpart will never return
+   anything except (part of) the message header. MIME headers are counted
+   as part of the message body. */
+bool imap_msgpart_contains_body(const struct imap_msgpart *msgpart);
 /* Decode MIME parts with Content-Transfer-Encoding: base64/quoted-printable
    to binary data (IMAP BINARY extension). If something can't be decoded, fails
    with storage error set to MAIL_ERROR_CONVERSION. */


More information about the dovecot-cvs mailing list