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[];