httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Giuliano Gavazzi <dev-apache....@humph.com>
Subject Re: mod_disk_cache and mod_include bugs and suggestions
Date Tue, 16 Jan 2007 00:08:19 GMT

On 15 Jan 2007, at 19:20, Giuliano Gavazzi wrote:
[re r470455 not serving cached content]
> This, I think, happens because in mod_cache' s cache_save_filter  
> you have the following calls is this order:
>
> 1) store_headers
>
> 2) store_body
>
> but the size of the body is not know until store_body is called,  
> and in particular only after:
>                 dobj->file_size += written;
>
> has been called.
>
> (this is just what I think is happening, but I do not pretend of  
> having understod anything!)

This turns out to be incorrect... store_body is called many times,  
and only when it has finished "reading" the body the dobj->file_size  
contains the correct size, but it does not seem that the block:

     /* Drop out here if this wasn't the end */
     if (!APR_BUCKET_IS_EOS(APR_BRIGADE_LAST(bb))) {
         return APR_SUCCESS;
     }

is ever passed. And after this block is the code updating the headers  
("Update header information now that we know the size") and the one  
that closes the output file dobj->fd.
I hope this is enough for those familiar with this module (or the  
bucket brigades!) to find out what the cause might be and if this is  
indeed all that is stopping r470455 from working with SSI.

Giuliano


Mime
View raw message