mirror of
https://forgejo.ellis.link/continuwuation/continuwuity/
synced 2026-05-15 06:15:04 +00:00
feat(config): introduce federation connection timeout setting
fixes #906 Signed-off-by: rooot <hey@rooot.gay>
This commit is contained in:
@@ -325,6 +325,14 @@
|
||||
#
|
||||
#well_known_timeout = 10
|
||||
|
||||
# Federation client connection timeout (seconds). You should not set this
|
||||
# to high values, as dead homeservers can significantly slow down
|
||||
# federation, specifically key retrieval, which will take roughly the
|
||||
# amount of time you configure here given that a homeserver doesn't
|
||||
# respond.
|
||||
#
|
||||
#federation_conn_timeout = 10
|
||||
|
||||
# Federation client request timeout (seconds). You most definitely want
|
||||
# this to be high to account for extremely large room joins, slow
|
||||
# homeservers, your own resources etc.
|
||||
|
||||
@@ -412,6 +412,16 @@ pub struct Config {
|
||||
#[serde(default = "default_well_known_timeout")]
|
||||
pub well_known_timeout: u64,
|
||||
|
||||
/// Federation client connection timeout (seconds). You should not set this
|
||||
/// to high values, as dead homeservers can significantly slow down
|
||||
/// federation, specifically key retrieval, which will take roughly the
|
||||
/// amount of time you configure here given that a homeserver doesn't
|
||||
/// respond.
|
||||
///
|
||||
/// default: 10
|
||||
#[serde(default = "default_federation_conn_timeout")]
|
||||
pub federation_conn_timeout: u64,
|
||||
|
||||
/// Federation client request timeout (seconds). You most definitely want
|
||||
/// this to be high to account for extremely large room joins, slow
|
||||
/// homeservers, your own resources etc.
|
||||
@@ -2193,6 +2203,8 @@ fn default_well_known_conn_timeout() -> u64 { 6 }
|
||||
|
||||
fn default_well_known_timeout() -> u64 { 10 }
|
||||
|
||||
fn default_federation_conn_timeout() -> u64 { 10 }
|
||||
|
||||
fn default_federation_timeout() -> u64 { 25 }
|
||||
|
||||
fn default_federation_idle_timeout() -> u64 { 25 }
|
||||
|
||||
@@ -66,6 +66,7 @@ fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
||||
|
||||
federation: base(config)?
|
||||
.dns_resolver(resolver.resolver.hooked.clone())
|
||||
.connect_timeout(Duration::from_secs(config.federation_conn_timeout))
|
||||
.read_timeout(Duration::from_secs(config.federation_timeout))
|
||||
.pool_max_idle_per_host(config.federation_idle_per_host.into())
|
||||
.pool_idle_timeout(Duration::from_secs(config.federation_idle_timeout))
|
||||
@@ -74,6 +75,7 @@ fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
||||
|
||||
synapse: base(config)?
|
||||
.dns_resolver(resolver.resolver.hooked.clone())
|
||||
.connect_timeout(Duration::from_secs(config.federation_conn_timeout))
|
||||
.read_timeout(Duration::from_secs(305))
|
||||
.pool_max_idle_per_host(0)
|
||||
.redirect(redirect::Policy::limited(3))
|
||||
@@ -81,6 +83,7 @@ fn build(args: crate::Args<'_>) -> Result<Arc<Self>> {
|
||||
|
||||
sender: base(config)?
|
||||
.dns_resolver(resolver.resolver.hooked.clone())
|
||||
.connect_timeout(Duration::from_secs(config.federation_conn_timeout))
|
||||
.read_timeout(Duration::from_secs(config.sender_timeout))
|
||||
.timeout(Duration::from_secs(config.sender_timeout))
|
||||
.pool_max_idle_per_host(1)
|
||||
|
||||
Reference in New Issue
Block a user