source: trunk/server/common/patches/httpd-304s.patch

Last change on this file was 2591, checked in by achernya, 10 years ago
Reintegrate fc20-dev into trunk
File size: 1.8 KB
RevLine 
[2469]1From f4d66a13e385c6fa2026e2da1119ad080928c1f5 Mon Sep 17 00:00:00 2001
[2422]2From: Alexander Chernyakhovsky <achernya@mit.edu>
3Date: Fri, 3 May 2013 21:40:07 -0400
[2469]4Subject: [PATCH] Fix "the-bug" (non-empty content in 304s)
[2422]5
6PHP should not produce any output, even if zlib.output_compression is
7on, if the HTTP response code is 204 or 304 (no content or not modified).
8
9ixes PHP bug #42362 with php.cvs #56693, see:
10http://bugs.php.net/bug.php?id=42362
11http://news.php.net/php.cvs/56693
12http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib.c?r1=1.183.2.6.2.5.2.9&r2=1.183.2.6.2.5.2.10
13
14Apache should discard any body provided by a script (in any language, not
15just PHP) when the status is "no content" or "not modified".
16Addresses part of Apache bug #40953, see:
17https://issues.apache.org/bugzilla/show_bug.cgi?id=40953#c7
18
19Solves scripts.mit.edu support issue #773060, see:
20https://help.mit.edu/Ticket/UpdateCallCenter.html?id=773060
21https://diswww.mit.edu/charon/scripts/24018
22---
[2469]23 server/util_script.c | 5 +++++
[2422]24 1 file changed, 5 insertions(+)
25
26diff --git a/server/util_script.c b/server/util_script.c
[2469]27index 12a056f..dd83337 100644
[2422]28--- a/server/util_script.c
29+++ b/server/util_script.c
30@@ -503,6 +503,11 @@ AP_DECLARE(int) ap_scan_script_header_err_core_ex(request_rec *r, char *buffer,
31             if ((cgi_status == HTTP_UNSET) && (r->method_number == M_GET)) {
32                 cond_status = ap_meets_conditions(r);
33             }
34+            else if ((cgi_status == HTTP_NO_CONTENT) ||
35+                     (cgi_status == HTTP_NOT_MODIFIED) ||
36+                     ap_is_HTTP_INFO(cgi_status)) {
37+                r->header_only = 1; /* discard any body */
38+            }
39             apr_table_overlap(r->err_headers_out, merge,
40                 APR_OVERLAP_TABLES_MERGE);
41             if (!apr_is_empty_table(cookie_table)) {
42--
[2469]431.8.1.2
[2422]44
Note: See TracBrowser for help on using the repository browser.