Latest update - 7330

This commit is contained in:
2018-08-01 15:34:32 +09:00
parent 0078c8e58c
commit 780042651e
2 changed files with 14 additions and 11 deletions
+10 -7
View File
@@ -796,10 +796,12 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
{ {
char *buf; char *buf;
off_t size; off_t size;
time_t time;
size_t len; size_t len;
ssize_t n; ssize_t n;
ngx_fd_t fd, nfd; ngx_fd_t fd, nfd;
ngx_int_t rc; ngx_int_t rc;
ngx_uint_t access;
ngx_file_info_t fi; ngx_file_info_t fi;
rc = NGX_ERROR; rc = NGX_ERROR;
@@ -814,8 +816,10 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
goto failed; goto failed;
} }
if (cf->size != -1) { if (cf->size != -1 && cf->access != 0 && cf->time != -1) {
size = cf->size; size = cf->size;
access = cf->access;
time = cf->time;
} else { } else {
if (ngx_fd_info(fd, &fi) == NGX_FILE_ERROR) { if (ngx_fd_info(fd, &fi) == NGX_FILE_ERROR) {
@@ -825,7 +829,9 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
goto failed; goto failed;
} }
size = ngx_file_size(&fi); size = (cf->size != -1) ? cf->size : ngx_file_size(&fi);
access = cf->access ? cf->access : ngx_file_access(&fi);
time = (cf->time != -1) ? cf->time : ngx_file_mtime(&fi);
} }
len = cf->buf_size ? cf->buf_size : 65536; len = cf->buf_size ? cf->buf_size : 65536;
@@ -839,8 +845,7 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
goto failed; goto failed;
} }
nfd = ngx_open_file(to, NGX_FILE_WRONLY, NGX_FILE_CREATE_OR_OPEN, nfd = ngx_open_file(to, NGX_FILE_WRONLY, NGX_FILE_TRUNCATE, access);
cf->access);
if (nfd == NGX_INVALID_FILE) { if (nfd == NGX_INVALID_FILE) {
ngx_log_error(NGX_LOG_CRIT, cf->log, ngx_errno, ngx_log_error(NGX_LOG_CRIT, cf->log, ngx_errno,
@@ -887,13 +892,11 @@ ngx_copy_file(u_char *from, u_char *to, ngx_copy_file_t *cf)
size -= n; size -= n;
} }
if (cf->time != -1) { if (ngx_set_file_time(to, nfd, time) != NGX_OK) {
if (ngx_set_file_time(to, nfd, cf->time) != NGX_OK) {
ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno, ngx_log_error(NGX_LOG_ALERT, cf->log, ngx_errno,
ngx_set_file_time_n " \"%s\" failed", to); ngx_set_file_time_n " \"%s\" failed", to);
goto failed; goto failed;
} }
}
rc = NGX_OK; rc = NGX_OK;
+1 -1
View File
@@ -845,7 +845,7 @@ overwrite_done:
cf.size = ngx_file_size(&fi); cf.size = ngx_file_size(&fi);
cf.buf_size = 0; cf.buf_size = 0;
cf.access = dlcf->access; cf.access = ngx_file_access(&fi);
cf.time = ngx_file_mtime(&fi); cf.time = ngx_file_mtime(&fi);
cf.log = r->connection->log; cf.log = r->connection->log;