Davi Arnaut wrote:
Don't cache requests with a expires date in the past; otherwise the cache code will _always_ try to cache the URL, leading to numerous rename() errors - since the URL is already cached.
...
Index: modules/cache/mod_cache.c =================================================================== --- modules/cache/mod_cache.c (revision 414393) +++ modules/cache/mod_cache.c (working copy) @@ -426,6 +426,9 @@ /* if a broken Expires header is present, don't cache it */ reason = apr_pstrcat(p, "Broken expires header: ", exps, NULL); } + else if (exps != NULL && exp != APR_DATE_BAD && exp < apr_time_now()) { + reason = "Expires header already expired, not cacheable"; + } else if (r->args && exps == NULL) { /* if query string present but no expiration time, don't cache it * (RFC 2616/13.9)
Instead of calling apr_time_now(), shouldn't it re-use r->request_time here, saving a possibly expensive call?
Otherwise, I think its a good fix. -Paul