*) mod_http2: Fixed regression that caused connections to close when mod_reqtimeout
was configured with a handshake timeout. Fixes gitub issue #196.
Submitted by: icing
Reviewed by: icing, steffenal, rpluem
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@
1879035 13f79535-47bb-0310-9956-
ffa450edef68
*) mod_ssl: Fix memory leak in stapling code. PR63687. [Stefan Eissing]
+ *) mod_http2: Fixed regression that caused connections to close when mod_reqtimeout
+ was configured with a handshake timeout. Fixes gitub issue #196.
+ [Stefan Eissing]
+
*) mod_proxy_http2: the "ping" proxy parameter·
(see <https://httpd.apache.org/docs/2.4/mod/mod_proxy.html>) is now used
when checking the liveliness of a new or reused h2 connection to the
2.4.x patch: svn merge -c 1876616 ^/httpd/httpd/trunk .
+1: steffenal, rpluem, gbechis, jim
- *) mod_http2: Fixed a regression that caused connections to close early
- when mod_reqtimeout was configured with a handshake timeout. Fixes
- <https://github.com/icing/mod_h2/issues/196>. [Stefan Eissing]
- trunk patch:
- - http://svn.apache.org/r1877783
- 2.4.x patch: svn merge -c 1877783 ^/httpd/httpd/trunk .
- +1: icing, steffenal, rpluem
-
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
[ New proposals should be added at the end of the list ]
if (APR_SUCCESS == (status = h2_session_create(&session, c, r, s, workers))) {
ctx = h2_ctx_get(c, 1);
h2_ctx_session_set(ctx, session);
+
+ /* remove the input filter of mod_reqtimeout, now that the connection
+ * is established and we have swtiched to h2. reqtimeout has supervised
+ * possibly configured handshake timeouts and needs to get out of the way
+ * now since the rest of its state handling assumes http/1.x to take place. */
+ ap_remove_input_filter_byhandle(c->input_filters, "reqtimeout");
}
return status;
stream = h2_session_open_stream(session, nid, is->id);
if (!stream) {
ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, session->c,
- H2_STRM_LOG(APLOGNO(03077), stream,
+ H2_STRM_LOG(APLOGNO(03077), is,
"failed to create stream obj %d"), nid);
/* kill the push_promise */
nghttp2_submit_rst_stream(session->ngh2, NGHTTP2_FLAG_NONE, nid,
* right away.
*/
ap_remove_input_filter_byhandle(r->input_filters, "http_in");
- ap_remove_input_filter_byhandle(r->input_filters, "reqtimeout");
ap_remove_output_filter_byhandle(r->output_filters, "HTTP_HEADER");
/* Ok, start an h2_conn on this one. */