From 8a2b2fb4fbd1801a5fb70d86384f2c6fd13c32c3 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Fri, 14 Apr 2006 09:53:38 +0000 Subject: 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. --- src/os/unix/ngx_errno.h | 1 + src/os/unix/ngx_files.c | 4 ++-- src/os/unix/ngx_files.h | 5 +++-- src/os/win32/ngx_errno.h | 1 + src/os/win32/ngx_files.h | 4 ++-- 5 files changed, 9 insertions(+), 6 deletions(-) (limited to 'src/os') diff --git a/src/os/unix/ngx_errno.h b/src/os/unix/ngx_errno.h index e55078810..dae9571e2 100644 --- a/src/os/unix/ngx_errno.h +++ b/src/os/unix/ngx_errno.h @@ -24,6 +24,7 @@ typedef int ngx_err_t; #define NGX_EEXIST EEXIST #define NGX_ENOTDIR ENOTDIR #define NGX_EINVAL EINVAL +#define NGX_ENOSPC ENOSPC #define NGX_EPIPE EPIPE #define NGX_EAGAIN EAGAIN #define NGX_EINPROGRESS EINPROGRESS diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c index f89147df1..575831390 100644 --- a/src/os/unix/ngx_files.c +++ b/src/os/unix/ngx_files.c @@ -112,11 +112,11 @@ ngx_write_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset) ngx_fd_t -ngx_open_tempfile(u_char *name, ngx_uint_t persistent) +ngx_open_tempfile(u_char *name, ngx_uint_t persistent, ngx_uint_t mode) { ngx_fd_t fd; - fd = open((const char *) name, O_CREAT|O_EXCL|O_RDWR, 0600); + fd = open((const char *) name, O_CREAT|O_EXCL|O_RDWR, mode ? mode : 0600); if (fd != -1 && !persistent) { unlink((const char *) name); diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h index fcf5da4ad..29b649583 100644 --- a/src/os/unix/ngx_files.h +++ b/src/os/unix/ngx_files.h @@ -37,7 +37,8 @@ #define ngx_delete_file_n "unlink()" -ngx_fd_t ngx_open_tempfile(u_char *name, ngx_uint_t persistent); +ngx_fd_t ngx_open_tempfile(u_char *name, ngx_uint_t persistent, + ngx_uint_t mode); #define ngx_open_tempfile_n "open()" @@ -56,7 +57,7 @@ ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce, #define NGX_LINEFEED_SIZE 1 -#define ngx_rename_file rename +#define ngx_rename_file(o, n) rename((const char *) o, (const char *) n) #define ngx_rename_file_n "rename" diff --git a/src/os/win32/ngx_errno.h b/src/os/win32/ngx_errno.h index 46f4382c4..97565760b 100644 --- a/src/os/win32/ngx_errno.h +++ b/src/os/win32/ngx_errno.h @@ -26,6 +26,7 @@ typedef DWORD ngx_err_t; #endif #define NGX_EEXIST ERROR_ALREADY_EXISTS #define NGX_ENOTDIR ERROR_PATH_NOT_FOUND +#define NGX_ENOSPC ERROR_DISK_FULL #define NGX_EPIPE EPIPE #define NGX_EAGAIN WSAEWOULDBLOCK #define NGX_EINPROGRESS WSAEINPROGRESS diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h index 098a90588..beba0a83a 100644 --- a/src/os/win32/ngx_files.h +++ b/src/os/win32/ngx_files.h @@ -48,7 +48,7 @@ ngx_int_t ngx_file_append_mode(ngx_fd_t fd); #define ngx_file_append_mode_n "SetFilePointer()" -#define ngx_open_tempfile(name, persistent) \ +#define ngx_open_tempfile(name, persistent, mode) \ CreateFile((const char *) name, \ GENERIC_READ|GENERIC_WRITE, \ FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, \ @@ -74,7 +74,7 @@ ngx_int_t ngx_file_append_mode(ngx_fd_t fd); #define ngx_delete_file_n "DeleteFile()" -#define ngx_rename_file MoveFile +#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); -- cgit