Mercurial > hg > nginx-ranges
diff src/http/ngx_http_special_response.c @ 625:ce857f6b74a7 NGINX_0_9_4
nginx 0.9.4
*) Feature: the "server_name" directive supports the $hostname variable.
*) Feature: 494 code for "Request Header Too Large" error.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Fri, 21 Jan 2011 00:00:00 +0300 |
parents | c5122335e41d |
children | bb20316269e4 |
line wrap: on
line diff
--- a/src/http/ngx_http_special_response.c +++ b/src/http/ngx_http_special_response.c @@ -201,6 +201,16 @@ static char ngx_http_error_416_page[] = ; +static char ngx_http_error_494_page[] = +"<html>" CRLF +"<head><title>400 Request Header Or Cookie Too Large</title></head>" +CRLF +"<body bgcolor=\"white\">" CRLF +"<center><h1>400 Bad Request</h1></center>" CRLF +"<center>Request Header Or Cookie Too Large</center>" CRLF +; + + static char ngx_http_error_495_page[] = "<html>" CRLF "<head><title>400 The SSL certificate error</title></head>" @@ -315,6 +325,7 @@ static ngx_str_t ngx_http_error_pages[] #define NGX_HTTP_LAST_LEVEL_400 417 #define NGX_HTTP_LEVEL_400 (NGX_HTTP_LAST_LEVEL_400 - 400) + ngx_string(ngx_http_error_494_page), /* 494, request header too large */ ngx_string(ngx_http_error_495_page), /* 495, https certificate error */ ngx_string(ngx_http_error_496_page), /* 496, https no certificate */ ngx_string(ngx_http_error_497_page), /* 497, http to https */ @@ -429,17 +440,18 @@ ngx_http_special_response_handler(ngx_ht err = error - NGX_HTTP_BAD_REQUEST + NGX_HTTP_LEVEL_200 + NGX_HTTP_LEVEL_300; - } else if (error >= NGX_HTTP_OWN_CODES + } else if (error >= NGX_HTTP_NGINX_CODES && error < NGX_HTTP_LAST_LEVEL_500) { /* 49X, 5XX */ - err = error - NGX_HTTP_OWN_CODES + NGX_HTTP_LEVEL_200 - + NGX_HTTP_LEVEL_300 - + NGX_HTTP_LEVEL_400; + err = error - NGX_HTTP_NGINX_CODES + NGX_HTTP_LEVEL_200 + + NGX_HTTP_LEVEL_300 + + NGX_HTTP_LEVEL_400; switch (error) { case NGX_HTTP_TO_HTTPS: case NGX_HTTPS_CERT_ERROR: case NGX_HTTPS_NO_CERT: + case NGX_HTTP_REQUEST_HEADER_TOO_LARGE: r->err_status = NGX_HTTP_BAD_REQUEST; break; }