nginx-0.3.38-RELEASE import
*) Feature: the ngx_http_dav_module.
*) Change: the ngx_http_perl_module optimizations.
Thanks to Sergey Skvortsov.
*) Feature: the ngx_http_perl_module supports the $r->request_body_file
method.
*) Feature: the "client_body_in_file_only" directive.
*) Workaround: now on disk overflow nginx tries to write access logs
once a second only.
Thanks to Anton Yuzhaninov and Maxim Dounin.
*) Bugfix: now the "limit_rate" directive more precisely limits rate if
rate is more than 100 Kbyte/s.
Thanks to ForJest.
*) Bugfix: now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in
login and password to pass authorization server.
Thanks to Maxim Dounin.
diff --git a/src/core/nginx.c b/src/core/nginx.c
index 64f8012..12a2b8a 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -426,7 +426,7 @@
ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module);
- if (ngx_rename_file((char *) ccf->pid.data, (char *) ccf->oldpid.data)
+ if (ngx_rename_file(ccf->pid.data, ccf->oldpid.data)
!= NGX_OK)
{
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
@@ -442,7 +442,7 @@
pid = ngx_execute(cycle, &ctx);
if (pid == NGX_INVALID_PID) {
- if (ngx_rename_file((char *) ccf->oldpid.data, (char *) ccf->pid.data)
+ if (ngx_rename_file(ccf->oldpid.data, ccf->pid.data)
!= NGX_OK)
{
ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
diff --git a/src/core/nginx.h b/src/core/nginx.h
index 06e46c0..f47c36a 100644
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,7 +8,7 @@
#define _NGINX_H_INCLUDED_
-#define NGINX_VER "nginx/0.3.37"
+#define NGINX_VER "nginx/0.3.38"
#define NGINX_VAR "NGINX"
#define NGX_OLDPID_EXT ".oldbin"
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c
index e3e7190..0a2c371 100644
--- a/src/core/ngx_file.c
+++ b/src/core/ngx_file.c
@@ -19,7 +19,7 @@
if (tf->file.fd == NGX_INVALID_FILE) {
rc = ngx_create_temp_file(&tf->file, tf->path, tf->pool,
- tf->persistent);
+ tf->persistent, tf->mode);
if (rc == NGX_ERROR || rc == NGX_AGAIN) {
return rc;
@@ -36,7 +36,7 @@
ngx_int_t
ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path, ngx_pool_t *pool,
- ngx_uint_t persistent)
+ ngx_uint_t persistent, ngx_uint_t mode)
{
ngx_err_t err;
ngx_atomic_uint_t n;
@@ -71,11 +71,7 @@
return NGX_ERROR;
}
-#if 1
- file->fd = ngx_open_tempfile(file->name.data, persistent);
-#else
- file->fd = ngx_open_tempfile(file->name.data, 1);
-#endif
+ file->fd = ngx_open_tempfile(file->name.data, persistent, mode);
ngx_log_debug1(NGX_LOG_DEBUG_CORE, file->log, 0,
"temp fd:%d", file->fd);
diff --git a/src/core/ngx_file.h b/src/core/ngx_file.h
index 52c1ae2..488c10a 100644
--- a/src/core/ngx_file.h
+++ b/src/core/ngx_file.h
@@ -49,13 +49,15 @@
ngx_pool_t *pool;
char *warn;
+ ngx_uint_t mode;
+
unsigned persistent:1;
} ngx_temp_file_t;
ssize_t ngx_write_chain_to_temp_file(ngx_temp_file_t *tf, ngx_chain_t *chain);
ngx_int_t ngx_create_temp_file(ngx_file_t *file, ngx_path_t *path,
- ngx_pool_t *pool, ngx_uint_t persistent);
+ ngx_pool_t *pool, ngx_uint_t persistent,ngx_uint_t mode);
void ngx_create_hashed_filename(ngx_file_t *file, ngx_path_t *path);
ngx_int_t ngx_create_path(ngx_file_t *file, ngx_path_t *path);
ngx_int_t ngx_add_path(ngx_conf_t *cf, ngx_path_t **slot);