Mercurial > hg > nginx-quic
comparison src/http/modules/ngx_http_ssi_filter_module.c @ 3586:2d21e02fc01d stable-0.7
merge r3464, r3500, r3501:
*) make $request_method non-cacheable
*) make $arg_ variables non-cacheable
*) change processing variables accessed by SSI and perl module:
*) the indexed variables are always flushed
*) never show warning for not found variables
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 07 Jun 2010 10:26:50 +0000 |
parents | 17995396463d |
children | 818d2603f52a |
comparison
equal
deleted
inserted
replaced
3585:3031b5931864 | 3586:2d21e02fc01d |
---|---|
12 | 12 |
13 #define NGX_HTTP_SSI_DATE_LEN 2048 | 13 #define NGX_HTTP_SSI_DATE_LEN 2048 |
14 | 14 |
15 #define NGX_HTTP_SSI_ADD_PREFIX 1 | 15 #define NGX_HTTP_SSI_ADD_PREFIX 1 |
16 #define NGX_HTTP_SSI_ADD_ZERO 2 | 16 #define NGX_HTTP_SSI_ADD_ZERO 2 |
17 #define NGX_HTTP_SSI_EXPR_TEST 4 | |
18 | 17 |
19 | 18 |
20 typedef struct { | 19 typedef struct { |
21 ngx_flag_t enable; | 20 ngx_flag_t enable; |
22 ngx_flag_t silent_errors; | 21 ngx_flag_t silent_errors; |
1699 key = ngx_hash_strlow(var.data, var.data, var.len); | 1698 key = ngx_hash_strlow(var.data, var.data, var.len); |
1700 | 1699 |
1701 val = ngx_http_ssi_get_variable(r, &var, key); | 1700 val = ngx_http_ssi_get_variable(r, &var, key); |
1702 | 1701 |
1703 if (val == NULL) { | 1702 if (val == NULL) { |
1704 vv = ngx_http_get_variable(r, &var, key, | 1703 vv = ngx_http_get_variable(r, &var, key); |
1705 flags & NGX_HTTP_SSI_EXPR_TEST); | |
1706 if (vv == NULL) { | 1704 if (vv == NULL) { |
1707 return NGX_ERROR; | 1705 return NGX_ERROR; |
1708 } | 1706 } |
1709 | 1707 |
1710 if (vv->not_found) { | 1708 if (vv->not_found) { |
2108 key = ngx_hash_strlow(var->data, var->data, var->len); | 2106 key = ngx_hash_strlow(var->data, var->data, var->len); |
2109 | 2107 |
2110 value = ngx_http_ssi_get_variable(r, var, key); | 2108 value = ngx_http_ssi_get_variable(r, var, key); |
2111 | 2109 |
2112 if (value == NULL) { | 2110 if (value == NULL) { |
2113 vv = ngx_http_get_variable(r, var, key, 1); | 2111 vv = ngx_http_get_variable(r, var, key); |
2114 | 2112 |
2115 if (vv == NULL) { | 2113 if (vv == NULL) { |
2116 return NGX_HTTP_SSI_ERROR; | 2114 return NGX_HTTP_SSI_ERROR; |
2117 } | 2115 } |
2118 | 2116 |
2359 | 2357 |
2360 while (p < last && *p == ' ') { | 2358 while (p < last && *p == ' ') { |
2361 p++; | 2359 p++; |
2362 } | 2360 } |
2363 | 2361 |
2364 flags = (p == last) ? NGX_HTTP_SSI_EXPR_TEST : 0; | 2362 flags = 0; |
2365 | 2363 |
2366 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, | 2364 ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, |
2367 "left: \"%V\"", &left); | 2365 "left: \"%V\"", &left); |
2368 | 2366 |
2369 rc = ngx_http_ssi_evaluate_string(r, ctx, &left, flags); | 2367 rc = ngx_http_ssi_evaluate_string(r, ctx, &left, flags); |