comparison src/http/ngx_http_variables.h @ 546:e19e5f542878 NGINX_0_8_25

nginx 0.8.25 *) Change: now no message is written in an error log if a variable is not found by $r->variable() method. *) Feature: the ngx_http_degradation_module. *) Feature: regular expression named captures. *) Feature: now URI part is not required a "proxy_pass" directive if variables are used. *) Feature: now the "msie_padding" directive works for Chrome too. *) Bugfix: a segmentation fault occurred in a worker process on low memory condition; the bug had appeared in 0.8.18. *) Bugfix: nginx sent gzipped responses to clients those do not support gzip, if "gzip_static on" and "gzip_vary off"; the bug had appeared in 0.8.16.
author Igor Sysoev <http://sysoev.ru>
date Mon, 16 Nov 2009 00:00:00 +0300
parents 88d3e895bdf9
children 43e02819c5cf
comparison
equal deleted inserted replaced
545:91e4b06e1a01 546:e19e5f542878
39 ngx_uint_t flags; 39 ngx_uint_t flags;
40 ngx_uint_t index; 40 ngx_uint_t index;
41 }; 41 };
42 42
43 43
44 typedef struct {
45 ngx_uint_t capture;
46 ngx_int_t index;
47 } ngx_http_regex_variable_t;
48
49
50 typedef struct {
51 ngx_regex_t *regex;
52 ngx_uint_t ncaptures;
53 ngx_http_regex_variable_t *variables;
54 ngx_uint_t nvariables;
55 ngx_str_t name;
56 } ngx_http_regex_t;
57
58
44 ngx_http_variable_t *ngx_http_add_variable(ngx_conf_t *cf, ngx_str_t *name, 59 ngx_http_variable_t *ngx_http_add_variable(ngx_conf_t *cf, ngx_str_t *name,
45 ngx_uint_t flags); 60 ngx_uint_t flags);
46 ngx_int_t ngx_http_get_variable_index(ngx_conf_t *cf, ngx_str_t *name); 61 ngx_int_t ngx_http_get_variable_index(ngx_conf_t *cf, ngx_str_t *name);
47 ngx_http_variable_value_t *ngx_http_get_indexed_variable(ngx_http_request_t *r, 62 ngx_http_variable_value_t *ngx_http_get_indexed_variable(ngx_http_request_t *r,
48 ngx_uint_t index); 63 ngx_uint_t index);
55 ngx_int_t ngx_http_variable_unknown_header(ngx_http_variable_value_t *v, 70 ngx_int_t ngx_http_variable_unknown_header(ngx_http_variable_value_t *v,
56 ngx_str_t *var, ngx_list_part_t *part, size_t prefix); 71 ngx_str_t *var, ngx_list_part_t *part, size_t prefix);
57 72
58 73
59 #define ngx_http_clear_variable(r, index) r->variables0[index].text.data = NULL; 74 #define ngx_http_clear_variable(r, index) r->variables0[index].text.data = NULL;
75
76
77 ngx_http_regex_t *ngx_http_regex_compile(ngx_conf_t *cf,
78 ngx_regex_compile_t *rc);
79 ngx_int_t ngx_http_regex_exec(ngx_http_request_t *r, ngx_http_regex_t *re,
80 ngx_str_t *s);
60 81
61 82
62 ngx_int_t ngx_http_variables_add_core_vars(ngx_conf_t *cf); 83 ngx_int_t ngx_http_variables_add_core_vars(ngx_conf_t *cf);
63 ngx_int_t ngx_http_variables_init_vars(ngx_conf_t *cf); 84 ngx_int_t ngx_http_variables_init_vars(ngx_conf_t *cf);
64 85