/usr/include/dovecot/istream-private.h is in dovecot-dev 1:2.2.9-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #ifndef ISTREAM_PRIVATE_H
#define ISTREAM_PRIVATE_H
#include "istream.h"
#include "iostream-private.h"
#define I_STREAM_MIN_SIZE IO_BLOCK_SIZE
struct istream_private {
/* inheritance: */
struct iostream_private iostream;
/* methods: */
ssize_t (*read)(struct istream_private *stream);
void (*seek)(struct istream_private *stream,
uoff_t v_offset, bool mark);
void (*sync)(struct istream_private *stream);
int (*stat)(struct istream_private *stream, bool exact);
int (*get_size)(struct istream_private *stream, bool exact, uoff_t *size_r);
/* data: */
struct istream istream;
int fd;
uoff_t abs_start_offset;
struct stat statbuf;
const unsigned char *buffer;
unsigned char *w_buffer; /* may be NULL */
size_t buffer_size, max_buffer_size, init_buffer_size;
size_t skip, pos, try_alloc_limit;
struct istream *parent; /* for filter streams */
uoff_t parent_start_offset;
/* parent stream's expected offset is kept here. i_stream_read()
always seeks parent stream to here before calling read(). */
uoff_t parent_expected_offset;
/* increased every time the stream is changed (e.g. seek, read).
this way streams can check if their parent streams have been
accessed behind them. */
unsigned int access_counter;
string_t *line_str; /* for i_stream_next_line() if w_buffer == NULL */
unsigned int line_crlf:1;
unsigned int return_nolf_line:1;
unsigned int stream_size_passthrough:1; /* stream is parent's size */
};
struct istream * ATTR_NOWARN_UNUSED_RESULT
i_stream_create(struct istream_private *stream, struct istream *parent, int fd)
ATTR_NULL(2);
/* Initialize parent lazily after i_stream_create() has already been called. */
void i_stream_init_parent(struct istream_private *_stream,
struct istream *parent);
void i_stream_compress(struct istream_private *stream);
void i_stream_grow_buffer(struct istream_private *stream, size_t bytes);
bool ATTR_NOWARN_UNUSED_RESULT
i_stream_try_alloc(struct istream_private *stream,
size_t wanted_size, size_t *size_r);
void *i_stream_alloc(struct istream_private *stream, size_t size);
ssize_t i_stream_read_copy_from_parent(struct istream *istream);
void i_stream_default_seek_nonseekable(struct istream_private *stream,
uoff_t v_offset, bool mark);
#endif
|