From: Stefan Eissing Date: Wed, 11 May 2016 11:03:41 +0000 (+0000) Subject: adjusteing changes after backport, mod_http2: version bump, adding modified patch... X-Git-Tag: 2.5.0-alpha~1629 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=88f59bf178d98bb97782a742651a964a08a81a2c;p=apache adjusteing changes after backport, mod_http2: version bump, adding modified patch for c->aborted by Michael Kaufmann git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1743335 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 7cdc641638..3233c5608b 100644 --- a/CHANGES +++ b/CHANGES @@ -1,25 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 - *) mod_http2: slave connections have conn_rec->aborted flag set when a stream - has been reset by the client. - - *) mod_http2: merge of some 2.4.x adaptions re filters on slave connections. - Small fixes in bucket beams when forwarding file buckets. Output handling - on master connection uses less FLUSH and passes automatically when more - than half of H2StreamMaxMemSize bytes have accumulated. - Workaround for http: when forwarding partial file buckets to keep the - output filter from closing these too early. - - *) mod_http2: elimination of fixed master connectin buffer for TLS - connections. New scratch bucket handling optimized for TLS write sizes. - File bucket data read directly into scratch buffers, avoiding one - copy. Non-TLS connections continue to pass buckets unchanged to the core - filters to allow sendfile() usage. - - *) mod_http2/mod_proxy_http2: h2_request.c is no longer shared between these - modules. This simplifies building on platforms such as Windows, as module - reference used in logging is now clear. + *) mod_http2: setting conn_rec->aborted on all slave connections still active + when main connection shuts down. + [Stefan Eissing as proposed by Michael Kaufmann] *) mod_proxy, mod_ssl: Handle SSLProxy* directives in sections, allowing per backend TLS configuration. [Yann Ylavic] diff --git a/modules/http2/h2_mplx.c b/modules/http2/h2_mplx.c index 5c2ecbc626..da5829f3a9 100644 --- a/modules/http2/h2_mplx.c +++ b/modules/http2/h2_mplx.c @@ -490,6 +490,15 @@ static int task_print(void *ctx, void *val) return 1; } +static int task_abort_connection(void *ctx, void *val) +{ + h2_task *task = val; + if (task->c) { + task->c->aborted = 1; + } + return 1; +} + apr_status_t h2_mplx_release_and_join(h2_mplx *m, apr_thread_cond_t *wait) { apr_status_t status; @@ -539,6 +548,8 @@ apr_status_t h2_mplx_release_and_join(h2_mplx *m, apr_thread_cond_t *wait) * and workers *should* return in a timely fashion. */ for (i = 0; m->workers_busy > 0; ++i) { + h2_ihash_iter(m->tasks, task_abort_connection, m); + m->join_wait = wait; status = apr_thread_cond_timedwait(wait, m->lock, apr_time_from_sec(wait_secs)); diff --git a/modules/http2/h2_version.h b/modules/http2/h2_version.h index d90e3f9dea..ef38b1c3bf 100644 --- a/modules/http2/h2_version.h +++ b/modules/http2/h2_version.h @@ -26,7 +26,7 @@ * @macro * Version number of the http2 module as c string */ -#define MOD_HTTP2_VERSION "1.5.3-DEV" +#define MOD_HTTP2_VERSION "1.5.4-DEV" /** * @macro @@ -34,7 +34,7 @@ * release. This is a 24 bit number with 8 bits for major number, 8 bits * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203. */ -#define MOD_HTTP2_VERSION_NUM 0x010502 +#define MOD_HTTP2_VERSION_NUM 0x010504 #endif /* mod_h2_h2_version_h */