You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Davi Arnaut <da...@haxent.com.br> on 2006/07/24 02:50:39 UTC

[patch 09/10] move open_entity

Move the open_entity call to cache_recall_entity_headers, adding a
new urlkey parameter.

Index: trunk/modules/cache/cache_storage.c
===================================================================
--- trunk.orig/modules/cache/cache_storage.c
+++ trunk/modules/cache/cache_storage.c
@@ -37,8 +37,16 @@ apr_status_t cache_store_entity_body(cac
 }
 
 apr_status_t cache_recall_entity_headers(const cache_provider *provider,
-                                         cache_handle_t *h, request_rec *r)
+                                         cache_handle_t *h, request_rec *r,
+                                         const char *urlkey)
 {
+    apr_status_t rv;
+
+    rv = provider->open_entity(h, r, urlkey);
+
+    if (rv != OK)
+        return rv;
+
     return provider->recall_headers(h, r);
 }
 
@@ -332,14 +340,9 @@ int cache_select(request_rec *r)
     list = cache->providers;
 
     while (list) {
-        switch ((rv = list->provider->open_entity(h, r, key))) {
-        case OK: {
-
-            if (cache_recall_entity_headers(list->provider, h, r) != APR_SUCCESS) {
-                /* TODO: Handle this error */
-                return DECLINED;
-            }
+        rv = cache_recall_entity_headers(list->provider, h, r, key);
 
+        if (rv == APR_SUCCESS) {
             if (cache_check_request(h, r, cache, list) != OK) {
                 return DECLINED;
             }
@@ -350,16 +353,11 @@ int cache_select(request_rec *r)
             cache->handle = h;
             return OK;
         }
-        case DECLINED: {
+        else {
             /* try again with next cache type */
             list = list->next;
             continue;
         }
-        default: {
-            /* oo-er! an error */
-            return rv;
-        }
-        }
     }
     return DECLINED;
 }
Index: trunk/modules/cache/mod_cache.h
===================================================================
--- trunk.orig/modules/cache/mod_cache.h
+++ trunk/modules/cache/mod_cache.h
@@ -308,7 +308,8 @@ const char* cache_create_key( request_re
 apr_status_t cache_store_entity_headers(cache_request_rec *cache, request_rec *r, cache_info *info);
 apr_status_t cache_store_entity_body(cache_request_rec *cache, request_rec *r, apr_bucket_brigade *bb);
 
-apr_status_t cache_recall_entity_headers(const cache_provider *provider, cache_handle_t *h, request_rec *r);
+apr_status_t cache_recall_entity_headers(const cache_provider *provider, cache_handle_t *h, request_rec *r,
+                                         const char *urlkey);
 apr_status_t cache_recall_entity_body(cache_request_rec *cache, apr_pool_t *pool, apr_bucket_brigade *bb);
 
 /* hooks */

--