aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_file.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2008-01-03 22:16:37 +0000
committerIgor Sysoev <igor@sysoev.ru>2008-01-03 22:16:37 +0000
commit501fc74854a0849547a0309fe991bf8888a16d6d (patch)
treebb2313a7cdf0bfb576a97a2791007a760589b655 /src/core/ngx_file.c
parentcea903401562f7eaf37602797f3f78b4cb7115cf (diff)
downloadnginx-501fc74854a0849547a0309fe991bf8888a16d6d.tar.gz
nginx-501fc74854a0849547a0309fe991bf8888a16d6d.zip
transform ngx_create_path_and_rename_file() to ngx_ext_rename_file()
Diffstat (limited to 'src/core/ngx_file.c')
-rw-r--r--src/core/ngx_file.c30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c
index b6b15ca5f..37d12e1fd 100644
--- a/src/core/ngx_file.c
+++ b/src/core/ngx_file.c
@@ -481,15 +481,14 @@ ngx_create_pathes(ngx_cycle_t *cycle, ngx_uid_t user)
ngx_int_t
-ngx_create_path_and_rename_file(ngx_str_t *src, ngx_str_t *to,
- ngx_uint_t access, ngx_uint_t full_path, ngx_uint_t delete, ngx_log_t *log)
+ngx_ext_rename_file(ngx_str_t *src, ngx_str_t *to, ngx_ext_rename_file_t *ext)
{
ngx_err_t err;
#if !(NGX_WIN32)
- if (ngx_change_file_access(src->data, access) == NGX_FILE_ERROR) {
- ngx_log_error(NGX_LOG_CRIT, log, ngx_errno,
+ if (ngx_change_file_access(src->data, ext->access) == NGX_FILE_ERROR) {
+ ngx_log_error(NGX_LOG_CRIT, ext->log, ngx_errno,
ngx_change_file_access_n " \"%s\" failed", src->data);
err = 0;
goto failed;
@@ -497,6 +496,15 @@ ngx_create_path_and_rename_file(ngx_str_t *src, ngx_str_t *to,
#endif
+ if (ext->time != -1) {
+ if (ngx_set_file_time(src->data, ext->fd, ext->time) != NGX_OK) {
+ ngx_log_error(NGX_LOG_CRIT, ext->log, ngx_errno,
+ ngx_set_file_time_n " \"%s\" failed", src->data);
+ err = 0;
+ goto failed;
+ }
+ }
+
if (ngx_rename_file(src->data, to->data) != NGX_FILE_ERROR) {
return NGX_OK;
}
@@ -505,14 +513,14 @@ ngx_create_path_and_rename_file(ngx_str_t *src, ngx_str_t *to,
if (err == NGX_ENOENT) {
- if (!full_path) {
+ if (!ext->create_path) {
goto failed;
}
- err = ngx_create_full_path(to->data, ngx_dir_access(access));
+ err = ngx_create_full_path(to->data, ngx_dir_access(ext->access));
if (err) {
- ngx_log_error(NGX_LOG_CRIT, log, err,
+ ngx_log_error(NGX_LOG_CRIT, ext->log, err,
ngx_create_dir_n " \"%s\" failed", to->data);
err = 0;
goto failed;
@@ -529,7 +537,7 @@ ngx_create_path_and_rename_file(ngx_str_t *src, ngx_str_t *to,
#if (NGX_WIN32)
if (err == NGX_EEXIST) {
- if (ngx_win32_rename_file(src, to, log) == NGX_OK) {
+ if (ngx_win32_rename_file(src, to, ext->log) == NGX_OK) {
if (ngx_rename_file(src->data, to->data) != NGX_FILE_ERROR) {
return NGX_OK;
@@ -546,15 +554,15 @@ ngx_create_path_and_rename_file(ngx_str_t *src, ngx_str_t *to,
failed:
- if (delete) {
+ if (ext->delete) {
if (ngx_delete_file(src->data) == NGX_FILE_ERROR) {
- ngx_log_error(NGX_LOG_CRIT, log, ngx_errno,
+ ngx_log_error(NGX_LOG_CRIT, ext->log, ngx_errno,
ngx_delete_file_n " \"%s\" failed", src->data);
}
}
if (err) {
- ngx_log_error(NGX_LOG_CRIT, log, err,
+ ngx_log_error(NGX_LOG_CRIT, ext->log, err,
ngx_rename_file_n " \"%s\" to \"%s\" failed",
src->data, to->data);
}