Graham Leggett wrote:
> Matthieu Estrade wrote:
>
>> I found a problem with mod_cache and mod_proxy...
>>
>> when cache is storing the data + headers in memory, it doesn't care
>> about Transfert-Encoding...
>
>
> AFAIK proxy should always dechunck any chunked data it receives before
> passing it up the stack. The caching stuff should never see chunked data.
>
> If cache does, it could be because someone is putting the cache filter
> in the wrong place in the stack, ie before the dechunk filter.
I can't see something in chunk_filter deleting the Transfer-Encoding
header if present and not chunked data...
maybe i am in the wrong part of code. is there some dechunk_filter ?
but i don't understand why mod_cache should store this header, because
when it will serve the document from cache, i don't see why it should
take care about how proxy received the data because it store all the
data in the same brigade... cache->saved_brigade.
So if we delete the header each time we serve from cache, it will take
more time than if we delete it before storing it in the cache_headers_out.
>
>> + /* Delete Transfer-Encoding if present, coming from reverse
>> proxy */
>> + + if (apr_table_get(r->headers_out,"Transfer-Encoding")){
>> + apr_table_unset(r->headers_out,"Transfer-Encoding");
>> + }
>> +
>
>
> Just arbly deleting the transfer encoding will definitely not work.
> You need to make sure the content is dechunked as well. Only the
> dechunk filter should remove the transfer encoding header.
i will debug to see when cache_in and chunk_filter are called...
>
>
> Regards,
> Graham