Mercurial > hg > nginx-quic
annotate src/http/ngx_http_core_module.h @ 7918:833898b35b24 quic
Decoupled validation of Host and :authority for HTTP/2 and HTTP/3.
Previously an error was triggered for HTTP/2 when host with port was passed
by client.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Tue, 02 Jun 2020 15:59:14 +0300 |
parents | 5b7ec588de48 |
children | 0d2b2664b41c |
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:
437
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:
437
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:
437
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:
437
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:
437
diff
changeset
|
7 |
13
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 #ifndef _NGX_HTTP_CORE_H_INCLUDED_ |
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 #define _NGX_HTTP_CORE_H_INCLUDED_ |
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 |
2233 | 12 #include <ngx_config.h> |
13 #include <ngx_core.h> | |
13
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
14 #include <ngx_http.h> |
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
15 |
6022
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
16 #if (NGX_THREADS) |
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
17 #include <ngx_thread_pool.h> |
6733
adc2414856b1
Modules compatibility: compatibility with NGX_THREADS.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6721
diff
changeset
|
18 #elif (NGX_COMPAT) |
adc2414856b1
Modules compatibility: compatibility with NGX_THREADS.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6721
diff
changeset
|
19 typedef struct ngx_thread_pool_s ngx_thread_pool_t; |
6022
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
20 #endif |
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
21 |
13
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
22 |
1790
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
23 #define NGX_HTTP_GZIP_PROXIED_OFF 0x0002 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
24 #define NGX_HTTP_GZIP_PROXIED_EXPIRED 0x0004 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
25 #define NGX_HTTP_GZIP_PROXIED_NO_CACHE 0x0008 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
26 #define NGX_HTTP_GZIP_PROXIED_NO_STORE 0x0010 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
27 #define NGX_HTTP_GZIP_PROXIED_PRIVATE 0x0020 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
28 #define NGX_HTTP_GZIP_PROXIED_NO_LM 0x0040 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
29 #define NGX_HTTP_GZIP_PROXIED_NO_ETAG 0x0080 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
30 #define NGX_HTTP_GZIP_PROXIED_AUTH 0x0100 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
31 #define NGX_HTTP_GZIP_PROXIED_ANY 0x0200 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
32 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
33 |
3065 | 34 #define NGX_HTTP_AIO_OFF 0 |
35 #define NGX_HTTP_AIO_ON 1 | |
6022
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
36 #define NGX_HTTP_AIO_THREADS 2 |
3065 | 37 |
38 | |
1806 | 39 #define NGX_HTTP_SATISFY_ALL 0 |
40 #define NGX_HTTP_SATISFY_ANY 1 | |
41 | |
42 | |
3984
3e51832c8215
lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents:
3793
diff
changeset
|
43 #define NGX_HTTP_LINGERING_OFF 0 |
3e51832c8215
lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents:
3793
diff
changeset
|
44 #define NGX_HTTP_LINGERING_ON 1 |
3e51832c8215
lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents:
3793
diff
changeset
|
45 #define NGX_HTTP_LINGERING_ALWAYS 2 |
3e51832c8215
lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents:
3793
diff
changeset
|
46 |
3e51832c8215
lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents:
3793
diff
changeset
|
47 |
2496 | 48 #define NGX_HTTP_IMS_OFF 0 |
49 #define NGX_HTTP_IMS_EXACT 1 | |
50 #define NGX_HTTP_IMS_BEFORE 2 | |
51 | |
52 | |
3793 | 53 #define NGX_HTTP_KEEPALIVE_DISABLE_NONE 0x0002 |
54 #define NGX_HTTP_KEEPALIVE_DISABLE_MSIE6 0x0004 | |
55 #define NGX_HTTP_KEEPALIVE_DISABLE_SAFARI 0x0008 | |
56 | |
57 | |
6885
25203fc377fb
Implemented the "server_tokens build" option.
Ruslan Ermilov <ru@nginx.com>
parents:
6852
diff
changeset
|
58 #define NGX_HTTP_SERVER_TOKENS_OFF 0 |
25203fc377fb
Implemented the "server_tokens build" option.
Ruslan Ermilov <ru@nginx.com>
parents:
6852
diff
changeset
|
59 #define NGX_HTTP_SERVER_TOKENS_ON 1 |
25203fc377fb
Implemented the "server_tokens build" option.
Ruslan Ermilov <ru@nginx.com>
parents:
6852
diff
changeset
|
60 #define NGX_HTTP_SERVER_TOKENS_BUILD 2 |
25203fc377fb
Implemented the "server_tokens build" option.
Ruslan Ermilov <ru@nginx.com>
parents:
6852
diff
changeset
|
61 |
25203fc377fb
Implemented the "server_tokens build" option.
Ruslan Ermilov <ru@nginx.com>
parents:
6852
diff
changeset
|
62 |
2027 | 63 typedef struct ngx_http_location_tree_node_s ngx_http_location_tree_node_t; |
64 typedef struct ngx_http_core_loc_conf_s ngx_http_core_loc_conf_t; | |
65 | |
66 | |
13
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
67 typedef struct { |
7478
4f9b72a229c1
Multiple addresses in "listen".
Roman Arutyunyan <arut@nginx.com>
parents:
7269
diff
changeset
|
68 struct sockaddr *sockaddr; |
3220
cdcd9e29c589
*) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents:
3219
diff
changeset
|
69 socklen_t socklen; |
7478
4f9b72a229c1
Multiple addresses in "listen".
Roman Arutyunyan <arut@nginx.com>
parents:
7269
diff
changeset
|
70 ngx_str_t addr_text; |
3220
cdcd9e29c589
*) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents:
3219
diff
changeset
|
71 |
3224
8e76e636ae3b
allow to set listen options in any server
Igor Sysoev <igor@sysoev.ru>
parents:
3221
diff
changeset
|
72 unsigned set:1; |
523 | 73 unsigned default_server:1; |
74 unsigned bind:1; | |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
75 unsigned wildcard:1; |
2224 | 76 unsigned ssl:1; |
6246
257b51c37c5a
The HTTP/2 implementation (RFC 7240, 7241).
Valentin Bartenev <vbart@nginx.com>
parents:
6153
diff
changeset
|
77 unsigned http2:1; |
7633
5d91389e0fd3
Initial QUIC support in http.
Sergey Kandaurov <pluknet@nginx.com>
parents:
7632
diff
changeset
|
78 unsigned http3:1; |
6719
cebf5fed00bf
Modules compatibility: removed unneeded IPV6_V6ONLY checks.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6718
diff
changeset
|
79 #if (NGX_HAVE_INET6) |
4771
bdcdbdf35b52
Core: ipv6only is now on by default.
Ruslan Ermilov <ru@nginx.com>
parents:
4749
diff
changeset
|
80 unsigned ipv6only:1; |
2562 | 81 #endif |
6721
48bab8b83f4e
Modules compatibility: removed two NGX_HAVE_DEFERRED_ACCEPT checks.
Ruslan Ermilov <ru@nginx.com>
parents:
6720
diff
changeset
|
82 unsigned deferred_accept:1; |
6153
4f6efabcb09b
The "reuseport" option of the "listen" directive.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6049
diff
changeset
|
83 unsigned reuseport:1; |
4323
c4513d4dd024
Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4206
diff
changeset
|
84 unsigned so_keepalive:2; |
5605
3a72b1805c52
Added server-side support for PROXY protocol v1 (ticket #355).
Roman Arutyunyan <arut@nginx.com>
parents:
5456
diff
changeset
|
85 unsigned proxy_protocol:1; |
523 | 86 |
87 int backlog; | |
563 | 88 int rcvbuf; |
89 int sndbuf; | |
7632
7999d3fbb765
HTTP UDP layer, QUIC support autotest.
Sergey Kandaurov <pluknet@nginx.com>
parents:
7504
diff
changeset
|
90 int type; |
3676 | 91 #if (NGX_HAVE_SETFIB) |
92 int setfib; | |
93 #endif | |
5456
692afcea9d0d
Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents:
5121
diff
changeset
|
94 #if (NGX_HAVE_TCP_FASTOPEN) |
692afcea9d0d
Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents:
5121
diff
changeset
|
95 int fastopen; |
692afcea9d0d
Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents:
5121
diff
changeset
|
96 #endif |
4323
c4513d4dd024
Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4206
diff
changeset
|
97 #if (NGX_HAVE_KEEPALIVE_TUNABLE) |
c4513d4dd024
Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4206
diff
changeset
|
98 int tcp_keepidle; |
c4513d4dd024
Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4206
diff
changeset
|
99 int tcp_keepintvl; |
c4513d4dd024
Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4206
diff
changeset
|
100 int tcp_keepcnt; |
c4513d4dd024
Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents:
4206
diff
changeset
|
101 #endif |
523 | 102 |
103 #if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER) | |
104 char *accept_filter; | |
105 #endif | |
3217 | 106 } ngx_http_listen_opt_t; |
523 | 107 |
108 | |
201
267ea1d98683
nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
109 typedef enum { |
573 | 110 NGX_HTTP_POST_READ_PHASE = 0, |
368
15c84a40e87d
nginx-0.0.7-2004-06-24-20:07:04 import
Igor Sysoev <igor@sysoev.ru>
parents:
362
diff
changeset
|
111 |
573 | 112 NGX_HTTP_SERVER_REWRITE_PHASE, |
681 | 113 |
573 | 114 NGX_HTTP_FIND_CONFIG_PHASE, |
489 | 115 NGX_HTTP_REWRITE_PHASE, |
681 | 116 NGX_HTTP_POST_REWRITE_PHASE, |
368
15c84a40e87d
nginx-0.0.7-2004-06-24-20:07:04 import
Igor Sysoev <igor@sysoev.ru>
parents:
362
diff
changeset
|
117 |
581 | 118 NGX_HTTP_PREACCESS_PHASE, |
119 | |
368
15c84a40e87d
nginx-0.0.7-2004-06-24-20:07:04 import
Igor Sysoev <igor@sysoev.ru>
parents:
362
diff
changeset
|
120 NGX_HTTP_ACCESS_PHASE, |
681 | 121 NGX_HTTP_POST_ACCESS_PHASE, |
122 | |
7071 | 123 NGX_HTTP_PRECONTENT_PHASE, |
124 | |
201
267ea1d98683
nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
125 NGX_HTTP_CONTENT_PHASE, |
368
15c84a40e87d
nginx-0.0.7-2004-06-24-20:07:04 import
Igor Sysoev <igor@sysoev.ru>
parents:
362
diff
changeset
|
126 |
581 | 127 NGX_HTTP_LOG_PHASE |
201
267ea1d98683
nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
128 } ngx_http_phases; |
267ea1d98683
nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
129 |
681 | 130 typedef struct ngx_http_phase_handler_s ngx_http_phase_handler_t; |
131 | |
132 typedef ngx_int_t (*ngx_http_phase_handler_pt)(ngx_http_request_t *r, | |
133 ngx_http_phase_handler_t *ph); | |
134 | |
135 struct ngx_http_phase_handler_s { | |
136 ngx_http_phase_handler_pt checker; | |
137 ngx_http_handler_pt handler; | |
138 ngx_uint_t next; | |
139 }; | |
140 | |
141 | |
142 typedef struct { | |
143 ngx_http_phase_handler_t *handlers; | |
144 ngx_uint_t server_rewrite_index; | |
1353 | 145 ngx_uint_t location_rewrite_index; |
681 | 146 } ngx_http_phase_engine_t; |
147 | |
201
267ea1d98683
nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
148 |
19
d7908993fdeb
nginx-0.0.1-2002-12-02-19:09:40 import; resume after 2 months stall
Igor Sysoev <igor@sysoev.ru>
parents:
13
diff
changeset
|
149 typedef struct { |
477 | 150 ngx_array_t handlers; |
143
5526213be452
nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents:
114
diff
changeset
|
151 } ngx_http_phase_t; |
5526213be452
nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents:
114
diff
changeset
|
152 |
5526213be452
nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents:
114
diff
changeset
|
153 |
5526213be452
nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents:
114
diff
changeset
|
154 typedef struct { |
485 | 155 ngx_array_t servers; /* ngx_http_core_srv_conf_t */ |
477 | 156 |
681 | 157 ngx_http_phase_engine_t phase_engine; |
143
5526213be452
nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents:
114
diff
changeset
|
158 |
649 | 159 ngx_hash_t headers_in_hash; |
611 | 160 |
161 ngx_hash_t variables_hash; | |
162 | |
6899
d2b2ff157da5
Variables: generic prefix variables.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6885
diff
changeset
|
163 ngx_array_t variables; /* ngx_http_variable_t */ |
d2b2ff157da5
Variables: generic prefix variables.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
6885
diff
changeset
|
164 ngx_array_t prefix_variables; /* ngx_http_variable_t */ |
3325 | 165 ngx_uint_t ncaptures; |
507 | 166 |
593 | 167 ngx_uint_t server_names_hash_max_size; |
168 ngx_uint_t server_names_hash_bucket_size; | |
485 | 169 |
611 | 170 ngx_uint_t variables_hash_max_size; |
171 ngx_uint_t variables_hash_bucket_size; | |
172 | |
173 ngx_hash_keys_arrays_t *variables_keys; | |
681 | 174 |
3217 | 175 ngx_array_t *ports; |
176 | |
681 | 177 ngx_http_phase_t phases[NGX_HTTP_LOG_PHASE + 1]; |
90
37530da31268
nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
89
diff
changeset
|
178 } ngx_http_core_main_conf_t; |
37530da31268
nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
89
diff
changeset
|
179 |
37530da31268
nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
89
diff
changeset
|
180 |
37530da31268
nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents:
89
diff
changeset
|
181 typedef struct { |
485 | 182 /* array of the ngx_http_server_name_t, "server_name" directive */ |
2027 | 183 ngx_array_t server_names; |
393
5659d773cfa8
nginx-0.0.7-2004-07-15-20:35:51 import
Igor Sysoev <igor@sysoev.ru>
parents:
391
diff
changeset
|
184 |
5659d773cfa8
nginx-0.0.7-2004-07-15-20:35:51 import
Igor Sysoev <igor@sysoev.ru>
parents:
391
diff
changeset
|
185 /* server ctx */ |
2027 | 186 ngx_http_conf_ctx_t *ctx; |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
257
diff
changeset
|
187 |
7269
7f955d3b9a0d
SSL: detect "listen ... ssl" without certificates (ticket #178).
Maxim Dounin <mdounin@mdounin.ru>
parents:
7220
diff
changeset
|
188 u_char *file_name; |
7f955d3b9a0d
SSL: detect "listen ... ssl" without certificates (ticket #178).
Maxim Dounin <mdounin@mdounin.ru>
parents:
7220
diff
changeset
|
189 ngx_uint_t line; |
7f955d3b9a0d
SSL: detect "listen ... ssl" without certificates (ticket #178).
Maxim Dounin <mdounin@mdounin.ru>
parents:
7220
diff
changeset
|
190 |
2027 | 191 ngx_str_t server_name; |
593 | 192 |
2027 | 193 size_t connection_pool_size; |
194 size_t request_pool_size; | |
195 size_t client_header_buffer_size; | |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
257
diff
changeset
|
196 |
2027 | 197 ngx_bufs_t large_client_header_buffers; |
435
5cdc4838d4e8
nginx-0.0.11-2004-09-22-20:18:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
429
diff
changeset
|
198 |
2027 | 199 ngx_msec_t client_header_timeout; |
335
d4241d7787fe
nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents:
326
diff
changeset
|
200 |
2027 | 201 ngx_flag_t ignore_invalid_headers; |
202 ngx_flag_t merge_slashes; | |
2256 | 203 ngx_flag_t underscores_in_headers; |
2027 | 204 |
3219 | 205 unsigned listen:1; |
206 #if (NGX_PCRE) | |
207 unsigned captures:1; | |
208 #endif | |
3217 | 209 |
2027 | 210 ngx_http_core_loc_conf_t **named_locations; |
19
d7908993fdeb
nginx-0.0.1-2002-12-02-19:09:40 import; resume after 2 months stall
Igor Sysoev <igor@sysoev.ru>
parents:
13
diff
changeset
|
211 } ngx_http_core_srv_conf_t; |
d7908993fdeb
nginx-0.0.1-2002-12-02-19:09:40 import; resume after 2 months stall
Igor Sysoev <igor@sysoev.ru>
parents:
13
diff
changeset
|
212 |
41
59e7c7f30d49
nginx-0.0.1-2002-12-26-19:26:23 import
Igor Sysoev <igor@sysoev.ru>
parents:
19
diff
changeset
|
213 |
55
cad6c2f43283
nginx-0.0.1-2003-01-29-10:25:51 import
Igor Sysoev <igor@sysoev.ru>
parents:
54
diff
changeset
|
214 /* list of structures to find core_srv_conf quickly at run time */ |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
215 |
593 | 216 |
217 typedef struct { | |
5085
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
218 #if (NGX_PCRE) |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
219 ngx_http_regex_t *regex; |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
220 #endif |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
221 ngx_http_core_srv_conf_t *server; /* virtual name server conf */ |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
222 ngx_str_t name; |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
223 } ngx_http_server_name_t; |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
224 |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
225 |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
226 typedef struct { |
6474 | 227 ngx_hash_combined_t names; |
5085
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
228 |
6474 | 229 ngx_uint_t nregex; |
230 ngx_http_server_name_t *regex; | |
5085
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
231 } ngx_http_virtual_names_t; |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
232 |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
233 |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
234 struct ngx_http_addr_conf_s { |
593 | 235 /* the default server configuration for this address:port */ |
3221
c8de5a8b6d17
rename core_srv_conf fields to more understandable default_server and server
Igor Sysoev <igor@sysoev.ru>
parents:
3220
diff
changeset
|
236 ngx_http_core_srv_conf_t *default_server; |
1387 | 237 |
2689
6caf687a831f
backout r2535: virtual names is a property of address:port pair,
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
238 ngx_http_virtual_names_t *virtual_names; |
6caf687a831f
backout r2535: virtual names is a property of address:port pair,
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
239 |
5121
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5085
diff
changeset
|
240 unsigned ssl:1; |
6246
257b51c37c5a
The HTTP/2 implementation (RFC 7240, 7241).
Valentin Bartenev <vbart@nginx.com>
parents:
6153
diff
changeset
|
241 unsigned http2:1; |
7633
5d91389e0fd3
Initial QUIC support in http.
Sergey Kandaurov <pluknet@nginx.com>
parents:
7632
diff
changeset
|
242 unsigned http3:1; |
5605
3a72b1805c52
Added server-side support for PROXY protocol v1 (ticket #355).
Roman Arutyunyan <arut@nginx.com>
parents:
5456
diff
changeset
|
243 unsigned proxy_protocol:1; |
5085
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
244 }; |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
245 |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
246 |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
247 typedef struct { |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
248 in_addr_t addr; |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
249 ngx_http_addr_conf_t conf; |
593 | 250 } ngx_http_in_addr_t; |
251 | |
252 | |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
253 #if (NGX_HAVE_INET6) |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
254 |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
255 typedef struct { |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
256 struct in6_addr addr6; |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
257 ngx_http_addr_conf_t conf; |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
258 } ngx_http_in6_addr_t; |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
259 |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
260 #endif |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
261 |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
262 |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
263 typedef struct { |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
264 /* ngx_http_in_addr_t or ngx_http_in6_addr_t */ |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
265 void *addrs; |
593 | 266 ngx_uint_t naddrs; |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
267 } ngx_http_port_t; |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
268 |
89
29bf798b583f
nginx-0.0.1-2003-05-15-19:42:53 import
Igor Sysoev <igor@sysoev.ru>
parents:
88
diff
changeset
|
269 |
593 | 270 typedef struct { |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
271 ngx_int_t family; |
7632
7999d3fbb765
HTTP UDP layer, QUIC support autotest.
Sergey Kandaurov <pluknet@nginx.com>
parents:
7504
diff
changeset
|
272 ngx_int_t type; |
593 | 273 in_port_t port; |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
274 ngx_array_t addrs; /* array of ngx_http_conf_addr_t */ |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
275 } ngx_http_conf_port_t; |
593 | 276 |
277 | |
278 typedef struct { | |
3220
cdcd9e29c589
*) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents:
3219
diff
changeset
|
279 ngx_http_listen_opt_t opt; |
477 | 280 |
593 | 281 ngx_hash_t hash; |
1253
8ef04207c84f
the "www.example.*" wildcard hash support
Igor Sysoev <igor@sysoev.ru>
parents:
1236
diff
changeset
|
282 ngx_hash_wildcard_t *wc_head; |
8ef04207c84f
the "www.example.*" wildcard hash support
Igor Sysoev <igor@sysoev.ru>
parents:
1236
diff
changeset
|
283 ngx_hash_wildcard_t *wc_tail; |
593 | 284 |
1387 | 285 #if (NGX_PCRE) |
286 ngx_uint_t nregex; | |
287 ngx_http_server_name_t *regex; | |
288 #endif | |
289 | |
477 | 290 /* the default server configuration for this address:port */ |
3221
c8de5a8b6d17
rename core_srv_conf fields to more understandable default_server and server
Igor Sysoev <igor@sysoev.ru>
parents:
3220
diff
changeset
|
291 ngx_http_core_srv_conf_t *default_server; |
3219 | 292 ngx_array_t servers; /* array of ngx_http_core_srv_conf_t */ |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
293 } ngx_http_conf_addr_t; |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
294 |
89
29bf798b583f
nginx-0.0.1-2003-05-15-19:42:53 import
Igor Sysoev <igor@sysoev.ru>
parents:
88
diff
changeset
|
295 |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
296 typedef struct { |
673 | 297 ngx_int_t status; |
298 ngx_int_t overwrite; | |
2589
859f6675a553
use complex value in error_page
Igor Sysoev <igor@sysoev.ru>
parents:
2562
diff
changeset
|
299 ngx_http_complex_value_t value; |
1982
dd388c80f5a2
args support in static error_page
Igor Sysoev <igor@sysoev.ru>
parents:
1806
diff
changeset
|
300 ngx_str_t args; |
176
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
162
diff
changeset
|
301 } ngx_http_err_page_t; |
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
162
diff
changeset
|
302 |
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
162
diff
changeset
|
303 |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
304 struct ngx_http_core_loc_conf_s { |
96
a23d010f356d
nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
95
diff
changeset
|
305 ngx_str_t name; /* location name */ |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
306 |
455 | 307 #if (NGX_PCRE) |
3325 | 308 ngx_http_regex_t *regex; |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
309 #endif |
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
310 |
1353 | 311 unsigned noname:1; /* "if () {}" block or limit_except */ |
3731
72cc5b789021
inherit proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass inside
Igor Sysoev <igor@sysoev.ru>
parents:
3676
diff
changeset
|
312 unsigned lmt_excpt:1; |
1353 | 313 unsigned named:1; |
485 | 314 |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
315 unsigned exact_match:1; |
467 | 316 unsigned noregex:1; |
317 | |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
318 unsigned auto_redirect:1; |
2205 | 319 #if (NGX_HTTP_GZIP) |
320 unsigned gzip_disable_msie6:2; | |
3773 | 321 unsigned gzip_disable_degradation:2; |
322 #endif | |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
323 |
2027 | 324 ngx_http_location_tree_node_t *static_locations; |
2546
8b9861c2a32f
pclcf->regex_locations are used with PCRE only
Igor Sysoev <igor@sysoev.ru>
parents:
2534
diff
changeset
|
325 #if (NGX_PCRE) |
2027 | 326 ngx_http_core_loc_conf_t **regex_locations; |
2546
8b9861c2a32f
pclcf->regex_locations are used with PCRE only
Igor Sysoev <igor@sysoev.ru>
parents:
2534
diff
changeset
|
327 #endif |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
328 |
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
329 /* pointer to the modules' loc_conf */ |
2024 | 330 void **loc_conf; |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
331 |
631 | 332 uint32_t limit_except; |
2024 | 333 void **limit_except_loc_conf; |
631 | 334 |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
335 ngx_http_handler_pt handler; |
71
59229033ae93
nginx-0.0.1-2003-04-08-19:40:10 import
Igor Sysoev <igor@sysoev.ru>
parents:
69
diff
changeset
|
336 |
3535
abb3901be800
fix handling an inherited alias in inclusive location
Igor Sysoev <igor@sysoev.ru>
parents:
3484
diff
changeset
|
337 /* location name length for inclusive location with inherited alias */ |
abb3901be800
fix handling an inherited alias in inclusive location
Igor Sysoev <igor@sysoev.ru>
parents:
3484
diff
changeset
|
338 size_t alias; |
577 | 339 ngx_str_t root; /* root, alias */ |
340 ngx_str_t post_action; | |
341 | |
595 | 342 ngx_array_t *root_lengths; |
343 ngx_array_t *root_values; | |
344 | |
589 | 345 ngx_array_t *types; |
346 ngx_hash_t types_hash; | |
347 ngx_str_t default_type; | |
348 | |
663 | 349 off_t client_max_body_size; /* client_max_body_size */ |
2129 | 350 off_t directio; /* directio */ |
3053 | 351 off_t directio_alignment; /* directio_alignment */ |
663 | 352 |
303
00c5660d2707
nginx-0.0.3-2004-04-01-20:20:53 import
Igor Sysoev <igor@sysoev.ru>
parents:
293
diff
changeset
|
353 size_t client_body_buffer_size; /* client_body_buffer_size */ |
362
7650aea1816f
nginx-0.0.7-2004-06-21-19:59:32 import
Igor Sysoev <igor@sysoev.ru>
parents:
356
diff
changeset
|
354 size_t send_lowat; /* send_lowat */ |
391
b670db10cbbd
nginx-0.0.7-2004-07-14-20:01:42 import
Igor Sysoev <igor@sysoev.ru>
parents:
369
diff
changeset
|
355 size_t postpone_output; /* postpone_output */ |
1197 | 356 size_t sendfile_max_chunk; /* sendfile_max_chunk */ |
3178 | 357 size_t read_ahead; /* read_ahead */ |
7220
20f139e9ffa8
Generic subrequests in memory.
Roman Arutyunyan <arut@nginx.com>
parents:
7071
diff
changeset
|
358 size_t subrequest_output_buffer_size; |
20f139e9ffa8
Generic subrequests in memory.
Roman Arutyunyan <arut@nginx.com>
parents:
7071
diff
changeset
|
359 /* subrequest_output_buffer_size */ |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
257
diff
changeset
|
360 |
7504
c19ca381b2e6
Variables support in limit_rate and limit_rate_after (ticket #293).
Ruslan Ermilov <ru@nginx.com>
parents:
7478
diff
changeset
|
361 ngx_http_complex_value_t *limit_rate; /* limit_rate */ |
c19ca381b2e6
Variables support in limit_rate and limit_rate_after (ticket #293).
Ruslan Ermilov <ru@nginx.com>
parents:
7478
diff
changeset
|
362 ngx_http_complex_value_t *limit_rate_after; /* limit_rate_after */ |
c19ca381b2e6
Variables support in limit_rate and limit_rate_after (ticket #293).
Ruslan Ermilov <ru@nginx.com>
parents:
7478
diff
changeset
|
363 |
162
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
158
diff
changeset
|
364 ngx_msec_t client_body_timeout; /* client_body_timeout */ |
96
a23d010f356d
nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
95
diff
changeset
|
365 ngx_msec_t send_timeout; /* send_timeout */ |
a23d010f356d
nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
95
diff
changeset
|
366 ngx_msec_t keepalive_timeout; /* keepalive_timeout */ |
a23d010f356d
nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
95
diff
changeset
|
367 ngx_msec_t lingering_time; /* lingering_time */ |
a23d010f356d
nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
95
diff
changeset
|
368 ngx_msec_t lingering_timeout; /* lingering_timeout */ |
1652
cc7a7d0b89e8
http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents:
1592
diff
changeset
|
369 ngx_msec_t resolver_timeout; /* resolver_timeout */ |
7803
681b78a98a52
The new auth_delay directive for delaying unauthorized requests.
Ruslan Ermilov <ru@nginx.com>
parents:
7504
diff
changeset
|
370 ngx_msec_t auth_delay; /* auth_delay */ |
1652
cc7a7d0b89e8
http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents:
1592
diff
changeset
|
371 |
cc7a7d0b89e8
http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents:
1592
diff
changeset
|
372 ngx_resolver_t *resolver; /* resolver */ |
71
59229033ae93
nginx-0.0.1-2003-04-08-19:40:10 import
Igor Sysoev <igor@sysoev.ru>
parents:
69
diff
changeset
|
373 |
436
9549fc9508e5
nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
435
diff
changeset
|
374 time_t keepalive_header; /* keepalive_timeout */ |
9549fc9508e5
nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
435
diff
changeset
|
375 |
2888 | 376 ngx_uint_t keepalive_requests; /* keepalive_requests */ |
3793 | 377 ngx_uint_t keepalive_disable; /* keepalive_disable */ |
1806 | 378 ngx_uint_t satisfy; /* satisfy */ |
3984
3e51832c8215
lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents:
3793
diff
changeset
|
379 ngx_uint_t lingering_close; /* lingering_close */ |
2361 | 380 ngx_uint_t if_modified_since; /* if_modified_since */ |
4062 | 381 ngx_uint_t max_ranges; /* max_ranges */ |
2841
faafc084a7a4
fix client_body_in_file_only type
Igor Sysoev <igor@sysoev.ru>
parents:
2785
diff
changeset
|
382 ngx_uint_t client_body_in_file_only; /* client_body_in_file_only */ |
1806 | 383 |
2845 | 384 ngx_flag_t client_body_in_single_buffer; |
385 /* client_body_in_singe_buffer */ | |
509 | 386 ngx_flag_t internal; /* internal */ |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
257
diff
changeset
|
387 ngx_flag_t sendfile; /* sendfile */ |
3052
6060225e9261
FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents:
2979
diff
changeset
|
388 ngx_flag_t aio; /* aio */ |
6443
fc72784b1f52
Threads: writing via threads pools in event pipe.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6432
diff
changeset
|
389 ngx_flag_t aio_write; /* aio_write */ |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
257
diff
changeset
|
390 ngx_flag_t tcp_nopush; /* tcp_nopush */ |
452 | 391 ngx_flag_t tcp_nodelay; /* tcp_nodelay */ |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
335
diff
changeset
|
392 ngx_flag_t reset_timedout_connection; /* reset_timedout_connection */ |
6852
d15172ebb400
Core: relative redirects (closes #1000).
Ruslan Ermilov <ru@nginx.com>
parents:
6735
diff
changeset
|
393 ngx_flag_t absolute_redirect; /* absolute_redirect */ |
1804
d457a1576532
several changes in server_name:
Igor Sysoev <igor@sysoev.ru>
parents:
1790
diff
changeset
|
394 ngx_flag_t server_name_in_redirect; /* server_name_in_redirect */ |
521 | 395 ngx_flag_t port_in_redirect; /* port_in_redirect */ |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
257
diff
changeset
|
396 ngx_flag_t msie_padding; /* msie_padding */ |
679 | 397 ngx_flag_t msie_refresh; /* msie_refresh */ |
527 | 398 ngx_flag_t log_not_found; /* log_not_found */ |
2261 | 399 ngx_flag_t log_subrequest; /* log_subrequest */ |
679 | 400 ngx_flag_t recursive_error_pages; /* recursive_error_pages */ |
6885
25203fc377fb
Implemented the "server_tokens build" option.
Ruslan Ermilov <ru@nginx.com>
parents:
6852
diff
changeset
|
401 ngx_uint_t server_tokens; /* server_tokens */ |
3484 | 402 ngx_flag_t chunked_transfer_encoding; /* chunked_transfer_encoding */ |
4749
613750237b36
Entity tags: the "etag" directive.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4748
diff
changeset
|
403 ngx_flag_t etag; /* etag */ |
290
87e73f067470
nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
257
diff
changeset
|
404 |
1790
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
405 #if (NGX_HTTP_GZIP) |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
406 ngx_flag_t gzip_vary; /* gzip_vary */ |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
407 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
408 ngx_uint_t gzip_http_version; /* gzip_http_version */ |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
409 ngx_uint_t gzip_proxied; /* gzip_proxied */ |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
410 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
411 #if (NGX_PCRE) |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
412 ngx_array_t *gzip_disable; /* gzip_disable */ |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
413 #endif |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
414 #endif |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
415 |
6733
adc2414856b1
Modules compatibility: compatibility with NGX_THREADS.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6721
diff
changeset
|
416 #if (NGX_THREADS || NGX_COMPAT) |
6022
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
417 ngx_thread_pool_t *thread_pool; |
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
418 ngx_http_complex_value_t *thread_pool_value; |
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
419 #endif |
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
420 |
4477
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
421 #if (NGX_HAVE_OPENAT) |
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
422 ngx_uint_t disable_symlinks; /* disable_symlinks */ |
4495
b4379a91f9b5
Disable symlinks: added the "from=" parameter to the "disable_symlinks"
Valentin Bartenev <vbart@nginx.com>
parents:
4494
diff
changeset
|
423 ngx_http_complex_value_t *disable_symlinks_from; |
4477
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
424 #endif |
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
425 |
176
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
162
diff
changeset
|
426 ngx_array_t *error_pages; /* error_page */ |
158
d377ee423603
nginx-0.0.1-2003-10-24-10:53:41 import
Igor Sysoev <igor@sysoev.ru>
parents:
154
diff
changeset
|
427 |
479 | 428 ngx_path_t *client_body_temp_path; /* client_body_temp_path */ |
429 | |
1454 | 430 ngx_open_file_cache_t *open_file_cache; |
1767
c42431762903
open_file_cache_retest > open_file_cache_valid
Igor Sysoev <igor@sysoev.ru>
parents:
1652
diff
changeset
|
431 time_t open_file_cache_valid; |
1772 | 432 ngx_uint_t open_file_cache_min_uses; |
1454 | 433 ngx_flag_t open_file_cache_errors; |
1457 | 434 ngx_flag_t open_file_cache_events; |
201
267ea1d98683
nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
435 |
2785
d478379e51ac
*) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents:
2701
diff
changeset
|
436 ngx_log_t *error_log; |
195
8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents:
190
diff
changeset
|
437 |
589 | 438 ngx_uint_t types_hash_max_size; |
439 ngx_uint_t types_hash_bucket_size; | |
440 | |
2028
bff8689c6953
move configuration phase only field to the end of structure
Igor Sysoev <igor@sysoev.ru>
parents:
2027
diff
changeset
|
441 ngx_queue_t *locations; |
bff8689c6953
move configuration phase only field to the end of structure
Igor Sysoev <igor@sysoev.ru>
parents:
2027
diff
changeset
|
442 |
485 | 443 #if 0 |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
444 ngx_http_core_loc_conf_t *prev_location; |
485 | 445 #endif |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
446 }; |
13
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
447 |
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
448 |
2027 | 449 typedef struct { |
450 ngx_queue_t queue; | |
451 ngx_http_core_loc_conf_t *exact; | |
452 ngx_http_core_loc_conf_t *inclusive; | |
453 ngx_str_t *name; | |
454 u_char *file_name; | |
455 ngx_uint_t line; | |
456 ngx_queue_t list; | |
457 } ngx_http_location_queue_t; | |
458 | |
459 | |
460 struct ngx_http_location_tree_node_s { | |
461 ngx_http_location_tree_node_t *left; | |
462 ngx_http_location_tree_node_t *right; | |
463 ngx_http_location_tree_node_t *tree; | |
464 | |
465 ngx_http_core_loc_conf_t *exact; | |
466 ngx_http_core_loc_conf_t *inclusive; | |
467 | |
468 u_char auto_redirect; | |
469 u_char len; | |
470 u_char name[1]; | |
471 }; | |
472 | |
473 | |
681 | 474 void ngx_http_core_run_phases(ngx_http_request_t *r); |
475 ngx_int_t ngx_http_core_generic_phase(ngx_http_request_t *r, | |
476 ngx_http_phase_handler_t *ph); | |
3634
40e356cf4176
add files missed in the previuos commit
Igor Sysoev <igor@sysoev.ru>
parents:
3632
diff
changeset
|
477 ngx_int_t ngx_http_core_rewrite_phase(ngx_http_request_t *r, |
40e356cf4176
add files missed in the previuos commit
Igor Sysoev <igor@sysoev.ru>
parents:
3632
diff
changeset
|
478 ngx_http_phase_handler_t *ph); |
681 | 479 ngx_int_t ngx_http_core_find_config_phase(ngx_http_request_t *r, |
480 ngx_http_phase_handler_t *ph); | |
481 ngx_int_t ngx_http_core_post_rewrite_phase(ngx_http_request_t *r, | |
482 ngx_http_phase_handler_t *ph); | |
483 ngx_int_t ngx_http_core_access_phase(ngx_http_request_t *r, | |
484 ngx_http_phase_handler_t *ph); | |
485 ngx_int_t ngx_http_core_post_access_phase(ngx_http_request_t *r, | |
486 ngx_http_phase_handler_t *ph); | |
487 ngx_int_t ngx_http_core_content_phase(ngx_http_request_t *r, | |
488 ngx_http_phase_handler_t *ph); | |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
489 |
2138 | 490 |
491 void *ngx_http_test_content_type(ngx_http_request_t *r, ngx_hash_t *types_hash); | |
201
267ea1d98683
nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
492 ngx_int_t ngx_http_set_content_type(ngx_http_request_t *r); |
2979
b941147f2b2e
ngx_http_set_exten() is always successful since 0.3.46
Igor Sysoev <igor@sysoev.ru>
parents:
2907
diff
changeset
|
493 void ngx_http_set_exten(ngx_http_request_t *r); |
4748
192f54280a7a
Entity tags: set for static respones.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4746
diff
changeset
|
494 ngx_int_t ngx_http_set_etag(ngx_http_request_t *r); |
5733
e491b26fa5a1
Entity tags: downgrade strong etags to weak ones as needed.
Maxim Dounin <mdounin@mdounin.ru>
parents:
5605
diff
changeset
|
495 void ngx_http_weak_etag(ngx_http_request_t *r); |
3632 | 496 ngx_int_t ngx_http_send_response(ngx_http_request_t *r, ngx_uint_t status, |
497 ngx_str_t *ct, ngx_http_complex_value_t *cv); | |
557 | 498 u_char *ngx_http_map_uri_to_path(ngx_http_request_t *r, ngx_str_t *name, |
773 | 499 size_t *root_length, size_t reserved); |
539 | 500 ngx_int_t ngx_http_auth_basic_user(ngx_http_request_t *r); |
1790
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
501 #if (NGX_HTTP_GZIP) |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
502 ngx_int_t ngx_http_gzip_ok(ngx_http_request_t *r); |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
503 #endif |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
504 |
201
267ea1d98683
nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
505 |
509 | 506 ngx_int_t ngx_http_subrequest(ngx_http_request_t *r, |
758
86bb73dc8d40
fix <!--#include virtual=... wait="yes" -->
Igor Sysoev <igor@sysoev.ru>
parents:
681
diff
changeset
|
507 ngx_str_t *uri, ngx_str_t *args, ngx_http_request_t **sr, |
777
4ab852b691f5
<!--#include virtual=... set=... -->
Igor Sysoev <igor@sysoev.ru>
parents:
773
diff
changeset
|
508 ngx_http_post_subrequest_t *psr, ngx_uint_t flags); |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
509 ngx_int_t ngx_http_internal_redirect(ngx_http_request_t *r, |
499 | 510 ngx_str_t *uri, ngx_str_t *args); |
1353 | 511 ngx_int_t ngx_http_named_location(ngx_http_request_t *r, ngx_str_t *name); |
512 | |
485 | 513 |
569 | 514 ngx_http_cleanup_t *ngx_http_cleanup_add(ngx_http_request_t *r, size_t size); |
515 | |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
516 |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
517 typedef ngx_int_t (*ngx_http_output_header_filter_pt)(ngx_http_request_t *r); |
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
518 typedef ngx_int_t (*ngx_http_output_body_filter_pt) |
499 | 519 (ngx_http_request_t *r, ngx_chain_t *chain); |
6049
42d9beeb22db
Request body: filters support.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6022
diff
changeset
|
520 typedef ngx_int_t (*ngx_http_request_body_filter_pt) |
42d9beeb22db
Request body: filters support.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6022
diff
changeset
|
521 (ngx_http_request_t *r, ngx_chain_t *chain); |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
335
diff
changeset
|
522 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
335
diff
changeset
|
523 |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
524 ngx_int_t ngx_http_output_filter(ngx_http_request_t *r, ngx_chain_t *chain); |
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
525 ngx_int_t ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *chain); |
6049
42d9beeb22db
Request body: filters support.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6022
diff
changeset
|
526 ngx_int_t ngx_http_request_body_save_filter(ngx_http_request_t *r, |
6474 | 527 ngx_chain_t *chain); |
346
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
335
diff
changeset
|
528 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
335
diff
changeset
|
529 |
4494
13e09cf11d4e
Disable symlinks: initialization of the "disable_symlinks" field in
Valentin Bartenev <vbart@nginx.com>
parents:
4477
diff
changeset
|
530 ngx_int_t ngx_http_set_disable_symlinks(ngx_http_request_t *r, |
13e09cf11d4e
Disable symlinks: initialization of the "disable_symlinks" field in
Valentin Bartenev <vbart@nginx.com>
parents:
4477
diff
changeset
|
531 ngx_http_core_loc_conf_t *clcf, ngx_str_t *path, ngx_open_file_info_t *of); |
13e09cf11d4e
Disable symlinks: initialization of the "disable_symlinks" field in
Valentin Bartenev <vbart@nginx.com>
parents:
4477
diff
changeset
|
532 |
4623
ed3d0cc6de5a
New function ngx_http_get_forwarded_addr() to look up real client address.
Ruslan Ermilov <ru@nginx.com>
parents:
4495
diff
changeset
|
533 ngx_int_t ngx_http_get_forwarded_addr(ngx_http_request_t *r, ngx_addr_t *addr, |
5084
f7fe817c92a2
Correctly handle multiple X-Forwarded-For headers (ticket #106).
Ruslan Ermilov <ru@nginx.com>
parents:
4771
diff
changeset
|
534 ngx_array_t *headers, ngx_str_t *value, ngx_array_t *proxies, |
f7fe817c92a2
Correctly handle multiple X-Forwarded-For headers (ticket #106).
Ruslan Ermilov <ru@nginx.com>
parents:
4771
diff
changeset
|
535 int recursive); |
4623
ed3d0cc6de5a
New function ngx_http_get_forwarded_addr() to look up real client address.
Ruslan Ermilov <ru@nginx.com>
parents:
4495
diff
changeset
|
536 |
4494
13e09cf11d4e
Disable symlinks: initialization of the "disable_symlinks" field in
Valentin Bartenev <vbart@nginx.com>
parents:
4477
diff
changeset
|
537 |
577 | 538 extern ngx_module_t ngx_http_core_module; |
539 | |
540 extern ngx_uint_t ngx_http_max_module; | |
541 | |
2701 | 542 extern ngx_str_t ngx_http_core_get_method; |
543 | |
577 | 544 |
545 #define ngx_http_clear_content_length(r) \ | |
546 \ | |
547 r->headers_out.content_length_n = -1; \ | |
548 if (r->headers_out.content_length) { \ | |
549 r->headers_out.content_length->hash = 0; \ | |
550 r->headers_out.content_length = NULL; \ | |
551 } | |
5805 | 552 |
577 | 553 #define ngx_http_clear_accept_ranges(r) \ |
554 \ | |
581 | 555 r->allow_ranges = 0; \ |
577 | 556 if (r->headers_out.accept_ranges) { \ |
2024 | 557 r->headers_out.accept_ranges->hash = 0; \ |
577 | 558 r->headers_out.accept_ranges = NULL; \ |
559 } | |
560 | |
561 #define ngx_http_clear_last_modified(r) \ | |
562 \ | |
563 r->headers_out.last_modified_time = -1; \ | |
564 if (r->headers_out.last_modified) { \ | |
565 r->headers_out.last_modified->hash = 0; \ | |
566 r->headers_out.last_modified = NULL; \ | |
567 } | |
568 | |
4206
1a94a56a4e5d
Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4062
diff
changeset
|
569 #define ngx_http_clear_location(r) \ |
1a94a56a4e5d
Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4062
diff
changeset
|
570 \ |
1a94a56a4e5d
Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4062
diff
changeset
|
571 if (r->headers_out.location) { \ |
1a94a56a4e5d
Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4062
diff
changeset
|
572 r->headers_out.location->hash = 0; \ |
1a94a56a4e5d
Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4062
diff
changeset
|
573 r->headers_out.location = NULL; \ |
1a94a56a4e5d
Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4062
diff
changeset
|
574 } |
1a94a56a4e5d
Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4062
diff
changeset
|
575 |
4746
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
576 #define ngx_http_clear_etag(r) \ |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
577 \ |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
578 if (r->headers_out.etag) { \ |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
579 r->headers_out.etag->hash = 0; \ |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
580 r->headers_out.etag = NULL; \ |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
581 } |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
582 |
577 | 583 |
13
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
584 #endif /* _NGX_HTTP_CORE_H_INCLUDED_ */ |