diff --git a/synapse/federation/federation_client.py b/synapse/federation/federation_client.py
index 03ec14ce87..ed09c6af1f 100644
--- a/synapse/federation/federation_client.py
+++ b/synapse/federation/federation_client.py
@@ -90,7 +90,6 @@ class FederationClient(FederationBase):
self._clock.looping_call(self._clear_tried_cache, 60 * 1000)
self.state = hs.get_state_handler()
self.transport_layer = hs.get_federation_transport_client()
- self._msc2403_enabled = hs.config.experimental.msc2403_enabled
self.hostname = hs.hostname
self.signing_key = hs.signing_key
@@ -621,11 +620,7 @@ class FederationClient(FederationBase):
SynapseError: if the chosen remote server returns a 300/400 code, or
no servers successfully handle the request.
"""
- valid_memberships = {Membership.JOIN, Membership.LEAVE}
-
- # Allow knocking if the feature is enabled
- if self._msc2403_enabled:
- valid_memberships.add(Membership.KNOCK)
+ valid_memberships = {Membership.JOIN, Membership.LEAVE, Membership.KNOCK}
if membership not in valid_memberships:
raise RuntimeError(
@@ -989,7 +984,7 @@ class FederationClient(FederationBase):
return await self._do_send_knock(destination, pdu)
return await self._try_destination_list(
- "xyz.amorgan.knock/send_knock", destinations, send_request
+ "send_knock", destinations, send_request
)
async def _do_send_knock(self, destination: str, pdu: EventBase) -> JsonDict:
diff --git a/synapse/federation/transport/client.py b/synapse/federation/transport/client.py
index af0c679ed9..c9e7c57461 100644
--- a/synapse/federation/transport/client.py
+++ b/synapse/federation/transport/client.py
@@ -47,7 +47,6 @@ class TransportLayerClient:
def __init__(self, hs):
self.server_name = hs.hostname
self.client = hs.get_federation_http_client()
- self._msc2403_enabled = hs.config.experimental.msc2403_enabled
@log_function
def get_room_state_ids(self, destination, room_id, event_id):
@@ -221,29 +220,14 @@ class TransportLayerClient:
Fails with ``FederationDeniedError`` if the remote destination
is not in our federation whitelist
"""
- valid_memberships = {Membership.JOIN, Membership.LEAVE}
-
- # Allow knocking if the feature is enabled
- if self._msc2403_enabled:
- valid_memberships.add(Membership.KNOCK)
+ valid_memberships = {Membership.JOIN, Membership.LEAVE, Membership.KNOCK}
if membership not in valid_memberships:
raise RuntimeError(
"make_membership_event called with membership='%s', must be one of %s"
% (membership, ",".join(valid_memberships))
)
-
- # Knock currently uses an unstable prefix
- if membership == Membership.KNOCK:
- # Create a path in the form of /unstable/xyz.amorgan.knock/make_knock/...
- path = _create_path(
- FEDERATION_UNSTABLE_PREFIX + "/xyz.amorgan.knock",
- "/make_knock/%s/%s",
- room_id,
- user_id,
- )
- else:
- path = _create_v1_path("/make_%s/%s/%s", membership, room_id, user_id)
+ path = _create_v1_path("/make_%s/%s/%s", membership, room_id, user_id)
ignore_backoff = False
retry_on_dns_fail = False
@@ -366,12 +350,7 @@ class TransportLayerClient:
The list of state events may be empty.
"""
- path = _create_path(
- FEDERATION_UNSTABLE_PREFIX + "/xyz.amorgan.knock",
- "/send_knock/%s/%s",
- room_id,
- event_id,
- )
+ path = _create_v1_path("/send_knock/%s/%s", room_id, event_id)
return await self.client.put_json(
destination=destination, path=path, data=content
diff --git a/synapse/federation/transport/server.py b/synapse/federation/transport/server.py
index fe5fb6bee7..16d740cf58 100644
--- a/synapse/federation/transport/server.py
+++ b/synapse/federation/transport/server.py
@@ -567,8 +567,6 @@ class FederationV2SendLeaveServlet(BaseFederationServerServlet):
class FederationMakeKnockServlet(BaseFederationServerServlet):
PATH = "/make_knock/(?P<room_id>[^/]*)/(?P<user_id>[^/]*)"
- PREFIX = FEDERATION_UNSTABLE_PREFIX + "/xyz.amorgan.knock"
-
async def on_GET(self, origin, content, query, room_id, user_id):
try:
# Retrieve the room versions the remote homeserver claims to support
@@ -585,8 +583,6 @@ class FederationMakeKnockServlet(BaseFederationServerServlet):
class FederationV1SendKnockServlet(BaseFederationServerServlet):
PATH = "/send_knock/(?P<room_id>[^/]*)/(?P<event_id>[^/]*)"
- PREFIX = FEDERATION_UNSTABLE_PREFIX + "/xyz.amorgan.knock"
-
async def on_PUT(self, origin, content, query, room_id, event_id):
content = await self.handler.on_send_knock_request(origin, content, room_id)
return 200, content
@@ -1610,6 +1606,8 @@ FEDERATION_SERVLET_CLASSES = (
FederationVersionServlet,
RoomComplexityServlet,
FederationSpaceSummaryServlet,
+ FederationV1SendKnockServlet,
+ FederationMakeKnockServlet,
) # type: Tuple[Type[BaseFederationServlet], ...]
OPENID_SERVLET_CLASSES = (
@@ -1652,12 +1650,6 @@ GROUP_ATTESTATION_SERVLET_CLASSES = (
) # type: Tuple[Type[BaseFederationServlet], ...]
-MSC2403_SERVLET_CLASSES = (
- FederationV1SendKnockServlet,
- FederationMakeKnockServlet,
-)
-
-
DEFAULT_SERVLET_GROUPS = (
"federation",
"room_list",
@@ -1700,16 +1692,6 @@ def register_servlets(
server_name=hs.hostname,
).register(resource)
- # Register msc2403 (knocking) servlets if the feature is enabled
- if hs.config.experimental.msc2403_enabled:
- for servletclass in MSC2403_SERVLET_CLASSES:
- servletclass(
- hs=hs,
- authenticator=authenticator,
- ratelimiter=ratelimiter,
- server_name=hs.hostname,
- ).register(resource)
-
if "openid" in servlet_groups:
for servletclass in OPENID_SERVLET_CLASSES:
servletclass(
|