Loading modules/proxy/mod_proxy.h +0 −22 Changes for modules/proxy/mod_proxy.h: 0 added lines, 22 removed lines. Original line number Diff line number Diff line Loading @@ -834,28 +834,6 @@ PROXY_DECLARE(int) ap_proxy_connection_create(const char *proxy_function, PROXY_DECLARE(void) ap_proxy_backend_broke(request_rec *r, apr_bucket_brigade *brigade); /** * Transform buckets from one bucket allocator to another one by creating a * transient bucket for each data bucket and let it use the data read from * the old bucket. Metabuckets are transformed by just recreating them. * Attention: Currently only the following bucket types are handled: * * All data buckets * FLUSH * EOS * * If an other bucket type is found its type is logged as a debug message * and APR_EGENERAL is returned. * @param r current request record of client request. Only used for logging * purposes * @param from the brigade that contains the buckets to transform * @param to the brigade that will receive the transformed buckets * @return APR_SUCCESS if all buckets could be transformed APR_EGENERAL * otherwise */ PROXY_DECLARE(apr_status_t) ap_proxy_buckets_lifetime_transform(request_rec *r, apr_bucket_brigade *from, apr_bucket_brigade *to); /** * Return a hash based on the passed string * @param str string to produce hash from Loading modules/proxy/mod_proxy_http.c +51 −1 Changes for modules/proxy/mod_proxy_http.c: 51 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -688,6 +688,56 @@ static int spool_reqbody_cl(apr_pool_t *p, return(pass_brigade(bucket_alloc, r, p_conn, origin, header_brigade, 1)); } /* * Transform buckets from one bucket allocator to another one by creating a * transient bucket for each data bucket and let it use the data read from * the old bucket. Metabuckets are transformed by just recreating them. * Attention: Currently only the following bucket types are handled: * * All data buckets * FLUSH * EOS * * If an other bucket type is found its type is logged as a debug message * and APR_EGENERAL is returned. */ static apr_status_t proxy_buckets_lifetime_transform(request_rec *r, apr_bucket_brigade *from, apr_bucket_brigade *to) { apr_bucket *e; apr_bucket *new; const char *data; apr_size_t bytes; apr_status_t rv = APR_SUCCESS; apr_brigade_cleanup(to); for (e = APR_BRIGADE_FIRST(from); e != APR_BRIGADE_SENTINEL(from); e = APR_BUCKET_NEXT(e)) { if (!APR_BUCKET_IS_METADATA(e)) { apr_bucket_read(e, &data, &bytes, APR_BLOCK_READ); new = apr_bucket_transient_create(data, bytes, r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else if (APR_BUCKET_IS_FLUSH(e)) { new = apr_bucket_flush_create(r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else if (APR_BUCKET_IS_EOS(e)) { new = apr_bucket_eos_create(r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(00964) "Unhandled bucket type of type %s in" " proxy_buckets_lifetime_transform", e->type->name); apr_bucket_delete(e); rv = APR_EGENERAL; } } return rv; } static int ap_proxy_http_request(apr_pool_t *p, request_rec *r, proxy_conn_rec *p_conn, proxy_worker *worker, Loading Loading @@ -1903,7 +1953,7 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r, } /* Switch the allocator lifetime of the buckets */ ap_proxy_buckets_lifetime_transform(r, bb, pass_bb); proxy_buckets_lifetime_transform(r, bb, pass_bb); /* found the last brigade? */ if (APR_BUCKET_IS_EOS(APR_BRIGADE_LAST(pass_bb))) { Loading modules/proxy/proxy_util.c +0 −51 Changes for modules/proxy/proxy_util.c: 0 added lines, 51 removed lines. Original line number Diff line number Diff line Loading @@ -2723,57 +2723,6 @@ PROXY_DECLARE(void) ap_proxy_backend_broke(request_rec *r, APR_BRIGADE_INSERT_TAIL(brigade, e); } /* * Transform buckets from one bucket allocator to another one by creating a * transient bucket for each data bucket and let it use the data read from * the old bucket. Metabuckets are transformed by just recreating them. * Attention: Currently only the following bucket types are handled: * * All data buckets * FLUSH * EOS * * If an other bucket type is found its type is logged as a debug message * and APR_EGENERAL is returned. */ PROXY_DECLARE(apr_status_t) ap_proxy_buckets_lifetime_transform(request_rec *r, apr_bucket_brigade *from, apr_bucket_brigade *to) { apr_bucket *e; apr_bucket *new; const char *data; apr_size_t bytes; apr_status_t rv = APR_SUCCESS; apr_brigade_cleanup(to); for (e = APR_BRIGADE_FIRST(from); e != APR_BRIGADE_SENTINEL(from); e = APR_BUCKET_NEXT(e)) { if (!APR_BUCKET_IS_METADATA(e)) { apr_bucket_read(e, &data, &bytes, APR_BLOCK_READ); new = apr_bucket_transient_create(data, bytes, r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else if (APR_BUCKET_IS_FLUSH(e)) { new = apr_bucket_flush_create(r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else if (APR_BUCKET_IS_EOS(e)) { new = apr_bucket_eos_create(r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(00964) "Unhandled bucket type of type %s in" " ap_proxy_buckets_lifetime_transform", e->type->name); apr_bucket_delete(e); rv = APR_EGENERAL; } } return rv; } /* * Provide a string hashing function for the proxy. * We offer 2 methods: one is the APR model but we Loading Loading
modules/proxy/mod_proxy.h +0 −22 Changes for modules/proxy/mod_proxy.h: 0 added lines, 22 removed lines. Original line number Diff line number Diff line Loading @@ -834,28 +834,6 @@ PROXY_DECLARE(int) ap_proxy_connection_create(const char *proxy_function, PROXY_DECLARE(void) ap_proxy_backend_broke(request_rec *r, apr_bucket_brigade *brigade); /** * Transform buckets from one bucket allocator to another one by creating a * transient bucket for each data bucket and let it use the data read from * the old bucket. Metabuckets are transformed by just recreating them. * Attention: Currently only the following bucket types are handled: * * All data buckets * FLUSH * EOS * * If an other bucket type is found its type is logged as a debug message * and APR_EGENERAL is returned. * @param r current request record of client request. Only used for logging * purposes * @param from the brigade that contains the buckets to transform * @param to the brigade that will receive the transformed buckets * @return APR_SUCCESS if all buckets could be transformed APR_EGENERAL * otherwise */ PROXY_DECLARE(apr_status_t) ap_proxy_buckets_lifetime_transform(request_rec *r, apr_bucket_brigade *from, apr_bucket_brigade *to); /** * Return a hash based on the passed string * @param str string to produce hash from Loading
modules/proxy/mod_proxy_http.c +51 −1 Changes for modules/proxy/mod_proxy_http.c: 51 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -688,6 +688,56 @@ static int spool_reqbody_cl(apr_pool_t *p, return(pass_brigade(bucket_alloc, r, p_conn, origin, header_brigade, 1)); } /* * Transform buckets from one bucket allocator to another one by creating a * transient bucket for each data bucket and let it use the data read from * the old bucket. Metabuckets are transformed by just recreating them. * Attention: Currently only the following bucket types are handled: * * All data buckets * FLUSH * EOS * * If an other bucket type is found its type is logged as a debug message * and APR_EGENERAL is returned. */ static apr_status_t proxy_buckets_lifetime_transform(request_rec *r, apr_bucket_brigade *from, apr_bucket_brigade *to) { apr_bucket *e; apr_bucket *new; const char *data; apr_size_t bytes; apr_status_t rv = APR_SUCCESS; apr_brigade_cleanup(to); for (e = APR_BRIGADE_FIRST(from); e != APR_BRIGADE_SENTINEL(from); e = APR_BUCKET_NEXT(e)) { if (!APR_BUCKET_IS_METADATA(e)) { apr_bucket_read(e, &data, &bytes, APR_BLOCK_READ); new = apr_bucket_transient_create(data, bytes, r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else if (APR_BUCKET_IS_FLUSH(e)) { new = apr_bucket_flush_create(r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else if (APR_BUCKET_IS_EOS(e)) { new = apr_bucket_eos_create(r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(00964) "Unhandled bucket type of type %s in" " proxy_buckets_lifetime_transform", e->type->name); apr_bucket_delete(e); rv = APR_EGENERAL; } } return rv; } static int ap_proxy_http_request(apr_pool_t *p, request_rec *r, proxy_conn_rec *p_conn, proxy_worker *worker, Loading Loading @@ -1903,7 +1953,7 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r, } /* Switch the allocator lifetime of the buckets */ ap_proxy_buckets_lifetime_transform(r, bb, pass_bb); proxy_buckets_lifetime_transform(r, bb, pass_bb); /* found the last brigade? */ if (APR_BUCKET_IS_EOS(APR_BRIGADE_LAST(pass_bb))) { Loading
modules/proxy/proxy_util.c +0 −51 Changes for modules/proxy/proxy_util.c: 0 added lines, 51 removed lines. Original line number Diff line number Diff line Loading @@ -2723,57 +2723,6 @@ PROXY_DECLARE(void) ap_proxy_backend_broke(request_rec *r, APR_BRIGADE_INSERT_TAIL(brigade, e); } /* * Transform buckets from one bucket allocator to another one by creating a * transient bucket for each data bucket and let it use the data read from * the old bucket. Metabuckets are transformed by just recreating them. * Attention: Currently only the following bucket types are handled: * * All data buckets * FLUSH * EOS * * If an other bucket type is found its type is logged as a debug message * and APR_EGENERAL is returned. */ PROXY_DECLARE(apr_status_t) ap_proxy_buckets_lifetime_transform(request_rec *r, apr_bucket_brigade *from, apr_bucket_brigade *to) { apr_bucket *e; apr_bucket *new; const char *data; apr_size_t bytes; apr_status_t rv = APR_SUCCESS; apr_brigade_cleanup(to); for (e = APR_BRIGADE_FIRST(from); e != APR_BRIGADE_SENTINEL(from); e = APR_BUCKET_NEXT(e)) { if (!APR_BUCKET_IS_METADATA(e)) { apr_bucket_read(e, &data, &bytes, APR_BLOCK_READ); new = apr_bucket_transient_create(data, bytes, r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else if (APR_BUCKET_IS_FLUSH(e)) { new = apr_bucket_flush_create(r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else if (APR_BUCKET_IS_EOS(e)) { new = apr_bucket_eos_create(r->connection->bucket_alloc); APR_BRIGADE_INSERT_TAIL(to, new); } else { ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(00964) "Unhandled bucket type of type %s in" " ap_proxy_buckets_lifetime_transform", e->type->name); apr_bucket_delete(e); rv = APR_EGENERAL; } } return rv; } /* * Provide a string hashing function for the proxy. * We offer 2 methods: one is the APR model but we Loading