Return-Path: Delivered-To: apmail-httpd-cvs-archive@httpd.apache.org Received: (qmail 15456 invoked by uid 500); 29 May 2003 15:07:13 -0000 Mailing-List: contact cvs-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list cvs@httpd.apache.org Received: (qmail 15443 invoked by uid 500); 29 May 2003 15:07:12 -0000 Delivered-To: apmail-httpd-2.0-cvs@apache.org Date: 29 May 2003 15:07:12 -0000 Message-ID: <20030529150712.84081.qmail@icarus.apache.org> From: nd@apache.org To: httpd-2.0-cvs@apache.org Subject: cvs commit: httpd-2.0/modules/http http_request.c X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N nd 2003/05/29 08:07:12 Modified: . CHANGES STATUS modules/http http_request.c Log: - revert my patch (r1.155) since it produces regressions. - add a note to STATUS that we don't forget the thing. Revision Changes Path 1.1189 +0 -3 httpd-2.0/CHANGES Index: CHANGES =================================================================== RCS file: /home/cvs/httpd-2.0/CHANGES,v retrieving revision 1.1188 retrieving revision 1.1189 diff -u -r1.1188 -r1.1189 --- CHANGES 27 May 2003 20:43:50 -0000 1.1188 +++ CHANGES 29 May 2003 15:07:10 -0000 1.1189 @@ -32,9 +32,6 @@ *) Fix a compile failure with recent OpenSSL and picky compilers (e.g., OpenSSL 0.9.7a and xlc_r on AIX). [Jeff Trawick] - *) Do not bypass output filters when redirecting subrequests internally. - PR 17629. [Andr� Malo] - *) OpenSSL headers should be included as "openssl/ssl.h", and not rely on the INCLUDE path to be defined properly. PR 11310. [Geoff Thrope ] 1.768 +13 -1 httpd-2.0/STATUS Index: STATUS =================================================================== RCS file: /home/cvs/httpd-2.0/STATUS,v retrieving revision 1.767 retrieving revision 1.768 diff -u -r1.767 -r1.768 --- STATUS 21 May 2003 16:21:19 -0000 1.767 +++ STATUS 29 May 2003 15:07:11 -0000 1.768 @@ -104,6 +104,18 @@ RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP: + * Filter stacks and subrequests, redirects and fast redirects. + There's at least one PR that suffers from the current unclean behaviour + (which lets the server send garbage): PR 17629 + nd says: Every subrequest should get its own filter stack with the + subreq_core filter as bottom-most. That filter does two things: + - swallow EOS buckets + - redirect the data stream to the upper request's (rr->main) + filter chain directly after the subrequest's starting + point. + Once we have a clean solution, we can try to optimize + it, so that the server won't be slow down too much. + * RFC 2616 violations. Closed PRs: 15857. Open PRs: 15852, 15859, 15861, 15864, 15865, 15866, 15868, 15869, 1.157 +5 -24 httpd-2.0/modules/http/http_request.c Index: http_request.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/http/http_request.c,v retrieving revision 1.156 retrieving revision 1.157 diff -u -r1.156 -r1.157 --- http_request.c 19 May 2003 01:19:55 -0000 1.156 +++ http_request.c 29 May 2003 15:07:12 -0000 1.157 @@ -400,27 +400,17 @@ new->proto_output_filters = r->proto_output_filters; new->proto_input_filters = r->proto_input_filters; - if (new->main) { - new->output_filters = r->output_filters; - new->input_filters = r->input_filters; + new->output_filters = new->proto_output_filters; + new->input_filters = new->proto_input_filters; + if (new->main) { /* Add back the subrequest filter, which we lost when * we set output_filters to include only the protocol * output filters from the original request. - * - * XXX: This shouldn't be neccessary any longer, because the filter - * is still in place -- isn't it? */ ap_add_output_filter_handle(ap_subreq_core_filter_handle, NULL, new, new->connection); } - else { - /* In subrequests we _must_ point to the complete upper request's - * filter chain, so skip the filters _only_ within the main request. - */ - new->output_filters = new->proto_output_filters; - new->input_filters = new->proto_input_filters; - } update_r_in_filters(new->input_filters, r, new); update_r_in_filters(new->output_filters, r, new); @@ -471,19 +461,10 @@ r->subprocess_env = apr_table_overlay(r->pool, rr->subprocess_env, r->subprocess_env); - /* copy the filters _only_ within the main request. In subrequests - * we _must_ point to the upper requests' filter chain, so do not - * touch 'em! - */ - if (!r->main) { - r->output_filters = rr->output_filters; - r->input_filters = rr->input_filters; - } + r->output_filters = rr->output_filters; + r->input_filters = rr->input_filters; if (r->main) { - /* XXX: This shouldn't be neccessary any longer, because the filter - * is still in place -- isn't it? - */ ap_add_output_filter_handle(ap_subreq_core_filter_handle, NULL, r, r->connection); }