mirror of
https://github.com/apache/httpd.git
synced 2025-11-06 16:49:32 +03:00
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. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@999630 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
5
CHANGES
5
CHANGES
@@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
Changes with Apache 2.3.9
|
Changes with Apache 2.3.9
|
||||||
|
|
||||||
|
*) 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.
|
||||||
|
[Graham Leggett]
|
||||||
|
|
||||||
*) mod_authz_core: Allow authz providers to check args while reading the
|
*) mod_authz_core: Allow authz providers to check args while reading the
|
||||||
config and allow to cache parsed args. [Stefan Fritsch]
|
config and allow to cache parsed args. [Stefan Fritsch]
|
||||||
|
|
||||||
|
|||||||
4
modules/cache/cache_storage.c
vendored
4
modules/cache/cache_storage.c
vendored
@@ -66,7 +66,7 @@ int cache_remove_url(cache_request_rec *cache, apr_pool_t *p)
|
|||||||
* decide whether or not it wants to cache this particular entity.
|
* decide whether or not it wants to cache this particular entity.
|
||||||
* If the size is unknown, a size of -1 should be set.
|
* If the size is unknown, a size of -1 should be set.
|
||||||
*/
|
*/
|
||||||
int cache_create_entity(request_rec *r, apr_off_t size)
|
int cache_create_entity(request_rec *r, apr_off_t size, apr_bucket_brigade *in)
|
||||||
{
|
{
|
||||||
cache_provider_list *list;
|
cache_provider_list *list;
|
||||||
cache_handle_t *h = apr_pcalloc(r->pool, sizeof(cache_handle_t));
|
cache_handle_t *h = apr_pcalloc(r->pool, sizeof(cache_handle_t));
|
||||||
@@ -86,7 +86,7 @@ int cache_create_entity(request_rec *r, apr_off_t size)
|
|||||||
list = cache->providers;
|
list = cache->providers;
|
||||||
/* for each specified cache type, delete the URL */
|
/* for each specified cache type, delete the URL */
|
||||||
while (list) {
|
while (list) {
|
||||||
switch (rv = list->provider->create_entity(h, r, key, size)) {
|
switch (rv = list->provider->create_entity(h, r, key, size, in)) {
|
||||||
case OK: {
|
case OK: {
|
||||||
cache->handle = h;
|
cache->handle = h;
|
||||||
cache->provider = list->provider;
|
cache->provider = list->provider;
|
||||||
|
|||||||
2
modules/cache/mod_cache.c
vendored
2
modules/cache/mod_cache.c
vendored
@@ -1004,7 +1004,7 @@ static int cache_save_filter(ap_filter_t *f, apr_bucket_brigade *in)
|
|||||||
|
|
||||||
/* no cache handle, create a new entity only for non-HEAD requests */
|
/* no cache handle, create a new entity only for non-HEAD requests */
|
||||||
if (!cache->handle && !r->header_only) {
|
if (!cache->handle && !r->header_only) {
|
||||||
rv = cache_create_entity(r, size);
|
rv = cache_create_entity(r, size, in);
|
||||||
info = apr_pcalloc(r->pool, sizeof(cache_info));
|
info = apr_pcalloc(r->pool, sizeof(cache_info));
|
||||||
/* We only set info->status upon the initial creation. */
|
/* We only set info->status upon the initial creation. */
|
||||||
info->status = r->status;
|
info->status = r->status;
|
||||||
|
|||||||
4
modules/cache/mod_cache.h
vendored
4
modules/cache/mod_cache.h
vendored
@@ -236,7 +236,7 @@ typedef struct {
|
|||||||
apr_status_t (*recall_headers) (cache_handle_t *h, request_rec *r);
|
apr_status_t (*recall_headers) (cache_handle_t *h, request_rec *r);
|
||||||
apr_status_t (*recall_body) (cache_handle_t *h, apr_pool_t *p, apr_bucket_brigade *bb);
|
apr_status_t (*recall_body) (cache_handle_t *h, apr_pool_t *p, apr_bucket_brigade *bb);
|
||||||
int (*create_entity) (cache_handle_t *h, request_rec *r,
|
int (*create_entity) (cache_handle_t *h, request_rec *r,
|
||||||
const char *urlkey, apr_off_t len);
|
const char *urlkey, apr_off_t len, apr_bucket_brigade *bb);
|
||||||
int (*open_entity) (cache_handle_t *h, request_rec *r,
|
int (*open_entity) (cache_handle_t *h, request_rec *r,
|
||||||
const char *urlkey);
|
const char *urlkey);
|
||||||
int (*remove_url) (cache_handle_t *h, apr_pool_t *p);
|
int (*remove_url) (cache_handle_t *h, apr_pool_t *p);
|
||||||
@@ -388,7 +388,7 @@ CACHE_DECLARE(apr_table_t *)ap_cache_cacheable_hdrs_out(apr_pool_t *pool,
|
|||||||
*/
|
*/
|
||||||
#define MOD_CACHE_REQUEST_REC "mod_cache_request_rec"
|
#define MOD_CACHE_REQUEST_REC "mod_cache_request_rec"
|
||||||
int cache_remove_url(cache_request_rec *cache, apr_pool_t *p);
|
int cache_remove_url(cache_request_rec *cache, apr_pool_t *p);
|
||||||
int cache_create_entity(request_rec *r, apr_off_t size);
|
int cache_create_entity(request_rec *r, apr_off_t size, apr_bucket_brigade *in);
|
||||||
int cache_select(request_rec *r);
|
int cache_select(request_rec *r);
|
||||||
apr_status_t cache_generate_key_default( request_rec *r, apr_pool_t*p, char**key );
|
apr_status_t cache_generate_key_default( request_rec *r, apr_pool_t*p, char**key );
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user