aboutsummaryrefslogtreecommitdiff
path: root/src/http/modules/ngx_http_autoindex_module.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2005-07-14 12:51:53 +0000
committerIgor Sysoev <igor@sysoev.ru>2005-07-14 12:51:53 +0000
commit187b7d95589f674ce3262b05c311554bcd8f847c (patch)
tree0ac48dad3e3204d12837c2562d99020eafe29038 /src/http/modules/ngx_http_autoindex_module.c
parentb3ad9f30d960bd1dcc3d8fd5c9963bf3e93bb7b3 (diff)
downloadnginx-187b7d95589f674ce3262b05c311554bcd8f847c.tar.gz
nginx-187b7d95589f674ce3262b05c311554bcd8f847c.zip
nginx-0.1.39-RELEASE importrelease-0.1.39
*) The changes in the ngx_http_charset_module: the "default_charset" directive was canceled; the "charset" directive sets the response charset; the "source_charset" directive sets the source charset only. *) Bugfix: the backend "WWW-Authenticate" header line did not transferred while the 401 response code redirecting. *) Bugfix: the ngx_http_proxy_module and ngx_http_fastcgi_module may close a connection before anything was transferred to a client; the bug had appeared in 0.1.38. *) Workaround: the Linux glibc crypt_r() initialization bug. *) Bugfix: the ngx_http_ssi_module did not support the relative URI in the "include virtual" command. *) Bugfix: if the backend response had the "Location" header line and nginx should not rewrite this line, then the 500 code response body was transferred; the bug had appeared in 0.1.29. *) Bugfix: some directives of the ngx_http_proxy_module and ngx_http_fastcgi_module were not inherited from the server to the location level; the bug had appeared in 0.1.29. *) Bugfix: the ngx_http_ssl_module did not support the certificate chain. *) Bugfix: the ngx_http_autoindex_module did not show correctly the long file names; the bug had appeared in 0.1.38. *) Bugfixes in IMAP/POP3 proxy in interaction with a backend at the login state.
Diffstat (limited to 'src/http/modules/ngx_http_autoindex_module.c')
-rw-r--r--src/http/modules/ngx_http_autoindex_module.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/http/modules/ngx_http_autoindex_module.c b/src/http/modules/ngx_http_autoindex_module.c
index d12834083..a7246b04d 100644
--- a/src/http/modules/ngx_http_autoindex_module.c
+++ b/src/http/modules/ngx_http_autoindex_module.c
@@ -315,16 +315,16 @@ ngx_http_autoindex_handler(ngx_http_request_t *r)
entry->name.len = len;
- entry->escape = 2 * ngx_escape_uri(NULL, ngx_de_name(&dir), len,
- NGX_ESCAPE_HTML);
-
- entry->name.data = ngx_palloc(pool, len + entry->escape + 1);
+ entry->name.data = ngx_palloc(pool, len + 1);
if (entry->name.data == NULL) {
return ngx_http_autoindex_error(r, &dir, dname.data);
}
ngx_cpystrn(entry->name.data, ngx_de_name(&dir), len + 1);
+ entry->escape = 2 * ngx_escape_uri(NULL, ngx_de_name(&dir), len,
+ NGX_ESCAPE_HTML);
+
if (r->utf8) {
entry->utf_len = ngx_utf_length(&entry->name);
} else {
@@ -353,14 +353,14 @@ ngx_http_autoindex_handler(ngx_http_request_t *r)
entry = entries.elts;
for (i = 0; i < entries.nelts; i++) {
len += sizeof("<a href=\"") - 1
- + 1 /* 1 is for "/" */
+ entry[i].name.len + entry[i].escape
+ + 1 /* 1 is for "/" */
+ sizeof("\">") - 1
+ entry[i].name.len - entry[i].utf_len
+ NGX_HTTP_AUTOINDEX_NAME_LEN + sizeof("&gt;") - 2
+ sizeof("</a>") - 1
+ sizeof(" 28-Sep-1970 12:00 ") - 1
- + 20
+ + 20 /* the file size */
+ 2;
}
@@ -407,7 +407,7 @@ ngx_http_autoindex_handler(ngx_http_request_t *r)
len = entry[i].utf_len;
- if (len) {
+ if (entry[i].name.len - len) {
if (len > NGX_HTTP_AUTOINDEX_NAME_LEN) {
copy = NGX_HTTP_AUTOINDEX_NAME_LEN - 3 + 1;