Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Declare support for Matrix 1.6 #15559

Merged
merged 4 commits into from
May 12, 2023
Merged
Show file tree
Hide file tree
Changes from 3 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
1 change: 1 addition & 0 deletions changelog.d/15559.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Advertise support for Matrix 1.6 on `/_matrix/client/versions`.
1 change: 1 addition & 0 deletions synapse/rest/client/versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ def on_GET(self, request: Request) -> Tuple[int, JsonDict]:
"v1.3",
"v1.4",
"v1.5",
"v1.6",
],
# as per MSC1497:
"unstable_features": {
Expand Down
8 changes: 8 additions & 0 deletions synapse/rest/key/v2/local_key_resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ class LocalKey(RestServlet):
"""HTTP resource containing encoding the TLS X.509 certificate and NACL
signature verification keys for this server::

GET /_matrix/key/v2/server HTTP/1.1

GET /_matrix/key/v2/server/a.key.id HTTP/1.1

HTTP/1.1 200 OK
Expand Down Expand Up @@ -100,6 +102,12 @@ def response_json_object(self) -> JsonDict:
def on_GET(
self, request: Request, key_id: Optional[str] = None
) -> Tuple[int, JsonDict]:
# Matrix 1.6 drops support for passing the key_id, this is incompatible
# with earlier versions and is allowed in order to support both.
# A warning is issued to help determine when it is safe to drop this.
if key_id:
logger.warning("Request received for local key with key ID: %s", key_id)
MadLittleMods marked this conversation as resolved.
Show resolved Hide resolved

time_now = self.clock.time_msec()
# Update the expiry time if less than half the interval remains.
if time_now + self.config.key.key_refresh_interval / 2 > self.valid_until_ts:
Expand Down
11 changes: 10 additions & 1 deletion synapse/rest/key/v2/remote_key_resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,15 @@ async def on_GET(
self, request: Request, server: str, key_id: Optional[str] = None
) -> Tuple[int, JsonDict]:
if server and key_id:
# Matrix 1.6 drops support for passing the key_id, this is incompatible
# with earlier versions and is allowed in order to support both.
# A warning is issued to help determine when it is safe to drop this.
logger.warning(
"Request received for remote key for server: %s with key ID: %s",
server,
key_id,
)

minimum_valid_until_ts = parse_integer(request, "minimum_valid_until_ts")
arguments = {}
if minimum_valid_until_ts is not None:
Expand Down Expand Up @@ -161,7 +170,7 @@ async def query_keys(

time_now_ms = self.clock.time_msec()

# Map server_name->key_id->int. Note that the value of the init is unused.
# Map server_name->key_id->int. Note that the value of the int is unused.
# XXX: why don't we just use a set?
cache_misses: Dict[str, Dict[str, int]] = {}
for (server_name, key_id, _), key_results in cached.items():
Expand Down