Fixed setting of socket.timeout in httpd (was not currently set before).

Adopted the nanoseconds timeout precision
 - in config file added support for ns, us, ms, s timeout precision (without indication, it uses `seconds` precision).
This commit is contained in:
2018-10-29 11:27:26 +01:00
parent 9fcd30b4e1
commit d3e865cf6c
9 changed files with 267 additions and 81 deletions
@@ -12,10 +12,10 @@ note
max_concurrent_connections: set to 1, for single threaded behavior
max_tcp_clients: max number of open tcp connection
socket_timeout: connection timeout
socket_recv_timeout: read data timeout
socket_timeout_ns: connection timeout in nanoseconds
socket_recv_timeout_ns: read data timeout in nanoseconds
keep_alive_timeout: amount of time the server will wait for subsequent
keep_alive_timeout_ns: amount of nanoseconds the server will wait for subsequent
requests on a persistent connection,
max_keep_alive_requests: number of requests allowed on a persistent connection,
@@ -40,6 +40,8 @@ inherit
WGI_STANDALONE_HTTPD_LOGGER_CONSTANTS
WSF_TIMEOUT_UTILITIES
create
make,
make_and_launch
@@ -57,9 +59,9 @@ feature {NONE} -- Initialization
port_number := {WGI_STANDALONE_CONSTANTS}.default_http_server_port --| Default, but quite often, this port is already used ...
max_concurrent_connections := {WGI_STANDALONE_CONSTANTS}.default_max_concurrent_connections
max_tcp_clients := {WGI_STANDALONE_CONSTANTS}.default_max_tcp_clients
socket_timeout := {WGI_STANDALONE_CONSTANTS}.default_socket_timeout -- seconds
socket_recv_timeout := {WGI_STANDALONE_CONSTANTS}.default_socket_recv_timeout -- seconds
keep_alive_timeout := {WGI_STANDALONE_CONSTANTS}.default_keep_alive_timeout -- seconds.
socket_timeout_ns := seconds_to_nanoseconds ({WGI_STANDALONE_CONSTANTS}.default_socket_timeout) -- default in seconds
socket_recv_timeout_ns := seconds_to_nanoseconds ({WGI_STANDALONE_CONSTANTS}.default_socket_recv_timeout) -- default in seconds
keep_alive_timeout_ns := seconds_to_nanoseconds ({WGI_STANDALONE_CONSTANTS}.default_keep_alive_timeout) -- default in seconds.
max_keep_alive_requests := {WGI_STANDALONE_CONSTANTS}.default_max_keep_alive_requests
verbose := False
verbose_level := notice_level
@@ -111,9 +113,9 @@ feature {NONE} -- Initialization
end
max_concurrent_connections := opts.option_integer_value ("max_concurrent_connections", max_concurrent_connections)
max_tcp_clients := opts.option_integer_value ("max_tcp_clients", max_tcp_clients)
socket_timeout := opts.option_integer_value ("socket_timeout", socket_timeout)
socket_recv_timeout := opts.option_integer_value ("socket_recv_timeout", socket_recv_timeout)
keep_alive_timeout := opts.option_integer_value ("keep_alive_timeout", keep_alive_timeout)
socket_timeout_ns := opts.option_timeout_ns_value ("socket_timeout", socket_timeout_ns)
socket_recv_timeout_ns := opts.option_timeout_ns_value ("socket_recv_timeout", socket_recv_timeout_ns)
keep_alive_timeout_ns := opts.option_timeout_ns_value ("keep_alive_timeout", keep_alive_timeout_ns)
max_keep_alive_requests := opts.option_integer_value ("max_keep_alive_requests", max_keep_alive_requests)
if
@@ -169,9 +171,9 @@ feature -- Execution
cfg.http_server_port := port_number
cfg.set_max_concurrent_connections (max_concurrent_connections)
cfg.set_max_tcp_clients (max_tcp_clients)
cfg.set_socket_timeout (socket_timeout)
cfg.set_socket_recv_timeout (socket_recv_timeout)
cfg.set_keep_alive_timeout (keep_alive_timeout)
cfg.set_socket_timeout_ns (socket_timeout_ns)
cfg.set_socket_recv_timeout_ns (socket_recv_timeout_ns)
cfg.set_keep_alive_timeout_ns (keep_alive_timeout_ns)
cfg.set_max_keep_alive_requests (max_keep_alive_requests)
end
@@ -244,10 +246,10 @@ feature {NONE} -- Implementation
end
max_tcp_clients: INTEGER
socket_timeout: INTEGER
socket_recv_timeout: INTEGER
socket_timeout_ns: NATURAL_64
socket_recv_timeout_ns: NATURAL_64
keep_alive_timeout: INTEGER
keep_alive_timeout_ns: NATURAL_64
max_keep_alive_requests: INTEGER
is_secure_connection_supported: BOOLEAN