Welcome! Log In Create A New Profile

Advanced

[PATCH 03 of 13] Request body: fixed "501 Not Implemented" error handling

Maxim Dounin
November 16, 2012 06:06AM
# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1352393278 -14400
# Node ID 72ea28f498c7638656676c32e17abcf695b1ff32
# Parent 52c683ed3d912230d21e3c058517ed3b3acdaee7
Request body: fixed "501 Not Implemented" error handling.

It is not about "Method" but a generic message, and is expected to be used
e.g. if specified Transfer-Encoding is not supported. Fixed message to
match RFC 2616.

Additionally, disable keepalive on such errors as we won't be able to read
request body correctly if we don't understand Transfer-Encoding used.

diff --git a/src/http/ngx_http_header_filter_module.c b/src/http/ngx_http_header_filter_module.c
--- a/src/http/ngx_http_header_filter_module.c
+++ b/src/http/ngx_http_header_filter_module.c
@@ -112,7 +112,7 @@ static ngx_str_t ngx_http_status_lines[]
#define NGX_HTTP_OFF_5XX (NGX_HTTP_LAST_4XX - 400 + NGX_HTTP_OFF_4XX)

ngx_string("500 Internal Server Error"),
- ngx_string("501 Method Not Implemented"),
+ ngx_string("501 Not Implemented"),
ngx_string("502 Bad Gateway"),
ngx_string("503 Service Temporarily Unavailable"),
ngx_string("504 Gateway Time-out"),
diff --git a/src/http/ngx_http_special_response.c b/src/http/ngx_http_special_response.c
--- a/src/http/ngx_http_special_response.c
+++ b/src/http/ngx_http_special_response.c
@@ -260,9 +260,9 @@ static char ngx_http_error_500_page[] =

static char ngx_http_error_501_page[] =
"<html>" CRLF
-"<head><title>501 Method Not Implemented</title></head>" CRLF
+"<head><title>501 Not Implemented</title></head>" CRLF
"<body bgcolor=\"white\">" CRLF
-"<center><h1>501 Method Not Implemented</h1></center>" CRLF
+"<center><h1>501 Not Implemented</h1></center>" CRLF
;


@@ -384,6 +384,7 @@ ngx_http_special_response_handler(ngx_ht
case NGX_HTTPS_CERT_ERROR:
case NGX_HTTPS_NO_CERT:
case NGX_HTTP_INTERNAL_SERVER_ERROR:
+ case NGX_HTTP_NOT_IMPLEMENTED:
r->keepalive = 0;
}
}

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[PATCH 00 of 13] chunked request body support

Maxim Dounin 1081 November 16, 2012 06:06AM

[PATCH 01 of 13] Dav: fixed segfault on PUT if body was already read (ticket #238)

Maxim Dounin 524 November 16, 2012 06:06AM

[PATCH 02 of 13] Core: added debug logging of writev() in ngx_write_chain_to_file()

Maxim Dounin 561 November 16, 2012 06:06AM

[PATCH 03 of 13] Request body: fixed "501 Not Implemented" error handling

Maxim Dounin 2185 November 16, 2012 06:06AM

[PATCH 04 of 13] Request body: $request_body variable generalization

Maxim Dounin 581 November 16, 2012 06:06AM

[PATCH 05 of 13] Request body: code duplication reduced, no functional changes

Maxim Dounin 558 November 16, 2012 06:06AM

[PATCH 06 of 13] Request body: fixed socket leak on errors

Maxim Dounin 560 November 16, 2012 06:06AM

[PATCH 07 of 13] Request body: properly handle events while discarding body

Maxim Dounin 525 November 16, 2012 06:06AM

[PATCH 08 of 13] Request body: chunked parsing moved to ngx_http_parse.c from proxy

Maxim Dounin 548 November 16, 2012 06:06AM

[PATCH 09 of 13] Request body: adjust b->pos when chunked parsing done

Maxim Dounin 535 November 16, 2012 06:06AM

[PATCH 10 of 13] Request body: always use calculated size of a request body in proxy

Maxim Dounin 515 November 16, 2012 06:06AM

[PATCH 11 of 13] Request body: $content_length variable to honor real body size

Maxim Dounin 621 November 16, 2012 06:06AM

[PATCH 12 of 13] Request body: recalculate size of a request body in scgi module

Maxim Dounin 657 November 16, 2012 06:08AM

[PATCH 13 of 13] Request body: chunked transfer encoding support

Maxim Dounin 875 November 16, 2012 06:08AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 259
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready