Mercurial > hg > nginx
annotate src/http/ngx_http_core_module.h @ 9275:199dc0d6b05b
Added max_headers directive.
The directive limits the number of request headers accepted from clients.
While the total amount of headers is believed to be sufficiently limited
by the existing buffer size limits (client_header_buffer_size and
large_client_header_buffers), the additional limit on the number of headers
might be beneficial to better protect backend servers.
Requested by Maksim Yevmenkin.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 24 May 2024 00:20:01 +0300 |
parents | 69bae2437d74 |
children |
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; |
9081
c851a2ed5ce8
HTTP/3: "quic" parameter of "listen" directive.
Roman Arutyunyan <arut@nginx.com>
parents:
9021
diff
changeset
|
78 unsigned quic: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; | |
8166
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 |
9275
199dc0d6b05b
Added max_headers directive.
Maxim Dounin <mdounin@mdounin.ru>
parents:
9104
diff
changeset
|
201 ngx_uint_t max_headers; |
199dc0d6b05b
Added max_headers directive.
Maxim Dounin <mdounin@mdounin.ru>
parents:
9104
diff
changeset
|
202 |
2027 | 203 ngx_flag_t ignore_invalid_headers; |
204 ngx_flag_t merge_slashes; | |
2256 | 205 ngx_flag_t underscores_in_headers; |
2027 | 206 |
3219 | 207 unsigned listen:1; |
208 #if (NGX_PCRE) | |
209 unsigned captures:1; | |
210 #endif | |
3217 | 211 |
2027 | 212 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
|
213 } 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
|
214 |
41
59e7c7f30d49
nginx-0.0.1-2002-12-26-19:26:23 import
Igor Sysoev <igor@sysoev.ru>
parents:
19
diff
changeset
|
215 |
55
cad6c2f43283
nginx-0.0.1-2003-01-29-10:25:51 import
Igor Sysoev <igor@sysoev.ru>
parents:
54
diff
changeset
|
216 /* 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
|
217 |
593 | 218 |
219 typedef struct { | |
5085
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
220 #if (NGX_PCRE) |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
221 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
|
222 #endif |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
223 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
|
224 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
|
225 } 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
|
226 |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
227 |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
228 typedef struct { |
6474 | 229 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
|
230 |
6474 | 231 ngx_uint_t nregex; |
232 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
|
233 } 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
|
234 |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
235 |
7f1cbcc71327
The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents:
5084
diff
changeset
|
236 struct ngx_http_addr_conf_s { |
593 | 237 /* 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
|
238 ngx_http_core_srv_conf_t *default_server; |
1387 | 239 |
2689
6caf687a831f
backout r2535: virtual names is a property of address:port pair,
Igor Sysoev <igor@sysoev.ru>
parents:
2589
diff
changeset
|
240 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
|
241 |
5121
c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents:
5085
diff
changeset
|
242 unsigned ssl:1; |
6246
257b51c37c5a
The HTTP/2 implementation (RFC 7240, 7241).
Valentin Bartenev <vbart@nginx.com>
parents:
6153
diff
changeset
|
243 unsigned http2:1; |
9081
c851a2ed5ce8
HTTP/3: "quic" parameter of "listen" directive.
Roman Arutyunyan <arut@nginx.com>
parents:
9021
diff
changeset
|
244 unsigned quic:1; |
5605
3a72b1805c52
Added server-side support for PROXY protocol v1 (ticket #355).
Roman Arutyunyan <arut@nginx.com>
parents:
5456
diff
changeset
|
245 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
|
246 }; |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
247 |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
248 |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
249 typedef struct { |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
250 in_addr_t addr; |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
251 ngx_http_addr_conf_t conf; |
593 | 252 } ngx_http_in_addr_t; |
253 | |
254 | |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
255 #if (NGX_HAVE_INET6) |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
256 |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
257 typedef struct { |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
258 struct in6_addr addr6; |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
259 ngx_http_addr_conf_t conf; |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
260 } ngx_http_in6_addr_t; |
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 #endif |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
263 |
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
264 |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
265 typedef struct { |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
266 /* 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
|
267 void *addrs; |
593 | 268 ngx_uint_t naddrs; |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
269 } 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
|
270 |
89
29bf798b583f
nginx-0.0.1-2003-05-15-19:42:53 import
Igor Sysoev <igor@sysoev.ru>
parents:
88
diff
changeset
|
271 |
593 | 272 typedef struct { |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
273 ngx_int_t family; |
8166
7999d3fbb765
HTTP UDP layer, QUIC support autotest.
Sergey Kandaurov <pluknet@nginx.com>
parents:
7504
diff
changeset
|
274 ngx_int_t type; |
593 | 275 in_port_t port; |
2512
2e91aecb9e57
a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents:
2496
diff
changeset
|
276 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
|
277 } ngx_http_conf_port_t; |
593 | 278 |
279 | |
280 typedef struct { | |
3220
cdcd9e29c589
*) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents:
3219
diff
changeset
|
281 ngx_http_listen_opt_t opt; |
477 | 282 |
8122
106328a70f4e
Added warning about redefinition of listen socket protocol options.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8121
diff
changeset
|
283 unsigned protocols:3; |
106328a70f4e
Added warning about redefinition of listen socket protocol options.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8121
diff
changeset
|
284 unsigned protocols_set:1; |
106328a70f4e
Added warning about redefinition of listen socket protocol options.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8121
diff
changeset
|
285 unsigned protocols_changed:1; |
106328a70f4e
Added warning about redefinition of listen socket protocol options.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8121
diff
changeset
|
286 |
593 | 287 ngx_hash_t hash; |
1253
8ef04207c84f
the "www.example.*" wildcard hash support
Igor Sysoev <igor@sysoev.ru>
parents:
1236
diff
changeset
|
288 ngx_hash_wildcard_t *wc_head; |
8ef04207c84f
the "www.example.*" wildcard hash support
Igor Sysoev <igor@sysoev.ru>
parents:
1236
diff
changeset
|
289 ngx_hash_wildcard_t *wc_tail; |
593 | 290 |
1387 | 291 #if (NGX_PCRE) |
292 ngx_uint_t nregex; | |
293 ngx_http_server_name_t *regex; | |
294 #endif | |
295 | |
477 | 296 /* 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
|
297 ngx_http_core_srv_conf_t *default_server; |
3219 | 298 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
|
299 } 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
|
300 |
89
29bf798b583f
nginx-0.0.1-2003-05-15-19:42:53 import
Igor Sysoev <igor@sysoev.ru>
parents:
88
diff
changeset
|
301 |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
302 typedef struct { |
673 | 303 ngx_int_t status; |
304 ngx_int_t overwrite; | |
2589
859f6675a553
use complex value in error_page
Igor Sysoev <igor@sysoev.ru>
parents:
2562
diff
changeset
|
305 ngx_http_complex_value_t value; |
1982
dd388c80f5a2
args support in static error_page
Igor Sysoev <igor@sysoev.ru>
parents:
1806
diff
changeset
|
306 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
|
307 } 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
|
308 |
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
162
diff
changeset
|
309 |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
310 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
|
311 ngx_str_t name; /* location name */ |
7848
1bde031b59ff
Location header escaping in redirects (ticket #882).
Ruslan Ermilov <ru@nginx.com>
parents:
7820
diff
changeset
|
312 ngx_str_t escaped_name; |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
313 |
455 | 314 #if (NGX_PCRE) |
3325 | 315 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
|
316 #endif |
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
317 |
1353 | 318 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
|
319 unsigned lmt_excpt:1; |
1353 | 320 unsigned named:1; |
485 | 321 |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
322 unsigned exact_match:1; |
467 | 323 unsigned noregex:1; |
324 | |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
325 unsigned auto_redirect:1; |
2205 | 326 #if (NGX_HTTP_GZIP) |
327 unsigned gzip_disable_msie6:2; | |
3773 | 328 unsigned gzip_disable_degradation:2; |
329 #endif | |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
330 |
2027 | 331 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
|
332 #if (NGX_PCRE) |
2027 | 333 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
|
334 #endif |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
335 |
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
336 /* pointer to the modules' loc_conf */ |
2024 | 337 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
|
338 |
631 | 339 uint32_t limit_except; |
2024 | 340 void **limit_except_loc_conf; |
631 | 341 |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
342 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
|
343 |
3535
abb3901be800
fix handling an inherited alias in inclusive location
Igor Sysoev <igor@sysoev.ru>
parents:
3484
diff
changeset
|
344 /* 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
|
345 size_t alias; |
577 | 346 ngx_str_t root; /* root, alias */ |
347 ngx_str_t post_action; | |
348 | |
595 | 349 ngx_array_t *root_lengths; |
350 ngx_array_t *root_values; | |
351 | |
589 | 352 ngx_array_t *types; |
353 ngx_hash_t types_hash; | |
354 ngx_str_t default_type; | |
355 | |
663 | 356 off_t client_max_body_size; /* client_max_body_size */ |
2129 | 357 off_t directio; /* directio */ |
3053 | 358 off_t directio_alignment; /* directio_alignment */ |
663 | 359 |
303
00c5660d2707
nginx-0.0.3-2004-04-01-20:20:53 import
Igor Sysoev <igor@sysoev.ru>
parents:
293
diff
changeset
|
360 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
|
361 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
|
362 size_t postpone_output; /* postpone_output */ |
1197 | 363 size_t sendfile_max_chunk; /* sendfile_max_chunk */ |
3178 | 364 size_t read_ahead; /* read_ahead */ |
7220
20f139e9ffa8
Generic subrequests in memory.
Roman Arutyunyan <arut@nginx.com>
parents:
7071
diff
changeset
|
365 size_t subrequest_output_buffer_size; |
20f139e9ffa8
Generic subrequests in memory.
Roman Arutyunyan <arut@nginx.com>
parents:
7071
diff
changeset
|
366 /* 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
|
367 |
7504
c19ca381b2e6
Variables support in limit_rate and limit_rate_after (ticket #293).
Ruslan Ermilov <ru@nginx.com>
parents:
7478
diff
changeset
|
368 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
|
369 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
|
370 |
162
96993d4d5067
nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
158
diff
changeset
|
371 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
|
372 ngx_msec_t send_timeout; /* send_timeout */ |
7820
fdc3d40979b0
Introduced the "keepalive_time" directive.
Maxim Dounin <mdounin@mdounin.ru>
parents:
7638
diff
changeset
|
373 ngx_msec_t keepalive_time; /* keepalive_time */ |
96
a23d010f356d
nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents:
95
diff
changeset
|
374 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
|
375 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
|
376 ngx_msec_t lingering_timeout; /* lingering_timeout */ |
1652
cc7a7d0b89e8
http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents:
1592
diff
changeset
|
377 ngx_msec_t resolver_timeout; /* resolver_timeout */ |
7638
681b78a98a52
The new auth_delay directive for delaying unauthorized requests.
Ruslan Ermilov <ru@nginx.com>
parents:
7504
diff
changeset
|
378 ngx_msec_t auth_delay; /* auth_delay */ |
1652
cc7a7d0b89e8
http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents:
1592
diff
changeset
|
379 |
cc7a7d0b89e8
http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents:
1592
diff
changeset
|
380 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
|
381 |
436
9549fc9508e5
nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
435
diff
changeset
|
382 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
|
383 |
2888 | 384 ngx_uint_t keepalive_requests; /* keepalive_requests */ |
3793 | 385 ngx_uint_t keepalive_disable; /* keepalive_disable */ |
1806 | 386 ngx_uint_t satisfy; /* satisfy */ |
3984
3e51832c8215
lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents:
3793
diff
changeset
|
387 ngx_uint_t lingering_close; /* lingering_close */ |
2361 | 388 ngx_uint_t if_modified_since; /* if_modified_since */ |
4062 | 389 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
|
390 ngx_uint_t client_body_in_file_only; /* client_body_in_file_only */ |
1806 | 391 |
2845 | 392 ngx_flag_t client_body_in_single_buffer; |
393 /* client_body_in_singe_buffer */ | |
509 | 394 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
|
395 ngx_flag_t sendfile; /* sendfile */ |
3052
6060225e9261
FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents:
2979
diff
changeset
|
396 ngx_flag_t aio; /* aio */ |
6443
fc72784b1f52
Threads: writing via threads pools in event pipe.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6432
diff
changeset
|
397 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
|
398 ngx_flag_t tcp_nopush; /* tcp_nopush */ |
452 | 399 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
|
400 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
|
401 ngx_flag_t absolute_redirect; /* absolute_redirect */ |
1804
d457a1576532
several changes in server_name:
Igor Sysoev <igor@sysoev.ru>
parents:
1790
diff
changeset
|
402 ngx_flag_t server_name_in_redirect; /* server_name_in_redirect */ |
521 | 403 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
|
404 ngx_flag_t msie_padding; /* msie_padding */ |
679 | 405 ngx_flag_t msie_refresh; /* msie_refresh */ |
527 | 406 ngx_flag_t log_not_found; /* log_not_found */ |
2261 | 407 ngx_flag_t log_subrequest; /* log_subrequest */ |
679 | 408 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
|
409 ngx_uint_t server_tokens; /* server_tokens */ |
3484 | 410 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
|
411 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
|
412 |
1790
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
413 #if (NGX_HTTP_GZIP) |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
414 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
|
415 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
416 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
|
417 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
|
418 |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
419 #if (NGX_PCRE) |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
420 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
|
421 #endif |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
422 #endif |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
423 |
6733
adc2414856b1
Modules compatibility: compatibility with NGX_THREADS.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6721
diff
changeset
|
424 #if (NGX_THREADS || NGX_COMPAT) |
6022
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
425 ngx_thread_pool_t *thread_pool; |
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
426 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
|
427 #endif |
1fdba317ee6d
Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents:
6006
diff
changeset
|
428 |
4477
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
429 #if (NGX_HAVE_OPENAT) |
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
430 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
|
431 ngx_http_complex_value_t *disable_symlinks_from; |
4477
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
432 #endif |
7033faf6dc3c
Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents:
4412
diff
changeset
|
433 |
176
c0552e5ab567
nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents:
162
diff
changeset
|
434 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
|
435 |
479 | 436 ngx_path_t *client_body_temp_path; /* client_body_temp_path */ |
437 | |
1454 | 438 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
|
439 time_t open_file_cache_valid; |
1772 | 440 ngx_uint_t open_file_cache_min_uses; |
1454 | 441 ngx_flag_t open_file_cache_errors; |
1457 | 442 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
|
443 |
2785
d478379e51ac
*) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents:
2701
diff
changeset
|
444 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
|
445 |
589 | 446 ngx_uint_t types_hash_max_size; |
447 ngx_uint_t types_hash_bucket_size; | |
448 | |
2028
bff8689c6953
move configuration phase only field to the end of structure
Igor Sysoev <igor@sysoev.ru>
parents:
2027
diff
changeset
|
449 ngx_queue_t *locations; |
bff8689c6953
move configuration phase only field to the end of structure
Igor Sysoev <igor@sysoev.ru>
parents:
2027
diff
changeset
|
450 |
485 | 451 #if 0 |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
452 ngx_http_core_loc_conf_t *prev_location; |
485 | 453 #endif |
396
6f3b20c1ac50
nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents:
395
diff
changeset
|
454 }; |
13
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
455 |
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
456 |
2027 | 457 typedef struct { |
458 ngx_queue_t queue; | |
459 ngx_http_core_loc_conf_t *exact; | |
460 ngx_http_core_loc_conf_t *inclusive; | |
461 ngx_str_t *name; | |
462 u_char *file_name; | |
463 ngx_uint_t line; | |
464 ngx_queue_t list; | |
465 } ngx_http_location_queue_t; | |
466 | |
467 | |
468 struct ngx_http_location_tree_node_s { | |
469 ngx_http_location_tree_node_t *left; | |
470 ngx_http_location_tree_node_t *right; | |
471 ngx_http_location_tree_node_t *tree; | |
472 | |
473 ngx_http_core_loc_conf_t *exact; | |
474 ngx_http_core_loc_conf_t *inclusive; | |
475 | |
8121
4eb1383f6432
Fixed handling of very long locations (ticket #2435).
Maxim Dounin <mdounin@mdounin.ru>
parents:
8024
diff
changeset
|
476 u_short len; |
2027 | 477 u_char auto_redirect; |
478 u_char name[1]; | |
479 }; | |
480 | |
481 | |
681 | 482 void ngx_http_core_run_phases(ngx_http_request_t *r); |
483 ngx_int_t ngx_http_core_generic_phase(ngx_http_request_t *r, | |
484 ngx_http_phase_handler_t *ph); | |
3634
40e356cf4176
add files missed in the previuos commit
Igor Sysoev <igor@sysoev.ru>
parents:
3632
diff
changeset
|
485 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
|
486 ngx_http_phase_handler_t *ph); |
681 | 487 ngx_int_t ngx_http_core_find_config_phase(ngx_http_request_t *r, |
488 ngx_http_phase_handler_t *ph); | |
489 ngx_int_t ngx_http_core_post_rewrite_phase(ngx_http_request_t *r, | |
490 ngx_http_phase_handler_t *ph); | |
491 ngx_int_t ngx_http_core_access_phase(ngx_http_request_t *r, | |
492 ngx_http_phase_handler_t *ph); | |
493 ngx_int_t ngx_http_core_post_access_phase(ngx_http_request_t *r, | |
494 ngx_http_phase_handler_t *ph); | |
495 ngx_int_t ngx_http_core_content_phase(ngx_http_request_t *r, | |
496 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
|
497 |
2138 | 498 |
499 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
|
500 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
|
501 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
|
502 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
|
503 void ngx_http_weak_etag(ngx_http_request_t *r); |
3632 | 504 ngx_int_t ngx_http_send_response(ngx_http_request_t *r, ngx_uint_t status, |
505 ngx_str_t *ct, ngx_http_complex_value_t *cv); | |
557 | 506 u_char *ngx_http_map_uri_to_path(ngx_http_request_t *r, ngx_str_t *name, |
773 | 507 size_t *root_length, size_t reserved); |
539 | 508 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
|
509 #if (NGX_HTTP_GZIP) |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
510 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
|
511 #endif |
775edc46ee66
ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents:
1772
diff
changeset
|
512 |
201
267ea1d98683
nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
195
diff
changeset
|
513 |
509 | 514 ngx_int_t ngx_http_subrequest(ngx_http_request_t *r, |
7932
01829d162095
Synced ngx_http_subrequest() argument names (ticket #2255).
Maxim Dounin <mdounin@mdounin.ru>
parents:
7848
diff
changeset
|
515 ngx_str_t *uri, ngx_str_t *args, ngx_http_request_t **psr, |
01829d162095
Synced ngx_http_subrequest() argument names (ticket #2255).
Maxim Dounin <mdounin@mdounin.ru>
parents:
7848
diff
changeset
|
516 ngx_http_post_subrequest_t *ps, 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
|
517 ngx_int_t ngx_http_internal_redirect(ngx_http_request_t *r, |
499 | 518 ngx_str_t *uri, ngx_str_t *args); |
1353 | 519 ngx_int_t ngx_http_named_location(ngx_http_request_t *r, ngx_str_t *name); |
520 | |
485 | 521 |
569 | 522 ngx_http_cleanup_t *ngx_http_cleanup_add(ngx_http_request_t *r, size_t size); |
523 | |
44
0e81ac0bb3e2
nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents:
41
diff
changeset
|
524 |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
525 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
|
526 typedef ngx_int_t (*ngx_http_output_body_filter_pt) |
499 | 527 (ngx_http_request_t *r, ngx_chain_t *chain); |
6049
42d9beeb22db
Request body: filters support.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6022
diff
changeset
|
528 typedef ngx_int_t (*ngx_http_request_body_filter_pt) |
42d9beeb22db
Request body: filters support.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6022
diff
changeset
|
529 (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
|
530 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
335
diff
changeset
|
531 |
356
2e3cbc1bbe3c
nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents:
346
diff
changeset
|
532 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
|
533 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
|
534 ngx_int_t ngx_http_request_body_save_filter(ngx_http_request_t *r, |
6474 | 535 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
|
536 |
55e496a8ece3
nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents:
335
diff
changeset
|
537 |
4494
13e09cf11d4e
Disable symlinks: initialization of the "disable_symlinks" field in
Valentin Bartenev <vbart@nginx.com>
parents:
4477
diff
changeset
|
538 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
|
539 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
|
540 |
4623
ed3d0cc6de5a
New function ngx_http_get_forwarded_addr() to look up real client address.
Ruslan Ermilov <ru@nginx.com>
parents:
4495
diff
changeset
|
541 ngx_int_t ngx_http_get_forwarded_addr(ngx_http_request_t *r, ngx_addr_t *addr, |
8024
ef6a3a99a81a
Reworked multi headers to use linked lists.
Maxim Dounin <mdounin@mdounin.ru>
parents:
8020
diff
changeset
|
542 ngx_table_elt_t *headers, ngx_str_t *value, ngx_array_t *proxies, |
5084
f7fe817c92a2
Correctly handle multiple X-Forwarded-For headers (ticket #106).
Ruslan Ermilov <ru@nginx.com>
parents:
4771
diff
changeset
|
543 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
|
544 |
8020
f8f6b9fee66a
FastCGI: combining headers with identical names (ticket #1724).
Maxim Dounin <mdounin@mdounin.ru>
parents:
7932
diff
changeset
|
545 ngx_int_t ngx_http_link_multi_headers(ngx_http_request_t *r); |
f8f6b9fee66a
FastCGI: combining headers with identical names (ticket #1724).
Maxim Dounin <mdounin@mdounin.ru>
parents:
7932
diff
changeset
|
546 |
4494
13e09cf11d4e
Disable symlinks: initialization of the "disable_symlinks" field in
Valentin Bartenev <vbart@nginx.com>
parents:
4477
diff
changeset
|
547 |
577 | 548 extern ngx_module_t ngx_http_core_module; |
549 | |
550 extern ngx_uint_t ngx_http_max_module; | |
551 | |
2701 | 552 extern ngx_str_t ngx_http_core_get_method; |
553 | |
577 | 554 |
555 #define ngx_http_clear_content_length(r) \ | |
556 \ | |
557 r->headers_out.content_length_n = -1; \ | |
558 if (r->headers_out.content_length) { \ | |
559 r->headers_out.content_length->hash = 0; \ | |
560 r->headers_out.content_length = NULL; \ | |
561 } | |
5805 | 562 |
577 | 563 #define ngx_http_clear_accept_ranges(r) \ |
564 \ | |
581 | 565 r->allow_ranges = 0; \ |
577 | 566 if (r->headers_out.accept_ranges) { \ |
2024 | 567 r->headers_out.accept_ranges->hash = 0; \ |
577 | 568 r->headers_out.accept_ranges = NULL; \ |
569 } | |
570 | |
571 #define ngx_http_clear_last_modified(r) \ | |
572 \ | |
573 r->headers_out.last_modified_time = -1; \ | |
574 if (r->headers_out.last_modified) { \ | |
575 r->headers_out.last_modified->hash = 0; \ | |
576 r->headers_out.last_modified = NULL; \ | |
577 } | |
578 | |
4206
1a94a56a4e5d
Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4062
diff
changeset
|
579 #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
|
580 \ |
1a94a56a4e5d
Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4062
diff
changeset
|
581 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
|
582 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
|
583 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
|
584 } |
1a94a56a4e5d
Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4062
diff
changeset
|
585 |
4746
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
586 #define ngx_http_clear_etag(r) \ |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
587 \ |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
588 if (r->headers_out.etag) { \ |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
589 r->headers_out.etag->hash = 0; \ |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
590 r->headers_out.etag = NULL; \ |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
591 } |
4a18bf1833a9
Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4623
diff
changeset
|
592 |
577 | 593 |
13
2aba961a1d34
nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
594 #endif /* _NGX_HTTP_CORE_H_INCLUDED_ */ |