# HG changeset patch # User Igor Sysoev # Date 1197057433 0 # Node ID f4eb04fd8579221b63b91e0d5f8431dbc82f4bff # Parent 2f091d33dcb315194ebe1facee5d3087bb61761b use malloc() in ngx_win32_rename_file, set crit level instead of error diff --git a/src/http/modules/ngx_http_dav_module.c b/src/http/modules/ngx_http_dav_module.c --- 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; diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c --- 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; diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c --- 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; } diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h --- 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);