Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7925:4a166ccec256 HEAD
Added i_stream_add_data().
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 21 Jun 2008 12:21:18 +0300 |
parents | 30871a9961f7 |
children | 187183c360dd |
files | src/lib/istream.c src/lib/istream.h |
diffstat | 2 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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 @@ 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)
--- 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 *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