correctly show in scoreboard. Fixed possible race in connection
shutdown after review by Ylavic. [Stefan Eissing]
- *) mod_ssl: Avoid one TLS record (application data) fragmentation by
- including the last suitable bucket when coalescing. [Yann Ylavic]
+ *) mod_ssl: Save some TLS record (application data) fragmentations by
+ including the last and subsequent suitable buckets when coalescing.
+ [Yann Ylavic]
*) mod_cache_socache: Fix a possible cached entity body corruption when it
is received from an origin server in multiple batches and forwarded by
static apr_status_t ssl_io_filter_coalesce(ap_filter_t *f,
apr_bucket_brigade *bb)
{
- apr_bucket *e, *endb;
+ apr_bucket *e, *upto;
apr_size_t bytes = 0;
struct coalesce_ctx *ctx = f->ctx;
unsigned count = 0;
if (e->length) count++; /* don't count zero-length buckets */
bytes += e->length;
}
- endb = e;
+ upto = e;
/* Coalesce the prefix, if:
* a) more than one bucket is found to coalesce, or
*/
if (bytes > 0
&& (count > 1
- || (endb == APR_BRIGADE_SENTINEL(bb))
+ || (upto == APR_BRIGADE_SENTINEL(bb))
|| (ctx && ctx->bytes > 0))) {
/* If coalescing some bytes, ensure a context has been
* created. */
* normal path of sending the buffer + remaining buckets in
* brigade. */
e = APR_BRIGADE_FIRST(bb);
- while (e != endb) {
+ while (e != upto) {
apr_size_t len;
const char *data;
apr_bucket *next;