Mercurial > hg > nginx
annotate src/http/ngx_http_script.h @ 3322:e19df6e65352
fix posix_fadvise() error handling
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 15 Nov 2009 09:16:58 +0000 |
parents | 77264e0157ad |
children | 42c16d8bddbe |
rev | line source |
---|---|
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
99
diff
changeset
|
1 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
99
diff
changeset
|
2 /* |
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
441
diff
changeset
|
3 * Copyright (C) Igor Sysoev |
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
99
diff
changeset
|
4 */ |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
99
diff
changeset
|
5 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
99
diff
changeset
|
6 |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
7 #ifndef _NGX_HTTP_SCRIPT_H_INCLUDED_ |
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 #define _NGX_HTTP_SCRIPT_H_INCLUDED_ |
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 |
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
479 | 11 #include <ngx_config.h> |
12 #include <ngx_core.h> | |
13 #include <ngx_http.h> | |
14 | |
15 | |
507 | 16 typedef struct { |
573 | 17 u_char *ip; |
18 u_char *pos; | |
19 ngx_http_variable_value_t *sp; | |
509 | 20 |
573 | 21 ngx_str_t buf; |
22 ngx_str_t line; | |
509 | 23 |
24 /* the start of the rewritten arguments */ | |
573 | 25 u_char *args; |
507 | 26 |
573 | 27 unsigned flushed:1; |
28 unsigned skip:1; | |
29 unsigned quote:1; | |
1891
782af1038115
length calculation did not take into account escaped symbols in arguments
Igor Sysoev <igor@sysoev.ru>
parents:
1565
diff
changeset
|
30 unsigned is_args:1; |
573 | 31 unsigned log:1; |
509 | 32 |
573 | 33 ngx_int_t status; |
34 ngx_http_request_t *request; | |
507 | 35 } ngx_http_script_engine_t; |
36 | |
37 | |
509 | 38 typedef struct { |
573 | 39 ngx_conf_t *cf; |
40 ngx_str_t *source; | |
509 | 41 |
573 | 42 ngx_array_t **flushes; |
43 ngx_array_t **lengths; | |
44 ngx_array_t **values; | |
509 | 45 |
573 | 46 ngx_uint_t variables; |
47 ngx_uint_t ncaptures; | |
641 | 48 ngx_uint_t captures_mask; |
573 | 49 ngx_uint_t size; |
50 | |
51 void *main; | |
507 | 52 |
573 | 53 unsigned compile_args:1; |
54 unsigned complete_lengths:1; | |
55 unsigned complete_values:1; | |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
56 unsigned zero:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
57 unsigned conf_prefix:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
58 unsigned root_prefix:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
59 |
641 | 60 unsigned dup_capture:1; |
573 | 61 unsigned args:1; |
509 | 62 } ngx_http_script_compile_t; |
63 | |
64 | |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
65 typedef struct { |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
66 ngx_str_t value; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
67 ngx_uint_t *flushes; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
68 void *lengths; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
69 void *values; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
70 } ngx_http_complex_value_t; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
71 |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
72 |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
73 typedef struct { |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
74 ngx_conf_t *cf; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
75 ngx_str_t *value; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
76 ngx_http_complex_value_t *complex_value; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
77 |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
78 unsigned zero:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
79 unsigned conf_prefix:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
80 unsigned root_prefix:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
81 } ngx_http_compile_complex_value_t; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
82 |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
83 |
509 | 84 typedef void (*ngx_http_script_code_pt) (ngx_http_script_engine_t *e); |
85 typedef size_t (*ngx_http_script_len_code_pt) (ngx_http_script_engine_t *e); | |
507 | 86 |
479 | 87 |
507 | 88 typedef struct { |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
89 ngx_http_script_code_pt code; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
90 uintptr_t len; |
507 | 91 } ngx_http_script_copy_code_t; |
92 | |
93 | |
94 typedef struct { | |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
95 ngx_http_script_code_pt code; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
96 uintptr_t index; |
507 | 97 } ngx_http_script_var_code_t; |
98 | |
99 | |
509 | 100 typedef struct { |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
101 ngx_http_script_code_pt code; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
102 ngx_http_set_variable_pt handler; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
103 uintptr_t data; |
637 | 104 } ngx_http_script_var_handler_code_t; |
105 | |
106 | |
107 typedef struct { | |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
108 ngx_http_script_code_pt code; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
109 uintptr_t n; |
509 | 110 } ngx_http_script_copy_capture_code_t; |
111 | |
112 | |
517 | 113 #if (NGX_PCRE) |
114 | |
509 | 115 typedef struct { |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
116 ngx_http_script_code_pt code; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
117 ngx_regex_t *regex; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
118 ngx_array_t *lengths; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
119 uintptr_t size; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
120 uintptr_t ncaptures; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
121 uintptr_t status; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
122 uintptr_t next; |
509 | 123 |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
124 uintptr_t test:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
125 uintptr_t negative_test:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
126 uintptr_t uri:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
127 uintptr_t args:1; |
509 | 128 |
129 /* add the r->args to the new arguments */ | |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
130 uintptr_t add_args:1; |
577 | 131 |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
132 uintptr_t redirect:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
133 uintptr_t break_cycle:1; |
509 | 134 |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
135 ngx_str_t name; |
509 | 136 } ngx_http_script_regex_code_t; |
137 | |
138 | |
139 typedef struct { | |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
140 ngx_http_script_code_pt code; |
509 | 141 |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
142 uintptr_t uri:1; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
143 uintptr_t args:1; |
509 | 144 |
145 /* add the r->args to the new arguments */ | |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
146 uintptr_t add_args:1; |
509 | 147 |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
148 uintptr_t redirect:1; |
509 | 149 } ngx_http_script_regex_end_code_t; |
507 | 150 |
517 | 151 #endif |
152 | |
507 | 153 |
509 | 154 typedef struct { |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
155 ngx_http_script_code_pt code; |
2758 | 156 uintptr_t conf_prefix; |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
157 } ngx_http_script_full_name_code_t; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
158 |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
159 |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
160 typedef struct { |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
161 ngx_http_script_code_pt code; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
162 uintptr_t status; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
163 uintptr_t null; |
509 | 164 } ngx_http_script_return_code_t; |
165 | |
166 | |
631 | 167 typedef enum { |
168 ngx_http_script_file_plain = 0, | |
669 | 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 | |
631 | 176 } ngx_http_script_file_op_e; |
177 | |
178 | |
179 typedef struct { | |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
180 ngx_http_script_code_pt code; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
181 uintptr_t op; |
631 | 182 } ngx_http_script_file_code_t; |
183 | |
184 | |
509 | 185 typedef struct { |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
186 ngx_http_script_code_pt code; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
187 uintptr_t next; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
188 void **loc_conf; |
509 | 189 } ngx_http_script_if_code_t; |
190 | |
191 | |
192 typedef struct { | |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
193 ngx_http_script_code_pt code; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
194 ngx_array_t *lengths; |
515 | 195 } ngx_http_script_complex_value_code_t; |
196 | |
197 | |
198 typedef struct { | |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
199 ngx_http_script_code_pt code; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
200 uintptr_t value; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
201 uintptr_t text_len; |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
202 uintptr_t text_data; |
509 | 203 } ngx_http_script_value_code_t; |
204 | |
507 | 205 |
2609
ad99a49cd313
rename ngx_http_scrip_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2587
diff
changeset
|
206 void ngx_http_script_flush_complex_value(ngx_http_request_t *r, |
2587
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
207 ngx_http_complex_value_t *val); |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
208 ngx_int_t ngx_http_complex_value(ngx_http_request_t *r, |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
209 ngx_http_complex_value_t *val, ngx_str_t *value); |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
210 ngx_int_t ngx_http_compile_complex_value(ngx_http_compile_complex_value_t *ccv); |
8afc4df77ee8
ngx_http_script_flush_complex_value()
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
211 |
509 | 212 ngx_uint_t ngx_http_script_variables_count(ngx_str_t *value); |
213 ngx_int_t ngx_http_script_compile(ngx_http_script_compile_t *sc); | |
623 | 214 u_char *ngx_http_script_run(ngx_http_request_t *r, ngx_str_t *value, |
215 void *code_lengths, size_t reserved, void *code_values); | |
1565 | 216 void ngx_http_script_flush_no_cacheable_variables(ngx_http_request_t *r, |
573 | 217 ngx_array_t *indices); |
509 | 218 |
219 void *ngx_http_script_start_code(ngx_pool_t *pool, ngx_array_t **codes, | |
220 size_t size); | |
221 void *ngx_http_script_add_code(ngx_array_t *codes, size_t size, void *code); | |
507 | 222 |
509 | 223 size_t ngx_http_script_copy_len_code(ngx_http_script_engine_t *e); |
224 void ngx_http_script_copy_code(ngx_http_script_engine_t *e); | |
225 size_t ngx_http_script_copy_var_len_code(ngx_http_script_engine_t *e); | |
226 void ngx_http_script_copy_var_code(ngx_http_script_engine_t *e); | |
227 size_t ngx_http_script_copy_capture_len_code(ngx_http_script_engine_t *e); | |
228 void ngx_http_script_copy_capture_code(ngx_http_script_engine_t *e); | |
1891
782af1038115
length calculation did not take into account escaped symbols in arguments
Igor Sysoev <igor@sysoev.ru>
parents:
1565
diff
changeset
|
229 size_t ngx_http_script_mark_args_code(ngx_http_script_engine_t *e); |
517 | 230 void ngx_http_script_start_args_code(ngx_http_script_engine_t *e); |
231 #if (NGX_PCRE) | |
509 | 232 void ngx_http_script_regex_start_code(ngx_http_script_engine_t *e); |
233 void ngx_http_script_regex_end_code(ngx_http_script_engine_t *e); | |
517 | 234 #endif |
509 | 235 void ngx_http_script_return_code(ngx_http_script_engine_t *e); |
527 | 236 void ngx_http_script_break_code(ngx_http_script_engine_t *e); |
509 | 237 void ngx_http_script_if_code(ngx_http_script_engine_t *e); |
577 | 238 void ngx_http_script_equal_code(ngx_http_script_engine_t *e); |
239 void ngx_http_script_not_equal_code(ngx_http_script_engine_t *e); | |
631 | 240 void ngx_http_script_file_code(ngx_http_script_engine_t *e); |
515 | 241 void ngx_http_script_complex_value_code(ngx_http_script_engine_t *e); |
509 | 242 void ngx_http_script_value_code(ngx_http_script_engine_t *e); |
243 void ngx_http_script_set_var_code(ngx_http_script_engine_t *e); | |
637 | 244 void ngx_http_script_var_set_handler_code(ngx_http_script_engine_t *e); |
509 | 245 void ngx_http_script_var_code(ngx_http_script_engine_t *e); |
246 void ngx_http_script_nop_code(ngx_http_script_engine_t *e); | |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
247 |
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
248 |
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
249 #endif /* _NGX_HTTP_SCRIPT_H_INCLUDED_ */ |