You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2014/04/15 21:17:13 UTC

svn commit: r1587697 - in /httpd/httpd/branches/2.4.x: ./ CHANGES STATUS modules/filters/mod_reqtimeout.c

Author: jim
Date: Tue Apr 15 19:17:12 2014
New Revision: 1587697

URL: http://svn.apache.org/r1587697
Log:
Merge r1580568 from trunk:

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

Modified:
    httpd/httpd/branches/2.4.x/   (props changed)
    httpd/httpd/branches/2.4.x/CHANGES
    httpd/httpd/branches/2.4.x/STATUS
    httpd/httpd/branches/2.4.x/modules/filters/mod_reqtimeout.c

Propchange: httpd/httpd/branches/2.4.x/
------------------------------------------------------------------------------
  Merged /httpd/httpd/trunk:r1580568

Modified: httpd/httpd/branches/2.4.x/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/CHANGES?rev=1587697&r1=1587696&r2=1587697&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/2.4.x/CHANGES [utf-8] Tue Apr 15 19:17:12 2014
@@ -2,6 +2,9 @@
 
 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>]
 
@@ -14,11 +17,11 @@ Changes with Apache 2.4.10
      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>]
 

Modified: httpd/httpd/branches/2.4.x/STATUS
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/STATUS?rev=1587697&r1=1587696&r2=1587697&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/STATUS (original)
+++ httpd/httpd/branches/2.4.x/STATUS Tue Apr 15 19:17:12 2014
@@ -108,12 +108,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
         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 ]

Modified: httpd/httpd/branches/2.4.x/modules/filters/mod_reqtimeout.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/filters/mod_reqtimeout.c?rev=1587697&r1=1587696&r2=1587697&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/filters/mod_reqtimeout.c (original)
+++ httpd/httpd/branches/2.4.x/modules/filters/mod_reqtimeout.c Tue Apr 15 19:17:12 2014
@@ -343,7 +343,17 @@ static int reqtimeout_init(conn_rec *c)
         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;
@@ -357,9 +367,7 @@ static int reqtimeout_init(conn_rec *c)
         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;
 }