pub struct ServiceConfig { /* private fields */ }Expand description
Http2 connection configuration
Implementations§
Source§impl ServiceConfig
impl ServiceConfig
Source§impl ServiceConfig
impl ServiceConfig
Sourcepub fn set_initial_window_size(self, size: u32) -> Self
pub fn set_initial_window_size(self, size: u32) -> Self
Indicates the initial window size (in octets) for stream-level flow control for received data.
The initial window of a stream is used as part of flow control. For more
details, see [FlowControl].
The default value is 65,535.
Sourcepub fn set_initial_connection_window_size(self, size: u32) -> Self
pub fn set_initial_connection_window_size(self, size: u32) -> Self
Indicates the initial window size (in octets) for connection-level flow control for received data.
The initial window of a connection is used as part of flow control. For more details,
see FlowControl.
The default value is 1Mb.
Sourcepub fn set_max_frame_size(self, max: u32) -> Self
pub fn set_max_frame_size(self, max: u32) -> Self
Indicates the size (in octets) of the largest HTTP/2 frame payload that the configured server is able to accept.
The sender may send data frames that are smaller than this value,
but any data larger than max will be broken up into multiple DATA
frames.
The value must be between 16,384 and 16,777,215. The default value is 16,384.
§Panics
This function panics if max is not within the legal range specified
above.
Sourcepub fn set_max_header_list_size(self, max: u32) -> Self
pub fn set_max_header_list_size(self, max: u32) -> Self
Sets the max size of received header frames.
This advisory setting informs a peer of the maximum size of header list that the sender is prepared to accept, in octets. The value is based on the uncompressed size of header fields, including the length of the name and value in octets plus an overhead of 32 octets for each header field.
This setting is also used to limit the maximum amount of data that is buffered to decode HEADERS frames.
By default value is set to 48Kb.
Sourcepub fn set_max_header_continuation_frames(self, max: usize) -> Self
pub fn set_max_header_continuation_frames(self, max: usize) -> Self
Sets the max number of continuation frames for HEADERS
By default value is set to 5
Sourcepub fn set_max_concurrent_streams(self, max: u32) -> Self
pub fn set_max_concurrent_streams(self, max: u32) -> Self
Sets the maximum number of concurrent streams.
The maximum concurrent streams setting only controls the maximum number of streams that can be initiated by the remote peer. In other words, when this setting is set to 100, this does not limit the number of concurrent streams that can be created by the caller.
It is recommended that this value be no smaller than 100, so as to not
unnecessarily limit parallelism. However, any value is legal, including
0. If max is set to 0, then the remote will not be permitted to
initiate streams.
Note that streams in the reserved state, i.e., push promises that have been reserved but the stream has not started, do not count against this setting.
Also note that if the remote does exceed the value set here, it is not
a protocol level error. Instead, the h2 library will immediately reset
the stream.
See Section 5.1.2 in the HTTP/2 spec for more details.
Sourcepub fn set_max_concurrent_reset_streams(self, val: usize) -> Self
pub fn set_max_concurrent_reset_streams(self, val: usize) -> Self
Sets the maximum number of concurrent locally reset streams.
When a stream is explicitly reset by either calling
[SendResponse::send_reset] or by dropping a [SendResponse] instance
before completing the stream, the HTTP/2 specification requires that
any further frames received for that stream must be ignored for “some
time”.
In order to satisfy the specification, internal state must be maintained to implement the behavior. This state grows linearly with the number of streams that are locally reset.
The max_concurrent_reset_streams setting configures sets an upper
bound on the amount of state that is maintained. When this max value is
reached, the oldest reset stream is purged from memory.
Once the stream has been fully purged from memory, any additional frames received for that stream will result in a connection level protocol error, forcing the connection to terminate.
The default value is 32.
Sourcepub fn set_reset_stream_duration(self, dur: Seconds) -> Self
pub fn set_reset_stream_duration(self, dur: Seconds) -> Self
Sets the maximum number of concurrent locally reset streams.
When a stream is explicitly reset by either calling
[SendResponse::send_reset] or by dropping a [SendResponse] instance
before completing the stream, the HTTP/2 specification requires that
any further frames received for that stream must be ignored for “some
time”.
In order to satisfy the specification, internal state must be maintained to implement the behavior. This state grows linearly with the number of streams that are locally reset.
The reset_stream_duration setting configures the max amount of time
this state will be maintained in memory. Once the duration elapses, the
stream state is purged from memory.
Once the stream has been fully purged from memory, any additional frames received for that stream will result in a connection level protocol error, forcing the connection to terminate.
The default value is 30 seconds.
Sourcepub fn set_handshake_timeout(self, timeout: Seconds) -> Self
pub fn set_handshake_timeout(self, timeout: Seconds) -> Self
Set handshake timeout.
Hadnshake includes receiving preface and completing connection preparation.
By default handshake timeuot is 5 seconds.
Sourcepub fn set_ping_timeout(self, timeout: Seconds) -> Self
pub fn set_ping_timeout(self, timeout: Seconds) -> Self
Set ping timeout.
By default ping time-out is set to 60 seconds.
Source§impl ServiceConfig
impl ServiceConfig
Sourcepub fn is_shutdown(&self) -> bool
pub fn is_shutdown(&self) -> bool
Check if service is shutting down.
Trait Implementations§
Source§impl Clone for ServiceConfig
impl Clone for ServiceConfig
Source§fn clone(&self) -> ServiceConfig
fn clone(&self) -> ServiceConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more