Hello, I have a content filter module that is operating in a proxy environment, the module parses HTML and XML documents and changes quite a bit of content.
The issue I'm facing is handling gzip'ed content, I tried the following mod_filter config =============== FilterDeclare inflate FilterDeclare mymodule FilterDeclare deflate FilterProvider inflate INFLATE resp=Content-Encoding $gzip FilterProvider mymodule mymodule-filter resp=Content-Type $text/html FilterProvider deflate DEFLATE resp=Content-Encoding $gzip FilterTrace inflate 1 FilterTrace deflate 1 FilterTrace mymodule 1 FilterChain inflate mymodule deflate =============== What is happening is that my module is receiving duplicate buckets, here is a snippet from the log =============== mod_filter.c(117): inflate mod_filter.c(122): inflate: type: TRANSIENT, length: 1202 mod_filter.c(117): inflate mod_filter.c(122): inflate: type: FLUSH, length: 0 mod_filter.c(117): mymodule mod_filter.c(122): mymodule: type: HEAP, length: 3746 mod_filter.c(122): mymodule: type: FLUSH, length: 0 mod_filter.c(117): inflate mod_filter.c(122): inflate: type: TRANSIENT, length: 1400 mod_filter.c(117): inflate mod_filter.c(122): inflate: type: TRANSIENT, length: 1520 mod_filter.c(117): mymodule mod_filter.c(122): mymodule: type: HEAP, length: 3746 mod_filter.c(122): mymodule: type: FLUSH, length: 0 mod_filter.c(122): mymodule: type: HEAP, length: 8096 ... .... ..... mod_deflate.c(1113): Zlib: Inflated 9637 to 41199 : URL / mod_filter.c(117): mymodule mod_filter.c(122): mymodule: type: HEAP, length: 3746 mod_filter.c(122): mymodule: type: FLUSH, length: 0 mod_filter.c(122): mymodule: type: HEAP, length: 8096 mod_filter.c(122): mymodule: type: HEAP, length: 3829 mod_filter.c(122): mymodule: type: FLUSH, length: 0 mod_filter.c(122): mymodule: type: HEAP, length: 5008 mod_filter.c(122): mymodule: type: FLUSH, length: 0 mod_filter.c(122): mymodule: type: HEAP, length: 5412 mod_filter.c(122): mymodule: type: FLUSH, length: 0 mod_filter.c(122): mymodule: type: HEAP, length: 6947 mod_filter.c(122): mymodule: type: FLUSH, length: 0 mod_filter.c(122): mymodule: type: HEAP, length: 8096 mod_filter.c(122): mymodule: type: HEAP, length: 65 mod_filter.c(122): mymodule: type: EOS, length: 0 mod_filter.c(117): deflate mod_filter.c(122): deflate: type: TRANSIENT, length: 198242 =============== The first bucket of size 3746 was received 7 times by the module, the second bucket of 8096 was received 6 times and so on. I'm really stumped as to what is causing this behavior, any ideas? virtually yours Zaid