You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2006/04/10 20:01:31 UTC

svn commit: r393005 - in /httpd/httpd/branches/2.0.x: CHANGES STATUS server/core.c

Author: trawick
Date: Mon Apr 10 11:01:29 2006
New Revision: 393005

URL: http://svn.apache.org/viewcvs?rev=393005&view=rev
Log:
Default handler: Don't return output filter apr_status_t values.

PR:          31759
Reviewed by: rpleum, gregames

Modified:
    httpd/httpd/branches/2.0.x/CHANGES
    httpd/httpd/branches/2.0.x/STATUS
    httpd/httpd/branches/2.0.x/server/core.c

Modified: httpd/httpd/branches/2.0.x/CHANGES
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/2.0.x/CHANGES?rev=393005&r1=393004&r2=393005&view=diff
==============================================================================
--- httpd/httpd/branches/2.0.x/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/2.0.x/CHANGES [utf-8] Mon Apr 10 11:01:29 2006
@@ -14,6 +14,9 @@
      ap_escape_html so we escape quotes.  Reported by JPCERT.
      [Mark Cox]
 
+  *) Default handler: Don't return output filter apr_status_t values.
+     PR 31759.  [Jeff Trawick, Ruediger Pluem, Joe Orton]
+
   *) mod_speling: Stop crashing with certain non-file requests.  
      [Jeff Trawick]
 

Modified: httpd/httpd/branches/2.0.x/STATUS
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/2.0.x/STATUS?rev=393005&r1=393004&r2=393005&view=diff
==============================================================================
--- httpd/httpd/branches/2.0.x/STATUS (original)
+++ httpd/httpd/branches/2.0.x/STATUS Mon Apr 10 11:01:29 2006
@@ -116,14 +116,6 @@
        http://svn.apache.org/viewcvs?rev=390573&view=rev
        +1: wrowe, trawick, rpluem
 
-    *) Default handler: Don't return output filter apr_status_t values. PR 31759.
-        Trunk version of patch:
-          http://svn.apache.org/viewcvs?rev=390922&view=rev
-          http://svn.apache.org/viewcvs?rev=391025&view=rev
-        2.0.x version of patch:
-          Trunk version works
-      +1: rpluem, trawick, gregames
-
     *) Make sure we write a reasonable status line (e.g., if byterange
        filter modifies status and custom status line is left
        unmodified).

Modified: httpd/httpd/branches/2.0.x/server/core.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/branches/2.0.x/server/core.c?rev=393005&r1=393004&r2=393005&view=diff
==============================================================================
--- httpd/httpd/branches/2.0.x/server/core.c (original)
+++ httpd/httpd/branches/2.0.x/server/core.c Mon Apr 10 11:01:29 2006
@@ -3645,7 +3645,19 @@
         e = apr_bucket_eos_create(c->bucket_alloc);
         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; /* r->status will be respected */
+        }
+        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) {