Commit 26a36651 authored by Eric Covener's avatar Eric Covener
Browse files

allow ap_invoke_handler() to pass-through AP_FILTER_ERROR as if it were

a reserved status code (OK/DECLINED/SUSPENDED). Prevents ap_die() from
seeing a 500 error when the http header filter has already taken
care of the proper error response



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@721679 13f79535-47bb-0310-9956-ffa450edef68
parent 70d373cf
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -2,6 +2,11 @@
Changes with Apache 2.3.0
[ When backported to 2.2.x, remove entry from this file ]

  *) core: Error responses set by filters were being coerced into 500 errors,
     sometimes appended to the original error response. Log entry of:
     'Handler for (null) returned invalid result code -3' 
     [Eric Covener]

  *) mod_buffer: Honour the flush bucket and flush the buffer in the
     input filter. Make sure that metadata buckets are written to
     the buffer, not to the final brigade. [Graham Leggett]
+1 −0
Original line number Diff line number Diff line
@@ -382,6 +382,7 @@ AP_CORE_DECLARE(int) ap_invoke_handler(request_rec *r)
            "handler \"%s\" not found for: %s", r->handler, r->filename);
    }
    if ((result != OK) && (result != DONE) && (result != DECLINED) && (result != SUSPENDED)
        && (result != AP_FILTER_ERROR) /* ap_die() knows about this specifically */
        && !ap_is_HTTP_VALID_RESPONSE(result)) {
        /* If a module is deliberately returning something else
         * (request_rec in non-HTTP or proprietary extension?)