Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions changes-entries/reqtimeout-defaults.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*) Add add a default handshake timeout (10s) to mod_reqtimeouts internal
defaults and the the default configuration. [Eric Covener]
2 changes: 1 addition & 1 deletion docs/conf/extra/httpd-default.conf.in
Original file line number Diff line number Diff line change
Expand Up @@ -86,5 +86,5 @@ HostnameLookups Off
# To disable, set to header=0 body=0
#
<IfModule reqtimeout_module>
RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
RequestReadTimeout handshake=10,MinRate=250 header=20-40,MinRate=500 body=20,MinRate=500
</IfModule>
5 changes: 3 additions & 2 deletions docs/manual/mod/mod_reqtimeout.xml
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,12 @@ the request headers and/or body from client.
[header=<var>timeout</var>[-<var>maxtimeout</var>][,MinRate=<var>rate</var>]
[body=<var>timeout</var>[-<var>maxtimeout</var>][,MinRate=<var>rate</var>]
</syntax>
<default>RequestReadTimeout handshake=0 header=20-40,MinRate=500 body=20,MinRate=500</default>
<default>RequestReadTimeout handshake=10,MinRate=250 header=20-40,MinRate=500 body=20,MinRate=500</default>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<compatibility>Defaulted to disabled in version 2.3.14 and earlier. The
<code>handshake</code> stage is available since version 2.4.39.
<code>handshake</code> stage is available since version 2.4.39, with non-zero
defaults added in 2.4.67.
</compatibility>

<usage>
Expand Down
11 changes: 4 additions & 7 deletions modules/filters/mod_reqtimeout.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@
module AP_MODULE_DECLARE_DATA reqtimeout_module;

#define UNSET -1
#define MRT_DEFAULT_handshake_TIMEOUT 0 /* disabled */
#define MRT_DEFAULT_handshake_TIMEOUT 10
#define MRT_DEFAULT_handshake_MAX_TIMEOUT 0
#define MRT_DEFAULT_handshake_MIN_RATE 0
#define MRT_DEFAULT_handshake_MIN_RATE 250
#define MRT_DEFAULT_header_TIMEOUT 20
#define MRT_DEFAULT_header_MAX_TIMEOUT 40
#define MRT_DEFAULT_header_MIN_RATE 500
Expand Down Expand Up @@ -375,8 +375,7 @@ static int reqtimeout_init(conn_rec *c)
&reqtimeout_module);
AP_DEBUG_ASSERT(cfg != NULL);

/* For compatibility, handshake timeout is disabled when UNSET (< 0) */
if (cfg->handshake.timeout <= 0
if (cfg->handshake.timeout == 0
&& cfg->header.timeout == 0
&& cfg->body.timeout == 0) {
/* disabled for this vhost */
Expand All @@ -391,9 +390,7 @@ static int reqtimeout_init(conn_rec *c)
ap_add_input_filter(reqtimeout_filter_name, ccfg, NULL, c);

ccfg->type = "handshake";
if (cfg->handshake.timeout > 0) {
INIT_STAGE(cfg, ccfg, handshake);
}
INIT_STAGE(cfg, ccfg, handshake);
}

/* we are not handling the connection, we just do initialization */
Expand Down
Loading