dovecot-2.2: lib-imap-storage: Minor code cleanup

dovecot at dovecot.org dovecot at dovecot.org
Thu Apr 3 21:30:20 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/1b71a0128d2d
changeset: 17196:1b71a0128d2d
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Apr 04 00:30:11 2014 +0300
description:
lib-imap-storage: Minor code cleanup

diffstat:

 src/lib-imap-storage/imap-msgpart.c |  21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

diffs (58 lines):

diff -r 1adbd576f320 -r 1b71a0128d2d src/lib-imap-storage/imap-msgpart.c
--- a/src/lib-imap-storage/imap-msgpart.c	Fri Apr 04 00:14:42 2014 +0300
+++ b/src/lib-imap-storage/imap-msgpart.c	Fri Apr 04 00:30:11 2014 +0300
@@ -371,6 +371,7 @@
 	i_stream_seek(input, 0);
 	result_r->input = input;
 	result_r->size = hdr_size_r->virtual_size;
+	result_r->size_field = 0;
 	return 0;
 }
 
@@ -558,14 +559,13 @@
 	case FETCH_MIME_BODY:
 		i_unreached();
 	case FETCH_HEADER:
-	case FETCH_HEADER_FIELDS_NOT:
 		/* fetch the message's header */
 		if (mail_get_hdr_stream(mail, &hdr_size, &input) < 0)
 			return -1;
 		result_r->size_field = MAIL_FETCH_MESSAGE_PARTS;
 		break;
 	case FETCH_HEADER_FIELDS:
-		/* try to lookup the headers from cache */
+		/* return specific headers */
 		if (msgpart->header_ctx == NULL) {
 			msgpart->header_ctx =
 				mailbox_header_lookup_init(mail->box,
@@ -574,8 +574,14 @@
 		if (mail_get_header_stream(mail, msgpart->header_ctx,
 					   &input) < 0)
 			return -1;
-		result_r->size_field = 0;
-		break;
+		return imap_msgpart_get_partial_header(mail, input, msgpart,
+						       part_size_r, result_r);
+	case FETCH_HEADER_FIELDS_NOT:
+		/* return specific headers */
+		if (mail_get_hdr_stream(mail, NULL, &input) < 0)
+			return -1;
+		return imap_msgpart_get_partial_header(mail, input, msgpart,
+						       part_size_r, result_r);
 	case FETCH_BODY:
 		/* fetch the message's body */
 		if (mail_get_stream(mail, &hdr_size, &body_size, &input) < 0)
@@ -583,12 +589,7 @@
 		result_r->size_field = MAIL_FETCH_MESSAGE_PARTS;
 		break;
 	}
-
-	if (msgpart->headers != NULL) {
-		/* return specific headers */
-		return imap_msgpart_get_partial_header(mail, input, msgpart,
-						       part_size_r, result_r);
-	}
+	i_assert(msgpart->headers == NULL);
 
 	switch (msgpart->fetch_type) {
 	case FETCH_FULL:


More information about the dovecot-cvs mailing list