dovecot: Removed v_start_offset parameter from i_stream_create_l...

dovecot at dovecot.org dovecot at dovecot.org
Sat Dec 22 05:59:02 EET 2007


details:   http://hg.dovecot.org/dovecot/rev/4b51ee73ed51
changeset: 7031:4b51ee73ed51
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Dec 22 05:04:46 2007 +0200
description:
Removed v_start_offset parameter from i_stream_create_limit(). We'll always
use input->v_offset now.

diffstat:

9 files changed, 13 insertions(+), 27 deletions(-)
src/deliver/deliver.c                          |    3 +--
src/imap/cmd-append.c                          |    8 ++------
src/imap/imap-fetch-body.c                     |    4 +---
src/lib-storage/index/dbox/dbox-file.c         |    1 -
src/lib-storage/index/dbox/dbox-sync-file.c    |    3 ++-
src/lib-storage/index/mbox/mbox-mail.c         |    4 ++--
src/lib-storage/index/mbox/mbox-sync-rewrite.c |    2 +-
src/lib/istream-limit.c                        |   12 +++---------
src/lib/istream.h                              |    3 +--

diffs (150 lines):

diff -r 1a89a1509e81 -r 4b51ee73ed51 src/deliver/deliver.c
--- a/src/deliver/deliver.c	Sat Dec 22 04:48:33 2007 +0200
+++ b/src/deliver/deliver.c	Sat Dec 22 05:04:46 2007 +0200
@@ -559,8 +559,7 @@ static struct istream *create_raw_stream
 		input2 = input;
 		i_stream_ref(input2);
 	} else {
-		input2 = i_stream_create_limit(input, input->v_offset,
-					       (uoff_t)-1);
+		input2 = i_stream_create_limit(input, (uoff_t)-1);
 	}
 	i_stream_unref(&input);
 
diff -r 1a89a1509e81 -r 4b51ee73ed51 src/imap/cmd-append.c
--- a/src/imap/cmd-append.c	Sat Dec 22 04:48:33 2007 +0200
+++ b/src/imap/cmd-append.c	Sat Dec 22 05:04:46 2007 +0200
@@ -191,9 +191,7 @@ static bool cmd_append_cancel(struct cmd
 
 	/* we have to read the nonsynced literal so we don't treat the message
 	   data as commands. */
-	ctx->input = i_stream_create_limit(ctx->client->input,
-					   ctx->client->input->v_offset,
-					   ctx->msg_size);
+	ctx->input = i_stream_create_limit(ctx->client->input, ctx->msg_size);
 
 	ctx->message_input = TRUE;
 	ctx->cmd->func = cmd_append_continue_cancel;
@@ -330,9 +328,7 @@ static bool cmd_append_continue_parsing(
 	}
 
 	/* save the mail */
-	ctx->input = i_stream_create_limit(client->input,
-					   client->input->v_offset,
-					   ctx->msg_size);
+	ctx->input = i_stream_create_limit(client->input, ctx->msg_size);
 	ret = mailbox_save_init(ctx->t, flags, keywords,
 				internal_date, timezone_offset, NULL,
 				ctx->input, FALSE, &ctx->save_ctx);
diff -r 1a89a1509e81 -r 4b51ee73ed51 src/imap/imap-fetch-body.c
--- a/src/imap/imap-fetch-body.c	Sat Dec 22 04:48:33 2007 +0200
+++ b/src/imap/imap-fetch-body.c	Sat Dec 22 05:04:46 2007 +0200
@@ -280,9 +280,7 @@ static int fetch_stream(struct imap_fetc
 	if (size->physical_size == size->virtual_size &&
 	    ctx->cur_mail->has_no_nuls) {
 		/* no need to kludge with CRs, we can use sendfile() */
-		input = i_stream_create_limit(ctx->cur_input,
-					      ctx->cur_input->v_offset,
-					      ctx->cur_size);
+		input = i_stream_create_limit(ctx->cur_input, ctx->cur_size);
 		i_stream_unref(&ctx->cur_input);
 		ctx->cur_input = input;
 
diff -r 1a89a1509e81 -r 4b51ee73ed51 src/lib-storage/index/dbox/dbox-file.c
--- a/src/lib-storage/index/dbox/dbox-file.c	Sat Dec 22 04:48:33 2007 +0200
+++ b/src/lib-storage/index/dbox/dbox-file.c	Sat Dec 22 05:04:46 2007 +0200
@@ -627,7 +627,6 @@ int dbox_file_get_mail_stream(struct dbo
 	if (stream_r != NULL) {
 		i_stream_seek(file->input, offset + file->msg_header_size);
 		*stream_r = i_stream_create_limit(file->input,
-						  file->input->v_offset,
 						  file->cur_physical_size);
 	}
 	*uid_r = file->cur_uid;
diff -r 1a89a1509e81 -r 4b51ee73ed51 src/lib-storage/index/dbox/dbox-sync-file.c
--- a/src/lib-storage/index/dbox/dbox-sync-file.c	Sat Dec 22 04:48:33 2007 +0200
+++ b/src/lib-storage/index/dbox/dbox-sync-file.c	Sat Dec 22 05:04:46 2007 +0200
@@ -140,7 +140,8 @@ dbox_sync_file_expunge(struct dbox_sync_
 				break;
 		}
 
-		input = i_stream_create_limit(file->input, offset,
+		i_stream_seek(file->input, offset);
+		input = i_stream_create_limit(file->input,
 					      file->msg_header_size +
 					      physical_size);
 		ret = o_stream_send_istream(output, input) < 0 ? -1 : 0;
diff -r 1a89a1509e81 -r 4b51ee73ed51 src/lib-storage/index/mbox/mbox-mail.c
--- a/src/lib-storage/index/mbox/mbox-mail.c	Sat Dec 22 04:48:33 2007 +0200
+++ b/src/lib-storage/index/mbox/mbox-mail.c	Sat Dec 22 05:04:46 2007 +0200
@@ -235,8 +235,8 @@ static int mbox_mail_get_stream(struct m
 
 		raw_stream = mbox->mbox_stream;
 		offset = istream_raw_mbox_get_header_offset(raw_stream);
-		raw_stream = i_stream_create_limit(raw_stream,
-						   offset, (uoff_t)-1);
+		i_stream_seek(raw_stream, offset);
+		raw_stream = i_stream_create_limit(raw_stream, (uoff_t)-1);
 		data->stream =
 			i_stream_create_header_filter(raw_stream,
 				HEADER_FILTER_EXCLUDE | HEADER_FILTER_NO_CR,
diff -r 1a89a1509e81 -r 4b51ee73ed51 src/lib-storage/index/mbox/mbox-sync-rewrite.c
--- a/src/lib-storage/index/mbox/mbox-sync-rewrite.c	Sat Dec 22 04:48:33 2007 +0200
+++ b/src/lib-storage/index/mbox/mbox-sync-rewrite.c	Sat Dec 22 05:04:46 2007 +0200
@@ -35,7 +35,7 @@ int mbox_move(struct mbox_sync_context *
 		return -1;
 	}
 
-	input = i_stream_create_limit(sync_ctx->file_input, source, size);
+	input = i_stream_create_limit(sync_ctx->file_input, size);
 	ret = o_stream_send_istream(output, input);
 	i_stream_unref(&input);
 
diff -r 1a89a1509e81 -r 4b51ee73ed51 src/lib/istream-limit.c
--- a/src/lib/istream-limit.c	Sat Dec 22 04:48:33 2007 +0200
+++ b/src/lib/istream-limit.c	Sat Dec 22 05:04:46 2007 +0200
@@ -106,22 +106,16 @@ i_stream_limit_stat(struct istream_priva
 	return &stream->statbuf;
 }
 
-struct istream *i_stream_create_limit(struct istream *input,
-				      uoff_t v_start_offset, uoff_t v_size)
+struct istream *i_stream_create_limit(struct istream *input, uoff_t v_size)
 {
 	struct limit_istream *lstream;
 
 	i_stream_ref(input);
 
 	lstream = i_new(struct limit_istream, 1);
-	lstream->v_start_offset = v_start_offset;
+	lstream->v_start_offset = input->v_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 :
-		input->v_offset - v_start_offset > v_size ? v_size :
-		input->v_offset - v_start_offset;
 
 	lstream->istream.iostream.destroy = i_stream_limit_destroy;
 	lstream->istream.iostream.set_max_buffer_size =
@@ -136,5 +130,5 @@ struct istream *i_stream_create_limit(st
 	lstream->istream.istream.seekable = input->seekable;
 	return i_stream_create(&lstream->istream, i_stream_get_fd(input),
 			       input->real_stream->abs_start_offset +
-			       v_start_offset);
+			       input->v_offset);
 }
diff -r 1a89a1509e81 -r 4b51ee73ed51 src/lib/istream.h
--- a/src/lib/istream.h	Sat Dec 22 04:48:33 2007 +0200
+++ b/src/lib/istream.h	Sat Dec 22 05:04:46 2007 +0200
@@ -26,8 +26,7 @@ struct istream *i_stream_create_mmap(int
 				     uoff_t start_offset, uoff_t v_size,
 				     bool autoclose_fd);
 struct istream *i_stream_create_from_data(const void *data, size_t size);
-struct istream *i_stream_create_limit(struct istream *input,
-				      uoff_t v_start_offset, uoff_t v_size);
+struct istream *i_stream_create_limit(struct istream *input, uoff_t v_size);
 
 /* i_stream_close() + i_stream_unref() */
 void i_stream_destroy(struct istream **stream);


More information about the dovecot-cvs mailing list