Mercurial > hg > nginx-vendor-1-0
diff src/os/unix/ngx_files.h @ 536:0dc162a5f3e8 NGINX_0_8_20
nginx 0.8.20
*) Change: now default SSL ciphers are "HIGH:!ADH:!MD5".
*) Bugfix: the ngx_http_autoindex_module did not show the trailing
slash in links to a directory; the bug had appeared in 0.7.15.
*) Bugfix: nginx did not close a log file set by the --error-log-path
configuration option; the bug had appeared in 0.7.53.
*) Bugfix: nginx did not treat a comma as separator in the
"Cache-Control" backend response header line.
*) Bugfix: nginx/Windows might not create temporary file, a cache file,
or "proxy/fastcgi_store"d file if a worker has no enough access
rights for top level directories.
*) Bugfix: the "Set-Cookie" and "P3P" FastCGI response header lines
were not hidden while caching if no "fastcgi_hide_header" directives
were used with any parameters.
*) Bugfix: nginx counted incorrectly disk cache size.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 14 Oct 2009 00:00:00 +0400 |
parents | f7ec98e3caeb |
children | c04fa65fe604 |
line wrap: on
line diff
--- a/src/os/unix/ngx_files.h +++ b/src/os/unix/ngx_files.h @@ -24,7 +24,6 @@ typedef struct { unsigned type:8; unsigned valid_info:1; - unsigned valid_type:1; } ngx_dir_t; @@ -200,31 +199,31 @@ ngx_int_t ngx_read_dir(ngx_dir_t *dir); #else #define ngx_de_namelen(dir) ngx_strlen((dir)->de->d_name) #endif -#define ngx_de_info(name, dir) stat((const char *) name, &(dir)->info) + +static ngx_inline ngx_int_t +ngx_de_info(u_char *name, ngx_dir_t *dir) +{ + dir->type = 0; + return 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()" #if (NGX_HAVE_D_TYPE) -#if (NGX_LINUX) - -/* XFS on Linux does not set dirent.d_type */ +/* + * some file systems (e.g. XFS on Linux and CD9660 on FreeBSD) + * do not set dirent.d_type + */ #define ngx_de_is_dir(dir) \ (((dir)->type) ? ((dir)->type == DT_DIR) : (S_ISDIR((dir)->info.st_mode))) #define ngx_de_is_file(dir) \ (((dir)->type) ? ((dir)->type == DT_REG) : (S_ISREG((dir)->info.st_mode))) #define ngx_de_is_link(dir) \ - (((dir)->type) ? ((dir)->type == DT_LINK) : (S_ISLNK((dir)->info.st_mode))) - -#else - -#define ngx_de_is_dir(dir) ((dir)->type == DT_DIR) -#define ngx_de_is_file(dir) ((dir)->type == DT_REG) -#define ngx_de_is_link(dir) ((dir)->type == DT_LINK) - -#endif /* NGX_LINUX */ + (((dir)->type) ? ((dir)->type == DT_LNK) : (S_ISLNK((dir)->info.st_mode))) #else