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;