Justin Erenkrantz wrote:
> --On Wednesday, June 8, 2005 12:09 AM +0200 Sander Striker
> <[EMAIL PROTECTED]> wrote:
>
>>> Yes you are right I forgot this. So I think this would be better:
>
>
> FWIW, I *think* the patch should return result rather than the value of
> ap_pass_brigade. (Although I have a feeling that might not be correct,
> either.)
>
I think we should pass the value of ap_pass_brigade, because if I remember
myself
correctly the CACHE_SAVE filter of mod_cache may transform a 304 into a 200 if
the
304 was the response to an originally stale cache entry, that turned out to be
fresh
after revalidation.
Around 540 in mod_cache.c
/* Did we have a stale cache entry that really is stale? */
if (cache->stale_handle) {
if (r->status == HTTP_NOT_MODIFIED) {
/* Oh, hey. It isn't that stale! Yay! */
cache->handle = cache->stale_handle;
info = &cache->handle->cache_obj->info;
rv = OK;
}
Around 694 in mod_cache.c
/* Did we just update the cached headers on a revalidated response?
*
* If so, we can now decide what to serve to the client. This is done in
* the same way as with a regular response, but conditions are now checked
* against the cached or merged response headers.
*/
if (rv == APR_SUCCESS && cache->stale_handle) {
apr_bucket_brigade *bb;
apr_bucket *bkt;
int status;
bb = apr_brigade_create(r->pool, r->connection->bucket_alloc);
[..cut..]
Regards
Rüdiger