annotate src/http/ngx_http_special_response.c @ 196:8759b346e431 NGINX_0_3_45

nginx 0.3.45 *) Feature: the "ssl_verify_client", "ssl_verify_depth", and "ssl_client_certificate" directives. *) Change: the $request_method variable now returns the main request method. *) Change: the ° symbol codes were changed in koi-win conversion table. *) Feature: the euro и N symbols were added to koi-win conversion table. *) Bugfix: if nginx distributed the requests among several backends and some backend failed, then requests intended for this backend was directed to one live backend only instead of being distributed among the rest.
author Igor Sysoev <http://sysoev.ru>
date Sat, 06 May 2006 00:00:00 +0400
parents 54aabf2b0bc6
children dd6c66b5b0e2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
1
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
2 /*
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
3 * Copyright (C) Igor Sysoev
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
4 */
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
5
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
6
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
7 #include <ngx_config.h>
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
8 #include <ngx_core.h>
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
9 #include <ngx_http.h>
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
10 #include <nginx.h>
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
11
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
12
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
13 static u_char error_tail[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
14 "<hr><center>" NGINX_VER "</center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
15 "</body>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
16 "</html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
17 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
18
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
19
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
20 static u_char ngx_http_msie_stub[] =
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
21 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
22 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
23 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
24 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
25 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
26 "<!-- The padding to disable MSIE's friendly error page -->" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
27 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
28
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
29
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
30 static char error_301_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
31 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
32 "<head><title>301 Moved Permanently</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
33 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
34 "<center><h1>301 Moved Permanently</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
35 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
36
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
37
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
38 static char error_302_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
39 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
40 "<head><title>302 Found</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
41 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
42 "<center><h1>302 Found</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
43 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
44
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
45
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
46 static char error_400_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
47 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
48 "<head><title>400 Bad Request</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
49 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
50 "<center><h1>400 Bad Request</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
51 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
52
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
53
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
54 static char error_401_page[] =
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
55 "<html>" CRLF
52
0d75d65c642f nginx 0.1.26
Igor Sysoev <http://sysoev.ru>
parents: 50
diff changeset
56 "<head><title>401 Authorization Required</title></head>" CRLF
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
57 "<body bgcolor=\"white\">" CRLF
52
0d75d65c642f nginx 0.1.26
Igor Sysoev <http://sysoev.ru>
parents: 50
diff changeset
58 "<center><h1>401 Authorization Required</h1></center>" CRLF
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
59 ;
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
60
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
61
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
62 static char error_402_page[] =
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
63 "<html>" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
64 "<head><title>402 Payment Required</title></head>" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
65 "<body bgcolor=\"white\">" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
66 "<center><h1>402 Payment Required</h1></center>" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
67 ;
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
68
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
69
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
70 static char error_403_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
71 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
72 "<head><title>403 Forbidden</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
73 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
74 "<center><h1>403 Forbidden</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
75 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
76
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
77
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
78 static char error_404_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
79 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
80 "<head><title>404 Not Found</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
81 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
82 "<center><h1>404 Not Found</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
83 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
84
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
85
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
86 static char error_405_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
87 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
88 "<head><title>405 Not Allowed</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
89 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
90 "<center><h1>405 Not Allowed</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
91 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
92
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
93
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
94 static char error_406_page[] =
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
95 "<html>" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
96 "<head><title>406 Not Acceptable</title></head>" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
97 "<body bgcolor=\"white\">" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
98 "<center><h1>406 Not Acceptable</h1></center>" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
99 ;
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
100
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
101
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
102 static char error_408_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
103 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
104 "<head><title>408 Request Time-out</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
105 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
106 "<center><h1>408 Request Time-out</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
107 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
108
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
109
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
110 static char error_409_page[] =
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
111 "<html>" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
112 "<head><title>409 Conflict</title></head>" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
113 "<body bgcolor=\"white\">" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
114 "<center><h1>409 Conflict</h1></center>" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
115 ;
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
116
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
117
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
118 static char error_410_page[] =
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
119 "<html>" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
120 "<head><title>410 Gone</title></head>" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
121 "<body bgcolor=\"white\">" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
122 "<center><h1>410 Gone</h1></center>" CRLF
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
123 ;
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
124
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
125
130
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
126 static char error_411_page[] =
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
127 "<html>" CRLF
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
128 "<head><title>411 Length Required</title></head>" CRLF
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
129 "<body bgcolor=\"white\">" CRLF
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
130 "<center><h1>411 Length Required</h1></center>" CRLF
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
131 ;
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
132
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
133
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
134 static char error_413_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
135 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
136 "<head><title>413 Request Entity Too Large</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
137 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
138 "<center><h1>413 Request Entity Too Large</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
139 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
140
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
141
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
142 static char error_414_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
143 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
144 "<head><title>414 Request-URI Too Large</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
145 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
146 "<center><h1>414 Request-URI Too Large</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
147 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
148
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
149
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
150 static char error_415_page[] =
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
151 "<html>" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
152 "<head><title>415 Unsupported Media Type</title></head>" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
153 "<body bgcolor=\"white\">" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
154 "<center><h1>415 Unsupported Media Type</h1></center>" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
155 ;
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
156
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
157
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
158 static char error_416_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
159 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
160 "<head><title>416 Requested Range Not Satisfiable</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
161 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
162 "<center><h1>416 Requested Range Not Satisfiable</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
163 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
164
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
165
196
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
166 static char error_495_page[] =
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
167 "<html>" CRLF
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
168 "<head><title>400 The SSL certificate error</title></head>"
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
169 CRLF
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
170 "<body bgcolor=\"white\">" CRLF
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
171 "<center><h1>400 Bad Request</h1></center>" CRLF
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
172 "<center>The SSL certificate error</center>" CRLF
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
173 ;
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
174
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
175
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
176 static char error_496_page[] =
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
177 "<html>" CRLF
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
178 "<head><title>400 No required SSL certificate was sent</title></head>"
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
179 CRLF
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
180 "<body bgcolor=\"white\">" CRLF
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
181 "<center><h1>400 Bad Request</h1></center>" CRLF
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
182 "<center>No required SSL certificate was sent</center>" CRLF
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
183 ;
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
184
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
185
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
186 static char error_497_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
187 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
188 "<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>"
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
189 CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
190 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
191 "<center><h1>400 Bad Request</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
192 "<center>The plain HTTP request was sent to HTTPS port</center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
193 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
194
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
195
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
196 static char error_500_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
197 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
198 "<head><title>500 Internal Server Error</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
199 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
200 "<center><h1>500 Internal Server Error</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
201 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
202
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
203
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
204 static char error_501_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
205 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
206 "<head><title>501 Method Not Implemented</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
207 "<body bgcolor=\"white\">" CRLF
84
991c6e4c7654 nginx 0.1.42
Igor Sysoev <http://sysoev.ru>
parents: 76
diff changeset
208 "<center><h1>501 Method Not Implemented</h1></center>" CRLF
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
209 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
210
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
211
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
212 static char error_502_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
213 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
214 "<head><title>502 Bad Gateway</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
215 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
216 "<center><h1>502 Bad Gateway</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
217 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
218
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
219
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
220 static char error_503_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
221 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
222 "<head><title>503 Service Temporarily Unavailable</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
223 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
224 "<center><h1>503 Service Temporarily Unavailable</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
225 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
226
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
227
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
228 static char error_504_page[] =
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
229 "<html>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
230 "<head><title>504 Gateway Time-out</title></head>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
231 "<body bgcolor=\"white\">" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
232 "<center><h1>504 Gateway Time-out</h1></center>" CRLF
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
233 ;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
234
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
235
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
236 static char error_507_page[] =
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
237 "<html>" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
238 "<head><title>507 Insufficient Storage</title></head>" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
239 "<body bgcolor=\"white\">" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
240 "<center><h1>507 Insufficient Storage</h1></center>" CRLF
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
241 ;
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
242
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
243
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
244 static ngx_str_t error_pages[] = {
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
245
182
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 162
diff changeset
246 ngx_null_string, /* 201, 204 */
60
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
247
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
248 #define NGX_HTTP_LEVEL_200 1
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
249
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
250 /* ngx_null_string, */ /* 300 */
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
251 ngx_string(error_301_page),
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
252 ngx_string(error_302_page),
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
253 ngx_null_string, /* 303 */
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
254
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
255 #define NGX_HTTP_LEVEL_300 3
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
256
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
257 ngx_string(error_400_page),
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
258 ngx_string(error_401_page),
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
259 ngx_string(error_402_page),
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
260 ngx_string(error_403_page),
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
261 ngx_string(error_404_page),
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
262 ngx_string(error_405_page),
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
263 ngx_string(error_406_page),
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
264 ngx_null_string, /* 407 */
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
265 ngx_string(error_408_page),
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
266 ngx_string(error_409_page),
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
267 ngx_string(error_410_page),
130
82d695e3d662 nginx 0.3.12
Igor Sysoev <http://sysoev.ru>
parents: 126
diff changeset
268 ngx_string(error_411_page),
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
269 ngx_null_string, /* 412 */
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
270 ngx_string(error_413_page),
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
271 ngx_string(error_414_page),
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
272 ngx_string(error_415_page),
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
273 ngx_string(error_416_page),
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
274
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
275 #define NGX_HTTP_LEVEL_400 17
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
276
196
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
277 ngx_string(error_495_page), /* 495, https certificate error */
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
278 ngx_string(error_496_page), /* 496, https no certificate */
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
279 ngx_string(error_497_page), /* 497, http to https */
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
280 ngx_string(error_404_page), /* 498, invalid host name */
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
281 ngx_null_string, /* 499, client had closed connection */
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
282
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
283 ngx_string(error_500_page),
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
284 ngx_string(error_501_page),
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
285 ngx_string(error_502_page),
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
286 ngx_string(error_503_page),
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
287 ngx_string(error_504_page),
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
288 ngx_null_string, /* 505 */
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
289 ngx_null_string, /* 506 */
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
290 ngx_string(error_507_page)
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
291 };
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
292
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
293
36
a39d1b793287 nginx 0.1.18
Igor Sysoev <http://sysoev.ru>
parents: 26
diff changeset
294 ngx_int_t
a39d1b793287 nginx 0.1.18
Igor Sysoev <http://sysoev.ru>
parents: 26
diff changeset
295 ngx_http_special_response_handler(ngx_http_request_t *r, ngx_int_t error)
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
296 {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
297 ngx_int_t rc;
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
298 ngx_uint_t i, err, msie_padding;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
299 ngx_buf_t *b;
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
300 ngx_chain_t *out, *cl;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
301 ngx_http_err_page_t *err_page;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
302 ngx_http_core_loc_conf_t *clcf;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
303
76
da9a3b14312d nginx 0.1.38
Igor Sysoev <http://sysoev.ru>
parents: 62
diff changeset
304 ngx_log_debug2(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
da9a3b14312d nginx 0.1.38
Igor Sysoev <http://sysoev.ru>
parents: 62
diff changeset
305 "http special response: %d, \"%V\"", error, &r->uri);
da9a3b14312d nginx 0.1.38
Igor Sysoev <http://sysoev.ru>
parents: 62
diff changeset
306
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
307 rc = ngx_http_discard_body(r);
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
308
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
309 if (rc == NGX_HTTP_INTERNAL_SERVER_ERROR) {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
310 error = NGX_HTTP_INTERNAL_SERVER_ERROR;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
311 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
312
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
313 r->headers_out.status = error;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
314
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
315 if (r->keepalive != 0) {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
316 switch (error) {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
317 case NGX_HTTP_BAD_REQUEST:
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
318 case NGX_HTTP_REQUEST_ENTITY_TOO_LARGE:
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
319 case NGX_HTTP_REQUEST_URI_TOO_LARGE:
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
320 case NGX_HTTP_TO_HTTPS:
196
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
321 case NGX_HTTPS_CERT_ERROR:
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
322 case NGX_HTTPS_NO_CERT:
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
323 case NGX_HTTP_INTERNAL_SERVER_ERROR:
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
324 r->keepalive = 0;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
325 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
326 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
327
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
328 if (r->lingering_close == 1) {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
329 switch (error) {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
330 case NGX_HTTP_BAD_REQUEST:
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
331 case NGX_HTTP_TO_HTTPS:
196
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
332 case NGX_HTTPS_CERT_ERROR:
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
333 case NGX_HTTPS_NO_CERT:
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
334 r->lingering_close = 0;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
335 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
336 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
337
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
338 clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
339
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
340 if (r->err_ctx == NULL && clcf->error_pages) {
26
45fe5b98a9de nginx 0.1.13
Igor Sysoev <http://sysoev.ru>
parents: 0
diff changeset
341
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
342 err_page = clcf->error_pages->elts;
26
45fe5b98a9de nginx 0.1.13
Igor Sysoev <http://sysoev.ru>
parents: 0
diff changeset
343
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
344 for (i = 0; i < clcf->error_pages->nelts; i++) {
26
45fe5b98a9de nginx 0.1.13
Igor Sysoev <http://sysoev.ru>
parents: 0
diff changeset
345
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
346 if (err_page[i].status == error) {
104
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
347 r->err_status = err_page[i].overwrite;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
348 r->err_ctx = r->ctx;
26
45fe5b98a9de nginx 0.1.13
Igor Sysoev <http://sysoev.ru>
parents: 0
diff changeset
349
88
e916a291e9aa nginx 0.1.44
Igor Sysoev <http://sysoev.ru>
parents: 84
diff changeset
350 r->method = NGX_HTTP_GET;
e916a291e9aa nginx 0.1.44
Igor Sysoev <http://sysoev.ru>
parents: 84
diff changeset
351
104
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
352 if (err_page[i].uri.data[0] == '/') {
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
353 return ngx_http_internal_redirect(r, &err_page[i].uri,
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
354 NULL);
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
355 }
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
356
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
357 r->headers_out.location =
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
358 ngx_list_push(&r->headers_out.headers);
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
359
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
360 if (r->headers_out.location) {
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
361 r->err_status = NGX_HTTP_MOVED_TEMPORARILY;
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
362 error = NGX_HTTP_MOVED_TEMPORARILY;
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
363
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
364 r->headers_out.location->hash = 1;
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
365 r->headers_out.location->key.len = sizeof("Location") - 1;
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
366 r->headers_out.location->key.data = (u_char *) "Location";
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
367 r->headers_out.location->value = err_page[i].uri;
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
368
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
369 } else {
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
370 error = NGX_HTTP_INTERNAL_SERVER_ERROR;
146eff53ab60 nginx 0.2.6
Igor Sysoev <http://sysoev.ru>
parents: 102
diff changeset
371 }
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
372 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
373 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
374 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
375
182
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 162
diff changeset
376 if (error == NGX_HTTP_CREATED) {
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 162
diff changeset
377 /* 201 */
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 162
diff changeset
378 err = 0;
186
54aabf2b0bc6 nginx 0.3.40
Igor Sysoev <http://sysoev.ru>
parents: 182
diff changeset
379 r->header_only = 1;
182
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 162
diff changeset
380
13710a1813ad nginx 0.3.38
Igor Sysoev <http://sysoev.ru>
parents: 162
diff changeset
381 } else if (error == NGX_HTTP_NO_CONTENT) {
60
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
382 /* 204 */
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
383 err = 0;
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
384
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
385 } else if (error < NGX_HTTP_BAD_REQUEST) {
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
386 /* 3XX */
62
0790a8599248 nginx 0.1.31
Igor Sysoev <http://sysoev.ru>
parents: 60
diff changeset
387 err = error - NGX_HTTP_MOVED_PERMANENTLY + NGX_HTTP_LEVEL_200;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
388
136
3656228c0b56 nginx 0.3.15
Igor Sysoev <http://sysoev.ru>
parents: 130
diff changeset
389 } else if (error < NGX_HTTP_OWN_CODES) {
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
390 /* 4XX */
60
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
391 err = error - NGX_HTTP_BAD_REQUEST + NGX_HTTP_LEVEL_200
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
392 + NGX_HTTP_LEVEL_300;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
393
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
394 } else {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
395 /* 49X, 5XX */
136
3656228c0b56 nginx 0.3.15
Igor Sysoev <http://sysoev.ru>
parents: 130
diff changeset
396 err = error - NGX_HTTP_OWN_CODES + NGX_HTTP_LEVEL_200
60
df7d3fff122b nginx 0.1.30
Igor Sysoev <http://sysoev.ru>
parents: 58
diff changeset
397 + NGX_HTTP_LEVEL_300
48
6cfc63e68377 nginx 0.1.24
Igor Sysoev <http://sysoev.ru>
parents: 36
diff changeset
398 + NGX_HTTP_LEVEL_400;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
399 switch (error) {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
400 case NGX_HTTP_TO_HTTPS:
196
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
401 case NGX_HTTPS_CERT_ERROR:
8759b346e431 nginx 0.3.45
Igor Sysoev <http://sysoev.ru>
parents: 186
diff changeset
402 case NGX_HTTPS_NO_CERT:
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
403 r->headers_out.status = NGX_HTTP_BAD_REQUEST;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
404 error = NGX_HTTP_BAD_REQUEST;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
405 break;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
406 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
407 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
408
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
409 msie_padding = 0;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
410
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
411 if (error_pages[err].len) {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
412 r->headers_out.content_length_n = error_pages[err].len
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
413 + sizeof(error_tail) - 1;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
414
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
415 if (clcf->msie_padding
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
416 && r->headers_in.msie
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
417 && r->http_version >= NGX_HTTP_VERSION_10
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
418 && error >= NGX_HTTP_BAD_REQUEST
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
419 && error != NGX_HTTP_REQUEST_URI_TOO_LARGE)
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
420 {
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
421 r->headers_out.content_length_n += sizeof(ngx_http_msie_stub) - 1;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
422 msie_padding = 1;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
423 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
424
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 52
diff changeset
425 r->headers_out.content_type.len = sizeof("text/html") - 1;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 52
diff changeset
426 r->headers_out.content_type.data = (u_char *) "text/html";
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
427
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
428 } else {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
429 r->headers_out.content_length_n = -1;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
430 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
431
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
432 if (r->headers_out.content_length) {
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 52
diff changeset
433 r->headers_out.content_length->hash = 0;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
434 r->headers_out.content_length = NULL;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
435 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
436
126
df17fbafec8f nginx 0.3.10
Igor Sysoev <http://sysoev.ru>
parents: 104
diff changeset
437 ngx_http_clear_accept_ranges(r);
df17fbafec8f nginx 0.3.10
Igor Sysoev <http://sysoev.ru>
parents: 104
diff changeset
438 ngx_http_clear_last_modified(r);
df17fbafec8f nginx 0.3.10
Igor Sysoev <http://sysoev.ru>
parents: 104
diff changeset
439
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
440 rc = ngx_http_send_header(r);
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
441
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
442 if (rc == NGX_ERROR || r->header_only) {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
443 return rc;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
444 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
445
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
446 if (error_pages[err].len == 0) {
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
447 return NGX_OK;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
448 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
449
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
450
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
451 b = ngx_calloc_buf(r->pool);
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
452 if (b == NULL) {
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
453 return NGX_ERROR;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
454 }
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
455
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
456 b->memory = 1;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
457 b->pos = error_pages[err].data;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
458 b->last = error_pages[err].data + error_pages[err].len;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
459
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
460 cl = ngx_alloc_chain_link(r->pool);
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
461 if (cl == NULL) {
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
462 return NGX_ERROR;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
463 }
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
464
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
465 cl->buf = b;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
466 out = cl;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
467
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
468
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
469 b = ngx_calloc_buf(r->pool);
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
470 if (b == NULL) {
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
471 return NGX_ERROR;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
472 }
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
473
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
474 b->memory = 1;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
475 b->pos = error_tail;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
476 b->last = error_tail + sizeof(error_tail) - 1;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
477
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
478 cl->next = ngx_alloc_chain_link(r->pool);
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
479 if (cl->next == NULL) {
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
480 return NGX_ERROR;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
481 }
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
482
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
483 cl = cl->next;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
484 cl->buf = b;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
485
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
486 if (msie_padding) {
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
487 b = ngx_calloc_buf(r->pool);
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
488 if (b == NULL) {
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
489 return NGX_ERROR;
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
490 }
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
491
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
492 b->memory = 1;
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
493 b->pos = ngx_http_msie_stub;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
494 b->last = ngx_http_msie_stub + sizeof(ngx_http_msie_stub) - 1;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
495
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
496 cl->next = ngx_alloc_chain_link(r->pool);
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
497 if (cl->next == NULL) {
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
498 return NGX_ERROR;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
499 }
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
500
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
501 cl = cl->next;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
502 cl->buf = b;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
503 }
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
504
146
36af50a5582d nginx 0.3.20
Igor Sysoev <http://sysoev.ru>
parents: 136
diff changeset
505 if (r == r->main) {
58
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 52
diff changeset
506 b->last_buf = 1;
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 52
diff changeset
507 }
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 52
diff changeset
508
b55cbf18157e nginx 0.1.29
Igor Sysoev <http://sysoev.ru>
parents: 52
diff changeset
509 b->last_in_chain = 1;
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
510
50
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
511 cl->next = NULL;
72eb30262aac nginx 0.1.25
Igor Sysoev <http://sysoev.ru>
parents: 48
diff changeset
512
0
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
513 return ngx_http_output_filter(r, out);
f0b350454894 nginx 0.1.0
Igor Sysoev <http://sysoev.ru>
parents:
diff changeset
514 }