comparison src/os/win32/ngx_files.c @ 1693:f4eb04fd8579

use malloc() in ngx_win32_rename_file, set crit level instead of error
author Igor Sysoev <igor@sysoev.ru>
date Fri, 07 Dec 2007 19:57:13 +0000
parents d3cbb96818f1
children b5263e401884
comparison
equal deleted inserted replaced
1692:2f091d33dcb3 1693:f4eb04fd8579
199 return -1; 199 return -1;
200 } 200 }
201 201
202 202
203 ngx_int_t 203 ngx_int_t
204 ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_pool_t *pool) 204 ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_log_t *log)
205 { 205 {
206 u_char *name; 206 u_char *name;
207 ngx_int_t rc; 207 ngx_int_t rc;
208 ngx_uint_t collision; 208 ngx_uint_t collision;
209 ngx_atomic_uint_t num; 209 ngx_atomic_uint_t num;
210 210
211 name = ngx_palloc(pool, to->len + 1 + 10 + 1 + sizeof("DELETE")); 211 name = ngx_alloc(to->len + 1 + 10 + 1 + sizeof("DELETE"), log);
212 if (name == NULL) { 212 if (name == NULL) {
213 return NGX_ERROR; 213 return NGX_ERROR;
214 } 214 }
215 215
216 ngx_memcpy(name, to->data, to->len); 216 ngx_memcpy(name, to->data, to->len);
228 break; 228 break;
229 } 229 }
230 230
231 collision = 1; 231 collision = 1;
232 232
233 ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, "MoveFile() failed"); 233 ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, "MoveFile() failed");
234 } 234 }
235 235
236 if (MoveFile((const char *) from->data, (const char *) to->data) == 0) { 236 if (MoveFile((const char *) from->data, (const char *) to->data) == 0) {
237 rc = NGX_ERROR; 237 rc = NGX_ERROR;
238 238
239 } else { 239 } else {
240 rc = NGX_OK; 240 rc = NGX_OK;
241 } 241 }
242 242
243 if (DeleteFile((const char *) name) == 0) { 243 if (DeleteFile((const char *) name) == 0) {
244 ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, "DeleteFile() failed"); 244 ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, "DeleteFile() failed");
245 } 245 }
246 246
247 if (rc == NGX_ERROR) { 247 if (rc == NGX_ERROR) {
248 ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, "MoveFile() failed"); 248 ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, "MoveFile() failed");
249 } 249 }
250 250
251 /* mutex_unlock() */ 251 /* mutex_unlock() */
252
253 ngx_free(name);
252 254
253 return rc; 255 return rc;
254 } 256 }
255 257
256 258