From 78309494d54a1490c8e125c3b012d5e4bf0db0ae Mon Sep 17 00:00:00 2001
From: Jim Jagielski
Date: Mon, 13 Jun 2016 13:00:34 +0000
Subject: [PATCH] Merge r1730723 from trunk:
Add 451... Needed to adjust RESPONSE_CODES which
was not in the provided patch
BUGZ# 58985
Reviewed/backported by: jim
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1748212 13f79535-47bb-0310-9956-ffa450edef68
---
STATUS | 5 -----
include/httpd.h | 3 ++-
modules/http/http_protocol.c | 28 +++++++++++++++++++++++++++-
3 files changed, 29 insertions(+), 7 deletions(-)
diff --git a/STATUS b/STATUS
index c39acba8aa..398a8fde46 100644
--- a/STATUS
+++ b/STATUS
@@ -114,11 +114,6 @@ RELEASE SHOWSTOPPERS:
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) http: Add 451 status code
- trunk patch: http://svn.apache.org/r1730723
- 2.4.x: trunk works
- +1: jailletc36, jim, trawick
-
*) mod_dav: Add dav_get_provider_name() function to obtain the name
of the provider from mod_dav.
trunk patch: http://svn.apache.org/r1747946
diff --git a/include/httpd.h b/include/httpd.h
index ba5167e3c0..72b8394527 100644
--- a/include/httpd.h
+++ b/include/httpd.h
@@ -481,7 +481,7 @@ AP_DECLARE(const char *) ap_get_server_built(void);
* When adding a new code here add it to status_lines as well.
* A future version should dynamically generate the apr_table_t at startup.
*/
-#define RESPONSE_CODES 83
+#define RESPONSE_CODES 103
#define HTTP_CONTINUE 100
#define HTTP_SWITCHING_PROTOCOLS 101
@@ -530,6 +530,7 @@ AP_DECLARE(const char *) ap_get_server_built(void);
#define HTTP_PRECONDITION_REQUIRED 428
#define HTTP_TOO_MANY_REQUESTS 429
#define HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE 431
+#define HTTP_UNAVAILABLE_FOR_LEGAL_REASONS 451
#define HTTP_INTERNAL_SERVER_ERROR 500
#define HTTP_NOT_IMPLEMENTED 501
#define HTTP_BAD_GATEWAY 502
diff --git a/modules/http/http_protocol.c b/modules/http/http_protocol.c
index 9aa0549b11..582d87e3b0 100644
--- a/modules/http/http_protocol.c
+++ b/modules/http/http_protocol.c
@@ -146,7 +146,27 @@ static const char * const status_lines[RESPONSE_CODES] =
"429 Too Many Requests",
NULL, /* 430 */
"431 Request Header Fields Too Large",
-#define LEVEL_500 71
+ NULL, /* 432 */
+ NULL, /* 433 */
+ NULL, /* 434 */
+ NULL, /* 435 */
+ NULL, /* 436 */
+ NULL, /* 437 */
+ NULL, /* 438 */
+ NULL, /* 439 */
+ NULL, /* 440 */
+ NULL, /* 441 */
+ NULL, /* 442 */
+ NULL, /* 443 */
+ NULL, /* 444 */
+ NULL, /* 445 */
+ NULL, /* 446 */
+ NULL, /* 447 */
+ NULL, /* 448 */
+ NULL, /* 449 */
+ NULL, /* 450 */
+ "451 Unavailable For Legal Reasons",
+#define LEVEL_500 91
"500 Internal Server Error",
"501 Not Implemented",
"502 Bad Gateway",
@@ -1298,6 +1318,12 @@ static const char *get_canned_error_string(int status,
"request as the requested host name does not match\n"
"the Server Name Indication (SNI) in use for this\n"
"connection.
\n");
+ case HTTP_UNAVAILABLE_FOR_LEGAL_REASONS:
+ s1 = apr_pstrcat(p,
+ "Access to ", ap_escape_html(r->pool, r->uri),
+ "\nhas been denied for legal reasons.
\n",
+ NULL);
+ return(add_optional_notes(r, s1, "error-notes", "
\n"));
default: /* HTTP_INTERNAL_SERVER_ERROR */
/*
* This comparison to expose error-notes could be modified to
--
2.40.0