annotate src/http/ngx_http_special_response.c @ 9230:e14debe728b0 radix_with_skip

Closed the radix_with_skip branch. The radix_with_skip branch is an archive of an experiment did in 2008, and it is no longer relevant. It is now closed to avoid cluttering of the branches list. If needed, closed branches still can be seen with "hg branches --closed".
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 23 Mar 2024 04:30:45 +0300
parents 798ecc4fe75c
children 26d9d4a41e91
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: 416
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: 416
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: 416
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: 416
diff changeset
5
98
c9b243802a17 nginx-0.0.1-2003-05-30-18:27:59 import
Igor Sysoev <igor@sysoev.ru>
parents: 96
diff changeset
6
c9b243802a17 nginx-0.0.1-2003-05-30-18:27:59 import
Igor Sysoev <igor@sysoev.ru>
parents: 96
diff changeset
7 #include <ngx_config.h>
c9b243802a17 nginx-0.0.1-2003-05-30-18:27:59 import
Igor Sysoev <igor@sysoev.ru>
parents: 96
diff changeset
8 #include <ngx_core.h>
99
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
9 #include <ngx_http.h>
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
10 #include <nginx.h>
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
13 static ngx_int_t ngx_http_send_error_page(ngx_http_request_t *r,
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
14 ngx_http_err_page_t *err_page);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
15 static ngx_int_t ngx_http_send_special_response(ngx_http_request_t *r,
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
16 ngx_http_core_loc_conf_t *clcf, ngx_uint_t err);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
17 static ngx_int_t ngx_http_send_refresh(ngx_http_request_t *r);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
18
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
19
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
20 static u_char ngx_http_error_full_tail[] =
1592
128ea9efb824 server_tokens
Igor Sysoev <igor@sysoev.ru>
parents: 1370
diff changeset
21 "<hr><center>" NGINX_VER "</center>" CRLF
128ea9efb824 server_tokens
Igor Sysoev <igor@sysoev.ru>
parents: 1370
diff changeset
22 "</body>" CRLF
128ea9efb824 server_tokens
Igor Sysoev <igor@sysoev.ru>
parents: 1370
diff changeset
23 "</html>" CRLF
128ea9efb824 server_tokens
Igor Sysoev <igor@sysoev.ru>
parents: 1370
diff changeset
24 ;
128ea9efb824 server_tokens
Igor Sysoev <igor@sysoev.ru>
parents: 1370
diff changeset
25
128ea9efb824 server_tokens
Igor Sysoev <igor@sysoev.ru>
parents: 1370
diff changeset
26
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
27 static u_char ngx_http_error_tail[] =
1592
128ea9efb824 server_tokens
Igor Sysoev <igor@sysoev.ru>
parents: 1370
diff changeset
28 "<hr><center>nginx</center>" CRLF
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
29 "</body>" CRLF
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
30 "</html>" CRLF
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
31 ;
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
32
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 47
diff changeset
33
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
34 static u_char ngx_http_msie_stub[] =
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
35 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
36 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
37 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
38 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
39 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
40 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
41 ;
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
42
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
43
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
44 static u_char ngx_http_msie_refresh_head[] =
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
45 "<html><head><meta http-equiv=\"Refresh\" content=\"0; URL=";
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
46
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
47
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
48 static u_char ngx_http_msie_refresh_tail[] =
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
49 "\"></head><body></body></html>" CRLF;
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
50
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
51
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
52 static char ngx_http_error_301_page[] =
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
53 "<html>" CRLF
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
54 "<head><title>301 Moved Permanently</title></head>" CRLF
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
55 "<body bgcolor=\"white\">" CRLF
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
56 "<center><h1>301 Moved Permanently</h1></center>" CRLF
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
57 ;
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
58
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 143
diff changeset
59
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
60 static char ngx_http_error_302_page[] =
99
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
61 "<html>" CRLF
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
62 "<head><title>302 Found</title></head>" CRLF
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
63 "<body bgcolor=\"white\">" CRLF
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
64 "<center><h1>302 Found</h1></center>" CRLF
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
65 ;
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
66
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
67
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
68 static char ngx_http_error_400_page[] =
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
69 "<html>" CRLF
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
70 "<head><title>400 Bad Request</title></head>" CRLF
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
71 "<body bgcolor=\"white\">" CRLF
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
72 "<center><h1>400 Bad Request</h1></center>" CRLF
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
73 ;
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
74
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 47
diff changeset
75
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
76 static char ngx_http_error_401_page[] =
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
77 "<html>" CRLF
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
78 "<head><title>401 Authorization Required</title></head>" CRLF
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
79 "<body bgcolor=\"white\">" CRLF
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
80 "<center><h1>401 Authorization Required</h1></center>" CRLF
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
81 ;
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
82
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
83
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
84 static char ngx_http_error_402_page[] =
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
85 "<html>" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
86 "<head><title>402 Payment Required</title></head>" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
87 "<body bgcolor=\"white\">" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
88 "<center><h1>402 Payment Required</h1></center>" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
89 ;
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
90
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
91
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
92 static char ngx_http_error_403_page[] =
45
f1ee46c036a4 nginx-0.0.1-2003-01-10-09:09:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 26
diff changeset
93 "<html>" CRLF
f1ee46c036a4 nginx-0.0.1-2003-01-10-09:09:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 26
diff changeset
94 "<head><title>403 Forbidden</title></head>" CRLF
f1ee46c036a4 nginx-0.0.1-2003-01-10-09:09:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 26
diff changeset
95 "<body bgcolor=\"white\">" CRLF
f1ee46c036a4 nginx-0.0.1-2003-01-10-09:09:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 26
diff changeset
96 "<center><h1>403 Forbidden</h1></center>" CRLF
f1ee46c036a4 nginx-0.0.1-2003-01-10-09:09:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 26
diff changeset
97 ;
f1ee46c036a4 nginx-0.0.1-2003-01-10-09:09:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 26
diff changeset
98
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 47
diff changeset
99
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
100 static char ngx_http_error_404_page[] =
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
101 "<html>" CRLF
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
102 "<head><title>404 Not Found</title></head>" CRLF
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
103 "<body bgcolor=\"white\">" CRLF
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
104 "<center><h1>404 Not Found</h1></center>" CRLF
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
105 ;
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
106
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 47
diff changeset
107
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
108 static char ngx_http_error_405_page[] =
96
a23d010f356d nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
109 "<html>" CRLF
a23d010f356d nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
110 "<head><title>405 Not Allowed</title></head>" CRLF
a23d010f356d nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
111 "<body bgcolor=\"white\">" CRLF
a23d010f356d nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
112 "<center><h1>405 Not Allowed</h1></center>" CRLF
a23d010f356d nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
113 ;
a23d010f356d nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
114
a23d010f356d nginx-0.0.1-2003-05-27-16:18:54 import
Igor Sysoev <igor@sysoev.ru>
parents: 88
diff changeset
115
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
116 static char ngx_http_error_406_page[] =
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
117 "<html>" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
118 "<head><title>406 Not Acceptable</title></head>" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
119 "<body bgcolor=\"white\">" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
120 "<center><h1>406 Not Acceptable</h1></center>" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
121 ;
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
122
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
123
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
124 static char ngx_http_error_408_page[] =
69
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
125 "<html>" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
126 "<head><title>408 Request Time-out</title></head>" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
127 "<body bgcolor=\"white\">" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
128 "<center><h1>408 Request Time-out</h1></center>" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
129 ;
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
130
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
131
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
132 static char ngx_http_error_409_page[] =
637
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
133 "<html>" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
134 "<head><title>409 Conflict</title></head>" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
135 "<body bgcolor=\"white\">" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
136 "<center><h1>409 Conflict</h1></center>" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
137 ;
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
138
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
139
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
140 static char ngx_http_error_410_page[] =
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
141 "<html>" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
142 "<head><title>410 Gone</title></head>" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
143 "<body bgcolor=\"white\">" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
144 "<center><h1>410 Gone</h1></center>" CRLF
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
145 ;
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
146
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
147
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
148 static char ngx_http_error_411_page[] =
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
149 "<html>" CRLF
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
150 "<head><title>411 Length Required</title></head>" CRLF
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
151 "<body bgcolor=\"white\">" CRLF
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
152 "<center><h1>411 Length Required</h1></center>" CRLF
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
153 ;
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
154
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 577
diff changeset
155
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
156 static char ngx_http_error_412_page[] =
1057
bbde03037ef6 NGX_HTTP_PRECONDITION_FAILED
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
157 "<html>" CRLF
bbde03037ef6 NGX_HTTP_PRECONDITION_FAILED
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
158 "<head><title>412 Precondition Failed</title></head>" CRLF
bbde03037ef6 NGX_HTTP_PRECONDITION_FAILED
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
159 "<body bgcolor=\"white\">" CRLF
bbde03037ef6 NGX_HTTP_PRECONDITION_FAILED
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
160 "<center><h1>412 Precondition Failed</h1></center>" CRLF
bbde03037ef6 NGX_HTTP_PRECONDITION_FAILED
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
161 ;
bbde03037ef6 NGX_HTTP_PRECONDITION_FAILED
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
162
bbde03037ef6 NGX_HTTP_PRECONDITION_FAILED
Igor Sysoev <igor@sysoev.ru>
parents: 730
diff changeset
163
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
164 static char ngx_http_error_413_page[] =
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
165 "<html>" CRLF
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
166 "<head><title>413 Request Entity Too Large</title></head>" CRLF
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
167 "<body bgcolor=\"white\">" CRLF
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
168 "<center><h1>413 Request Entity Too Large</h1></center>" CRLF
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
169 ;
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
170
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
171
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
172 static char ngx_http_error_414_page[] =
67
5a7d1aaa1618 nginx-0.0.1-2003-03-11-23:38:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
173 "<html>" CRLF
5a7d1aaa1618 nginx-0.0.1-2003-03-11-23:38:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
174 "<head><title>414 Request-URI Too Large</title></head>" CRLF
5a7d1aaa1618 nginx-0.0.1-2003-03-11-23:38:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
175 "<body bgcolor=\"white\">" CRLF
5a7d1aaa1618 nginx-0.0.1-2003-03-11-23:38:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
176 "<center><h1>414 Request-URI Too Large</h1></center>" CRLF
5a7d1aaa1618 nginx-0.0.1-2003-03-11-23:38:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
177 ;
5a7d1aaa1618 nginx-0.0.1-2003-03-11-23:38:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
178
5a7d1aaa1618 nginx-0.0.1-2003-03-11-23:38:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 59
diff changeset
179
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
180 static char ngx_http_error_415_page[] =
637
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
181 "<html>" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
182 "<head><title>415 Unsupported Media Type</title></head>" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
183 "<body bgcolor=\"white\">" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
184 "<center><h1>415 Unsupported Media Type</h1></center>" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
185 ;
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
186
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
187
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
188 static char ngx_http_error_416_page[] =
99
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
189 "<html>" CRLF
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
190 "<head><title>416 Requested Range Not Satisfiable</title></head>" CRLF
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
191 "<body bgcolor=\"white\">" CRLF
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
192 "<center><h1>416 Requested Range Not Satisfiable</h1></center>" CRLF
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
193 ;
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
194
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
195
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
196 static char ngx_http_error_495_page[] =
647
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
197 "<html>" CRLF
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
198 "<head><title>400 The SSL certificate error</title></head>"
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
199 CRLF
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
200 "<body bgcolor=\"white\">" CRLF
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
201 "<center><h1>400 Bad Request</h1></center>" CRLF
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
202 "<center>The SSL certificate error</center>" CRLF
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
203 ;
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
204
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
205
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
206 static char ngx_http_error_496_page[] =
647
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
207 "<html>" CRLF
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
208 "<head><title>400 No required SSL certificate was sent</title></head>"
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
209 CRLF
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
210 "<body bgcolor=\"white\">" CRLF
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
211 "<center><h1>400 Bad Request</h1></center>" CRLF
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
212 "<center>No required SSL certificate was sent</center>" CRLF
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
213 ;
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
214
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
215
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
216 static char ngx_http_error_497_page[] =
384
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 356
diff changeset
217 "<html>" CRLF
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 384
diff changeset
218 "<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>"
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 384
diff changeset
219 CRLF
384
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 356
diff changeset
220 "<body bgcolor=\"white\">" CRLF
396
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 384
diff changeset
221 "<center><h1>400 Bad Request</h1></center>" CRLF
6f3b20c1ac50 nginx-0.0.7-2004-07-18-23:11:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 384
diff changeset
222 "<center>The plain HTTP request was sent to HTTPS port</center>" CRLF
384
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 356
diff changeset
223 ;
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 356
diff changeset
224
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 356
diff changeset
225
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
226 static char ngx_http_error_500_page[] =
47
d81326c3b21b nginx-0.0.1-2003-01-15-10:02:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 45
diff changeset
227 "<html>" CRLF
d81326c3b21b nginx-0.0.1-2003-01-15-10:02:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 45
diff changeset
228 "<head><title>500 Internal Server Error</title></head>" CRLF
d81326c3b21b nginx-0.0.1-2003-01-15-10:02:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 45
diff changeset
229 "<body bgcolor=\"white\">" CRLF
d81326c3b21b nginx-0.0.1-2003-01-15-10:02:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 45
diff changeset
230 "<center><h1>500 Internal Server Error</h1></center>" CRLF
d81326c3b21b nginx-0.0.1-2003-01-15-10:02:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 45
diff changeset
231 ;
d81326c3b21b nginx-0.0.1-2003-01-15-10:02:27 import
Igor Sysoev <igor@sysoev.ru>
parents: 45
diff changeset
232
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
233
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
234 static char ngx_http_error_501_page[] =
233
4eaafcd57be7 nginx-0.0.1-2004-01-19-21:09:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
235 "<html>" CRLF
4eaafcd57be7 nginx-0.0.1-2004-01-19-21:09:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
236 "<head><title>501 Method Not Implemented</title></head>" CRLF
4eaafcd57be7 nginx-0.0.1-2004-01-19-21:09:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
237 "<body bgcolor=\"white\">" CRLF
535
563ad09abf50 nginx-0.1.42-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 527
diff changeset
238 "<center><h1>501 Method Not Implemented</h1></center>" CRLF
233
4eaafcd57be7 nginx-0.0.1-2004-01-19-21:09:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
239 ;
4eaafcd57be7 nginx-0.0.1-2004-01-19-21:09:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
240
4eaafcd57be7 nginx-0.0.1-2004-01-19-21:09:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 179
diff changeset
241
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
242 static char ngx_http_error_502_page[] =
69
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
243 "<html>" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
244 "<head><title>502 Bad Gateway</title></head>" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
245 "<body bgcolor=\"white\">" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
246 "<center><h1>502 Bad Gateway</h1></center>" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
247 ;
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
248
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
249
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
250 static char ngx_http_error_503_page[] =
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
251 "<html>" CRLF
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
252 "<head><title>503 Service Temporarily Unavailable</title></head>" CRLF
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
253 "<body bgcolor=\"white\">" CRLF
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
254 "<center><h1>503 Service Temporarily Unavailable</h1></center>" CRLF
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
255 ;
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
256
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
257
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
258 static char ngx_http_error_504_page[] =
69
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
259 "<html>" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
260 "<head><title>504 Gateway Time-out</title></head>" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
261 "<body bgcolor=\"white\">" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
262 "<center><h1>504 Gateway Time-out</h1></center>" CRLF
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
263 ;
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
264
e43f406e4525 nginx-0.0.1-2003-03-20-19:09:44 import
Igor Sysoev <igor@sysoev.ru>
parents: 68
diff changeset
265
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
266 static char ngx_http_error_507_page[] =
637
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
267 "<html>" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
268 "<head><title>507 Insufficient Storage</title></head>" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
269 "<body bgcolor=\"white\">" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
270 "<center><h1>507 Insufficient Storage</h1></center>" CRLF
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
271 ;
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
272
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
273
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
274 static ngx_str_t ngx_http_error_pages[] = {
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
275
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
276 ngx_null_string, /* 201, 204 */
511
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
277
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
278 #define NGX_HTTP_LEVEL_200 1
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
279
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
280 /* ngx_null_string, */ /* 300 */
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
281 ngx_string(ngx_http_error_301_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
282 ngx_string(ngx_http_error_302_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
283 ngx_null_string, /* 303 */
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
284
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
285 #define NGX_HTTP_LEVEL_300 3
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
286
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
287 ngx_string(ngx_http_error_400_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
288 ngx_string(ngx_http_error_401_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
289 ngx_string(ngx_http_error_402_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
290 ngx_string(ngx_http_error_403_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
291 ngx_string(ngx_http_error_404_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
292 ngx_string(ngx_http_error_405_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
293 ngx_string(ngx_http_error_406_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
294 ngx_null_string, /* 407 */
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
295 ngx_string(ngx_http_error_408_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
296 ngx_string(ngx_http_error_409_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
297 ngx_string(ngx_http_error_410_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
298 ngx_string(ngx_http_error_411_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
299 ngx_string(ngx_http_error_412_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
300 ngx_string(ngx_http_error_413_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
301 ngx_string(ngx_http_error_414_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
302 ngx_string(ngx_http_error_415_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
303 ngx_string(ngx_http_error_416_page),
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
304
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
305 #define NGX_HTTP_LEVEL_400 17
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
306
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
307 ngx_string(ngx_http_error_495_page), /* 495, https certificate error */
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
308 ngx_string(ngx_http_error_496_page), /* 496, https no certificate */
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
309 ngx_string(ngx_http_error_497_page), /* 497, http to https */
1672
bc93d5ab3e27 fix comment
Igor Sysoev <igor@sysoev.ru>
parents: 1604
diff changeset
310 ngx_string(ngx_http_error_404_page), /* 498, canceled */
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
311 ngx_null_string, /* 499, client has closed connection */
335
d4241d7787fe nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 331
diff changeset
312
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
313 ngx_string(ngx_http_error_500_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
314 ngx_string(ngx_http_error_501_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
315 ngx_string(ngx_http_error_502_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
316 ngx_string(ngx_http_error_503_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
317 ngx_string(ngx_http_error_504_page),
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
318 ngx_null_string, /* 505 */
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
319 ngx_null_string, /* 506 */
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
320 ngx_string(ngx_http_error_507_page)
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
321 };
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
322
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 47
diff changeset
323
717
08652aae6fab fix msvc build failure introduced by previous commit
Igor Sysoev <igor@sysoev.ru>
parents: 716
diff changeset
324 static ngx_str_t ngx_http_get_name = { 3, (u_char *) "GET " };
716
d8d7c39e3a76 allowing handling 400 errors via proxy_pass
Igor Sysoev <igor@sysoev.ru>
parents: 681
diff changeset
325
d8d7c39e3a76 allowing handling 400 errors via proxy_pass
Igor Sysoev <igor@sysoev.ru>
parents: 681
diff changeset
326
487
31ff3e943e16 nginx-0.1.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
327 ngx_int_t
31ff3e943e16 nginx-0.1.18-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
328 ngx_http_special_response_handler(ngx_http_request_t *r, ngx_int_t error)
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
329 {
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
330 ngx_uint_t i, err;
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
331 ngx_http_err_page_t *err_page;
158
d377ee423603 nginx-0.0.1-2003-10-24-10:53:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 155
diff changeset
332 ngx_http_core_loc_conf_t *clcf;
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
333
2040
eba265857dc2 fix building by bcc/etc introduced in r2038
Igor Sysoev <igor@sysoev.ru>
parents: 2037
diff changeset
334 ngx_log_debug3(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
2037
aee889ff25ea fix debug logging
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
335 "http special response: %d, \"%V?%V\"",
aee889ff25ea fix debug logging
Igor Sysoev <igor@sysoev.ru>
parents: 2024
diff changeset
336 error, &r->uri, &r->args);
527
7fa11e5c6e96 nginx-0.1.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 513
diff changeset
337
677
921a7ce4baf4 nginx-0.3.60-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 675
diff changeset
338 r->err_status = error;
26
53cb81681040 nginx-0.0.1-2002-12-15-09:25:09 import
Igor Sysoev <igor@sysoev.ru>
parents: 24
diff changeset
339
2019
e720be7bc195 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 1982
diff changeset
340 if (r->keepalive) {
68
d549fdc17d7e nginx-0.0.1-2003-03-12-20:32:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
341 switch (error) {
d549fdc17d7e nginx-0.0.1-2003-03-12-20:32:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
342 case NGX_HTTP_BAD_REQUEST:
162
96993d4d5067 nginx-0.0.1-2003-10-28-00:01:00 import
Igor Sysoev <igor@sysoev.ru>
parents: 161
diff changeset
343 case NGX_HTTP_REQUEST_ENTITY_TOO_LARGE:
68
d549fdc17d7e nginx-0.0.1-2003-03-12-20:32:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
344 case NGX_HTTP_REQUEST_URI_TOO_LARGE:
384
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 356
diff changeset
345 case NGX_HTTP_TO_HTTPS:
647
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
346 case NGX_HTTPS_CERT_ERROR:
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
347 case NGX_HTTPS_NO_CERT:
68
d549fdc17d7e nginx-0.0.1-2003-03-12-20:32:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
348 case NGX_HTTP_INTERNAL_SERVER_ERROR:
d549fdc17d7e nginx-0.0.1-2003-03-12-20:32:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
349 r->keepalive = 0;
d549fdc17d7e nginx-0.0.1-2003-03-12-20:32:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
350 }
d549fdc17d7e nginx-0.0.1-2003-03-12-20:32:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
351 }
d549fdc17d7e nginx-0.0.1-2003-03-12-20:32:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
352
88
674d333f4296 nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 71
diff changeset
353 if (r->lingering_close == 1) {
674d333f4296 nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 71
diff changeset
354 switch (error) {
674d333f4296 nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 71
diff changeset
355 case NGX_HTTP_BAD_REQUEST:
384
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 356
diff changeset
356 case NGX_HTTP_TO_HTTPS:
647
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
357 case NGX_HTTPS_CERT_ERROR:
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
358 case NGX_HTTPS_NO_CERT:
88
674d333f4296 nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 71
diff changeset
359 r->lingering_close = 0;
674d333f4296 nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 71
diff changeset
360 }
674d333f4296 nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 71
diff changeset
361 }
674d333f4296 nginx-0.0.1-2003-05-14-21:13:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 71
diff changeset
362
675
e924670896ab nginx-0.3.59-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 673
diff changeset
363 r->headers_out.content_type.len = 0;
e924670896ab nginx-0.3.59-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 673
diff changeset
364
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
365 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
366
2174
20a7fc523aec disable error_page loop in 500 error when recursive errors are enabled
Igor Sysoev <igor@sysoev.ru>
parents: 2040
diff changeset
367 if (!r->error_page && clcf->error_pages && r->uri_changes != 0) {
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
368
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
369 if (clcf->recursive_error_pages == 0) {
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
370 r->error_page = 1;
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
371 }
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
372
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
373 err_page = clcf->error_pages->elts;
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
374
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
375 for (i = 0; i < clcf->error_pages->nelts; i++) {
326
8733703a37f3 nginx-0.0.3-2004-04-26-00:13:21 import
Igor Sysoev <igor@sysoev.ru>
parents: 323
diff changeset
376 if (err_page[i].status == error) {
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
377 return ngx_http_send_error_page(r, &err_page[i]);
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
378 }
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
379 }
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
380 }
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
381
2191
808547aa8c12 do not discard body while error_page redirection
Igor Sysoev <igor@sysoev.ru>
parents: 2174
diff changeset
382 if (ngx_http_discard_request_body(r) != NGX_OK) {
808547aa8c12 do not discard body while error_page redirection
Igor Sysoev <igor@sysoev.ru>
parents: 2174
diff changeset
383 error = NGX_HTTP_INTERNAL_SERVER_ERROR;
808547aa8c12 do not discard body while error_page redirection
Igor Sysoev <igor@sysoev.ru>
parents: 2174
diff changeset
384 }
808547aa8c12 do not discard body while error_page redirection
Igor Sysoev <igor@sysoev.ru>
parents: 2174
diff changeset
385
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
386 if (clcf->msie_refresh
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
387 && r->headers_in.msie
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
388 && (error == NGX_HTTP_MOVED_PERMANENTLY
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
389 || error == NGX_HTTP_MOVED_TEMPORARILY))
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
390 {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
391 return ngx_http_send_refresh(r);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
392 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
393
633
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
394 if (error == NGX_HTTP_CREATED) {
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
395 /* 201 */
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
396 err = 0;
637
e60fe4cf1d4e nginx-0.3.40-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 633
diff changeset
397 r->header_only = 1;
633
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
398
f971949ffb58 nginx-0.3.38-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
399 } else if (error == NGX_HTTP_NO_CONTENT) {
511
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
400 /* 204 */
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
401 err = 0;
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
402
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
403 } else if (error < NGX_HTTP_BAD_REQUEST) {
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
404 /* 3XX */
513
fbbf16224844 nginx-0.1.31-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 511
diff changeset
405 err = error - NGX_HTTP_MOVED_PERMANENTLY + NGX_HTTP_LEVEL_200;
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
406
587
284cc140593b nginx-0.3.15-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
407 } else if (error < NGX_HTTP_OWN_CODES) {
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
408 /* 4XX */
511
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
409 err = error - NGX_HTTP_BAD_REQUEST + NGX_HTTP_LEVEL_200
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
410 + NGX_HTTP_LEVEL_300;
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
411
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
412 } else {
335
d4241d7787fe nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 331
diff changeset
413 /* 49X, 5XX */
587
284cc140593b nginx-0.3.15-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
414 err = error - NGX_HTTP_OWN_CODES + NGX_HTTP_LEVEL_200
511
c12967aadd87 nginx-0.1.30-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
415 + NGX_HTTP_LEVEL_300
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 487
diff changeset
416 + NGX_HTTP_LEVEL_400;
335
d4241d7787fe nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 331
diff changeset
417 switch (error) {
384
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 356
diff changeset
418 case NGX_HTTP_TO_HTTPS:
647
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
419 case NGX_HTTPS_CERT_ERROR:
95d7da23ea53 nginx-0.3.45-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 637
diff changeset
420 case NGX_HTTPS_NO_CERT:
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
421 r->err_status = NGX_HTTP_BAD_REQUEST;
384
e7054aaedf68 nginx-0.0.7-2004-07-09-11:12:14 import
Igor Sysoev <igor@sysoev.ru>
parents: 356
diff changeset
422 break;
335
d4241d7787fe nginx-0.0.3-2004-05-14-20:51:47 import
Igor Sysoev <igor@sysoev.ru>
parents: 331
diff changeset
423 }
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
424 }
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 165
diff changeset
425
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
426 return ngx_http_send_special_response(r, clcf, err);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
427 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
428
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
429
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
430 static ngx_int_t
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
431 ngx_http_send_error_page(ngx_http_request_t *r, ngx_http_err_page_t *err_page)
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
432 {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
433 u_char ch, *p, *last;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
434 ngx_str_t *uri, *args, u, a;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
435 ngx_table_elt_t *location;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
436 ngx_http_core_loc_conf_t *clcf;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
437
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
438 r->err_status = err_page->overwrite;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
439
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
440 r->zero_in_uri = 0;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
441
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
442 if (err_page->uri_lengths) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
443 if (ngx_http_script_run(r, &u, err_page->uri_lengths->elts, 0,
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
444 err_page->uri_values->elts)
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
445 == NULL)
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
446 {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
447 return NGX_ERROR;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
448 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
449
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
450 p = u.data;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
451 uri = &u;
1982
dd388c80f5a2 args support in static error_page
Igor Sysoev <igor@sysoev.ru>
parents: 1922
diff changeset
452 args = NULL;
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
453
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
454 if (*p == '/') {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
455
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
456 last = p + uri->len;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
457
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
458 while (p < last) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
459
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
460 ch = *p++;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
461
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
462 if (ch == '?') {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
463 a.len = last - p;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
464 a.data = p;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
465 args = &a;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
466
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
467 u.len = p - 1 - u.data;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
468
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
469 while (p < last) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
470 if (*p++ == '\0') {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
471 r->zero_in_uri = 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
472 break;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
473 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
474 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
475
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
476 break;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
477 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
478
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
479 if (ch == '\0') {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
480 r->zero_in_uri = 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
481 continue;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
482 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
483 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
484 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
485
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
486 } else {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
487 uri = &err_page->uri;
1982
dd388c80f5a2 args support in static error_page
Igor Sysoev <igor@sysoev.ru>
parents: 1922
diff changeset
488 args = &err_page->args;
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
489 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
490
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
491 if (uri->data[0] == '/') {
1922
d23396f2a902 do not change method while error redirection to named location
Igor Sysoev <igor@sysoev.ru>
parents: 1672
diff changeset
492
2192
798ecc4fe75c leave HEAD method while error_page redirection
Igor Sysoev <igor@sysoev.ru>
parents: 2191
diff changeset
493 if (r->method != NGX_HTTP_HEAD) {
798ecc4fe75c leave HEAD method while error_page redirection
Igor Sysoev <igor@sysoev.ru>
parents: 2191
diff changeset
494 r->method = NGX_HTTP_GET;
798ecc4fe75c leave HEAD method while error_page redirection
Igor Sysoev <igor@sysoev.ru>
parents: 2191
diff changeset
495 r->method_name = ngx_http_get_name;
798ecc4fe75c leave HEAD method while error_page redirection
Igor Sysoev <igor@sysoev.ru>
parents: 2191
diff changeset
496 }
1922
d23396f2a902 do not change method while error redirection to named location
Igor Sysoev <igor@sysoev.ru>
parents: 1672
diff changeset
497
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
498 return ngx_http_internal_redirect(r, uri, args);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
499 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
500
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
501 if (uri->data[0] == '@') {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
502 return ngx_http_named_location(r, uri);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
503 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
504
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
505 location = ngx_list_push(&r->headers_out.headers);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
506
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
507 if (location == NULL) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
508 return NGX_ERROR;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
509 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
510
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
511 r->err_status = NGX_HTTP_MOVED_TEMPORARILY;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
512
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
513 location->hash = 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
514 location->key.len = sizeof("Location") - 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
515 location->key.data = (u_char *) "Location";
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
516 location->value = *uri;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
517
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
518 r->headers_out.location = location;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
519
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
520 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
521
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
522 if (clcf->msie_refresh && r->headers_in.msie) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
523 return ngx_http_send_refresh(r);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
524 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
525
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
526 return ngx_http_send_special_response(r, clcf, NGX_HTTP_MOVED_TEMPORARILY
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
527 - NGX_HTTP_MOVED_PERMANENTLY
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
528 + NGX_HTTP_LEVEL_200);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
529 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
530
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
531
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
532 static ngx_int_t
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
533 ngx_http_send_special_response(ngx_http_request_t *r,
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
534 ngx_http_core_loc_conf_t *clcf, ngx_uint_t err)
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
535 {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
536 u_char *tail;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
537 size_t len;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
538 ngx_int_t rc;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
539 ngx_buf_t *b;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
540 ngx_uint_t msie_padding;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
541 ngx_chain_t out[3];
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
542
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
543 if (clcf->server_tokens) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
544 len = sizeof(ngx_http_error_full_tail) - 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
545 tail = ngx_http_error_full_tail;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
546
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
547 } else {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
548 len = sizeof(ngx_http_error_tail) - 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
549 tail = ngx_http_error_tail;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
550 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
551
356
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 343
diff changeset
552 msie_padding = 0;
2e3cbc1bbe3c nginx-0.0.7-2004-06-16-19:32:11 import
Igor Sysoev <igor@sysoev.ru>
parents: 343
diff changeset
553
730
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
554 if (!r->zero_body) {
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
555 if (ngx_http_error_pages[err].len) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
556 r->headers_out.content_length_n = ngx_http_error_pages[err].len
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
557 + len;
730
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
558 if (clcf->msie_padding
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
559 && r->headers_in.msie
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
560 && r->http_version >= NGX_HTTP_VERSION_10
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
561 && err >= NGX_HTTP_LEVEL_300)
730
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
562 {
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
563 r->headers_out.content_length_n +=
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
564 sizeof(ngx_http_msie_stub) - 1;
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
565 msie_padding = 1;
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
566 }
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
567
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
568 r->headers_out.content_type_len = sizeof("text/html") - 1;
730
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
569 r->headers_out.content_type.len = sizeof("text/html") - 1;
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
570 r->headers_out.content_type.data = (u_char *) "text/html";
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
571
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
572 } else {
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
573 r->headers_out.content_length_n = -1;
331
f168a88e93f7 nginx-0.0.3-2004-05-04-21:56:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 326
diff changeset
574 }
99
a059e1aa65d4 nginx-0.0.1-2003-06-02-19:24:30 import
Igor Sysoev <igor@sysoev.ru>
parents: 98
diff changeset
575
68
d549fdc17d7e nginx-0.0.1-2003-03-12-20:32:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
576 } else {
730
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
577 r->headers_out.content_length_n = 0;
1be87cdd010f set "Content-Length: 0" for errors handled by "return 204"
Igor Sysoev <igor@sysoev.ru>
parents: 717
diff changeset
578 err = 0;
165
894a01c6aea3 nginx-0.0.1-2003-10-29-20:39:05 import
Igor Sysoev <igor@sysoev.ru>
parents: 164
diff changeset
579 }
894a01c6aea3 nginx-0.0.1-2003-10-29-20:39:05 import
Igor Sysoev <igor@sysoev.ru>
parents: 164
diff changeset
580
894a01c6aea3 nginx-0.0.1-2003-10-29-20:39:05 import
Igor Sysoev <igor@sysoev.ru>
parents: 164
diff changeset
581 if (r->headers_out.content_length) {
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
582 r->headers_out.content_length->hash = 0;
153
c71aeb75c071 nginx-0.0.1-2003-10-21-20:49:56 import
Igor Sysoev <igor@sysoev.ru>
parents: 148
diff changeset
583 r->headers_out.content_length = NULL;
68
d549fdc17d7e nginx-0.0.1-2003-03-12-20:32:22 import
Igor Sysoev <igor@sysoev.ru>
parents: 67
diff changeset
584 }
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
585
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
586 ngx_http_clear_accept_ranges(r);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
587 ngx_http_clear_last_modified(r);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
588
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
589 rc = ngx_http_send_header(r);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
590
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
591 if (rc == NGX_ERROR || r->header_only) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
592 return rc;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
593 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
594
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
595 if (ngx_http_error_pages[err].len == 0) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
596 return NGX_OK;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
597 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
598
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
599 b = ngx_calloc_buf(r->pool);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
600 if (b == NULL) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
601 return NGX_ERROR;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
602 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
603
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
604 b->memory = 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
605 b->pos = ngx_http_error_pages[err].data;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
606 b->last = ngx_http_error_pages[err].data + ngx_http_error_pages[err].len;
1298
458e041fc902 msie_refresh should escape at least '"' to prevent XSS
Igor Sysoev <igor@sysoev.ru>
parents: 1057
diff changeset
607
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
608 out[0].buf = b;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
609 out[0].next = &out[1];
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
610
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
611 b = ngx_calloc_buf(r->pool);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
612 if (b == NULL) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
613 return NGX_ERROR;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
614 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
615
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
616 b->memory = 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
617
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
618 b->pos = tail;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
619 b->last = tail + len;
1298
458e041fc902 msie_refresh should escape at least '"' to prevent XSS
Igor Sysoev <igor@sysoev.ru>
parents: 1057
diff changeset
620
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
621 out[1].buf = b;
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 2019
diff changeset
622 out[1].next = NULL;
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
623
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
624 if (msie_padding) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
625 b = ngx_calloc_buf(r->pool);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
626 if (b == NULL) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
627 return NGX_ERROR;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
628 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
629
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
630 b->memory = 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
631 b->pos = ngx_http_msie_stub;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
632 b->last = ngx_http_msie_stub + sizeof(ngx_http_msie_stub) - 1;
1298
458e041fc902 msie_refresh should escape at least '"' to prevent XSS
Igor Sysoev <igor@sysoev.ru>
parents: 1057
diff changeset
633
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
634 out[1].next = &out[2];
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
635 out[2].buf = b;
2024
7018254cc006 style fix
Igor Sysoev <igor@sysoev.ru>
parents: 2019
diff changeset
636 out[2].next = NULL;
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
637 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
638
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
639 if (r == r->main) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
640 b->last_buf = 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
641 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
642
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
643 b->last_in_chain = 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
644
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
645 return ngx_http_output_filter(r, &out[0]);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
646 }
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
647
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
648
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
649 static ngx_int_t
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
650 ngx_http_send_refresh(ngx_http_request_t *r)
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
651 {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
652 u_char *p, *location;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
653 size_t len, size;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
654 uintptr_t escape;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
655 ngx_int_t rc;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
656 ngx_buf_t *b;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
657 ngx_chain_t out;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
658
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
659 len = r->headers_out.location->value.len;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
660 location = r->headers_out.location->value.data;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
661
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
662 escape = 2 * ngx_escape_uri(NULL, location, len, NGX_ESCAPE_REFRESH);
1298
458e041fc902 msie_refresh should escape at least '"' to prevent XSS
Igor Sysoev <igor@sysoev.ru>
parents: 1057
diff changeset
663
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
664 size = sizeof(ngx_http_msie_refresh_head) - 1
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
665 + escape + len
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
666 + sizeof(ngx_http_msie_refresh_tail) - 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
667
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
668 r->err_status = NGX_HTTP_OK;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
669
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
670 r->headers_out.content_type_len = sizeof("text/html") - 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
671 r->headers_out.content_type.len = sizeof("text/html") - 1;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
672 r->headers_out.content_type.data = (u_char *) "text/html";
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
673
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
674 r->headers_out.location->hash = 0;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
675 r->headers_out.location = NULL;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
676
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
677 r->headers_out.content_length_n = size;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
678
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
679 if (r->headers_out.content_length) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
680 r->headers_out.content_length->hash = 0;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
681 r->headers_out.content_length = NULL;
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
682 }
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
683
577
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 555
diff changeset
684 ngx_http_clear_accept_ranges(r);
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 555
diff changeset
685 ngx_http_clear_last_modified(r);
4d9ea73a627a nginx-0.3.10-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 555
diff changeset
686
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
687 rc = ngx_http_send_header(r);
142
cb77c084acdb nginx-0.0.1-2003-10-09-11:00:45 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
688
143
5526213be452 nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 142
diff changeset
689 if (rc == NGX_ERROR || r->header_only) {
5526213be452 nginx-0.0.1-2003-10-10-19:10:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 142
diff changeset
690 return rc;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
691 }
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
692
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
693 b = ngx_create_temp_buf(r->pool, size);
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
694 if (b == NULL) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
695 return NGX_ERROR;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
696 }
1592
128ea9efb824 server_tokens
Igor Sysoev <igor@sysoev.ru>
parents: 1370
diff changeset
697
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
698 p = ngx_cpymem(b->pos, ngx_http_msie_refresh_head,
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
699 sizeof(ngx_http_msie_refresh_head) - 1);
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
700
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
701 if (escape == 0) {
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
702 p = ngx_cpymem(p, location, len);
679
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
703
df95dcff753a nginx-0.3.61-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 677
diff changeset
704 } else {
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
705 p = (u_char *) ngx_escape_uri(p, location, len, NGX_ESCAPE_REFRESH);
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
706 }
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
707
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
708 b->last = ngx_cpymem(p, ngx_http_msie_refresh_tail,
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
709 sizeof(ngx_http_msie_refresh_tail) - 1);
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
710
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
711 b->last_buf = 1;
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
712 b->last_in_chain = 1;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 99
diff changeset
713
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
714 out.buf = b;
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
715 out.next = NULL;
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
716
1604
e27930ae2b8f divide special response handling into several functions
Igor Sysoev <igor@sysoev.ru>
parents: 1592
diff changeset
717 return ngx_http_output_filter(r, &out);
24
77c7629a2627 nginx-0.0.1-2002-12-10-21:05:12 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
718 }