Mercurial > hg > nginx-vendor-1-0
comparison src/http/modules/ngx_http_autoindex_module.c @ 78:9db7e0b5b27f NGINX_0_1_39
nginx 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; bug
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; bug 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; bug 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; bug appeared in 0.1.38.
*) Bugfixes in IMAP/POP3 proxy in interaction with a backend at the
login state.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Thu, 14 Jul 2005 00:00:00 +0400 |
parents | da9a3b14312d |
children | 71c46860eb55 |
comparison
equal
deleted
inserted
replaced
77:e6b3de2dc637 | 78:9db7e0b5b27f |
---|---|
313 return ngx_http_autoindex_error(r, &dir, dname.data); | 313 return ngx_http_autoindex_error(r, &dir, dname.data); |
314 } | 314 } |
315 | 315 |
316 entry->name.len = len; | 316 entry->name.len = len; |
317 | 317 |
318 entry->name.data = ngx_palloc(pool, len + 1); | |
319 if (entry->name.data == NULL) { | |
320 return ngx_http_autoindex_error(r, &dir, dname.data); | |
321 } | |
322 | |
323 ngx_cpystrn(entry->name.data, ngx_de_name(&dir), len + 1); | |
324 | |
318 entry->escape = 2 * ngx_escape_uri(NULL, ngx_de_name(&dir), len, | 325 entry->escape = 2 * ngx_escape_uri(NULL, ngx_de_name(&dir), len, |
319 NGX_ESCAPE_HTML); | 326 NGX_ESCAPE_HTML); |
320 | |
321 entry->name.data = ngx_palloc(pool, len + entry->escape + 1); | |
322 if (entry->name.data == NULL) { | |
323 return ngx_http_autoindex_error(r, &dir, dname.data); | |
324 } | |
325 | |
326 ngx_cpystrn(entry->name.data, ngx_de_name(&dir), len + 1); | |
327 | 327 |
328 if (r->utf8) { | 328 if (r->utf8) { |
329 entry->utf_len = ngx_utf_length(&entry->name); | 329 entry->utf_len = ngx_utf_length(&entry->name); |
330 } else { | 330 } else { |
331 entry->utf_len = len; | 331 entry->utf_len = len; |
351 + sizeof(tail) - 1; | 351 + sizeof(tail) - 1; |
352 | 352 |
353 entry = entries.elts; | 353 entry = entries.elts; |
354 for (i = 0; i < entries.nelts; i++) { | 354 for (i = 0; i < entries.nelts; i++) { |
355 len += sizeof("<a href=\"") - 1 | 355 len += sizeof("<a href=\"") - 1 |
356 + entry[i].name.len + entry[i].escape | |
356 + 1 /* 1 is for "/" */ | 357 + 1 /* 1 is for "/" */ |
357 + entry[i].name.len + entry[i].escape | |
358 + sizeof("\">") - 1 | 358 + sizeof("\">") - 1 |
359 + entry[i].name.len - entry[i].utf_len | 359 + entry[i].name.len - entry[i].utf_len |
360 + NGX_HTTP_AUTOINDEX_NAME_LEN + sizeof(">") - 2 | 360 + NGX_HTTP_AUTOINDEX_NAME_LEN + sizeof(">") - 2 |
361 + sizeof("</a>") - 1 | 361 + sizeof("</a>") - 1 |
362 + sizeof(" 28-Sep-1970 12:00 ") - 1 | 362 + sizeof(" 28-Sep-1970 12:00 ") - 1 |
363 + 20 | 363 + 20 /* the file size */ |
364 + 2; | 364 + 2; |
365 } | 365 } |
366 | 366 |
367 b = ngx_create_temp_buf(r->pool, len); | 367 b = ngx_create_temp_buf(r->pool, len); |
368 if (b == NULL) { | 368 if (b == NULL) { |
405 *b->last++ = '"'; | 405 *b->last++ = '"'; |
406 *b->last++ = '>'; | 406 *b->last++ = '>'; |
407 | 407 |
408 len = entry[i].utf_len; | 408 len = entry[i].utf_len; |
409 | 409 |
410 if (len) { | 410 if (entry[i].name.len - len) { |
411 if (len > NGX_HTTP_AUTOINDEX_NAME_LEN) { | 411 if (len > NGX_HTTP_AUTOINDEX_NAME_LEN) { |
412 copy = NGX_HTTP_AUTOINDEX_NAME_LEN - 3 + 1; | 412 copy = NGX_HTTP_AUTOINDEX_NAME_LEN - 3 + 1; |
413 | 413 |
414 } else { | 414 } else { |
415 copy = NGX_HTTP_AUTOINDEX_NAME_LEN + 1; | 415 copy = NGX_HTTP_AUTOINDEX_NAME_LEN + 1; |