summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorJean-Frederic Clere <jfclere@apache.org>2024-11-20 14:11:11 +0100
committerJean-Frederic Clere <jfclere@apache.org>2024-11-20 14:11:11 +0100
commitd21b4c41f6b4d28e21673a06b8605fc6501d9fbc (patch)
tree1f2c975ad59482f3f4be945a738efa0fa6d5df8e /modules
parent* modules/aaa/mod_authnz_ldap.c (create_authnz_ldap_dir_config): Fix allocation (diff)
downloadapache2-d21b4c41f6b4d28e21673a06b8605fc6501d9fbc.tar.xz
apache2-d21b4c41f6b4d28e21673a06b8605fc6501d9fbc.zip
Merge PR#419: make sure the right method is displayed.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1921973 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules')
-rw-r--r--modules/http/http_protocol.c11
-rw-r--r--modules/http/http_request.c1
2 files changed, 8 insertions, 4 deletions
diff --git a/modules/http/http_protocol.c b/modules/http/http_protocol.c
index 6684f91b50..75c4531bf0 100644
--- a/modules/http/http_protocol.c
+++ b/modules/http/http_protocol.c
@@ -969,6 +969,9 @@ static const char *get_canned_error_string(int status,
{
apr_pool_t *p = r->pool;
const char *error_notes, *h1, *s1;
+ const char *method = r->method;
+ if (r->subprocess_env && apr_table_get(r->subprocess_env, "REQUEST_METHOD"))
+ method = apr_table_get(r->subprocess_env, "REQUEST_METHOD");
switch (status) {
case HTTP_MOVED_PERMANENTLY:
@@ -1013,7 +1016,7 @@ static const char *get_canned_error_string(int status,
case HTTP_METHOD_NOT_ALLOWED:
return(apr_pstrcat(p,
"<p>The requested method ",
- ap_escape_html(r->pool, r->method),
+ ap_escape_html(r->pool, method),
" is not allowed for this URL.</p>\n",
NULL));
case HTTP_NOT_ACCEPTABLE:
@@ -1026,7 +1029,7 @@ static const char *get_canned_error_string(int status,
case HTTP_LENGTH_REQUIRED:
s1 = apr_pstrcat(p,
"<p>A request of the requested method ",
- ap_escape_html(r->pool, r->method),
+ ap_escape_html(r->pool, method),
" requires a valid Content-length.<br />\n",
NULL);
return(add_optional_notes(r, s1, "error-notes", "</p>\n"));
@@ -1036,7 +1039,7 @@ static const char *get_canned_error_string(int status,
case HTTP_NOT_IMPLEMENTED:
s1 = apr_pstrcat(p,
"<p>",
- ap_escape_html(r->pool, r->method),
+ ap_escape_html(r->pool, method),
" not supported for current URL.<br />\n",
NULL);
return(add_optional_notes(r, s1, "error-notes", "</p>\n"));
@@ -1058,7 +1061,7 @@ static const char *get_canned_error_string(int status,
case HTTP_REQUEST_ENTITY_TOO_LARGE:
return(apr_pstrcat(p,
"The requested resource does not allow request data with ",
- ap_escape_html(r->pool, r->method),
+ ap_escape_html(r->pool, method),
" requests, or the amount of data provided in\n"
"the request exceeds the capacity limit.\n",
NULL));
diff --git a/modules/http/http_request.c b/modules/http/http_request.c
index e77f0eda5f..c46eefb0bd 100644
--- a/modules/http/http_request.c
+++ b/modules/http/http_request.c
@@ -127,6 +127,7 @@ static void ap_die_r(int type, request_rec *r, int recursive_error)
*/
update_r_in_filters(r_1st_err->proto_output_filters, r, r_1st_err);
update_r_in_filters(r_1st_err->input_filters, r, r_1st_err);
+ recursive_error = type;
}
custom_response = NULL; /* Do NOT retry the custom thing! */