mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
- revert my patch (r1.155) since it produces regressions.
- add a note to STATUS that we don't forget the thing. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100086 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -32,9 +32,6 @@ Changes with Apache 2.1.0-dev
|
|||||||
*) Fix a compile failure with recent OpenSSL and picky compilers
|
*) Fix a compile failure with recent OpenSSL and picky compilers
|
||||||
(e.g., OpenSSL 0.9.7a and xlc_r on AIX). [Jeff Trawick]
|
(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<64> Malo]
|
|
||||||
|
|
||||||
*) OpenSSL headers should be included as "openssl/ssl.h", and not rely on
|
*) OpenSSL headers should be included as "openssl/ssl.h", and not rely on
|
||||||
the INCLUDE path to be defined properly.
|
the INCLUDE path to be defined properly.
|
||||||
PR 11310. [Geoff Thrope <geoff@geoffthorpe.net>]
|
PR 11310. [Geoff Thrope <geoff@geoffthorpe.net>]
|
||||||
|
14
STATUS
14
STATUS
@@ -1,5 +1,5 @@
|
|||||||
APACHE 2.1 STATUS: -*-text-*-
|
APACHE 2.1 STATUS: -*-text-*-
|
||||||
Last modified at [$Date: 2003/05/21 16:21:19 $]
|
Last modified at [$Date: 2003/05/29 15:07:11 $]
|
||||||
|
|
||||||
Release [NOTE that only Alpha/Beta releases occur in 2.1 development]:
|
Release [NOTE that only Alpha/Beta releases occur in 2.1 development]:
|
||||||
|
|
||||||
@@ -104,6 +104,18 @@ CURRENT VOTES:
|
|||||||
|
|
||||||
RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
|
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.
|
* RFC 2616 violations.
|
||||||
Closed PRs: 15857.
|
Closed PRs: 15857.
|
||||||
Open PRs: 15852, 15859, 15861, 15864, 15865, 15866, 15868, 15869,
|
Open PRs: 15852, 15859, 15861, 15864, 15865, 15866, 15868, 15869,
|
||||||
|
@@ -400,27 +400,17 @@ static request_rec *internal_internal_redirect(const char *new_uri,
|
|||||||
new->proto_output_filters = r->proto_output_filters;
|
new->proto_output_filters = r->proto_output_filters;
|
||||||
new->proto_input_filters = r->proto_input_filters;
|
new->proto_input_filters = r->proto_input_filters;
|
||||||
|
|
||||||
if (new->main) {
|
new->output_filters = new->proto_output_filters;
|
||||||
new->output_filters = r->output_filters;
|
new->input_filters = new->proto_input_filters;
|
||||||
new->input_filters = r->input_filters;
|
|
||||||
|
|
||||||
|
if (new->main) {
|
||||||
/* Add back the subrequest filter, which we lost when
|
/* Add back the subrequest filter, which we lost when
|
||||||
* we set output_filters to include only the protocol
|
* we set output_filters to include only the protocol
|
||||||
* output filters from the original request.
|
* 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,
|
ap_add_output_filter_handle(ap_subreq_core_filter_handle,
|
||||||
NULL, new, new->connection);
|
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->input_filters, r, new);
|
||||||
update_r_in_filters(new->output_filters, r, new);
|
update_r_in_filters(new->output_filters, r, new);
|
||||||
@@ -471,19 +461,10 @@ AP_DECLARE(void) ap_internal_fast_redirect(request_rec *rr, request_rec *r)
|
|||||||
r->subprocess_env = apr_table_overlay(r->pool, rr->subprocess_env,
|
r->subprocess_env = apr_table_overlay(r->pool, rr->subprocess_env,
|
||||||
r->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->output_filters = rr->output_filters;
|
||||||
r->input_filters = rr->input_filters;
|
r->input_filters = rr->input_filters;
|
||||||
}
|
|
||||||
|
|
||||||
if (r->main) {
|
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,
|
ap_add_output_filter_handle(ap_subreq_core_filter_handle,
|
||||||
NULL, r, r->connection);
|
NULL, r, r->connection);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user