mirror of
https://github.com/apache/httpd.git
synced 2025-11-06 16:49:32 +03:00
Implement mod_disk_cache's remove_url.
(Minor tweaks and comment fixes by Justin.) Suggested by: Paul Querna, Justin Erenkrantz Submitted by: Rudiger Plum <ruediger.pluem vodafone.com> Reviewed by: Justin Erenkrantz git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@231486 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,6 +1,9 @@
|
|||||||
-*- coding: utf-8 -*-
|
-*- coding: utf-8 -*-
|
||||||
Changes with Apache 2.3.0
|
Changes with Apache 2.3.0
|
||||||
|
|
||||||
|
*) mod_disk_cache: Properly remove files from cache when needed.
|
||||||
|
[Rüdiger Plüm ruediger.pluem vodafone.com]
|
||||||
|
|
||||||
*) mod_disk_cache: Support htcacheclean removing directories.
|
*) mod_disk_cache: Support htcacheclean removing directories.
|
||||||
[Andreas Steinmetz]
|
[Andreas Steinmetz]
|
||||||
|
|
||||||
|
|||||||
46
modules/cache/mod_disk_cache.c
vendored
46
modules/cache/mod_disk_cache.c
vendored
@@ -541,9 +541,51 @@ static int remove_entity(cache_handle_t *h)
|
|||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int remove_url(const char *key)
|
static int remove_url(cache_handle_t *h, apr_pool_t *p)
|
||||||
{
|
{
|
||||||
/* XXX: Delete file from cache! */
|
apr_status_t rc;
|
||||||
|
disk_cache_object_t *dobj;
|
||||||
|
|
||||||
|
/* Get disk cache object from cache handle */
|
||||||
|
dobj = (disk_cache_object_t *) h->cache_obj->vobj;
|
||||||
|
if (!dobj) {
|
||||||
|
return DECLINED;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Delete headers file */
|
||||||
|
if (dobj->hdrsfile) {
|
||||||
|
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, NULL,
|
||||||
|
"disk_cache: Deleting %s from cache.", dobj->hdrsfile);
|
||||||
|
|
||||||
|
rc = apr_file_remove(dobj->hdrsfile, p);
|
||||||
|
if ((rc != APR_SUCCESS) && (rc != APR_ENOENT)) {
|
||||||
|
/* Will only result in an output if httpd is started with -e debug.
|
||||||
|
* For reason see log_error_core for the case s == NULL.
|
||||||
|
*/
|
||||||
|
ap_log_error(APLOG_MARK, APLOG_DEBUG, rc, NULL,
|
||||||
|
"disk_cache: Failed to delete headers file %s from cache.",
|
||||||
|
dobj->hdrsfile);
|
||||||
|
return DECLINED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Delete data file */
|
||||||
|
if (dobj->datafile) {
|
||||||
|
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, NULL,
|
||||||
|
"disk_cache: Deleting %s from cache.", dobj->datafile);
|
||||||
|
|
||||||
|
rc = apr_file_remove(dobj->datafile, p);
|
||||||
|
if ((rc != APR_SUCCESS) && (rc != APR_ENOENT)) {
|
||||||
|
/* Will only result in an output if httpd is started with -e debug.
|
||||||
|
* For reason see log_error_core for the case s == NULL.
|
||||||
|
*/
|
||||||
|
ap_log_error(APLOG_MARK, APLOG_DEBUG, rc, NULL,
|
||||||
|
"disk_cache: Failed to delete data file %s from cache.",
|
||||||
|
dobj->datafile);
|
||||||
|
return DECLINED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user