annotate src/http/ngx_http_core_module.h @ 7690:8253424d1aff

Added size check to ngx_http_alloc_large_header_buffer(). This ensures that copying won't write more than the buffer size even if the buffer comes from hc->free and it is smaller than the large client header buffer size in the virtual host configuration. This might happen if size of large client header buffers is different in name-based virtual hosts, similarly to the problem with number of buffers fixed in 6926:e662cbf1b932.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 06 Aug 2020 05:02:22 +0300
parents 681b78a98a52
children fdc3d40979b0 5b7ec588de48
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 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
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 4323
diff changeset
4 * Copyright (C) Nginx, Inc.
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 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
f62751dab60d remove unused #include's
Igor Sysoev <igor@sysoev.ru>
parents: 2224
diff changeset
12 #include <ngx_config.h>
f62751dab60d remove unused #include's
Igor Sysoev <igor@sysoev.ru>
parents: 2224
diff changeset
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
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
34 #define NGX_HTTP_AIO_OFF 0
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
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
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
37
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
38
1806
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
39 #define NGX_HTTP_SATISFY_ALL 0
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
40 #define NGX_HTTP_SATISFY_ANY 1
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
41
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
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
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
48 #define NGX_HTTP_IMS_OFF 0
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
49 #define NGX_HTTP_IMS_EXACT 1
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
50 #define NGX_HTTP_IMS_BEFORE 2
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
51
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
52
3793
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
53 #define NGX_HTTP_KEEPALIVE_DISABLE_NONE 0x0002
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
54 #define NGX_HTTP_KEEPALIVE_DISABLE_MSIE6 0x0004
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
55 #define NGX_HTTP_KEEPALIVE_DISABLE_SAFARI 0x0008
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
56
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
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
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
63 typedef struct ngx_http_location_tree_node_s ngx_http_location_tree_node_t;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
64 typedef struct ngx_http_core_loc_conf_s ngx_http_core_loc_conf_t;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
65
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
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
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
73 unsigned default_server:1;
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
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
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
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;
6719
cebf5fed00bf Modules compatibility: removed unneeded IPV6_V6ONLY checks.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6718
diff changeset
78 #if (NGX_HAVE_INET6)
4771
bdcdbdf35b52 Core: ipv6only is now on by default.
Ruslan Ermilov <ru@nginx.com>
parents: 4749
diff changeset
79 unsigned ipv6only:1;
2562
c352c419be85 ipv6only
Igor Sysoev <igor@sysoev.ru>
parents: 2549
diff changeset
80 #endif
6721
48bab8b83f4e Modules compatibility: removed two NGX_HAVE_DEFERRED_ACCEPT checks.
Ruslan Ermilov <ru@nginx.com>
parents: 6720
diff changeset
81 unsigned deferred_accept:1;
6153
4f6efabcb09b The "reuseport" option of the "listen" directive.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6049
diff changeset
82 unsigned reuseport:1;
4323
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
83 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
84 unsigned proxy_protocol:1;
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
85
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
86 int backlog;
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
87 int rcvbuf;
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
88 int sndbuf;
3676
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3634
diff changeset
89 #if (NGX_HAVE_SETFIB)
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3634
diff changeset
90 int setfib;
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3634
diff changeset
91 #endif
5456
692afcea9d0d Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents: 5121
diff changeset
92 #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
93 int fastopen;
692afcea9d0d Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents: 5121
diff changeset
94 #endif
4323
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
95 #if (NGX_HAVE_KEEPALIVE_TUNABLE)
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
96 int tcp_keepidle;
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
97 int tcp_keepintvl;
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
98 int tcp_keepcnt;
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
99 #endif
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
100
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
101 #if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER)
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
102 char *accept_filter;
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
103 #endif
3217
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
104 } ngx_http_listen_opt_t;
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
105
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
106
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
107 typedef enum {
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
108 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
109
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
110 NGX_HTTP_SERVER_REWRITE_PHASE,
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
111
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
112 NGX_HTTP_FIND_CONFIG_PHASE,
489
45a460f82aec nginx-0.1.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 485
diff changeset
113 NGX_HTTP_REWRITE_PHASE,
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
114 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
115
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
116 NGX_HTTP_PREACCESS_PHASE,
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
117
368
15c84a40e87d nginx-0.0.7-2004-06-24-20:07:04 import
Igor Sysoev <igor@sysoev.ru>
parents: 362
diff changeset
118 NGX_HTTP_ACCESS_PHASE,
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
119 NGX_HTTP_POST_ACCESS_PHASE,
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
120
7071
cce6936ed2f4 Precontent phase.
Roman Arutyunyan <arut@nginx.com>
parents: 6899
diff changeset
121 NGX_HTTP_PRECONTENT_PHASE,
cce6936ed2f4 Precontent phase.
Roman Arutyunyan <arut@nginx.com>
parents: 6899
diff changeset
122
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
123 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
124
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
125 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
126 } ngx_http_phases;
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
127
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
128 typedef struct ngx_http_phase_handler_s ngx_http_phase_handler_t;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
129
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
130 typedef ngx_int_t (*ngx_http_phase_handler_pt)(ngx_http_request_t *r,
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
131 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
132
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
133 struct ngx_http_phase_handler_s {
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
134 ngx_http_phase_handler_pt checker;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
135 ngx_http_handler_pt handler;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
136 ngx_uint_t next;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
137 };
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
138
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
139
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
140 typedef struct {
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
141 ngx_http_phase_handler_t *handlers;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
142 ngx_uint_t server_rewrite_index;
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
143 ngx_uint_t location_rewrite_index;
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
144 } ngx_http_phase_engine_t;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
145
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
146
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
147 typedef struct {
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
148 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
149 } 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
150
5526213be452 nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 114
diff changeset
151
5526213be452 nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 114
diff changeset
152 typedef struct {
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
153 ngx_array_t servers; /* ngx_http_core_srv_conf_t */
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
154
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
155 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
156
649
1e720b0be7ec nginx-0.3.46-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
157 ngx_hash_t headers_in_hash;
611
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
158
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
159 ngx_hash_t variables_hash;
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
160
6899
d2b2ff157da5 Variables: generic prefix variables.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 6885
diff changeset
161 ngx_array_t variables; /* ngx_http_variable_t */
d2b2ff157da5 Variables: generic prefix variables.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 6885
diff changeset
162 ngx_array_t prefix_variables; /* ngx_http_variable_t */
3325
42c16d8bddbe regex named captures
Igor Sysoev <igor@sysoev.ru>
parents: 3224
diff changeset
163 ngx_uint_t ncaptures;
507
cd3117ad9aab nginx-0.1.28-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
164
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
165 ngx_uint_t server_names_hash_max_size;
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
166 ngx_uint_t server_names_hash_bucket_size;
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
167
611
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
168 ngx_uint_t variables_hash_max_size;
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
169 ngx_uint_t variables_hash_bucket_size;
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
170
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
171 ngx_hash_keys_arrays_t *variables_keys;
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
172
3217
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
173 ngx_array_t *ports;
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
174
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
175 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
176 } 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
177
37530da31268 nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 89
diff changeset
178
37530da31268 nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 89
diff changeset
179 typedef struct {
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
180 /* array of the ngx_http_server_name_t, "server_name" directive */
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
181 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
182
5659d773cfa8 nginx-0.0.7-2004-07-15-20:35:51 import
Igor Sysoev <igor@sysoev.ru>
parents: 391
diff changeset
183 /* server ctx */
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
184 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
185
7269
7f955d3b9a0d SSL: detect "listen ... ssl" without certificates (ticket #178).
Maxim Dounin <mdounin@mdounin.ru>
parents: 7220
diff changeset
186 u_char *file_name;
7f955d3b9a0d SSL: detect "listen ... ssl" without certificates (ticket #178).
Maxim Dounin <mdounin@mdounin.ru>
parents: 7220
diff changeset
187 ngx_uint_t line;
7f955d3b9a0d SSL: detect "listen ... ssl" without certificates (ticket #178).
Maxim Dounin <mdounin@mdounin.ru>
parents: 7220
diff changeset
188
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
189 ngx_str_t server_name;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
190
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
191 size_t connection_pool_size;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
192 size_t request_pool_size;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
193 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
194
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
195 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
196
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
197 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
198
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
199 ngx_flag_t ignore_invalid_headers;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
200 ngx_flag_t merge_slashes;
2256
8c17cfe63d2c underscores_in_headers
Igor Sysoev <igor@sysoev.ru>
parents: 2233
diff changeset
201 ngx_flag_t underscores_in_headers;
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
202
3219
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
203 unsigned listen:1;
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
204 #if (NGX_PCRE)
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
205 unsigned captures:1;
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
206 #endif
3217
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
207
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
208 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
209 } 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
210
41
59e7c7f30d49 nginx-0.0.1-2002-12-26-19:26:23 import
Igor Sysoev <igor@sysoev.ru>
parents: 19
diff changeset
211
55
cad6c2f43283 nginx-0.0.1-2003-01-29-10:25:51 import
Igor Sysoev <igor@sysoev.ru>
parents: 54
diff changeset
212 /* 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
213
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
214
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
215 typedef struct {
5085
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
216 #if (NGX_PCRE)
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
217 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
218 #endif
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
219 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
220 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
221 } 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
222
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
223
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
224 typedef struct {
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6451
diff changeset
225 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
226
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6451
diff changeset
227 ngx_uint_t nregex;
Ruslan Ermilov <ru@nginx.com>
parents: 6451
diff changeset
228 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
229 } 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
230
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
231
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
232 struct ngx_http_addr_conf_s {
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
233 /* 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
234 ngx_http_core_srv_conf_t *default_server;
1387
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
235
2689
6caf687a831f backout r2535: virtual names is a property of address:port pair,
Igor Sysoev <igor@sysoev.ru>
parents: 2589
diff changeset
236 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
237
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents: 5085
diff changeset
238 unsigned ssl:1;
6246
257b51c37c5a The HTTP/2 implementation (RFC 7240, 7241).
Valentin Bartenev <vbart@nginx.com>
parents: 6153
diff changeset
239 unsigned http2:1;
5605
3a72b1805c52 Added server-side support for PROXY protocol v1 (ticket #355).
Roman Arutyunyan <arut@nginx.com>
parents: 5456
diff changeset
240 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
241 };
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
242
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
243
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
244 typedef struct {
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
245 in_addr_t addr;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
246 ngx_http_addr_conf_t conf;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
247 } ngx_http_in_addr_t;
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
248
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
249
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
250 #if (NGX_HAVE_INET6)
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
251
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
252 typedef struct {
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
253 struct in6_addr addr6;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
254 ngx_http_addr_conf_t conf;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
255 } ngx_http_in6_addr_t;
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 #endif
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
258
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
259
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 41
diff changeset
260 typedef struct {
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
261 /* 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
262 void *addrs;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
263 ngx_uint_t naddrs;
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
264 } 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
265
89
29bf798b583f nginx-0.0.1-2003-05-15-19:42:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
266
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
267 typedef struct {
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
268 ngx_int_t family;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
269 in_port_t port;
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
270 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
271 } ngx_http_conf_port_t;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
272
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
273
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
274 typedef struct {
3220
cdcd9e29c589 *) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents: 3219
diff changeset
275 ngx_http_listen_opt_t opt;
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
276
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
277 ngx_hash_t hash;
1253
8ef04207c84f the "www.example.*" wildcard hash support
Igor Sysoev <igor@sysoev.ru>
parents: 1236
diff changeset
278 ngx_hash_wildcard_t *wc_head;
8ef04207c84f the "www.example.*" wildcard hash support
Igor Sysoev <igor@sysoev.ru>
parents: 1236
diff changeset
279 ngx_hash_wildcard_t *wc_tail;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
280
1387
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
281 #if (NGX_PCRE)
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
282 ngx_uint_t nregex;
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
283 ngx_http_server_name_t *regex;
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
284 #endif
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
285
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
286 /* 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
287 ngx_http_core_srv_conf_t *default_server;
3219
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
288 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
289 } 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
290
89
29bf798b583f nginx-0.0.1-2003-05-15-19:42:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
291
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 41
diff changeset
292 typedef struct {
673
b80f94fa2197 nginx-0.3.58-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 667
diff changeset
293 ngx_int_t status;
b80f94fa2197 nginx-0.3.58-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 667
diff changeset
294 ngx_int_t overwrite;
2589
859f6675a553 use complex value in error_page
Igor Sysoev <igor@sysoev.ru>
parents: 2562
diff changeset
295 ngx_http_complex_value_t value;
1982
dd388c80f5a2 args support in static error_page
Igor Sysoev <igor@sysoev.ru>
parents: 1806
diff changeset
296 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
297 } 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
298
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 162
diff changeset
299
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
300 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
301 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
302
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 452
diff changeset
303 #if (NGX_PCRE)
3325
42c16d8bddbe regex named captures
Igor Sysoev <igor@sysoev.ru>
parents: 3224
diff changeset
304 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
305 #endif
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
306
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
307 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
308 unsigned lmt_excpt:1;
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
309 unsigned named:1;
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
310
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
311 unsigned exact_match:1;
467
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
312 unsigned noregex:1;
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
313
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
314 unsigned auto_redirect:1;
2205
5398f47082f0 gzip_disable msie6
Igor Sysoev <igor@sysoev.ru>
parents: 2197
diff changeset
315 #if (NGX_HTTP_GZIP)
5398f47082f0 gzip_disable msie6
Igor Sysoev <igor@sysoev.ru>
parents: 2197
diff changeset
316 unsigned gzip_disable_msie6:2;
3773
a08e8b3832ae gzip_disable degradation
Igor Sysoev <igor@sysoev.ru>
parents: 3731
diff changeset
317 unsigned gzip_disable_degradation:2;
a08e8b3832ae gzip_disable degradation
Igor Sysoev <igor@sysoev.ru>
parents: 3731
diff changeset
318 #endif
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
319
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
320 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
321 #if (NGX_PCRE)
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
322 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
323 #endif
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
324
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
325 /* pointer to the modules' loc_conf */
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1982
diff changeset
326 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
327
631
5d2b8078c1c2 nginx-0.3.37-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
328 uint32_t limit_except;
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1982
diff changeset
329 void **limit_except_loc_conf;
631
5d2b8078c1c2 nginx-0.3.37-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
330
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 346
diff changeset
331 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
332
3535
abb3901be800 fix handling an inherited alias in inclusive location
Igor Sysoev <igor@sysoev.ru>
parents: 3484
diff changeset
333 /* 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
334 size_t alias;
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
335 ngx_str_t root; /* root, alias */
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
336 ngx_str_t post_action;
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
337
595
ebc68d8ca496 nginx-0.3.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 593
diff changeset
338 ngx_array_t *root_lengths;
ebc68d8ca496 nginx-0.3.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 593
diff changeset
339 ngx_array_t *root_values;
ebc68d8ca496 nginx-0.3.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 593
diff changeset
340
589
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
341 ngx_array_t *types;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
342 ngx_hash_t types_hash;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
343 ngx_str_t default_type;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
344
663
6d5c1535bb9d nginx-0.3.53-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
345 off_t client_max_body_size; /* client_max_body_size */
2129
25add486e7aa directio
Igor Sysoev <igor@sysoev.ru>
parents: 2029
diff changeset
346 off_t directio; /* directio */
3053
0d253659da12 directio_alignment
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
347 off_t directio_alignment; /* directio_alignment */
663
6d5c1535bb9d nginx-0.3.53-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
348
303
00c5660d2707 nginx-0.0.3-2004-04-01-20:20:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 293
diff changeset
349 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
350 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
351 size_t postpone_output; /* postpone_output */
1197
493a227edfd5 sendfile_max_chunk
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
352 size_t sendfile_max_chunk; /* sendfile_max_chunk */
3178
975f0558aab3 read_ahead
Igor Sysoev <igor@sysoev.ru>
parents: 3065
diff changeset
353 size_t read_ahead; /* read_ahead */
7220
20f139e9ffa8 Generic subrequests in memory.
Roman Arutyunyan <arut@nginx.com>
parents: 7071
diff changeset
354 size_t subrequest_output_buffer_size;
20f139e9ffa8 Generic subrequests in memory.
Roman Arutyunyan <arut@nginx.com>
parents: 7071
diff changeset
355 /* 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
356
7504
c19ca381b2e6 Variables support in limit_rate and limit_rate_after (ticket #293).
Ruslan Ermilov <ru@nginx.com>
parents: 7478
diff changeset
357 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
358 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
359
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 158
diff changeset
360 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
361 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
362 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
363 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
364 ngx_msec_t lingering_timeout; /* lingering_timeout */
1652
cc7a7d0b89e8 http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
365 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
366 ngx_msec_t auth_delay; /* auth_delay */
1652
cc7a7d0b89e8 http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
367
cc7a7d0b89e8 http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
368 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
369
436
9549fc9508e5 nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 435
diff changeset
370 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
371
2888
512d164a8348 keepalive_requests
Igor Sysoev <igor@sysoev.ru>
parents: 2857
diff changeset
372 ngx_uint_t keepalive_requests; /* keepalive_requests */
3793
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
373 ngx_uint_t keepalive_disable; /* keepalive_disable */
1806
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
374 ngx_uint_t satisfy; /* satisfy */
3984
3e51832c8215 lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
375 ngx_uint_t lingering_close; /* lingering_close */
2361
c59485781f0a if_modified_since
Igor Sysoev <igor@sysoev.ru>
parents: 2261
diff changeset
376 ngx_uint_t if_modified_since; /* if_modified_since */
4062
82738a316a54 The "max_ranges" directive.
Igor Sysoev <igor@sysoev.ru>
parents: 3984
diff changeset
377 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
378 ngx_uint_t client_body_in_file_only; /* client_body_in_file_only */
1806
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
379
2845
10d6b9950453 client_body_in_single_buffer
Igor Sysoev <igor@sysoev.ru>
parents: 2841
diff changeset
380 ngx_flag_t client_body_in_single_buffer;
10d6b9950453 client_body_in_single_buffer
Igor Sysoev <igor@sysoev.ru>
parents: 2841
diff changeset
381 /* client_body_in_singe_buffer */
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
382 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
383 ngx_flag_t sendfile; /* sendfile */
3052
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 2979
diff changeset
384 ngx_flag_t aio; /* aio */
6443
fc72784b1f52 Threads: writing via threads pools in event pipe.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6432
diff changeset
385 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
386 ngx_flag_t tcp_nopush; /* tcp_nopush */
452
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
387 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
388 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
389 ngx_flag_t absolute_redirect; /* absolute_redirect */
1804
d457a1576532 several changes in server_name:
Igor Sysoev <igor@sysoev.ru>
parents: 1790
diff changeset
390 ngx_flag_t server_name_in_redirect; /* server_name_in_redirect */
521
6f00349b98e5 nginx-0.1.35-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 511
diff changeset
391 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
392 ngx_flag_t msie_padding; /* msie_padding */
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 673
diff changeset
393 ngx_flag_t msie_refresh; /* msie_refresh */
527
7fa11e5c6e96 nginx-0.1.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 523
diff changeset
394 ngx_flag_t log_not_found; /* log_not_found */
2261
07bf557a2e40 *) log_subrequest
Igor Sysoev <igor@sysoev.ru>
parents: 2256
diff changeset
395 ngx_flag_t log_subrequest; /* log_subrequest */
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 673
diff changeset
396 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
397 ngx_uint_t server_tokens; /* server_tokens */
3484
81457372d938 chunked_transfer_encoding
Igor Sysoev <igor@sysoev.ru>
parents: 3395
diff changeset
398 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
399 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
400
1790
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
401 #if (NGX_HTTP_GZIP)
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
402 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
403
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
404 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
405 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
406
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
407 #if (NGX_PCRE)
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
408 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
409 #endif
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
410 #endif
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
411
6733
adc2414856b1 Modules compatibility: compatibility with NGX_THREADS.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6721
diff changeset
412 #if (NGX_THREADS || NGX_COMPAT)
6022
1fdba317ee6d Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents: 6006
diff changeset
413 ngx_thread_pool_t *thread_pool;
1fdba317ee6d Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents: 6006
diff changeset
414 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
415 #endif
1fdba317ee6d Added support for offloading read() in thread pools.
Valentin Bartenev <vbart@nginx.com>
parents: 6006
diff changeset
416
4477
7033faf6dc3c Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
417 #if (NGX_HAVE_OPENAT)
7033faf6dc3c Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
418 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
419 ngx_http_complex_value_t *disable_symlinks_from;
4477
7033faf6dc3c Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
420 #endif
7033faf6dc3c Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
421
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 162
diff changeset
422 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
423
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
424 ngx_path_t *client_body_temp_path; /* client_body_temp_path */
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
425
1454
f497ed7682a7 open_file_cache in HTTP
Igor Sysoev <igor@sysoev.ru>
parents: 1387
diff changeset
426 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
427 time_t open_file_cache_valid;
1772
25c93614e6b9 open_file_cache_min_uses
Igor Sysoev <igor@sysoev.ru>
parents: 1767
diff changeset
428 ngx_uint_t open_file_cache_min_uses;
1454
f497ed7682a7 open_file_cache in HTTP
Igor Sysoev <igor@sysoev.ru>
parents: 1387
diff changeset
429 ngx_flag_t open_file_cache_errors;
1457
223e92651ca5 open_file_cache_events
Igor Sysoev <igor@sysoev.ru>
parents: 1454
diff changeset
430 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
431
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2701
diff changeset
432 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
433
589
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
434 ngx_uint_t types_hash_max_size;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
435 ngx_uint_t types_hash_bucket_size;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
436
2028
bff8689c6953 move configuration phase only field to the end of structure
Igor Sysoev <igor@sysoev.ru>
parents: 2027
diff changeset
437 ngx_queue_t *locations;
bff8689c6953 move configuration phase only field to the end of structure
Igor Sysoev <igor@sysoev.ru>
parents: 2027
diff changeset
438
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
439 #if 0
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
440 ngx_http_core_loc_conf_t *prev_location;
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
441 #endif
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
442 };
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
443
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
444
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
445 typedef struct {
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
446 ngx_queue_t queue;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
447 ngx_http_core_loc_conf_t *exact;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
448 ngx_http_core_loc_conf_t *inclusive;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
449 ngx_str_t *name;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
450 u_char *file_name;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
451 ngx_uint_t line;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
452 ngx_queue_t list;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
453 } ngx_http_location_queue_t;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
454
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
455
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
456 struct ngx_http_location_tree_node_s {
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
457 ngx_http_location_tree_node_t *left;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
458 ngx_http_location_tree_node_t *right;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
459 ngx_http_location_tree_node_t *tree;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
460
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
461 ngx_http_core_loc_conf_t *exact;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
462 ngx_http_core_loc_conf_t *inclusive;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
463
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
464 u_char auto_redirect;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
465 u_char len;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
466 u_char name[1];
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
467 };
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
468
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
469
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
470 void ngx_http_core_run_phases(ngx_http_request_t *r);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
471 ngx_int_t ngx_http_core_generic_phase(ngx_http_request_t *r,
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
472 ngx_http_phase_handler_t *ph);
3634
40e356cf4176 add files missed in the previuos commit
Igor Sysoev <igor@sysoev.ru>
parents: 3632
diff changeset
473 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
474 ngx_http_phase_handler_t *ph);
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
475 ngx_int_t ngx_http_core_find_config_phase(ngx_http_request_t *r,
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
476 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
477 ngx_int_t ngx_http_core_post_rewrite_phase(ngx_http_request_t *r,
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
478 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
479 ngx_int_t ngx_http_core_access_phase(ngx_http_request_t *r,
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
480 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
481 ngx_int_t ngx_http_core_post_access_phase(ngx_http_request_t *r,
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
482 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
483 ngx_int_t ngx_http_core_content_phase(ngx_http_request_t *r,
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
484 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
485
2138
fb3b084e7d42 test Content-Type via hash:
Igor Sysoev <igor@sysoev.ru>
parents: 2129
diff changeset
486
fb3b084e7d42 test Content-Type via hash:
Igor Sysoev <igor@sysoev.ru>
parents: 2129
diff changeset
487 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
488 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
489 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
490 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
491 void ngx_http_weak_etag(ngx_http_request_t *r);
3632
920919d9148c ngx_http_send_response()
Igor Sysoev <igor@sysoev.ru>
parents: 3535
diff changeset
492 ngx_int_t ngx_http_send_response(ngx_http_request_t *r, ngx_uint_t status,
920919d9148c ngx_http_send_response()
Igor Sysoev <igor@sysoev.ru>
parents: 3535
diff changeset
493 ngx_str_t *ct, ngx_http_complex_value_t *cv);
557
ecd9c160f25b nginx-0.3.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
494 u_char *ngx_http_map_uri_to_path(ngx_http_request_t *r, ngx_str_t *name,
773
c3ebeee31026 remove r->root_length
Igor Sysoev <igor@sysoev.ru>
parents: 758
diff changeset
495 size_t *root_length, size_t reserved);
539
371c1cee100d nginx-0.1.44-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 527
diff changeset
496 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
497 #if (NGX_HTTP_GZIP)
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
498 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
499 #endif
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
500
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
501
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
502 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
503 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
504 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
505 ngx_int_t ngx_http_internal_redirect(ngx_http_request_t *r,
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 489
diff changeset
506 ngx_str_t *uri, ngx_str_t *args);
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
507 ngx_int_t ngx_http_named_location(ngx_http_request_t *r, ngx_str_t *name);
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
508
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
509
569
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
510 ngx_http_cleanup_t *ngx_http_cleanup_add(ngx_http_request_t *r, size_t size);
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
511
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 41
diff changeset
512
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 346
diff changeset
513 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
514 typedef ngx_int_t (*ngx_http_output_body_filter_pt)
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 489
diff changeset
515 (ngx_http_request_t *r, ngx_chain_t *chain);
6049
42d9beeb22db Request body: filters support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6022
diff changeset
516 typedef ngx_int_t (*ngx_http_request_body_filter_pt)
42d9beeb22db Request body: filters support.
Maxim Dounin <mdounin@mdounin.ru>
parents: 6022
diff changeset
517 (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
518
55e496a8ece3 nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 335
diff changeset
519
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 346
diff changeset
520 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
521 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
522 ngx_int_t ngx_http_request_body_save_filter(ngx_http_request_t *r,
6474
Ruslan Ermilov <ru@nginx.com>
parents: 6451
diff changeset
523 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
524
55e496a8ece3 nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 335
diff changeset
525
4494
13e09cf11d4e Disable symlinks: initialization of the "disable_symlinks" field in
Valentin Bartenev <vbart@nginx.com>
parents: 4477
diff changeset
526 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
527 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
528
4623
ed3d0cc6de5a New function ngx_http_get_forwarded_addr() to look up real client address.
Ruslan Ermilov <ru@nginx.com>
parents: 4495
diff changeset
529 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
530 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
531 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
532
4494
13e09cf11d4e Disable symlinks: initialization of the "disable_symlinks" field in
Valentin Bartenev <vbart@nginx.com>
parents: 4477
diff changeset
533
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
534 extern ngx_module_t ngx_http_core_module;
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
535
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
536 extern ngx_uint_t ngx_http_max_module;
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
537
2701
756f73ca1e39 support HEAD in proxy cache
Igor Sysoev <igor@sysoev.ru>
parents: 2695
diff changeset
538 extern ngx_str_t ngx_http_core_get_method;
756f73ca1e39 support HEAD in proxy cache
Igor Sysoev <igor@sysoev.ru>
parents: 2695
diff changeset
539
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
540
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
541 #define ngx_http_clear_content_length(r) \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
542 \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
543 r->headers_out.content_length_n = -1; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
544 if (r->headers_out.content_length) { \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
545 r->headers_out.content_length->hash = 0; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
546 r->headers_out.content_length = NULL; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
547 }
5805
79553cb77747 Fixed typo.
Sergey Kandaurov <pluknet@nginx.com>
parents: 5733
diff changeset
548
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
549 #define ngx_http_clear_accept_ranges(r) \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
550 \
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
551 r->allow_ranges = 0; \
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
552 if (r->headers_out.accept_ranges) { \
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1982
diff changeset
553 r->headers_out.accept_ranges->hash = 0; \
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
554 r->headers_out.accept_ranges = NULL; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
555 }
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
556
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
557 #define ngx_http_clear_last_modified(r) \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
558 \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
559 r->headers_out.last_modified_time = -1; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
560 if (r->headers_out.last_modified) { \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
561 r->headers_out.last_modified->hash = 0; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
562 r->headers_out.last_modified = NULL; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
563 }
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
564
4206
1a94a56a4e5d Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4062
diff changeset
565 #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
566 \
1a94a56a4e5d Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4062
diff changeset
567 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
568 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
569 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
570 }
1a94a56a4e5d Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4062
diff changeset
571
4746
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
572 #define ngx_http_clear_etag(r) \
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
573 \
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
574 if (r->headers_out.etag) { \
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
575 r->headers_out.etag->hash = 0; \
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
576 r->headers_out.etag = NULL; \
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
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
579
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
580 #endif /* _NGX_HTTP_CORE_H_INCLUDED_ */