dovecot: Always keep a usable value in stream->max_buffer_size.

dovecot at dovecot.org dovecot at dovecot.org
Sat Oct 20 19:17:05 EEST 2007


details:   http://hg.dovecot.org/dovecot/rev/15a9ce2cc0ab
changeset: 6559:15a9ce2cc0ab
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Oct 20 19:15:10 2007 +0300
description:
Always keep a usable value in stream->max_buffer_size.

diffstat:

6 files changed, 15 insertions(+), 5 deletions(-)
src/lib-mail/istream-header-filter.c          |    2 ++
src/lib-storage/index/mbox/istream-raw-mbox.c |    2 ++
src/lib/istream-crlf.c                        |    2 ++
src/lib/istream-limit.c                       |    2 ++
src/lib/istream-seekable.c                    |    9 ++++-----
src/lib/istream-tee.c                         |    3 +++

diffs (143 lines):

diff -r 4a1caf69ca14 -r 15a9ce2cc0ab src/lib-mail/istream-header-filter.c
--- a/src/lib-mail/istream-header-filter.c	Sat Oct 20 19:12:32 2007 +0300
+++ b/src/lib-mail/istream-header-filter.c	Sat Oct 20 19:15:10 2007 +0300
@@ -55,6 +55,7 @@ i_stream_header_filter_set_max_buffer_si
 	struct header_filter_istream *mstream =
 		(struct header_filter_istream *)stream;
 
+	mstream->istream.max_buffer_size = max_size;
 	i_stream_set_max_buffer_size(mstream->input, max_size);
 }
 
@@ -333,6 +334,7 @@ i_stream_create_header_filter(struct ist
 
 	mstream = i_new(struct header_filter_istream, 1);
 	mstream->pool = pool_alloconly_create("header filter stream", 4096);
+	mstream->istream.max_buffer_size = input->real_stream->max_buffer_size;
 
 	mstream->input = input;
 	i_stream_ref(mstream->input);
diff -r 4a1caf69ca14 -r 15a9ce2cc0ab src/lib-storage/index/mbox/istream-raw-mbox.c
--- a/src/lib-storage/index/mbox/istream-raw-mbox.c	Sat Oct 20 19:12:32 2007 +0300
+++ b/src/lib-storage/index/mbox/istream-raw-mbox.c	Sat Oct 20 19:15:10 2007 +0300
@@ -39,6 +39,7 @@ i_stream_raw_mbox_set_max_buffer_size(st
 {
 	struct raw_mbox_istream *rstream = (struct raw_mbox_istream *)stream;
 
+	rstream->istream.max_buffer_size = max_size;
 	i_stream_set_max_buffer_size(rstream->input, max_size);
 }
 
@@ -360,6 +361,7 @@ struct istream *i_stream_create_raw_mbox
 	rstream->received_time = (time_t)-1;
 	rstream->next_received_time = (time_t)-1;
 
+	rstream->istream.max_buffer_size = input->real_stream->max_buffer_size;
 	rstream->istream.iostream.destroy = i_stream_raw_mbox_destroy;
 	rstream->istream.iostream.set_max_buffer_size =
 		i_stream_raw_mbox_set_max_buffer_size;
diff -r 4a1caf69ca14 -r 15a9ce2cc0ab src/lib/istream-crlf.c
--- a/src/lib/istream-crlf.c	Sat Oct 20 19:12:32 2007 +0300
+++ b/src/lib/istream-crlf.c	Sat Oct 20 19:15:10 2007 +0300
@@ -25,6 +25,7 @@ i_stream_crlf_set_max_buffer_size(struct
 {
 	struct crlf_istream *cstream = (struct crlf_istream *)stream;
 
+	cstream->istream.max_buffer_size = max_size;
 	i_stream_set_max_buffer_size(cstream->input, max_size);
 }
 
@@ -129,6 +130,7 @@ i_stream_create_crlf_full(struct istream
 	cstream = i_new(struct crlf_istream, 1);
 	cstream->input = input;
 	cstream->crlf = crlf;
+	cstream->istream.max_buffer_size = input->real_stream->max_buffer_size;
 
 	cstream->istream.iostream.destroy = i_stream_crlf_destroy;
 	cstream->istream.iostream.set_max_buffer_size =
diff -r 4a1caf69ca14 -r 15a9ce2cc0ab src/lib/istream-limit.c
--- a/src/lib/istream-limit.c	Sat Oct 20 19:12:32 2007 +0300
+++ b/src/lib/istream-limit.c	Sat Oct 20 19:15:10 2007 +0300
@@ -26,6 +26,7 @@ i_stream_limit_set_max_buffer_size(struc
 {
 	struct limit_istream *lstream = (struct limit_istream *) stream;
 
+	lstream->istream.max_buffer_size = max_size;
 	i_stream_set_max_buffer_size(lstream->input, max_size);
 }
 
@@ -117,6 +118,7 @@ struct istream *i_stream_create_limit(st
 	lstream->input = input;
 	lstream->v_start_offset = v_start_offset;
 	lstream->v_size = v_size;
+	lstream->istream.max_buffer_size = input->real_stream->max_buffer_size;
 
 	lstream->istream.istream.v_offset =
 		input->v_offset < v_start_offset ? 0 :
diff -r 4a1caf69ca14 -r 15a9ce2cc0ab src/lib/istream-seekable.c
--- a/src/lib/istream-seekable.c	Sat Oct 20 19:12:32 2007 +0300
+++ b/src/lib/istream-seekable.c	Sat Oct 20 19:15:10 2007 +0300
@@ -18,7 +18,6 @@ struct seekable_istream {
 struct seekable_istream {
 	struct istream_private istream;
 
-	size_t max_buffer_size;
 	char *temp_prefix;
 	uoff_t write_peak;
 
@@ -63,7 +62,7 @@ i_stream_seekable_set_max_buffer_size(st
 	struct seekable_istream *sstream = (struct seekable_istream *)stream;
 	unsigned int i;
 
-	sstream->max_buffer_size = max_size;
+	sstream->istream.max_buffer_size = max_size;
 	if (sstream->fd_input != NULL)
 		i_stream_set_max_buffer_size(sstream->fd_input, max_size);
 	for (i = 0; sstream->input[i] != NULL; i++)
@@ -123,7 +122,7 @@ static int copy_to_temp_file(struct seek
 
 	sstream->fd = fd;
 	sstream->fd_input =
-		i_stream_create_fd(fd, sstream->max_buffer_size, TRUE);
+		i_stream_create_fd(fd, sstream->istream.max_buffer_size, TRUE);
 	return 0;
 }
 
@@ -170,7 +169,7 @@ static bool read_from_buffer(struct seek
 	if (stream->istream.v_offset +
 	    (stream->pos - stream->skip) >= sstream->buffer->used) {
 		/* need to read more */
-		if (sstream->buffer->used >= sstream->max_buffer_size)
+		if (sstream->buffer->used >= stream->max_buffer_size)
 			return FALSE;
 
 		/* read more to buffer */
@@ -310,7 +309,7 @@ i_stream_create_seekable(struct istream 
 	sstream = i_new(struct seekable_istream, 1);
 	sstream->temp_prefix = i_strdup(temp_prefix);
 	sstream->buffer = buffer_create_dynamic(default_pool, BUF_INITIAL_SIZE);
-        sstream->max_buffer_size = max_buffer_size;
+        sstream->istream.max_buffer_size = max_buffer_size;
 
 	sstream->input = i_new(struct istream *, count + 1);
 	memcpy(sstream->input, input, sizeof(*input) * count);
diff -r 4a1caf69ca14 -r 15a9ce2cc0ab src/lib/istream-tee.c
--- a/src/lib/istream-tee.c	Sat Oct 20 19:12:32 2007 +0300
+++ b/src/lib/istream-tee.c	Sat Oct 20 19:15:10 2007 +0300
@@ -99,6 +99,7 @@ i_stream_tee_set_max_buffer_size(struct 
 {
 	struct tee_child_istream *tstream = (struct tee_child_istream *)stream;
 
+	tstream->istream.max_buffer_size = max_size;
 	i_stream_set_max_buffer_size(tstream->tee->input, max_size);
 }
 
@@ -190,6 +191,8 @@ struct istream *tee_i_stream_create_chil
 	tstream = i_new(struct tee_child_istream, 1);
 	tstream->tee = tee;
 
+	tstream->istream.max_buffer_size =
+		tee->input->real_stream->max_buffer_size;
 	tstream->istream.iostream.close = i_stream_tee_close;
 	tstream->istream.iostream.destroy = i_stream_tee_destroy;
 	tstream->istream.iostream.set_max_buffer_size =


More information about the dovecot-cvs mailing list