]> git.kaiwu.me - nginx.git/commitdiff
nginx-0.3.43-RELEASE import release-0.3.43
authorIgor Sysoev <igor@sysoev.ru>
Wed, 26 Apr 2006 15:21:08 +0000 (15:21 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Wed, 26 Apr 2006 15:21:08 +0000 (15:21 +0000)
    *) Bugfix: in the SSI.

docs/xml/nginx/changes.xml
src/core/nginx.h
src/core/ngx_buf.c
src/http/modules/ngx_http_ssi_filter_module.c
src/http/ngx_http_core_module.c
src/http/ngx_http_postpone_filter_module.c

index 1ffac15c316b8e2203631edc75a386d0729062ee..d13e615828b383970c3471929b157152169e64cd 100644 (file)
@@ -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">
index d8be2a77e60a6d0b826cdedfe8c31932c011aeec..9a08f130ff01755397b926ff59f95955d5a6b360 100644 (file)
@@ -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"
index 31d990315ac115d51a2bae79e2ba084b0685b4d9..901c3f540bbfb9a06bbfa59c7c5d0ade21f123a5 100644 (file)
@@ -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;
index dba3639df7bb102d1dddfc13af11640f56baab7e..82ee7ac3307d37ce8ad95753932181bcead2e9d8 100644 (file)
@@ -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;
index 487fd2684835e48decb0c0a46df18cfec4056f52..6279f346592202c3700088e461919da809aed154 100644 (file)
@@ -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) {
index 76deaa4c8f83bdf10a92370a2b9ddc9f6382aab6..b117748100d1d36fa75e0c1eed27dac0b18d0da9 100644 (file)
@@ -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;
             }