diff options
| author | Maxim Dounin <mdounin@mdounin.ru> | 2011-10-21 11:04:46 +0000 |
|---|---|---|
| committer | Maxim Dounin <mdounin@mdounin.ru> | 2011-10-21 11:04:46 +0000 |
| commit | ce61ff9c453702d45998e1ae1394dc44e9c5eb6a (patch) | |
| tree | 3ffff37ec457af1716b33ebf460e584d89fc18aa | |
| parent | aecb2eda1368aa7e3b58738f2577474d98bf58ca (diff) | |
| download | nginx-ce61ff9c453702d45998e1ae1394dc44e9c5eb6a.tar.gz nginx-ce61ff9c453702d45998e1ae1394dc44e9c5eb6a.tar.bz2 | |
Fixed another return in unix ngx_write_chain_to_file().
Previous patch missed special case for one iovec, it needs total bytes
written to be returned as well.
| -rw-r--r-- | src/os/unix/ngx_files.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c index 4bfde44f4..ad26d2752 100644 --- a/src/os/unix/ngx_files.c +++ b/src/os/unix/ngx_files.c @@ -204,8 +204,15 @@ ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl, off_t offset, if (vec.nelts == 1) { iov = vec.elts; - return ngx_write_file(file, (u_char *) iov[0].iov_base, - iov[0].iov_len, offset); + + n = ngx_write_file(file, (u_char *) iov[0].iov_base, + iov[0].iov_len, offset); + + if (n == NGX_ERROR) { + return n; + } + + return total + n; } if (file->sys_offset != offset) { |
