comparison src/os/win32/ngx_files.c @ 292:a472bfb778b3

nginx-0.0.3-2004-03-17-00:26:01 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 16 Mar 2004 21:26:01 +0000
parents 87e73f067470
children 6bdf858bff8c
comparison
equal deleted inserted replaced
291:117ccc7c4055 292:a472bfb778b3
130 130
131 131
132 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl, 132 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl,
133 off_t offset, ngx_pool_t *pool) 133 off_t offset, ngx_pool_t *pool)
134 { 134 {
135 char *buf, *prev; 135 u_char *buf, *prev;
136 size_t size; 136 size_t size;
137 ssize_t total, n; 137 ssize_t total, n;
138 138
139 total = 0; 139 total = 0;
140 140
167 167
168 int ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_pool_t *pool) 168 int ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_pool_t *pool)
169 { 169 {
170 int rc, collision; 170 int rc, collision;
171 u_int num; 171 u_int num;
172 char *name; 172 u_char *name;
173 173
174 if (!(name = ngx_palloc(pool, to->len + 1 + 10 + 1 + sizeof("DELETE")))) { 174 if (!(name = ngx_palloc(pool, to->len + 1 + 10 + 1 + sizeof("DELETE")))) {
175 return NGX_ERROR; 175 return NGX_ERROR;
176 } 176 }
177 177
182 /* mutex_lock() (per cache or single ?) */ 182 /* mutex_lock() (per cache or single ?) */
183 183
184 do { 184 do {
185 num = ngx_next_temp_number(collision); 185 num = ngx_next_temp_number(collision);
186 186
187 ngx_snprintf(name + to->len, 1 + 10 + 1 + sizeof("DELETE"), 187 ngx_snprintf((char *) name + to->len, 1 + 10 + 1 + sizeof("DELETE"),
188 ".%010u.DELETE", num); 188 ".%010u.DELETE", num);
189 189
190 if (MoveFile(to->data, name) == 0) { 190 if (MoveFile((const char *) to->data, (const char *) name) == 0) {
191 collision = 1; 191 collision = 1;
192 ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, 192 ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno,
193 "MoveFile() failed"); 193 "MoveFile() failed");
194 } 194 }
195 195
196 } while (collision); 196 } while (collision);
197 197
198 if (MoveFile(from->data, to->data) == 0) { 198 if (MoveFile((const char *) from->data, (const char *) to->data) == 0) {
199 rc = NGX_ERROR; 199 rc = NGX_ERROR;
200 200
201 } else { 201 } else {
202 rc = NGX_OK; 202 rc = NGX_OK;
203 } 203 }
204 204
205 if (ngx_win32_version >= NGX_WIN_NT) { 205 if (ngx_win32_version >= NGX_WIN_NT) {
206 if (DeleteFile(name) == 0) { 206 if (DeleteFile((const char *) name) == 0) {
207 ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, 207 ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno,
208 "DeleteFile() failed"); 208 "DeleteFile() failed");
209 } 209 }
210 210
211 } else { 211 } else {
245 } 245 }
246 246
247 #endif 247 #endif
248 248
249 249
250 int ngx_file_info(char *file, ngx_file_info_t *sb) 250 int ngx_file_info(u_char *file, ngx_file_info_t *sb)
251 { 251 {
252 /* Win95 */ 252 /* Win95 */
253 253
254 sb->dwFileAttributes = GetFileAttributes(file); 254 sb->dwFileAttributes = GetFileAttributes((const char *) file);
255 255
256 if (sb->dwFileAttributes == INVALID_FILE_ATTRIBUTES) { 256 if (sb->dwFileAttributes == INVALID_FILE_ATTRIBUTES) {
257 return NGX_ERROR; 257 return NGX_ERROR;
258 } 258 }
259 259
263 263
264 int ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir) 264 int ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir)
265 { 265 {
266 ngx_cpystrn(name->data + name->len, NGX_DIR_MASK, NGX_DIR_MASK_LEN + 1); 266 ngx_cpystrn(name->data + name->len, NGX_DIR_MASK, NGX_DIR_MASK_LEN + 1);
267 267
268 dir->dir = FindFirstFile(name->data, &dir->fd); 268 dir->dir = FindFirstFile((const char *) name->data, &dir->fd);
269 269
270 if (dir->dir == INVALID_HANDLE_VALUE) { 270 if (dir->dir == INVALID_HANDLE_VALUE) {
271 return NGX_ERROR; 271 return NGX_ERROR;
272 } 272 }
273 273