comparison src/http/ngx_http_special_response.c @ 69:e43f406e4525

nginx-0.0.1-2003-03-20-19:09:44 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 20 Mar 2003 16:09:44 +0000
parents d549fdc17d7e
children 59229033ae93
comparison
equal deleted inserted replaced
68:d549fdc17d7e 69:e43f406e4525
37 "<body bgcolor=\"white\">" CRLF 37 "<body bgcolor=\"white\">" CRLF
38 "<center><h1>404 Not Found</h1></center>" CRLF 38 "<center><h1>404 Not Found</h1></center>" CRLF
39 ; 39 ;
40 40
41 41
42 static char error_408_page[] =
43 "<html>" CRLF
44 "<head><title>408 Request Time-out</title></head>" CRLF
45 "<body bgcolor=\"white\">" CRLF
46 "<center><h1>408 Request Time-out</h1></center>" CRLF
47 ;
48
49
42 static char error_414_page[] = 50 static char error_414_page[] =
43 "<html>" CRLF 51 "<html>" CRLF
44 "<head><title>414 Request-URI Too Large</title></head>" CRLF 52 "<head><title>414 Request-URI Too Large</title></head>" CRLF
45 "<body bgcolor=\"white\">" CRLF 53 "<body bgcolor=\"white\">" CRLF
46 "<center><h1>414 Request-URI Too Large</h1></center>" CRLF 54 "<center><h1>414 Request-URI Too Large</h1></center>" CRLF
53 "<body bgcolor=\"white\">" CRLF 61 "<body bgcolor=\"white\">" CRLF
54 "<center><h1>500 Internal Server Error</h1></center>" CRLF 62 "<center><h1>500 Internal Server Error</h1></center>" CRLF
55 ; 63 ;
56 64
57 65
66 static char error_502_page[] =
67 "<html>" CRLF
68 "<head><title>502 Bad Gateway</title></head>" CRLF
69 "<body bgcolor=\"white\">" CRLF
70 "<center><h1>502 Bad Gateway</h1></center>" CRLF
71 ;
72
73
74 static char error_504_page[] =
75 "<html>" CRLF
76 "<head><title>504 Gateway Time-out</title></head>" CRLF
77 "<body bgcolor=\"white\">" CRLF
78 "<center><h1>504 Gateway Time-out</h1></center>" CRLF
79 ;
80
81
58 static ngx_str_t error_pages[] = { 82 static ngx_str_t error_pages[] = {
59 { 0, NULL}, /* 301 */ 83 ngx_null_string, /* 301 */
60 { 0, NULL}, /* 302 */ 84 ngx_null_string, /* 302 */
61 { 0, NULL}, /* 303 */ 85 ngx_null_string, /* 303 */
62 { 0, NULL}, /* 304 */
63 86
64 { sizeof(error_400_page) - 1, error_400_page }, 87 ngx_string(error_400_page),
65 { 0, NULL}, /* 401 */ 88 ngx_null_string, /* 401 */
66 { 0, NULL}, /* 402 */ 89 ngx_null_string, /* 402 */
67 { sizeof(error_403_page) - 1, error_403_page }, 90 ngx_string(error_403_page),
68 { sizeof(error_404_page) - 1, error_404_page }, 91 ngx_string(error_404_page),
69 { 0, NULL}, /* 405 */ 92 ngx_null_string, /* 405 */
70 { 0, NULL}, /* 406 */ 93 ngx_null_string, /* 406 */
71 { 0, NULL}, /* 407 */ 94 ngx_null_string, /* 407 */
72 { 0, NULL}, /* 408 */ 95 ngx_string(error_408_page),
73 { 0, NULL}, /* 409 */ 96 ngx_null_string, /* 409 */
74 { 0, NULL}, /* 410 */ 97 ngx_null_string, /* 410 */
75 { 0, NULL}, /* 411 */ 98 ngx_null_string, /* 411 */
76 { 0, NULL}, /* 412 */ 99 ngx_null_string, /* 412 */
77 { 0, NULL}, /* 413 */ 100 ngx_null_string, /* 413 */
78 { sizeof(error_414_page) - 1, error_414_page }, 101 ngx_string(error_414_page),
79 { 0, NULL}, /* 415 */ 102 ngx_null_string, /* 415 */
80 { 0, NULL}, /* 416 */ 103 ngx_null_string, /* 416 */
81 104
82 { sizeof(error_500_page) - 1, error_500_page } 105 ngx_string(error_500_page),
106 ngx_null_string, /* 501 */
107 ngx_string(error_502_page),
108 ngx_null_string, /* 503 */
109 ngx_string(error_504_page)
83 }; 110 };
84 111
85 112
86 int ngx_http_special_response(ngx_http_request_t *r, int error) 113 int ngx_http_special_response_handler(ngx_http_request_t *r, int error)
87 { 114 {
88 int err, len; 115 int err, len;
89 ngx_hunk_t *message, *tail; 116 ngx_hunk_t *message, *tail;
90 117
91 len = 0; 118 len = 0;
94 121
95 if (error < NGX_HTTP_BAD_REQUEST) { 122 if (error < NGX_HTTP_BAD_REQUEST) {
96 err = error - NGX_HTTP_MOVED_PERMANENTLY; 123 err = error - NGX_HTTP_MOVED_PERMANENTLY;
97 124
98 } else if (error < NGX_HTTP_INTERNAL_SERVER_ERROR) { 125 } else if (error < NGX_HTTP_INTERNAL_SERVER_ERROR) {
99 err = error - NGX_HTTP_BAD_REQUEST + 4; 126 err = error - NGX_HTTP_BAD_REQUEST + 3;
100 127
101 } else { 128 } else {
102 err = error - NGX_HTTP_INTERNAL_SERVER_ERROR + 4 + 17; 129 err = error - NGX_HTTP_INTERNAL_SERVER_ERROR + 3 + 17;
103 } 130 }
104 131
105 if (r->keepalive != 0) { 132 if (r->keepalive != 0) {
106 switch (error) { 133 switch (error) {
107 case NGX_HTTP_BAD_REQUEST: 134 case NGX_HTTP_BAD_REQUEST: