You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by je...@apache.org on 2007/11/14 22:24:18 UTC
svn commit: r595067 - /httpd/sandbox/amsterdam/d/modules/proxy/mod_serf.c
Author: jerenkrantz
Date: Wed Nov 14 13:24:16 2007
New Revision: 595067
URL: http://svn.apache.org/viewvc?rev=595067&view=rev
Log:
Amsterdam sandbox: Move brigade conversion inside brigade_create() and append
the Serf brigade bucket type to our current bucket.
(With some minor formatting nits.)
Modified:
httpd/sandbox/amsterdam/d/modules/proxy/mod_serf.c
Modified: httpd/sandbox/amsterdam/d/modules/proxy/mod_serf.c
URL: http://svn.apache.org/viewvc/httpd/sandbox/amsterdam/d/modules/proxy/mod_serf.c?rev=595067&r1=595066&r2=595067&view=diff
==============================================================================
--- httpd/sandbox/amsterdam/d/modules/proxy/mod_serf.c (original)
+++ httpd/sandbox/amsterdam/d/modules/proxy/mod_serf.c Wed Nov 14 13:24:16 2007
@@ -403,7 +403,9 @@
ctx->allocator = core_ctx->serf_bkt_alloc;
ctx->pool = serf_bucket_allocator_get_pool(ctx->allocator);
ctx->core_ctx = core_ctx;
- ctx->bb = bb;
+
+ /* Replace witha more optimized mechanism for converting */
+ ap_save_brigade(f, &ctx->bb, bb, f->c->pool);
ctx->tmp_bb = apr_brigade_create(f->c->pool, f->c->bucket_alloc);
return serf_bucket_create(&serf_bucket_type_brigade, ctx->allocator, ctx);
@@ -557,27 +559,20 @@
}
if (new_bb) {
- ap_save_brigade(f, &ctx->tmp_brigade, &new_bb, c->pool);
-
- APR_BRIGADE_CONCAT(ctx->out_brigade, ctx->tmp_brigade);
- b = brigade_create(f,
- ctx->out_brigade,
- ctx);
+ b = brigade_create(f, new_bb, ctx);
+ serf_bucket_aggregate_append(ctx->serf_out_bucket, b);
c->data_in_output_filters = 1;
- apr_brigade_cleanup(ctx->out_brigade);
}
- if (c->data_in_output_filters && new_bb == NULL) {
+ if (c->data_in_output_filters && new_bb == NULL) {
do {
apr_status_t srv;
const char *buf;
apr_size_t len = 0;
- srv = serf_bucket_read(ctx->serf_out_bucket,
- SERF_READ_ALL_AVAIL,
- &buf,
- &len);
-
+ srv = serf_bucket_read(ctx->serf_out_bucket, SERF_READ_ALL_AVAIL,
+ &buf, &len);
+
if (SERF_BUCKET_READ_ERROR(srv)) {
/* bad, logme */
return srv;
@@ -593,7 +588,7 @@
srv = APR_SUCCESS;
}
}
-
+
if (APR_STATUS_IS_EOF(srv)) {
c->data_in_output_filters = 0;
break;