Mercurial > hg > nginx-quic
comparison 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 |
comparison
equal
deleted
inserted
replaced
189:c966c09be66b | 190:02a715e85df1 |
---|---|
23 return NGX_ERROR; | 23 return NGX_ERROR; |
24 } | 24 } |
25 | 25 |
26 #else | 26 #else |
27 | 27 |
28 if (file->offset != offset) { | 28 if (file->sys_offset != offset) { |
29 if (lseek(file->fd, offset, SEEK_SET) == -1) { | 29 if (lseek(file->fd, offset, SEEK_SET) == -1) { |
30 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed"); | 30 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed"); |
31 return NGX_ERROR; | 31 return NGX_ERROR; |
32 } | 32 } |
33 } | 33 } |
34 | 34 |
35 file->sys_offset = offset; | |
36 | |
35 n = read(file->fd, buf, size); | 37 n = read(file->fd, buf, size); |
36 | 38 |
37 if (n == -1) { | 39 if (n == -1) { |
38 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "read() failed"); | 40 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "read() failed"); |
39 return NGX_ERROR; | 41 return NGX_ERROR; |
40 } | 42 } |
43 | |
44 file->sys_offset += n; | |
41 | 45 |
42 #endif | 46 #endif |
43 | 47 |
44 file->offset += n; | 48 file->offset += n; |
45 | 49 |
66 return NGX_ERROR; | 70 return NGX_ERROR; |
67 } | 71 } |
68 | 72 |
69 #else | 73 #else |
70 | 74 |
71 if (file->offset != offset) { | 75 if (file->sys_offset != offset) { |
72 if (lseek(file->fd, offset, SEEK_SET) == -1) { | 76 if (lseek(file->fd, offset, SEEK_SET) == -1) { |
73 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed"); | 77 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed"); |
74 return NGX_ERROR; | 78 return NGX_ERROR; |
75 } | 79 } |
76 } | 80 } |
81 | |
82 file->sys_offset = offset; | |
77 | 83 |
78 n = write(file->fd, buf, size); | 84 n = write(file->fd, buf, size); |
79 | 85 |
80 if (n == -1) { | 86 if (n == -1) { |
81 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "write() failed"); | 87 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "write() failed"); |
85 if ((size_t) n != size) { | 91 if ((size_t) n != size) { |
86 ngx_log_error(NGX_LOG_CRIT, file->log, 0, | 92 ngx_log_error(NGX_LOG_CRIT, file->log, 0, |
87 "write() has written only %d of %d", n, size); | 93 "write() has written only %d of %d", n, size); |
88 return NGX_ERROR; | 94 return NGX_ERROR; |
89 } | 95 } |
96 | |
97 file->sys_offset += n; | |
90 | 98 |
91 #endif | 99 #endif |
92 | 100 |
93 file->offset += n; | 101 file->offset += n; |
94 | 102 |
148 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed"); | 156 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "lseek() failed"); |
149 return NGX_ERROR; | 157 return NGX_ERROR; |
150 } | 158 } |
151 } | 159 } |
152 | 160 |
161 file->sys_offset = offset; | |
162 | |
153 n = writev(file->fd, io.elts, io.nelts); | 163 n = writev(file->fd, io.elts, io.nelts); |
154 | 164 |
155 if (n == -1) { | 165 if (n == -1) { |
156 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "writev() failed"); | 166 ngx_log_error(NGX_LOG_CRIT, file->log, ngx_errno, "writev() failed"); |
157 return NGX_ERROR; | 167 return NGX_ERROR; |
161 ngx_log_error(NGX_LOG_CRIT, file->log, 0, | 171 ngx_log_error(NGX_LOG_CRIT, file->log, 0, |
162 "writev() has written only %d of %d", n, size); | 172 "writev() has written only %d of %d", n, size); |
163 return NGX_ERROR; | 173 return NGX_ERROR; |
164 } | 174 } |
165 | 175 |
176 file->sys_offset += n; | |
166 file->offset += n; | 177 file->offset += n; |
167 | 178 |
168 return n; | 179 return n; |
169 } | 180 } |
170 | 181 |