mod_reqtimeout: Resolve unexpected timeouts on keepalive requests
under the Event MPM. PR56216.
Submitted By: Frank Meier <frank meier ergon ch>
Committed By: covener
Submitted by: covener
Reviewed/backported by: jim
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@
1587697 13f79535-47bb-0310-9956-
ffa450edef68
Changes with Apache 2.4.10
+ *) mod_reqtimeout: Resolve unexpected timeouts on keepalive requests
+ under the Event MPM. PR56216. [Frank Meier <frank meier ergon ch>]
+
*) mod_proxy_fcgi: Fix sending of response without some HTTP headers
that might be set by filters. [Jim Riggs <jim riggs.me>]
for any third-party async MPMs.) [Jeff Trawick]
*) mod_lua: Redesign how request record table access behaves,
- in order to utilize the request record from within these tables
+ in order to utilize the request record from within these tables.
[Daniel Gruno]
-
+
*) mod_lua: Add r:wspeek for peeking at WebSocket frames. [Daniel Gruno]
-
+
*) mod_lua: Log an error when the initial parsing of a Lua file fails.
[Daniel Gruno, Felipe Daragon <filipe syhunt com>]
Trunk version of patch works
+1: rpluem, jim, ylavic
- * mod_reqtimeout: Don't add filters and create new connection configs
- for each keepalive request under event MPM. PR56216
- trunk patch: http://svn.apache.org/r1580568
- 2.4.x patch: trunk works
- +1 covener, jim, ylavic
-
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
[ New proposals should be added at the end of the list ]
return DECLINED;
}
- ccfg = apr_pcalloc(c->pool, sizeof(reqtimeout_con_cfg));
+ ccfg = ap_get_module_config(c->conn_config, &reqtimeout_module);
+ if (ccfg == NULL) {
+ ccfg = apr_pcalloc(c->pool, sizeof(reqtimeout_con_cfg));
+ ap_set_module_config(c->conn_config, &reqtimeout_module, ccfg);
+ ap_add_input_filter(reqtimeout_filter_name, ccfg, NULL, c);
+ }
+ else {
+ /* subsequent request under event-like MPM */
+ memset(ccfg, 0, sizeof(reqtimeout_con_cfg));
+ }
+
ccfg->type = "header";
if (cfg->header_timeout != UNSET) {
ccfg->new_timeout = cfg->header_timeout;
ccfg->min_rate = MRT_DEFAULT_HEADER_MIN_RATE;
ccfg->rate_factor = default_header_rate_factor;
}
- ap_set_module_config(c->conn_config, &reqtimeout_module, ccfg);
- ap_add_input_filter("reqtimeout", ccfg, NULL, c);
/* we are not handling the connection, we just do initialization */
return DECLINED;
}