Mercurial > hg > nginx
comparison src/http/ngx_http_request.h @ 290:87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 16 Mar 2004 07:10:12 +0000 |
parents | 35a6a9df2d25 |
children | ec3c049681fd |
comparison
equal
deleted
inserted
replaced
289:0750faf8d7e3 | 290:87e73f067470 |
---|---|
1 #ifndef _NGX_HTTP_REQUEST_H_INCLUDED_ | 1 #ifndef _NGX_HTTP_REQUEST_H_INCLUDED_ |
2 #define _NGX_HTTP_REQUEST_H_INCLUDED_ | 2 #define _NGX_HTTP_REQUEST_H_INCLUDED_ |
3 | 3 |
4 | 4 |
5 #define NGX_HTTP_VERSION_9 9 | 5 #define NGX_HTTP_VERSION_9 9 |
6 #define NGX_HTTP_VERSION_10 1000 | 6 #define NGX_HTTP_VERSION_10 1000 |
7 #define NGX_HTTP_VERSION_11 1001 | 7 #define NGX_HTTP_VERSION_11 1001 |
8 | 8 |
9 #define NGX_HTTP_GET 1 | 9 #define NGX_HTTP_GET 1 |
10 #define NGX_HTTP_HEAD 2 | 10 #define NGX_HTTP_HEAD 2 |
11 #define NGX_HTTP_POST 3 | 11 #define NGX_HTTP_POST 3 |
12 | 12 |
13 #define NGX_HTTP_CONNECTION_CLOSE 1 | 13 #define NGX_HTTP_CONNECTION_CLOSE 1 |
14 #define NGX_HTTP_CONNECTION_KEEP_ALIVE 2 | 14 #define NGX_HTTP_CONNECTION_KEEP_ALIVE 2 |
15 | 15 |
16 | 16 |
17 #define NGX_NONE 1 | 17 #define NGX_NONE 1 |
18 | 18 |
19 | 19 |
20 #define NGX_HTTP_PARSE_HEADER_DONE 1 | 20 #define NGX_HTTP_PARSE_HEADER_DONE 1 |
21 | 21 |
22 #define NGX_HTTP_CLIENT_ERROR 10 | 22 #define NGX_HTTP_CLIENT_ERROR 10 |
23 #define NGX_HTTP_PARSE_INVALID_METHOD 10 | 23 #define NGX_HTTP_PARSE_INVALID_METHOD 10 |
24 #define NGX_HTTP_PARSE_INVALID_REQUEST 11 | 24 #define NGX_HTTP_PARSE_INVALID_REQUEST 11 |
25 #define NGX_HTTP_PARSE_TOO_LONG_URI 12 | 25 #define NGX_HTTP_PARSE_TOO_LONG_URI 12 |
26 #define NGX_HTTP_PARSE_INVALID_09_METHOD 13 | 26 #define NGX_HTTP_PARSE_INVALID_09_METHOD 13 |
27 | 27 |
28 #define NGX_HTTP_PARSE_HEADER_ERROR 14 | 28 #define NGX_HTTP_PARSE_HEADER_ERROR 14 |
29 #define NGX_HTTP_PARSE_INVALID_HEADER 14 | 29 #define NGX_HTTP_PARSE_INVALID_HEADER 14 |
30 #define NGX_HTTP_PARSE_TOO_LONG_HEADER 15 | 30 #define NGX_HTTP_PARSE_TOO_LONG_HEADER 15 |
31 #define NGX_HTTP_PARSE_NO_HOST_HEADER 16 | 31 #define NGX_HTTP_PARSE_NO_HOST_HEADER 16 |
32 #define NGX_HTTP_PARSE_INVALID_CL_HEADER 17 | 32 #define NGX_HTTP_PARSE_INVALID_CL_HEADER 17 |
33 | 33 |
34 | 34 |
35 #define NGX_HTTP_OK 200 | 35 #define NGX_HTTP_OK 200 |
36 #define NGX_HTTP_PARTIAL_CONTENT 206 | 36 #define NGX_HTTP_PARTIAL_CONTENT 206 |
37 | 37 |
78 NGX_HTTP_KEEPALIVE_STATE | 78 NGX_HTTP_KEEPALIVE_STATE |
79 } ngx_http_state_e; | 79 } ngx_http_state_e; |
80 | 80 |
81 | 81 |
82 typedef struct { | 82 typedef struct { |
83 ngx_str_t name; | 83 ngx_str_t name; |
84 int offset; | 84 ngx_uint_t offset; |
85 } ngx_http_header_t; | 85 } ngx_http_header_t; |
86 | 86 |
87 | 87 |
88 typedef struct { | 88 typedef struct { |
89 ngx_table_t *headers; /* it must be first field */ | 89 ngx_table_t *headers; /* it must be first field */ |
122 ngx_hunk_t *hunk; | 122 ngx_hunk_t *hunk; |
123 ngx_hunk_t *file_hunk; | 123 ngx_hunk_t *file_hunk; |
124 ngx_file_t temp_file; | 124 ngx_file_t temp_file; |
125 ngx_path_t *temp_path; | 125 ngx_path_t *temp_path; |
126 off_t offset; | 126 off_t offset; |
127 char *header_in_pos; | 127 u_char *header_in_pos; |
128 } ngx_http_request_body_t; | 128 } ngx_http_request_body_t; |
129 | 129 |
130 | 130 |
131 typedef struct { | 131 typedef struct { |
132 off_t start; | 132 off_t start; |
133 off_t end; | 133 off_t end; |
134 ngx_str_t content_range; | 134 ngx_str_t content_range; |
135 } ngx_http_range_t; | 135 } ngx_http_range_t; |
136 | 136 |
137 | 137 |
138 typedef struct { | 138 typedef struct { |
139 ngx_table_t *headers; /* it must be first field */ | 139 ngx_table_t *headers; /* it must be first field */ |
153 | 153 |
154 ngx_str_t charset; | 154 ngx_str_t charset; |
155 ngx_array_t ranges; | 155 ngx_array_t ranges; |
156 | 156 |
157 off_t content_length_n; | 157 off_t content_length_n; |
158 char *etag; | 158 u_char *etag; |
159 time_t date_time; | 159 time_t date_time; |
160 time_t last_modified_time; | 160 time_t last_modified_time; |
161 } ngx_http_headers_out_t; | 161 } ngx_http_headers_out_t; |
162 | 162 |
163 | 163 |
164 struct ngx_http_cleanup_s { | 164 struct ngx_http_cleanup_s { |
165 union { | 165 union { |
166 struct { | 166 struct { |
167 ngx_fd_t fd; | 167 ngx_fd_t fd; |
168 char *name; | 168 u_char *name; |
169 } file; | 169 } file; |
170 | 170 |
171 struct { | 171 struct { |
172 ngx_http_cache_hash_t *hash; | 172 ngx_http_cache_hash_t *hash; |
173 ngx_http_cache_t *cache; | 173 ngx_http_cache_t *cache; |
200 ngx_http_headers_in_t headers_in; | 200 ngx_http_headers_in_t headers_in; |
201 ngx_http_headers_out_t headers_out; | 201 ngx_http_headers_out_t headers_out; |
202 | 202 |
203 time_t lingering_time; | 203 time_t lingering_time; |
204 | 204 |
205 int method; | 205 ngx_uint_t method; |
206 int http_version; | 206 ngx_uint_t http_version; |
207 int http_major; | 207 ngx_uint_t http_major; |
208 int http_minor; | 208 ngx_uint_t http_minor; |
209 | 209 |
210 ngx_str_t request_line; | 210 ngx_str_t request_line; |
211 ngx_str_t uri; | 211 ngx_str_t uri; |
212 ngx_str_t args; | 212 ngx_str_t args; |
213 ngx_str_t exten; | 213 ngx_str_t exten; |
214 ngx_str_t unparsed_uri; | 214 ngx_str_t unparsed_uri; |
215 | 215 |
216 ngx_http_request_t *main; | 216 ngx_http_request_t *main; |
217 | 217 |
218 u_int in_addr; | 218 uint32_t in_addr; |
219 int port; | 219 ngx_uint_t port; |
220 ngx_str_t *port_name; /* ":80" */ | 220 ngx_str_t *port_name; /* ":80" */ |
221 ngx_str_t *server_name; | 221 ngx_str_t *server_name; |
222 ngx_array_t *virtual_names; | 222 ngx_array_t *virtual_names; |
223 | 223 |
224 int phase; | 224 ngx_uint_t phase; |
225 int phase_handler; | 225 ngx_int_t phase_handler; |
226 ngx_http_handler_pt content_handler; | 226 ngx_http_handler_pt content_handler; |
227 | 227 |
228 ngx_temp_file_t *temp_file; | 228 ngx_temp_file_t *temp_file; |
229 ngx_chain_t *request_hunks; | 229 ngx_chain_t *request_hunks; |
230 ngx_hunk_t *request_body_hunk; | 230 ngx_hunk_t *request_body_hunk; |
231 int request_body_len; | 231 size_t request_body_len; |
232 void (*request_body_handler) (void *data); | 232 void (*request_body_handler) (void *data); |
233 void *data; | 233 void *data; |
234 | 234 |
235 ngx_array_t cleanup; | 235 ngx_array_t cleanup; |
236 | 236 |
237 size_t header_size; | 237 size_t header_size; |
238 | 238 |
239 char *discarded_buffer; | 239 u_char *discarded_buffer; |
240 void **err_ctx; | 240 void **err_ctx; |
241 int err_status; | 241 ngx_uint_t err_status; |
242 | 242 |
243 unsigned http_state:4; | 243 unsigned http_state:4; |
244 | 244 |
245 /* URI is not started with '/' - "GET http://" */ | 245 /* URI is not started with '/' - "GET http://" */ |
246 unsigned unusual_uri:1; | 246 unsigned unusual_uri:1; |
266 unsigned lingering_close:1; | 266 unsigned lingering_close:1; |
267 #if 0 | 267 #if 0 |
268 unsigned closed:1; | 268 unsigned closed:1; |
269 #endif | 269 #endif |
270 | 270 |
271 /* TODO: use filter or bits ???? */ | 271 /* TODO: use the filter flags or the separate bits ???? */ |
272 int filter; | 272 u_int filter; |
273 | 273 |
274 /* used to parse HTTP headers */ | 274 /* used to parse HTTP headers */ |
275 int state; | 275 ngx_int_t state; |
276 char *uri_start; | 276 u_char *uri_start; |
277 char *uri_end; | 277 u_char *uri_end; |
278 char *uri_ext; | 278 u_char *uri_ext; |
279 char *args_start; | 279 u_char *args_start; |
280 char *request_start; | 280 u_char *request_start; |
281 char *request_end; | 281 u_char *request_end; |
282 char *header_name_start; | 282 u_char *header_name_start; |
283 char *header_name_end; | 283 u_char *header_name_end; |
284 char *header_start; | 284 u_char *header_start; |
285 char *header_end; | 285 u_char *header_end; |
286 }; | 286 }; |
287 | 287 |
288 | 288 |
289 extern ngx_http_header_t ngx_http_headers_in[]; | 289 extern ngx_http_header_t ngx_http_headers_in[]; |
290 extern ngx_http_header_t ngx_http_headers_out[]; | 290 extern ngx_http_header_t ngx_http_headers_out[]; |