summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorStefan Eissing <icing@apache.org>2019-07-03 15:46:31 +0200
committerStefan Eissing <icing@apache.org>2019-07-03 15:46:31 +0200
commit018caeddd81bc282acb2ed4df8fd0535cf4745f7 (patch)
tree0d3bc0102f8ce3ba513a10c0e24b7a42562f2129 /server
parent* All backported (diff)
downloadapache2-018caeddd81bc282acb2ed4df8fd0535cf4745f7.tar.xz
apache2-018caeddd81bc282acb2ed4df8fd0535cf4745f7.zip
*) mod_http2/mpm_event: Fixes the behaviour when a HTTP/2 connection has nothing
more to write with streams ongoing (flow control block). The timeout waiting for the client to send WINODW_UPDATE was incorrectly KeepAliveTimeout and not Timeout as it should be. Fixes PR 63534. [Yann Ylavic, Stefan Eissing] git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1862475 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'server')
-rw-r--r--server/mpm/event/event.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/server/mpm/event/event.c b/server/mpm/event/event.c
index 4bb2d5bd0f..f9cc820b95 100644
--- a/server/mpm/event/event.c
+++ b/server/mpm/event/event.c
@@ -1153,10 +1153,11 @@ read_request:
else if (ap_filter_should_yield(c->output_filters)) {
pending = OK;
}
- if (pending == OK) {
+ if (pending == OK || (pending == DECLINED &&
+ cs->pub.sense == CONN_SENSE_WANT_READ)) {
/* Still in WRITE_COMPLETION_STATE:
- * Set a write timeout for this connection, and let the
- * event thread poll for writeability.
+ * Set a read/write timeout for this connection, and let the
+ * event thread poll for read/writeability.
*/
cs->queue_timestamp = apr_time_now();
notify_suspend(cs);