annotate src/http/ngx_http_request.h @ 8020:f8f6b9fee66a

FastCGI: combining headers with identical names (ticket #1724). FastCGI responder is expected to receive CGI/1.1 environment variables in the parameters (see section "6.2 Responder" of the FastCGI specification). Obviously enough, there cannot be multiple environment variables with the same name. Further, CGI specification (RFC 3875, section "4.1.18. Protocol-Specific Meta-Variables") explicitly requires to combine headers: "If multiple header fields with the same field-name are received then the server MUST rewrite them as a single value having the same semantics".
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 30 May 2022 21:25:27 +0300
parents 9cf043a5d9ca
children ef6a3a99a81a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 4280
diff changeset
4 * Copyright (C) Nginx, Inc.
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
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
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
7
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #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
9 #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
10
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
651
39b7d7b33c91 nginx-0.3.47-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
12 #define NGX_HTTP_MAX_URI_CHANGES 10
6239
281863981d0b Decreased the NGX_HTTP_MAX_SUBREQUESTS limit.
Valentin Bartenev <vbart@nginx.com>
parents: 6238
diff changeset
13 #define NGX_HTTP_MAX_SUBREQUESTS 50
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
14
649
1e720b0be7ec nginx-0.3.46-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 647
diff changeset
15 /* must be 2^n */
1e720b0be7ec nginx-0.3.46-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 647
diff changeset
16 #define NGX_HTTP_LC_HEADER_LEN 32
1e720b0be7ec nginx-0.3.46-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 647
diff changeset
17
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
18
436
9549fc9508e5 nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 435
diff changeset
19 #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
20 #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
21
9549fc9508e5 nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 435
diff changeset
22
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 287
diff changeset
23 #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
24 #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
25 #define NGX_HTTP_VERSION_11 1001
6246
257b51c37c5a The HTTP/2 implementation (RFC 7240, 7241).
Valentin Bartenev <vbart@nginx.com>
parents: 6239
diff changeset
26 #define NGX_HTTP_VERSION_20 2000
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
27
7877
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
28 #define NGX_HTTP_UNKNOWN 0x00000001
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
29 #define NGX_HTTP_GET 0x00000002
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
30 #define NGX_HTTP_HEAD 0x00000004
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
31 #define NGX_HTTP_POST 0x00000008
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
32 #define NGX_HTTP_PUT 0x00000010
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
33 #define NGX_HTTP_DELETE 0x00000020
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
34 #define NGX_HTTP_MKCOL 0x00000040
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
35 #define NGX_HTTP_COPY 0x00000080
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
36 #define NGX_HTTP_MOVE 0x00000100
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
37 #define NGX_HTTP_OPTIONS 0x00000200
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
38 #define NGX_HTTP_PROPFIND 0x00000400
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
39 #define NGX_HTTP_PROPPATCH 0x00000800
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
40 #define NGX_HTTP_LOCK 0x00001000
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
41 #define NGX_HTTP_UNLOCK 0x00002000
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
42 #define NGX_HTTP_PATCH 0x00004000
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
43 #define NGX_HTTP_TRACE 0x00008000
63c66b7cc07c Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7752
diff changeset
44 #define NGX_HTTP_CONNECT 0x00010000
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
45
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 287
diff changeset
46 #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
47 #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
48
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 287
diff changeset
50 #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
51
656d468f4ead nginx-0.0.1-2003-10-08-19:32:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 136
diff changeset
52
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 287
diff changeset
53 #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
54
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 287
diff changeset
55 #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
56 #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
57 #define NGX_HTTP_PARSE_INVALID_REQUEST 11
6993
8801ff7d58e1 Don't pretend we support HTTP major versions >1 as HTTP/1.1.
Ruslan Ermilov <ru@nginx.com>
parents: 6977
diff changeset
58 #define NGX_HTTP_PARSE_INVALID_VERSION 12
8801ff7d58e1 Don't pretend we support HTTP major versions >1 as HTTP/1.1.
Ruslan Ermilov <ru@nginx.com>
parents: 6977
diff changeset
59 #define NGX_HTTP_PARSE_INVALID_09_METHOD 13
160
e7e094d34162 nginx-0.0.1-2003-10-27-11:53:49 import
Igor Sysoev <igor@sysoev.ru>
parents: 155
diff changeset
60
6993
8801ff7d58e1 Don't pretend we support HTTP major versions >1 as HTTP/1.1.
Ruslan Ermilov <ru@nginx.com>
parents: 6977
diff changeset
61 #define NGX_HTTP_PARSE_INVALID_HEADER 14
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
62
777
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
63
3527
84905c7b2aa7 remove r->zero_in_uri
Igor Sysoev <igor@sysoev.ru>
parents: 3419
diff changeset
64 /* unused 1 */
777
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
65 #define NGX_HTTP_SUBREQUEST_IN_MEMORY 2
2377
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
66 #define NGX_HTTP_SUBREQUEST_WAITED 4
6906
1aeaae6e9446 Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents: 6735
diff changeset
67 #define NGX_HTTP_SUBREQUEST_CLONE 8
7006
9552758a786e Background subrequests for cache updates.
Roman Arutyunyan <arut@nginx.com>
parents: 6993
diff changeset
68 #define NGX_HTTP_SUBREQUEST_BACKGROUND 16
6906
1aeaae6e9446 Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents: 6735
diff changeset
69
1aeaae6e9446 Upstream: proxy_cache_background_update and friends.
Roman Arutyunyan <arut@nginx.com>
parents: 6735
diff changeset
70 #define NGX_HTTP_LOG_UNSAFE 1
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
71
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
72
5072
7fa7e60a7f66 Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents: 4930
diff changeset
73 #define NGX_HTTP_CONTINUE 100
7fa7e60a7f66 Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents: 4930
diff changeset
74 #define NGX_HTTP_SWITCHING_PROTOCOLS 101
7fa7e60a7f66 Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents: 4930
diff changeset
75 #define NGX_HTTP_PROCESSING 102
7fa7e60a7f66 Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents: 4930
diff changeset
76
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 160
diff changeset
77 #define NGX_HTTP_OK 200
633
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 631
diff changeset
78 #define NGX_HTTP_CREATED 201
3604
3a64bdacf1e4 202 Accepted status code
Igor Sysoev <igor@sysoev.ru>
parents: 3534
diff changeset
79 #define NGX_HTTP_ACCEPTED 202
511
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
80 #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
81 #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
82
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 160
diff changeset
83 #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
84 #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
85 #define NGX_HTTP_MOVED_TEMPORARILY 302
3631
eb5e237bfa58 303 See Other
Igor Sysoev <igor@sysoev.ru>
parents: 3615
diff changeset
86 #define NGX_HTTP_SEE_OTHER 303
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 160
diff changeset
87 #define NGX_HTTP_NOT_MODIFIED 304
4491
d11f86a16e3b Added support for the 307 Temporary Redirect.
Ruslan Ermilov <ru@nginx.com>
parents: 4457
diff changeset
88 #define NGX_HTTP_TEMPORARY_REDIRECT 307
6977
be5cfa918bfc Added support for the "308 Permanent Redirect" (ticket #877).
Simon Leblanc <contact@leblanc-simon.eu>
parents: 6965
diff changeset
89 #define NGX_HTTP_PERMANENT_REDIRECT 308
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
90
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 160
diff changeset
91 #define NGX_HTTP_BAD_REQUEST 400
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
92 #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
93 #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
94 #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
95 #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
96 #define NGX_HTTP_REQUEST_TIME_OUT 408
637
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
97 #define NGX_HTTP_CONFLICT 409
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
98 #define NGX_HTTP_LENGTH_REQUIRED 411
1057
bbde03037ef6 NGX_HTTP_PRECONDITION_FAILED
Igor Sysoev <igor@sysoev.ru>
parents: 984
diff changeset
99 #define NGX_HTTP_PRECONDITION_FAILED 412
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_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
101 #define NGX_HTTP_REQUEST_URI_TOO_LARGE 414
637
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
102 #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
103 #define NGX_HTTP_RANGE_NOT_SATISFIABLE 416
6556
654d2dae97d3 HTTP/2: the "421 Misdirected Request" response (closes #848).
Valentin Bartenev <vbart@nginx.com>
parents: 6538
diff changeset
104 #define NGX_HTTP_MISDIRECTED_REQUEST 421
6965
3ef4cadfad7f Added support for "429 Too Many Requests" response (RFC6585).
Piotr Sikora <piotrsikora@google.com>
parents: 6926
diff changeset
105 #define NGX_HTTP_TOO_MANY_REQUESTS 429
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
106
335
d4241d7787fe nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 315
diff changeset
107
d4241d7787fe nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 315
diff changeset
108 /* 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
109
587
284cc140593b nginx-0.3.15-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
110 /* The special code to close connection without any response */
284cc140593b nginx-0.3.15-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
111 #define NGX_HTTP_CLOSE 444
284cc140593b nginx-0.3.15-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
112
3848
de59ad6bf557 introduce 494 code "Request Header Too Large"
Igor Sysoev <igor@sysoev.ru>
parents: 3845
diff changeset
113 #define NGX_HTTP_NGINX_CODES 494
de59ad6bf557 introduce 494 code "Request Header Too Large"
Igor Sysoev <igor@sysoev.ru>
parents: 3845
diff changeset
114
de59ad6bf557 introduce 494 code "Request Header Too Large"
Igor Sysoev <igor@sysoev.ru>
parents: 3845
diff changeset
115 #define NGX_HTTP_REQUEST_HEADER_TOO_LARGE 494
647
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
116
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
117 #define NGX_HTTPS_CERT_ERROR 495
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
118 #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
119
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 367
diff changeset
120 /*
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 367
diff changeset
121 * We use the special code for the plain HTTP requests that are sent to
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
122 * 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
123 */
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 367
diff changeset
124 #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
125
613
c73c5c58c619 nginx-0.3.28-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 597
diff changeset
126 /* 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
127
189
c966c09be66b nginx-0.0.1-2003-11-18-19:49:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
128 /*
232
03c54b6d7a6f nginx-0.0.1-2004-01-19-00:09:21 import
Igor Sysoev <igor@sysoev.ru>
parents: 216
diff changeset
129 * 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
130 * 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
131 * 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
132 * 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
133 */
190
02a715e85df1 nginx-0.0.1-2003-11-19-00:34:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 189
diff changeset
134 #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
135
335
d4241d7787fe nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 315
diff changeset
136
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 160
diff changeset
137 #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
138 #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
139 #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
140 #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
141 #define NGX_HTTP_GATEWAY_TIME_OUT 504
6993
8801ff7d58e1 Don't pretend we support HTTP major versions >1 as HTTP/1.1.
Ruslan Ermilov <ru@nginx.com>
parents: 6977
diff changeset
142 #define NGX_HTTP_VERSION_NOT_SUPPORTED 505
637
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
143 #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
144
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
145
829
362d156f0278 high level HTTP buffered flags should be on per-subrequest basis,
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
146 #define NGX_HTTP_LOWLEVEL_BUFFERED 0xf0
362d156f0278 high level HTTP buffered flags should be on per-subrequest basis,
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
147 #define NGX_HTTP_WRITE_BUFFERED 0x10
362d156f0278 high level HTTP buffered flags should be on per-subrequest basis,
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
148 #define NGX_HTTP_GZIP_BUFFERED 0x20
362d156f0278 high level HTTP buffered flags should be on per-subrequest basis,
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
149 #define NGX_HTTP_SSI_BUFFERED 0x01
1172
383ae25c3171 ngx_http_sub_filter_module
Igor Sysoev <igor@sysoev.ru>
parents: 1168
diff changeset
150 #define NGX_HTTP_SUB_BUFFERED 0x02
383ae25c3171 ngx_http_sub_filter_module
Igor Sysoev <igor@sysoev.ru>
parents: 1168
diff changeset
151 #define NGX_HTTP_COPY_BUFFERED 0x04
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 595
diff changeset
152
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 595
diff changeset
153
216
f1d0e5f09c1e nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 210
diff changeset
154 typedef enum {
f1d0e5f09c1e nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 210
diff changeset
155 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
156 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
157 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
158
216
f1d0e5f09c1e nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 210
diff changeset
159 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
160 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
161 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
162
f1d0e5f09c1e nginx-0.0.1-2003-12-25-23:26:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 210
diff changeset
163 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
164 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
165 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
166 } 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
167
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
168
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
169 typedef struct {
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
170 ngx_str_t name;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
171 ngx_uint_t offset;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
172 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
173 } ngx_http_header_t;
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
174
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
175
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
176 typedef struct {
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
177 ngx_str_t name;
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
178 ngx_uint_t offset;
569
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
179 } ngx_http_header_out_t;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
180
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
181
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
182 typedef struct {
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
183 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
184
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
185 ngx_table_elt_t *host;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
186 ngx_table_elt_t *connection;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
187 ngx_table_elt_t *if_modified_since;
3814
e6e453203bae "If-Unmodified-Since" support
Igor Sysoev <igor@sysoev.ru>
parents: 3663
diff changeset
188 ngx_table_elt_t *if_unmodified_since;
4744
5b93a9ac60ed Entity tags: basic support in not modified filter.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4697
diff changeset
189 ngx_table_elt_t *if_match;
5b93a9ac60ed Entity tags: basic support in not modified filter.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4697
diff changeset
190 ngx_table_elt_t *if_none_match;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
191 ngx_table_elt_t *user_agent;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
192 ngx_table_elt_t *referer;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
193 ngx_table_elt_t *content_length;
6538
055cbb52ac1d Dav: return 501 on PUT with ranges (ticket #948).
Maxim Dounin <mdounin@mdounin.ru>
parents: 6496
diff changeset
194 ngx_table_elt_t *content_range;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
195 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
196
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
197 ngx_table_elt_t *range;
1630
9706372f8916 If-Range support
Igor Sysoev <igor@sysoev.ru>
parents: 1565
diff changeset
198 ngx_table_elt_t *if_range;
287
35a6a9df2d25 nginx-0.0.2-2004-03-12-19:57:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 232
diff changeset
199
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
200 ngx_table_elt_t *transfer_encoding;
7234
c693daca57f7 gRPC: special handling of the TE request header.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7206
diff changeset
201 ngx_table_elt_t *te;
2067
5657037448d1 the "Expect" header support
Igor Sysoev <igor@sysoev.ru>
parents: 2007
diff changeset
202 ngx_table_elt_t *expect;
5072
7fa7e60a7f66 Proxy: support for connection upgrade (101 Switching Protocols).
Maxim Dounin <mdounin@mdounin.ru>
parents: 4930
diff changeset
203 ngx_table_elt_t *upgrade;
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
204
7206
33edea74bd58 Expose more headers with NGX_HTTP_HEADERS.
Ruslan Ermilov <ru@nginx.com>
parents: 7199
diff changeset
205 #if (NGX_HTTP_GZIP || NGX_HTTP_HEADERS)
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
206 ngx_table_elt_t *accept_encoding;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
207 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
208 #endif
99
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 96
diff changeset
209
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
210 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
211
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
212 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
213
4697
09187f9b0950 Fixed compile-time conditionals used to detect if X-Forwarded-For support
Ruslan Ermilov <ru@nginx.com>
parents: 4501
diff changeset
214 #if (NGX_HTTP_X_FORWARDED_FOR)
5084
f7fe817c92a2 Correctly handle multiple X-Forwarded-For headers (ticket #106).
Ruslan Ermilov <ru@nginx.com>
parents: 5072
diff changeset
215 ngx_array_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
216 #endif
35a6a9df2d25 nginx-0.0.2-2004-03-12-19:57:08 import
Igor Sysoev <igor@sysoev.ru>
parents: 232
diff changeset
217
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
218 #if (NGX_HTTP_REALIP)
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
219 ngx_table_elt_t *x_real_ip;
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
220 #endif
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
221
489
45a460f82aec nginx-0.1.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 485
diff changeset
222 #if (NGX_HTTP_HEADERS)
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
223 ngx_table_elt_t *accept;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
224 ngx_table_elt_t *accept_language;
489
45a460f82aec nginx-0.1.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 485
diff changeset
225 #endif
45a460f82aec nginx-0.1.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 485
diff changeset
226
637
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
227 #if (NGX_HTTP_DAV)
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
228 ngx_table_elt_t *depth;
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
229 ngx_table_elt_t *destination;
1059
bff1312b84ed the "Overwrite" header line
Igor Sysoev <igor@sysoev.ru>
parents: 1057
diff changeset
230 ngx_table_elt_t *overwrite;
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
231 ngx_table_elt_t *date;
637
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
232 #endif
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
233
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
234 ngx_str_t user;
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
235 ngx_str_t passwd;
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
236
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
237 ngx_array_t cookies;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
238
2007
b9de93d804ea *) host in request line has priority
Igor Sysoev <igor@sysoev.ru>
parents: 1856
diff changeset
239 ngx_str_t server;
663
6d5c1535bb9d nginx-0.3.53-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 657
diff changeset
240 off_t content_length_n;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
241 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
242
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
243 unsigned connection_type:2;
4930
6f085bfcdb4d Request body: chunked transfer encoding support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4744
diff changeset
244 unsigned chunked:1;
8020
f8f6b9fee66a FastCGI: combining headers with identical names (ticket #1724).
Maxim Dounin <mdounin@mdounin.ru>
parents: 7914
diff changeset
245 unsigned multi:1;
f8f6b9fee66a FastCGI: combining headers with identical names (ticket #1724).
Maxim Dounin <mdounin@mdounin.ru>
parents: 7914
diff changeset
246 unsigned multi_linked:1;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
247 unsigned msie:1;
2205
5398f47082f0 gzip_disable msie6
Igor Sysoev <igor@sysoev.ru>
parents: 2176
diff changeset
248 unsigned msie6:1;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
249 unsigned opera:1;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
250 unsigned gecko:1;
3315
63fafb988446 r->chrome
Igor Sysoev <igor@sysoev.ru>
parents: 3313
diff changeset
251 unsigned chrome:1;
3419
fcd72b8d69f3 disable keepalive for Safari:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
252 unsigned safari:1;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
253 unsigned konqueror:1;
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
254 } 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
255
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
256
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
257 typedef struct {
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
258 ngx_list_t headers;
7034
1b068a4e82d8 Added support for trailers in HTTP responses.
Piotr Sikora <piotrsikora@google.com>
parents: 7006
diff changeset
259 ngx_list_t trailers;
164
84036764e215 nginx-0.0.1-2003-10-29-11:30:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 162
diff changeset
260
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
261 ngx_uint_t status;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
262 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
263
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
264 ngx_table_elt_t *server;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
265 ngx_table_elt_t *date;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
266 ngx_table_elt_t *content_length;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
267 ngx_table_elt_t *content_encoding;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
268 ngx_table_elt_t *location;
1654
e5c547a225bd r->headers_out.refresh
Igor Sysoev <igor@sysoev.ru>
parents: 1630
diff changeset
269 ngx_table_elt_t *refresh;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
270 ngx_table_elt_t *last_modified;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
271 ngx_table_elt_t *content_range;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
272 ngx_table_elt_t *accept_ranges;
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
273 ngx_table_elt_t *www_authenticate;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
274 ngx_table_elt_t *expires;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
275 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
276
657
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 651
diff changeset
277 ngx_str_t *override_charset;
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 651
diff changeset
278
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 651
diff changeset
279 size_t content_type_len;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
280 ngx_str_t content_type;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
281 ngx_str_t charset;
2138
fb3b084e7d42 test Content-Type via hash:
Igor Sysoev <igor@sysoev.ru>
parents: 2087
diff changeset
282 u_char *content_type_lowcase;
fb3b084e7d42 test Content-Type via hash:
Igor Sysoev <igor@sysoev.ru>
parents: 2087
diff changeset
283 ngx_uint_t content_type_hash;
657
400711951595 nginx-0.3.50-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 651
diff changeset
284
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
285 ngx_array_t cache_control;
7199
6ba68ad8b24c Basic support of the Link response header.
Ruslan Ermilov <ru@nginx.com>
parents: 7070
diff changeset
286 ngx_array_t link;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
287
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
288 off_t content_length_n;
6317
29f35e60840b Slice filter.
Roman Arutyunyan <arut@nginx.com>
parents: 6246
diff changeset
289 off_t content_offset;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
290 time_t date_time;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
291 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
292 } 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
293
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
294
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
295 typedef void (*ngx_http_client_body_handler_pt)(ngx_http_request_t *r);
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
296
297
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 296
diff changeset
297 typedef struct {
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
298 ngx_temp_file_t *temp_file;
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
299 ngx_chain_t *bufs;
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
300 ngx_buf_t *buf;
663
6d5c1535bb9d nginx-0.3.53-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 657
diff changeset
301 off_t rest;
6496
887cca40ba6a HTTP/2: rewritten handling of request body.
Valentin Bartenev <vbart@nginx.com>
parents: 6317
diff changeset
302 off_t received;
4930
6f085bfcdb4d Request body: chunked transfer encoding support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4744
diff changeset
303 ngx_chain_t *free;
6f085bfcdb4d Request body: chunked transfer encoding support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4744
diff changeset
304 ngx_chain_t *busy;
6f085bfcdb4d Request body: chunked transfer encoding support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4744
diff changeset
305 ngx_http_chunked_t *chunked;
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
306 ngx_http_client_body_handler_pt post_handler;
7914
9cf043a5d9ca Request body: reading body buffering in filters.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7913
diff changeset
307 unsigned filter_need_buffering:1;
9cf043a5d9ca Request body: reading body buffering in filters.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7913
diff changeset
308 unsigned last_sent:1;
7913
185c86b830ef Request body: introduced rb->last_saved flag.
Maxim Dounin <mdounin@mdounin.ru>
parents: 7881
diff changeset
309 unsigned last_saved:1;
297
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 296
diff changeset
310 } 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
311
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 296
diff changeset
312
5085
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
313 typedef struct ngx_http_addr_conf_s ngx_http_addr_conf_t;
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
314
432
11362a3e3911 nginx-0.0.11-2004-09-21-09:38:28 import
Igor Sysoev <igor@sysoev.ru>
parents: 429
diff changeset
315 typedef struct {
5085
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
316 ngx_http_addr_conf_t *addr_conf;
5089
903f2a5d86a5 SNI: reuse selected configuration for all requests in a connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5086
diff changeset
317 ngx_http_conf_ctx_t *conf_ctx;
5085
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
318
6735
e38e9c50a40e Modules compatibility: compatibility with NGX_HTTP_SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6718
diff changeset
319 #if (NGX_HTTP_SSL || NGX_COMPAT)
5093
68ca3e824115 SNI: avoid surplus lookup of virtual server if SNI was used.
Valentin Bartenev <vbart@nginx.com>
parents: 5091
diff changeset
320 ngx_str_t *ssl_servername;
68ca3e824115 SNI: avoid surplus lookup of virtual server if SNI was used.
Valentin Bartenev <vbart@nginx.com>
parents: 5091
diff changeset
321 #if (NGX_PCRE)
68ca3e824115 SNI: avoid surplus lookup of virtual server if SNI was used.
Valentin Bartenev <vbart@nginx.com>
parents: 5091
diff changeset
322 ngx_http_regex_t *ssl_servername_regex;
68ca3e824115 SNI: avoid surplus lookup of virtual server if SNI was used.
Valentin Bartenev <vbart@nginx.com>
parents: 5091
diff changeset
323 #endif
68ca3e824115 SNI: avoid surplus lookup of virtual server if SNI was used.
Valentin Bartenev <vbart@nginx.com>
parents: 5091
diff changeset
324 #endif
68ca3e824115 SNI: avoid surplus lookup of virtual server if SNI was used.
Valentin Bartenev <vbart@nginx.com>
parents: 5091
diff changeset
325
6926
e662cbf1b932 Converted hc->busy/hc->free to use chain links.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6906
diff changeset
326 ngx_chain_t *busy;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
327 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
328
6926
e662cbf1b932 Converted hc->busy/hc->free to use chain links.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6906
diff changeset
329 ngx_chain_t *free;
433
9a97dcdd2421 nginx-0.0.11-2004-09-21-19:47:05 import
Igor Sysoev <igor@sysoev.ru>
parents: 432
diff changeset
330
5605
3a72b1805c52 Added server-side support for PROXY protocol v1 (ticket #355).
Roman Arutyunyan <arut@nginx.com>
parents: 5254
diff changeset
331 unsigned ssl:1;
3a72b1805c52 Added server-side support for PROXY protocol v1 (ticket #355).
Roman Arutyunyan <arut@nginx.com>
parents: 5254
diff changeset
332 unsigned proxy_protocol:1;
432
11362a3e3911 nginx-0.0.11-2004-09-21-09:38:28 import
Igor Sysoev <igor@sysoev.ru>
parents: 429
diff changeset
333 } 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
334
11362a3e3911 nginx-0.0.11-2004-09-21-09:38:28 import
Igor Sysoev <igor@sysoev.ru>
parents: 429
diff changeset
335
569
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
336 typedef void (*ngx_http_cleanup_pt)(void *data);
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
337
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
338 typedef struct ngx_http_cleanup_s ngx_http_cleanup_t;
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
339
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
340 struct ngx_http_cleanup_s {
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 587
diff changeset
341 ngx_http_cleanup_pt handler;
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 587
diff changeset
342 void *data;
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 587
diff changeset
343 ngx_http_cleanup_t *next;
569
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
344 };
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
345
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
346
777
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
347 typedef ngx_int_t (*ngx_http_post_subrequest_pt)(ngx_http_request_t *r,
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
348 void *data, ngx_int_t rc);
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
349
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
350 typedef struct {
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
351 ngx_http_post_subrequest_pt handler;
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
352 void *data;
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
353 } ngx_http_post_subrequest_t;
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
354
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
355
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
356 typedef struct ngx_http_postponed_request_s ngx_http_postponed_request_t;
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
357
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
358 struct ngx_http_postponed_request_s {
535
563ad09abf50 nginx-0.1.42-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 527
diff changeset
359 ngx_http_request_t *request;
563ad09abf50 nginx-0.1.42-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 527
diff changeset
360 ngx_chain_t *out;
563ad09abf50 nginx-0.1.42-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 527
diff changeset
361 ngx_http_postponed_request_t *next;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
362 };
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
363
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
364
2377
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
365 typedef struct ngx_http_posted_request_s ngx_http_posted_request_t;
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
366
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
367 struct ngx_http_posted_request_s {
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
368 ngx_http_request_t *request;
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
369 ngx_http_posted_request_t *next;
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
370 };
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
371
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
372
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 346
diff changeset
373 typedef ngx_int_t (*ngx_http_handler_pt)(ngx_http_request_t *r);
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
374 typedef void (*ngx_http_event_handler_pt)(ngx_http_request_t *r);
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
375
143
5526213be452 nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 141
diff changeset
376
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
377 struct ngx_http_request_s {
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
378 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
379
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
380 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
381
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
382 void **ctx;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
383 void **main_conf;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
384 void **srv_conf;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
385 void **loc_conf;
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
386
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
387 ngx_http_event_handler_pt read_event_handler;
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
388 ngx_http_event_handler_pt write_event_handler;
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
389
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2547
diff changeset
390 #if (NGX_HTTP_CACHE)
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
391 ngx_http_cache_t *cache;
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2547
diff changeset
392 #endif
197
0b81c7a0b133 nginx-0.0.1-2003-11-27-10:45:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 190
diff changeset
393
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
394 ngx_http_upstream_t *upstream;
1168
4d0d12446c3b store the upstream states before X-Accel-Redirect to a next upstream
Igor Sysoev <igor@sysoev.ru>
parents: 1151
diff changeset
395 ngx_array_t *upstream_states;
4d0d12446c3b store the upstream states before X-Accel-Redirect to a next upstream
Igor Sysoev <igor@sysoev.ru>
parents: 1151
diff changeset
396 /* of ngx_http_upstream_state_t */
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
397
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
398 ngx_pool_t *pool;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
399 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
400
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
401 ngx_http_headers_in_t headers_in;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
402 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
403
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
404 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
405
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
406 time_t lingering_time;
1179
6e2216ad2c87 $request_time has millisecond precision
Igor Sysoev <igor@sysoev.ru>
parents: 1172
diff changeset
407 time_t start_sec;
6e2216ad2c87 $request_time has millisecond precision
Igor Sysoev <igor@sysoev.ru>
parents: 1172
diff changeset
408 ngx_msec_t start_msec;
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
409
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
410 ngx_uint_t method;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
411 ngx_uint_t http_version;
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
412
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
413 ngx_str_t request_line;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
414 ngx_str_t uri;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
415 ngx_str_t args;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
416 ngx_str_t exten;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
417 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
418
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
419 ngx_str_t method_name;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
420 ngx_str_t http_protocol;
7295
89430899c72a Added r->schema.
Ruslan Ermilov <ru@nginx.com>
parents: 7234
diff changeset
421 ngx_str_t schema;
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
422
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
423 ngx_chain_t *out;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
424 ngx_http_request_t *main;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
425 ngx_http_request_t *parent;
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
426 ngx_http_postponed_request_t *postponed;
777
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
427 ngx_http_post_subrequest_t *post_subrequest;
2377
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
428 ngx_http_posted_request_t *posted_requests;
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
429
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
430 ngx_int_t phase_handler;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
431 ngx_http_handler_pt content_handler;
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 537
diff changeset
432 ngx_uint_t access_code;
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
433
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
434 ngx_http_variable_value_t *variables;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
435
2547
912ce4113f21 now regex captures are per-request entities
Igor Sysoev <igor@sysoev.ru>
parents: 2534
diff changeset
436 #if (NGX_PCRE)
912ce4113f21 now regex captures are per-request entities
Igor Sysoev <igor@sysoev.ru>
parents: 2534
diff changeset
437 ngx_uint_t ncaptures;
912ce4113f21 now regex captures are per-request entities
Igor Sysoev <igor@sysoev.ru>
parents: 2534
diff changeset
438 int *captures;
912ce4113f21 now regex captures are per-request entities
Igor Sysoev <igor@sysoev.ru>
parents: 2534
diff changeset
439 u_char *captures_data;
912ce4113f21 now regex captures are per-request entities
Igor Sysoev <igor@sysoev.ru>
parents: 2534
diff changeset
440 #endif
912ce4113f21 now regex captures are per-request entities
Igor Sysoev <igor@sysoev.ru>
parents: 2534
diff changeset
441
527
7fa11e5c6e96 nginx-0.1.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 523
diff changeset
442 size_t limit_rate;
5201
06fbbde04098 Added r->limit_rate_after.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5200
diff changeset
443 size_t limit_rate_after;
527
7fa11e5c6e96 nginx-0.1.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 523
diff changeset
444
297
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 296
diff changeset
445 /* used to learn the Apache compatible response length without a header */
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
446 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
447
663
6d5c1535bb9d nginx-0.3.53-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 657
diff changeset
448 off_t request_length;
475
c3c2848fc081 nginx-0.1.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
449
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
450 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
451
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
452 ngx_http_connection_t *http_connection;
6246
257b51c37c5a The HTTP/2 implementation (RFC 7240, 7241).
Valentin Bartenev <vbart@nginx.com>
parents: 6239
diff changeset
453 ngx_http_v2_stream_t *stream;
432
11362a3e3911 nginx-0.0.11-2004-09-21-09:38:28 import
Igor Sysoev <igor@sysoev.ru>
parents: 429
diff changeset
454
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
455 ngx_http_log_handler_pt log_handler;
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
456
569
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
457 ngx_http_cleanup_t *cleanup;
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
458
6238
8c6e71722aff Added protection against r->main->count overflow by subrequests.
Valentin Bartenev <vbart@nginx.com>
parents: 6129
diff changeset
459 unsigned count:16;
3052
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 3049
diff changeset
460 unsigned subrequests:8;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 3049
diff changeset
461 unsigned blocked:8;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 3049
diff changeset
462
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 3049
diff changeset
463 unsigned aio:1;
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 3049
diff changeset
464
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
465 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
466
452
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
467 /* URI with "/." and on Win32 with "//" */
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
468 unsigned complex_uri:1;
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
469
452
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 449
diff changeset
470 /* URI with "%" */
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
471 unsigned quoted_uri:1;
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
472
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
473 /* URI with "+" */
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
474 unsigned plus_in_uri:1;
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
475
7752
8989fbd2f89a Fixed parsing of absolute URIs with empty path (ticket #2079).
Maxim Dounin <mdounin@mdounin.ru>
parents: 7595
diff changeset
476 /* URI with empty path */
8989fbd2f89a Fixed parsing of absolute URIs with empty path (ticket #2079).
Maxim Dounin <mdounin@mdounin.ru>
parents: 7595
diff changeset
477 unsigned empty_path_in_uri:1;
8989fbd2f89a Fixed parsing of absolute URIs with empty path (ticket #2079).
Maxim Dounin <mdounin@mdounin.ru>
parents: 7595
diff changeset
478
511
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
479 unsigned invalid_header:1;
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
480
3534
3711bb1336c3 fix a try_files/alias case when alias uses captures and
Igor Sysoev <igor@sysoev.ru>
parents: 3527
diff changeset
481 unsigned add_uri_to_alias:1;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
482 unsigned valid_location:1;
505
ee66921ecd47 nginx-0.1.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
483 unsigned valid_unparsed_uri:1;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
484 unsigned uri_changed:1;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
485 unsigned uri_changes:4;
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
486
633
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 631
diff changeset
487 unsigned request_body_in_single_buf:1;
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 631
diff changeset
488 unsigned request_body_in_file_only:1;
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 631
diff changeset
489 unsigned request_body_in_persistent_file:1;
1075
4d203f76b757 undo "client_body_in_file_only any"
Igor Sysoev <igor@sysoev.ru>
parents: 1059
diff changeset
490 unsigned request_body_in_clean_file:1;
633
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 631
diff changeset
491 unsigned request_body_file_group_access:1;
637
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
492 unsigned request_body_file_log_level:3;
6050
a08fad30aeac Request body: unbuffered reading.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6002
diff changeset
493 unsigned request_body_no_buffering:1;
633
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 631
diff changeset
494
777
4ab852b691f5 <!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents: 773
diff changeset
495 unsigned subrequest_in_memory:1;
2377
87b8c44906b5 *) refactor subrequest handling, now they run as separate posted requests
Igor Sysoev <igor@sysoev.ru>
parents: 2301
diff changeset
496 unsigned waited:1;
597
9262f520ce21 nginx-0.3.20-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 595
diff changeset
497
2592
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2547
diff changeset
498 #if (NGX_HTTP_CACHE)
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2547
diff changeset
499 unsigned cached:1;
3a8a53c0c42f a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents: 2547
diff changeset
500 #endif
3313
118169a8ec92 refactor gzip_vary handling
Igor Sysoev <igor@sysoev.ru>
parents: 3161
diff changeset
501
118169a8ec92 refactor gzip_vary handling
Igor Sysoev <igor@sysoev.ru>
parents: 3161
diff changeset
502 #if (NGX_HTTP_GZIP)
118169a8ec92 refactor gzip_vary handling
Igor Sysoev <igor@sysoev.ru>
parents: 3161
diff changeset
503 unsigned gzip_tested:1;
118169a8ec92 refactor gzip_vary handling
Igor Sysoev <igor@sysoev.ru>
parents: 3161
diff changeset
504 unsigned gzip_ok:1;
118169a8ec92 refactor gzip_vary handling
Igor Sysoev <igor@sysoev.ru>
parents: 3161
diff changeset
505 unsigned gzip_vary:1;
118169a8ec92 refactor gzip_vary handling
Igor Sysoev <igor@sysoev.ru>
parents: 3161
diff changeset
506 #endif
1790
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1654
diff changeset
507
7427
81d49f85afed Copy regex unnamed captures to cloned subrequests.
Roman Arutyunyan <arut@nginx.com>
parents: 7295
diff changeset
508 #if (NGX_PCRE)
81d49f85afed Copy regex unnamed captures to cloned subrequests.
Roman Arutyunyan <arut@nginx.com>
parents: 7295
diff changeset
509 unsigned realloc_captures:1;
81d49f85afed Copy regex unnamed captures to cloned subrequests.
Roman Arutyunyan <arut@nginx.com>
parents: 7295
diff changeset
510 #endif
81d49f85afed Copy regex unnamed captures to cloned subrequests.
Roman Arutyunyan <arut@nginx.com>
parents: 7295
diff changeset
511
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
512 unsigned proxy:1;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
513 unsigned bypass_cache:1;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
514 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
515
984
dd128232e6ba count connection once per request
Igor Sysoev <igor@sysoev.ru>
parents: 963
diff changeset
516 /*
2294
ce574b0ffeec ngx_http_limit_req_module
Igor Sysoev <igor@sysoev.ru>
parents: 2265
diff changeset
517 * instead of using the request context data in
4457
50f463258eea Fixed module name in comment. It was forgotten in r4281.
Valentin Bartenev <vbart@nginx.com>
parents: 4412
diff changeset
518 * ngx_http_limit_conn_module and ngx_http_limit_req_module
7593
e84fb4991d74 Updated comment after 776d1bebdca2.
Roman Arutyunyan <arut@nginx.com>
parents: 7592
diff changeset
519 * we use the bit fields in the request structure
984
dd128232e6ba count connection once per request
Igor Sysoev <igor@sysoev.ru>
parents: 963
diff changeset
520 */
7595
9606d93aa586 Limit conn: $limit_conn_status variable.
Roman Arutyunyan <arut@nginx.com>
parents: 7593
diff changeset
521 unsigned limit_conn_status:2;
7592
776d1bebdca2 Limit req: $limit_req_status variable.
Roman Arutyunyan <arut@nginx.com>
parents: 7504
diff changeset
522 unsigned limit_req_status:3;
984
dd128232e6ba count connection once per request
Igor Sysoev <igor@sysoev.ru>
parents: 963
diff changeset
523
7504
c19ca381b2e6 Variables support in limit_rate and limit_rate_after (ticket #293).
Ruslan Ermilov <ru@nginx.com>
parents: 7427
diff changeset
524 unsigned limit_rate_set:1;
c19ca381b2e6 Variables support in limit_rate and limit_rate_after (ticket #293).
Ruslan Ermilov <ru@nginx.com>
parents: 7427
diff changeset
525 unsigned limit_rate_after_set:1;
c19ca381b2e6 Variables support in limit_rate and limit_rate_after (ticket #293).
Ruslan Ermilov <ru@nginx.com>
parents: 7427
diff changeset
526
99
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 96
diff changeset
527 #if 0
1565
4c43e25d11ea fix English grammar
Igor Sysoev <igor@sysoev.ru>
parents: 1387
diff changeset
528 unsigned cacheable:1;
99
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 96
diff changeset
529 #endif
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
530
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
531 unsigned pipeline:1;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
532 unsigned chunked:1;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
533 unsigned header_only:1;
7034
1b068a4e82d8 Added support for trailers in HTTP responses.
Piotr Sikora <piotrsikora@google.com>
parents: 7006
diff changeset
534 unsigned expect_trailers:1;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
535 unsigned keepalive:1;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
536 unsigned lingering_close:1;
537
c9ad0d9c7d59 nginx-0.1.43-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 535
diff changeset
537 unsigned discard_body:1;
6050
a08fad30aeac Request body: unbuffered reading.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6002
diff changeset
538 unsigned reading_body:1;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
539 unsigned internal:1;
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
540 unsigned error_page:1;
2819
43fe53832da7 handle big responses for "size" and "test" image_filters
Igor Sysoev <igor@sysoev.ru>
parents: 2689
diff changeset
541 unsigned filter_finalize:1;
629
65bf042c0b4f nginx-0.3.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 619
diff changeset
542 unsigned post_action:1;
65bf042c0b4f nginx-0.3.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 619
diff changeset
543 unsigned request_complete:1;
667
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 663
diff changeset
544 unsigned request_output:1;
63a820b0bc6c nginx-0.3.55-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 663
diff changeset
545 unsigned header_sent:1;
2067
5657037448d1 the "Expect" header support
Igor Sysoev <igor@sysoev.ru>
parents: 2007
diff changeset
546 unsigned expect_tested:1;
2087
c8039b26a949 always test root existence for access_log with variables
Igor Sysoev <igor@sysoev.ru>
parents: 2067
diff changeset
547 unsigned root_tested:1;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
548 unsigned done:1;
2265
763c89919807 refactor log_subrequest
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
549 unsigned logged:1;
99
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 96
diff changeset
550
829
362d156f0278 high level HTTP buffered flags should be on per-subrequest basis,
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
551 unsigned buffered:4;
362d156f0278 high level HTTP buffered flags should be on per-subrequest basis,
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
552
513
fbbf16224844 nginx-0.1.31-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 511
diff changeset
553 unsigned main_filter_need_in_memory:1;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
554 unsigned filter_need_in_memory:1;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
555 unsigned filter_need_temporary:1;
7070
f583559aadc7 Upstream: keep request body file from removal if requested.
Roman Arutyunyan <arut@nginx.com>
parents: 7034
diff changeset
556 unsigned preserve_body:1;
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
557 unsigned allow_ranges:1;
6317
29f35e60840b Slice filter.
Roman Arutyunyan <arut@nginx.com>
parents: 6246
diff changeset
558 unsigned subrequest_ranges:1;
5621
345e4fd4bb64 Range filter: single_range flag in request.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5605
diff changeset
559 unsigned single_range:1;
5735
5fb1e57c758a Entity tags: explicit flag to skip not modified filter.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5702
diff changeset
560 unsigned disable_not_modified:1;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
561 unsigned stat_reading:1;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
562 unsigned stat_writing:1;
6711
90a03b1dc4db Modules compatibility: status fields.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6710
diff changeset
563 unsigned stat_processing:1;
427
0d08eabe5c7b nginx-0.0.10-2004-09-15-20:00:43 import
Igor Sysoev <igor@sysoev.ru>
parents: 426
diff changeset
564
7006
9552758a786e Background subrequests for cache updates.
Roman Arutyunyan <arut@nginx.com>
parents: 6993
diff changeset
565 unsigned background:1;
6710
3ab8736958cb Modules compatibility: health check fields.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6698
diff changeset
566 unsigned health_check:1;
3ab8736958cb Modules compatibility: health check fields.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6698
diff changeset
567
99
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 96
diff changeset
568 /* used to parse HTTP headers */
772
843412b22ba2 compact r->http_minor and r->http_major
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
569
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
570 ngx_uint_t state;
3064
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
571
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
572 ngx_uint_t header_hash;
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
573 ngx_uint_t lowcase_index;
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
574 u_char lowcase_header[NGX_HTTP_LC_HEADER_LEN];
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
575
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
576 u_char *header_name_start;
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
577 u_char *header_name_end;
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
578 u_char *header_start;
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
579 u_char *header_end;
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
580
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
581 /*
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
582 * a memory that can be reused after parsing a request line
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
583 * via ngx_http_ephemeral_t
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
584 */
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
585
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
586 u_char *uri_start;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
587 u_char *uri_end;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
588 u_char *uri_ext;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
589 u_char *args_start;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
590 u_char *request_start;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
591 u_char *request_end;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
592 u_char *method_end;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
593 u_char *schema_start;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
594 u_char *schema_end;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
595 u_char *host_start;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
596 u_char *host_end;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
597 u_char *port_start;
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 497
diff changeset
598 u_char *port_end;
649
1e720b0be7ec nginx-0.3.46-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 647
diff changeset
599
772
843412b22ba2 compact r->http_minor and r->http_major
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
600 unsigned http_minor:16;
843412b22ba2 compact r->http_minor and r->http_major
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
601 unsigned http_major:16;
3064
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
602 };
772
843412b22ba2 compact r->http_minor and r->http_major
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
603
3064
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
604
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
605 typedef struct {
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
606 ngx_http_posted_request_t terminal_posted_request;
23e6f26fb4bd *) ngx_http_ephemeral
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
607 } ngx_http_ephemeral_t;
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
608
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
609
6002
f8ee988cfe6d Style: moved ngx_http_ephemeral() macro to ngx_http_request.h.
Ruslan Ermilov <ru@nginx.com>
parents: 5980
diff changeset
610 #define ngx_http_ephemeral(r) (void *) (&r->uri_start)
f8ee988cfe6d Style: moved ngx_http_ephemeral() macro to ngx_http_request.h.
Ruslan Ermilov <ru@nginx.com>
parents: 5980
diff changeset
611
f8ee988cfe6d Style: moved ngx_http_ephemeral() macro to ngx_http_request.h.
Ruslan Ermilov <ru@nginx.com>
parents: 5980
diff changeset
612
569
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
613 extern ngx_http_header_t ngx_http_headers_in[];
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
614 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
615
84036764e215 nginx-0.0.1-2003-10-29-11:30:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 162
diff changeset
616
5928
8dfee01ff0bd Upstream: improved subrequest logging.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5735
diff changeset
617 #define ngx_http_set_log_request(log, r) \
8dfee01ff0bd Upstream: improved subrequest logging.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5735
diff changeset
618 ((ngx_http_log_ctx_t *) log->data)->current_request = r
8dfee01ff0bd Upstream: improved subrequest logging.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5735
diff changeset
619
8dfee01ff0bd Upstream: improved subrequest logging.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5735
diff changeset
620
91
637625a2acdb nginx-0.0.1-2003-05-19-20:39:14 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
621 #endif /* _NGX_HTTP_REQUEST_H_INCLUDED_ */