#include "iostream-temp.h"
#include "fs-api-private.h"
-#define MAX_METADATA_LINE_LEN 8192
-
struct metawrap_fs {
struct fs fs;
bool wrap_metadata;
return file->input;
}
- input = fs_read_stream(file->super_read,
- I_MAX(max_buffer_size, MAX_METADATA_LINE_LEN));
+ input = fs_read_stream(file->super_read, max_buffer_size);
file->input = i_stream_create_metawrap(input, fs_metawrap_callback, file);
i_stream_unref(&input);
i_stream_ref(file->input);
#include "istream-private.h"
#include "istream-metawrap.h"
+#define METAWRAP_MAX_METADATA_LINE_LEN 8192
+
struct metawrap_istream {
struct istream_private istream;
metawrap_callback_t *callback;
stream->istream.v_offset);
if (mstream->in_metadata) {
+ size_t prev_max_size = i_stream_get_max_buffer_size(stream->parent);
+
+ i_stream_set_max_buffer_size(stream->parent, METAWRAP_MAX_METADATA_LINE_LEN);
ret = metadata_header_read(mstream);
+ i_stream_set_max_buffer_size(stream->parent, prev_max_size);
+
i_assert(stream->istream.v_offset == 0);
mstream->start_offset = stream->parent->v_offset;
if (ret <= 0)