Mercurial > hg > nginx-quic
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 } |