comparison src/http/modules/ngx_http_autoindex_module.c @ 112:408f195b3482 NGINX_0_3_3

nginx 0.3.3 *) Change: the "bl" and "af" parameters of the "listen" directive was renamed to the "backlog" and "accept_filter". *) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen" directive. *) Change: the "$msec" log parameter does not require now the additional the gettimeofday() system call. *) Feature: the -t switch now tests the "listen" directives. *) Bugfix: if the invalid address was specified in the "listen" directive, then after the -HUP signal nginx left an open socket in the CLOSED state. *) Bugfix: the mime type may be incorrectly set to default value for index file with variable in the name; bug appeared in 0.3.0. *) Feature: the "timer_resolution" directive. *) Feature: the millisecond "$upstream_response_time" log parameter. *) Bugfix: a temporary file with client request body now is removed just after the response header was transferred to a client. *) Bugfix: OpenSSL 0.9.6 compatibility. *) Bugfix: the SSL certificate and key file paths could not be relative. *) Bugfix: the "ssl_prefer_server_ciphers" directive did not work in the ngx_imap_ssl_module. *) Bugfix: the "ssl_protocols" directive allowed to specify the single protocol only.
author Igor Sysoev <http://sysoev.ru>
date Wed, 19 Oct 2005 00:00:00 +0400
parents 45f7329b4bd0
children df17fbafec8f
comparison
equal deleted inserted replaced
111:a175b609c76d 112:408f195b3482
142 ngx_int_t rc, size; 142 ngx_int_t rc, size;
143 ngx_str_t path; 143 ngx_str_t path;
144 ngx_dir_t dir; 144 ngx_dir_t dir;
145 ngx_uint_t i, level; 145 ngx_uint_t i, level;
146 ngx_pool_t *pool; 146 ngx_pool_t *pool;
147 ngx_time_t *tp;
147 ngx_chain_t out; 148 ngx_chain_t out;
148 ngx_array_t entries; 149 ngx_array_t entries;
149 ngx_http_autoindex_entry_t *entry; 150 ngx_http_autoindex_entry_t *entry;
150 ngx_http_autoindex_loc_conf_t *alcf; 151 ngx_http_autoindex_loc_conf_t *alcf;
151 152
370 b->last = ngx_cpymem(b->last, "</h1>", sizeof("</h1>") - 1); 371 b->last = ngx_cpymem(b->last, "</h1>", sizeof("</h1>") - 1);
371 372
372 b->last = ngx_cpymem(b->last, "<hr><pre><a href=\"../\">../</a>" CRLF, 373 b->last = ngx_cpymem(b->last, "<hr><pre><a href=\"../\">../</a>" CRLF,
373 sizeof("<hr><pre><a href=\"../\">../</a>" CRLF) - 1); 374 sizeof("<hr><pre><a href=\"../\">../</a>" CRLF) - 1);
374 375
376 tp = ngx_timeofday();
377
375 for (i = 0; i < entries.nelts; i++) { 378 for (i = 0; i < entries.nelts; i++) {
376 b->last = ngx_cpymem(b->last, "<a href=\"", sizeof("<a href=\"") - 1); 379 b->last = ngx_cpymem(b->last, "<a href=\"", sizeof("<a href=\"") - 1);
377 380
378 if (entry[i].escape) { 381 if (entry[i].escape) {
379 ngx_escape_uri(b->last, entry[i].name.data, entry[i].name.len, 382 ngx_escape_uri(b->last, entry[i].name.data, entry[i].name.len,
426 b->last += NGX_HTTP_AUTOINDEX_NAME_LEN - len; 429 b->last += NGX_HTTP_AUTOINDEX_NAME_LEN - len;
427 } 430 }
428 431
429 *b->last++ = ' '; 432 *b->last++ = ' ';
430 433
431 ngx_gmtime(entry[i].mtime + ngx_gmtoff * 60 * alcf->localtime, &tm); 434 ngx_gmtime(entry[i].mtime + tp->gmtoff * 60 * alcf->localtime, &tm);
432 435
433 b->last = ngx_sprintf(b->last, "%02d-%s-%d %02d:%02d ", 436 b->last = ngx_sprintf(b->last, "%02d-%s-%d %02d:%02d ",
434 tm.ngx_tm_mday, 437 tm.ngx_tm_mday,
435 months[tm.ngx_tm_mon - 1], 438 months[tm.ngx_tm_mon - 1],
436 tm.ngx_tm_year, 439 tm.ngx_tm_year,