Justin Erenkrantz wrote:


I'd be fine with it matching store_body's prototype. (Which is what you have.) -- justin


Here's a patch that does this.


--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies
diff -ru httpd-trunk.orig/modules/cache/mod_cache.c 
httpd-trunk.new2/modules/cache/mod_cache.c
--- httpd-trunk.orig/modules/cache/mod_cache.c  2005-08-09 11:51:09.471251000 
-0400
+++ httpd-trunk.new2/modules/cache/mod_cache.c  2005-08-18 13:41:31.414487623 
-0400
@@ -206,7 +206,7 @@
     r->status = cache->handle->cache_obj->info.status;
 
     /* recall_headers() was called in cache_select_url() */
-    cache->provider->recall_body(cache->handle, r->pool, bb);
+    cache->provider->recall_body(cache->handle, r, bb);
 
     /* This filter is done once it has served up its content */
     ap_remove_output_filter(f);
@@ -695,7 +695,7 @@
             APR_BRIGADE_INSERT_TAIL(bb, bkt);
         }
         else {
-            cache->provider->recall_body(cache->handle, r->pool, bb);
+            cache->provider->recall_body(cache->handle, r, bb);
         }
 
         cache->block_response = 1;
diff -ru httpd-trunk.orig/modules/cache/mod_cache.h 
httpd-trunk.new2/modules/cache/mod_cache.h
--- httpd-trunk.orig/modules/cache/mod_cache.h  2005-07-13 15:23:03.882379000 
-0400
+++ httpd-trunk.new2/modules/cache/mod_cache.h  2005-08-18 13:41:04.332966989 
-0400
@@ -192,7 +192,7 @@
     apr_status_t (*store_headers)(cache_handle_t *h, request_rec *r, 
cache_info *i);
     apr_status_t (*store_body)(cache_handle_t *h, request_rec *r, 
apr_bucket_brigade *b);
     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, request_rec *r, 
apr_bucket_brigade *b);
     int (*create_entity) (cache_handle_t *h, request_rec *r,
                            const char *urlkey, apr_off_t len);
     int (*open_entity) (cache_handle_t *h, request_rec *r,
diff -ru httpd-trunk.orig/modules/cache/mod_disk_cache.c 
httpd-trunk.new2/modules/cache/mod_disk_cache.c
--- httpd-trunk.orig/modules/cache/mod_disk_cache.c     2005-08-09 
11:51:09.473251000 -0400
+++ httpd-trunk.new2/modules/cache/mod_disk_cache.c     2005-08-18 
13:42:57.209296497 -0400
@@ -116,7 +116,7 @@
 static apr_status_t store_headers(cache_handle_t *h, request_rec *r, 
cache_info *i);
 static apr_status_t store_body(cache_handle_t *h, request_rec *r, 
apr_bucket_brigade *b);
 static apr_status_t recall_headers(cache_handle_t *h, request_rec *r);
-static apr_status_t recall_body(cache_handle_t *h, apr_pool_t *p, 
apr_bucket_brigade *bb);
+static apr_status_t recall_body(cache_handle_t *h, request_rec *r, 
apr_bucket_brigade *bb);
 static apr_status_t read_array(request_rec *r, apr_array_header_t* arr, 
                                apr_file_t *file);
 
@@ -699,12 +699,12 @@
     return APR_SUCCESS;
 }
 
-static apr_status_t recall_body(cache_handle_t *h, apr_pool_t *p, 
apr_bucket_brigade *bb)
+static apr_status_t recall_body(cache_handle_t *h, request_rec *r, 
apr_bucket_brigade *bb)
 {
     apr_bucket *e;
     disk_cache_object_t *dobj = (disk_cache_object_t*) h->cache_obj->vobj;
 
-    e = apr_bucket_file_create(dobj->fd, 0, (apr_size_t) dobj->file_size, p,
+    e = apr_bucket_file_create(dobj->fd, 0, (apr_size_t) dobj->file_size, 
r->pool,
                                bb->bucket_alloc);
     APR_BRIGADE_INSERT_HEAD(bb, e);
     e = apr_bucket_eos_create(bb->bucket_alloc);
diff -ru httpd-trunk.orig/modules/cache/mod_mem_cache.c 
httpd-trunk.new2/modules/cache/mod_mem_cache.c
--- httpd-trunk.orig/modules/cache/mod_mem_cache.c      2005-07-13 
15:23:03.871381000 -0400
+++ httpd-trunk.new2/modules/cache/mod_mem_cache.c      2005-08-18 
13:42:11.626836265 -0400
@@ -642,7 +642,7 @@
     return rc;
 }
 
-static apr_status_t recall_body(cache_handle_t *h, apr_pool_t *p, 
apr_bucket_brigade *bb) 
+static apr_status_t recall_body(cache_handle_t *h, request_rec *r, 
apr_bucket_brigade *bb) 
 {
     apr_bucket *b;
     mem_cache_object_t *mobj = (mem_cache_object_t*) h->cache_obj->vobj;
@@ -650,8 +650,8 @@
     if (mobj->type == CACHE_TYPE_FILE) {
         /* CACHE_TYPE_FILE */
         apr_file_t *file;
-        apr_os_file_put(&file, &mobj->fd, mobj->flags, p);
-        b = apr_bucket_file_create(file, 0, mobj->m_len, p, bb->bucket_alloc);
+        apr_os_file_put(&file, &mobj->fd, mobj->flags, r->pool);
+        b = apr_bucket_file_create(file, 0, mobj->m_len, r->pool, 
bb->bucket_alloc);
     }
     else {
         /* CACHE_TYPE_HEAP */

Reply via email to