summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2006-04-26 15:21:08 +0000
committerIgor Sysoev <igor@sysoev.ru>2006-04-26 15:21:08 +0000
commitb051817366173cdec403275c81fafc48e26e24d0 (patch)
treee8af9cb65d429b6729dfd1f2d383a047979c4dd1
parentf8987f00a87e6bd256d070cb24db1f7f986cbb81 (diff)
downloadnginx-b051817366173cdec403275c81fafc48e26e24d0.tar.gz
nginx-0.3.43-RELEASE importrelease-0.3.43
*) Bugfix: in the SSI.
-rw-r--r--docs/xml/nginx/changes.xml14
-rw-r--r--src/core/nginx.h2
-rw-r--r--src/core/ngx_buf.c6
-rw-r--r--src/http/modules/ngx_http_ssi_filter_module.c17
-rw-r--r--src/http/ngx_http_core_module.c8
-rw-r--r--src/http/ngx_http_postpone_filter_module.c3
6 files changed, 45 insertions, 5 deletions
diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml
index 1ffac15c3..d13e61582 100644
--- a/docs/xml/nginx/changes.xml
+++ b/docs/xml/nginx/changes.xml
@@ -9,6 +9,20 @@
<title lang="en">nginx changelog</title>
+<changes ver="0.3.43" date="26.04.2006">
+
+<change type="bugfix">
+<para lang="ru">
+× SSI.
+</para>
+<para lang="en">
+in the SSI.
+</para>
+</change>
+
+</changes>
+
+
<changes ver="0.3.42" date="26.04.2006">
<change type="feature">
diff --git a/src/core/nginx.h b/src/core/nginx.h
index d8be2a77e..9a08f130f 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.42"
+#define NGINX_VER "nginx/0.3.43"
#define NGINX_VAR "NGINX"
#define NGX_OLDPID_EXT ".oldbin"
diff --git a/src/core/ngx_buf.c b/src/core/ngx_buf.c
index 31d990315..901c3f540 100644
--- a/src/core/ngx_buf.c
+++ b/src/core/ngx_buf.c
@@ -134,6 +134,12 @@ ngx_chain_add_copy(ngx_pool_t *pool, ngx_chain_t **chain, ngx_chain_t *in)
}
while (in) {
+
+ if (ngx_buf_sync_only(in->buf)) {
+ in = in->next;
+ continue;
+ }
+
cl = ngx_alloc_chain_link(pool);
if (cl == NULL) {
return NGX_ERROR;
diff --git a/src/http/modules/ngx_http_ssi_filter_module.c b/src/http/modules/ngx_http_ssi_filter_module.c
index dba3639df..82ee7ac33 100644
--- a/src/http/modules/ngx_http_ssi_filter_module.c
+++ b/src/http/modules/ngx_http_ssi_filter_module.c
@@ -737,6 +737,8 @@ ngx_http_ssi_output(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx)
#if 1
b = NULL;
for (cl = ctx->out; cl; cl = cl->next) {
+ ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ "ssi out: %p %p", cl->buf, cl->buf->pos);
if (cl->buf == b) {
ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0,
"the same buf was used in ssi");
@@ -1685,6 +1687,9 @@ ngx_http_ssi_echo(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx,
var = params[NGX_HTTP_SSI_ECHO_VAR];
+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ "ssi echo \"%V\"", var);
+
key = 0;
for (i = 0; i < var->len; i++) {
@@ -1798,6 +1803,9 @@ ngx_http_ssi_set(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx,
name = params[NGX_HTTP_SSI_SET_VAR];
value = params[NGX_HTTP_SSI_SET_VALUE];
+ ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ "ssi set \"%V\" \"%V\"", name, value);
+
if (ngx_http_ssi_evaluate_string(r, ctx, value, 0) != NGX_OK) {
return NGX_HTTP_SSI_ERROR;
}
@@ -1861,6 +1869,9 @@ ngx_http_ssi_if(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx,
expr = params[NGX_HTTP_SSI_IF_EXPR];
+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ "ssi if expr=\"%V\"", expr);
+
left.data = expr->data;
last = expr->data + expr->len;
@@ -2025,6 +2036,9 @@ static ngx_int_t
ngx_http_ssi_else(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx,
ngx_str_t **params)
{
+ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ "ssi else");
+
if (ctx->output_chosen) {
ctx->output = 0;
} else {
@@ -2041,6 +2055,9 @@ static ngx_int_t
ngx_http_ssi_endif(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx,
ngx_str_t **params)
{
+ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ "ssi endif");
+
ctx->output = 1;
ctx->output_chosen = 0;
ctx->conditional = 0;
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 487fd2684..6279f3465 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -738,9 +738,11 @@ ngx_http_update_location_config(ngx_http_request_t *r)
clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
}
- r->connection->log->file = clcf->err_log->file;
- if (!(r->connection->log->log_level & NGX_LOG_DEBUG_CONNECTION)) {
- r->connection->log->log_level = clcf->err_log->log_level;
+ if (r == r->main) {
+ r->connection->log->file = clcf->err_log->file;
+ if (!(r->connection->log->log_level & NGX_LOG_DEBUG_CONNECTION)) {
+ r->connection->log->log_level = clcf->err_log->log_level;
+ }
}
if ((ngx_io.flags & NGX_IO_SENDFILE) && clcf->sendfile) {
diff --git a/src/http/ngx_http_postpone_filter_module.c b/src/http/ngx_http_postpone_filter_module.c
index 76deaa4c8..b11774810 100644
--- a/src/http/ngx_http_postpone_filter_module.c
+++ b/src/http/ngx_http_postpone_filter_module.c
@@ -96,7 +96,8 @@ ngx_http_postpone_filter(ngx_http_request_t *r, ngx_chain_t *in)
for (cl = pr->out; cl; cl = cl->next) {
if (cl->buf == b) {
ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0,
- "the same buf was used in postponed");
+ "the same buf was used in postponed %p %p",
+ b, b->pos);
ngx_debug_point();
return NGX_ERROR;
}