Mercurial > hg > nginx
diff src/os/unix/ngx_files.c @ 190:02a715e85df1
nginx-0.0.1-2003-11-19-00:34:08 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 18 Nov 2003 21:34:08 +0000 |
parents | c1f3a3c7c5db |
children | 71ce40b3c37b |
line wrap: on
line diff
--- a/src/os/unix/ngx_files.c +++ b/src/os/unix/ngx_files.c @@ -25,13 +25,15 @@ ssize_t ngx_read_file(ngx_file_t *file, #else - if (file->offset != offset) { + if (file->sys_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; } } + file->sys_offset = offset; + n = read(file->fd, buf, size); if (n == -1) { @@ -39,6 +41,8 @@ ssize_t ngx_read_file(ngx_file_t *file, return NGX_ERROR; } + file->sys_offset += n; + #endif file->offset += n; @@ -68,13 +72,15 @@ ssize_t ngx_write_file(ngx_file_t *file, #else - if (file->offset != offset) { + if (file->sys_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; } } + file->sys_offset = offset; + n = write(file->fd, buf, size); if (n == -1) { @@ -88,6 +94,8 @@ ssize_t ngx_write_file(ngx_file_t *file, return NGX_ERROR; } + file->sys_offset += n; + #endif file->offset += n; @@ -150,6 +158,8 @@ ssize_t ngx_write_chain_to_file(ngx_file } } + file->sys_offset = offset; + n = writev(file->fd, io.elts, io.nelts); if (n == -1) { @@ -163,6 +173,7 @@ ssize_t ngx_write_chain_to_file(ngx_file return NGX_ERROR; } + file->sys_offset += n; file->offset += n; return n;