/* Copyright (c) 2015-2018 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "buffer.h"
#include "ostream-private.h"
#include "ostream-failure-at.h"
struct failure_at_ostream {
char *error_string;
bool failed;
};
{
(struct failure_at_ostream *)stream;
}
static ssize_t
{
(struct failure_at_ostream *)stream;
unsigned int i;
unsigned int iov_dup_count;
/* blocking ostream must return either a full success or a
failure. if the current write would go past failure_offset,
return a failure now before writing anything. */
for (i = 0; i < iov_count; i++)
if (blocking_bytes_count > 0) {
/* if we're exactly at the failure offset after this
write, fail it only on the next write. */
}
}
return -1;
}
for (i = 0; i < iov_count; i++) {
iov_dup_count = i+1;
break;
}
}
if (ret < 0) {
return -1;
}
return ret;
}
static int
{
(struct failure_at_ostream *)stream;
return -1;
}
return o_stream_flush_parent(stream);
}
struct ostream *
const char *error_string)
{
}
struct ostream *
{
}