Mercurial > hg > nginx-vendor-current
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 |