f5de27860e33ab8ce0769cbf1f7433f07af6ff30 1563381 |
|
01-Feb-2014 |
jailletc36 |
s/apr_pstrndup/apr_pstrmemdup/ when applicable |
f4db898517ccc6ef1a403630de56918286d3a47e 1523235 |
|
14-Sep-2013 |
minfrin |
SECURITY (CVE-2013-4352): Fix a NULL pointer deference which allowed
untrusted origin servers to crash mod_cache in a forward proxy configuration.
mod_cache: Avoid a crash with strcmp() when the hostname is not provided. |
b185e2b7aa46c6550bd4a2c5c76cacd50a18f107 1491564 |
|
10-Jun-2013 |
trawick |
const goodness with nasty strrchr and strchr functions
(resolve warning in maintainer mode) |
a2617cfd96f4e1b0cf1a8861ea980dfb28ffcbd5 1480283 |
|
08-May-2013 |
minfrin |
Ensure that Warning headers are correctly handled as per RFC2616. |
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 |
2b82678319a66fd9caad8827ca9b38d2412a5abd 1479222 |
|
05-May-2013 |
minfrin |
mod_cache: Honour Cache-Control: no-store in a request. |
7548cba59f873f93b4f82be37ed22c40ac7225e2 1478798 |
|
03-May-2013 |
fuankg |
Silent no-prototype compiler warning. |
f27c90ecdefe634bd5f9c529d8658d3a3b441303 1478748 |
|
03-May-2013 |
minfrin |
mod_cache: Make sure Vary processing handles multivalued Vary headers and
multivalued headers referred to via Vary. |
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. |
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 |
074dd2101f44ea8a66fbad9fd1f9b8f2ee7cf5ab 1452281 |
|
04-Mar-2013 |
jailletc36 |
cache_storage: remove useless test + update function name in debug log + skip as soon as we know headers do not match |
185aa71728867671e105178b4c66fbc22b65ae26 1209766 |
|
03-Dec-2011 |
sf |
Add lots of unique tags to error log messages |
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. |
587909d32387845b4470c84c025638375c031bca 1023462 |
|
17-Oct-2010 |
minfrin |
Use ap_log_rerror() instead of ap_log_error() across mod_cache and
mod_disk_cache. |
eaba8e7242a67286dbf02a5ae2a0d7cd7d424381 1023398 |
|
17-Oct-2010 |
minfrin |
Don't attempt to kill a stale entry that cannot be revalidated so early
in the process, as this will happen later anyway as necessary. We may want
to serve the stale entry should the backend not be available. |
19e0a36b37350fbab6519834ef0e44e9eb62bf24 1023396 |
|
17-Oct-2010 |
minfrin |
Don't attempt to remove the existing conditional headers until we have
committed to adding our own. |
0244b953cbdbf81e5b054dcb0a3e8512d7f4bcf1 1023394 |
|
17-Oct-2010 |
minfrin |
Support Cache-Control: only-if-cached, as per RFC2616 14.9.4. |
ea98ddb3c8a8d36dd90fb3135045a03d6fcfd301 1023392 |
|
17-Oct-2010 |
minfrin |
Fix the error cases in the cache_select() loop. On error we must loop around
to the next provider, not return DECLINED too early, except for the
revalidate case, where returning DECLINED is correct behaviour. |
8468718055f4023b1b16edd0a4cea8d6edaa4c6a 1023390 |
|
17-Oct-2010 |
minfrin |
Fix the return values in the cache_select() function, we don't return APR
error codes in this case. |
47a779c5a45b90812ad3ec1bff98134fd3f8e66a 1023360 |
|
16-Oct-2010 |
minfrin |
Begin the process of optimising the parsing of Cache-Control headers. Parse
the incoming Cache-Control and Pragma headers once, instead of on each test. |
6e1943c3ae7123323012c053ca23d116343d7b99 1004373 |
|
04-Oct-2010 |
minfrin |
mod_cache: Don't regenerate the cache key if we have already generated it. |
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. |
7b2c754d23d1c619a687508132b7f793bf9a53d0 1000395 |
|
23-Sep-2010 |
minfrin |
Remove a relic from the original error code, and fix segfaults in the
process. |
528d669867298f6743187e798121893290135fd8 1000247 |
|
22-Sep-2010 |
minfrin |
Make cache_provider_list and cache_request_rec private by moving them
out of mod_cache.h. |
561ff82c9a4873234adbd99ddd5bbfdd2466ac53 1000211 |
|
22-Sep-2010 |
minfrin |
Make cache_server_conf, cache_enable and cache_disable private. Remove
public prefixes from ap_cache_accept_headers, ap_cache_try_lock and
ap_cache_get_providers. |
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. |
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. |
3b41ccdaa163f4e900bbf8a7aa6a366df033822d 992625 |
|
04-Sep-2010 |
minfrin |
mod_cache: Check the request to determine whether we are allowed
to return cached content at all, and respect a "Cache-Control:
no-cache" header from a client. Previously, "no-cache" would
behave like "max-age=0". |
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. |
f8033d657a57eab45af44368774d8beb3e4f7f35 966348 |
|
21-Jul-2010 |
pquerna |
CVE-2010-1452: Fix handling of missing path segments in the parsed URI structure.
If a specially crafted request was sent, it is possible to crash mod_dav,
mod_cache or mod_session, as they accessed a field that is set to NULL
by the URI parser, assuming that it always put in a valid string.
PR: 49246
Submitted by: Mark Drayton
Patch by: Jeff Trawick |
36ef8f77bffe75d1aa327882be1b5bdbe2ff567a 951895 |
|
06-Jun-2010 |
sf |
Use the new APLOG_USE_MODULE/AP_DECLARE_MODULE macros everywhere to take
advantage of per-module loglevels |
b09448f96c5b29d3ed41d39e1d1e89c122f03e68 897705 |
|
10-Jan-2010 |
sf |
Allow several of the configured session identifiers to be found and removed in
a single request. |
5e1ae35c05125b8b6c6c648c60e576f5796ea061 892289 |
|
18-Dec-2009 |
rpluem |
* Do an exact match of the keys defined by CacheIgnoreURLSessionIdentifiers
against the querystring instead of a partial match.
PR: 48401
Submitted by: Dodou Wang <wangdong.08 gmail.com>
Reviewed by: rpluem |
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. |
4b591087dce560f0a95390b5a4b1cb85344f232f 778439 |
|
25-May-2009 |
rpluem |
* Correctly detect if CacheIgnoreURLSessionIdentifiers is set. |
186e9d990f453d16826ab87a87df7b87e6e05921 777042 |
|
21-May-2009 |
rpluem |
* Add CacheIgnoreURLSessionIdentifiers directive to ignore
defined session identifiers encoded in the URL when caching. |
d6e81217d873dc3b87fc4ffa5fbac2fad4191a15 645455 |
|
07-Apr-2008 |
pquerna |
Remove all references to CORE_PRIVATE. |
06fa73cc44d6da7c7c15b1b127534c53d30a9de5 636653 |
|
13-Mar-2008 |
rpluem |
* Do not do Range requests if we use our own conditionals for validating
a cache entity: If we get 304 the Range does not matter and otherwise the
entity changed and we want to have the complete entity.
PR: 44579 |
cb96b603a7f891e15a622fbec922628801a8efd4 506621 |
|
12-Feb-2007 |
rpluem |
* Save the key we generate during our first run of cache_generate_key_default
on each request in the request_config. During consecutive runs of
cache_generate_key_default during processing the request we restore it
from there as we might not be able to generate the same key again as
the ingredients used to compose the key might have changed and we constantly
must use a key that could be generated during the quick handler phase.
PR: 41475 |
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 |
37b35c7feec8216b5119c0c083990cfe4e400769 481886 |
|
03-Dec-2006 |
rpluem |
* Remove expired content from cache that cannot be revalidated.
PR: 30370 |
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 |
842ae4bd224140319ae7feec1872b93dfd491143 420983 |
|
11-Jul-2006 |
fielding |
update license header text |
a085f5ab771cff650b27e7a761b7f19adf884686 410370 |
|
30-May-2006 |
rpluem |
* Keep the Content-Type for successfully revalidated
cached objects, by unsetting possible Content-Type headers in
r->headers_out and r->err_headers_out as they may be different to what
we have received from the cache.
Actually they are not needed as r->content_type set by
ap_set_content_type a few lines above will be used in the store_headers
functions of the storage providers as a fallback and the HTTP_HEADER filter
does overwrite the Content-Type header with r->content_type anyway.
PR: 39647 |
f84cc7a65e4e0cb77749c9bd708655aacbdd9544 408729 |
|
22-May-2006 |
rpluem |
* Cleanup the code by replacing some inline code to lower-case a string with
ap_str_tolower.
Proposed by: Joe Orton |
3545f87968bf3ac4e691030f816c4360bdf83eac 408154 |
|
21-May-2006 |
rpluem |
* Fix const compiler warning introduced by r407357.
Noticed by: Joe Orton |
42ace93dfd997e0c9b4fbae8185288320e95eb72 407357 |
|
17-May-2006 |
rpluem |
* Handle the cases "no proxy request" and "reverse proxy request" in the same
manner, when setting scheme and port_str. This is needed because if a cached
entry is looked up by mod_cache's quick handler r->proxyreq
is still unset in the reverse proxy case as it only gets set in the
translate name hook (either by ProxyPass or mod_rewrite) which is run
after the quick handler hook. This is different to the forward proxy
case where it gets set before the quick handler is run (in the
post_read_request hook).
If a cache entry is created by the CACHE_SAVE filter we always have
r->proxyreq set correctly.
Also set scheme to ap_http_scheme(r) instead of "http" to handle SSL
correctly.
PR: 39593 |
3d81f57512275ca06a60a9bcbd23c1f8b429fdf2 395228 |
|
19-Apr-2006 |
colm |
Update the copyright year in all .c, .h and .xml files |
e3fe5a867725d1b6e511fc5202380f2572a2e7c3 367798 |
|
10-Jan-2006 |
rpluem |
* Fix PR38017 by handling the selection of the hostname in the same way for
non proxied and reverse proxied requests.
We need to handle both cases in the same manner as for the reverse proxy
case we have the following situation:
If a cached entry is looked up by mod_cache's quick handler r->proxyreq
is still unset in the reverse proxy case as it only gets set in the
translate name hook (either by ProxyPass or mod_rewrite) which is run
after the quick handler hook. This is different to the forward proxy
case where it gets set before the quick handler is run (in the
post_read_request hook).
If a cache entry is created by the CACHE_SAVE filter we always have
r->proxyreq set correctly.
So we must ensure that in the reverse proxy case we use the same code
path and using the canonical name seems to be the right thing to do
in the reverse proxy case. |
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 |
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 |
3801ca6fdd8ade53239f435d5bc6a7c99bd949ef 239420 |
|
23-Aug-2005 |
colm |
remove some unused variables and re-name cache_select_url() to simply
cache_select() |
61ee78d6fec267112988f5f38202ae5e9b0cb035 239407 |
|
23-Aug-2005 |
colm |
Improve the cache hit/miss ratio by canonicalising the url key. hostname's
are matched case-insensitively, port-based vhosts are catered for and the
scheme included for future multi-scheme caching compatibility. |
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 |
403b67b5d33c0b3f751f0ac7a66ddf8c0140fe1d 232272 |
|
12-Aug-2005 |
jorton |
* modules/cache/cache_storage.c (cache_remove_url): Remove unused
variables. |
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 |
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. |
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. |
66c863abfe28fd753dba68c025f32ff768640387 153385 |
|
11-Feb-2005 |
jorton |
* modules/cache/mod_disk_cache.c (store_body): Fix format string
warnings; print integers using _FMT strings.
* modules/cache/cache_util.c (ap_cache_check_freshness): Remove unused
variable.
* modules/cache/cache_storage.c (cache_select_url): Remove unused
variable. |
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. |
5fac1b485a66dd8599b8fa484d7b7e03b86184f6 152948 |
|
08-Feb-2005 |
striker |
More mod_cache tweakage.
* modules/cache/cache_storage.c
(cache_select_url): Add If-Modified-Since regardless of having
an ETag or not. See: RFC2616, 14.26. |
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. |
08cb74ca432a8c24e39f17dedce527e6a47b8001 151408 |
|
04-Feb-2005 |
jerenkrantz |
Update copyright year to 2005 and standardize on current copyright owner line. |
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 |