summary refs log tree commit diff
path: root/synapse/config
diff options
context:
space:
mode:
authorShay <hillerys@element.io>2023-06-09 00:00:46 -0700
committerGitHub <noreply@github.com>2023-06-09 09:00:46 +0200
commitd84e66144dc12dacf71c987a2ba802dd59c0b68e (patch)
treede11408f278b7c1772c1061fd32d0c61151d21b2 /synapse/config
parentMerge branch 'master' into develop (diff)
downloadsynapse-d84e66144dc12dacf71c987a2ba802dd59c0b68e.tar.xz
Allow for the configuration of max request retries and min/max retry delays in the matrix federation client (#12504)
Co-authored-by: Mathieu Velten <mathieuv@matrix.org>
Co-authored-by: Erik Johnston <erik@matrix.org>
Diffstat (limited to 'synapse/config')
-rw-r--r--synapse/config/federation.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/synapse/config/federation.py b/synapse/config/federation.py
index 336fca578a..d21f7fd02a 100644
--- a/synapse/config/federation.py
+++ b/synapse/config/federation.py
@@ -22,6 +22,8 @@ class FederationConfig(Config):
     section = "federation"
 
     def read_config(self, config: JsonDict, **kwargs: Any) -> None:
+        federation_config = config.setdefault("federation", {})
+
         # FIXME: federation_domain_whitelist needs sytests
         self.federation_domain_whitelist: Optional[dict] = None
         federation_domain_whitelist = config.get("federation_domain_whitelist", None)
@@ -49,5 +51,13 @@ class FederationConfig(Config):
             "allow_device_name_lookup_over_federation", False
         )
 
+        # Allow for the configuration of timeout, max request retries
+        # and min/max retry delays in the matrix federation client.
+        self.client_timeout = federation_config.get("client_timeout", 60)
+        self.max_long_retry_delay = federation_config.get("max_long_retry_delay", 60)
+        self.max_short_retry_delay = federation_config.get("max_short_retry_delay", 2)
+        self.max_long_retries = federation_config.get("max_long_retries", 10)
+        self.max_short_retries = federation_config.get("max_short_retries", 3)
+
 
 _METRICS_FOR_DOMAINS_SCHEMA = {"type": "array", "items": {"type": "string"}}