changeset 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 2f091d33dcb3
children 8c696afe46b3
files src/http/modules/ngx_http_dav_module.c src/http/ngx_http_upstream.c src/os/win32/ngx_files.c src/os/win32/ngx_files.h
diffstat 4 files changed, 10 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/http/modules/ngx_http_dav_module.c
+++ b/src/http/modules/ngx_http_dav_module.c
@@ -295,7 +295,7 @@ ngx_http_dav_put_handler(ngx_http_reques
 #if (NGX_WIN32)
 
     if (err == NGX_EEXIST) {
-        if (ngx_win32_rename_file(temp, &path, r->pool) != NGX_ERROR) {
+        if (ngx_win32_rename_file(temp, &path, r->connection->log) == NGX_OK) {
 
             if (ngx_rename_file(temp->data, path.data) != NGX_FILE_ERROR) {
                 goto ok;
--- a/src/http/ngx_http_upstream.c
+++ b/src/http/ngx_http_upstream.c
@@ -2224,7 +2224,7 @@ ngx_http_upstream_store(ngx_http_request
 #if (NGX_WIN32)
 
     if (err == NGX_EEXIST) {
-        if (ngx_win32_rename_file(temp, &path, r->pool) != NGX_ERROR) {
+        if (ngx_win32_rename_file(temp, &path, r->connection->log) == NGX_OK) {
 
             if (ngx_rename_file(temp->data, path.data) != NGX_FILE_ERROR) {
                 return;
--- a/src/os/win32/ngx_files.c
+++ b/src/os/win32/ngx_files.c
@@ -201,14 +201,14 @@ ngx_write_fd(ngx_fd_t fd, void *buf, siz
 
 
 ngx_int_t
-ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_pool_t *pool)
+ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_log_t *log)
 {
     u_char             *name;
     ngx_int_t           rc;
     ngx_uint_t          collision;
     ngx_atomic_uint_t   num;
 
-    name = ngx_palloc(pool, to->len + 1 + 10 + 1 + sizeof("DELETE"));
+    name = ngx_alloc(to->len + 1 + 10 + 1 + sizeof("DELETE"), log);
     if (name == NULL) {
         return NGX_ERROR;
     }
@@ -230,7 +230,7 @@ ngx_win32_rename_file(ngx_str_t *from, n
 
         collision = 1;
 
-        ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, "MoveFile() failed");
+        ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, "MoveFile() failed");
     }
 
     if (MoveFile((const char *) from->data, (const char *) to->data) == 0) {
@@ -241,15 +241,17 @@ ngx_win32_rename_file(ngx_str_t *from, n
     }
 
     if (DeleteFile((const char *) name) == 0) {
-        ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, "DeleteFile() failed");
+        ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, "DeleteFile() failed");
     }
 
     if (rc == NGX_ERROR) {
-        ngx_log_error(NGX_LOG_ERR, pool->log, ngx_errno, "MoveFile() failed");
+        ngx_log_error(NGX_LOG_CRIT, log, ngx_errno, "MoveFile() failed");
     }
 
     /* mutex_unlock() */
 
+    ngx_free(name);
+
     return rc;
 }
 
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -86,8 +86,7 @@ ssize_t ngx_write_fd(ngx_fd_t fd, void *
 
 #define ngx_rename_file(o, n)       MoveFile((const char *) o, (const char *) n)
 #define ngx_rename_file_n           "MoveFile()"
-ngx_int_t ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to,
-    ngx_pool_t *pool);
+ngx_int_t ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_log_t *log);