dovecot-2.2: iostream-temp: Improved stream naming.
dovecot at dovecot.org
dovecot at dovecot.org
Fri Apr 25 15:04:00 UTC 2014
details: http://hg.dovecot.org/dovecot-2.2/rev/1c7ee3ecbfb3
changeset: 17273:1c7ee3ecbfb3
user: Timo Sirainen <tss at iki.fi>
date: Fri Apr 25 18:03:36 2014 +0300
description:
iostream-temp: Improved stream naming.
diffstat:
src/lib/iostream-temp.c | 21 +++++++++++++++------
1 files changed, 15 insertions(+), 6 deletions(-)
diffs (64 lines):
diff -r 767acd575d06 -r 1c7ee3ecbfb3 src/lib/iostream-temp.c
--- a/src/lib/iostream-temp.c Fri Apr 25 17:29:18 2014 +0300
+++ b/src/lib/iostream-temp.c Fri Apr 25 18:03:36 2014 +0300
@@ -25,6 +25,7 @@
buffer_t *buf;
int fd;
bool fd_tried;
+ uoff_t fd_size;
};
static void
@@ -65,6 +66,7 @@
i_close_fd(&tstream->fd);
return -1;
}
+ tstream->fd_size = tstream->buf->used;
buffer_free(&tstream->buf);
return 0;
}
@@ -84,6 +86,7 @@
bytes += iov[i].iov_len;
tstream->ostream.ostream.offset += iov[i].iov_len;
}
+ tstream->fd_size += bytes;
return bytes;
}
@@ -198,10 +201,14 @@
i_assert(stream->ostream.offset == tstream->buf->used);
buffer_write(tstream->buf, offset, data, size);
stream->ostream.offset = tstream->buf->used;
- } else if (pwrite_full(tstream->fd, data, size, offset) < 0) {
- stream->ostream.stream_errno = errno;
- i_close_fd(&tstream->fd);
- return -1;
+ } else {
+ if (pwrite_full(tstream->fd, data, size, offset) < 0) {
+ stream->ostream.stream_errno = errno;
+ i_close_fd(&tstream->fd);
+ return -1;
+ }
+ if (tstream->fd_size < offset + size)
+ tstream->fd_size = offset + size;
}
return 0;
}
@@ -265,13 +272,15 @@
} else if (tstream->fd != -1) {
input = i_stream_create_fd(tstream->fd, max_buffer_size, TRUE);
i_stream_set_name(input, t_strdup_printf(
- "(Temp file in %s)", tstream->temp_path_prefix));
+ "(Temp file fd %d in %s, %"PRIuUOFF_T" bytes)",
+ tstream->fd, tstream->temp_path_prefix, tstream->fd_size));
tstream->fd = -1;
} else {
input = i_stream_create_from_data(tstream->buf->data,
tstream->buf->used);
i_stream_set_name(input, t_strdup_printf(
- "(Temp file in %s)", tstream->temp_path_prefix));
+ "(Temp buffer in %s, %"PRIuSIZE_T" bytes)",
+ tstream->temp_path_prefix, tstream->buf->used));
i_stream_add_destroy_callback(input, iostream_temp_buf_destroyed,
tstream->buf);
tstream->buf = NULL;
More information about the dovecot-cvs
mailing list