This just changes the API - the following changes add the new flag.
zstream->istream.istream.seekable = input->seekable;
return i_stream_create(&zstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
#endif
zstream->chunk_buf = buffer_create_dynamic(default_pool, 1024);
return i_stream_create(&zstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
#endif
zstream->istream.istream.seekable = input->seekable;
return i_stream_create(&zstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
#endif
zstream->istream.istream.seekable = input->seekable;
return i_stream_create(&zstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
struct istream *i_stream_create_gz(struct istream *input, bool log_errors)
dstream->buf = buffer_create_dynamic(default_pool, 512);
(void)i_stream_create(&dstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
return dstream;
}
fstream->istream.istream.seekable =
((*file)->flags & FS_OPEN_FLAG_SEEKABLE) != 0;
- input = i_stream_create(&fstream->istream, NULL, -1);
+ input = i_stream_create(&fstream->istream, NULL, -1, 0);
i_stream_set_name(input, fs_file_path(*file));
*file = NULL;
return input;
sstream->istream.istream.blocking = input->blocking;
sstream->istream.istream.seekable = input->seekable;
return i_stream_create(&sstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
mstream->callback = callback;
mstream->context = context;
return i_stream_create(&mstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
hsristream->istream.istream.seekable = FALSE;
req->payload_input = i_stream_create
- (&hsristream->istream, payload, i_stream_get_fd(payload));
+ (&hsristream->istream, payload, i_stream_get_fd(payload), 0);
i_stream_unref(&req->req.payload);
return req->payload_input;
}
tcstream->istream.istream.readable_fd = FALSE;
tcstream->istream.istream.blocking = input->blocking;
tcstream->istream.istream.seekable = FALSE;
- return i_stream_create(&tcstream->istream, input, i_stream_get_fd(input));
+ return i_stream_create(&tcstream->istream, input, i_stream_get_fd(input), 0);
}
/*
MESSAGE_PARSER_FLAG_INCLUDE_MULTIPART_BLOCKS |
MESSAGE_PARSER_FLAG_INCLUDE_BOUNDARIES);
return i_stream_create(&astream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
bool i_stream_attachment_extractor_can_retry(struct istream *input)
MESSAGE_PARSER_FLAG_INCLUDE_MULTIPART_BLOCKS |
MESSAGE_PARSER_FLAG_INCLUDE_BOUNDARIES);
return i_stream_create(&bstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
dstream->state_no_cr = TRUE;
dstream->state_no_lf = TRUE;
return i_stream_create(&dstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
mstream->istream.istream.blocking = input->blocking;
mstream->istream.istream.seekable = input->seekable;
- return i_stream_create(&mstream->istream, input, -1);
+ return i_stream_create(&mstream->istream, input, -1, 0);
}
void i_stream_header_filter_add(struct header_filter_istream *input,
nstream->istream.istream.seekable = FALSE;
nstream->replace_chr = replace_chr;
return i_stream_create(&nstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
bstream->istream.istream.blocking = input->blocking;
bstream->istream.istream.seekable = input->seekable;
return i_stream_create(&bstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
bstream->istream.istream.blocking = input->blocking;
bstream->istream.istream.seekable = input->seekable;
return i_stream_create(&bstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
i_stream_seek(input, 0);
- return i_stream_create(&scstream->istream, input, -1);
+ return i_stream_create(&scstream->istream, input, -1, 0);
}
/*
sstream->istream.istream.readable_fd = FALSE;
return i_stream_create(&sstream->istream, NULL,
- i_stream_get_fd(ssl_io->plain_input));
+ i_stream_get_fd(ssl_io->plain_input), 0);
}
mstream->istream.istream.blocking = input->blocking;
mstream->istream.istream.seekable = input->seekable;
return i_stream_create(&mstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
rstream->istream.istream.blocking = input->blocking;
rstream->istream.istream.seekable = input->seekable;
- return i_stream_create(&rstream->istream, input, -1);
+ return i_stream_create(&rstream->istream, input, -1, 0);
}
static int istream_raw_mbox_is_valid_from(struct raw_mbox_istream *rstream)
tstream->istream.istream.blocking = FALSE;
tstream->istream.istream.seekable = TRUE;
- i_stream_create(&tstream->istream, NULL, -1);
+ i_stream_create(&tstream->istream, NULL, -1, 0);
tstream->istream.statbuf.st_size = tstream->max_pos = size;
tstream->allow_eof = TRUE;
tstream->istream.max_buffer_size = (size_t)-1;
bstream->istream.istream.blocking = input->blocking;
bstream->istream.istream.seekable = input->seekable;
return i_stream_create(&bstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
bstream->istream.istream.blocking = input->blocking;
bstream->istream.istream.seekable = input->seekable;
return i_stream_create(&bstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
cstream->istream.iostream.destroy = i_stream_callback_destroy;
cstream->istream.read = i_stream_callback_read;
- istream = i_stream_create(&cstream->istream, NULL, -1);
+ istream = i_stream_create(&cstream->istream, NULL, -1, 0);
istream->blocking = TRUE;
return istream;
}
cstream->istream.istream.seekable = FALSE;
*chain_r = &cstream->chain;
- return i_stream_create(&cstream->istream, NULL, -1);
+ return i_stream_create(&cstream->istream, NULL, -1, 0);
}
cstream->istream.istream.readable_fd = FALSE;
cstream->istream.istream.blocking = blocking;
cstream->istream.istream.seekable = seekable;
- return i_stream_create(&cstream->istream, NULL, -1);
+ return i_stream_create(&cstream->istream, NULL, -1, 0);
}
cstream->istream.istream.blocking = input->blocking;
cstream->istream.istream.seekable = FALSE;
return i_stream_create(&cstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
struct istream *i_stream_create_crlf(struct istream *input)
stream->istream.readable_fd = FALSE;
stream->istream.blocking = TRUE;
stream->istream.seekable = TRUE;
- i_stream_create(stream, NULL, -1);
+ i_stream_create(stream, NULL, -1, 0);
stream->statbuf.st_size = size;
i_stream_set_name(&stream->istream, "(buffer)");
return &stream->istream;
fstream->error_string = i_strdup(error_string);
fstream->failure_offset = failure_offset;
return i_stream_create(&fstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
struct istream *
}
fstream->istream.istream.readable_fd = TRUE;
- input = i_stream_create(&fstream->istream, NULL, fd);
+ input = i_stream_create(&fstream->istream, NULL, fd, 0);
i_stream_set_name(input, is_file ? "(file)" : "(fd)");
return input;
}
hstream->method = method;
hstream->hash_context = hash_context;
return i_stream_create(&hstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
dstream->istream.istream.blocking = input->blocking;
dstream->istream.istream.seekable = FALSE;
return i_stream_create(&dstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
lstream->istream.istream.blocking = input->blocking;
lstream->istream.istream.seekable = input->seekable;
return i_stream_create(&lstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
struct istream *i_stream_create_range(struct istream *input,
mstream->istream.istream.readable_fd = TRUE;
mstream->istream.start_offset = start_offset;
- istream = i_stream_create(&mstream->istream, NULL, fd);
+ istream = i_stream_create(&mstream->istream, NULL, fd, 0);
istream->mmaped = TRUE;
istream->blocking = TRUE;
istream->seekable = TRUE;
channel->istream.fd = -1;
array_append(&channel->mstream->channels, &channel, 1);
- return i_stream_create(&channel->istream, NULL, channel->istream.fd);
+ return i_stream_create(&channel->istream, NULL, channel->istream.fd, 0);
}
struct istream *i_stream_multiplex_add_channel(struct istream *stream, uint8_t cid)
struct memarea *old_memarea;
};
+enum istream_create_flag {
+ ISTREAM_CREATE_FLAG_NOOP_DUMMY = 0,
+};
+
struct istream * ATTR_NOWARN_UNUSED_RESULT
-i_stream_create(struct istream_private *stream, struct istream *parent, int fd)
- ATTR_NULL(2);
+i_stream_create(struct istream_private *stream, struct istream *parent, int fd,
+ enum istream_create_flag flags) 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);
rstream->istream.istream.blocking = input->blocking;
rstream->istream.istream.seekable = input->seekable;
return i_stream_create(&rstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
sstream->istream.istream.readable_fd = FALSE;
sstream->istream.istream.blocking = blocking;
sstream->istream.istream.seekable = TRUE;
- (void)i_stream_create(&sstream->istream, NULL, -1);
+ (void)i_stream_create(&sstream->istream, NULL, -1, 0);
/* initialize our buffer from first stream's pending data */
data = i_stream_get_data(sstream->cur_input, &size);
sstream->istream.istream.blocking = input->blocking;
sstream->istream.istream.seekable = input->seekable;
(void)i_stream_create(&sstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
return sstream;
}
tstream->next = tee->children;
tee->children = tstream;
- ret = i_stream_create(&tstream->istream, input, i_stream_get_fd(input));
+ ret = i_stream_create(&tstream->istream, input, i_stream_get_fd(input), 0);
i_stream_set_name(&tstream->istream.istream, i_stream_get_name(input));
/* we keep the reference in tee stream, no need for extra references */
i_stream_unref(&input);
tstream->istream.istream.blocking = input->blocking;
tstream->istream.istream.seekable = input->seekable;
return i_stream_create(&tstream->istream, input,
- i_stream_get_fd(input));
+ i_stream_get_fd(input), 0);
}
tstream->istream.istream.readable_fd = FALSE;
tstream->istream.istream.blocking = blocking;
tstream->istream.istream.seekable = seekable;
- return i_stream_create(&tstream->istream, NULL, -1);
+ return i_stream_create(&tstream->istream, NULL, -1, 0);
}
}
struct istream *
-i_stream_create(struct istream_private *_stream, struct istream *parent, int fd)
+i_stream_create(struct istream_private *_stream, struct istream *parent, int fd,
+ enum istream_create_flag flags)
{
_stream->fd = fd;
if (parent != NULL)
stream->istream.seekable = TRUE;
stream->istream.eof = TRUE;
stream->istream.stream_errno = stream_errno;
- i_stream_create(stream, NULL, -1);
+ i_stream_create(stream, NULL, -1, 0);
i_stream_set_name(&stream->istream, "(error)");
return &stream->istream;
}
mstream->fd = -1;
(void)filter_connect(mstream, socket_path, args);
- return i_stream_create(&mstream->istream, input, mstream->fd);
+ return i_stream_create(&mstream->istream, input, mstream->fd, 0);
}