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 all 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
11 changes: 11 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,15 @@ 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 for local server key with deprecated key ID (logging to determine usage level for future removal): %s",
key_id,
)

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 for remote server key with deprecated key ID (logging to determine usage level for future removal): %s / %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