You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2005/01/10 16:27:14 UTC

svn commit: r124805 - /httpd/httpd/branches/proxy-reqbody/modules/proxy/proxy_http.c

Author: trawick
Date: Mon Jan 10 07:27:14 2005
New Revision: 124805

URL: http://svn.apache.org/viewcvs?view=rev&rev=124805
Log:
stick with the same bucket alloc (r->connection)

Modified:
   httpd/httpd/branches/proxy-reqbody/modules/proxy/proxy_http.c

Modified: httpd/httpd/branches/proxy-reqbody/modules/proxy/proxy_http.c
Url: http://svn.apache.org/viewcvs/httpd/httpd/branches/proxy-reqbody/modules/proxy/proxy_http.c?view=diff&rev=124805&p1=httpd/httpd/branches/proxy-reqbody/modules/proxy/proxy_http.c&r1=124804&p2=httpd/httpd/branches/proxy-reqbody/modules/proxy/proxy_http.c&r2=124805
==============================================================================
--- httpd/httpd/branches/proxy-reqbody/modules/proxy/proxy_http.c	(original)
+++ httpd/httpd/branches/proxy-reqbody/modules/proxy/proxy_http.c	Mon Jan 10 07:27:14 2005
@@ -280,7 +280,8 @@
     APR_BRIGADE_INSERT_TAIL(header_brigade, e);
 }
 
-static apr_status_t pass_brigade(request_rec *r, proxy_conn_rec *conn,
+static apr_status_t pass_brigade(apr_bucket_alloc_t *bucket_alloc,
+                                 request_rec *r, proxy_conn_rec *conn,
                                  conn_rec *origin, apr_bucket_brigade *b,
                                  int flush)
 {
@@ -288,7 +289,7 @@
     apr_off_t transferred;
 
     if (flush) {
-        apr_bucket *e = apr_bucket_flush_create(r->connection->bucket_alloc);
+        apr_bucket *e = apr_bucket_flush_create(bucket_alloc);
         APR_BRIGADE_INSERT_TAIL(b, e);
     }
     apr_brigade_length(b, 0, &transferred);
@@ -315,10 +316,11 @@
     apr_size_t hdr_len;
     apr_off_t bytes;
     apr_status_t status;
+    apr_bucket_alloc_t *bucket_alloc = r->connection->bucket_alloc;
     apr_bucket_brigade *b, *input_brigade;
     apr_bucket *e;
 
-    input_brigade = apr_brigade_create(p, origin->bucket_alloc);
+    input_brigade = apr_brigade_create(p, bucket_alloc);
 
     do {
         char chunk_hdr[20];  /* must be here due to transient bucket. */
@@ -355,21 +357,21 @@
         
         ap_xlate_proto_to_ascii(chunk_hdr, hdr_len);
         e = apr_bucket_transient_create(chunk_hdr, hdr_len,
-                                        input_brigade->bucket_alloc);
+                                        bucket_alloc);
         APR_BRIGADE_INSERT_HEAD(input_brigade, e);
         
         /*
          * Append the end-of-chunk CRLF
          */
-        e = apr_bucket_immortal_create(ASCII_CRLF, 2, input_brigade->bucket_alloc);
+        e = apr_bucket_immortal_create(ASCII_CRLF, 2, bucket_alloc);
         APR_BRIGADE_INSERT_TAIL(input_brigade, e);
         
         if (header_brigade) {
             /* we never sent the header brigade, so go ahead and
              * take care of that now
              */
-            add_te_chunked(p, r->connection->bucket_alloc, header_brigade);
-            terminate_headers(r->connection->bucket_alloc, header_brigade);
+            add_te_chunked(p, bucket_alloc, header_brigade);
+            terminate_headers(bucket_alloc, header_brigade);
             b = header_brigade;
             APR_BRIGADE_CONCAT(b, input_brigade);
             header_brigade = NULL;
@@ -378,7 +380,7 @@
             b = input_brigade;
         }
         
-        status = pass_brigade(r, conn, origin, b, 1);
+        status = pass_brigade(bucket_alloc, r, conn, origin, b, 1);
         if (status != APR_SUCCESS) {
             return status;
         }
@@ -388,7 +390,7 @@
         /* we never sent the header brigade because there was no request body;
          * send it now without T-E
          */
-        terminate_headers(r->connection->bucket_alloc, header_brigade);
+        terminate_headers(bucket_alloc, header_brigade);
         b = header_brigade;
     }
     else {
@@ -401,12 +403,12 @@
         e = apr_bucket_immortal_create(ASCII_ZERO ASCII_CRLF
                                        /* <trailers> */
                                        ASCII_CRLF,
-                                       5, r->connection->bucket_alloc);
+                                       5, bucket_alloc);
         APR_BRIGADE_INSERT_TAIL(input_brigade, e);
         b = input_brigade;
     }
     
-    status = pass_brigade(r, conn, origin, b, 1);
+    status = pass_brigade(bucket_alloc, r, conn, origin, b, 1);
     return status;
 }
 
@@ -419,10 +421,11 @@
 {
     int seen_eos = 0;
     apr_status_t status;
+    apr_bucket_alloc_t *bucket_alloc = r->connection->bucket_alloc;
     apr_bucket_brigade *b, *input_brigade;
     apr_bucket *e;
 
-    input_brigade = apr_brigade_create(p, origin->bucket_alloc);
+    input_brigade = apr_brigade_create(p, bucket_alloc);
 
     do {
         status = ap_get_brigade(r->input_filters, input_brigade,
@@ -453,8 +456,8 @@
             /* we never sent the header brigade, so go ahead and
              * take care of that now
              */
-            add_cl(p, r->connection->bucket_alloc, header_brigade, old_cl_val);
-            terminate_headers(r->connection->bucket_alloc, header_brigade);
+            add_cl(p, bucket_alloc, header_brigade, old_cl_val);
+            terminate_headers(bucket_alloc, header_brigade);
             b = header_brigade;
             APR_BRIGADE_CONCAT(b, input_brigade);
             header_brigade = NULL;
@@ -463,7 +466,7 @@
             b = input_brigade;
         }
         
-        status = pass_brigade(r, conn, origin, b, 1);
+        status = pass_brigade(bucket_alloc, r, conn, origin, b, 1);
         if (status != APR_SUCCESS) {
             return status;
         }
@@ -475,10 +478,10 @@
          * C-L: 0
          */
         if (!strcmp(old_cl_val, "0")) {
-            add_cl(p, r->connection->bucket_alloc, header_brigade, old_cl_val);
+            add_cl(p, bucket_alloc, header_brigade, old_cl_val);
         }
-        terminate_headers(r->connection->bucket_alloc, header_brigade);
-        status = pass_brigade(r, conn, origin, header_brigade, 1);
+        terminate_headers(bucket_alloc, header_brigade);
+        status = pass_brigade(bucket_alloc, r, conn, origin, header_brigade, 1);
         if (status != APR_SUCCESS) {
             return status;
         }
@@ -497,13 +500,14 @@
 {
     int seen_eos = 0;
     apr_status_t status;
+    apr_bucket_alloc_t *bucket_alloc = r->connection->bucket_alloc;
     apr_bucket_brigade *body_brigade, *input_brigade;
     apr_bucket *e;
     apr_off_t bytes, bytes_spooled = 0, fsize = 0;
     apr_file_t *tmpfile = NULL;
 
-    body_brigade = apr_brigade_create(p, origin->bucket_alloc);
-    input_brigade = apr_brigade_create(p, origin->bucket_alloc);
+    body_brigade = apr_brigade_create(p, bucket_alloc);
+    input_brigade = apr_brigade_create(p, bucket_alloc);
 
     do {
         status = ap_get_brigade(r->input_filters, input_brigade,
@@ -581,9 +585,9 @@
     } while (!seen_eos);
 
     if (bytes_spooled) {
-        add_cl(p, r->connection->bucket_alloc, header_brigade, apr_off_t_toa(p, bytes_spooled));
+        add_cl(p, bucket_alloc, header_brigade, apr_off_t_toa(p, bytes_spooled));
     }
-    terminate_headers(r->connection->bucket_alloc, header_brigade);
+    terminate_headers(bucket_alloc, header_brigade);
     APR_BRIGADE_CONCAT(header_brigade, body_brigade);
     if (tmpfile) {
         /* For platforms where the size of the file may be larger than
@@ -593,7 +597,7 @@
         if (sizeof(apr_off_t) > sizeof(apr_size_t)
             && fsize > AP_MAX_SENDFILE) {
             e = apr_bucket_file_create(tmpfile, 0, AP_MAX_SENDFILE, p,
-                                       origin->bucket_alloc);
+                                       bucket_alloc);
             while (fsize > AP_MAX_SENDFILE) {
                 apr_bucket *ce;
                 apr_bucket_copy(e, &ce);
@@ -605,11 +609,11 @@
         }
         else {
             e = apr_bucket_file_create(tmpfile, 0, (apr_size_t)fsize, p,
-                                       origin->bucket_alloc);
+                                       bucket_alloc);
         }
         APR_BRIGADE_INSERT_TAIL(header_brigade, e);
     }
-    status = pass_brigade(r, conn, origin, header_brigade, 1);
+    status = pass_brigade(bucket_alloc, r, conn, origin, header_brigade, 1);
     if (status != APR_SUCCESS) {
         return status;
     }