Thanks. There was a fix committed for this a couple of weeks
ago, so 2.0.41 will have the right logic.
Brian
Spinka, Kristofer wrote:
>Description:
>------------
> The Apache environment variable "gzip-only-text/html" was designed to
>allow control over whether non-text/html content will be compressed with
>the mod_deflate filter. However, there is a small logic error in the
>mod_deflate.c code that prevents this from functioning properly.
>
>
>Resolution:
>-----------
> There is an "if" statement that contains a call to the function strcmp,
>which compares the value of the environment variable "gzip-only-text/html"
>to the character string "1". However, strcmp returns 0 on success, which
>in this case will cause an undesired decision in this "if" statement.
> In addition, the ap_pass_brigade was "mispositioned", causing an
>additional failure of this logic set; this is also corrected.
>
>
>Patch:
>------
>--- orig/httpd-2.0.40/modules/filters/mod_deflate.c Wed Aug 7
>11:26:17 2002
>+++ httpd-2.0.40/modules/filters/mod_deflate.c Tue Sep 10 23:09:15 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 || strncmp(env_value,"1",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.
>--- end patch
>
> /kris
>
>
>