From: Nick Kew Date: Mon, 30 Mar 2009 20:49:10 +0000 (+0000) Subject: HTTPD script support X-Git-Tag: 2.3.3~745 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7fe4728a292af36401333e4f03cd23b73e0c16dd;p=thirdparty%2Fapache%2Fhttpd.git HTTPD script support When a script returns a no-body response code, pretend it was a HEAD request so as to drop any body the script might erroneously generate. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@760167 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index f58752434df..ef2bf3894cd 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.3.3 + *) script support: avoid possibly sending contents with a 204 or 304 + response. PR 40953 [Nick Kew] + *) ab: Fix a 100% CPU loop on platforms where a failed non-blocking connect returns EINPROGRESS and a subsequent poll() returns only POLLERR. Observed on HP-UX. [Eric Covener] diff --git a/server/util_script.c b/server/util_script.c index 14678ec310e..682b2ab7de8 100644 --- a/server/util_script.c +++ b/server/util_script.c @@ -462,6 +462,10 @@ AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r, char *buffer, if ((cgi_status == HTTP_UNSET) && (r->method_number == M_GET)) { cond_status = ap_meets_conditions(r); } + else if ((cgi_status == HTTP_NO_CONTENT) || + (cgi_status == HTTP_NOT_MODIFIED)) { + r->header_only = 1; /* discard any body */ + } apr_table_overlap(r->err_headers_out, merge, APR_OVERLAP_TABLES_MERGE); if (!apr_is_empty_table(cookie_table)) {