Fixed unix ngx_write_chain_to_file() to return total bytes written.

Previously result of last iteration's writev() was returned.  This was
unnoticed as return value was only used if chain contained only one or
two buffers.
This commit is contained in:
Maxim Dounin 2011-10-20 12:40:26 +00:00
parent 90b228b891
commit 1c5f1af3bd

View file

@ -153,7 +153,7 @@ ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl, off_t offset,
{
u_char *prev;
size_t size;
ssize_t n;
ssize_t total, n;
ngx_array_t vec;
struct iovec *iov, iovs[NGX_IOVS];
@ -165,6 +165,8 @@ ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl, off_t offset,
offset);
}
total = 0;
vec.elts = iovs;
vec.size = sizeof(struct iovec);
vec.nalloc = NGX_IOVS;
@ -233,10 +235,11 @@ ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl, off_t offset,
file->sys_offset += n;
file->offset += n;
total += n;
} while (cl);
return n;
return total;
}