comparison src/http/ngx_http_variables.h @ 50:72eb30262aac NGINX_0_1_25

nginx 0.1.25 *) 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 <http://sysoev.ru>
date Sat, 19 Mar 2005 00:00:00 +0300
parents 6cfc63e68377
children b55cbf18157e
comparison
equal deleted inserted replaced
49:93dabbc9efb9 50:72eb30262aac
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_ */