Mercurial > dovecot > core-2.2
changeset 21681:9ef9988619b7
lib: Added i_stream_create_sized_range()
This is just a small wrapper to i_stream_create_sized() to specify stream's
start offset.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Tue, 01 Nov 2016 14:47:05 +0200 |
parents | f0a1e12fc57e |
children | 7945fd42b09f |
files | src/lib/istream-sized.c src/lib/istream-sized.h |
diffstat | 2 files changed, 14 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/istream-sized.c Wed Feb 22 20:05:16 2017 +0200 +++ b/src/lib/istream-sized.c Tue Nov 01 14:47:05 2016 +0200 @@ -176,6 +176,18 @@ return &sstream->istream.istream; } +struct istream *i_stream_create_sized_range(struct istream *input, + uoff_t offset, uoff_t size) +{ + uoff_t orig_offset = input->v_offset; + struct istream *ret; + + input->v_offset = offset; + ret = i_stream_create_sized(input, size); + input->v_offset = orig_offset; + return ret; +} + #undef i_stream_create_sized_with_callback struct istream * i_stream_create_sized_with_callback(struct istream *input, uoff_t size,
--- a/src/lib/istream-sized.h Wed Feb 22 20:05:16 2017 +0200 +++ b/src/lib/istream-sized.h Tue Nov 01 14:47:05 2016 +0200 @@ -19,6 +19,8 @@ /* Assume that input is exactly the given size. If it's smaller, log an error and fail with EINVAL error. If it's larger, log an error but don't fail. */ struct istream *i_stream_create_sized(struct istream *input, uoff_t size); +struct istream *i_stream_create_sized_range(struct istream *input, + uoff_t offset, uoff_t size); /* Same as i_stream_create_sized(), but set the error message via the callback. */ struct istream *