Skip to content
Merged
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
3 changes: 2 additions & 1 deletion python/rnet/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -107,13 +107,14 @@ class Client:
tcp_keepalive_interval: Optional[int] = None,
tcp_keepalive_retries: Optional[int] = None,
tcp_user_timeout: Optional[int] = None,
tcp_nodelay: Optional[bool] = None,
tcp_reuse_address: Optional[bool] = None,
pool_idle_timeout: Optional[int] = None,
pool_max_idle_per_host: Optional[int] = None,
pool_max_size: Optional[int] = None,
http1_only: Optional[bool] = None,
http2_only: Optional[bool] = None,
https_only: Optional[bool] = None,
tcp_nodelay: Optional[bool] = None,
http2_max_retry_count: Optional[int] = None,
verify: Optional[Union[bool, Path]] = None,
tls_info: Optional[bool] = None,
Expand Down
3 changes: 2 additions & 1 deletion python/rnet/blocking.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,14 @@ class BlockingClient:
tcp_keepalive_interval: Optional[int] = None,
tcp_keepalive_retries: Optional[int] = None,
tcp_user_timeout: Optional[int] = None,
tcp_nodelay: Optional[bool] = None,
tcp_reuse_address: Optional[bool] = None,
pool_idle_timeout: Optional[int] = None,
pool_max_idle_per_host: Optional[int] = None,
pool_max_size: Optional[int] = None,
http1_only: Optional[bool] = None,
http2_only: Optional[bool] = None,
https_only: Optional[bool] = None,
tcp_nodelay: Optional[bool] = None,
http2_max_retry_count: Optional[int] = None,
verify: Optional[Union[bool, Path]] = None,
tls_info: Optional[bool] = None,
Expand Down
8 changes: 7 additions & 1 deletion src/client/async_impl/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,13 @@ impl Client {
tcp_user_timeout,
Duration::from_secs
);
apply_option!(apply_if_some, builder, params.tcp_nodelay, tcp_nodelay);
apply_option!(
apply_if_some,
builder,
params.tcp_reuse_address,
tcp_reuse_address
);

// Timeout options.
apply_option!(
Expand Down Expand Up @@ -292,7 +299,6 @@ impl Client {
false
);
apply_option!(apply_if_some, builder, params.https_only, https_only);
apply_option!(apply_if_some, builder, params.tcp_nodelay, tcp_nodelay);
apply_option!(
apply_if_some,
builder,
Expand Down
27 changes: 19 additions & 8 deletions src/client/param/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,7 @@ pub struct ClientParams {
/// The read timeout to use for the client. (in seconds)
pub read_timeout: Option<u64>,

/// Disable keep-alive for the client.
pub no_keepalive: Option<bool>,

// ========= TCP options =========
/// Set that all sockets have `SO_KEEPALIVE` set with the supplied duration. (in seconds)
pub tcp_keepalive: Option<u64>,

Expand All @@ -63,6 +61,13 @@ pub struct ClientParams {
/// Set an optional user timeout for TCP sockets. (in seconds)
pub tcp_user_timeout: Option<u64>,

/// Set that all sockets have `NO_DELAY` set.
pub tcp_nodelay: Option<bool>,

/// Set that all sockets have `SO_REUSEADDR` set.
pub tcp_reuse_address: Option<bool>,

// ========= Connection pool options =========
/// Set an optional timeout for idle sockets being kept-alive. (in seconds)
pub pool_idle_timeout: Option<u64>,

Expand All @@ -72,6 +77,9 @@ pub struct ClientParams {
/// Sets the maximum number of connections in the pool.
pub pool_max_size: Option<u32>,

/// Disable keep-alive for the client.
pub no_keepalive: Option<bool>,

// ========= Protocol options =========
/// Whether to use the HTTP/1 protocol only.
pub http1_only: Option<bool>,
Expand All @@ -82,9 +90,6 @@ pub struct ClientParams {
/// Whether to use HTTPS only.
pub https_only: Option<bool>,

/// Set whether sockets have `TCP_NODELAY` enabled.
pub tcp_nodelay: Option<bool>,

/// The maximum number of times to retry a client.
pub http2_max_retry_count: Option<usize>,

Expand Down Expand Up @@ -143,11 +148,18 @@ impl<'py> FromPyObject<'py> for ClientParams {
extract_option!(ob, params, timeout);
extract_option!(ob, params, connect_timeout);
extract_option!(ob, params, read_timeout);

extract_option!(ob, params, tcp_keepalive);
extract_option!(ob, params, tcp_keepalive_interval);
extract_option!(ob, params, tcp_keepalive_retries);
extract_option!(ob, params, tcp_user_timeout);
extract_option!(ob, params, tcp_nodelay);
extract_option!(ob, params, tcp_reuse_address);

extract_option!(ob, params, pool_idle_timeout);
extract_option!(ob, params, pool_max_idle_per_host);
extract_option!(ob, params, pool_max_size);
extract_option!(ob, params, no_keepalive);
extract_option!(ob, params, tcp_keepalive);

extract_option!(ob, params, no_proxy);
extract_option!(ob, params, proxies);
Expand All @@ -157,7 +169,6 @@ impl<'py> FromPyObject<'py> for ClientParams {
extract_option!(ob, params, http1_only);
extract_option!(ob, params, http2_only);
extract_option!(ob, params, https_only);
extract_option!(ob, params, tcp_nodelay);
extract_option!(ob, params, verify);
extract_option!(ob, params, http2_max_retry_count);
extract_option!(ob, params, tls_info);
Expand Down
Loading