]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Merge PR#419: make sure the right method is displayed.
authorJean-Frederic Clere <jfclere@apache.org>
Wed, 20 Nov 2024 13:11:11 +0000 (13:11 +0000)
committerJean-Frederic Clere <jfclere@apache.org>
Wed, 20 Nov 2024 13:11:11 +0000 (13:11 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1921973 13f79535-47bb-0310-9956-ffa450edef68

modules/http/http_protocol.c
modules/http/http_request.c

index 6684f91b508b839aed5727451bc95c56c47f074c..75c4531bf0523d292de9e24f25e6ea4428edc0b2 100644 (file)
@@ -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));
index e77f0eda5f5cf7b03b58bead5b2708e90f476661..c46eefb0bdae3e6b8effeca173dee2fd1eae743d 100644 (file)
@@ -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! */