From a9960ebdbbad37d6826e4d38342e7c413af5de2c Mon Sep 17 00:00:00 2001 From: Justin Erenkrantz Date: Mon, 1 Apr 2002 22:26:09 +0000 Subject: [PATCH] Prevent ap_add_output_filters_by_type from being called in ap_set_content_type if the content-type hasn't changed. Reviewed by: Ryan Bloom git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94368 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 4 ++++ modules/http/http_protocol.c | 16 +++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index fe905a26c7..02667e3efb 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,9 @@ Changes with Apache 2.0.35 + *) Prevent ap_add_output_filters_by_type from being called in + ap_set_content_type if the content-type hasn't changed. + [Justin Erenkrantz] + *) Performance: implemented the bucket allocator made possible by the API change in 2.0.34. [Cliff Woolley] diff --git a/modules/http/http_protocol.c b/modules/http/http_protocol.c index c6a54b653d..8e5029884b 100644 --- a/modules/http/http_protocol.c +++ b/modules/http/http_protocol.c @@ -1272,14 +1272,16 @@ static void fixup_vary(request_rec *r) AP_DECLARE(void) ap_set_content_type(request_rec *r, const char *ct) { - r->content_type = ct; + if (!r->content_type || strcmp(r->content_type, ct)) { + r->content_type = ct; - /* Insert filters requested by the AddOutputFiltersByType - * configuration directive. Content-type filters must be - * inserted after the content handlers have run because - * only then, do we reliably know the content-type. - */ - ap_add_output_filters_by_type(r); + /* Insert filters requested by the AddOutputFiltersByType + * configuration directive. Content-type filters must be + * inserted after the content handlers have run because + * only then, do we reliably know the content-type. + */ + ap_add_output_filters_by_type(r); + } } typedef struct header_filter_ctx { -- 2.50.1