]> granicus.if.org Git - apache/commitdiff
HTTPD script support
authorNick Kew <niq@apache.org>
Mon, 30 Mar 2009 20:49:10 +0000 (20:49 +0000)
committerNick Kew <niq@apache.org>
Mon, 30 Mar 2009 20:49:10 +0000 (20:49 +0000)
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

CHANGES
server/util_script.c

diff --git a/CHANGES b/CHANGES
index f58752434dfd8114a3ddde45154f4c32bc8b96e4..ef2bf3894cddb3fbe182b5ce629a8bc876d3edea 100644 (file)
--- 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]
index 14678ec310ec01e5cdd29014c9bedc6f5d8ce30f..682b2ab7de8d51f56f5bd10d2129059ceb6b8a0e 100644 (file)
@@ -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)) {