aboutsummaryrefslogtreecommitdiff
path: root/src/os
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2005-03-01 15:20:36 +0000
committerIgor Sysoev <igor@sysoev.ru>2005-03-01 15:20:36 +0000
commit11d753231beaec58401160a5dd6eb51e92e90b86 (patch)
treed8c58d101c7a3b9a0c346c5a87c697941b08c4e1 /src/os
parent2cc93887121b3a755ad594efc27c590d54315374 (diff)
downloadnginx-11d753231beaec58401160a5dd6eb51e92e90b86.tar.gz
nginx-11d753231beaec58401160a5dd6eb51e92e90b86.zip
nginx-0.1.23-RELEASE importrelease-0.1.23
*) Feature: the ngx_http_ssi_filter_module and the ssi, ssi_silent_errors, and ssi_min_file_chunk directives. The 'echo var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands are supported. *) Feature: the %request_time log parameter. *) Feature: if the request has no the "Host" header line, then the "proxy_preserve_host" directive set this header line to the first server name of the "server_name" directive. *) Bugfix: nginx could not be built on platforms different from i386, amd64, sparc, and ppc; the bug had appeared in 0.1.22. *) Bugfix: the ngx_http_autoindex_module now shows the information not about the symlink, but about file or directory it points to. *) Bugfix: the %apache_length parameter logged the negative length of the response header if the no response was transferred to a client.
Diffstat (limited to 'src/os')
-rw-r--r--src/os/unix/ngx_atomic.h1
-rw-r--r--src/os/unix/ngx_files.h13
-rw-r--r--src/os/win32/ngx_atomic.h5
-rw-r--r--src/os/win32/ngx_files.h43
4 files changed, 35 insertions, 27 deletions
diff --git a/src/os/unix/ngx_atomic.h b/src/os/unix/ngx_atomic.h
index d882a0205..d90cf6691 100644
--- a/src/os/unix/ngx_atomic.h
+++ b/src/os/unix/ngx_atomic.h
@@ -388,6 +388,7 @@ ngx_atomic_cmp_set(ngx_atomic_t *lock, ngx_atomic_uint_t old,
typedef int32_t ngx_atomic_int_t;
typedef uint32_t ngx_atomic_uint_t;
typedef volatile ngx_atomic_uint_t ngx_atomic_t;
+#define NGX_ATOMIC_T_LEN sizeof("-2147483648") - 1
#define ngx_atomic_inc(x) ++(*(x))
#define ngx_atomic_dec(x) --(*(x))
diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h
index be9cebe6f..57f53eb0e 100644
--- a/src/os/unix/ngx_files.h
+++ b/src/os/unix/ngx_files.h
@@ -18,7 +18,7 @@
#define ngx_open_file(name, access, create) \
- open((const char *) name, access|create, 0644)
+ open((const char *) name, access|create, 0644)
#define ngx_open_file_n "open()"
#define NGX_FILE_RDONLY O_RDONLY
@@ -46,10 +46,10 @@ ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset);
ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size,
- off_t offset);
+ off_t offset);
ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce,
- off_t offset, ngx_pool_t *pool);
+ off_t offset, ngx_pool_t *pool);
#define ngx_rename_file rename
@@ -86,7 +86,7 @@ ngx_int_t ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir);
#define ngx_read_dir(d) \
- (((d)->de = readdir((d)->dir)) ? NGX_OK : NGX_ERROR)
+ (((d)->de = readdir((d)->dir)) ? NGX_OK : NGX_ERROR)
#define ngx_read_dir_n "readdir()"
@@ -104,10 +104,13 @@ ngx_int_t ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir);
#else
#define ngx_de_namelen(dir) ngx_strlen((dir)->de->d_name)
#endif
-#define ngx_de_info(name, dir) lstat((const char *) name, &(dir)->info)
+#define ngx_de_info(name, dir) stat((const char *) name, &(dir)->info)
#define ngx_de_info_n "stat()"
+#define ngx_de_link_info(name, dir) lstat((const char *) name, &(dir)->info)
+#define ngx_de_link_info_n "lstat()"
#define ngx_de_is_dir(dir) (S_ISDIR((dir)->info.st_mode))
#define ngx_de_is_file(dir) (S_ISREG((dir)->info.st_mode))
+#define ngx_de_is_link(dir) (S_ISLNK((dir)->info.st_mode))
#define ngx_de_size(dir) (dir)->info.st_size
#define ngx_de_mtime(dir) (dir)->info.st_mtime
diff --git a/src/os/win32/ngx_atomic.h b/src/os/win32/ngx_atomic.h
index 7022bfae8..01ef98e97 100644
--- a/src/os/win32/ngx_atomic.h
+++ b/src/os/win32/ngx_atomic.h
@@ -14,8 +14,9 @@
#define NGX_HAVE_ATOMIC_OPS 1
-typedef uint32_t ngx_atomic_int_t;
-typedef volatile ngx_atomic_int_t ngx_atomic_t;
+typedef int32_t ngx_atomic_int_t;
+typedef uint32_t ngx_atomic_uint_t;
+typedef volatile ngx_atomic_uint_t ngx_atomic_t;
#define NGX_ATOMIC_T_LEN sizeof("-2147483648") - 1
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h
index af0892ae0..48b54b38a 100644
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -29,11 +29,11 @@
#define ngx_open_file(name, access, create) \
- CreateFile((const char *) name, access, \
- FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, \
- NULL, create, FILE_FLAG_BACKUP_SEMANTICS, NULL)
+ CreateFile((const char *) name, access, \
+ FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, \
+ NULL, create, FILE_FLAG_BACKUP_SEMANTICS, NULL)
/*
- NULL, OPEN_EXISTING, 0, NULL)
+ NULL, OPEN_EXISTING, 0, NULL)
*/
#define ngx_open_file_n "CreateFile()"
@@ -49,14 +49,14 @@ ngx_int_t ngx_file_append_mode(ngx_fd_t fd);
#define ngx_open_tempfile(name, persistent) \
- CreateFile((const char *) name, \
- GENERIC_READ|GENERIC_WRITE, \
- FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, \
- NULL, \
- CREATE_NEW, \
- persistent ? 0: \
- FILE_ATTRIBUTE_TEMPORARY|FILE_FLAG_DELETE_ON_CLOSE, \
- NULL);
+ CreateFile((const char *) name, \
+ GENERIC_READ|GENERIC_WRITE, \
+ FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, \
+ NULL, \
+ CREATE_NEW, \
+ persistent ? 0: \
+ FILE_ATTRIBUTE_TEMPORARY|FILE_FLAG_DELETE_ON_CLOSE, \
+ NULL);
#define ngx_open_tempfile_n "CreateFile()"
@@ -72,7 +72,7 @@ ngx_int_t ngx_file_append_mode(ngx_fd_t fd);
#define ngx_rename_file MoveFile
#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);
+ ngx_pool_t *pool);
ngx_int_t ngx_file_info(u_char *filename, ngx_file_info_t *fi);
@@ -88,7 +88,7 @@ ngx_int_t ngx_file_info(u_char *filename, ngx_file_info_t *fi);
#define ngx_file_size(fi) \
- (((off_t) (fi)->nFileSizeHigh << 32) | (fi)->nFileSizeLow)
+ (((off_t) (fi)->nFileSizeHigh << 32) | (fi)->nFileSizeLow)
#define ngx_file_uniq(fi) (*(ngx_file_uniq_t *) &(fi)->nFileIndexHigh)
@@ -134,17 +134,20 @@ ngx_int_t ngx_read_dir(ngx_dir_t *dir);
#define ngx_de_namelen(dir) ngx_strlen((dir)->fd.cFileName)
#define ngx_de_info(name, dir) NGX_OK
#define ngx_de_info_n "dummy()"
+#define ngx_de_link_info(name, dir) NGX_OK
+#define ngx_de_link_info_n "dummy()"
#define ngx_de_is_dir(dir) \
- ((dir)->fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+ ((dir)->fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
#define ngx_de_is_file(dir) \
- !((dir)->fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+ !((dir)->fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+#define ngx_de_is_link(dir) 0
#define ngx_de_size(dir) \
- (((off_t) (dir)->fd.nFileSizeHigh << 32) | (dir)->fd.nFileSizeLow)
+ (((off_t) (dir)->fd.nFileSizeHigh << 32) | (dir)->fd.nFileSizeLow)
/* 116444736000000000 is commented in src/os/win32/ngx_time.c */
#define ngx_de_mtime(dir) \
- (time_t) (((((unsigned __int64) \
+ (time_t) (((((unsigned __int64) \
(dir)->fd.ftLastWriteTime.dwHighDateTime << 32) \
| (dir)->fd.ftLastWriteTime.dwLowDateTime) \
- 116444736000000000) / 10000000)
@@ -155,10 +158,10 @@ ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset);
#define ngx_read_file_n "ReadFile()"
ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size,
- off_t offset);
+ off_t offset);
ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce,
- off_t offset, ngx_pool_t *pool);
+ off_t offset, ngx_pool_t *pool);
#endif /* _NGX_FILES_H_INCLUDED_ */