istream.c revision d66ef20c30fee728899ee168c75fcc5ff8fbdac1
a6ab8f00351265e35b79f3a22b1f5a4978ae5c35Timo Sirainen/* Copyright (c) 2002-2011 Dovecot authors, see the included COPYING file */
a8fe899601735459641edae975c0fa08be8482e2Timo Sirainenvoid i_stream_set_name(struct istream *stream, const char *name)
97437f768d1a3e6134fed1971202803fd250eef2Timo Sirainen stream->real_stream->iostream.name = i_strdup(name);
a6ab8f00351265e35b79f3a22b1f5a4978ae5c35Timo Sirainenconst char *i_stream_get_name(struct istream *stream)
a6ab8f00351265e35b79f3a22b1f5a4978ae5c35Timo Sirainen while (stream->real_stream->iostream.name == NULL) {
1db62753d9e3b5d71018889c8ef0a3722a307455Timo Sirainen io_stream_ref(&stream->real_stream->iostream);
1db62753d9e3b5d71018889c8ef0a3722a307455Timo Sirainen struct istream_private *_stream = (*stream)->real_stream;
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainen io_stream_unref(&(*stream)->real_stream->iostream);
0a9cb42cbb135e3200cbfbb657820304cca8ecb8Timo Sirainenvoid i_stream_set_destroy_callback(struct istream *stream,
72bc08129fb0aaec8144cc183a998ccc426fef9eTimo Sirainen struct iostream_private *iostream = &stream->real_stream->iostream;
1db62753d9e3b5d71018889c8ef0a3722a307455Timo Sirainenvoid i_stream_unset_destroy_callback(struct istream *stream)
885a3c2287ae3e5827aa580ea06b231de38abb47Timo Sirainen struct iostream_private *iostream = &stream->real_stream->iostream;
885a3c2287ae3e5827aa580ea06b231de38abb47Timo Sirainen struct istream_private *_stream = stream->real_stream;
7358272563d8ef77366447708ab0e58c0cff4151Timo Sirainen io_stream_close(&stream->real_stream->iostream);
a6ab8f00351265e35b79f3a22b1f5a4978ae5c35Timo Sirainenvoid i_stream_set_init_buffer_size(struct istream *stream, size_t size)
1db62753d9e3b5d71018889c8ef0a3722a307455Timo Sirainenvoid i_stream_set_max_buffer_size(struct istream *stream, size_t max_size)
a6ab8f00351265e35b79f3a22b1f5a4978ae5c35Timo Sirainen io_stream_set_max_buffer_size(&stream->real_stream->iostream, max_size);
0779e926687b319fe1bcc0f1010ba7f88023e789Timo Sirainensize_t i_stream_get_max_buffer_size(struct istream *stream)
fab850a6aee4aaef4f4795bd7946807a3ba45041Timo Sirainenvoid i_stream_set_return_partial_line(struct istream *stream, bool set)
a6ab8f00351265e35b79f3a22b1f5a4978ae5c35Timo Sirainenstatic void i_stream_update(struct istream_private *stream)
c14c5561e85853d91280235a7611b6050feaebb2Timo Sirainen stream->parent_expected_offset = stream->parent->v_offset;
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainen struct istream_private *_stream = stream->real_stream;
b932ee7fbbec6e79b777dcc7ba613b9e99f8337bTimo Sirainen i_stream_seek(_stream->parent, _stream->parent_expected_offset);
5fbccc935e3f7b916aa7c6e302a212821072e83aTimo Sirainen /* error handling should be easier if we now just
5fbccc935e3f7b916aa7c6e302a212821072e83aTimo Sirainen assume the stream is now at EOF */
2a15ce3abe14099b94535f6dfc2d4ee023a7c455Timo Sirainen i_assert((size_t)ret+old_size == _stream->pos - _stream->skip);
2a15ce3abe14099b94535f6dfc2d4ee023a7c455Timo Sirainenssize_t i_stream_read_copy_from_parent(struct istream *istream)
2c57ebc900742bd1119ef011b77b4910c4660cfaTimo Sirainen struct istream_private *stream = istream->real_stream;
ret = 0;
return ret;
return TRUE;
return FALSE;
return NULL;
char *ret;
end = i;
return ret;
return NULL;
const unsigned char *pos;
return NULL;
char *line;
return line;
*size_r = 0;
return NULL;
*size_r = 0;
return NULL;
if (ret > 0)
} while (ret > 0);
if (ret == 0) {
if (read_more) {
return FALSE;
return TRUE;
if (available == 0) {
static const struct stat *
struct istream *