diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml index 225b0b02d..b641d3973 100644 --- a/docs/xml/nginx/changes.xml +++ b/docs/xml/nginx/changes.xml @@ -9,6 +9,32 @@ nginx changelog + + + + +в директиве set. + + +in the "set" directive. + + + + + +при включении в ssi двух и более подзапросов, обрабатываемых через FastCGI, +вместо вывода второго и остальных подзапросов в ответ включался вывод +первого подзапроса. + + +if two or more FastCGI subrequests was in SSI, then first subrequest output +was included instead of second and following subrequests. + + + + + + diff --git a/src/core/nginx.h b/src/core/nginx.h index c376b92f2..cd1917fec 100644 --- a/src/core/nginx.h +++ b/src/core/nginx.h @@ -8,7 +8,7 @@ #define _NGINX_H_INCLUDED_ -#define NGINX_VER "nginx/0.3.48" +#define NGINX_VER "nginx/0.3.49" #define NGINX_VAR "NGINX" #define NGX_OLDPID_EXT ".oldbin" diff --git a/src/http/modules/ngx_http_fastcgi_module.c b/src/http/modules/ngx_http_fastcgi_module.c index 82388a6a8..8663f881e 100644 --- a/src/http/modules/ngx_http_fastcgi_module.c +++ b/src/http/modules/ngx_http_fastcgi_module.c @@ -1476,7 +1476,7 @@ ngx_http_fastcgi_add_variables(ngx_conf_t *cf) ngx_http_variable_t *var; var = ngx_http_add_variable(cf, &ngx_http_fastcgi_script_name, - NGX_HTTP_VAR_NOHASH); + NGX_HTTP_VAR_NOHASH|NGX_HTTP_VAR_NOCACHABLE); if (var == NULL) { return NGX_ERROR; } diff --git a/src/http/ngx_http_script.c b/src/http/ngx_http_script.c index 94793d7e7..83c199884 100644 --- a/src/http/ngx_http_script.c +++ b/src/http/ngx_http_script.c @@ -501,7 +501,7 @@ ngx_http_script_copy_capture_len_code(ngx_http_script_engine_t *e) && (e->request->quoted_uri || e->request->plus_in_uri)) { return e->captures[code->n + 1] - e->captures[code->n] - + ngx_escape_uri(NULL, + + 2 * ngx_escape_uri(NULL, &e->line.data[e->captures[code->n]], e->captures[code->n + 1] - e->captures[code->n], NGX_ESCAPE_ARGS); @@ -1016,9 +1016,11 @@ ngx_http_script_complex_value_code(ngx_http_script_engine_t *e) ngx_memzero(&le, sizeof(ngx_http_script_engine_t)); le.ip = code->lengths->elts; + le.line = e->line; le.request = e->request; le.captures = e->captures; le.ncaptures = e->ncaptures; + le.quote = e->quote; for (len = 0; *(uintptr_t *) le.ip; len += lcode(&le)) { lcode = *(ngx_http_script_len_code_pt *) le.ip;