dovecot-2.2: lib-imap-storage: When returning an error istream, ...

dovecot at dovecot.org dovecot at dovecot.org
Mon Nov 26 23:25:55 EET 2012


details:   http://hg.dovecot.org/dovecot-2.2/rev/ecf2f2044455
changeset: 15413:ecf2f2044455
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Nov 26 23:23:52 2012 +0200
description:
lib-imap-storage: When returning an error istream, give it a useful name.

diffstat:

 src/lib-imap-storage/imap-msgpart.c |  9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diffs (26 lines):

diff -r a725b63608fb -r ecf2f2044455 src/lib-imap-storage/imap-msgpart.c
--- a/src/lib-imap-storage/imap-msgpart.c	Mon Nov 26 23:20:59 2012 +0200
+++ b/src/lib-imap-storage/imap-msgpart.c	Mon Nov 26 23:23:52 2012 +0200
@@ -412,7 +412,7 @@
 		       const struct imap_msgpart *msgpart)
 {
 	struct mail_msgpart_partial_cache *cache = &mail->box->partial_cache;
-	struct istream *crlf_input;
+	struct istream *crlf_input, *errinput;
 	uoff_t physical_start = input->v_offset;
 	uoff_t virtual_skip = msgpart->partial_offset;
 	bool cr_skipped;
@@ -432,8 +432,11 @@
 		   message parts. */
 		skip_using_parts(mail, input, physical_start, &virtual_skip);
 	}
-	if (message_skip_virtual(input, virtual_skip, &cr_skipped) < 0)
-		return i_stream_create_error(errno);
+	if (message_skip_virtual(input, virtual_skip, &cr_skipped) < 0) {
+		errinput = i_stream_create_error(errno);
+		i_stream_set_name(errinput, i_stream_get_name(input));
+		return errinput;
+	}
 
 	if ((msgpart->partial_offset != 0 ||
 	     msgpart->partial_size != (uoff_t)-1) && !input->eof) {


More information about the dovecot-cvs mailing list