diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2024-03-08 04:33:46 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-08 09:33:46 +0000 |
commit | 696cc9e802f63ba8657856d85f6982f49de14f27 (patch) | |
tree | dd704c2abb3865fd788968c97de147044ead6e8d /synapse | |
parent | Fix joining remote rooms when a `on_new_event` callback is registered (#16973) (diff) | |
download | synapse-696cc9e802f63ba8657856d85f6982f49de14f27.tar.xz |
Stabilize support for Retry-After header (MSC4014) (#16947)
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/api/errors.py | 5 | ||||
-rw-r--r-- | synapse/config/experimental.py | 9 |
2 files changed, 2 insertions, 12 deletions
diff --git a/synapse/api/errors.py b/synapse/api/errors.py index b44088f9b3..dd4a1ae706 100644 --- a/synapse/api/errors.py +++ b/synapse/api/errors.py @@ -517,8 +517,6 @@ class InvalidCaptchaError(SynapseError): class LimitExceededError(SynapseError): """A client has sent too many requests and is being throttled.""" - include_retry_after_header = False - def __init__( self, limiter_name: str, @@ -526,9 +524,10 @@ class LimitExceededError(SynapseError): retry_after_ms: Optional[int] = None, errcode: str = Codes.LIMIT_EXCEEDED, ): + # Use HTTP header Retry-After to enable library-assisted retry handling. headers = ( {"Retry-After": str(math.ceil(retry_after_ms / 1000))} - if self.include_retry_after_header and retry_after_ms is not None + if retry_after_ms is not None else None ) super().__init__(code, "Too Many Requests", errcode, headers=headers) diff --git a/synapse/config/experimental.py b/synapse/config/experimental.py index d43d9da956..0bd3befdc2 100644 --- a/synapse/config/experimental.py +++ b/synapse/config/experimental.py @@ -25,7 +25,6 @@ from typing import TYPE_CHECKING, Any, Optional import attr import attr.validators -from synapse.api.errors import LimitExceededError from synapse.api.room_versions import KNOWN_ROOM_VERSIONS, RoomVersions from synapse.config import ConfigError from synapse.config._base import Config, RootConfig @@ -415,14 +414,6 @@ class ExperimentalConfig(Config): "msc4010_push_rules_account_data", False ) - # MSC4041: Use HTTP header Retry-After to enable library-assisted retry handling - # - # This is a bit hacky, but the most reasonable way to *alway* include the - # headers. - LimitExceededError.include_retry_after_header = experimental.get( - "msc4041_enabled", False - ) - self.msc4028_push_encrypted_events = experimental.get( "msc4028_push_encrypted_events", False ) |