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);