Hi again,
After testing I discovered that some more changes were needed to get it to work.
Patch has been attached. This patch should still have the behaviour of enabling
compression when gzip-only-text/html is set to something other than 1. It
will also enable compression if gzip-only-text/html is not set at all.
Kris Verbeeck wrote:
Hi,
The 2.0.39 code:
if ((r-content_type == NULL || strncmp(r-content_type, text/html, 9))
apr_table_get(r-subprocess_env, gzip-only-text/html)) {
ap_remove_output_filter(f);
return ap_pass_brigade(f-next, bb);
}
says 'if we have a response with a content-type other than text/html AND
the environment variable gzip-only-text/html is defined then we will
not deflate (remove filter)'
The 2.0.40 code:
if (r-content_type == NULL || strncmp(r-content_type, text/html, 9)) {
const char *env_value = apr_table_get(r-subprocess_env, );
if ( env_value == NULL || strcmp(env_value,1) ) {
ap_remove_output_filter(f);
}
return ap_pass_brigade(f-next, bb);
}
says 'if we have a response with a content-type other than text/html AND
gzip-only-text/html is not defined OR it is defined but different from 1
then we will not deflate (remove filter)'
IMHO this is something completely different. With the new code the filter is always
removed unless you define gzip-only-text/html to be 1. So you can't compress
other files, e.g. .txt. I think the strcmp test should be strcmp(...) == 0.
Or am I missing something??
--
ir. Kris Verbeeck
Development Engineer
Ubizen - Ubicenter - Philipssite 5 - 3001 Leuven - Belgium
T: +32 16 28 70 64
F: +32 16 28 70 77
Ubizen - We Secure e-business - www.ubizen.com
--
ir. Kris Verbeeck
Development Engineer
Ubizen - Ubicenter - Philipssite 5 - 3001 Leuven - Belgium
T: +32 16 28 70 64
F: +32 16 28 70 77
Ubizen - We Secure e-business - www.ubizen.com
--- httpd-2.0.40/modules/filters/mod_deflate.c Wed Aug 7 17:26:17 2002
+++ httpd-2.0.40-PATCHED/modules/filters/mod_deflate.c Fri Aug 30 13:15:22 2002
-281,10 +281,10
|| strncmp(r-content_type, text/html, 9)) {
const char *env_value = apr_table_get(r-subprocess_env,
gzip-only-text/html);
-if ( env_value == NULL || strcmp(env_value,1) ) {
+if ( (env_value != NULL) (strcmp(env_value,1) == 0) ) {
ap_remove_output_filter(f);
+return ap_pass_brigade(f-next, bb);
}
-return ap_pass_brigade(f-next, bb);
}
/* Let's see what our current Content-Encoding is.