Mercurial > hg > nginx-mail
comparison src/http/ngx_http_variables.h @ 665:0b460e61bdcd default tip
Merge with nginx 1.0.0.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 25 Apr 2011 04:22:17 +0400 |
parents | 8214eaef3530 |
children |
comparison
equal
deleted
inserted
replaced
572:06419a2298a9 | 665:0b460e61bdcd |
---|---|
48 ngx_uint_t index); | 48 ngx_uint_t index); |
49 ngx_http_variable_value_t *ngx_http_get_flushed_variable(ngx_http_request_t *r, | 49 ngx_http_variable_value_t *ngx_http_get_flushed_variable(ngx_http_request_t *r, |
50 ngx_uint_t index); | 50 ngx_uint_t index); |
51 | 51 |
52 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, |
53 ngx_str_t *name, ngx_uint_t key, ngx_uint_t nowarn); | 53 ngx_str_t *name, ngx_uint_t key); |
54 | 54 |
55 ngx_int_t ngx_http_variable_unknown_header(ngx_http_variable_value_t *v, | 55 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); | 56 ngx_str_t *var, ngx_list_part_t *part, size_t prefix); |
57 | 57 |
58 | 58 |
59 #define ngx_http_clear_variable(r, index) r->variables0[index].text.data = NULL; | 59 #define ngx_http_clear_variable(r, index) r->variables0[index].text.data = NULL; |
60 | 60 |
61 | 61 |
62 ngx_int_t ngx_http_variables_add_core_vars(ngx_conf_t *cf); | 62 #if (NGX_PCRE) |
63 ngx_int_t ngx_http_variables_init_vars(ngx_conf_t *cf); | 63 |
64 typedef struct { | |
65 ngx_uint_t capture; | |
66 ngx_int_t index; | |
67 } ngx_http_regex_variable_t; | |
64 | 68 |
65 | 69 |
66 typedef struct { | 70 typedef struct { |
67 ngx_rbtree_node_t node; | 71 ngx_regex_t *regex; |
68 size_t len; | 72 ngx_uint_t ncaptures; |
69 ngx_http_variable_value_t *value; | 73 ngx_http_regex_variable_t *variables; |
70 } ngx_http_variable_value_node_t; | 74 ngx_uint_t nvariables; |
75 ngx_str_t name; | |
76 } ngx_http_regex_t; | |
71 | 77 |
72 | 78 |
73 void ngx_http_variable_value_rbtree_insert(ngx_rbtree_node_t *temp, | 79 typedef struct { |
74 ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel); | 80 ngx_http_regex_t *regex; |
75 ngx_http_variable_value_t *ngx_http_variable_value_lookup(ngx_rbtree_t *rbtree, | 81 void *value; |
76 ngx_str_t *name, uint32_t hash); | 82 } ngx_http_map_regex_t; |
83 | |
84 | |
85 ngx_http_regex_t *ngx_http_regex_compile(ngx_conf_t *cf, | |
86 ngx_regex_compile_t *rc); | |
87 ngx_int_t ngx_http_regex_exec(ngx_http_request_t *r, ngx_http_regex_t *re, | |
88 ngx_str_t *s); | |
89 | |
90 #endif | |
91 | |
92 | |
93 typedef struct { | |
94 ngx_hash_combined_t hash; | |
95 #if (NGX_PCRE) | |
96 ngx_http_map_regex_t *regex; | |
97 ngx_uint_t nregex; | |
98 #endif | |
99 } ngx_http_map_t; | |
100 | |
101 | |
102 void *ngx_http_map_find(ngx_http_request_t *r, ngx_http_map_t *map, | |
103 ngx_uint_t key, u_char *text, size_t len, ngx_str_t *match); | |
104 | |
105 | |
106 ngx_int_t ngx_http_variables_add_core_vars(ngx_conf_t *cf); | |
107 ngx_int_t ngx_http_variables_init_vars(ngx_conf_t *cf); | |
77 | 108 |
78 | 109 |
79 extern ngx_http_variable_value_t ngx_http_variable_null_value; | 110 extern ngx_http_variable_value_t ngx_http_variable_null_value; |
80 extern ngx_http_variable_value_t ngx_http_variable_true_value; | 111 extern ngx_http_variable_value_t ngx_http_variable_true_value; |
81 | 112 |