diff options
author | Not Zed <NotZed@Ximian.com> | 2001-10-17 12:09:17 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2001-10-17 12:09:17 +0800 |
commit | 846fe128cb00fcbe020b47826dd3de50d4704a48 (patch) | |
tree | 66458e4e81043859b91e850541d5130b3aebd09f /camel/camel-stream-fs.c | |
parent | ba196c905ab7f0a522b5dd7eec043978813fb262 (diff) | |
download | gsoc2013-evolution-846fe128cb00fcbe020b47826dd3de50d4704a48.tar.gz gsoc2013-evolution-846fe128cb00fcbe020b47826dd3de50d4704a48.tar.zst gsoc2013-evolution-846fe128cb00fcbe020b47826dd3de50d4704a48.zip |
As below.
2001-10-17 Not Zed <NotZed@Ximian.com>
* camel-tcp-stream-raw.c (stream_write): As below.
* camel-stream-fs.c (stream_write): If not checking cancellation,
make sure we write out everything asked of us.
svn path=/trunk/; revision=13717
Diffstat (limited to 'camel/camel-stream-fs.c')
-rw-r--r-- | camel/camel-stream-fs.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/camel/camel-stream-fs.c b/camel/camel-stream-fs.c index 64e4912785..63c1b2eae0 100644 --- a/camel/camel-stream-fs.c +++ b/camel/camel-stream-fs.c @@ -279,10 +279,13 @@ stream_write (CamelStream *stream, const char *buffer, size_t n) cancel_fd = camel_operation_cancel_fd(NULL); if (cancel_fd == -1) { do { - v = write (stream_fs->fd, buffer+written, n-written); + do { + v = write (stream_fs->fd, buffer+written, n-written); + } while (v == -1 && errno == EINTR); + if (v > 0) written += v; - } while (v == -1 && errno == EINTR); + } while (v != -1 && written < n); } else { fd_set rdset, wrset; int error, flags, fdmax; |