Committed. Thanks Joe.
Bill
>
> I made a mimimal set of changes to mod_disk_cache.c so that I could
> simply try out the current mod_disk_cache functionality. This patch
> fixes a few core dumps related to usage of the apr_pstrcat method and
> some minor compiler warnings.
>
>
> Index: modules/experimental/mod_cache.c
> ===================================================================
> RCS file: /home/cvspublic/httpd-2.0/modules/experimental/mod_cache.c,v
> retrieving revision 1.25
> diff -u -r1.25 mod_cache.c
> --- modules/experimental/mod_cache.c 5 Feb 2002 00:15:42 -0000 1.25
> +++ modules/experimental/mod_cache.c 5 Feb 2002 01:56:28 -0000
> @@ -931,8 +931,8 @@
> conf->complete_set = 1;
> return NULL;
> }
> -static cache_post_config(apr_pool_t *p, apr_pool_t *plog,
> - apr_pool_t *ptemp, server_rec *s)
> +static int
> +cache_post_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
> {
> /* This is the means by which unusual (non-unix) os's may find alternate
> * means to run a given command (e.g. shebang/registry parsing on Win32)
> Index: modules/experimental/mod_disk_cache.c
> ===================================================================
> RCS file: /home/cvspublic/httpd-2.0/modules/experimental/mod_disk_cache.c,v
> retrieving revision 1.17
> diff -u -r1.17 mod_disk_cache.c
> --- modules/experimental/mod_disk_cache.c 4 Feb 2002 14:43:11 -0000 1.17
> +++ modules/experimental/mod_disk_cache.c 5 Feb 2002 01:56:28 -0000
> @@ -59,11 +59,13 @@
> #include "mod_cache.h"
> #include "apr_file_io.h"
> #include "apr_strings.h"
> -#include "http_config.h"
> -#include "http_log.h"
> #include "util_filter.h"
> #include "util_script.h"
>
> +#if APR_HAVE_UNISTD_H
> +#include <unistd.h> /* needed for unlink/link */
> +#endif
> +
> /*
> * disk_cache_object_t
> * Pointed to by cache_object_t::vobj
> @@ -116,7 +118,7 @@
> {
> char *hashfile;
> hashfile = generate_name(p, dirlevels, dirlength, name);
> - return apr_pstrcat(p, root, "/", hashfile, CACHE_HEADER_SUFFIX);
> + return apr_pstrcat(p, root, "/", hashfile, CACHE_HEADER_SUFFIX, NULL);
> }
>
> static char *data_file(apr_pool_t *p, int dirlevels, int dirlength,
> @@ -124,7 +126,7 @@
> {
> char *hashfile;
> hashfile = generate_name(p, dirlevels, dirlength, name);
> - return apr_pstrcat(p, root, "/", hashfile, CACHE_DATA_SUFFIX);
> + return apr_pstrcat(p, root, "/", hashfile, CACHE_DATA_SUFFIX, NULL);
> }
>
> static int mkdir_structure(char *file, const char *root)
> @@ -304,7 +306,7 @@
> obj->complete = 0; /* Cache object is not complete */
>
> info = apr_pcalloc(r->pool, sizeof(cache_info));
> - info->name = key;
> + info->name = (char *) key;
> obj->info = *(info);
>
> #ifdef AS400
> @@ -351,7 +353,6 @@
> {
> disk_cache_conf *conf = ap_get_module_config(r->server->module_config,
> &disk_cache_module);
> - apr_status_t ret = DECLINED;
> apr_status_t rc;
> char *data = data_file(r->pool, conf->dirlevels, conf->dirlength,
> conf->cache_root, key);
> @@ -366,12 +367,12 @@
> }
>
> obj = apr_pcalloc(r->pool, sizeof(cache_object_t));
> - obj->key = key;
> + obj->key = (char *) key;
>
> rc = apr_file_open(&fd, data, APR_WRITE | APR_READ | APR_BINARY, 0, r->pool);
> if (rc == APR_SUCCESS) {
> info = apr_pcalloc(r->pool, sizeof(cache_info));
> - info->name = key;
> + info->name = (char *) key;
> /* XXX log message */
> info->fd = fd;
> info->datafile = data;
> @@ -403,6 +404,7 @@
>
> static int remove_url(const char *type, char *key)
> {
> + return OK;
> }
>
> static int remove_entity(cache_handle_t *h)
> @@ -458,7 +460,7 @@
> }
>
> /* XXX log */
> - if(rv = file_cache_read_mydata(fd, info, r) != APR_SUCCESS) {
> + if((rv = file_cache_read_mydata(fd, info, r)) != APR_SUCCESS) {
> /* XXX log message */
> apr_file_close(fd);
> return rv;
> @@ -530,9 +532,9 @@
> else {
> /* XXX log message */
> }
> - if(rc = apr_file_open(&hfd, info->hdrsfile,
> + if((rc = apr_file_open(&hfd, info->hdrsfile,
> APR_WRITE | APR_CREATE | APR_BINARY | APR_EXCL, /*
>XXX:?
| APR_INHERIT | APR_NONQSYS, */
> - 0, r->pool) != APR_SUCCESS) {
> + 0, r->pool)) != APR_SUCCESS) {
> /* XXX log message */
> return rc;
> }
> @@ -555,7 +557,7 @@
> buf = apr_pstrcat(r->pool, statusbuf, CRLF, NULL);
> amt = strlen(buf);
> apr_file_write(hfd, buf, &amt);
> - buf = apr_pstrcat(r->pool, r->status_line, '\n', NULL);
> + buf = apr_pstrcat(r->pool, r->status_line, "\n", NULL);
> amt = strlen(buf);
> apr_file_write(hfd, buf, &amt);
> buf = apr_pstrcat(r->pool, CRLF, NULL);
> @@ -608,7 +610,7 @@
> * mod_disk_cache configuration directives handlers.
> */
> static const char
> -*set_cache_root(cmd_parms *parms, void *struct_ptr, char *arg)
> +*set_cache_root(cmd_parms *parms, void *in_struct_ptr, const char *arg)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -616,7 +618,7 @@
> return NULL;
> }
> static const char
> -*set_cache_size(cmd_parms *parms, char *struct_ptr, char *arg)
> +*set_cache_size(cmd_parms *parms, void *in_struct_ptr, const char *arg)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -624,7 +626,7 @@
> return NULL;
> }
> static const char
> -*set_cache_gcint(cmd_parms *parms, char *struct_ptr, char *arg)
> +*set_cache_gcint(cmd_parms *parms, void *in_struct_ptr, const char *arg)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -632,7 +634,7 @@
> return NULL;
> }
> static const char
> -*set_cache_dirlevels(cmd_parms *parms, char *struct_ptr, char *arg)
> +*set_cache_dirlevels(cmd_parms *parms, void *in_struct_ptr, const char *arg)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -640,7 +642,7 @@
> return NULL;
> }
> static const char
> -*set_cache_dirlength(cmd_parms *parms, char *struct_ptr, char *arg)
> +*set_cache_dirlength(cmd_parms *parms, void *in_struct_ptr, const char *arg)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -648,7 +650,7 @@
> return NULL;
> }
> static const char
> -*set_cache_exchk(cmd_parms *parms, char *struct_ptr, char *arg)
> +*set_cache_exchk(cmd_parms *parms, void *in_struct_ptr, int flag)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -656,7 +658,7 @@
> return NULL;
> }
> static const char
> -*set_cache_minfs(cmd_parms *parms, char *struct_ptr, char *arg)
> +*set_cache_minfs(cmd_parms *parms, void *in_struct_ptr, const char *arg)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -664,7 +666,7 @@
> return NULL;
> }
> static const char
> -*set_cache_maxfs(cmd_parms *parms, char *struct_ptr, char *arg)
> +*set_cache_maxfs(cmd_parms *parms, void *in_struct_ptr, const char *arg)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -672,7 +674,7 @@
> return NULL;
> }
> static const char
> -*set_cache_minetm(cmd_parms *parms, char *struct_ptr, char *arg)
> +*set_cache_minetm(cmd_parms *parms, void *in_struct_ptr, const char *arg)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -680,7 +682,7 @@
> return NULL;
> }
> static const char
> -*set_cache_gctime(cmd_parms *parms, char *struct_ptr, char *arg)
> +*set_cache_gctime(cmd_parms *parms, void *in_struct_ptr, const char *arg)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -688,7 +690,7 @@
> return NULL;
> }
> static const char
> -*add_cache_gcclean(cmd_parms *parms, char *struct_ptr, char *arg)
> +*add_cache_gcclean(cmd_parms *parms, void *in_struct_ptr, const char *arg, const
>char
*arg1)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -696,7 +698,7 @@
> return NULL;
> }
> static const char
> -*add_cache_gcclnun(cmd_parms *parms, char *struct_ptr, char *arg)
> +*add_cache_gcclnun(cmd_parms *parms, void *in_struct_ptr, const char *arg, const
>char
*arg1)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
> @@ -704,7 +706,7 @@
> return NULL;
> }
> static const char
> -*set_cache_maxgcmem(cmd_parms *parms, char *struct_ptr, char *arg)
> +*set_cache_maxgcmem(cmd_parms *parms, void *in_struct_ptr, const char *arg)
> {
> disk_cache_conf *conf = ap_get_module_config(parms->server->module_config,
> &disk_cache_module);
>