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);