aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2003-10-22 07:05:29 +0000
committerIgor Sysoev <igor@sysoev.ru>2003-10-22 07:05:29 +0000
commit5bf3d25d69ecdbccaa98beeb089a7a6850529b89 (patch)
tree1bc211941faf078f87f79bea1f2703e3190483fa /src/os/unix
parent419f9aceb4d994c2f7f51400f59fb2da0ed666d4 (diff)
downloadnginx-5bf3d25d69ecdbccaa98beeb089a7a6850529b89.tar.gz
nginx-5bf3d25d69ecdbccaa98beeb089a7a6850529b89.zip
nginx-0.0.1-2003-10-22-11:05:29 import
Diffstat (limited to 'src/os/unix')
-rw-r--r--src/os/unix/ngx_files.c10
-rw-r--r--src/os/unix/ngx_freebsd_sendfile_chain.c2
2 files changed, 6 insertions, 6 deletions
diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c
index 9ed378dd2..adafc17cf 100644
--- a/src/os/unix/ngx_files.c
+++ b/src/os/unix/ngx_files.c
@@ -77,15 +77,15 @@ ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce,
ce = ce->next;
}
- if (lseek(file->fd, offset, SEEK_SET) == -1) {
- ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed");
- return NGX_ERROR;
+ if (file->offset != offset) {
+ if (lseek(file->fd, offset, SEEK_SET) == -1) {
+ ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed");
+ return NGX_ERROR;
+ }
}
n = writev(file->fd, (struct iovec *) io.elts, io.nelts);
- ngx_destroy_array(&io);
-
if (n == -1) {
ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "writev() failed");
return NGX_ERROR;
diff --git a/src/os/unix/ngx_freebsd_sendfile_chain.c b/src/os/unix/ngx_freebsd_sendfile_chain.c
index 1632424ce..093265a33 100644
--- a/src/os/unix/ngx_freebsd_sendfile_chain.c
+++ b/src/os/unix/ngx_freebsd_sendfile_chain.c
@@ -83,9 +83,9 @@ ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in)
if (ce && (ce->hunk->type & NGX_HUNK_FILE)) {
file = ce->hunk;
- ce = ce->next;
fsize = (size_t) (file->file_last - file->file_pos);
fprev = file->file_last;
+ ce = ce->next;
/* coalesce the neighbouring file hunks */