2223ad8a070835dedda4e2d9a0227de21619d1be 1665216 |
|
09-Mar-2015 |
jkaluza |
* mod_cache: Preserve the Content-Type in case of 304 response.
304 does not contain Content-Type and mod_mime regenerates
the Content-Type based on the r->filename. This later leads to original
Content-Type to be lost (overwriten by whatever mod_mime generates). |
09c87c777bed1655621bb20e1c46cb6b1a63279d 1634237 |
|
25-Oct-2014 |
covener |
fix another case of 304 response sent to an unconditional request |
842620b6cd3b76776e1de0b84006d790bb1d0406 1632740 |
|
18-Oct-2014 |
ylavic |
mod_cache: avoid unlikely access to freed memory. |
52fb4dfb1609cb1d01e320f681f136934199fc94 1620461 |
|
25-Aug-2014 |
rjung |
Fix typo in comment. |
9db549cd545d738d931852ac4267d62221162f7f 1619835 |
|
22-Aug-2014 |
covener |
don't let handlers start with r->status = 304 during a failed revalidation
PR56881 |
04b14c36907da8903a5f70897039908892812c72 1594643 |
|
14-May-2014 |
ylavic |
mod_cache: follow up to r1591328.
Define the cache_merge_headers_out() function to merge r->err_headers_out into
r->headers_out and add the ones from r->content_type/encoding if available.
Use it in ap_cache_cacheable_headers_out() where the same is done and in
cache_save_filter() where this has to be done before updating the entry. |
fdf33a02f8576869afa34e9cd53980b29b7f960c 1591394 |
|
30-Apr-2014 |
ylavic |
mod_cache: follow up to r1591390
Fix code typo. |
459e962b6db4eff3bb845da0c79ea72671f06251 1591390 |
|
30-Apr-2014 |
ylavic |
mod_cache: follow up to r1591322
Avoid one unnecessary test when checking 304 contradictions. |
bb6412ca241e73336374d5f04e56ff01ac880b57 1591328 |
|
30-Apr-2014 |
ylavic |
mod_cache: Preserve non-cacheable headers forwarded from an origin 304
response. PR 55547.
When mod_cache asks for a revalidation of a stale entry and the origin responds
with a 304 (not that stale), the module strips the non-cacheable headers from
the origin response and merges the stale headers to update the cache.
The problem is that mod_cache won't forward the non-cacheable headers to the
client, for example if the 304 response contains both Set-Cookie and
'Cache-Control: no-cache="Set-Cookie"' headers, or CacheIgnoreHeaders is used. |
a779cd828e13dfceebf96145fbdc9399efa4e004 1591322 |
|
30-Apr-2014 |
ylavic |
mod_cache: follow up to r1591320.
Use the new MOD_CACHE_ENTITY_HEADERS[] names to check 304 contradictions
against the same headers. |
d17bebbb5c628fb8e232a171fd51e3d066052fc4 1591320 |
|
30-Apr-2014 |
ylavic |
mod_cache: Don't add cached/revalidated entity headers to a 304 response.
PR 55547.
When the conditional request meets the conditions of the stale then revalidated
entry, the forwarded 304 response includes the entity headers merged from the
cached headers (before updating the entry).
Strip them before returning a 304.
Since the entity headers are stripped elsewhere, factorize the code using a
new table (MOD_CACHE_ENTITY_HEADERS[]) containing these headers's names. |
ffe984f0714e14145b8edf127956214a65aa221f 1591316 |
|
30-Apr-2014 |
ylavic |
Revert r1591312 (again) to commit the 2 fixes separately. |
0f3f6ca9a6842266e5527148ede7aaea1770b281 1591312 |
|
30-Apr-2014 |
ylavic |
mod_cache: Don't add cached/revalidated entity headers to a 304 response.
PR 55547.
When the conditional request meets the conditions of the stale then revalidated
entry, the forwarded 304 response includes the entity headers merged from the
cached headers (before updating the entry).
Strip them before returning a 304.
Since the entity headers are stripped elsewhere, factorize the code using a
new table (MOD_CACHE_ENTITY_HEADERS[]) containing these headers's names. |
c322925cadc8258ece6d8262d1811118ca5ff9b1 1591143 |
|
30-Apr-2014 |
ylavic |
mod_cache: Retry unconditional request with the full URL (including the
query-string) when the origin server's 304 response does not
match the conditions used to revalidate the stale entry.
http://www.mail-archive.com/dev@httpd.apache.org/msg59884.html |
d90101744573e01573affccf4aa2198b7b33d61d 1586827 |
|
12-Apr-2014 |
jailletc36 |
Fix layout |
d3d8be03e7edefc5ee050cdda7033ce7286e0c94 1584429 |
|
04-Apr-2014 |
covener |
leave a warning about cc_out |
7dda81b82f017e5cd8c4027bada5613ce1239497 1563193 |
|
31-Jan-2014 |
covener |
add the URI to DEBUG message 00765 (and drop an exclamation point):
Cache provider's store_body failed! |
ede358bacece00421f18e5b62b3261f6ad5c5d40 1518269 |
|
28-Aug-2013 |
covener |
Expires in a 304 is not a contradiction in terms of r1487118:
- Expires, Cache-Control, and/or Vary, if the field-value might
differ from that sent in any previous response for the same
variant |
ba627694e6328fd6158f5c94223d16b0e9acdac8 1502665 |
|
12-Jul-2013 |
covener |
reflow a very long line, no functional change |
9e774139864574008baf1c53ce3fd3e5acbbd621 1501423 |
|
09-Jul-2013 |
covener |
fix whitespace in AH00766 warning:
s/all of theinput/all of the input/ |
b9399240afdf3ec84188c614d403ff9a4fd66e93 1481396 |
|
11-May-2013 |
sf |
update log tags
replace duplicate, add missing |
5b6a4b0e8d6d52394b68b51e0fa439d0eee16e37 1481197 |
|
10-May-2013 |
minfrin |
mod_cache: If a 304 response indicates an entity not currently cached, then
the cache MUST disregard the response and repeat the request without the
conditional. |
a2617cfd96f4e1b0cf1a8861ea980dfb28ffcbd5 1480283 |
|
08-May-2013 |
minfrin |
Ensure that Warning headers are correctly handled as per RFC2616. |
bbb08feeeef547b0908b16df6cbbb65da656b86f 1479966 |
|
07-May-2013 |
minfrin |
mod_cache: Ensure that we don't attempt to replace a cached response
with an older response as per RFC2616 13.12. |
eee20257a5ee9228f4aecdf3d3ca68fd0683ff07 1479905 |
|
07-May-2013 |
minfrin |
core, mod_cache: Ensure RFC2616 compliance in ap_meets_conditions()
with weak validation combined with If-Range and Range headers. Break
out explicit conditional header checks to be useable elsewhere in the
server. Ensure weak validation RFC compliance in the byteranges filter.
Ensure RFC validation compliance when serving cached entities. PR 16142 |
2d2c5cedd0559093c6e88bd92702e369ef949336 1479411 |
|
06-May-2013 |
minfrin |
mod_cache: Ensure that updated responses to HEAD requests don't get
mistakenly paired with a previously cached body. Ensure that any existing
body is removed when a HEAD request is cached. |
2b82678319a66fd9caad8827ca9b38d2412a5abd 1479222 |
|
05-May-2013 |
minfrin |
mod_cache: Honour Cache-Control: no-store in a request. |
c0da461d68518e8f89f4070a709ba1e56381247c 1479216 |
|
05-May-2013 |
minfrin |
mod_cache: RFC2616 14.9.3 The s-maxage directive also implies the
semantics of the proxy-revalidate directive. |
797fb211307298a8a6984c0edc0d8972b35eeac1 1479117 |
|
04-May-2013 |
minfrin |
mod_cache: Make sure that contradictory entity headers present in a 304
Not Modified response are caught and cause the entity to be removed. |
80cabec6752622e0db5421af61502bfda95715ea 1478441 |
|
02-May-2013 |
minfrin |
mod_cache: When serving from cache, only the last header of a multivalued
header was taken into account. Fixed. |
a2e1bbb77dd09c6a60f2dc18f831000e49add31e 1478382 |
|
02-May-2013 |
minfrin |
mod_cache: Ignore response headers specified by no-cache=header and
private=header as specified by RFC2616 14.9.1 What is Cacheable. Ensure
that these headers are still processed when multiple Cache-Control
headers are present in the response. PR 54706 |
aa47ca787f4bd6305d93e9106815f82061d568eb 1478173 |
|
01-May-2013 |
minfrin |
Apply log message tags to messages. |
deec48c67d4786bc77112ffbf3a4e70b931097ed 1478140 |
|
01-May-2013 |
minfrin |
mod_cache: Invalidate cached entities in response to RFC2616 Section
13.10 Invalidation After Updates or Deletions. PR 15868
Resolves outstanding issue with r1070179 as per
http://www.gossamer-threads.com/lists/apache/dev/395830?do=post_view_threaded#395830 |
5ce997c7890c4bda0bd7551fdf264a880f5feeea 1464721 |
|
04-Apr-2013 |
jailletc36 |
Make option "CacheDisable" in mod_cache case insensitive.
PR 54462 reported by Tianyin Xu [tixu cs ucsd edu] |
8f18da9b65e7876f06ad80e20d9b4d87141041cc 1439083 |
|
27-Jan-2013 |
rjung |
Cache does no longer send Content-Type header
for fresh content.
Followup to r1361153+r1373447 (PR 53539, wrong
Content-Type for stale content). |
c967bf3bc89e8aa60dbd30d9da388e448ddc1cc4 1407381 |
|
09-Nov-2012 |
trawick |
The following now respects DefaultRuntimeDir/DEFAULT_REL_RUNTIMEDIR:
- mod_cache: thundering herd lock directory |
12b5dc9afa1844df5ac8acab98fb538432a2fa1c 1373447 |
|
15-Aug-2012 |
rjung |
Wrong content type and character set when
mod_cache serves stale content because of
a proxy error.
PR 53539.
Correction to r1361153. |
93562cec07bc2f90442d20ae46900e891f78eb8b 1361153 |
|
13-Jul-2012 |
rpluem |
* Set content type in case we return stale content. |
231ca3b40df46af2a63d006ebde6b745f73c40b2 1240315 |
|
03-Feb-2012 |
sf |
Fix various filter functions to return apr_status_t instead of int |
dd69a6c86dc1c36e5edf17af1e5f7d89a8112409 1209798 |
|
03-Dec-2011 |
minfrin |
mod_cache: Remove ap_cache_liststr(), it duplicates ap_find_token(). |
185aa71728867671e105178b4c66fbc22b65ae26 1209766 |
|
03-Dec-2011 |
sf |
Add lots of unique tags to error log messages |
eed23c0ffbac879e3502737c44070dc1212daeb0 1205894 |
|
24-Nov-2011 |
jim |
Use varargs... |
a21c1f8966d0992bc8deefe444f751cb3ef4e7e3 1205423 |
|
23-Nov-2011 |
jim |
Use ap_pass_brigade_fchk() |
33b11b61d72ec5a8b50a6cfe3da2c7d413be3cd4 1204555 |
|
21-Nov-2011 |
jim |
value never used: dead assignment |
fa0c562f0ab33ed019baf3c1dcd37ae72af6b29d 1201331 |
|
12-Nov-2011 |
minfrin |
mod_cache: Make sure we merge headers correctly when we handle a non
cacheable conditional response. PR52120. |
5ab58649d9a4b3af01a4141920613fbf74ced7fd 1158022 |
|
15-Aug-2011 |
minfrin |
mod_cache: Ensure that CacheDisable can correctly appear within
a LocationMatch. |
97f293b98fc6777e5baa836c30293f433f3c12e1 1157976 |
|
15-Aug-2011 |
minfrin |
mod_cache: Fix the moving of the CACHE filter, which erroneously
stood down if the original filter was not added by configuration. |
852c4b660287425fbebd85efc4d8b6921fa9ac11 1132816 |
|
07-Jun-2011 |
minfrin |
mod_cache: Ensure that r->content_type is set when serving stale
content in response to a failed attempt to revalidate. |
586c08fed95ddfb12dedf5bcd93032a0abba761a 1126575 |
|
23-May-2011 |
minfrin |
mod_cache: Clarify which scenario we have present, quick handler on and CACHE
filter present, which is an error, or the CACHE filter being present when the
cache is bypassed, which is business as usual. |
21437f011aa48531783a8248df26841578b30aef 1103850 |
|
16-May-2011 |
minfrin |
Both lastmod and lastmods resolve to 0 when unset, but only lastmods is a
pointer. Fix comparison between apr_time_t and NULL. |
59a3c1e7880d3eab0d182735ff47758b9860411f 1103494 |
|
15-May-2011 |
minfrin |
mod_cache: When content is served stale, and there is no means to
revalidate the content using ETag or Last-Modified, and we have
mandated no stale-on-error behaviour, stand down and don't cache.
Saves a cache write that will never be read. |
ffae06377667a5d8f9699ac7512134de7000a83d 1080834 |
|
12-Mar-2011 |
minfrin |
mod_cache: Make CacheEnable and CacheDisable configurable per
directory in addition to per server, making them work from within
a LocationMatch. |
da40dfabefd6f8eb8450e9a097c594ee2ab13e3e 1070179 |
|
13-Feb-2011 |
minfrin |
mod_cache: When a request other than GET or HEAD arrives, we must
invalidate existing cache entities as per RFC2616 13.10. PR 15868. |
f487a1d642cd9c88f11360abccb2c8901526c69c 1070161 |
|
13-Feb-2011 |
minfrin |
mod_cache: Make sure that the moving of the CACHE filter to another
point within a subrequest is limited to affecting filters in that
subrequest only. |
3e2582713ed6883683272fbc628a27419d0ed543 1070128 |
|
12-Feb-2011 |
minfrin |
mod_cache: When a bad Expires date is present, we need to behave as if
the Expires is in the past, not as if the Expires is missing. PR 16521. |
3a86b95ac291f1af18df0ca2bd6d51c8b35f1241 1039300 |
|
26-Nov-2010 |
rjung |
Further trivial updates mod_disk_cache -> mod_cache_disk.
No functional change. |
053b8fdf3661ecafdc8b41ba09c31d63dc2fb2d4 1036702 |
|
19-Nov-2010 |
minfrin |
Fix a spelling mistake. |
aeabfc3e57e1f42aa5f42fa007d2bb175dded24c 1036699 |
|
19-Nov-2010 |
minfrin |
Fix a spelling mistake. |
463a5504919511aa356f9973edad84834f0214dc 1026617 |
|
23-Oct-2010 |
minfrin |
mod_cache: Respect the original Cache-Control header if no header arrives
with a 304 Not Modified. |
2d8f23d056445b12655a5d10971abed691e4a0d0 1026173 |
|
22-Oct-2010 |
minfrin |
Be compliant with RFC2616 14.46, revalidation failed is Warning 111, not
Warning 110. |
82c1ce54a286725744a795a4d370275baa52429c 1023952 |
|
18-Oct-2010 |
minfrin |
Remove the remove_url filter consistently for both the ap_die() and the
mod_proxy cases. |
587909d32387845b4470c84c025638375c031bca 1023462 |
|
17-Oct-2010 |
minfrin |
Use ap_log_rerror() instead of ap_log_error() across mod_cache and
mod_disk_cache. |
0244b953cbdbf81e5b054dcb0a3e8512d7f4bcf1 1023394 |
|
17-Oct-2010 |
minfrin |
Support Cache-Control: only-if-cached, as per RFC2616 14.9.4. |
c293dbc6720c3f690444a5b84eec7080c415da29 1023389 |
|
17-Oct-2010 |
minfrin |
Add support for proxy-revalidate as per RFC2616 section 14.9.4. |
53982fa8a5ba4235c4d7a15fc04ddc9bc0bc343d 1023388 |
|
17-Oct-2010 |
minfrin |
Fix the sense of the must_revalidate comparison. Replace a further call to
ap_cache_liststr() with a pre-parsed value. |
8fa6d2c9f0421ed96f64c660f6fa3546f37bd014 1023387 |
|
17-Oct-2010 |
minfrin |
Complete the optimisation of Cache-Control header parsing. Make the
cache_control_t structure public so as to be available to mod_disk_cache. |
c7644c96cb1671df6bb063b503738b404f33925f 1021946 |
|
13-Oct-2010 |
minfrin |
mod_cache: Support stale-on-error behaviour for the mod_proxy case in
addition to the existing case where the error was generated by ourselves. |
77c22c493161004a20e2591319197b7272a68f0c 1021944 |
|
13-Oct-2010 |
minfrin |
Make sure we remove the cache lock consistently as soon as we've started
down the error path, so that we don't delay the next attempt to cache. |
dfc11e2ca51e32163317f52344553069431d9da1 1021917 |
|
12-Oct-2010 |
minfrin |
Restore the apr_brigade_insert_file() call to within recall_body(), as the
function does more than add a single file bucket. Pass an empty brigade
to recall_body(), and prepend the result to the existing output brigade,
the next bucket being eos. |
f4a0825e91eec135b5e41c697439e9a13014fa2c 1021546 |
|
12-Oct-2010 |
minfrin |
mod_cache: Optionally serve stale data when a revalidation returns a
5xx response, controlled by the CacheStaleOnError directive. |
2349b3c338819c0e37ee38f3f768059c6dcc84c4 1021544 |
|
12-Oct-2010 |
minfrin |
Use the more popular spelling variant. |
99e76258c9681fb72417ff3bfd14574338745a72 1021543 |
|
12-Oct-2010 |
minfrin |
Fix the lookup of the per-directory cache config, we were looking up the
per-server config instead. |
15227600187741f54b4f3ab0eedf8360c62282f8 1004220 |
|
04-Oct-2010 |
minfrin |
Remove the attempt to pass the cache key into the lock functions, use
cache->key instead for this. Fixes a segfault caused when cache->key
was populated, but the passed in key was not. |
4aef34911af88f96c5b6d9b71a550a5a97bbc0b6 1003963 |
|
03-Oct-2010 |
minfrin |
mod_cache: Allow control over the base URL of reverse proxied requests
using the CacheKeyBaseURL directive, so that the cache key can be
calculated from the endpoint URL instead of the server URL. |
352fbfa2a4fe0ea721294282d7a75b77974f41b5 1003913 |
|
03-Oct-2010 |
minfrin |
Realign the cache_quick_handler() and cache_handler() to behave identically
to the default_handler() when it comes to reacting to errors when writing
to the filter stack. Previously the error message implied the cache had
failed, when in reality, any part of the filter stack may have returned an
error. |
779d2a6edb493cbda2ed125dbdcc7ef7bfba0162 1003905 |
|
03-Oct-2010 |
minfrin |
Remove FIXMEs, they have been fixed. |
4cefc38158672f5de8119886d9754cf0609a9371 1003882 |
|
02-Oct-2010 |
minfrin |
mod_cache: CacheLastModifiedFactor, CacheStoreNoStore, CacheStorePrivate,
CacheStoreExpired, CacheIgnoreNoLastMod, CacheDefaultExpire,
CacheMinExpire and CacheMaxExpire can be set per directory/location. |
1a8c329935111a5059363efe927d631371b78414 1003331 |
|
01-Oct-2010 |
minfrin |
mod_cache: Support the caching of HEAD requests. |
9db0b0ee6ffade769db57b37a06b3f4849b5d367 1001884 |
|
27-Sep-2010 |
minfrin |
mod_cache: Make sure that we never allow a 304 Not Modified response
that we asked for to leak to the client should the 304 response be
uncacheable. PR45341 |
033d82412cc4af9d939b7e1645425b9e7f4ebf60 1001639 |
|
27-Sep-2010 |
minfrin |
mod_cache: Add the cache_status hook to register the final cache
decision hit/miss/revalidate. Add optional support for an X-Cache
and/or an X-Cache-Detail header to add the cache status to the
response. PR48241 |
1c534f8445b34b86eeadc06d6dd0105d33c85add 1000187 |
|
22-Sep-2010 |
minfrin |
Make ap_cache_accept_headers, ap_cache_accept_headers, ap_cache_try_lock and
ap_cache_check_freshness private. |
34f6b45d02039cb734332bc1cecf16c1dcd8f2a5 1000152 |
|
22-Sep-2010 |
minfrin |
Remove the MOD_CACHE_REQUEST_REC hack, and pass the cache_request_rec
structure through mod_cache's function parameters in the usual way. |
1fe05d56d6757d4b5d30b8a199f32417cc396f25 1000106 |
|
22-Sep-2010 |
wrowe |
Revert breakage in 2.2.4 introduced in r450055, by offering a CacheStoreExpired
directive to allow the user to override this questionable change. |
f86a86eea994dc0d186331bec991eed99d108056 999681 |
|
22-Sep-2010 |
minfrin |
Move private cache_* declarations out of the public mod_cache.h file. |
c1ba97f41a4526d84fb7a1596afe3dd11e065a2c 999630 |
|
21-Sep-2010 |
minfrin |
mod_cache: Give the cache provider the opportunity to choose to cache
or not cache based on the buckets present in the brigade, such as the
presence of a FILE bucket. |
9f0c32ae318f33c93a47d83f4709242c18339bbc 997545 |
|
16-Sep-2010 |
minfrin |
mod_cache: Add a discrete commit_entity() provider function within the
mod_cache provider interface which is called to indicate to the
provider that caching is complete, giving the provider the opportunity
to commit temporary files permanently to the cache in an atomic
fashion. Move all "rename" functionality of temporary files to permanent
files within mod_disk_cache from ad hoc locations in the code to the
commit_entity() function. Instead of reusing the same variables for
temporary file handling in mod_disk_cache, introduce separate discrete
structures for each of the three cache file types, the headers file,
vary file and data file, so that the atomic rename of all three file
types within commit_entity() becomes possible. Replace the inconsistent
use of error cleanups with a formal set of pool cleanups attached to
a subpool, which is destroyed on error. |
b7557ab9828d2017224a12968f82c3118b6a8c0a 996395 |
|
13-Sep-2010 |
minfrin |
mod_cache: Change the signature of the store_body() provider function
within the mod_cache provider interface to support an "in" brigade
and an "out" brigade instead of just a single input brigade. This
gives a cache provider the option to consume only part of the brigade
passed to it, rather than the whole brigade as was required before.
This fixes an out of memory and a request timeout condition that would
occur when the original document was a large file. Update the
mod_disk_cache provider implementation to take into account the new API.
Introduce CacheReadSize and CacheReadTime directives to mod_disk_cache
to control the amount of data to attempt to cache before sending the
data on to the client in the "out" brigade. |
6ea8a3f75a506155c7eaa8eead5503bed8658a9f 992809 |
|
05-Sep-2010 |
sf |
remove unused variables |
28587db43bc4bea96a36fbcffdd967e7b422bb97 992614 |
|
04-Sep-2010 |
minfrin |
mod_cache: Use a proper filter context to hold filter data instead
of misusing the per-request configuration. Fixes a segfault on trunk
when the normal handler is used. |
89c7a19f9c47b03f00f622a979490c9bccb2ff03 982016 |
|
03-Aug-2010 |
sf |
- Remove a load of unused variables (or variables that are set but never read).
- Move some declarations into the correct #ifdef scope.
I couldn't compile/test netware, but the changes look obvious enough. |
9b2bd9e83cbb6f5debb2edba59a0c12089eb37c3 952823 |
|
08-Jun-2010 |
minfrin |
mod_cache: Explicitly allow cache implementations to cache a 206 Partial
Response if they so choose to do so. Previously an attempt to cache a 206
was arbitrarily allowed if the response contained an Expires or
Cache-Control header, and arbitrarily denied if both headers were missing. |
36ef8f77bffe75d1aa327882be1b5bdbe2ff567a 951895 |
|
06-Jun-2010 |
sf |
Use the new APLOG_USE_MODULE/AP_DECLARE_MODULE macros everywhere to take
advantage of per-module loglevels |
e7ce9e3b31f38fef218921cc011d6d876b11556c 951220 |
|
04-Jun-2010 |
minfrin |
Fix a bug where if the cache quick handler is switched off, and the CACHE
filter is manually added by the admin, but caching has not been enabled for
the URL space, an attempt is made to remove the CACHE_SAVE filter instead
of the CACHE filter. This fix makes the code work like the comment above
the code, the comment being correct. |
e07b1bafb2ee37c100271dae651f96fefd9cacd8 933919 |
|
14-Apr-2010 |
rpluem |
* Do NOT cache 206 responses in any case since we don't (yet) know how to
cache partial responses. Fixes regression of r724093.
PR: 49113 |
25b0d6995373d5e25b4aaf2eebb598f7af5df1c5 832177 |
|
03-Nov-2009 |
trawick |
use ap_strchr_c to protect const-ness of input string
(and thus quiet gcc in maintainer mode) |
20216b769716c4346cce373f2028d7dbebf03886 823536 |
|
09-Oct-2009 |
poirier |
mod_cache: add Cache-control: s-maxage to cacheability decisions per RFC 2616. |
ed6dfb7d7057dc4f42348f12d7bff9fe98fc73cf 821993 |
|
05-Oct-2009 |
minfrin |
mod_cache: Teach CacheEnable and CacheDisable to work from within a
Location section, in line with how ProxyPass works. |
43563ad04e4bae7b42f7a34a87b7c60dc69c0c3f 821763 |
|
05-Oct-2009 |
poirier |
Back out r818492 which prevented all caching of incomplete responses.
Instead move the check to mod_disk_cache. This leaves cache implementations
the flexibility to implement caching of incomplete responses.
PR: 15866 |
7344e8c4f24fa6c4150da8530009b8d6e9744282 821552 |
|
04-Oct-2009 |
minfrin |
Ensure that we call ap_meets_conditions() in the mod_cache normal handler
case, so that conditional requests are handled properly. |
20386b356d9a135e2f1c8b852d65cf997796a249 821301 |
|
03-Oct-2009 |
minfrin |
Remove an unused variable. |
7b467aa53854c95318a1c709709c1619a4f47118 821202 |
|
03-Oct-2009 |
minfrin |
mod_cache: Introduce the option to run the cache from within the
normal request handler, and to allow fine grained control over
where in the filter chain content is cached. |
8286604de1d8e142b6b023d6c0dd82a8bb57acdb 819237 |
|
27-Sep-2009 |
rpluem |
* Use strcasecmp instead of strncasecmp as we want to be sure that the whole
word is None and not only the beginning.
Noted by Jeff Trawick |
5357892a1e367372dc2d4a315156e3e44dc5d56d 818492 |
|
24-Sep-2009 |
poirier |
mod_cache: don't cache incomplete responses, per RFC 2616, 13.8.
PR: 15866 |
9d28dd5eae46ca4b3bf3fd28151f7fc9b0ccace4 808724 |
|
28-Aug-2009 |
wrowe |
Axe an unused variable. |
885c28d76cbb512d6b75202af422c70c7ebe80de 808652 |
|
27-Aug-2009 |
minfrin |
Log the return code in the debug message to properly indicate why the lock
could not be obtained. |
0e671dd2f7e74f76a903b3e6392a161e80bc0b1f 808220 |
|
27-Aug-2009 |
minfrin |
Reintroduce an optimisation lost in some cut and paste. The cache lock
is removed as soon as we see an EOS, or is removed immediately if a
failure has occurred. |
3c67b7956d44501360506a9f13a5011be73b30ec 808212 |
|
27-Aug-2009 |
minfrin |
mod_cache: Introduce the thundering herd lock, a mechanism to keep
the flood of requests at bay that strike a backend webserver as
a cached entity goes stale. |
ec441956d31e53a12b70e2e75d058a1a106fc141 778438 |
|
25-May-2009 |
rpluem |
* Use the correct constant. |
186e9d990f453d16826ab87a87df7b87e6e05921 777042 |
|
21-May-2009 |
rpluem |
* Add CacheIgnoreURLSessionIdentifiers directive to ignore
defined session identifiers encoded in the URL when caching. |
f7cec4a86292b160401472286a17497ae0d4df18 729316 |
|
24-Dec-2008 |
covener |
look for 'no-cache' in subprocess_env to prevent the saving
of an otherwise cacheable response. |
557b032cb4aa7f7dd009066b660022910b2e78b6 724093 |
|
07-Dec-2008 |
pquerna |
When an expires or cache-control header are sent, the RFC does allow us to cache normally non-cacheable response statuses.
Submitted by: Alex Polvi <alex polvi.net> |
213e520edc00641400771fc8f90b37a967a2d9eb 649460 |
|
18-Apr-2008 |
dirkx |
Centralize the error-header collapsing done when sending out cached replies. Mark the change in CHANGES as it may have unforseen fall out and/or may need to be reverted or done more subtle. |
b032af090d23d565b8f817c77407b5084e2d4dda 649228 |
|
17-Apr-2008 |
rpluem |
* Style police. No functional changes. |
3d5e43b67f8b6e94b019615aceb28c937fcb19c2 649179 |
|
17-Apr-2008 |
dirkx |
Centralize hop-by-hop header handling in the main mod_cache code. This change is a no-op -- i.e. we call the same code path as prior to the API renaming. However this is propably wrong; and we should have been cleansing the content-types all along |
d6e81217d873dc3b87fc4ffa5fbac2fad4191a15 645455 |
|
07-Apr-2008 |
pquerna |
Remove all references to CORE_PRIVATE. |
53feccc94b923e12db1df6f7069676590097ba2f 636386 |
|
12-Mar-2008 |
rpluem |
* Restore the original request headers if the cached resource was stale, as they
may be needed by further output filters like the byterange filter to make the
correct decisions.
PR: 44579 |
c4313e35bed51fd5525e60333eb5d64021ab5057 539621 |
|
19-May-2007 |
jerenkrantz |
mod_cache: Do not set Date or Expires when they are missing from the original
response or are invalid. |
5b4d25005978c3667f44fbd5dcbd4cc34e9c714d 539620 |
|
19-May-2007 |
jerenkrantz |
mod_cache: Correctly handle HEAD requests on expired cache content. PR 41230.
* modules/cache/mod_cache.c
(cache_save_filter): Properly handle HEAD responses when we have a stale handle.
(This patch was revised by Justin/Ruediger.)
Submitted by: Niklas Edmundsson
Reviewed by: Justin, Ruediger |
5deae13e827ad3a8d1972f457fd331e7fcbdbcb8 539063 |
|
17-May-2007 |
jerenkrantz |
mod_cache: Let Cache-Control max-age set the expiration of the cached
representation if Expires is not set.
* modules/cache/mod_cache.c
(cache_save_filter): If Cache-Control max-age is set and Expires isn't,
let that value control our expiration. |
d1197e9701d5464a365fbc6925466966cd95b86d 538807 |
|
17-May-2007 |
jerenkrantz |
RFC 2616 13.2.1 calls out max-age as being a valid 'explicit expiration time',
so per Sec. 13.9 permit queries with just max-age instead of only Expires.
* modules/cache/mod_cache.c
(cache_save_filter): Be closer to RFC 2616's intent for query arguments.
* CHANGES: Update. |
fc3182e72cf0679cbf14a95213fbb9a98c3cf597 504183 |
|
06-Feb-2007 |
rpluem |
* Add CacheIgnoreQueryString directive to cache requests with a query string
even if no expiration time is specified. Futhermore the query string will not
be used for key generation such that requests to the same URI path, but with
different query strings are mapped to the same cache entity. Turning this
setting to ON violates RFC 2616/13.9 and thus it is turned off by default.
PR: 41484
Submitted by: Fredrik Widlund <fredrik.widlund qbrick.com>
Reviewed by: rpluem |
e60d61b95bc7d293176ffb95e86a0375ea49ebe4 502365 |
|
01-Feb-2007 |
minfrin |
This time from the top, with three part harmony AND feeling...
Revert the read-while-caching and large-file-crash fixes for mod_disk_cache,
ready to start again.
Reverted: r450105 r450188 r462571 r462601 r462696 r467655 r467684 r468044
r468373 r468409 r470455 |
311646506ef0f999f033785e891420f7ce9d4495 483970 |
|
08-Dec-2006 |
trawick |
whitespace fix |
bc786d0dba3cefae135fb85ab303ddb2b229e43d 476625 |
|
18-Nov-2006 |
rpluem |
* Use the query string stored in r->parsed_uri.query instead of r->args
as r->args could have been changed (e.g. via mod_rewrite) after the quick
handler hook. This causes resources to be stored under a key, where they
cannot be fetched again in the quick handler.
PR: 40805 |
38c37050250a232748df499cb74e2bec82cd791a 468373 |
|
27-Oct-2006 |
minfrin |
mod_cache: Pass the output filter stack through the store_body()
hook, giving each cache backend the ability to make a better
decision as to how it will allocate the tasks of writing to the
cache and writing to the network. Previously the write to the
cache task needed to be complete before the same brigade was
written to the network, and this caused timing and memory issues
on large cached files. This fix replaces the previous fix for
PR39380. |
1775cecdf5c740b6f466804d9d389c25795d8b02 468044 |
|
26-Oct-2006 |
minfrin |
Revert the splitting of buckets before they are handed to the cache providers,
a better way has been found to do this. |
db5b1726cf56a9e137e3fbdb81a4820421d01c99 467684 |
|
25-Oct-2006 |
minfrin |
Optimise the alternate case. Fail fast and stop splitting buckets if
store_body is no longer being called. |
755cc23fb49c4d0a8853f2cee28b6d846b9f4b56 467655 |
|
25-Oct-2006 |
minfrin |
mod_cache: Fix an out of memory condition that occurs when the
cache tries to save huge files (greater than RAM). Buckets bigger
than a tuneable threshold are split into smaller buckets before
being passed to mod_disk_cache, etc. PR 39380 |
e30d7d52b4f4a0b17653bccb45709fa43cd1a69e 450453 |
|
27-Sep-2006 |
minfrin |
mod_cache: Eliminate a bogus error in the log when a filter returns
AP_FILTER_ERROR. |
23daa0524ddc988dc8abefed7dbd900595545ecb 450055 |
|
26-Sep-2006 |
minfrin |
Don't cache requests with a expires date in the past; otherwise mod_cache will
always try to cache the URL. This bug might lead to numerous rename() errors
on win32 if the URL was previously cached. |
260825f41ee3fb517a5c5ecd675f5f58de9ea0b7 425787 |
|
26-Jul-2006 |
rpluem |
* Remove all filters that are before the cache_out filter. This ensures
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 |
842ae4bd224140319ae7feec1872b93dfd491143 420983 |
|
11-Jul-2006 |
fielding |
update license header text |
3d81f57512275ca06a60a9bcbd23c1f8b429fdf2 395228 |
|
19-Apr-2006 |
colm |
Update the copyright year in all .c, .h and .xml files |
1b0dce86d7fc8a5aa4c89b05255be26e508c615c 369811 |
|
17-Jan-2006 |
rpluem |
* Add CacheMinExpire directive to set the minimum time in seconds to cache a document
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 |
e8f95a682820a599fe41b22977010636be5c2717 332306 |
|
10-Nov-2005 |
jim |
No functional Change: Removing trailing whitespace. This also
means that "blank" lines consisting of just spaces or
tabs are now really blank lines |
57f816ececf88cd90fb1f60af55e16572b1280b1 325960 |
|
17-Oct-2005 |
rpluem |
* Create new filters CACHE_OUT_SUBREQ / CACHE_SAVE_SUBREQ which only differ
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. |
517f81335cf5e86ed09d2df597e233d25f9b8f90 291588 |
|
26-Sep-2005 |
colm |
Fixes and cleanups for mod_cache;
* 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 |
89ebbccde2b87b469b9d6fdb606eeb943c12a824 239421 |
|
23-Aug-2005 |
colm |
Enhance CacheEnable/CacheDisable to control caching on a per-protocol, per-host
and per-path basis. Makes Cache(En|Dis)able useful for forward proxy servers. |
3801ca6fdd8ade53239f435d5bc6a7c99bd949ef 239420 |
|
23-Aug-2005 |
colm |
remove some unused variables and re-name cache_select_url() to simply
cache_select() |
5be441edbfbf50ace0c7aaffd938c0b56192ad39 232335 |
|
12-Aug-2005 |
jerenkrantz |
Move the debuging log message about the removal of a url from
cache_remove_url_filter to cache_remove_url.
Submitted by: Rudiger Plum <ruediger.pluem vodafone.com>
Reviewed by: Justin Erenkrantz |
2b409b0583ef844d6f85002160cbc6df95b9afa8 231488 |
|
11-Aug-2005 |
jerenkrantz |
Fix incorrectly served 304 responses when expired cache entity
is valid, but cache is unwritable and headers cannot be updated.
Submitted by: Colm MacCarthaigh <colm stdlib.net>
Reviewed by: Justin Erenkrantz |
454d060a0d7b13606978c536f632be71e311959d 231487 |
|
11-Aug-2005 |
jerenkrantz |
mod_cache: Implement remove URL via a filter.
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 |
202f6a70f411a1ef4c6bc3e97d04529e848c0d96 220038 |
|
21-Jul-2005 |
pquerna |
Opps. Use the correct member of the structure. |
f07ae092933846055c4ca046c5a65de83d79c9c6 220036 |
|
21-Jul-2005 |
pquerna |
Correctly restore the HTTP status from the cache handler.
Submitted by: Hansjoerg Pehofer |
a42c13195a5c68d55f6b2bbf5b5e1e66ab45d5d4 219913 |
|
20-Jul-2005 |
pquerna |
Now you can run mod_deflate before mod_cache, and cache it. |
b90fbfa031d2d3b228aaec89a1625d211f505a8c 190033 |
|
11-Jun-2005 |
pquerna |
* cache_save_filter:
*) 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. |
a2e37e48efb113e8e4f9d9ca9c8286aaac6c936c 180341 |
|
06-Jun-2005 |
pquerna |
* mod_cache.c: When 'Vary: *' is sent, do not cache, since revalidation is always required.
PR: 16125 |
a43150e667aa8f4686434b92fedf59d99efff0fc 157162 |
|
11-Mar-2005 |
striker |
Another mod_cache fixlet.
* 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. |
17d66412d9a287e7b509c48c9e72ae5976d9fe9a 156480 |
|
08-Mar-2005 |
striker |
Improve caching a bit more...
* 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. |
f5311729a8b75ced769a75e33fc040fc4796d5ad 156330 |
|
06-Mar-2005 |
striker |
More mod_cache tweakage...
* 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. |
5ff727b38431c81d469ecd0d075a8ac51633ebc5 156304 |
|
06-Mar-2005 |
striker |
* modules/cache/mod_cache.c
(cache_url_handler): Tweak a few comments.
(cache_save_filter): Add a FIXME for a corner case. |
2bf467a6ebc21f93d1b9d23df0becee9a17af91e 153104 |
|
09-Feb-2005 |
striker |
Some minimal tweaks to mod_cache.
* modules/cache/mod_mem_cache.c
(store_headers): Remove unused variable.
* modules/cache/mod_cache.c
(cache_save_filter): Slightly improve comment. |
a37be91f2563c13f3664fe0b66ce9516998352ca 152973 |
|
09-Feb-2005 |
jerenkrantz |
More work to properly handle revalidated responses correctly.
* 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. |
493488ac867b1c44b8763bf8b90a483418b89c13 152680 |
|
08-Feb-2005 |
jerenkrantz |
Return the proper status and headers when serving a revalidated response.
* 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. |
be2d1ea526477ecca13d63dd51fae02c22aaa504 152679 |
|
08-Feb-2005 |
jerenkrantz |
Cleanup structures in mod_cache and friends to remove unused or unnecessary
fields. Also resolves a number of latent bugs due to the wrong fields being
accessed. |
a0fd132e01ab69f1c48e3d6a6791447cb6d65e51 151816 |
|
08-Feb-2005 |
jerenkrantz |
* modules/cache/mod_cache.c: One more try at proper handling of revalidated
responses.
...All together now, we hate uninitialized variables... |
08cb74ca432a8c24e39f17dedce527e6a47b8001 151408 |
|
04-Feb-2005 |
jerenkrantz |
Update copyright year to 2005 and standardize on current copyright owner line. |
4d91fb1b4a6470d6d7e6ca3d5d23bb20efde3ff0 151232 |
|
03-Feb-2005 |
striker |
Error out on configurations where the cache provider starts with a '/'.
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. |
5c6cb72bfeee541644cea8177aefce1157571d3b 149492 |
|
02-Feb-2005 |
jerenkrantz |
Add CacheStorePrivate, CacheStoreNoStore, and clarify CacheIgnoreCacheControl.
* 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 |
92e8e44864d94866eefcbfde0a53fa3d12855149 125573 |
|
19-Jan-2005 |
jerenkrantz |
mod_cache: Remove unimplemented CacheForceCompletion directive.
* modules/cache/mod_cache.h: Remove DEFAULT_CACHE_COMPLETION #define and
complete-related vars.
* modules/cache/mod_cache.c: Ditto.
* modules/cache/mod_disk_cache.c: Clarify error message; remove unused
complete var (unrelated to CacheForceCompletion removal).
* docs/manual/mod/mod_cache.xml.ja, docs/manual/mod/mod_cache.xml.ko,
docs/manual/mod/mod_cache.xml: Remove references to CacheForceCompletion. |
74def8815c725f8128a4e76ab1f5704df80b024a 106737 |
|
27-Nov-2004 |
jerenkrantz |
At long last, promote mod_cache and friends out of experimental/.
Also, take quick pass through docs files to remove experimental label for them.
Reviewed by: Paul Querna, Bill Stoddard, Justin Erenkrantz |