Mercurial > dovecot > original-hg > dovecot-1.2
changeset 6851:6a9080055e54 HEAD
Handle write failures with files better.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 24 Nov 2007 06:59:08 +0200 |
parents | c8f6eec5e996 |
children | 6ed01546f211 |
files | src/lib/ostream-file.c |
diffstat | 1 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/ostream-file.c Sat Nov 24 06:51:27 2007 +0200 +++ b/src/lib/ostream-file.c Sat Nov 24 06:59:08 2007 +0200 @@ -205,7 +205,8 @@ if (ret > 0) { fstream->real_offset += ret; ret += sent; - } else { + } else if (!fstream->file) { + /* return what we managed to get sent */ ret = sent; } } @@ -217,6 +218,12 @@ stream_closed(fstream); return -1; } + if (unlikely(ret == 0 && fstream->file)) { + /* assume out of disk space */ + fstream->ostream.ostream.stream_errno = ENOSPC; + stream_closed(fstream); + return -1; + } fstream->buffer_offset += ret; return ret;