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("&gt;") - 2 360 + NGX_HTTP_AUTOINDEX_NAME_LEN + sizeof("&gt;") - 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;