From: Jeff Trawick Date: Sun, 2 Apr 2006 23:36:27 +0000 (+0000) Subject: Default handler: Don't return output filter apr_status_t values. X-Git-Tag: 2.3.0~2471 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb89d4733ff8db8b0ac0bb2589a0c9dd38795df3;p=thirdparty%2Fapache%2Fhttpd.git Default handler: Don't return output filter apr_status_t values. PR: 31759 Helped by: Ruediger Pluem, Joe Orton git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@390922 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 378d7b68f29..5389147370d 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.3.0 [Remove entries to the current 2.0 and 2.2 section below, when backported] + *) Default handler: Don't return output filter apr_status_t values. + PR 31759. [Jeff Trawick, Ruediger Pluem, Joe Orton] + *) Event MPM: Fill in the scoreboard's tid field. PR 38736. [Chris Darroch ] diff --git a/server/core.c b/server/core.c index b3bd1b45b25..ab577457b1f 100644 --- a/server/core.c +++ b/server/core.c @@ -3596,6 +3596,20 @@ static int default_handler(request_rec *r) APR_BRIGADE_INSERT_TAIL(bb, e); return ap_pass_brigade(r->output_filters, bb); + status = ap_pass_brigade(r->output_filters, bb); + if (status == APR_SUCCESS + || r->status != HTTP_OK + || c->aborted) { + return OK; + } + else { + /* no way to know what type of error occurred */ + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, status, r, + "default_handler: ap_pass_brigade returned %i", + status); + return HTTP_INTERNAL_SERVER_ERROR; + } + } else { /* unusual method (not GET or POST) */ if (r->method_number == M_INVALID) {