--- src/include/httpd.h Tue Oct 9 04:56:05 2001 +++ src/include/httpd.h Wed Oct 31 20:15:00 2001 @@ -958,6 +958,7 @@ server_addr_rec *addrs; int timeout; /* Timeout, in seconds, before we give up */ + int read_request_timeout; /* Seconds, we'll wait for an initial request */ int keep_alive_timeout; /* Seconds we'll wait for another request */ int keep_alive_max; /* Maximum requests per connection */ int keep_alive; /* Use persistent connections? */ --- src/main/http_config.c Fri Jun 22 13:43:54 2001 +++ src/main/http_config.c Wed Oct 31 20:13:03 2001 @@ -1417,6 +1417,7 @@ s->srm_confname = NULL; s->access_confname = NULL; s->timeout = 0; + s->read_request_timeout = 0; s->keep_alive_timeout = 0; s->keep_alive = -1; s->keep_alive_max = -1; @@ -1469,6 +1470,9 @@ if (virt->timeout == 0) virt->timeout = main_server->timeout; + + if (virt->read_request_timeout == 0) + virt->read_request_timeout = main_server->read_request_timeout; if (virt->keep_alive_timeout == 0) virt->keep_alive_timeout = main_server->keep_alive_timeout; @@ -1537,6 +1541,7 @@ s->limit_req_fieldsize = DEFAULT_LIMIT_REQUEST_FIELDSIZE; s->limit_req_fields = DEFAULT_LIMIT_REQUEST_FIELDS; s->timeout = DEFAULT_TIMEOUT; + s->read_request_timeout = DEFAULT_TIMEOUT; s->keep_alive_timeout = DEFAULT_KEEPALIVE_TIMEOUT; s->keep_alive_max = DEFAULT_KEEPALIVE; s->keep_alive = 1; --- src/main/http_main.c Sat Oct 6 03:21:11 2001 +++ src/main/http_main.c Wed Oct 31 20:11:18 2001 @@ -1612,7 +1612,7 @@ if (r->connection->keptalive) to = r->server->keep_alive_timeout; else - to = r->server->timeout; + to = r->server->read_request_timeout; ap_set_callback_and_alarm(timeout, to); } --- src/main/http_core.c Fri Aug 1 13:32:06 2003 +++ src/main/http_core.c Thu Oct 23 14:49:15 2003 @@ -2195,6 +2195,17 @@ return NULL; } +static const char *set_read_request_timeout(cmd_parms *cmd, void *dummy, char *arg) +{ + const char *err = ap_check_cmd_context(cmd, NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT); + if (err != NULL) { + return err; + } + + cmd->server->read_request_timeout = atoi(arg); + return NULL; +} + static const char *set_keep_alive_timeout(cmd_parms *cmd, void *dummy, char *arg) { @@ -3633,6 +3644,8 @@ "'On': enable or default='Off': disable the EBCDIC Debugging MIME Header" } , #endif #endif /* CHARSET_EBCDIC */ + +{ "ReadRequestTimeout", set_read_request_timeout, NULL, RSRC_CONF, TAKE1, "Initial request timeout duration (sec)" }, { "FileETag", set_etag_bits, NULL, OR_FILEINFO, RAW_ARGS, "Specify components used to construct a file's ETag"},