that we kick off the filter stack with our cache_out filter being the
first in the chain. This make sense because we want to restore things
in the same manner as we saved them.
There may be filters before our cache_out filter, because
1. We call ap_set_content_type during cache_select. This causes
Content-Type specific filters to be added.
2. We call the insert_filter hook. This causes filters e.g. like
the ones set with SetOutputFilter to be added.
PR: 40090
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@425787 13f79535-47bb-0310-9956-ffa450edef68
in the case that no valid expire time was supplied with the document.
Submitted by: Brian Akins <brian.akins turner.com>
Reviewed by: Ruediger Pluem
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@369811 13f79535-47bb-0310-9956-ffa450edef68
by the type (AP_FTYPE_CONTENT_SET-1) from CACHE_OUT / CACHE_SAVE
(AP_FTYPE_CONTENT_SET+1). This ensures that subrequests to non local
resources do not get stuck in the middle of the road with the contents
only written to the temp file, because CACHE_OUT_SUBREQ / CACHE_SAVE_SUBREQ
are inserted *before* the SUBREQ_CORE filter in the filter chain.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@325960 13f79535-47bb-0310-9956-ffa450edef68
* Add r->uri to the debug messages in the quick handler; makes debugging
easier.
* Always reset headers_in for lookup's, some modules make subrequests
and then rewrite the url. Having a conditional request at this point
is not what they expect (nor reasonable for them to handle).
* Don't store a per-request config on lookups; for the same reason.
* Return DECLINED when in lookup mode and ap_meets_conditions() indicated
we have the content but don't know if it's fresh or not. We have no idea
whether the backend will have a 404, a 304 or any other kind of a
response - so we have to assume we cannot handle the request.
* remove the unused "url" argument from the cache_create_entity() function
* Whitespace/comment fixups in mod_cache.h
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@291588 13f79535-47bb-0310-9956-ffa450edef68
is valid, but cache is unwritable and headers cannot be updated.
Submitted by: Colm MacCarthaigh <colm stdlib.net>
Reviewed by: Justin Erenkrantz
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@231488 13f79535-47bb-0310-9956-ffa450edef68
Remove entities from the cache when re-validation receives a 404 or other
content-no-longer-present error.
Suggested by: Paul Querna, Justin Erenkrantz
Submitted by: Rudiger Plum <ruediger.pluem vodafone.com>
Reviewed by: Justin Erenkrantz
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@231487 13f79535-47bb-0310-9956-ffa450edef68
*) Remove the first set of Validation code. Use the main if structure to check for both 'Vary: *' and 'Cache-Control: no-store'.
*) Add logging of failures for a provider's store_body function.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@190033 13f79535-47bb-0310-9956-ffa450edef68
* modules/cache/mod_cache.c
(cache_url_handler): Add more debug output. Restore original request
headers when CACHE_SAVE filter isn't added to fix up after the request.
* modules/cache/cache_storage.c
(cache_select_url): Add more debug output.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@157162 13f79535-47bb-0310-9956-ffa450edef68
* modules/cache/cache_util.c
(ap_cache_check_freshness): On Cache-Control/Pragma no-cache force
revalidation by marking the resource as stale. Unless IgnoreCacheControl
is set ofcourse.
* modules/cache/mod_cache.c
(cache_url_handler): Remove Cache-Control/Pragma no-cache check and
accompagnying comment.
(cache_save_filter): Move FIXME comment to the correct location.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@156480 13f79535-47bb-0310-9956-ffa450edef68
* modules/cache/mod_cache.c
(cache_save_filter): Instead of unconditionally returning a 304 when
the original request was conditional and we issued a cache revalidating
request, handle the request as if it came in while our cache was
still valid.
* modules/cache/cache_storage.c
(cache_select_url): Strip off the conditional headers from the original
request, prior to adding our own for the purpose of revalidating our
cached response.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@156330 13f79535-47bb-0310-9956-ffa450edef68
* modules/cache/mod_cache.c: If we add a new Expires value, tell our client;
merge in headers properly (or better than before) so that we can update the
header fields on a revalidated but with updated header fields.
* modules/cache/mod_cache.h, modules/cache/cache_storage.c:
Add preserve_orig flag to ap_cache_accept_headers to allow updating of fields.
* modules/cache/mod_disk_cache.c: Load status value from disk.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@152973 13f79535-47bb-0310-9956-ffa450edef68
* modules/cache/mod_cache.c
(cache_save_filter): Load in the cached status and headers; send a flush
rather than an EOS when the client request is conditional.
* modules/cache/mod_cache.h: Export ap_cache_accept_headers.
* modules/cache/cache_storage.c: Rename accept_headers to
ap_cache_accept_headers.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@152680 13f79535-47bb-0310-9956-ffa450edef68
Saves certain people a bit of time figuring out why their caching
doesn't work...
* modules/cache/mod_cache.c
(add_cache_enable): Throw an error when a provider starting with
a '/' is encountered. The user probably switched arguments.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@151232 13f79535-47bb-0310-9956-ffa450edef68
* docs/manual/mod/mod_cache.xml: Update documentation for
CacheIgnoreCacheControl and add documentation for two new directives.
* modules/cache/mod_cache.c
(cache_url_handler): Honor 'Cache-Control: no-cache' request header.
(cache_save_filter): Only honor no-store or private when their respective
directives are Off (which is the default).
rest of file: add in standard configuration syntax stuff...
* modules/cache/mod_cache.h: Minor formatting tweak and add new fields.
Suggested by: Pier Fumagalli
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@149492 13f79535-47bb-0310-9956-ffa450edef68
Also, take quick pass through docs files to remove experimental label for them.
Reviewed by: Paul Querna, Bill Stoddard, Justin Erenkrantz
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@106737 13f79535-47bb-0310-9956-ffa450edef68