Mercurial > hg > nginx
changeset 5333:e8bca8397625
Autoindex: improved ngx_de_info() error handling.
This allows to build a directory listing whenever a loop exists in symbolic
link resolution of the path argument.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 30 Jul 2013 11:43:21 +0400 |
parents | 1a9700ef9725 |
children | 03ff14058272 |
files | src/http/modules/ngx_http_autoindex_module.c src/os/unix/ngx_errno.h src/os/win32/ngx_errno.h |
diffstat | 3 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_autoindex_module.c Tue Jul 30 11:43:21 2013 +0400 +++ b/src/http/modules/ngx_http_autoindex_module.c Tue Jul 30 11:43:21 2013 +0400 @@ -304,7 +304,7 @@ if (ngx_de_info(filename, &dir) == NGX_FILE_ERROR) { err = ngx_errno; - if (err != NGX_ENOENT) { + if (err != NGX_ENOENT && err != NGX_ELOOP) { ngx_log_error(NGX_LOG_CRIT, r->connection->log, err, ngx_de_info_n " \"%s\" failed", filename);
--- a/src/os/unix/ngx_errno.h Tue Jul 30 11:43:21 2013 +0400 +++ b/src/os/unix/ngx_errno.h Tue Jul 30 11:43:21 2013 +0400 @@ -49,10 +49,10 @@ #define NGX_ECANCELED ECANCELED #define NGX_EILSEQ EILSEQ #define NGX_ENOMOREFILES 0 +#define NGX_ELOOP ELOOP #if (NGX_HAVE_OPENAT) #define NGX_EMLINK EMLINK -#define NGX_ELOOP ELOOP #endif #if (__hpux__)
--- a/src/os/win32/ngx_errno.h Tue Jul 30 11:43:21 2013 +0400 +++ b/src/os/win32/ngx_errno.h Tue Jul 30 11:43:21 2013 +0400 @@ -51,6 +51,7 @@ #define NGX_EHOSTUNREACH WSAEHOSTUNREACH #define NGX_ENOMOREFILES ERROR_NO_MORE_FILES #define NGX_EILSEQ ERROR_NO_UNICODE_TRANSLATION +#define NGX_ELOOP 0 #define NGX_EALREADY WSAEALREADY #define NGX_EINVAL WSAEINVAL