Mercurial > hg > nginx
diff src/http/modules/ngx_http_autoindex_handler.c @ 497:d7c90bb5ce83 release-0.1.23
nginx-0.1.23-RELEASE import
*) 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.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 01 Mar 2005 15:20:36 +0000 |
parents | 45a460f82aec |
children | 64d9afb209da |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_autoindex_handler.c Thu Feb 24 12:29:09 2005 +0000 +++ b/src/http/modules/ngx_http_autoindex_handler.c Tue Mar 01 15:20:36 2005 +0000 @@ -241,7 +241,7 @@ if (len == 2 && ngx_de_name(&dir)[0] == '.' - && ngx_de_name(&dir)[0] == '.') + && ngx_de_name(&dir)[1] == '.') { continue; } @@ -263,9 +263,20 @@ ngx_cpystrn(last, ngx_de_name(&dir), len + 1); if (ngx_de_info(fname.data, &dir) == NGX_FILE_ERROR) { - ngx_log_error(NGX_LOG_CRIT, r->connection->log, ngx_errno, - ngx_de_info_n " \"%s\" failed", fname.data); - return ngx_http_autoindex_error(r, &dir, dname.data); + err = ngx_errno; + + if (err != NGX_ENOENT) { + ngx_log_error(NGX_LOG_CRIT, r->connection->log, err, + ngx_de_info_n " \"%s\" failed", fname.data); + return ngx_http_autoindex_error(r, &dir, dname.data); + } + + if (ngx_de_link_info(fname.data, &dir) == NGX_FILE_ERROR) { + ngx_log_error(NGX_LOG_CRIT, r->connection->log, ngx_errno, + ngx_de_link_info_n " \"%s\" failed", + fname.data); + return ngx_http_autoindex_error(r, &dir, dname.data); + } } }