mirror of
https://github.com/nginx/nginx.git
synced 2024-12-19 05:33:52 -06:00
introduce 494 code "Request Header Too Large"
This commit is contained in:
parent
6586e82108
commit
26cf2c96ea
@ -978,10 +978,13 @@ ngx_http_process_request_headers(ngx_event_t *rev)
|
||||
if (rv == NGX_DECLINED) {
|
||||
p = r->header_name_start;
|
||||
|
||||
r->lingering_close = 1;
|
||||
|
||||
if (p == NULL) {
|
||||
ngx_log_error(NGX_LOG_INFO, c->log, 0,
|
||||
"client sent too large request");
|
||||
ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
|
||||
ngx_http_finalize_request(r,
|
||||
NGX_HTTP_REQUEST_HEADER_TOO_LARGE);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -995,7 +998,9 @@ ngx_http_process_request_headers(ngx_event_t *rev)
|
||||
ngx_log_error(NGX_LOG_INFO, c->log, 0,
|
||||
"client sent too long header line: \"%*s\"",
|
||||
len, r->header_name_start);
|
||||
ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST);
|
||||
|
||||
ngx_http_finalize_request(r,
|
||||
NGX_HTTP_REQUEST_HEADER_TOO_LARGE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -95,7 +95,9 @@
|
||||
/* The special code to close connection without any response */
|
||||
#define NGX_HTTP_CLOSE 444
|
||||
|
||||
#define NGX_HTTP_NGINX_CODES 495
|
||||
#define NGX_HTTP_NGINX_CODES 494
|
||||
|
||||
#define NGX_HTTP_REQUEST_HEADER_TOO_LARGE 494
|
||||
|
||||
#define NGX_HTTPS_CERT_ERROR 495
|
||||
#define NGX_HTTPS_NO_CERT 496
|
||||
|
@ -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 */
|
||||
@ -440,6 +451,7 @@ ngx_http_special_response_handler(ngx_http_request_t *r, ngx_int_t 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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user