Mercurial > hg > nginx
annotate src/http/ngx_http_request.h @ 647:95d7da23ea53 release-0.3.45
nginx-0.3.45-RELEASE import
*) Feature: the "ssl_verify_client", "ssl_verify_depth", and
"ssl_client_certificate" directives.
*) Change: the $request_method variable now returns the main request
method.
*) Change: the ° symbol codes were changed in koi-win conversion
table.
*) Feature: the euro and N symbols were added to koi-win conversion
table.
*) Bugfix: if nginx distributed the requests among several backends and
some backend failed, then requests intended for this backend was
directed to one live backend only instead of being distributed among
the rest.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sat, 06 May 2006 16:28:56 +0000 |
parents | e60fe4cf1d4e |
children | 1e720b0be7ec |
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:
436
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:
436
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:
436
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:
436
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:
436
diff
changeset
|
6 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
7 #ifndef _NGX_HTTP_REQUEST_H_INCLUDED_ |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 #define _NGX_HTTP_REQUEST_H_INCLUDED_ |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
509 | 11 #define NGX_HTTP_MAX_REWRITE_CYCLES 10 |
12 | |
13 | |
436
9549fc9508e5
nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
435
diff
changeset
|
14 #define NGX_HTTP_DISCARD_BUFFER_SIZE 4096 |
9549fc9508e5
nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
435
diff
changeset
|
15 #define NGX_HTTP_LINGERING_BUFFER_SIZE 4096 |
9549fc9508e5
nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
435
diff
changeset
|
16 |
9549fc9508e5
nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
435
diff
changeset
|
17 |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
287
diff
changeset
|
18 #define NGX_HTTP_VERSION_9 9 |
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
287
diff
changeset
|
19 #define NGX_HTTP_VERSION_10 1000 |
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
287
diff
changeset
|
20 #define NGX_HTTP_VERSION_11 1001 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
21 |
633 | 22 #define NGX_HTTP_UNKNOWN 0x0001 |
23 #define NGX_HTTP_GET 0x0002 | |
24 #define NGX_HTTP_HEAD 0x0004 | |
25 #define NGX_HTTP_POST 0x0008 | |
26 #define NGX_HTTP_PUT 0x0010 | |
27 #define NGX_HTTP_DELETE 0x0020 | |
637 | 28 #define NGX_HTTP_MKCOL 0x0040 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
29 |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
287
diff
changeset
|
30 #define NGX_HTTP_CONNECTION_CLOSE 1 |
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
287
diff
changeset
|
31 #define NGX_HTTP_CONNECTION_KEEP_ALIVE 2 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
32 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
33 |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
287
diff
changeset
|
34 #define NGX_NONE 1 |
141
656d468f4ead
nginx-0.0.1-2003-10-08-19:32:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
136
diff
changeset
|
35 |
656d468f4ead
nginx-0.0.1-2003-10-08-19:32:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
136
diff
changeset
|
36 |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
287
diff
changeset
|
37 #define NGX_HTTP_PARSE_HEADER_DONE 1 |
160
e7e094d34162
nginx-0.0.1-2003-10-27-11:53:49 import
Igor Sysoev <igor@sysoev.ru>
parents:
155
diff
changeset
|
38 |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
287
diff
changeset
|
39 #define NGX_HTTP_CLIENT_ERROR 10 |
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
287
diff
changeset
|
40 #define NGX_HTTP_PARSE_INVALID_METHOD 10 |
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
287
diff
changeset
|
41 #define NGX_HTTP_PARSE_INVALID_REQUEST 11 |
505 | 42 #define NGX_HTTP_PARSE_INVALID_09_METHOD 12 |
160
e7e094d34162
nginx-0.0.1-2003-10-27-11:53:49 import
Igor Sysoev <igor@sysoev.ru>
parents:
155
diff
changeset
|
43 |
505 | 44 #define NGX_HTTP_PARSE_INVALID_HEADER 13 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
45 |
573 | 46 #define NGX_HTTP_ZERO_IN_URI 1 |
47 | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
48 |
162
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
49 #define NGX_HTTP_OK 200 |
633 | 50 #define NGX_HTTP_CREATED 201 |
511 | 51 #define NGX_HTTP_NO_CONTENT 204 |
162
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
52 #define NGX_HTTP_PARTIAL_CONTENT 206 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
53 |
162
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
54 #define NGX_HTTP_SPECIAL_RESPONSE 300 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
55 #define NGX_HTTP_MOVED_PERMANENTLY 301 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
56 #define NGX_HTTP_MOVED_TEMPORARILY 302 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
57 #define NGX_HTTP_NOT_MODIFIED 304 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
58 |
162
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
59 #define NGX_HTTP_BAD_REQUEST 400 |
503 | 60 #define NGX_HTTP_UNAUTHORIZED 401 |
162
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
61 #define NGX_HTTP_FORBIDDEN 403 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
62 #define NGX_HTTP_NOT_FOUND 404 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
63 #define NGX_HTTP_NOT_ALLOWED 405 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
64 #define NGX_HTTP_REQUEST_TIME_OUT 408 |
637 | 65 #define NGX_HTTP_CONFLICT 409 |
581 | 66 #define NGX_HTTP_LENGTH_REQUIRED 411 |
162
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
67 #define NGX_HTTP_REQUEST_ENTITY_TOO_LARGE 413 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
68 #define NGX_HTTP_REQUEST_URI_TOO_LARGE 414 |
637 | 69 #define NGX_HTTP_UNSUPPORTED_MEDIA_TYPE 415 |
162
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
70 #define NGX_HTTP_RANGE_NOT_SATISFIABLE 416 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
71 |
335
d4241d7787fe
nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
315
diff
changeset
|
72 |
d4241d7787fe
nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
315
diff
changeset
|
73 /* Our own HTTP codes */ |
d4241d7787fe
nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
315
diff
changeset
|
74 |
587 | 75 /* The special code to close connection without any response */ |
76 #define NGX_HTTP_CLOSE 444 | |
77 | |
647 | 78 #define NGX_HTTP_OWN_CODES 495 |
79 | |
80 #define NGX_HTTPS_CERT_ERROR 495 | |
81 #define NGX_HTTPS_NO_CERT 496 | |
384
e7054aaedf68
nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
367
diff
changeset
|
82 |
e7054aaedf68
nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
367
diff
changeset
|
83 /* |
e7054aaedf68
nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
367
diff
changeset
|
84 * We use the special code for the plain HTTP requests that are sent to |
577 | 85 * HTTPS port to distinguish it from 4XX in an error page redirection |
384
e7054aaedf68
nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
367
diff
changeset
|
86 */ |
e7054aaedf68
nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
367
diff
changeset
|
87 #define NGX_HTTP_TO_HTTPS 497 |
335
d4241d7787fe
nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
315
diff
changeset
|
88 |
613 | 89 /* 498 is the canceled code for the requests with invalid host name */ |
335
d4241d7787fe
nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
315
diff
changeset
|
90 |
189
c966c09be66b
nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
179
diff
changeset
|
91 /* |
232
03c54b6d7a6f
nginx-0.0.1-2004-01-19-00:09:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
216
diff
changeset
|
92 * HTTP does not define the code for the case when a client closed |
03c54b6d7a6f
nginx-0.0.1-2004-01-19-00:09:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
216
diff
changeset
|
93 * the connection while we are processing its request so we introduce |
03c54b6d7a6f
nginx-0.0.1-2004-01-19-00:09:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
216
diff
changeset
|
94 * own code to log such situation when a client has closed the connection |
03c54b6d7a6f
nginx-0.0.1-2004-01-19-00:09:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
216
diff
changeset
|
95 * before we even try to send the HTTP header to it |
189
c966c09be66b
nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
179
diff
changeset
|
96 */ |
190
02a715e85df1
nginx-0.0.1-2003-11-19-00:34:08 import
Igor Sysoev <igor@sysoev.ru>
parents:
189
diff
changeset
|
97 #define NGX_HTTP_CLIENT_CLOSED_REQUEST 499 |
189
c966c09be66b
nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
179
diff
changeset
|
98 |
335
d4241d7787fe
nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
315
diff
changeset
|
99 |
162
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
100 #define NGX_HTTP_INTERNAL_SERVER_ERROR 500 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
101 #define NGX_HTTP_NOT_IMPLEMENTED 501 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
102 #define NGX_HTTP_BAD_GATEWAY 502 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
103 #define NGX_HTTP_SERVICE_UNAVAILABLE 503 |
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
160
diff
changeset
|
104 #define NGX_HTTP_GATEWAY_TIME_OUT 504 |
637 | 105 #define NGX_HTTP_INSUFFICIENT_STORAGE 507 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
106 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
107 |
597 | 108 #define NGX_HTTP_LOWLEVEL_BUFFERED 0x000000f0 |
109 #define NGX_HTTP_WRITE_BUFFERED 0x00000010 | |
110 #define NGX_HTTP_GZIP_BUFFERED 0x00000020 | |
111 #define NGX_HTTP_SSI_BUFFERED 0x00000100 | |
112 #define NGX_HTTP_COPY_BUFFERED 0x00000200 | |
113 | |
114 | |
216
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
115 typedef enum { |
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
116 NGX_HTTP_INITING_REQUEST_STATE = 0, |
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
117 NGX_HTTP_READING_REQUEST_STATE, |
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
118 NGX_HTTP_PROCESS_REQUEST_STATE, |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
119 |
216
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
120 NGX_HTTP_CONNECT_UPSTREAM_STATE, |
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
121 NGX_HTTP_WRITING_UPSTREAM_STATE, |
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
122 NGX_HTTP_READING_UPSTREAM_STATE, |
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
123 |
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
124 NGX_HTTP_WRITING_REQUEST_STATE, |
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
125 NGX_HTTP_LINGERING_CLOSE_STATE, |
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
126 NGX_HTTP_KEEPALIVE_STATE |
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
127 } ngx_http_state_e; |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
128 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
129 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
130 typedef struct { |
501 | 131 ngx_str_t name; |
132 ngx_uint_t offset; | |
509 | 133 ngx_http_header_handler_pt handler; |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
134 } ngx_http_header_t; |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
135 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
136 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
137 typedef struct { |
509 | 138 ngx_str_t name; |
139 ngx_uint_t offset; | |
569 | 140 } ngx_http_header_out_t; |
509 | 141 |
142 | |
143 typedef struct { | |
501 | 144 ngx_list_t headers; |
164
84036764e215
nginx-0.0.1-2003-10-29-11:30:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
162
diff
changeset
|
145 |
501 | 146 ngx_table_elt_t *host; |
147 ngx_table_elt_t *connection; | |
148 ngx_table_elt_t *if_modified_since; | |
149 ngx_table_elt_t *user_agent; | |
150 ngx_table_elt_t *referer; | |
151 ngx_table_elt_t *content_length; | |
152 ngx_table_elt_t *content_type; | |
155
46eb23d9471d
nginx-0.0.1-2003-10-22-20:38:26 import
Igor Sysoev <igor@sysoev.ru>
parents:
154
diff
changeset
|
153 |
501 | 154 ngx_table_elt_t *range; |
287
35a6a9df2d25
nginx-0.0.2-2004-03-12-19:57:08 import
Igor Sysoev <igor@sysoev.ru>
parents:
232
diff
changeset
|
155 |
581 | 156 ngx_table_elt_t *transfer_encoding; |
157 | |
287
35a6a9df2d25
nginx-0.0.2-2004-03-12-19:57:08 import
Igor Sysoev <igor@sysoev.ru>
parents:
232
diff
changeset
|
158 #if (NGX_HTTP_GZIP) |
501 | 159 ngx_table_elt_t *accept_encoding; |
160 ngx_table_elt_t *via; | |
287
35a6a9df2d25
nginx-0.0.2-2004-03-12-19:57:08 import
Igor Sysoev <igor@sysoev.ru>
parents:
232
diff
changeset
|
161 #endif |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
162 |
501 | 163 ngx_table_elt_t *authorization; |
172
caa57ddf6d77
nginx-0.0.1-2003-11-04-01:20:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
170
diff
changeset
|
164 |
501 | 165 ngx_table_elt_t *keep_alive; |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
166 |
573 | 167 #if (NGX_HTTP_PROXY || NGX_HTTP_REALIP) |
501 | 168 ngx_table_elt_t *x_forwarded_for; |
287
35a6a9df2d25
nginx-0.0.2-2004-03-12-19:57:08 import
Igor Sysoev <igor@sysoev.ru>
parents:
232
diff
changeset
|
169 #endif |
35a6a9df2d25
nginx-0.0.2-2004-03-12-19:57:08 import
Igor Sysoev <igor@sysoev.ru>
parents:
232
diff
changeset
|
170 |
573 | 171 #if (NGX_HTTP_REALIP) |
172 ngx_table_elt_t *x_real_ip; | |
173 #endif | |
174 | |
489 | 175 #if (NGX_HTTP_HEADERS) |
501 | 176 ngx_table_elt_t *accept; |
177 ngx_table_elt_t *accept_language; | |
489 | 178 #endif |
179 | |
637 | 180 #if (NGX_HTTP_DAV) |
181 ngx_table_elt_t *depth; | |
182 ngx_table_elt_t *destination; | |
183 #endif | |
184 | |
503 | 185 ngx_str_t user; |
186 ngx_str_t passwd; | |
187 | |
501 | 188 ngx_array_t cookies; |
189 | |
190 size_t host_name_len; | |
191 ssize_t content_length_n; | |
192 time_t keep_alive_n; | |
408
d6e2b445c1b8
nginx-0.0.10-2004-08-27-19:40:59 import
Igor Sysoev <igor@sysoev.ru>
parents:
396
diff
changeset
|
193 |
501 | 194 unsigned connection_type:2; |
195 unsigned msie:1; | |
196 unsigned msie4:1; | |
197 unsigned opera:1; | |
198 unsigned gecko:1; | |
199 unsigned konqueror:1; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
200 } ngx_http_headers_in_t; |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
201 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
202 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
203 typedef struct { |
501 | 204 off_t start; |
205 off_t end; | |
206 ngx_str_t content_range; | |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
207 } ngx_http_range_t; |
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
208 |
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
209 |
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
210 typedef struct { |
501 | 211 ngx_list_t headers; |
164
84036764e215
nginx-0.0.1-2003-10-29-11:30:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
162
diff
changeset
|
212 |
501 | 213 ngx_uint_t status; |
214 ngx_str_t status_line; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
215 |
501 | 216 ngx_table_elt_t *server; |
217 ngx_table_elt_t *date; | |
218 ngx_table_elt_t *content_length; | |
219 ngx_table_elt_t *content_encoding; | |
220 ngx_table_elt_t *location; | |
221 ngx_table_elt_t *last_modified; | |
222 ngx_table_elt_t *content_range; | |
223 ngx_table_elt_t *accept_ranges; | |
503 | 224 ngx_table_elt_t *www_authenticate; |
501 | 225 ngx_table_elt_t *expires; |
226 ngx_table_elt_t *etag; | |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
227 |
509 | 228 ngx_str_t content_type; |
501 | 229 ngx_str_t charset; |
230 ngx_array_t ranges; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
231 |
509 | 232 ngx_array_t cache_control; |
233 | |
501 | 234 off_t content_length_n; |
235 time_t date_time; | |
236 time_t last_modified_time; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
237 } ngx_http_headers_out_t; |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
238 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
239 |
479 | 240 typedef void (*ngx_http_client_body_handler_pt)(ngx_http_request_t *r); |
241 | |
297
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
296
diff
changeset
|
242 typedef struct { |
479 | 243 ngx_temp_file_t *temp_file; |
244 ngx_chain_t *bufs; | |
245 ngx_buf_t *buf; | |
246 size_t rest; | |
633 | 247 ngx_chain_t *to_write; |
479 | 248 ngx_http_client_body_handler_pt post_handler; |
297
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
296
diff
changeset
|
249 } ngx_http_request_body_t; |
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
296
diff
changeset
|
250 |
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
296
diff
changeset
|
251 |
432
11362a3e3911
nginx-0.0.11-2004-09-21-09:38:28 import
Igor Sysoev <igor@sysoev.ru>
parents:
429
diff
changeset
|
252 typedef struct { |
501 | 253 ngx_http_request_t *request; |
433
9a97dcdd2421
nginx-0.0.11-2004-09-21-19:47:05 import
Igor Sysoev <igor@sysoev.ru>
parents:
432
diff
changeset
|
254 |
501 | 255 ngx_buf_t **busy; |
256 ngx_int_t nbusy; | |
433
9a97dcdd2421
nginx-0.0.11-2004-09-21-19:47:05 import
Igor Sysoev <igor@sysoev.ru>
parents:
432
diff
changeset
|
257 |
501 | 258 ngx_buf_t **free; |
259 ngx_int_t nfree; | |
433
9a97dcdd2421
nginx-0.0.11-2004-09-21-19:47:05 import
Igor Sysoev <igor@sysoev.ru>
parents:
432
diff
changeset
|
260 |
501 | 261 ngx_uint_t pipeline; /* unsigned pipeline:1; */ |
432
11362a3e3911
nginx-0.0.11-2004-09-21-09:38:28 import
Igor Sysoev <igor@sysoev.ru>
parents:
429
diff
changeset
|
262 } ngx_http_connection_t; |
11362a3e3911
nginx-0.0.11-2004-09-21-09:38:28 import
Igor Sysoev <igor@sysoev.ru>
parents:
429
diff
changeset
|
263 |
11362a3e3911
nginx-0.0.11-2004-09-21-09:38:28 import
Igor Sysoev <igor@sysoev.ru>
parents:
429
diff
changeset
|
264 |
593 | 265 typedef struct { |
266 ngx_hash_t hash; | |
267 ngx_hash_wildcard_t *dns_wildcards; | |
268 } ngx_http_virtual_names_t; | |
269 | |
270 | |
569 | 271 typedef void (*ngx_http_cleanup_pt)(void *data); |
272 | |
273 typedef struct ngx_http_cleanup_s ngx_http_cleanup_t; | |
274 | |
275 struct ngx_http_cleanup_s { | |
593 | 276 ngx_http_cleanup_pt handler; |
277 void *data; | |
278 ngx_http_cleanup_t *next; | |
569 | 279 }; |
280 | |
281 | |
509 | 282 typedef struct ngx_http_postponed_request_s ngx_http_postponed_request_t; |
283 | |
284 struct ngx_http_postponed_request_s { | |
535 | 285 ngx_http_request_t *request; |
286 ngx_chain_t *out; | |
287 ngx_http_postponed_request_t *next; | |
509 | 288 }; |
289 | |
290 | |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
291 typedef ngx_int_t (*ngx_http_handler_pt)(ngx_http_request_t *r); |
509 | 292 typedef void (*ngx_http_event_handler_pt)(ngx_http_request_t *r); |
293 | |
143
5526213be452
nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents:
141
diff
changeset
|
294 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
295 struct ngx_http_request_s { |
501 | 296 uint32_t signature; /* "HTTP" */ |
367
ceec87d1c2b3
nginx-0.0.7-2004-06-24-11:53:37 import
Igor Sysoev <igor@sysoev.ru>
parents:
362
diff
changeset
|
297 |
501 | 298 ngx_connection_t *connection; |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
299 |
501 | 300 void **ctx; |
301 void **main_conf; | |
302 void **srv_conf; | |
303 void **loc_conf; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
304 |
509 | 305 ngx_http_event_handler_pt read_event_handler; |
306 ngx_http_event_handler_pt write_event_handler; | |
307 | |
501 | 308 ngx_http_cache_t *cache; |
197
0b81c7a0b133
nginx-0.0.1-2003-11-27-10:45:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
190
diff
changeset
|
309 |
501 | 310 ngx_http_upstream_t *upstream; |
479 | 311 |
501 | 312 ngx_pool_t *pool; |
313 ngx_buf_t *header_in; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
314 |
501 | 315 ngx_http_headers_in_t headers_in; |
316 ngx_http_headers_out_t headers_out; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
317 |
501 | 318 ngx_http_request_body_t *request_body; |
297
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
296
diff
changeset
|
319 |
501 | 320 time_t lingering_time; |
321 time_t start_time; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
322 |
501 | 323 ngx_uint_t method; |
324 ngx_uint_t http_version; | |
325 ngx_uint_t http_major; | |
326 ngx_uint_t http_minor; | |
577 | 327 |
501 | 328 ngx_str_t request_line; |
329 ngx_str_t uri; | |
330 ngx_str_t args; | |
331 ngx_str_t exten; | |
332 ngx_str_t unparsed_uri; | |
314
d71c87d11b16
nginx-0.0.3-2004-04-14-09:57:36 import
Igor Sysoev <igor@sysoev.ru>
parents:
313
diff
changeset
|
333 |
501 | 334 ngx_str_t method_name; |
335 ngx_str_t http_protocol; | |
577 | 336 |
509 | 337 ngx_chain_t *out; |
501 | 338 ngx_http_request_t *main; |
509 | 339 ngx_http_request_t *parent; |
340 ngx_http_postponed_request_t *postponed; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
341 |
501 | 342 uint32_t in_addr; |
343 ngx_uint_t port; | |
344 ngx_str_t *port_text; /* ":80" */ | |
345 ngx_str_t server_name; | |
593 | 346 ngx_http_virtual_names_t *virtual_names; |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
347 |
501 | 348 ngx_uint_t phase; |
349 ngx_int_t phase_handler; | |
350 ngx_http_handler_pt content_handler; | |
543 | 351 ngx_uint_t access_code; |
485 | 352 |
573 | 353 ngx_http_variable_value_t *variables; |
501 | 354 |
595 | 355 size_t root_length; |
356 | |
527 | 357 size_t limit_rate; |
358 | |
297
ee394e997c77
nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
296
diff
changeset
|
359 /* used to learn the Apache compatible response length without a header */ |
501 | 360 size_t header_size; |
210
00cafae0bdf1
nginx-0.0.1-2003-12-14-23:10:27 import
Igor Sysoev <igor@sysoev.ru>
parents:
201
diff
changeset
|
361 |
501 | 362 size_t request_length; |
475 | 363 |
501 | 364 void **err_ctx; |
365 ngx_uint_t err_status; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
366 |
501 | 367 ngx_http_connection_t *http_connection; |
432
11362a3e3911
nginx-0.0.11-2004-09-21-09:38:28 import
Igor Sysoev <igor@sysoev.ru>
parents:
429
diff
changeset
|
368 |
509 | 369 ngx_http_log_handler_pt log_handler; |
370 | |
569 | 371 ngx_http_cleanup_t *cleanup; |
372 | |
501 | 373 unsigned http_state:4; |
216
f1d0e5f09c1e
nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents:
210
diff
changeset
|
374 |
452 | 375 /* URI with "/." and on Win32 with "//" */ |
501 | 376 unsigned complex_uri:1; |
485 | 377 |
452 | 378 /* URI with "%" */ |
501 | 379 unsigned quoted_uri:1; |
485 | 380 |
381 /* URI with "+" */ | |
501 | 382 unsigned plus_in_uri:1; |
485 | 383 |
489 | 384 /* URI with "\0" or "%00" */ |
501 | 385 unsigned zero_in_uri:1; |
489 | 386 |
511 | 387 unsigned invalid_header:1; |
388 | |
509 | 389 unsigned valid_location:1; |
505 | 390 unsigned valid_unparsed_uri:1; |
501 | 391 unsigned uri_changed:1; |
392 unsigned uri_changes:4; | |
485 | 393 |
633 | 394 unsigned request_body_in_single_buf:1; |
395 unsigned request_body_in_file_only:1; | |
396 unsigned request_body_in_persistent_file:1; | |
397 unsigned request_body_delete_incomplete_file:1; | |
398 unsigned request_body_file_group_access:1; | |
637 | 399 unsigned request_body_file_log_level:3; |
633 | 400 |
597 | 401 unsigned fast_subrequest:1; |
402 | |
501 | 403 unsigned low_case_exten:1; |
404 unsigned header_timeout_set:1; | |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
405 |
501 | 406 unsigned proxy:1; |
407 unsigned bypass_cache:1; | |
408 unsigned no_cache:1; | |
170
c42be4185301
nginx-0.0.1-2003-11-03-01:56:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
164
diff
changeset
|
409 |
573 | 410 #if (NGX_HTTP_REALIP) |
411 | |
412 /* | |
413 * instead of using the request context data in ngx_http_realip_module | |
414 * we use the single bit in the request structure | |
415 */ | |
416 unsigned realip_set:1; | |
417 | |
418 #endif | |
419 | |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
420 #if 0 |
501 | 421 unsigned cachable:1; |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
422 #endif |
509 | 423 |
501 | 424 unsigned pipeline:1; |
425 unsigned plain_http:1; | |
426 unsigned chunked:1; | |
427 unsigned header_only:1; | |
428 unsigned keepalive:1; | |
429 unsigned lingering_close:1; | |
537 | 430 unsigned discard_body:1; |
509 | 431 unsigned internal:1; |
629 | 432 unsigned post_action:1; |
433 unsigned request_complete:1; | |
509 | 434 unsigned done:1; |
523 | 435 unsigned utf8:1; |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
436 |
513 | 437 unsigned main_filter_need_in_memory:1; |
501 | 438 unsigned filter_need_in_memory:1; |
439 unsigned filter_need_temporary:1; | |
581 | 440 unsigned allow_ranges:1; |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
441 |
427
0d08eabe5c7b
nginx-0.0.10-2004-09-15-20:00:43 import
Igor Sysoev <igor@sysoev.ru>
parents:
426
diff
changeset
|
442 #if (NGX_STAT_STUB) |
501 | 443 unsigned stat_reading:1; |
444 unsigned stat_writing:1; | |
427
0d08eabe5c7b
nginx-0.0.10-2004-09-15-20:00:43 import
Igor Sysoev <igor@sysoev.ru>
parents:
426
diff
changeset
|
445 #endif |
0d08eabe5c7b
nginx-0.0.10-2004-09-15-20:00:43 import
Igor Sysoev <igor@sysoev.ru>
parents:
426
diff
changeset
|
446 |
99
a059e1aa65d4
nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
96
diff
changeset
|
447 /* used to parse HTTP headers */ |
501 | 448 ngx_uint_t state; |
449 u_char *uri_start; | |
450 u_char *uri_end; | |
451 u_char *uri_ext; | |
452 u_char *args_start; | |
453 u_char *request_start; | |
454 u_char *request_end; | |
455 u_char *method_end; | |
456 u_char *schema_start; | |
457 u_char *schema_end; | |
458 u_char *host_start; | |
459 u_char *host_end; | |
460 u_char *port_start; | |
461 u_char *port_end; | |
462 u_char *header_name_start; | |
463 u_char *header_name_end; | |
464 u_char *header_start; | |
465 u_char *header_end; | |
507 | 466 ngx_uint_t header_hash; |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
467 }; |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
468 |
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
469 |
569 | 470 extern ngx_http_header_t ngx_http_headers_in[]; |
471 extern ngx_http_header_out_t ngx_http_headers_out[]; | |
164
84036764e215
nginx-0.0.1-2003-10-29-11:30:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
162
diff
changeset
|
472 |
84036764e215
nginx-0.0.1-2003-10-29-11:30:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
162
diff
changeset
|
473 |
91
637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
474 #endif /* _NGX_HTTP_REQUEST_H_INCLUDED_ */ |