Groonga 3.0.9 Source Code Document
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
groonga
vendor
nginx-1.4.2
src
http
ngx_http_script.h
Go to the documentation of this file.
1
2
/*
3
* Copyright (C) Igor Sysoev
4
* Copyright (C) Nginx, Inc.
5
*/
6
7
8
#ifndef _NGX_HTTP_SCRIPT_H_INCLUDED_
9
#define _NGX_HTTP_SCRIPT_H_INCLUDED_
10
11
12
#include <
ngx_config.h
>
13
#include <
ngx_core.h
>
14
#include <
ngx_http.h
>
15
16
17
typedef
struct
{
18
u_char *
ip
;
19
u_char *
pos
;
20
ngx_http_variable_value_t
*
sp
;
21
22
ngx_str_t
buf
;
23
ngx_str_t
line
;
24
25
/* the start of the rewritten arguments */
26
u_char *
args
;
27
28
unsigned
flushed:1;
29
unsigned
skip:1;
30
unsigned
quote:1;
31
unsigned
is_args:1;
32
unsigned
log:1;
33
34
ngx_int_t
status
;
35
ngx_http_request_t
*
request
;
36
}
ngx_http_script_engine_t
;
37
38
39
typedef
struct
{
40
ngx_conf_t
*
cf
;
41
ngx_str_t
*
source
;
42
43
ngx_array_t
**
flushes
;
44
ngx_array_t
**
lengths
;
45
ngx_array_t
**
values
;
46
47
ngx_uint_t
variables
;
48
ngx_uint_t
ncaptures
;
49
ngx_uint_t
captures_mask
;
50
ngx_uint_t
size
;
51
52
void
*
main
;
53
54
unsigned
compile_args:1;
55
unsigned
complete_lengths:1;
56
unsigned
complete_values:1;
57
unsigned
zero:1;
58
unsigned
conf_prefix:1;
59
unsigned
root_prefix:1;
60
61
unsigned
dup_capture:1;
62
unsigned
args:1;
63
}
ngx_http_script_compile_t
;
64
65
66
typedef
struct
{
67
ngx_str_t
value
;
68
ngx_uint_t
*
flushes
;
69
void
*
lengths
;
70
void
*
values
;
71
}
ngx_http_complex_value_t
;
72
73
74
typedef
struct
{
75
ngx_conf_t
*
cf
;
76
ngx_str_t
*
value
;
77
ngx_http_complex_value_t
*
complex_value
;
78
79
unsigned
zero:1;
80
unsigned
conf_prefix:1;
81
unsigned
root_prefix:1;
82
}
ngx_http_compile_complex_value_t
;
83
84
85
typedef
void (*
ngx_http_script_code_pt
) (
ngx_http_script_engine_t
*e);
86
typedef
size_t (*
ngx_http_script_len_code_pt
) (
ngx_http_script_engine_t
*e);
87
88
89
typedef
struct
{
90
ngx_http_script_code_pt
code
;
91
uintptr_t
len
;
92
}
ngx_http_script_copy_code_t
;
93
94
95
typedef
struct
{
96
ngx_http_script_code_pt
code
;
97
uintptr_t
index
;
98
}
ngx_http_script_var_code_t
;
99
100
101
typedef
struct
{
102
ngx_http_script_code_pt
code
;
103
ngx_http_set_variable_pt
handler
;
104
uintptr_t
data
;
105
}
ngx_http_script_var_handler_code_t
;
106
107
108
typedef
struct
{
109
ngx_http_script_code_pt
code
;
110
uintptr_t
n
;
111
}
ngx_http_script_copy_capture_code_t
;
112
113
114
#if (NGX_PCRE)
115
116
typedef
struct
{
117
ngx_http_script_code_pt
code;
118
ngx_http_regex_t *regex;
119
ngx_array_t
*lengths;
120
uintptr_t size;
121
uintptr_t status;
122
uintptr_t next;
123
124
uintptr_t test:1;
125
uintptr_t negative_test:1;
126
uintptr_t uri:1;
127
uintptr_t args:1;
128
129
/* add the r->args to the new arguments */
130
uintptr_t add_args:1;
131
132
uintptr_t redirect:1;
133
uintptr_t break_cycle:1;
134
135
ngx_str_t
name;
136
} ngx_http_script_regex_code_t;
137
138
139
typedef
struct
{
140
ngx_http_script_code_pt
code;
141
142
uintptr_t uri:1;
143
uintptr_t args:1;
144
145
/* add the r->args to the new arguments */
146
uintptr_t add_args:1;
147
148
uintptr_t redirect:1;
149
} ngx_http_script_regex_end_code_t;
150
151
#endif
152
153
154
typedef
struct
{
155
ngx_http_script_code_pt
code
;
156
uintptr_t
conf_prefix
;
157
}
ngx_http_script_full_name_code_t
;
158
159
160
typedef
struct
{
161
ngx_http_script_code_pt
code
;
162
uintptr_t
status
;
163
ngx_http_complex_value_t
text
;
164
}
ngx_http_script_return_code_t
;
165
166
167
typedef
enum
{
168
ngx_http_script_file_plain
= 0,
169
ngx_http_script_file_not_plain
,
170
ngx_http_script_file_dir
,
171
ngx_http_script_file_not_dir
,
172
ngx_http_script_file_exists
,
173
ngx_http_script_file_not_exists
,
174
ngx_http_script_file_exec
,
175
ngx_http_script_file_not_exec
176
}
ngx_http_script_file_op_e
;
177
178
179
typedef
struct
{
180
ngx_http_script_code_pt
code
;
181
uintptr_t
op
;
182
}
ngx_http_script_file_code_t
;
183
184
185
typedef
struct
{
186
ngx_http_script_code_pt
code
;
187
uintptr_t
next
;
188
void
**
loc_conf
;
189
}
ngx_http_script_if_code_t
;
190
191
192
typedef
struct
{
193
ngx_http_script_code_pt
code
;
194
ngx_array_t
*
lengths
;
195
}
ngx_http_script_complex_value_code_t
;
196
197
198
typedef
struct
{
199
ngx_http_script_code_pt
code
;
200
uintptr_t
value
;
201
uintptr_t
text_len
;
202
uintptr_t
text_data
;
203
}
ngx_http_script_value_code_t
;
204
205
206
void
ngx_http_script_flush_complex_value
(
ngx_http_request_t
*r,
207
ngx_http_complex_value_t
*val);
208
ngx_int_t
ngx_http_complex_value
(
ngx_http_request_t
*r,
209
ngx_http_complex_value_t
*val,
ngx_str_t
*value);
210
ngx_int_t
ngx_http_compile_complex_value
(
ngx_http_compile_complex_value_t
*ccv);
211
char
*
ngx_http_set_complex_value_slot
(
ngx_conf_t
*cf,
ngx_command_t
*cmd,
212
void
*conf);
213
214
215
ngx_int_t
ngx_http_test_predicates
(
ngx_http_request_t
*r,
216
ngx_array_t
*predicates);
217
char
*
ngx_http_set_predicate_slot
(
ngx_conf_t
*cf,
ngx_command_t
*cmd,
218
void
*conf);
219
220
ngx_uint_t
ngx_http_script_variables_count
(
ngx_str_t
*value);
221
ngx_int_t
ngx_http_script_compile
(
ngx_http_script_compile_t
*sc);
222
u_char *
ngx_http_script_run
(
ngx_http_request_t
*r,
ngx_str_t
*value,
223
void
*code_lengths,
size_t
reserved,
void
*code_values);
224
void
ngx_http_script_flush_no_cacheable_variables
(
ngx_http_request_t
*r,
225
ngx_array_t
*indices);
226
227
void
*
ngx_http_script_start_code
(
ngx_pool_t
*pool,
ngx_array_t
**codes,
228
size_t
size);
229
void
*
ngx_http_script_add_code
(
ngx_array_t
*codes,
size_t
size,
void
*code);
230
231
size_t
ngx_http_script_copy_len_code
(
ngx_http_script_engine_t
*e);
232
void
ngx_http_script_copy_code
(
ngx_http_script_engine_t
*e);
233
size_t
ngx_http_script_copy_var_len_code
(
ngx_http_script_engine_t
*e);
234
void
ngx_http_script_copy_var_code
(
ngx_http_script_engine_t
*e);
235
size_t
ngx_http_script_copy_capture_len_code
(
ngx_http_script_engine_t
*e);
236
void
ngx_http_script_copy_capture_code
(
ngx_http_script_engine_t
*e);
237
size_t
ngx_http_script_mark_args_code
(
ngx_http_script_engine_t
*e);
238
void
ngx_http_script_start_args_code
(
ngx_http_script_engine_t
*e);
239
#if (NGX_PCRE)
240
void
ngx_http_script_regex_start_code(
ngx_http_script_engine_t
*e);
241
void
ngx_http_script_regex_end_code(
ngx_http_script_engine_t
*e);
242
#endif
243
void
ngx_http_script_return_code
(
ngx_http_script_engine_t
*e);
244
void
ngx_http_script_break_code
(
ngx_http_script_engine_t
*e);
245
void
ngx_http_script_if_code
(
ngx_http_script_engine_t
*e);
246
void
ngx_http_script_equal_code
(
ngx_http_script_engine_t
*e);
247
void
ngx_http_script_not_equal_code
(
ngx_http_script_engine_t
*e);
248
void
ngx_http_script_file_code
(
ngx_http_script_engine_t
*e);
249
void
ngx_http_script_complex_value_code
(
ngx_http_script_engine_t
*e);
250
void
ngx_http_script_value_code
(
ngx_http_script_engine_t
*e);
251
void
ngx_http_script_set_var_code
(
ngx_http_script_engine_t
*e);
252
void
ngx_http_script_var_set_handler_code
(
ngx_http_script_engine_t
*e);
253
void
ngx_http_script_var_code
(
ngx_http_script_engine_t
*e);
254
void
ngx_http_script_nop_code
(
ngx_http_script_engine_t
*e);
255
256
257
#endif
/* _NGX_HTTP_SCRIPT_H_INCLUDED_ */
Generated on Sun Nov 10 2013 09:49:08 for Groonga 3.0.9 Source Code Document by
1.8.1.2