annotate src/http/ngx_http_core_module.h @ 4247:b79dbadb3d5e stable-1.0

Merging r4147, r4148, r4149, r4150, r4207: Fixes of combination of error_page and return directives: *) Fix for incorrect 201 replies from dav module. Replies with 201 code contain body, and we should clearly indicate it's empty if it's empty. Before 0.8.32 chunked was explicitly disabled for 201 replies and as a result empty body was indicated by connection close (not perfect, but worked). Since 0.8.32 chunked is enabled, and this causes incorrect responses from dav module when HTTP/1.1 is used: with "Transfer-Encoding: chunked" but no chunks at all. Fix is to actually return empty body in special response handler instead of abusing r->header_only flag. See here for initial report: http://mailman.nginx.org/pipermail/nginx-ru/2010-October/037535.html *) Fix for double content when return is used in error_page handler. Test case: location / { error_page 405 /nope; return 405; } location /nope { return 200; } This is expected to return 405 with empty body, but in 0.8.42+ will return builtin 405 error page as well (though not counted in Content-Length, thus breaking protocol). Fix is to use status provided by rewrite script execution in case it's less than NGX_HTTP_BAD_REQUEST even if r->error_status set. This check is in line with one in ngx_http_script_return_code(). Note that this patch also changes behaviour for "return 302 ..." and "rewrite ... redirect" used as error handler. E.g. location / { error_page 405 /redirect; return 405; } location /redirect { rewrite ^ http://example.com/; } will actually return redirect to "http://example.com/" instead of builtin 405 error page with meaningless Location header. This looks like correct change and it's in line with what happens on e.g. directory redirects in error handlers. *) Fix for "return 202" not discarding body. Big POST (not fully preread) to a location / { return 202; } resulted in incorrect behaviour due to "return" code path not calling ngx_http_discard_request_body(). The same applies to all "return" used with 2xx/3xx codes except 201 and 204, and to all "return ... text" uses. Fix is to add ngx_http_discard_request_body() call to ngx_http_send_response() function where it looks appropriate. Discard body call from emtpy gif module removed as it's now redundant. Reported by Pyry Hakulinen, see http://mailman.nginx.org/pipermail/nginx/2011-August/028503.html *) Incorrect special case for "return 204" removed. The special case in question leads to replies without body in configuration like location / { error_page 404 /zero; return 404; } location /zero { return 204; } while replies with empty body are expected per protocol specs. Correct one will look like if (status == NGX_HTTP_NO_CONTENT) { rc = ngx_http_send_header(r); if (rc == NGX_ERROR || r->header_only) { return rc; } return ngx_http_send_special(r, NGX_HTTP_LAST); } though it looks like it's better to drop this special case at all. *) Clear old Location header (if any) while adding a new one. This prevents incorrect behaviour when another redirect is issued within error_page 302 handler.
author Igor Sysoev <igor@sysoev.ru>
date Tue, 01 Nov 2011 13:45:33 +0000
parents fb1375e8b68c
children c4513d4dd024 4919fb357a5d
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
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
4 */
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
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7 #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
8 #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
9
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
2233
f62751dab60d remove unused #include's
Igor Sysoev <igor@sysoev.ru>
parents: 2224
diff changeset
11 #include <ngx_config.h>
f62751dab60d remove unused #include's
Igor Sysoev <igor@sysoev.ru>
parents: 2224
diff changeset
12 #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
13 #include <ngx_http.h>
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15
1790
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
16 #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
17 #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
18 #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
19 #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
20 #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
21 #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
22 #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
23 #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
24 #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
25
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
26
3065
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
27 #define NGX_HTTP_AIO_OFF 0
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
28 #define NGX_HTTP_AIO_ON 1
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
29 #define NGX_HTTP_AIO_SENDFILE 2
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
30
113cd532b328 aio sendfile
Igor Sysoev <igor@sysoev.ru>
parents: 3053
diff changeset
31
1806
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
32 #define NGX_HTTP_SATISFY_ALL 0
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
33 #define NGX_HTTP_SATISFY_ANY 1
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
34
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
35
4042
d9b486dbf7e5 Merge of r3982, r3984, r3985, r3991:
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
36 #define NGX_HTTP_LINGERING_OFF 0
d9b486dbf7e5 Merge of r3982, r3984, r3985, r3991:
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
37 #define NGX_HTTP_LINGERING_ON 1
d9b486dbf7e5 Merge of r3982, r3984, r3985, r3991:
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
38 #define NGX_HTTP_LINGERING_ALWAYS 2
d9b486dbf7e5 Merge of r3982, r3984, r3985, r3991:
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
39
d9b486dbf7e5 Merge of r3982, r3984, r3985, r3991:
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
40
2496
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
41 #define NGX_HTTP_IMS_OFF 0
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
42 #define NGX_HTTP_IMS_EXACT 1
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
43 #define NGX_HTTP_IMS_BEFORE 2
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
44
9081bbdccda1 if_modified_since off
Igor Sysoev <igor@sysoev.ru>
parents: 2458
diff changeset
45
3793
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
46 #define NGX_HTTP_KEEPALIVE_DISABLE_NONE 0x0002
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
47 #define NGX_HTTP_KEEPALIVE_DISABLE_MSIE6 0x0004
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
48 #define NGX_HTTP_KEEPALIVE_DISABLE_SAFARI 0x0008
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
49
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
50
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
51 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
52 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
53
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
54
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
55 typedef struct {
3395
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
56 union {
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
57 struct sockaddr sockaddr;
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
58 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
59 #if (NGX_HAVE_INET6)
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
60 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
61 #endif
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
62 #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
63 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
64 #endif
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
65 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
66 } u;
4e15548b29d4 fix building by gcc 4.4 with -O2/3/s:
Igor Sysoev <igor@sysoev.ru>
parents: 3325
diff changeset
67
3220
cdcd9e29c589 *) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents: 3219
diff changeset
68 socklen_t socklen;
cdcd9e29c589 *) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents: 3219
diff changeset
69
3224
8e76e636ae3b allow to set listen options in any server
Igor Sysoev <igor@sysoev.ru>
parents: 3221
diff changeset
70 unsigned set:1;
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
71 unsigned default_server:1;
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
72 unsigned bind:1;
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
73 unsigned wildcard:1;
2224
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
74 #if (NGX_HTTP_SSL)
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
75 unsigned ssl:1;
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
76 #endif
2562
c352c419be85 ipv6only
Igor Sysoev <igor@sysoev.ru>
parents: 2549
diff changeset
77 #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
c352c419be85 ipv6only
Igor Sysoev <igor@sysoev.ru>
parents: 2549
diff changeset
78 unsigned ipv6only:2;
c352c419be85 ipv6only
Igor Sysoev <igor@sysoev.ru>
parents: 2549
diff changeset
79 #endif
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
80
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
81 int backlog;
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
82 int rcvbuf;
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 557
diff changeset
83 int sndbuf;
3676
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3634
diff changeset
84 #if (NGX_HAVE_SETFIB)
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3634
diff changeset
85 int setfib;
4430d110293e listen setfib=X
Igor Sysoev <igor@sysoev.ru>
parents: 3634
diff changeset
86 #endif
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
87
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
88 #if (NGX_HAVE_DEFERRED_ACCEPT && defined SO_ACCEPTFILTER)
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
89 char *accept_filter;
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
90 #endif
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
91 #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
92 ngx_uint_t deferred_accept;
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
93 #endif
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
94
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
95 u_char addr[NGX_SOCKADDR_STRLEN + 1];
3217
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
96 } ngx_http_listen_opt_t;
523
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
97
2019117e6b38 nginx-0.1.36-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 521
diff changeset
98
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
99 typedef enum {
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
100 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
101
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
102 NGX_HTTP_SERVER_REWRITE_PHASE,
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
103
573
58475592100c nginx-0.3.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 569
diff changeset
104 NGX_HTTP_FIND_CONFIG_PHASE,
489
45a460f82aec nginx-0.1.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 485
diff changeset
105 NGX_HTTP_REWRITE_PHASE,
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
106 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
107
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
108 NGX_HTTP_PREACCESS_PHASE,
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
109
368
15c84a40e87d nginx-0.0.7-2004-06-24-20:07:04 import
Igor Sysoev <igor@sysoev.ru>
parents: 362
diff changeset
110 NGX_HTTP_ACCESS_PHASE,
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
111 NGX_HTTP_POST_ACCESS_PHASE,
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
112
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
113 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
114 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
115
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
116 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
117 } ngx_http_phases;
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
118
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
119 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
120
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
121 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
122 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
123
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
124 struct ngx_http_phase_handler_s {
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
125 ngx_http_phase_handler_pt checker;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
126 ngx_http_handler_pt handler;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
127 ngx_uint_t next;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
128 };
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
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
131 typedef struct {
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
132 ngx_http_phase_handler_t *handlers;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
133 ngx_uint_t server_rewrite_index;
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
134 ngx_uint_t location_rewrite_index;
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
135 } ngx_http_phase_engine_t;
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
136
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
137
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
138 typedef struct {
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
139 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
140 } 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
141
5526213be452 nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 114
diff changeset
142
5526213be452 nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 114
diff changeset
143 typedef struct {
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
144 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
145
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
146 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
147
649
1e720b0be7ec nginx-0.3.46-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
148 ngx_hash_t headers_in_hash;
611
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
149
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
150 ngx_hash_t variables_hash;
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
151
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
152 ngx_array_t variables; /* ngx_http_variable_t */
3325
42c16d8bddbe regex named captures
Igor Sysoev <igor@sysoev.ru>
parents: 3224
diff changeset
153 ngx_uint_t ncaptures;
507
cd3117ad9aab nginx-0.1.28-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
154
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
155 ngx_uint_t server_names_hash_max_size;
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
156 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
157
611
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
158 ngx_uint_t variables_hash_max_size;
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
159 ngx_uint_t variables_hash_bucket_size;
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
160
3f8a2132b93d nginx-0.3.27-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 609
diff changeset
161 ngx_hash_keys_arrays_t *variables_keys;
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
162
3217
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
163 ngx_array_t *ports;
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
164
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
165 ngx_uint_t try_files; /* unsigned try_files:1 */
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
166
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
167 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
168 } 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
169
37530da31268 nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 89
diff changeset
170
37530da31268 nginx-0.0.1-2003-05-16-19:27:48 import
Igor Sysoev <igor@sysoev.ru>
parents: 89
diff changeset
171 typedef struct {
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
172 /* array of the ngx_http_server_name_t, "server_name" directive */
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
173 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
174
5659d773cfa8 nginx-0.0.7-2004-07-15-20:35:51 import
Igor Sysoev <igor@sysoev.ru>
parents: 391
diff changeset
175 /* server ctx */
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
176 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
177
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
178 ngx_str_t server_name;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
179
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
180 size_t connection_pool_size;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
181 size_t request_pool_size;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
182 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
183
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
184 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
185
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
186 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
187
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
188 ngx_flag_t ignore_invalid_headers;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
189 ngx_flag_t merge_slashes;
2256
8c17cfe63d2c underscores_in_headers
Igor Sysoev <igor@sysoev.ru>
parents: 2233
diff changeset
190 ngx_flag_t underscores_in_headers;
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
191
3219
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
192 unsigned listen:1;
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
193 #if (NGX_PCRE)
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
194 unsigned captures:1;
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
195 #endif
3217
a22bf524a456 refactor http listen code:
Igor Sysoev <igor@sysoev.ru>
parents: 3178
diff changeset
196
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
197 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
198 } 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
199
41
59e7c7f30d49 nginx-0.0.1-2002-12-26-19:26:23 import
Igor Sysoev <igor@sysoev.ru>
parents: 19
diff changeset
200
55
cad6c2f43283 nginx-0.0.1-2003-01-29-10:25:51 import
Igor Sysoev <igor@sysoev.ru>
parents: 54
diff changeset
201 /* 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
202
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
203
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
204 typedef struct {
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
205 /* 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
206 ngx_http_core_srv_conf_t *default_server;
1387
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
207
2689
6caf687a831f backout r2535: virtual names is a property of address:port pair,
Igor Sysoev <igor@sysoev.ru>
parents: 2589
diff changeset
208 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
209
2224
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
210 #if (NGX_HTTP_SSL)
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
211 ngx_uint_t ssl; /* unsigned ssl:1; */
109849282793 *) listen ssl
Igor Sysoev <igor@sysoev.ru>
parents: 2205
diff changeset
212 #endif
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
213 } ngx_http_addr_conf_t;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
214
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
215
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
216 typedef struct {
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
217 in_addr_t addr;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
218 ngx_http_addr_conf_t conf;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
219 } ngx_http_in_addr_t;
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
220
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
221
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
222 #if (NGX_HAVE_INET6)
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
223
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
224 typedef struct {
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
225 struct in6_addr addr6;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
226 ngx_http_addr_conf_t conf;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
227 } ngx_http_in6_addr_t;
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
228
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
229 #endif
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
230
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
231
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 41
diff changeset
232 typedef struct {
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
233 /* 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
234 void *addrs;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
235 ngx_uint_t naddrs;
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
236 } 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
237
89
29bf798b583f nginx-0.0.1-2003-05-15-19:42:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
238
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
239 typedef struct {
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
240 ngx_int_t family;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
241 in_port_t port;
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2496
diff changeset
242 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
243 } ngx_http_conf_port_t;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
244
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
245
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
246 typedef struct {
3220
cdcd9e29c589 *) move sockaddr to the listen options
Igor Sysoev <igor@sysoev.ru>
parents: 3219
diff changeset
247 ngx_http_listen_opt_t opt;
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
248
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
249 ngx_hash_t hash;
1253
8ef04207c84f the "www.example.*" wildcard hash support
Igor Sysoev <igor@sysoev.ru>
parents: 1236
diff changeset
250 ngx_hash_wildcard_t *wc_head;
8ef04207c84f the "www.example.*" wildcard hash support
Igor Sysoev <igor@sysoev.ru>
parents: 1236
diff changeset
251 ngx_hash_wildcard_t *wc_tail;
593
425af804d968 nginx-0.3.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 589
diff changeset
252
1387
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
253 #if (NGX_PCRE)
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
254 ngx_uint_t nregex;
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
255 ngx_http_server_name_t *regex;
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
256 #endif
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
257
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 467
diff changeset
258 /* 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
259 ngx_http_core_srv_conf_t *default_server;
3219
81b8416054b0 fix r3218:
Igor Sysoev <igor@sysoev.ru>
parents: 3218
diff changeset
260 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
261 } 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
262
89
29bf798b583f nginx-0.0.1-2003-05-15-19:42:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
263
1387
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
264 struct ngx_http_server_name_s {
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
265 #if (NGX_PCRE)
3325
42c16d8bddbe regex named captures
Igor Sysoev <igor@sysoev.ru>
parents: 3224
diff changeset
266 ngx_http_regex_t *regex;
1387
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
267 #endif
3221
c8de5a8b6d17 rename core_srv_conf fields to more understandable default_server and server
Igor Sysoev <igor@sysoev.ru>
parents: 3220
diff changeset
268 ngx_http_core_srv_conf_t *server; /* virtual name server conf */
55
cad6c2f43283 nginx-0.0.1-2003-01-29-10:25:51 import
Igor Sysoev <igor@sysoev.ru>
parents: 54
diff changeset
269 ngx_str_t name;
1387
cb8b30ef3e7e regex in server_name
Igor Sysoev <igor@sysoev.ru>
parents: 1353
diff changeset
270 };
55
cad6c2f43283 nginx-0.0.1-2003-01-29-10:25:51 import
Igor Sysoev <igor@sysoev.ru>
parents: 54
diff changeset
271
cad6c2f43283 nginx-0.0.1-2003-01-29-10:25:51 import
Igor Sysoev <igor@sysoev.ru>
parents: 54
diff changeset
272
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 41
diff changeset
273 typedef struct {
673
b80f94fa2197 nginx-0.3.58-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 667
diff changeset
274 ngx_int_t status;
b80f94fa2197 nginx-0.3.58-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 667
diff changeset
275 ngx_int_t overwrite;
2589
859f6675a553 use complex value in error_page
Igor Sysoev <igor@sysoev.ru>
parents: 2562
diff changeset
276 ngx_http_complex_value_t value;
1982
dd388c80f5a2 args support in static error_page
Igor Sysoev <igor@sysoev.ru>
parents: 1806
diff changeset
277 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
278 } 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
279
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 162
diff changeset
280
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
281 typedef struct {
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
282 ngx_array_t *lengths;
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
283 ngx_array_t *values;
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
284 ngx_str_t name;
2695
aa95c69c3068 try_files status code
Igor Sysoev <igor@sysoev.ru>
parents: 2689
diff changeset
285
aa95c69c3068 try_files status code
Igor Sysoev <igor@sysoev.ru>
parents: 2689
diff changeset
286 unsigned code:10;
aa95c69c3068 try_files status code
Igor Sysoev <igor@sysoev.ru>
parents: 2689
diff changeset
287 unsigned test_dir:1;
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
288 } ngx_http_try_file_t;
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
289
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
290
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
291 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
292 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
293
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 452
diff changeset
294 #if (NGX_PCRE)
3325
42c16d8bddbe regex named captures
Igor Sysoev <igor@sysoev.ru>
parents: 3224
diff changeset
295 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
296 #endif
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
297
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
298 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
299 unsigned lmt_excpt:1;
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
300 unsigned named:1;
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
301
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
302 unsigned exact_match:1;
467
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
303 unsigned noregex:1;
bbd6b0b4a2b1 nginx-0.1.8-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
304
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
305 unsigned auto_redirect:1;
2205
5398f47082f0 gzip_disable msie6
Igor Sysoev <igor@sysoev.ru>
parents: 2197
diff changeset
306 #if (NGX_HTTP_GZIP)
5398f47082f0 gzip_disable msie6
Igor Sysoev <igor@sysoev.ru>
parents: 2197
diff changeset
307 unsigned gzip_disable_msie6:2;
3773
a08e8b3832ae gzip_disable degradation
Igor Sysoev <igor@sysoev.ru>
parents: 3731
diff changeset
308 #if (NGX_HTTP_DEGRADATION)
a08e8b3832ae gzip_disable degradation
Igor Sysoev <igor@sysoev.ru>
parents: 3731
diff changeset
309 unsigned gzip_disable_degradation:2;
a08e8b3832ae gzip_disable degradation
Igor Sysoev <igor@sysoev.ru>
parents: 3731
diff changeset
310 #endif
2205
5398f47082f0 gzip_disable msie6
Igor Sysoev <igor@sysoev.ru>
parents: 2197
diff changeset
311 #endif
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
312
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
313 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
314 #if (NGX_PCRE)
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
315 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
316 #endif
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
317
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
318 /* pointer to the modules' loc_conf */
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1982
diff changeset
319 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
320
631
5d2b8078c1c2 nginx-0.3.37-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
321 uint32_t limit_except;
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1982
diff changeset
322 void **limit_except_loc_conf;
631
5d2b8078c1c2 nginx-0.3.37-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
323
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 346
diff changeset
324 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
325
3535
abb3901be800 fix handling an inherited alias in inclusive location
Igor Sysoev <igor@sysoev.ru>
parents: 3484
diff changeset
326 /* 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
327 size_t alias;
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
328 ngx_str_t root; /* root, alias */
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
329 ngx_str_t post_action;
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
330
595
ebc68d8ca496 nginx-0.3.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 593
diff changeset
331 ngx_array_t *root_lengths;
ebc68d8ca496 nginx-0.3.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 593
diff changeset
332 ngx_array_t *root_values;
ebc68d8ca496 nginx-0.3.19-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 593
diff changeset
333
589
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
334 ngx_array_t *types;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
335 ngx_hash_t types_hash;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
336 ngx_str_t default_type;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
337
663
6d5c1535bb9d nginx-0.3.53-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
338 off_t client_max_body_size; /* client_max_body_size */
2129
25add486e7aa directio
Igor Sysoev <igor@sysoev.ru>
parents: 2029
diff changeset
339 off_t directio; /* directio */
3053
0d253659da12 directio_alignment
Igor Sysoev <igor@sysoev.ru>
parents: 3052
diff changeset
340 off_t directio_alignment; /* directio_alignment */
663
6d5c1535bb9d nginx-0.3.53-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 649
diff changeset
341
303
00c5660d2707 nginx-0.0.3-2004-04-01-20:20:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 293
diff changeset
342 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
343 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
344 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
345 size_t limit_rate; /* limit_rate */
2907
4f5753877376 limit_rate_after
Igor Sysoev <igor@sysoev.ru>
parents: 2888
diff changeset
346 size_t limit_rate_after; /* limit_rate_after */
1197
493a227edfd5 sendfile_max_chunk
Igor Sysoev <igor@sysoev.ru>
parents: 777
diff changeset
347 size_t sendfile_max_chunk; /* sendfile_max_chunk */
3178
975f0558aab3 read_ahead
Igor Sysoev <igor@sysoev.ru>
parents: 3065
diff changeset
348 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
349
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 158
diff changeset
350 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
351 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
352 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
353 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
354 ngx_msec_t lingering_timeout; /* lingering_timeout */
1652
cc7a7d0b89e8 http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
355 ngx_msec_t resolver_timeout; /* resolver_timeout */
cc7a7d0b89e8 http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
356
cc7a7d0b89e8 http resolver and resolver_timeout
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
357 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
358
436
9549fc9508e5 nginx-0.0.11-2004-09-23-10:32:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 435
diff changeset
359 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
360
2888
512d164a8348 keepalive_requests
Igor Sysoev <igor@sysoev.ru>
parents: 2857
diff changeset
361 ngx_uint_t keepalive_requests; /* keepalive_requests */
3793
279083731ec6 keepalive_disable
Igor Sysoev <igor@sysoev.ru>
parents: 3773
diff changeset
362 ngx_uint_t keepalive_disable; /* keepalive_disable */
1806
ba9e6e57f65d satisfy all|any
Igor Sysoev <igor@sysoev.ru>
parents: 1804
diff changeset
363 ngx_uint_t satisfy; /* satisfy */
4042
d9b486dbf7e5 Merge of r3982, r3984, r3985, r3991:
Igor Sysoev <igor@sysoev.ru>
parents: 3793
diff changeset
364 ngx_uint_t lingering_close; /* lingering_close */
2361
c59485781f0a if_modified_since
Igor Sysoev <igor@sysoev.ru>
parents: 2261
diff changeset
365 ngx_uint_t if_modified_since; /* if_modified_since */
4162
fb1375e8b68c Merging r4036, r4055, r4056, r4057, r4058, r4059, r4060, r4061, r4062, r4063,
Igor Sysoev <igor@sysoev.ru>
parents: 4042
diff changeset
366 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
367 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
368
2845
10d6b9950453 client_body_in_single_buffer
Igor Sysoev <igor@sysoev.ru>
parents: 2841
diff changeset
369 ngx_flag_t client_body_in_single_buffer;
10d6b9950453 client_body_in_single_buffer
Igor Sysoev <igor@sysoev.ru>
parents: 2841
diff changeset
370 /* client_body_in_singe_buffer */
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
371 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
372 ngx_flag_t sendfile; /* sendfile */
3052
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 2979
diff changeset
373 #if (NGX_HAVE_FILE_AIO)
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 2979
diff changeset
374 ngx_flag_t aio; /* aio */
6060225e9261 FreeBSD and Linux AIO support
Igor Sysoev <igor@sysoev.ru>
parents: 2979
diff changeset
375 #endif
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
376 ngx_flag_t tcp_nopush; /* tcp_nopush */
452
23fb87bddda1 nginx-0.1.1-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
377 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
378 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
379 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
380 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
381 ngx_flag_t msie_padding; /* msie_padding */
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 673
diff changeset
382 ngx_flag_t msie_refresh; /* msie_refresh */
527
7fa11e5c6e96 nginx-0.1.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 523
diff changeset
383 ngx_flag_t log_not_found; /* log_not_found */
2261
07bf557a2e40 *) log_subrequest
Igor Sysoev <igor@sysoev.ru>
parents: 2256
diff changeset
384 ngx_flag_t log_subrequest; /* log_subrequest */
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 673
diff changeset
385 ngx_flag_t recursive_error_pages; /* recursive_error_pages */
1592
128ea9efb824 server_tokens
Igor Sysoev <igor@sysoev.ru>
parents: 1585
diff changeset
386 ngx_flag_t server_tokens; /* server_tokens */
3484
81457372d938 chunked_transfer_encoding
Igor Sysoev <igor@sysoev.ru>
parents: 3395
diff changeset
387 ngx_flag_t chunked_transfer_encoding; /* chunked_transfer_encoding */
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 257
diff changeset
388
1790
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
389 #if (NGX_HTTP_GZIP)
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
390 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
391
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
392 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
393 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
394
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
395 #if (NGX_PCRE)
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
396 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
397 #endif
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
398 #endif
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
399
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 162
diff changeset
400 ngx_array_t *error_pages; /* error_page */
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
401 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
402
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
403 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
404
1454
f497ed7682a7 open_file_cache in HTTP
Igor Sysoev <igor@sysoev.ru>
parents: 1387
diff changeset
405 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
406 time_t open_file_cache_valid;
1772
25c93614e6b9 open_file_cache_min_uses
Igor Sysoev <igor@sysoev.ru>
parents: 1767
diff changeset
407 ngx_uint_t open_file_cache_min_uses;
1454
f497ed7682a7 open_file_cache in HTTP
Igor Sysoev <igor@sysoev.ru>
parents: 1387
diff changeset
408 ngx_flag_t open_file_cache_errors;
1457
223e92651ca5 open_file_cache_events
Igor Sysoev <igor@sysoev.ru>
parents: 1454
diff changeset
409 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
410
2785
d478379e51ac *) refactor error_log processing: listen socket log might inherit built-in
Igor Sysoev <igor@sysoev.ru>
parents: 2701
diff changeset
411 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
412
589
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
413 ngx_uint_t types_hash_max_size;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
414 ngx_uint_t types_hash_bucket_size;
d4e858a5751a nginx-0.3.16-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
415
2028
bff8689c6953 move configuration phase only field to the end of structure
Igor Sysoev <igor@sysoev.ru>
parents: 2027
diff changeset
416 ngx_queue_t *locations;
bff8689c6953 move configuration phase only field to the end of structure
Igor Sysoev <igor@sysoev.ru>
parents: 2027
diff changeset
417
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
418 #if 0
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
419 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
420 #endif
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 395
diff changeset
421 };
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
422
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
423
2027
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
424 typedef struct {
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
425 ngx_queue_t queue;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
426 ngx_http_core_loc_conf_t *exact;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
427 ngx_http_core_loc_conf_t *inclusive;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
428 ngx_str_t *name;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
429 u_char *file_name;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
430 ngx_uint_t line;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
431 ngx_queue_t list;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
432 } ngx_http_location_queue_t;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
433
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
434
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
435 struct ngx_http_location_tree_node_s {
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
436 ngx_http_location_tree_node_t *left;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
437 ngx_http_location_tree_node_t *right;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
438 ngx_http_location_tree_node_t *tree;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
439
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
440 ngx_http_core_loc_conf_t *exact;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
441 ngx_http_core_loc_conf_t *inclusive;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
442
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
443 u_char auto_redirect;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
444 u_char len;
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
445 u_char name[1];
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
446 };
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
447
f321b59ae0e9 locations tree
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
448
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
449 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
450 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
451 ngx_http_phase_handler_t *ph);
3634
40e356cf4176 add files missed in the previuos commit
Igor Sysoev <igor@sysoev.ru>
parents: 3632
diff changeset
452 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
453 ngx_http_phase_handler_t *ph);
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
454 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
455 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
456 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
457 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
458 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
459 ngx_http_phase_handler_t *ph);
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
460 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
461 ngx_http_phase_handler_t *ph);
2407
16d1236bc298 try_files
Igor Sysoev <igor@sysoev.ru>
parents: 2361
diff changeset
462 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
463 ngx_http_phase_handler_t *ph);
681
7e24168b0853 nginx-0.4.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 679
diff changeset
464 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
465 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
466
2138
fb3b084e7d42 test Content-Type via hash:
Igor Sysoev <igor@sysoev.ru>
parents: 2129
diff changeset
467
fb3b084e7d42 test Content-Type via hash:
Igor Sysoev <igor@sysoev.ru>
parents: 2129
diff changeset
468 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
469 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
470 void ngx_http_set_exten(ngx_http_request_t *r);
3632
920919d9148c ngx_http_send_response()
Igor Sysoev <igor@sysoev.ru>
parents: 3535
diff changeset
471 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
472 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
473 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
474 size_t *root_length, size_t reserved);
539
371c1cee100d nginx-0.1.44-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 527
diff changeset
475 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
476 #if (NGX_HTTP_GZIP)
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
477 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
478 #endif
775edc46ee66 ngx_http_gzip_static_module and gzip_disable
Igor Sysoev <igor@sysoev.ru>
parents: 1772
diff changeset
479
201
267ea1d98683 nginx-0.0.1-2003-11-30-23:03:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
480
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 507
diff changeset
481 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
482 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
483 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
484 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
485 ngx_str_t *uri, ngx_str_t *args);
1353
7443fbe0b013 named location
Igor Sysoev <igor@sysoev.ru>
parents: 1253
diff changeset
486 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
487
485
4ebe09b07e30 nginx-0.1.17-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 479
diff changeset
488
569
174f1e853e1e nginx-0.3.6-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
489 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
490
44
0e81ac0bb3e2 nginx-0.0.1-2003-01-09-08:36:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 41
diff changeset
491
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 346
diff changeset
492 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
493 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
494 (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
495
55e496a8ece3 nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 335
diff changeset
496
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 346
diff changeset
497 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
498 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
499
55e496a8ece3 nginx-0.0.3-2004-06-06-23:49:18 import
Igor Sysoev <igor@sysoev.ru>
parents: 335
diff changeset
500
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
501 extern ngx_module_t ngx_http_core_module;
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
502
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
503 extern ngx_uint_t ngx_http_max_module;
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
504
2701
756f73ca1e39 support HEAD in proxy cache
Igor Sysoev <igor@sysoev.ru>
parents: 2695
diff changeset
505 extern ngx_str_t ngx_http_core_get_method;
756f73ca1e39 support HEAD in proxy cache
Igor Sysoev <igor@sysoev.ru>
parents: 2695
diff changeset
506
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
507
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
508 #define ngx_http_clear_content_length(r) \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
509 \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
510 r->headers_out.content_length_n = -1; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
511 if (r->headers_out.content_length) { \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
512 r->headers_out.content_length->hash = 0; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
513 r->headers_out.content_length = NULL; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
514 }
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
515 \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
516 #define ngx_http_clear_accept_ranges(r) \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
517 \
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
518 r->allow_ranges = 0; \
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
519 if (r->headers_out.accept_ranges) { \
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1982
diff changeset
520 r->headers_out.accept_ranges->hash = 0; \
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
521 r->headers_out.accept_ranges = NULL; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
522 }
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
523
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
524 #define ngx_http_clear_last_modified(r) \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
525 \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
526 r->headers_out.last_modified_time = -1; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
527 if (r->headers_out.last_modified) { \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
528 r->headers_out.last_modified->hash = 0; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
529 r->headers_out.last_modified = NULL; \
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
530 }
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
531
4247
b79dbadb3d5e Merging r4147, r4148, r4149, r4150, r4207:
Igor Sysoev <igor@sysoev.ru>
parents: 4162
diff changeset
532 #define ngx_http_clear_location(r) \
b79dbadb3d5e Merging r4147, r4148, r4149, r4150, r4207:
Igor Sysoev <igor@sysoev.ru>
parents: 4162
diff changeset
533 \
b79dbadb3d5e Merging r4147, r4148, r4149, r4150, r4207:
Igor Sysoev <igor@sysoev.ru>
parents: 4162
diff changeset
534 if (r->headers_out.location) { \
b79dbadb3d5e Merging r4147, r4148, r4149, r4150, r4207:
Igor Sysoev <igor@sysoev.ru>
parents: 4162
diff changeset
535 r->headers_out.location->hash = 0; \
b79dbadb3d5e Merging r4147, r4148, r4149, r4150, r4207:
Igor Sysoev <igor@sysoev.ru>
parents: 4162
diff changeset
536 r->headers_out.location = NULL; \
b79dbadb3d5e Merging r4147, r4148, r4149, r4150, r4207:
Igor Sysoev <igor@sysoev.ru>
parents: 4162
diff changeset
537 }
b79dbadb3d5e Merging r4147, r4148, r4149, r4150, r4207:
Igor Sysoev <igor@sysoev.ru>
parents: 4162
diff changeset
538
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 573
diff changeset
539
13
2aba961a1d34 nginx-0.0.1-2002-09-16-19:01:44 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
540 #endif /* _NGX_HTTP_CORE_H_INCLUDED_ */