Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2009-12-15 16:47:02 +0300
committerIgor Sysoev <igor@sysoev.ru>2009-12-15 16:47:02 +0300
commit44be39475c29e2866f1a2bcd8775ec5e489d1813 (patch)
tree28c6ba7b1510b4a412d366a588a7b046632f2ae3 /src/os/win32
parent29b5a1378460c746a9e9eec7110df31e845b31b2 (diff)
fix Win32 error messages when an temporary file replaces an existent file:
*) do not rename an already renamed file *) now ngx_win32_rename_file() returns error code *) do not log failure inside ngx_win32_rename_file()
Diffstat (limited to 'src/os/win32')
-rw-r--r--src/os/win32/ngx_files.c18
-rw-r--r--src/os/win32/ngx_files.h2
2 files changed, 7 insertions, 13 deletions
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c
index fab74ae4d..ee1a78429 100644
--- a/src/os/win32/ngx_files.c
+++ b/src/os/win32/ngx_files.c
@@ -187,17 +187,17 @@ ngx_write_console(ngx_fd_t fd, void *buf, size_t size)
}
-ngx_int_t
+ngx_err_t
ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_log_t *log)
{
u_char *name;
- ngx_int_t rc;
+ ngx_err_t err;
ngx_uint_t collision;
ngx_atomic_uint_t num;
name = ngx_alloc(to->len + 1 + 10 + 1 + sizeof("DELETE"), log);
if (name == NULL) {
- return NGX_ERROR;
+ return NGX_ENOMEM;
}
ngx_memcpy(name, to->data, to->len);
@@ -222,10 +222,10 @@ ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_log_t *log)
}
if (MoveFile((const char *) from->data, (const char *) to->data) == 0) {
- rc = NGX_ERROR;
+ err = ngx_errno;
} else {
- rc = NGX_OK;
+ err = 0;
}
if (DeleteFile((const char *) name) == 0) {
@@ -233,17 +233,11 @@ ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_log_t *log)
"DeleteFile() \"%s\" failed", name);
}
- if (rc == NGX_ERROR) {
- ngx_log_error(NGX_LOG_CRIT, log, ngx_errno,
- "MoveFile() \"%s\" to \"%s\" failed",
- from->data, to->data);
- }
-
/* mutex_unlock() */
ngx_free(name);
- return rc;
+ return err;
}
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h
index cc9fa8f1e..610fcd0dc 100644
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -111,7 +111,7 @@ ssize_t ngx_write_console(ngx_fd_t fd, void *buf, size_t size);
#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_log_t *log);
+ngx_err_t ngx_win32_rename_file(ngx_str_t *from, ngx_str_t *to, ngx_log_t *log);