comparison src/http/ngx_http_special_response.c @ 67:5a7d1aaa1618

nginx-0.0.1-2003-03-11-23:38:13 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 11 Mar 2003 20:38:13 +0000
parents e8cdc2989cee
children d549fdc17d7e
comparison
equal deleted inserted replaced
66:4876cd4a36bb 67:5a7d1aaa1618
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_414_page[] =
43 "<html>" CRLF
44 "<head><title>414 Request-URI Too Large</title></head>" CRLF
45 "<body bgcolor=\"white\">" CRLF
46 "<center><h1>414 Request-URI Too Large</h1></center>" CRLF
47 ;
48
49
42 static char error_500_page[] = 50 static char error_500_page[] =
43 "<html>" CRLF 51 "<html>" CRLF
44 "<head><title>500 Internal Server Error</title></head>" CRLF 52 "<head><title>500 Internal Server Error</title></head>" CRLF
45 "<body bgcolor=\"white\">" CRLF 53 "<body bgcolor=\"white\">" CRLF
46 "<center><h1>500 Internal Server Error</h1></center>" CRLF 54 "<center><h1>500 Internal Server Error</h1></center>" CRLF
56 { sizeof(error_400_page) - 1, error_400_page }, 64 { sizeof(error_400_page) - 1, error_400_page },
57 { 0, NULL}, /* 401 */ 65 { 0, NULL}, /* 401 */
58 { 0, NULL}, /* 402 */ 66 { 0, NULL}, /* 402 */
59 { sizeof(error_403_page) - 1, error_403_page }, 67 { sizeof(error_403_page) - 1, error_403_page },
60 { sizeof(error_404_page) - 1, error_404_page }, 68 { sizeof(error_404_page) - 1, error_404_page },
69 { 0, NULL}, /* 405 */
70 { 0, NULL}, /* 406 */
71 { 0, NULL}, /* 407 */
72 { 0, NULL}, /* 408 */
73 { 0, NULL}, /* 409 */
74 { 0, NULL}, /* 410 */
75 { 0, NULL}, /* 411 */
76 { 0, NULL}, /* 412 */
77 { 0, NULL}, /* 413 */
78 { sizeof(error_414_page) - 1, error_414_page },
61 79
62 { sizeof(error_500_page) - 1, error_500_page } 80 { sizeof(error_500_page) - 1, error_500_page }
63 }; 81 };
64 82
65 83
77 95
78 else if (error < NGX_HTTP_INTERNAL_SERVER_ERROR) 96 else if (error < NGX_HTTP_INTERNAL_SERVER_ERROR)
79 err = error - NGX_HTTP_BAD_REQUEST + 4; 97 err = error - NGX_HTTP_BAD_REQUEST + 4;
80 98
81 else 99 else
82 err = error - NGX_HTTP_INTERNAL_SERVER_ERROR + 4 + 5; 100 err = error - NGX_HTTP_INTERNAL_SERVER_ERROR + 4 + 15;
83 101
84 if (error_pages[err].len == 0) 102 if (error_pages[err].len == 0)
85 r->headers_out.content_length = -1; 103 r->headers_out.content_length = -1;
86 else 104 else
87 r->headers_out.content_length = error_pages[err].len 105 r->headers_out.content_length = error_pages[err].len
95 return NGX_OK; 113 return NGX_OK;
96 } 114 }
97 115
98 ngx_test_null(message, ngx_pcalloc(r->pool, sizeof(ngx_hunk_t)), NGX_ERROR); 116 ngx_test_null(message, ngx_pcalloc(r->pool, sizeof(ngx_hunk_t)), NGX_ERROR);
99 117
100 message->type = NGX_HUNK_MEMORY; 118 message->type = NGX_HUNK_MEMORY|NGX_HUNK_IN_MEMORY;
101 message->pos.mem = error_pages[err].data; 119 message->pos = error_pages[err].data;
102 message->last.mem = error_pages[err].data + error_pages[err].len; 120 message->last = error_pages[err].data + error_pages[err].len;
103 121
104 if (ngx_http_output_filter(r, message) == NGX_ERROR) { 122 if (ngx_http_output_filter(r, message) == NGX_ERROR) {
105 return NGX_ERROR; 123 return NGX_ERROR;
106 } 124 }
107 125
108 ngx_test_null(tail, ngx_pcalloc(r->pool, sizeof(ngx_hunk_t)), NGX_ERROR); 126 ngx_test_null(tail, ngx_pcalloc(r->pool, sizeof(ngx_hunk_t)), NGX_ERROR);
109 127
110 tail->type = NGX_HUNK_MEMORY|NGX_HUNK_LAST; 128 tail->type = NGX_HUNK_MEMORY|NGX_HUNK_LAST|NGX_HUNK_IN_MEMORY;
111 tail->pos.mem = error_tail; 129 tail->pos = error_tail;
112 tail->last.mem = error_tail + sizeof(error_tail); 130 tail->last = error_tail + sizeof(error_tail);
113 131
114 return ngx_http_output_filter(r, tail); 132 return ngx_http_output_filter(r, tail);
115 } 133 }