annotate src/http/ngx_http_core_module.h @ 6075:7fcfe113827d stable-1.6

Fixed possible buffer overrun in "too long header line" logging. Additionally, ellipsis now always added to make it clear that the header logged is incomplete. Reported by Daniil Bondarev.
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 08 Oct 2014 17:16:04 +0400
parents 3a72b1805c52
children e491b26fa5a1
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
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
16
1790
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
17 #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
18 #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
19 #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
20 #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
21 #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
22 #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
23 #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
24 #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
25 #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
26
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
27
3065
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
28 #define NGX_HTTP_AIO_OFF 0
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
29 #define NGX_HTTP_AIO_ON 1
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
30 #define NGX_HTTP_AIO_SENDFILE 2
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
31
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
32
1806
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
33 #define NGX_HTTP_SATISFY_ALL 0
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
34 #define NGX_HTTP_SATISFY_ANY 1
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
35
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
36
3984
3e51832c8215 lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
37 #define NGX_HTTP_LINGERING_OFF 0
3e51832c8215 lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
38 #define NGX_HTTP_LINGERING_ON 1
3e51832c8215 lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
39 #define NGX_HTTP_LINGERING_ALWAYS 2
3e51832c8215 lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
40
3e51832c8215 lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
41
2496
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
42 #define NGX_HTTP_IMS_OFF 0
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
43 #define NGX_HTTP_IMS_EXACT 1
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
44 #define NGX_HTTP_IMS_BEFORE 2
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
45
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
46
3793
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
47 #define NGX_HTTP_KEEPALIVE_DISABLE_NONE 0x0002
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
48 #define NGX_HTTP_KEEPALIVE_DISABLE_MSIE6 0x0004
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
49 #define NGX_HTTP_KEEPALIVE_DISABLE_SAFARI 0x0008
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
50
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
51
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
52 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
53 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
54
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
55
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
56 typedef struct {
3395
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
57 union {
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
58 struct sockaddr sockaddr;
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
59 struct sockaddr_in sockaddr_in;
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
60 #if (NGX_HAVE_INET6)
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
61 struct sockaddr_in6 sockaddr_in6;
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
62 #endif
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
63 #if (NGX_HAVE_UNIX_DOMAIN)
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
64 struct sockaddr_un sockaddr_un;
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
65 #endif
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
66 u_char sockaddr_data[NGX_SOCKADDRLEN];
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
67 } u;
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
68
3220
cdcd9e29c589 *) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents: 3219
diff changeset
69 socklen_t socklen;
cdcd9e29c589 *) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents: 3219
diff changeset
70
3224
8e76e636ae3b allow to set listen options in any server
Igor Sysoev <igor@sysoev.ru>
parents: 3221
diff changeset
71 unsigned set:1;
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
72 unsigned default_server:1;
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
73 unsigned bind:1;
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
74 unsigned wildcard:1;
2224
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
75 #if (NGX_HTTP_SSL)
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
76 unsigned ssl:1;
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
77 #endif
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents: 5085
diff changeset
78 #if (NGX_HTTP_SPDY)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents: 5085
diff changeset
79 unsigned spdy:1;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents: 5085
diff changeset
80 #endif
2562
c352c419be85 ipv6only
Igor Sysoev <igor@sysoev.ru>
parents: 2549
diff changeset
81 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
4771
bdcdbdf35b52 Core: ipv6only is now on by default.
Ruslan Ermilov <ru@nginx.com>
parents: 4749
diff changeset
82 unsigned ipv6only:1;
2562
c352c419be85 ipv6only
Igor Sysoev <igor@sysoev.ru>
parents: 2549
diff changeset
83 #endif
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
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
86
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
87 int backlog;
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
88 int rcvbuf;
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
89 int sndbuf;
3676
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3634
diff changeset
90 #if (NGX_HAVE_SETFIB)
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3634
diff changeset
91 int setfib;
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3634
diff changeset
92 #endif
5456
692afcea9d0d Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents: 5121
diff changeset
93 #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
94 int fastopen;
692afcea9d0d Added support for TCP_FASTOPEN supported in Linux >= 3.7.1.
Mathew Rodley <mathew@rodley.com.au>
parents: 5121
diff changeset
95 #endif
4323
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
96 #if (NGX_HAVE_KEEPALIVE_TUNABLE)
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
97 int tcp_keepidle;
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
98 int tcp_keepintvl;
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
99 int tcp_keepcnt;
c4513d4dd024 Added the "so_keepalive=" parameter to the "listen" directive.
Valentin Bartenev <vbart@nginx.com>
parents: 4206
diff changeset
100 #endif
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
101
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
102 #if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER)
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
103 char *accept_filter;
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
104 #endif
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
105 #if (NGX_HAVE_DEFERRED_ACCEPT && defined TCP_DEFER_ACCEPT)
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
106 ngx_uint_t deferred_accept;
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
107 #endif
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
108
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
109 u_char addr[NGX_SOCKADDR_STRLEN + 1];
3217
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
110 } ngx_http_listen_opt_t;
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
111
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
112
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
113 typedef enum {
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
114 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
115
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
116 NGX_HTTP_SERVER_REWRITE_PHASE,
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
117
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
118 NGX_HTTP_FIND_CONFIG_PHASE,
489
45a460f82aec nginx-0.1.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 485
diff changeset
119 NGX_HTTP_REWRITE_PHASE,
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
120 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
121
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
122 NGX_HTTP_PREACCESS_PHASE,
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
123
368
15c84a40e87d nginx-0.0.7-2004-06-24-20:07:04 import
Igor Sysoev <igor@sysoev.ru>
parents: 362
diff changeset
124 NGX_HTTP_ACCESS_PHASE,
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
125 NGX_HTTP_POST_ACCESS_PHASE,
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
126
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
127 NGX_HTTP_TRY_FILES_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_CONTENT_PHASE,
368
15c84a40e87d nginx-0.0.7-2004-06-24-20:07:04 import
Igor Sysoev <igor@sysoev.ru>
parents: 362
diff changeset
129
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
130 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
131 } ngx_http_phases;
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
132
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
133 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
134
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
135 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
136 ngx_http_phase_handler_t *ph);
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 struct ngx_http_phase_handler_s {
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
139 ngx_http_phase_handler_pt checker;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
140 ngx_http_handler_pt handler;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
141 ngx_uint_t next;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
142 };
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
143
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
144
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
145 typedef struct {
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
146 ngx_http_phase_handler_t *handlers;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
147 ngx_uint_t server_rewrite_index;
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
148 ngx_uint_t location_rewrite_index;
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
149 } ngx_http_phase_engine_t;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
150
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
151
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
152 typedef struct {
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
153 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
154 } 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
155
5526213be452 nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 114
diff changeset
156
5526213be452 nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 114
diff changeset
157 typedef struct {
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
158 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
159
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
160 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
161
649
1e720b0be7ec nginx-0.3.46-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
162 ngx_hash_t headers_in_hash;
611
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
163
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
164 ngx_hash_t variables_hash;
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
165
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
166 ngx_array_t variables; /* ngx_http_variable_t */
3325
42c16d8bddbe regex named captures
Igor Sysoev <igor@sysoev.ru>
parents: 3224
diff changeset
167 ngx_uint_t ncaptures;
507
cd3117ad9aab nginx-0.1.28-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
168
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
169 ngx_uint_t server_names_hash_max_size;
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
170 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
171
611
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
172 ngx_uint_t variables_hash_max_size;
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
173 ngx_uint_t variables_hash_bucket_size;
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
174
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
175 ngx_hash_keys_arrays_t *variables_keys;
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
176
3217
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
177 ngx_array_t *ports;
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
178
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
179 ngx_uint_t try_files; /* unsigned try_files:1 */
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
180
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
181 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
182 } 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
183
37530da31268 nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 89
diff changeset
184
37530da31268 nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 89
diff changeset
185 typedef struct {
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
186 /* array of the ngx_http_server_name_t, "server_name" directive */
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
187 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
188
5659d773cfa8 nginx-0.0.7-2004-07-15-20:35:51 import
Igor Sysoev <igor@sysoev.ru>
parents: 391
diff changeset
189 /* server ctx */
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
190 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
191
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
192 ngx_str_t server_name;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
193
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
194 size_t connection_pool_size;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
195 size_t request_pool_size;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
196 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
197
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
198 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
199
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
200 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
201
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
202 ngx_flag_t ignore_invalid_headers;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
203 ngx_flag_t merge_slashes;
2256
8c17cfe63d2c underscores_in_headers
Igor Sysoev <igor@sysoev.ru>
parents: 2233
diff changeset
204 ngx_flag_t underscores_in_headers;
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
205
3219
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
206 unsigned listen:1;
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
207 #if (NGX_PCRE)
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
208 unsigned captures:1;
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
209 #endif
3217
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
210
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
211 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
212 } 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
213
41
59e7c7f30d49 nginx-0.0.1-2002-12-26-19:26:23 import
Igor Sysoev <igor@sysoev.ru>
parents: 19
diff changeset
214
55
cad6c2f43283 nginx-0.0.1-2003-01-29-10:25:51 import
Igor Sysoev <igor@sysoev.ru>
parents: 54
diff changeset
215 /* 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
216
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
217
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
218 typedef struct {
5085
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
219 #if (NGX_PCRE)
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
220 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
221 #endif
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
222 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
223 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
224 } 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
225
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 typedef struct {
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
228 ngx_hash_combined_t names;
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
229
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
230 ngx_uint_t nregex;
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
231 ngx_http_server_name_t *regex;
7f1cbcc71327 The default server lookup is now done only once per connection.
Valentin Bartenev <vbart@nginx.com>
parents: 5084
diff changeset
232 } 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
233
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 struct ngx_http_addr_conf_s {
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
236 /* 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
237 ngx_http_core_srv_conf_t *default_server;
1387
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
238
2689
6caf687a831f backout r2535: virtual names is a property of address:port pair,
Igor Sysoev <igor@sysoev.ru>
parents: 2589
diff changeset
239 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
240
2224
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
241 #if (NGX_HTTP_SSL)
5121
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents: 5085
diff changeset
242 unsigned ssl:1;
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents: 5085
diff changeset
243 #endif
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents: 5085
diff changeset
244 #if (NGX_HTTP_SPDY)
c0f7b94e88ba Preliminary experimental support for SPDY draft 2.
Valentin Bartenev <vbart@nginx.com>
parents: 5085
diff changeset
245 unsigned spdy:1;
2224
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
246 #endif
5605
3a72b1805c52 Added server-side support for PROXY protocol v1 (ticket #355).
Roman Arutyunyan <arut@nginx.com>
parents: 5456
diff changeset
247 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
248 };
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
249
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
250
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
251 typedef struct {
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
252 in_addr_t addr;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
253 ngx_http_addr_conf_t conf;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
254 } ngx_http_in_addr_t;
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
255
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
256
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
257 #if (NGX_HAVE_INET6)
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 typedef struct {
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
260 struct in6_addr addr6;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
261 ngx_http_addr_conf_t conf;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
262 } ngx_http_in6_addr_t;
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 #endif
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
265
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
266
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 41
diff changeset
267 typedef struct {
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
268 /* 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
269 void *addrs;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
270 ngx_uint_t naddrs;
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
271 } 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
272
89
29bf798b583f nginx-0.0.1-2003-05-15-19:42:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
273
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
274 typedef struct {
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
275 ngx_int_t family;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
276 in_port_t port;
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
277 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
278 } ngx_http_conf_port_t;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
279
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
280
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
281 typedef struct {
3220
cdcd9e29c589 *) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents: 3219
diff changeset
282 ngx_http_listen_opt_t opt;
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
283
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
284 ngx_hash_t hash;
1253
8ef04207c84f the "www.example.*" wildcard hash support
Igor Sysoev <igor@sysoev.ru>
parents: 1236
diff changeset
285 ngx_hash_wildcard_t *wc_head;
8ef04207c84f the "www.example.*" wildcard hash support
Igor Sysoev <igor@sysoev.ru>
parents: 1236
diff changeset
286 ngx_hash_wildcard_t *wc_tail;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
287
1387
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
288 #if (NGX_PCRE)
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
289 ngx_uint_t nregex;
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
290 ngx_http_server_name_t *regex;
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
291 #endif
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
292
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
293 /* 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
294 ngx_http_core_srv_conf_t *default_server;
3219
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
295 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
296 } 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
297
89
29bf798b583f nginx-0.0.1-2003-05-15-19:42:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
298
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 41
diff changeset
299 typedef struct {
673
b80f94fa2197 nginx-0.3.58-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 667
diff changeset
300 ngx_int_t status;
b80f94fa2197 nginx-0.3.58-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 667
diff changeset
301 ngx_int_t overwrite;
2589
859f6675a553 use complex value in error_page
Igor Sysoev <igor@sysoev.ru>
parents: 2562
diff changeset
302 ngx_http_complex_value_t value;
1982
dd388c80f5a2 args support in static error_page
Igor Sysoev <igor@sysoev.ru>
parents: 1806
diff changeset
303 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
304 } 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
305
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 162
diff changeset
306
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
307 typedef struct {
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
308 ngx_array_t *lengths;
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
309 ngx_array_t *values;
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
310 ngx_str_t name;
2695
aa95c69c3068 try_files status code
Igor Sysoev <igor@sysoev.ru>
parents: 2689
diff changeset
311
aa95c69c3068 try_files status code
Igor Sysoev <igor@sysoev.ru>
parents: 2689
diff changeset
312 unsigned code:10;
aa95c69c3068 try_files status code
Igor Sysoev <igor@sysoev.ru>
parents: 2689
diff changeset
313 unsigned test_dir:1;
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
314 } ngx_http_try_file_t;
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
315
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
316
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
317 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
318 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
319
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 452
diff changeset
320 #if (NGX_PCRE)
3325
42c16d8bddbe regex named captures
Igor Sysoev <igor@sysoev.ru>
parents: 3224
diff changeset
321 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
322 #endif
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
323
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
324 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
325 unsigned lmt_excpt:1;
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
326 unsigned named:1;
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
327
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
328 unsigned exact_match:1;
467
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
329 unsigned noregex:1;
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
330
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
331 unsigned auto_redirect:1;
2205
5398f47082f0 gzip_disable msie6
Igor Sysoev <igor@sysoev.ru>
parents: 2197
diff changeset
332 #if (NGX_HTTP_GZIP)
5398f47082f0 gzip_disable msie6
Igor Sysoev <igor@sysoev.ru>
parents: 2197
diff changeset
333 unsigned gzip_disable_msie6:2;
3773
a08e8b3832ae gzip_disable degradation
Igor Sysoev <igor@sysoev.ru>
parents: 3731
diff changeset
334 #if (NGX_HTTP_DEGRADATION)
a08e8b3832ae gzip_disable degradation
Igor Sysoev <igor@sysoev.ru>
parents: 3731
diff changeset
335 unsigned gzip_disable_degradation:2;
a08e8b3832ae gzip_disable degradation
Igor Sysoev <igor@sysoev.ru>
parents: 3731
diff changeset
336 #endif
2205
5398f47082f0 gzip_disable msie6
Igor Sysoev <igor@sysoev.ru>
parents: 2197
diff changeset
337 #endif
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
338
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
339 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
340 #if (NGX_PCRE)
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
341 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
342 #endif
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
343
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
344 /* pointer to the modules' loc_conf */
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1982
diff changeset
345 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
346
631
5d2b8078c1c2 nginx-0.3.37-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
347 uint32_t limit_except;
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1982
diff changeset
348 void **limit_except_loc_conf;
631
5d2b8078c1c2 nginx-0.3.37-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
349
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 346
diff changeset
350 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
351
3535
abb3901be800 fix handling an inherited alias in inclusive location
Igor Sysoev <igor@sysoev.ru>
parents: 3484
diff changeset
352 /* 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
353 size_t alias;
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
354 ngx_str_t root; /* root, alias */
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
355 ngx_str_t post_action;
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
356
595
ebc68d8ca496 nginx-0.3.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 593
diff changeset
357 ngx_array_t *root_lengths;
ebc68d8ca496 nginx-0.3.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 593
diff changeset
358 ngx_array_t *root_values;
ebc68d8ca496 nginx-0.3.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 593
diff changeset
359
589
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
360 ngx_array_t *types;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
361 ngx_hash_t types_hash;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
362 ngx_str_t default_type;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
363
663
6d5c1535bb9d nginx-0.3.53-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
364 off_t client_max_body_size; /* client_max_body_size */
2129
25add486e7aa directio
Igor Sysoev <igor@sysoev.ru>
parents: 2029
diff changeset
365 off_t directio; /* directio */
3053
0d253659da12 directio_alignment
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
366 off_t directio_alignment; /* directio_alignment */
663
6d5c1535bb9d nginx-0.3.53-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
367
303
00c5660d2707 nginx-0.0.3-2004-04-01-20:20:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 293
diff changeset
368 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
369 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
370 size_t postpone_output; /* postpone_output */
b670db10cbbd nginx-0.0.7-2004-07-14-20:01:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 369
diff changeset
371 size_t limit_rate; /* limit_rate */
2907
4f5753877376 limit_rate_after
Igor Sysoev <igor@sysoev.ru>
parents: 2888
diff changeset
372 size_t limit_rate_after; /* limit_rate_after */
1197
493a227edfd5 sendfile_max_chunk
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
373 size_t sendfile_max_chunk; /* sendfile_max_chunk */
3178
975f0558aab3 read_ahead
Igor Sysoev <igor@sysoev.ru>
parents: 3065
diff changeset
374 size_t read_ahead; /* read_ahead */
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
375
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 158
diff changeset
376 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
377 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
378 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
379 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
380 ngx_msec_t lingering_timeout; /* lingering_timeout */
1652
cc7a7d0b89e8 http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
381 ngx_msec_t resolver_timeout; /* resolver_timeout */
cc7a7d0b89e8 http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
382
cc7a7d0b89e8 http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
383 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
384
436
9549fc9508e5 nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 435
diff changeset
385 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
386
2888
512d164a8348 keepalive_requests
Igor Sysoev <igor@sysoev.ru>
parents: 2857
diff changeset
387 ngx_uint_t keepalive_requests; /* keepalive_requests */
3793
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
388 ngx_uint_t keepalive_disable; /* keepalive_disable */
1806
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
389 ngx_uint_t satisfy; /* satisfy */
3984
3e51832c8215 lingering_close "off|on|always"
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
390 ngx_uint_t lingering_close; /* lingering_close */
2361
c59485781f0a if_modified_since
Igor Sysoev <igor@sysoev.ru>
parents: 2261
diff changeset
391 ngx_uint_t if_modified_since; /* if_modified_since */
4062
82738a316a54 The "max_ranges" directive.
Igor Sysoev <igor@sysoev.ru>
parents: 3984
diff changeset
392 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
393 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
394
2845
10d6b9950453 client_body_in_single_buffer
Igor Sysoev <igor@sysoev.ru>
parents: 2841
diff changeset
395 ngx_flag_t client_body_in_single_buffer;
10d6b9950453 client_body_in_single_buffer
Igor Sysoev <igor@sysoev.ru>
parents: 2841
diff changeset
396 /* client_body_in_singe_buffer */
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
397 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
398 ngx_flag_t sendfile; /* sendfile */
3052
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 2979
diff changeset
399 #if (NGX_HAVE_FILE_AIO)
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 2979
diff changeset
400 ngx_flag_t aio; /* aio */
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 2979
diff changeset
401 #endif
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
402 ngx_flag_t tcp_nopush; /* tcp_nopush */
452
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
403 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
404 ngx_flag_t reset_timedout_connection; /* reset_timedout_connection */
1804
d457a1576532 several changes in server_name:
Igor Sysoev <igor@sysoev.ru>
parents: 1790
diff changeset
405 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
406 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
407 ngx_flag_t msie_padding; /* msie_padding */
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 673
diff changeset
408 ngx_flag_t msie_refresh; /* msie_refresh */
527
7fa11e5c6e96 nginx-0.1.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 523
diff changeset
409 ngx_flag_t log_not_found; /* log_not_found */
2261
07bf557a2e40 *) log_subrequest
Igor Sysoev <igor@sysoev.ru>
parents: 2256
diff changeset
410 ngx_flag_t log_subrequest; /* log_subrequest */
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 673
diff changeset
411 ngx_flag_t recursive_error_pages; /* recursive_error_pages */
1592
128ea9efb824 server_tokens
Igor Sysoev <igor@sysoev.ru>
parents: 1585
diff changeset
412 ngx_flag_t server_tokens; /* server_tokens */
3484
81457372d938 chunked_transfer_encoding
Igor Sysoev <igor@sysoev.ru>
parents: 3395
diff changeset
413 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
414 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
415
1790
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
416 #if (NGX_HTTP_GZIP)
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
417 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
418
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
419 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
420 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
421
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
422 #if (NGX_PCRE)
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
423 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
424 #endif
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
425 #endif
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
426
4477
7033faf6dc3c Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
427 #if (NGX_HAVE_OPENAT)
7033faf6dc3c Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
428 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
429 ngx_http_complex_value_t *disable_symlinks_from;
4477
7033faf6dc3c Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
430 #endif
7033faf6dc3c Added disable_symlinks directive.
Andrey Belov <defan@nginx.com>
parents: 4412
diff changeset
431
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 162
diff changeset
432 ngx_array_t *error_pages; /* error_page */
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
433 ngx_http_try_file_t *try_files; /* try_files */
158
d377ee423603 nginx-0.0.1-2003-10-24-10:53:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 154
diff changeset
434
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
435 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
436
1454
f497ed7682a7 open_file_cache in HTTP
Igor Sysoev <igor@sysoev.ru>
parents: 1387
diff changeset
437 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
438 time_t open_file_cache_valid;
1772
25c93614e6b9 open_file_cache_min_uses
Igor Sysoev <igor@sysoev.ru>
parents: 1767
diff changeset
439 ngx_uint_t open_file_cache_min_uses;
1454
f497ed7682a7 open_file_cache in HTTP
Igor Sysoev <igor@sysoev.ru>
parents: 1387
diff changeset
440 ngx_flag_t open_file_cache_errors;
1457
223e92651ca5 open_file_cache_events
Igor Sysoev <igor@sysoev.ru>
parents: 1454
diff changeset
441 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
442
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2701
diff changeset
443 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
444
589
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
445 ngx_uint_t types_hash_max_size;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
446 ngx_uint_t types_hash_bucket_size;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
447
2028
bff8689c6953 move configuration phase only field to the end of structure
Igor Sysoev <igor@sysoev.ru>
parents: 2027
diff changeset
448 ngx_queue_t *locations;
bff8689c6953 move configuration phase only field to the end of structure
Igor Sysoev <igor@sysoev.ru>
parents: 2027
diff changeset
449
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
450 #if 0
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
451 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
452 #endif
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
453 };
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
454
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
455
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
456 typedef struct {
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
457 ngx_queue_t queue;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
458 ngx_http_core_loc_conf_t *exact;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
459 ngx_http_core_loc_conf_t *inclusive;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
460 ngx_str_t *name;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
461 u_char *file_name;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
462 ngx_uint_t line;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
463 ngx_queue_t list;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
464 } ngx_http_location_queue_t;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
465
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
466
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
467 struct ngx_http_location_tree_node_s {
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
468 ngx_http_location_tree_node_t *left;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
469 ngx_http_location_tree_node_t *right;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
470 ngx_http_location_tree_node_t *tree;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
471
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
472 ngx_http_core_loc_conf_t *exact;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
473 ngx_http_core_loc_conf_t *inclusive;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
474
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
475 u_char auto_redirect;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
476 u_char len;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
477 u_char name[1];
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
478 };
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
479
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
480
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
481 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
482 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
483 ngx_http_phase_handler_t *ph);
3634
40e356cf4176 add files missed in the previuos commit
Igor Sysoev <igor@sysoev.ru>
parents: 3632
diff changeset
484 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
485 ngx_http_phase_handler_t *ph);
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
486 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
487 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
488 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
489 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
490 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
491 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
492 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
493 ngx_http_phase_handler_t *ph);
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
494 ngx_int_t ngx_http_core_try_files_phase(ngx_http_request_t *r,
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
495 ngx_http_phase_handler_t *ph);
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
496 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
497 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
498
2138
fb3b084e7d42 test Content-Type via hash:
Igor Sysoev <igor@sysoev.ru>
parents: 2129
diff changeset
499
fb3b084e7d42 test Content-Type via hash:
Igor Sysoev <igor@sysoev.ru>
parents: 2129
diff changeset
500 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
501 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
502 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
503 ngx_int_t ngx_http_set_etag(ngx_http_request_t *r);
3632
920919d9148c ngx_http_send_response()
Igor Sysoev <igor@sysoev.ru>
parents: 3535
diff changeset
504 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
505 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
506 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
507 size_t *root_length, size_t reserved);
539
371c1cee100d nginx-0.1.44-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 527
diff changeset
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
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
514 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
515 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
516 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
517 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
518 ngx_str_t *uri, ngx_str_t *args);
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
519 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
520
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
521
569
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
522 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
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
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 489
diff changeset
527 (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
528
55e496a8ece3 nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 335
diff changeset
529
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 346
diff changeset
530 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
531 ngx_int_t ngx_http_write_filter(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
532
55e496a8ece3 nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 335
diff changeset
533
4494
13e09cf11d4e Disable symlinks: initialization of the "disable_symlinks" field in
Valentin Bartenev <vbart@nginx.com>
parents: 4477
diff changeset
534 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
535 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
536
4623
ed3d0cc6de5a New function ngx_http_get_forwarded_addr() to look up real client address.
Ruslan Ermilov <ru@nginx.com>
parents: 4495
diff changeset
537 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
538 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
539 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
540
4494
13e09cf11d4e Disable symlinks: initialization of the "disable_symlinks" field in
Valentin Bartenev <vbart@nginx.com>
parents: 4477
diff changeset
541
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
542 extern ngx_module_t ngx_http_core_module;
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
543
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
544 extern ngx_uint_t ngx_http_max_module;
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
545
2701
756f73ca1e39 support HEAD in proxy cache
Igor Sysoev <igor@sysoev.ru>
parents: 2695
diff changeset
546 extern ngx_str_t ngx_http_core_get_method;
756f73ca1e39 support HEAD in proxy cache
Igor Sysoev <igor@sysoev.ru>
parents: 2695
diff changeset
547
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
548
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
549 #define ngx_http_clear_content_length(r) \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
550 \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
551 r->headers_out.content_length_n = -1; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
552 if (r->headers_out.content_length) { \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
553 r->headers_out.content_length->hash = 0; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
554 r->headers_out.content_length = 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_accept_ranges(r) \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
558 \
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
559 r->allow_ranges = 0; \
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
560 if (r->headers_out.accept_ranges) { \
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1982
diff changeset
561 r->headers_out.accept_ranges->hash = 0; \
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
562 r->headers_out.accept_ranges = 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
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
565 #define ngx_http_clear_last_modified(r) \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
566 \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
567 r->headers_out.last_modified_time = -1; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
568 if (r->headers_out.last_modified) { \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
569 r->headers_out.last_modified->hash = 0; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
570 r->headers_out.last_modified = NULL; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
571 }
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
572
4206
1a94a56a4e5d Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4062
diff changeset
573 #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
574 \
1a94a56a4e5d Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4062
diff changeset
575 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
576 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
577 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
578 }
1a94a56a4e5d Clear old Location header (if any) while adding a new one.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4062
diff changeset
579
4746
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
580 #define ngx_http_clear_etag(r) \
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
581 \
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
582 if (r->headers_out.etag) { \
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
583 r->headers_out.etag->hash = 0; \
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
584 r->headers_out.etag = NULL; \
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
585 }
4a18bf1833a9 Entity tags: clear on entity changes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4623
diff changeset
586
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
587
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
588 #endif /* _NGX_HTTP_CORE_H_INCLUDED_ */