dovecot-1.2: Added i_stream_add_data().

dovecot at dovecot.org dovecot at dovecot.org
Sat Jun 21 12:51:45 EEST 2008


details:   http://hg.dovecot.org/dovecot-1.2/rev/4a166ccec256
changeset: 7925:4a166ccec256
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Jun 21 12:21:18 2008 +0300
description:
Added i_stream_add_data().

diffstat:

2 files changed, 20 insertions(+)
src/lib/istream.c |   15 +++++++++++++++
src/lib/istream.h |    5 +++++

diffs (38 lines):

diff -r 30871a9961f7 -r 4a166ccec256 src/lib/istream.c
--- a/src/lib/istream.c	Sat Jun 21 11:25:54 2008 +0300
+++ b/src/lib/istream.c	Sat Jun 21 12:21:18 2008 +0300
@@ -347,6 +347,21 @@ bool i_stream_get_buffer_space(struct is
 	return stream->pos != stream->buffer_size;
 }
 
+bool i_stream_add_data(struct istream *_stream, const unsigned char *data,
+		       size_t size)
+{
+	struct istream_private *stream = _stream->real_stream;
+	size_t size2;
+
+	(void)i_stream_get_buffer_space(stream, size, &size2);
+	if (size > size2)
+		return FALSE;
+
+	memcpy(stream->w_buffer + stream->pos, data, size);
+	stream->pos += size;
+	return TRUE;
+}
+
 static void
 i_stream_default_set_max_buffer_size(struct iostream_private *stream,
 				     size_t max_size)
diff -r 30871a9961f7 -r 4a166ccec256 src/lib/istream.h
--- a/src/lib/istream.h	Sat Jun 21 11:25:54 2008 +0300
+++ b/src/lib/istream.h	Sat Jun 21 12:21:18 2008 +0300
@@ -105,4 +105,9 @@ int i_stream_read_data(struct istream *s
 int i_stream_read_data(struct istream *stream, const unsigned char **data_r,
 		       size_t *size_r, size_t threshold);
 
+/* Append external data to input stream. Returns TRUE if successful, FALSE if
+   there is not enough space in the stream. */
+bool i_stream_add_data(struct istream *stream, const unsigned char *data,
+		       size_t size);
+
 #endif


More information about the dovecot-cvs mailing list