You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by as...@apache.org on 2005/08/23 15:35:11 UTC
svn commit: r239406 - in /httpd/httpd/trunk: modules/cache/mod_disk_cache.c
modules/cache/mod_disk_cache.h support/htcacheclean.c
Author: asteinmetz
Date: Tue Aug 23 06:35:00 2005
New Revision: 239406
URL: http://svn.apache.org/viewcvs?rev=239406&view=rev
Log:
Split mod_disk_cache.c into mod_disk_cache.c and mod_disk_cache.h
to allow inclusion of mod_disk_cache.h in htcacheclean.c.
Added:
httpd/httpd/trunk/modules/cache/mod_disk_cache.h (with props)
Modified:
httpd/httpd/trunk/modules/cache/mod_disk_cache.c
httpd/httpd/trunk/support/htcacheclean.c
Modified: httpd/httpd/trunk/modules/cache/mod_disk_cache.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/cache/mod_disk_cache.c?rev=239406&r1=239405&r2=239406&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/cache/mod_disk_cache.c (original)
+++ httpd/httpd/trunk/modules/cache/mod_disk_cache.c Tue Aug 23 06:35:00 2005
@@ -17,6 +17,7 @@
#include "apr_file_io.h"
#include "apr_strings.h"
#include "mod_cache.h"
+#include "mod_disk_cache.h"
#include "ap_provider.h"
#include "util_filter.h"
#include "util_script.h"
@@ -50,66 +51,6 @@
* CRLF
*/
-#define VARY_FORMAT_VERSION 3
-#define DISK_FORMAT_VERSION 4
-
-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;
-} disk_cache_info_t;
-
-/*
- * disk_cache_object_t
- * Pointed to by cache_object_t::vobj
- */
-typedef struct disk_cache_object {
- const char *root; /* the location of the cache directory */
- apr_size_t root_len;
- char *tempfile; /* temp file tohold the content */
- const char *prefix;
- const char *datafile; /* name of file where the data will go */
- const char *hdrsfile; /* name of file where the hdrs will go */
- const char *hashfile; /* Computed hash key for this URI */
- const char *name; /* Requested URI without vary bits - suitable for mortals. */
- const char *key; /* On-disk prefix; URI with Vary bits (if present) */
- apr_file_t *fd; /* data file */
- apr_file_t *hfd; /* headers file */
- apr_file_t *tfd; /* temporary file for data */
- apr_off_t file_size; /* File size of the cached data file */
- disk_cache_info_t disk_info; /* Header information. */
-} disk_cache_object_t;
-
-
-/*
- * mod_disk_cache configuration
- */
-/* TODO: Make defaults OS specific */
-#define CACHEFILE_LEN 20 /* must be less than HASH_LEN/2 */
-#define DEFAULT_DIRLEVELS 3
-#define DEFAULT_DIRLENGTH 2
-#define DEFAULT_MIN_FILE_SIZE 1
-#define DEFAULT_MAX_FILE_SIZE 1000000
-
-typedef struct {
- const char* cache_root;
- apr_size_t cache_root_len;
- int dirlevels; /* Number of levels of subdirectories */
- int dirlength; /* Length of subdirectory names */
- apr_size_t minfs; /* minumum file size for cached files */
- apr_size_t maxfs; /* maximum file size for cached files */
-} disk_cache_conf;
-
module AP_MODULE_DECLARE_DATA disk_cache_module;
/* Forward declarations */
@@ -124,9 +65,6 @@
/*
* Local static functions
*/
-#define CACHE_HEADER_SUFFIX ".header"
-#define CACHE_DATA_SUFFIX ".data"
-#define CACHE_VDIR_SUFFIX ".vary"
static char *header_file(apr_pool_t *p, disk_cache_conf *conf,
disk_cache_object_t *dobj, const char *name)
@@ -378,7 +316,6 @@
/*
* Hook and mod_cache callback functions
*/
-#define AP_TEMPFILE "/aptmpXXXXXX"
static int create_entity(cache_handle_t *h, request_rec *r, const char *key, apr_off_t len)
{
disk_cache_conf *conf = ap_get_module_config(r->server->module_config,
Added: httpd/httpd/trunk/modules/cache/mod_disk_cache.h
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/cache/mod_disk_cache.h?rev=239406&view=auto
==============================================================================
--- httpd/httpd/trunk/modules/cache/mod_disk_cache.h (added)
+++ httpd/httpd/trunk/modules/cache/mod_disk_cache.h Tue Aug 23 06:35:00 2005
@@ -0,0 +1,95 @@
+/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed 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.
+ */
+
+#ifndef MOD_DISK_CACHE_H
+#define MOD_DISK_CACHE_H
+
+/*
+ * include for mod_disk_cache: Disk Based HTTP 1.1 Cache.
+ */
+
+#define VARY_FORMAT_VERSION 3
+#define DISK_FORMAT_VERSION 4
+
+#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;
+} disk_cache_info_t;
+
+/*
+ * disk_cache_object_t
+ * Pointed to by cache_object_t::vobj
+ */
+typedef struct disk_cache_object {
+ const char *root; /* the location of the cache directory */
+ apr_size_t root_len;
+ char *tempfile; /* temp file tohold the content */
+ const char *prefix;
+ const char *datafile; /* name of file where the data will go */
+ const char *hdrsfile; /* name of file where the hdrs will go */
+ const char *hashfile; /* Computed hash key for this URI */
+ const char *name; /* Requested URI without vary bits - suitable for mortals. */
+ const char *key; /* On-disk prefix; URI with Vary bits (if present) */
+ apr_file_t *fd; /* data file */
+ apr_file_t *hfd; /* headers file */
+ apr_file_t *tfd; /* temporary file for data */
+ apr_off_t file_size; /* File size of the cached data file */
+ disk_cache_info_t disk_info; /* Header information. */
+} disk_cache_object_t;
+
+
+/*
+ * mod_disk_cache configuration
+ */
+/* TODO: Make defaults OS specific */
+#define CACHEFILE_LEN 20 /* must be less than HASH_LEN/2 */
+#define DEFAULT_DIRLEVELS 3
+#define DEFAULT_DIRLENGTH 2
+#define DEFAULT_MIN_FILE_SIZE 1
+#define DEFAULT_MAX_FILE_SIZE 1000000
+
+typedef struct {
+ const char* cache_root;
+ apr_size_t cache_root_len;
+ int dirlevels; /* Number of levels of subdirectories */
+ int dirlength; /* Length of subdirectory names */
+ apr_size_t minfs; /* minumum file size for cached files */
+ apr_size_t maxfs; /* maximum file size for cached files */
+} disk_cache_conf;
+
+#endif /*MOD_DISK_CACHE_H*/
Propchange: httpd/httpd/trunk/modules/cache/mod_disk_cache.h
------------------------------------------------------------------------------
svn:eol-style = native
Modified: httpd/httpd/trunk/support/htcacheclean.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/support/htcacheclean.c?rev=239406&r1=239405&r2=239406&view=diff
==============================================================================
--- httpd/httpd/trunk/support/htcacheclean.c (original)
+++ httpd/httpd/trunk/support/htcacheclean.c Tue Aug 23 06:35:00 2005
@@ -34,6 +34,7 @@
#include "apr_getopt.h"
#include "apr_ring.h"
#include "apr_date.h"
+#include "../modules/cache/mod_disk_cache.h"
#if APR_HAVE_UNISTD_H
#include <unistd.h>
@@ -41,55 +42,6 @@
#if APR_HAVE_STDLIB_H
#include <stdlib.h>
#endif
-
-/* mod_disk_cache.c extract start */
-
-#define VARY_FORMAT_VERSION 3
-#define DISK_FORMAT_VERSION 4
-
-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;
-} disk_cache_info_t;
-
-#define CACHE_HEADER_SUFFIX ".header"
-#define CACHE_DATA_SUFFIX ".data"
-/* mod_disk_cache.c extract end */
-
-/* mod_disk_cache.c related definitions start */
-
-/*
- * this is based on #define AP_TEMPFILE "/aptmpXXXXXX"
- *
- * the above definition could be reworked into the following:
- *
- * #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
- *
- * these definitions would then match the definitions below:
- */
-
-#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)
-
-/* mod_disk_cache.c related definitions end */
/* define the following for debugging */
#undef DEBUG