return 0;
}
- if (sstream->membuf != NULL) {
- /* we want to know the full size of the file, so read until
- we're finished */
- old_offset = stream->istream.v_offset;
- do {
- i_stream_skip(&stream->istream,
- stream->pos - stream->skip);
- } while ((ret = i_stream_seekable_read(stream)) > 0);
-
- if (ret == 0) {
- i_panic("i_stream_stat() used for non-blocking "
- "seekable stream %s offset %"PRIuUOFF_T,
- i_stream_get_name(sstream->cur_input),
- sstream->cur_input->v_offset);
- }
- i_stream_skip(&stream->istream, stream->pos - stream->skip);
- i_stream_seek(&stream->istream, old_offset);
- unref_streams(sstream);
+ /* we want to know the full size of the file, so read until
+ we're finished */
+ old_offset = stream->istream.v_offset;
+ do {
+ i_stream_skip(&stream->istream,
+ stream->pos - stream->skip);
+ } while ((ret = i_stream_seekable_read(stream)) > 0);
+
+ if (ret == 0) {
+ i_panic("i_stream_stat() used for non-blocking "
+ "seekable stream %s offset %"PRIuUOFF_T,
+ i_stream_get_name(sstream->cur_input),
+ sstream->cur_input->v_offset);
}
+ i_stream_skip(&stream->istream, stream->pos - stream->skip);
+ i_stream_seek(&stream->istream, old_offset);
+ unref_streams(sstream);
+
if (stream->istream.stream_errno != 0)
return -1;