dovecot-2.0: Moved some common istream functionality to default ...

dovecot at dovecot.org dovecot at dovecot.org
Wed Jun 24 01:35:35 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/c0c3dcb5a6f0
changeset: 9519:c0c3dcb5a6f0
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Jun 23 18:35:26 2009 -0400
description:
Moved some common istream functionality to default istream implementation.

diffstat:

9 files changed, 23 insertions(+), 140 deletions(-)
src/lib-mail/istream-dot.c                    |   24 -------------------
src/lib-mail/istream-header-filter.c          |   15 ------------
src/lib-storage/index/istream-mail-stats.c    |   14 -----------
src/lib-storage/index/mbox/istream-raw-mbox.c |   14 -----------
src/lib/istream-crlf.c                        |   24 -------------------
src/lib/istream-file.c                        |    9 -------
src/lib/istream-limit.c                       |   31 -------------------------
src/lib/istream.c                             |   23 ++++++++++++++++++
src/plugins/zlib/istream-zlib.c               |    9 -------

diffs (truncated from 339 to 300 lines):

diff -r 87990dce79d4 -r c0c3dcb5a6f0 src/lib-mail/istream-dot.c
--- a/src/lib-mail/istream-dot.c	Tue Jun 23 17:32:01 2009 -0400
+++ b/src/lib-mail/istream-dot.c	Tue Jun 23 18:35:26 2009 -0400
@@ -21,24 +21,6 @@ struct dot_istream {
 	unsigned int send_last_lf:1;
 };
 
-static void i_stream_dot_destroy(struct iostream_private *stream)
-{
-	struct dot_istream *dstream = (struct dot_istream *)stream;
-
-	i_free(dstream->istream.w_buffer);
-	i_stream_unref(&dstream->istream.parent);
-}
-
-static void
-i_stream_dot_set_max_buffer_size(struct iostream_private *stream,
-				 size_t max_size)
-{
-	struct dot_istream *dstream = (struct dot_istream *)stream;
-
-	dstream->istream.max_buffer_size = max_size;
-	i_stream_set_max_buffer_size(dstream->istream.parent, max_size);
-}
-
 static int i_stream_dot_read_some(struct dot_istream *dstream)
 {
 	struct istream_private *stream = &dstream->istream;
@@ -234,14 +216,8 @@ struct istream *i_stream_create_dot(stru
 {
 	struct dot_istream *dstream;
 
-	i_stream_ref(input);
-
 	dstream = i_new(struct dot_istream, 1);
 	dstream->istream.max_buffer_size = input->real_stream->max_buffer_size;
-
-	dstream->istream.iostream.destroy = i_stream_dot_destroy;
-	dstream->istream.iostream.set_max_buffer_size =
-		i_stream_dot_set_max_buffer_size;
 
 	dstream->istream.read = i_stream_dot_read;
 	dstream->istream.seek = i_stream_dot_seek;
diff -r 87990dce79d4 -r c0c3dcb5a6f0 src/lib-mail/istream-header-filter.c
--- a/src/lib-mail/istream-header-filter.c	Tue Jun 23 17:32:01 2009 -0400
+++ b/src/lib-mail/istream-header-filter.c	Tue Jun 23 18:35:26 2009 -0400
@@ -49,17 +49,6 @@ static void i_stream_header_filter_destr
 	if (array_is_created(&mstream->match_change_lines))
 		array_free(&mstream->match_change_lines);
 	pool_unref(&mstream->pool);
-}
-
-static void
-i_stream_header_filter_set_max_buffer_size(struct iostream_private *stream,
-					   size_t max_size)
-{
-	struct header_filter_istream *mstream =
-		(struct header_filter_istream *)stream;
-
-	mstream->istream.max_buffer_size = max_size;
-	i_stream_set_max_buffer_size(mstream->istream.parent, max_size);
 }
 
 static ssize_t
@@ -421,9 +410,6 @@ i_stream_create_header_filter(struct ist
 	mstream->add_missing_eoh = (flags & HEADER_FILTER_ADD_MISSING_EOH) != 0;
 
 	mstream->istream.iostream.destroy = i_stream_header_filter_destroy;
-	mstream->istream.iostream.set_max_buffer_size =
-		i_stream_header_filter_set_max_buffer_size;
-
 	mstream->istream.read = i_stream_header_filter_read;
 	mstream->istream.seek = i_stream_header_filter_seek;
 	mstream->istream.sync = i_stream_header_filter_sync;
@@ -432,6 +418,5 @@ i_stream_create_header_filter(struct ist
 	mstream->istream.istream.blocking = input->blocking;
 	mstream->istream.istream.seekable = input->seekable;
 
-	i_stream_ref(input);
 	return i_stream_create(&mstream->istream, input, -1);
 }
diff -r 87990dce79d4 -r c0c3dcb5a6f0 src/lib-storage/index/istream-mail-stats.c
--- a/src/lib-storage/index/istream-mail-stats.c	Tue Jun 23 17:32:01 2009 -0400
+++ b/src/lib-storage/index/istream-mail-stats.c	Tue Jun 23 18:35:26 2009 -0400
@@ -18,17 +18,6 @@ static void i_stream_mail_stats_destroy(
 		(struct mail_stats_istream *)stream;
 
 	i_stream_unref(&mstream->istream.parent);
-}
-
-static void
-i_stream_mail_stats_set_max_buffer_size(struct iostream_private *stream,
-					size_t max_size)
-{
-	struct mail_stats_istream *mstream =
-		(struct mail_stats_istream *)stream;
-
-	mstream->istream.max_buffer_size = max_size;
-	i_stream_set_max_buffer_size(mstream->istream.parent, max_size);
 }
 
 static ssize_t
@@ -81,9 +70,6 @@ struct istream *i_stream_create_mail_sta
 	mstream->istream.max_buffer_size = input->real_stream->max_buffer_size;
 
 	mstream->istream.iostream.destroy = i_stream_mail_stats_destroy;
-	mstream->istream.iostream.set_max_buffer_size =
-		i_stream_mail_stats_set_max_buffer_size;
-
 	mstream->istream.parent = input;
 	mstream->istream.read = i_stream_mail_stats_read_mail_stats;
 	mstream->istream.seek = i_stream_mail_stats_seek;
diff -r 87990dce79d4 -r c0c3dcb5a6f0 src/lib-storage/index/mbox/istream-raw-mbox.c
--- a/src/lib-storage/index/mbox/istream-raw-mbox.c	Tue Jun 23 17:32:01 2009 -0400
+++ b/src/lib-storage/index/mbox/istream-raw-mbox.c	Tue Jun 23 18:35:26 2009 -0400
@@ -35,16 +35,6 @@ static void i_stream_raw_mbox_destroy(st
 	i_stream_seek(rstream->istream.parent,
 		      rstream->istream.istream.v_offset);
 	i_stream_unref(&rstream->istream.parent);
-}
-
-static void
-i_stream_raw_mbox_set_max_buffer_size(struct iostream_private *stream,
-				      size_t max_size)
-{
-	struct raw_mbox_istream *rstream = (struct raw_mbox_istream *)stream;
-
-	rstream->istream.max_buffer_size = max_size;
-	i_stream_set_max_buffer_size(rstream->istream.parent, max_size);
 }
 
 static int mbox_read_from_line(struct raw_mbox_istream *rstream)
@@ -442,9 +432,6 @@ i_stream_create_raw_mbox(struct istream 
 	rstream->next_received_time = (time_t)-1;
 
 	rstream->istream.iostream.destroy = i_stream_raw_mbox_destroy;
-	rstream->istream.iostream.set_max_buffer_size =
-		i_stream_raw_mbox_set_max_buffer_size;
-
 	rstream->istream.max_buffer_size = input->real_stream->max_buffer_size;
 	rstream->istream.read = i_stream_raw_mbox_read;
 	rstream->istream.seek = i_stream_raw_mbox_seek;
@@ -454,7 +441,6 @@ i_stream_create_raw_mbox(struct istream 
 	rstream->istream.istream.blocking = input->blocking;
 	rstream->istream.istream.seekable = input->seekable;
 
-	i_stream_ref(input);
 	return i_stream_create(&rstream->istream, input, -1);
 }
 
diff -r 87990dce79d4 -r c0c3dcb5a6f0 src/lib/istream-crlf.c
--- a/src/lib/istream-crlf.c	Tue Jun 23 17:32:01 2009 -0400
+++ b/src/lib/istream-crlf.c	Tue Jun 23 18:35:26 2009 -0400
@@ -10,24 +10,6 @@ struct crlf_istream {
 	unsigned int pending_cr:1;
 	unsigned int last_cr:1;
 };
-
-static void i_stream_crlf_destroy(struct iostream_private *stream)
-{
-	struct crlf_istream *cstream = (struct crlf_istream *)stream;
-
-	i_free(cstream->istream.w_buffer);
-	i_stream_unref(&cstream->istream.parent);
-}
-
-static void
-i_stream_crlf_set_max_buffer_size(struct iostream_private *stream,
-				   size_t max_size)
-{
-	struct crlf_istream *cstream = (struct crlf_istream *)stream;
-
-	cstream->istream.max_buffer_size = max_size;
-	i_stream_set_max_buffer_size(cstream->istream.parent, max_size);
-}
 
 static int i_stream_crlf_read_common(struct crlf_istream *cstream)
 {
@@ -188,14 +170,8 @@ i_stream_create_crlf_full(struct istream
 {
 	struct crlf_istream *cstream;
 
-	i_stream_ref(input);
-
 	cstream = i_new(struct crlf_istream, 1);
 	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 =
-		i_stream_crlf_set_max_buffer_size;
 
 	cstream->istream.read = crlf ? i_stream_crlf_read_crlf :
 		i_stream_crlf_read_lf;
diff -r 87990dce79d4 -r c0c3dcb5a6f0 src/lib/istream-file.c
--- a/src/lib/istream-file.c	Tue Jun 23 17:32:01 2009 -0400
+++ b/src/lib/istream-file.c	Tue Jun 23 18:35:26 2009 -0400
@@ -31,13 +31,6 @@ static void i_stream_file_close(struct i
 			i_error("file_istream.close() failed: %m");
 	}
 	_stream->fd = -1;
-}
-
-static void i_stream_file_destroy(struct iostream_private *stream)
-{
-	struct istream_private *_stream = (struct istream_private *)stream;
-
-	i_free(_stream->w_buffer);
 }
 
 static ssize_t i_stream_file_read(struct istream_private *stream)
@@ -157,8 +150,6 @@ struct istream *i_stream_create_fd(int f
 	fstream->autoclose_fd = autoclose_fd;
 
 	fstream->istream.iostream.close = i_stream_file_close;
-	fstream->istream.iostream.destroy = i_stream_file_destroy;
-
 	fstream->istream.max_buffer_size = max_buffer_size;
 	fstream->istream.read = i_stream_file_read;
 	fstream->istream.seek = i_stream_file_seek;
diff -r 87990dce79d4 -r c0c3dcb5a6f0 src/lib/istream-limit.c
--- a/src/lib/istream-limit.c	Tue Jun 23 17:32:01 2009 -0400
+++ b/src/lib/istream-limit.c	Tue Jun 23 18:35:26 2009 -0400
@@ -8,31 +8,6 @@ struct limit_istream {
 
 	uoff_t v_size;
 };
-
-static void i_stream_limit_destroy(struct iostream_private *stream)
-{
-	struct limit_istream *lstream = (struct limit_istream *) stream;
-	uoff_t v_offset;
-
-	v_offset = lstream->istream.parent_start_offset +
-		lstream->istream.istream.v_offset;
-	if (lstream->istream.parent->seekable ||
-	    v_offset > lstream->istream.parent->v_offset) {
-		/* get to same position in parent stream */
-		i_stream_seek(lstream->istream.parent, v_offset);
-	}
-	i_stream_unref(&lstream->istream.parent);
-}
-
-static void
-i_stream_limit_set_max_buffer_size(struct iostream_private *stream,
-				   size_t max_size)
-{
-	struct limit_istream *lstream = (struct limit_istream *) stream;
-
-	lstream->istream.max_buffer_size = max_size;
-	i_stream_set_max_buffer_size(lstream->istream.parent, max_size);
-}
 
 static ssize_t i_stream_limit_read(struct istream_private *stream)
 {
@@ -137,15 +112,9 @@ struct istream *i_stream_create_limit(st
 {
 	struct limit_istream *lstream;
 
-	i_stream_ref(input);
-
 	lstream = i_new(struct limit_istream, 1);
 	lstream->v_size = v_size;
 	lstream->istream.max_buffer_size = input->real_stream->max_buffer_size;
-
-	lstream->istream.iostream.destroy = i_stream_limit_destroy;
-	lstream->istream.iostream.set_max_buffer_size =
-		i_stream_limit_set_max_buffer_size;
 
 	lstream->istream.parent = input;
 	lstream->istream.read = i_stream_limit_read;
diff -r 87990dce79d4 -r c0c3dcb5a6f0 src/lib/istream.c
--- a/src/lib/istream.c	Tue Jun 23 17:32:01 2009 -0400
+++ b/src/lib/istream.c	Tue Jun 23 18:35:26 2009 -0400
@@ -474,6 +474,26 @@ i_stream_default_set_max_buffer_size(str
 	struct istream_private *_stream = (struct istream_private *)stream;
 
 	_stream->max_buffer_size = max_size;
+	if (_stream->parent != NULL)
+		i_stream_set_max_buffer_size(_stream->parent, max_size);
+}
+
+static void i_stream_default_destroy(struct iostream_private *stream)
+{
+	struct istream_private *_stream = (struct istream_private *)stream;
+		uoff_t v_offset;
+
+	i_free(_stream->w_buffer);
+	if (_stream->parent != NULL) {
+		v_offset = _stream->parent_start_offset +
+			_stream->istream.v_offset;
+		if (_stream->parent->seekable ||
+		    v_offset > _stream->parent->v_offset) {
+			/* get to same position in parent stream */
+			i_stream_seek(_stream->parent, v_offset);
+		}
+		i_stream_unref(&_stream->parent);
+	}
 }
 
 static const struct stat *


More information about the dovecot-cvs mailing list