comparison src/http/modules/ngx_http_log_module.c @ 676:bfa81a0490a2 NGINX_1_3_1

nginx 1.3.1 *) Security: now nginx/Windows ignores trailing dot in URI path component, and does not allow URIs with ":$" in it. Thanks to Vladimir Kochetkov, Positive Research Center. *) Feature: the "proxy_pass", "fastcgi_pass", "scgi_pass", "uwsgi_pass" directives, and the "server" directive inside the "upstream" block, now support IPv6 addresses. *) Feature: the "resolver" directive now support IPv6 addresses and an optional port specification. *) Feature: the "least_conn" directive inside the "upstream" block. *) Feature: it is now possible to specify a weight for servers while using the "ip_hash" directive. *) Bugfix: a segmentation fault might occur in a worker process if the "image_filter" directive was used; the bug had appeared in 1.3.0. *) Bugfix: nginx could not be built with ngx_cpp_test_module; the bug had appeared in 1.1.12. *) Bugfix: access to variables from SSI and embedded perl module might not work after reconfiguration. Thanks to Yichun Zhang. *) Bugfix: in the ngx_http_xslt_filter_module. Thanks to Kuramoto Eiji. *) Bugfix: memory leak if $geoip_org variable was used. Thanks to Denis F. Latypoff. *) Bugfix: in the "proxy_cookie_domain" and "proxy_cookie_path" directives.
author Igor Sysoev <http://sysoev.ru>
date Tue, 05 Jun 2012 00:00:00 +0400
parents 9fbf3ad94cbf
children 981b4c44593b
comparison
equal deleted inserted replaced
675:7052a9379344 676:bfa81a0490a2
203 { ngx_string("time_iso8601"), sizeof("1970-09-28T12:00:00+06:00") - 1, 203 { ngx_string("time_iso8601"), sizeof("1970-09-28T12:00:00+06:00") - 1,
204 ngx_http_log_iso8601 }, 204 ngx_http_log_iso8601 },
205 { ngx_string("msec"), NGX_TIME_T_LEN + 4, ngx_http_log_msec }, 205 { ngx_string("msec"), NGX_TIME_T_LEN + 4, ngx_http_log_msec },
206 { ngx_string("request_time"), NGX_TIME_T_LEN + 4, 206 { ngx_string("request_time"), NGX_TIME_T_LEN + 4,
207 ngx_http_log_request_time }, 207 ngx_http_log_request_time },
208 { ngx_string("status"), 3, ngx_http_log_status }, 208 { ngx_string("status"), NGX_INT_T_LEN, ngx_http_log_status },
209 { ngx_string("bytes_sent"), NGX_OFF_T_LEN, ngx_http_log_bytes_sent }, 209 { ngx_string("bytes_sent"), NGX_OFF_T_LEN, ngx_http_log_bytes_sent },
210 { ngx_string("body_bytes_sent"), NGX_OFF_T_LEN, 210 { ngx_string("body_bytes_sent"), NGX_OFF_T_LEN,
211 ngx_http_log_body_bytes_sent }, 211 ngx_http_log_body_bytes_sent },
212 { ngx_string("apache_bytes_sent"), NGX_OFF_T_LEN, 212 { ngx_string("apache_bytes_sent"), NGX_OFF_T_LEN,
213 ngx_http_log_body_bytes_sent }, 213 ngx_http_log_body_bytes_sent },
591 591
592 } else { 592 } else {
593 status = 0; 593 status = 0;
594 } 594 }
595 595
596 return ngx_sprintf(buf, "%ui", status); 596 return ngx_sprintf(buf, "%03ui", status);
597 } 597 }
598 598
599 599
600 static u_char * 600 static u_char *
601 ngx_http_log_bytes_sent(ngx_http_request_t *r, u_char *buf, 601 ngx_http_log_bytes_sent(ngx_http_request_t *r, u_char *buf,