From: Guenter Knauf Date: Wed, 10 Nov 2010 23:43:06 +0000 (+0000) Subject: Splitted off cache defines/structs used by htcacheclean. X-Git-Tag: 2.3.9~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c86bf4327d91cd4c1266ac5983daf44c453c803f;p=thirdparty%2Fapache%2Fhttpd.git Splitted off cache defines/structs used by htcacheclean. This makes htcacheclean again independent from httpd.h. Submitted by: NormW git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1033779 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/cache/cache_common.h b/modules/cache/cache_common.h new file mode 100644 index 00000000000..57686670ba7 --- /dev/null +++ b/modules/cache/cache_common.h @@ -0,0 +1,94 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file cache_common.h + * @brief Common Cache vars/structs + * + * @defgroup Cache_cache Cache Functions + * @ingroup MOD_CACHE + * @{ + */ + +#ifndef CACHE_COMMON_H +#define CACHE_COMMON_H + +#define VARY_FORMAT_VERSION 5 +#define DISK_FORMAT_VERSION 6 + +#define CACHE_HEADER_SUFFIX ".header" +#define CACHE_DATA_SUFFIX ".data" +#define CACHE_VDIR_SUFFIX ".vary" + +#define AP_TEMPFILE_PREFIX "/" +#define AP_TEMPFILE_BASE "aptmp" +#define AP_TEMPFILE_SUFFIX "XXXXXX" +#define AP_TEMPFILE_BASELEN strlen(AP_TEMPFILE_BASE) +#define AP_TEMPFILE_NAMELEN strlen(AP_TEMPFILE_BASE AP_TEMPFILE_SUFFIX) +#define AP_TEMPFILE AP_TEMPFILE_PREFIX AP_TEMPFILE_BASE AP_TEMPFILE_SUFFIX + +/* a cache control header breakdown */ +typedef struct cache_control cache_control_t; +struct cache_control { + unsigned int parsed:1; + unsigned int cache_control:1; + unsigned int pragma:1; + unsigned int no_cache:1; + unsigned int no_cache_header:1; /* no cache by header match */ + unsigned int no_store:1; + unsigned int max_age:1; + unsigned int max_stale:1; + unsigned int min_fresh:1; + unsigned int no_transform:1; + unsigned int only_if_cached:1; + unsigned int public:1; + unsigned int private:1; + unsigned int private_header:1; /* private by header match */ + unsigned int must_revalidate:1; + unsigned int proxy_revalidate:1; + unsigned int s_maxage:1; + apr_int64_t max_age_value; /* if positive, then set */ + apr_int64_t max_stale_value; /* if positive, then set */ + apr_int64_t min_fresh_value; /* if positive, then set */ + apr_int64_t s_maxage_value; /* if positive, then set */ +}; + + +typedef struct { + /* Indicates the format of the header struct stored on-disk. */ + apr_uint32_t format; + /* The HTTP status code returned for this response. */ + int status; + /* The size of the entity name that follows. */ + apr_size_t name_len; + /* The number of times we've cached this entity. */ + apr_size_t entity_version; + /* Miscellaneous time values. */ + apr_time_t date; + apr_time_t expire; + apr_time_t request_time; + apr_time_t response_time; + /* The ident of the body file, so we can test the body matches the header */ + apr_ino_t inode; + apr_dev_t device; + /* Does this cached request have a body? */ + int has_body:1; + int header_only:1; + /* The parsed cache control header */ + cache_control_t control; +} disk_cache_info_t; + +#endif /* CACHE_COMMON_H */ diff --git a/modules/cache/mod_cache.h b/modules/cache/mod_cache.h index 1d234cea43b..babffb7cccc 100644 --- a/modules/cache/mod_cache.h +++ b/modules/cache/mod_cache.h @@ -31,6 +31,8 @@ #include "apr_optional.h" #include "apr_hooks.h" +#include "cache_common.h" + /* Create a set of CACHE_DECLARE(type), CACHE_DECLARE_NONSTD(type) and * CACHE_DECLARE_DATA with appropriate export and import tags for the platform */ @@ -52,32 +54,6 @@ #define CACHE_DECLARE_DATA __declspec(dllimport) #endif -/* a cache control header breakdown */ -typedef struct cache_control cache_control_t; -struct cache_control { - unsigned int parsed:1; - unsigned int cache_control:1; - unsigned int pragma:1; - unsigned int no_cache:1; - unsigned int no_cache_header:1; /* no cache by header match */ - unsigned int no_store:1; - unsigned int max_age:1; - unsigned int max_stale:1; - unsigned int min_fresh:1; - unsigned int no_transform:1; - unsigned int only_if_cached:1; - unsigned int public:1; - unsigned int private:1; - unsigned int private_header:1; /* private by header match */ - unsigned int must_revalidate:1; - unsigned int proxy_revalidate:1; - unsigned int s_maxage:1; - apr_int64_t max_age_value; /* if positive, then set */ - apr_int64_t max_stale_value; /* if positive, then set */ - apr_int64_t min_fresh_value; /* if positive, then set */ - apr_int64_t s_maxage_value; /* if positive, then set */ -}; - /* cache info information */ typedef struct cache_info cache_info; struct cache_info { diff --git a/modules/cache/mod_disk_cache.h b/modules/cache/mod_disk_cache.h index d22f816e873..f16801b3434 100644 --- a/modules/cache/mod_disk_cache.h +++ b/modules/cache/mod_disk_cache.h @@ -20,48 +20,12 @@ #include "mod_cache.h" #include "apr_file_io.h" +#include "cache_common.h" + /* * include for mod_disk_cache: Disk Based HTTP 1.1 Cache. */ -#define VARY_FORMAT_VERSION 5 -#define DISK_FORMAT_VERSION 6 - -#define CACHE_HEADER_SUFFIX ".header" -#define CACHE_DATA_SUFFIX ".data" -#define CACHE_VDIR_SUFFIX ".vary" - -#define AP_TEMPFILE_PREFIX "/" -#define AP_TEMPFILE_BASE "aptmp" -#define AP_TEMPFILE_SUFFIX "XXXXXX" -#define AP_TEMPFILE_BASELEN strlen(AP_TEMPFILE_BASE) -#define AP_TEMPFILE_NAMELEN strlen(AP_TEMPFILE_BASE AP_TEMPFILE_SUFFIX) -#define AP_TEMPFILE AP_TEMPFILE_PREFIX AP_TEMPFILE_BASE AP_TEMPFILE_SUFFIX - -typedef struct { - /* Indicates the format of the header struct stored on-disk. */ - apr_uint32_t format; - /* The HTTP status code returned for this response. */ - int status; - /* The size of the entity name that follows. */ - apr_size_t name_len; - /* The number of times we've cached this entity. */ - apr_size_t entity_version; - /* Miscellaneous time values. */ - apr_time_t date; - apr_time_t expire; - apr_time_t request_time; - apr_time_t response_time; - /* The ident of the body file, so we can test the body matches the header */ - apr_ino_t inode; - apr_dev_t device; - /* Does this cached request have a body? */ - int has_body:1; - int header_only:1; - /* The parsed cache control header */ - cache_control_t control; -} disk_cache_info_t; - typedef struct { apr_pool_t *pool; const char *file; diff --git a/support/htcacheclean.c b/support/htcacheclean.c index a6422504bdc..d2b80efa66a 100644 --- a/support/htcacheclean.c +++ b/support/htcacheclean.c @@ -36,7 +36,7 @@ #include "apr_ring.h" #include "apr_date.h" #include "apr_buckets.h" -#include "../modules/cache/mod_disk_cache.h" +#include "../modules/cache/cache_common.h" #if APR_HAVE_UNISTD_H #include