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

Reply via email to