On Wed, 23 Nov 2011, j...@apache.org wrote:

Author: jim
Date: Wed Nov 23 15:01:42 2011
New Revision: 1205423

URL: http://svn.apache.org/viewvc?rev=1205423&view=rev
Log:
Use ap_pass_brigade_fchk()

Modified:
   httpd/httpd/trunk/modules/cache/mod_cache.c
   httpd/httpd/trunk/modules/mappers/mod_negotiation.c

Modified: httpd/httpd/trunk/modules/cache/mod_cache.c
URL: 
http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/cache/mod_cache.c?rev=1205423&r1=1205422&r2=1205423&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/cache/mod_cache.c (original)
+++ httpd/httpd/trunk/modules/cache/mod_cache.c Wed Nov 23 15:01:42 2011
@@ -292,19 +292,11 @@ static int cache_quick_handler(request_r
    out = apr_brigade_create(r->pool, r->connection->bucket_alloc);
    e = apr_bucket_eos_create(out->bucket_alloc);
    APR_BRIGADE_INSERT_TAIL(out, e);
-    rv = ap_pass_brigade(r->output_filters, out);
-    if (rv != APR_SUCCESS) {
-        if (rv != AP_FILTER_ERROR) {
-            /* no way to know what type of error occurred */
-            ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r,
-                          "cache_quick_handler(%s): ap_pass_brigade returned 
%i",
-                          cache->provider_name, rv);
-            return HTTP_INTERNAL_SERVER_ERROR;
-        }
-        return rv;
-    }

-    return OK;
+    return ap_pass_brigade_fchk(r, out,
+                                apr_psprintf(r->pool,
+                                             "cache_quick_handler(%s): 
ap_pass_brigade returned",
+                                             cache->provider_name));
}

This means we call apr_psprintf even if everything went well. That's far from optimal. Maybe really make it into a macro, then the apr_psprintf would only be executed on error?


/**
@@ -576,19 +568,10 @@ static int cache_handler(request_rec *r)
    out = apr_brigade_create(r->pool, r->connection->bucket_alloc);
    e = apr_bucket_eos_create(out->bucket_alloc);
    APR_BRIGADE_INSERT_TAIL(out, e);
-    rv = ap_pass_brigade(r->output_filters, out);
-    if (rv != APR_SUCCESS) {
-        if (rv != AP_FILTER_ERROR) {
-            /* no way to know what type of error occurred */
-            ap_log_rerror(APLOG_MARK, APLOG_DEBUG, rv, r,
-                          "cache_handler(%s): ap_pass_brigade returned %i",
-                          cache->provider_name, rv);
-            return HTTP_INTERNAL_SERVER_ERROR;
-        }
-        return rv;
-    }
-
-    return OK;
+    return ap_pass_brigade_fchk(r, out,
+                                apr_psprintf(r->pool,
+                                             "cache(%s): ap_pass_brigade 
returned",
+                                             cache->provider_name));
}

Same as above

Reply via email to