Mercurial > hg > nginx-quic
annotate src/http/ngx_http_request.h @ 8944:0f3d98e4bcc5
SSL: automatic rotation of session ticket keys.
As long as ssl_session_cache in shared memory is configured, session ticket
keys are now automatically generated in shared memory, and rotated
periodically. This can be beneficial from forward secrecy point of view,
and also avoids increased CPU usage after configuration reloads.
This also helps BoringSSL to properly resume sessions in configurations
with multiple worker processes and no ssl_session_ticket_key directives,
as BoringSSL tries to automatically rotate session ticket keys and does
this independently in different worker processes, thus breaking session
resumption between worker processes.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 12 Oct 2022 20:14:53 +0300 |
parents | ef6a3a99a81a |
children | 8d0753760546 |
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 | 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 | 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 | 14 |
649 | 15 /* must be 2^n */ |
16 #define NGX_HTTP_LC_HEADER_LEN 32 | |
17 | |
509 | 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 |
8525
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
28 #define NGX_HTTP_UNKNOWN 0x00000001 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
29 #define NGX_HTTP_GET 0x00000002 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
30 #define NGX_HTTP_HEAD 0x00000004 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
31 #define NGX_HTTP_POST 0x00000008 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
32 #define NGX_HTTP_PUT 0x00000010 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
33 #define NGX_HTTP_DELETE 0x00000020 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
34 #define NGX_HTTP_MKCOL 0x00000040 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
35 #define NGX_HTTP_COPY 0x00000080 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
36 #define NGX_HTTP_MOVE 0x00000100 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
37 #define NGX_HTTP_OPTIONS 0x00000200 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
38 #define NGX_HTTP_PROPFIND 0x00000400 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
39 #define NGX_HTTP_PROPPATCH 0x00000800 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
40 #define NGX_HTTP_LOCK 0x00001000 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
41 #define NGX_HTTP_UNLOCK 0x00002000 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
42 #define NGX_HTTP_PATCH 0x00004000 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
diff
changeset
|
43 #define NGX_HTTP_TRACE 0x00008000 |
63c66b7cc07c
Added CONNECT method rejection.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8251
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 | 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 | 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 | 78 #define NGX_HTTP_CREATED 201 |
3604 | 79 #define NGX_HTTP_ACCEPTED 202 |
511 | 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 | 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 | 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 | 97 #define NGX_HTTP_CONFLICT 409 |
581 | 98 #define NGX_HTTP_LENGTH_REQUIRED 411 |
1057 | 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 | 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 | 110 /* The special code to close connection without any response */ |
111 #define NGX_HTTP_CLOSE 444 | |
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 | 116 |
117 #define NGX_HTTPS_CERT_ERROR 495 | |
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 | 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 | 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 | 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 | 150 #define NGX_HTTP_SUB_BUFFERED 0x02 |
151 #define NGX_HTTP_COPY_BUFFERED 0x04 | |
597 | 152 |
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 | 170 ngx_str_t name; |
171 ngx_uint_t offset; | |
509 | 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 | 177 ngx_str_t name; |
178 ngx_uint_t offset; | |
569 | 179 } ngx_http_header_out_t; |
509 | 180 |
181 | |
182 typedef struct { | |
501 | 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 | 185 ngx_table_elt_t *host; |
186 ngx_table_elt_t *connection; | |
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 | 191 ngx_table_elt_t *user_agent; |
192 ngx_table_elt_t *referer; | |
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 | 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 | 197 ngx_table_elt_t *range; |
1630 | 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 | 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 | 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 | 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 | 206 ngx_table_elt_t *accept_encoding; |
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 | 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 | 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) |
8873
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8869
diff
changeset
|
215 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
|
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 | 218 #if (NGX_HTTP_REALIP) |
219 ngx_table_elt_t *x_real_ip; | |
220 #endif | |
221 | |
489 | 222 #if (NGX_HTTP_HEADERS) |
501 | 223 ngx_table_elt_t *accept; |
224 ngx_table_elt_t *accept_language; | |
489 | 225 #endif |
226 | |
637 | 227 #if (NGX_HTTP_DAV) |
228 ngx_table_elt_t *depth; | |
229 ngx_table_elt_t *destination; | |
1059 | 230 ngx_table_elt_t *overwrite; |
681 | 231 ngx_table_elt_t *date; |
637 | 232 #endif |
233 | |
8873
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8869
diff
changeset
|
234 ngx_table_elt_t *cookie; |
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8869
diff
changeset
|
235 |
503 | 236 ngx_str_t user; |
237 ngx_str_t passwd; | |
238 | |
2007
b9de93d804ea
*) host in request line has priority
Igor Sysoev <igor@sysoev.ru>
parents:
1856
diff
changeset
|
239 ngx_str_t server; |
663 | 240 off_t content_length_n; |
501 | 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 | 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; |
8869
f8f6b9fee66a
FastCGI: combining headers with identical names (ticket #1724).
Maxim Dounin <mdounin@mdounin.ru>
parents:
8588
diff
changeset
|
245 unsigned multi:1; |
f8f6b9fee66a
FastCGI: combining headers with identical names (ticket #1724).
Maxim Dounin <mdounin@mdounin.ru>
parents:
8588
diff
changeset
|
246 unsigned multi_linked:1; |
501 | 247 unsigned msie:1; |
2205 | 248 unsigned msie6:1; |
501 | 249 unsigned opera:1; |
250 unsigned gecko:1; | |
3315 | 251 unsigned chrome:1; |
3419
fcd72b8d69f3
disable keepalive for Safari:
Igor Sysoev <igor@sysoev.ru>
parents:
3325
diff
changeset
|
252 unsigned safari:1; |
501 | 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 | 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 | 261 ngx_uint_t status; |
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 | 264 ngx_table_elt_t *server; |
265 ngx_table_elt_t *date; | |
266 ngx_table_elt_t *content_length; | |
267 ngx_table_elt_t *content_encoding; | |
268 ngx_table_elt_t *location; | |
1654 | 269 ngx_table_elt_t *refresh; |
501 | 270 ngx_table_elt_t *last_modified; |
271 ngx_table_elt_t *content_range; | |
272 ngx_table_elt_t *accept_ranges; | |
503 | 273 ngx_table_elt_t *www_authenticate; |
501 | 274 ngx_table_elt_t *expires; |
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 |
8873
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8869
diff
changeset
|
277 ngx_table_elt_t *cache_control; |
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8869
diff
changeset
|
278 ngx_table_elt_t *link; |
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8869
diff
changeset
|
279 |
657 | 280 ngx_str_t *override_charset; |
281 | |
282 size_t content_type_len; | |
509 | 283 ngx_str_t content_type; |
501 | 284 ngx_str_t charset; |
2138 | 285 u_char *content_type_lowcase; |
286 ngx_uint_t content_type_hash; | |
657 | 287 |
501 | 288 off_t content_length_n; |
6317 | 289 off_t content_offset; |
501 | 290 time_t date_time; |
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 | 295 typedef void (*ngx_http_client_body_handler_pt)(ngx_http_request_t *r); |
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 | 298 ngx_temp_file_t *temp_file; |
299 ngx_chain_t *bufs; | |
300 ngx_buf_t *buf; | |
663 | 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 | 306 ngx_http_client_body_handler_pt post_handler; |
8588
9cf043a5d9ca
Request body: reading body buffering in filters.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8587
diff
changeset
|
307 unsigned filter_need_buffering:1; |
9cf043a5d9ca
Request body: reading body buffering in filters.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8587
diff
changeset
|
308 unsigned last_sent:1; |
8587
185c86b830ef
Request body: introduced rb->last_saved flag.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8529
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 | 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 | 336 typedef void (*ngx_http_cleanup_pt)(void *data); |
337 | |
338 typedef struct ngx_http_cleanup_s ngx_http_cleanup_t; | |
339 | |
340 struct ngx_http_cleanup_s { | |
593 | 341 ngx_http_cleanup_pt handler; |
342 void *data; | |
343 ngx_http_cleanup_t *next; | |
569 | 344 }; |
345 | |
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 | 356 typedef struct ngx_http_postponed_request_s ngx_http_postponed_request_t; |
357 | |
358 struct ngx_http_postponed_request_s { | |
535 | 359 ngx_http_request_t *request; |
360 ngx_chain_t *out; | |
361 ngx_http_postponed_request_t *next; | |
509 | 362 }; |
363 | |
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 | 374 typedef void (*ngx_http_event_handler_pt)(ngx_http_request_t *r); |
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 | 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 | 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 | 382 void **ctx; |
383 void **main_conf; | |
384 void **srv_conf; | |
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 | 387 ngx_http_event_handler_pt read_event_handler; |
388 ngx_http_event_handler_pt write_event_handler; | |
389 | |
2592
3a8a53c0c42f
a prelimiary proxy cache support
Igor Sysoev <igor@sysoev.ru>
parents:
2547
diff
changeset
|
390 #if (NGX_HTTP_CACHE) |
501 | 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 | 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 | 397 |
501 | 398 ngx_pool_t *pool; |
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 | 401 ngx_http_headers_in_t headers_in; |
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 | 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 | 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 | 410 ngx_uint_t method; |
411 ngx_uint_t http_version; | |
577 | 412 |
501 | 413 ngx_str_t request_line; |
414 ngx_str_t uri; | |
415 ngx_str_t args; | |
416 ngx_str_t exten; | |
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 | 419 ngx_str_t method_name; |
420 ngx_str_t http_protocol; | |
7295 | 421 ngx_str_t schema; |
577 | 422 |
509 | 423 ngx_chain_t *out; |
501 | 424 ngx_http_request_t *main; |
509 | 425 ngx_http_request_t *parent; |
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 | 430 ngx_int_t phase_handler; |
431 ngx_http_handler_pt content_handler; | |
543 | 432 ngx_uint_t access_code; |
485 | 433 |
573 | 434 ngx_http_variable_value_t *variables; |
501 | 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 | 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 | 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 | 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 | 448 off_t request_length; |
475 | 449 |
501 | 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 | 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 | 455 ngx_http_log_handler_pt log_handler; |
456 | |
569 | 457 ngx_http_cleanup_t *cleanup; |
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 | 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 | 467 /* URI with "/." and on Win32 with "//" */ |
501 | 468 unsigned complex_uri:1; |
485 | 469 |
452 | 470 /* URI with "%" */ |
501 | 471 unsigned quoted_uri:1; |
485 | 472 |
473 /* URI with "+" */ | |
501 | 474 unsigned plus_in_uri:1; |
485 | 475 |
8251
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 | 479 unsigned invalid_header:1; |
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 | 482 unsigned valid_location:1; |
505 | 483 unsigned valid_unparsed_uri:1; |
501 | 484 unsigned uri_changed:1; |
485 unsigned uri_changes:4; | |
485 | 486 |
633 | 487 unsigned request_body_in_single_buf:1; |
488 unsigned request_body_in_file_only:1; | |
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 | 491 unsigned request_body_file_group_access:1; |
637 | 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 | 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 | 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 | 501 |
502 #if (NGX_HTTP_GZIP) | |
503 unsigned gzip_tested:1; | |
504 unsigned gzip_ok:1; | |
505 unsigned gzip_vary:1; | |
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 | 512 unsigned proxy:1; |
513 unsigned bypass_cache:1; | |
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 | 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 | 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 | 530 |
501 | 531 unsigned pipeline:1; |
532 unsigned chunked:1; | |
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 | 535 unsigned keepalive:1; |
536 unsigned lingering_close:1; | |
537 | 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 | 539 unsigned internal:1; |
679 | 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 | 542 unsigned post_action:1; |
543 unsigned request_complete:1; | |
667 | 544 unsigned request_output:1; |
545 unsigned header_sent:1; | |
2067 | 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 | 548 unsigned done:1; |
2265 | 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 | 553 unsigned main_filter_need_in_memory:1; |
501 | 554 unsigned filter_need_in_memory:1; |
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 | 557 unsigned allow_ranges:1; |
6317 | 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 | 561 unsigned stat_reading:1; |
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 | 570 ngx_uint_t state; |
3064 | 571 |
572 ngx_uint_t header_hash; | |
573 ngx_uint_t lowcase_index; | |
574 u_char lowcase_header[NGX_HTTP_LC_HEADER_LEN]; | |
575 | |
576 u_char *header_name_start; | |
577 u_char *header_name_end; | |
578 u_char *header_start; | |
579 u_char *header_end; | |
580 | |
581 /* | |
582 * a memory that can be reused after parsing a request line | |
583 * via ngx_http_ephemeral_t | |
584 */ | |
585 | |
501 | 586 u_char *uri_start; |
587 u_char *uri_end; | |
588 u_char *uri_ext; | |
589 u_char *args_start; | |
590 u_char *request_start; | |
591 u_char *request_end; | |
592 u_char *method_end; | |
593 u_char *schema_start; | |
594 u_char *schema_end; | |
595 u_char *host_start; | |
596 u_char *host_end; | |
597 u_char *port_start; | |
598 u_char *port_end; | |
649 | 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 | 602 }; |
772
843412b22ba2
compact r->http_minor and r->http_major
Igor Sysoev <igor@sysoev.ru>
parents:
730
diff
changeset
|
603 |
3064 | 604 |
605 typedef struct { | |
606 ngx_http_posted_request_t terminal_posted_request; | |
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 | 613 extern ngx_http_header_t ngx_http_headers_in[]; |
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_ */ |