Mercurial > hg > nginx-mail
comparison src/http/modules/ngx_http_ssi_filter_module.c @ 192:af7f2341ecc5 NGINX_0_3_43
nginx 0.3.43
*) Bugfix: in the SSI.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 26 Apr 2006 00:00:00 +0400 |
parents | 3689cd4e3228 |
children | 003bd800ec2a |
comparison
equal
deleted
inserted
replaced
191:219b4d22ddd9 | 192:af7f2341ecc5 |
---|---|
735 ngx_chain_t *cl; | 735 ngx_chain_t *cl; |
736 | 736 |
737 #if 1 | 737 #if 1 |
738 b = NULL; | 738 b = NULL; |
739 for (cl = ctx->out; cl; cl = cl->next) { | 739 for (cl = ctx->out; cl; cl = cl->next) { |
740 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | |
741 "ssi out: %p %p", cl->buf, cl->buf->pos); | |
740 if (cl->buf == b) { | 742 if (cl->buf == b) { |
741 ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0, | 743 ngx_log_error(NGX_LOG_ALERT, r->connection->log, 0, |
742 "the same buf was used in ssi"); | 744 "the same buf was used in ssi"); |
743 ngx_debug_point(); | 745 ngx_debug_point(); |
744 return NGX_ERROR; | 746 return NGX_ERROR; |
1683 ngx_chain_t *cl; | 1685 ngx_chain_t *cl; |
1684 ngx_http_variable_value_t *vv; | 1686 ngx_http_variable_value_t *vv; |
1685 | 1687 |
1686 var = params[NGX_HTTP_SSI_ECHO_VAR]; | 1688 var = params[NGX_HTTP_SSI_ECHO_VAR]; |
1687 | 1689 |
1690 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | |
1691 "ssi echo \"%V\"", var); | |
1692 | |
1688 key = 0; | 1693 key = 0; |
1689 | 1694 |
1690 for (i = 0; i < var->len; i++) { | 1695 for (i = 0; i < var->len; i++) { |
1691 var->data[i] = ngx_tolower(var->data[i]); | 1696 var->data[i] = ngx_tolower(var->data[i]); |
1692 key = ngx_hash(key, var->data[i]); | 1697 key = ngx_hash(key, var->data[i]); |
1795 } | 1800 } |
1796 } | 1801 } |
1797 | 1802 |
1798 name = params[NGX_HTTP_SSI_SET_VAR]; | 1803 name = params[NGX_HTTP_SSI_SET_VAR]; |
1799 value = params[NGX_HTTP_SSI_SET_VALUE]; | 1804 value = params[NGX_HTTP_SSI_SET_VALUE]; |
1805 | |
1806 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | |
1807 "ssi set \"%V\" \"%V\"", name, value); | |
1800 | 1808 |
1801 if (ngx_http_ssi_evaluate_string(r, ctx, value, 0) != NGX_OK) { | 1809 if (ngx_http_ssi_evaluate_string(r, ctx, value, 0) != NGX_OK) { |
1802 return NGX_HTTP_SSI_ERROR; | 1810 return NGX_HTTP_SSI_ERROR; |
1803 } | 1811 } |
1804 | 1812 |
1859 return NGX_OK; | 1867 return NGX_OK; |
1860 } | 1868 } |
1861 | 1869 |
1862 expr = params[NGX_HTTP_SSI_IF_EXPR]; | 1870 expr = params[NGX_HTTP_SSI_IF_EXPR]; |
1863 | 1871 |
1872 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | |
1873 "ssi if expr=\"%V\"", expr); | |
1874 | |
1864 left.data = expr->data; | 1875 left.data = expr->data; |
1865 last = expr->data + expr->len; | 1876 last = expr->data + expr->len; |
1866 | 1877 |
1867 for (p = left.data; p < last; p++) { | 1878 for (p = left.data; p < last; p++) { |
1868 if (*p >= 'A' && *p <= 'Z') { | 1879 if (*p >= 'A' && *p <= 'Z') { |
2023 | 2034 |
2024 static ngx_int_t | 2035 static ngx_int_t |
2025 ngx_http_ssi_else(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx, | 2036 ngx_http_ssi_else(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx, |
2026 ngx_str_t **params) | 2037 ngx_str_t **params) |
2027 { | 2038 { |
2039 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | |
2040 "ssi else"); | |
2041 | |
2028 if (ctx->output_chosen) { | 2042 if (ctx->output_chosen) { |
2029 ctx->output = 0; | 2043 ctx->output = 0; |
2030 } else { | 2044 } else { |
2031 ctx->output = 1; | 2045 ctx->output = 1; |
2032 } | 2046 } |
2039 | 2053 |
2040 static ngx_int_t | 2054 static ngx_int_t |
2041 ngx_http_ssi_endif(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx, | 2055 ngx_http_ssi_endif(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx, |
2042 ngx_str_t **params) | 2056 ngx_str_t **params) |
2043 { | 2057 { |
2058 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | |
2059 "ssi endif"); | |
2060 | |
2044 ctx->output = 1; | 2061 ctx->output = 1; |
2045 ctx->output_chosen = 0; | 2062 ctx->output_chosen = 0; |
2046 ctx->conditional = 0; | 2063 ctx->conditional = 0; |
2047 | 2064 |
2048 return NGX_OK; | 2065 return NGX_OK; |