[dovecot-cvs] dovecot/src/lib-mail istream-header-filter.c, 1.27, 1.28

cras at dovecot.org cras at dovecot.org
Sun Jul 3 13:37:10 EEST 2005


Update of /var/lib/cvs/dovecot/src/lib-mail
In directory talvi:/tmp/cvs-serv29402

Modified Files:
	istream-header-filter.c 
Log Message:
If we seek back to beginning of headers, don't call callback again for
headers where it was already called for.



Index: istream-header-filter.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-mail/istream-header-filter.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- istream-header-filter.c	28 Jun 2005 00:07:56 -0000	1.27
+++ istream-header-filter.c	3 Jul 2005 10:37:07 -0000	1.28
@@ -29,6 +29,7 @@
 	unsigned int cur_line, parsed_lines;
 
 	unsigned int header_read:1;
+	unsigned int header_parsed:1;
 	unsigned int exclude:1;
 	unsigned int crlf:1;
 	unsigned int hide_body:1;
@@ -92,7 +93,7 @@
 
 		if (hdr->eoh) {
 			matched = TRUE;
-			if (!mstream->header_read &&
+			if (!mstream->header_parsed &&
 			    mstream->callback != NULL) {
 				mstream->callback(hdr, &matched,
 						  mstream->context);
@@ -167,8 +168,9 @@
 		message_parse_header_deinit(mstream->hdr_ctx);
 		mstream->hdr_ctx = NULL;
 
-		if (!mstream->header_read && mstream->callback != NULL)
+		if (!mstream->header_parsed && mstream->callback != NULL)
 			mstream->callback(NULL, &matched, mstream->context);
+		mstream->header_parsed = TRUE;
 		mstream->header_read = TRUE;
 
 		mstream->header_size.physical_size = mstream->input->v_offset;
@@ -261,7 +263,6 @@
 		i_stream_seek(mstream->input, mstream->start_offset);
 		mstream->skip_count = v_offset;
 		mstream->cur_line = 0;
-		mstream->parsed_lines = 0;
 		mstream->header_read = FALSE;
 	} else {
 		/* body */



More information about the dovecot-cvs mailing list