Mercurial > hg > nginx-vendor-1-0
comparison src/http/modules/ngx_http_log_module.c @ 638:692f4d4d7f10 NGINX_1_0_9
nginx 1.0.9
*) Change: now the 0x7F-0x1F characters are escaped as \xXX in an
access_log.
*) Change: now SIGWINCH signal works only in daemon mode.
*) Feature: "proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support
the following additional values: X-Accel-Limit-Rate,
X-Accel-Buffering, X-Accel-Charset.
*) Feature: decrease of memory consumption if SSL is used.
*) Feature: accept filters are now supported on NetBSD.
*) Feature: the "uwsgi_buffering" and "scgi_buffering" directives.
Thanks to Peter Smit.
*) Bugfix: a segmentation fault occurred on start or while
reconfiguration if the "ssl" directive was used at http level and
there was no "ssl_certificate" defined.
*) Bugfix: some UTF-8 characters were processed incorrectly.
Thanks to Alexey Kuts.
*) Bugfix: the ngx_http_rewrite_module directives specified at "server"
level were executed twice if no matching locations were defined.
*) Bugfix: a socket leak might occurred if "aio sendfile" was used.
*) Bugfix: connections with fast clients might be closed after
send_timeout if file AIO was used.
*) Bugfix: in the ngx_http_autoindex_module.
*) Bugfix: the module ngx_http_mp4_module did not support seeking on
32-bit platforms.
*) Bugfix: non-cacheable responses might be cached if
"proxy_cache_bypass" directive was used.
Thanks to John Ferlito.
*) Bugfix: cached responses with an empty body were returned
incorrectly; the bug had appeared in 0.8.31.
*) Bugfix: 201 responses of the ngx_http_dav_module were incorrect; the
bug had appeared in 0.8.32.
*) Bugfix: in the "return" directive.
*) Bugfix: the "ssl_verify_client", "ssl_verify_depth", and
"ssl_prefer_server_ciphers" directives might work incorrectly if SNI
was used.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Tue, 01 Nov 2011 00:00:00 +0400 |
parents | 8214eaef3530 |
children | ad25218fd14b |
comparison
equal
deleted
inserted
replaced
637:ea7441793bba | 638:692f4d4d7f10 |
---|---|
688 | 688 |
689 /* _^]\ [ZYX WVUT SRQP ONML KJIH GFED CBA@ */ | 689 /* _^]\ [ZYX WVUT SRQP ONML KJIH GFED CBA@ */ |
690 0x10000000, /* 0001 0000 0000 0000 0000 0000 0000 0000 */ | 690 0x10000000, /* 0001 0000 0000 0000 0000 0000 0000 0000 */ |
691 | 691 |
692 /* ~}| {zyx wvut srqp onml kjih gfed cba` */ | 692 /* ~}| {zyx wvut srqp onml kjih gfed cba` */ |
693 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ | 693 0x80000000, /* 1000 0000 0000 0000 0000 0000 0000 0000 */ |
694 | 694 |
695 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ | 695 0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */ |
696 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ | 696 0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */ |
697 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ | 697 0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */ |
698 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ | 698 0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */ |
699 }; | 699 }; |
700 | 700 |
701 | 701 |
702 if (dst == NULL) { | 702 if (dst == NULL) { |
703 | 703 |
958 return NGX_CONF_ERROR; | 958 return NGX_CONF_ERROR; |
959 } | 959 } |
960 | 960 |
961 if (log->script) { | 961 if (log->script) { |
962 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | 962 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
963 "buffered logs can not have variables in name"); | 963 "buffered logs cannot have variables in name"); |
964 return NGX_CONF_ERROR; | 964 return NGX_CONF_ERROR; |
965 } | 965 } |
966 | 966 |
967 name.len = value[3].len - 7; | 967 name.len = value[3].len - 7; |
968 name.data = value[3].data + 7; | 968 name.data = value[3].data + 7; |
1053 | 1053 |
1054 value = args->elts; | 1054 value = args->elts; |
1055 | 1055 |
1056 for ( /* void */ ; s < args->nelts; s++) { | 1056 for ( /* void */ ; s < args->nelts; s++) { |
1057 | 1057 |
1058 for (i = 0; i < value[s].len; i++) { | |
1059 if (value[s].data[i] != '%') { | |
1060 continue; | |
1061 } | |
1062 | |
1063 ch = value[s].data[i + 1]; | |
1064 | |
1065 if ((ch >= 'A' && ch <= 'Z') | |
1066 || (ch >= 'a' && ch <= 'z') | |
1067 || ch == '{') | |
1068 { | |
1069 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | |
1070 "the parameters in the \"%%name\" form are not supported, " | |
1071 "use the \"$variable\" instead"); | |
1072 | |
1073 return NGX_CONF_ERROR; | |
1074 } | |
1075 } | |
1076 | |
1077 i = 0; | 1058 i = 0; |
1078 | 1059 |
1079 while (i < value[s].len) { | 1060 while (i < value[s].len) { |
1080 | 1061 |
1081 op = ngx_array_push(ops); | 1062 op = ngx_array_push(ops); |