Mercurial > hg > nginx
comparison src/http/ngx_http_variables.h @ 501:d4ea69372b94 release-0.1.25
nginx-0.1.25-RELEASE import
*) Bugfix: nginx did run on Linux parisc.
*) Feature: nginx now does not start under FreeBSD if the sysctl
kern.ipc.somaxconn value is too big.
*) Bugfix: if a request was internally redirected by the
ngx_http_index_module module to the ngx_http_proxy_module or
ngx_http_fastcgi_module modules, then the index file was not closed
after request completion.
*) Feature: the "proxy_pass" can be used in location with regular
expression.
*) Feature: the ngx_http_rewrite_filter_module module supports the
condition like "if ($HTTP_USER_AGENT ~ MSIE)".
*) Bugfix: nginx started too slow if the large number of addresses and
text values were used in the "geo" directive.
*) Change: a variable name must be declared as "$name" in the "geo"
directive. The previous variant without "$" is still supported, but
will be removed soon.
*) Feature: the "%{VARIABLE}v" logging parameter.
*) Feature: the "set $name value" directive.
*) Bugfix: gcc 4.0 compatibility.
*) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sat, 19 Mar 2005 12:38:37 +0000 |
parents | 64d9afb209da |
children | 9b8c906f6e63 |
comparison
equal
deleted
inserted
replaced
500:9a0f304470f5 | 501:d4ea69372b94 |
---|---|
15 | 15 |
16 | 16 |
17 #define NGX_HTTP_VARIABLE_NOT_FOUND (ngx_http_variable_value_t *) -1 | 17 #define NGX_HTTP_VARIABLE_NOT_FOUND (ngx_http_variable_value_t *) -1 |
18 | 18 |
19 | 19 |
20 typedef struct { | 20 struct ngx_http_variable_value_s { |
21 ngx_uint_t value; | 21 ngx_uint_t value; |
22 ngx_str_t text; | 22 ngx_str_t text; |
23 } ngx_http_variable_value_t; | 23 }; |
24 | |
25 | 24 |
26 typedef struct ngx_http_variable_s ngx_http_variable_t; | 25 typedef struct ngx_http_variable_s ngx_http_variable_t; |
27 | 26 |
28 typedef ngx_http_variable_value_t * | 27 typedef ngx_http_variable_value_t * |
29 (*ngx_http_get_variable_pt) (ngx_http_request_t *r, void *var); | 28 (*ngx_http_get_variable_pt) (ngx_http_request_t *r, uintptr_t data); |
30 | 29 |
31 | 30 |
32 struct ngx_http_variable_s { | 31 struct ngx_http_variable_s { |
33 ngx_str_t name; | 32 ngx_str_t name; |
34 ngx_uint_t index; | 33 ngx_uint_t index; |
35 ngx_http_get_variable_pt handler; | 34 ngx_http_get_variable_pt handler; |
36 void *data; | 35 uintptr_t data; |
37 ngx_uint_t uses; | |
38 }; | 36 }; |
39 | 37 |
40 | 38 |
41 typedef ngx_http_variable_value_t * | |
42 (*ngx_http_get_core_variable_pt) (ngx_http_request_t *r, uintptr_t data); | |
43 | |
44 typedef struct { | 39 typedef struct { |
45 ngx_str_t name; | 40 ngx_str_t name; |
46 ngx_http_get_core_variable_pt handler; | 41 ngx_http_get_variable_pt handler; |
47 uintptr_t data; | 42 uintptr_t data; |
48 } ngx_http_core_variable_t; | 43 } ngx_http_core_variable_t; |
49 | 44 |
50 | 45 |
51 ngx_http_variable_t *ngx_http_add_variable(ngx_conf_t *cf); | 46 ngx_http_variable_t *ngx_http_add_variable(ngx_conf_t *cf, ngx_str_t *name, |
47 ngx_uint_t set); | |
52 ngx_int_t ngx_http_get_variable_index(ngx_http_core_main_conf_t *cmcf, | 48 ngx_int_t ngx_http_get_variable_index(ngx_http_core_main_conf_t *cmcf, |
53 ngx_str_t *name); | 49 ngx_str_t *name); |
54 ngx_http_variable_value_t *ngx_http_get_indexed_variable(ngx_http_request_t *r, | 50 ngx_http_variable_value_t *ngx_http_get_indexed_variable(ngx_http_request_t *r, |
55 ngx_uint_t index); | 51 ngx_uint_t index); |
56 ngx_http_variable_value_t *ngx_http_get_variable(ngx_http_request_t *r, | 52 ngx_http_variable_value_t *ngx_http_get_variable(ngx_http_request_t *r, |
57 ngx_str_t *name); | 53 ngx_str_t *name); |
58 ngx_int_t ngx_http_core_variables_init(ngx_cycle_t *cycle); | 54 ngx_int_t ngx_http_variables_init(ngx_cycle_t *cycle); |
59 | 55 |
60 | 56 |
61 #endif /* _NGX_HTTP_VARIABLES_H_INCLUDED_ */ | 57 #endif /* _NGX_HTTP_VARIABLES_H_INCLUDED_ */ |