Merge branch 'develop' into matrix-org-hotfixes
commit
8a8d01d732
101
CHANGES.md
101
CHANGES.md
|
@ -1,3 +1,104 @@
|
||||||
|
Synapse 1.21.0rc1 (2020-10-01)
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
- Require the user to confirm that their password should be reset after clicking the email confirmation link. ([\#8004](https://github.com/matrix-org/synapse/issues/8004))
|
||||||
|
- Add an admin API `GET /_synapse/admin/v1/event_reports` to read entries of table `event_reports`. Contributed by @dklimpel. ([\#8217](https://github.com/matrix-org/synapse/issues/8217))
|
||||||
|
- Consolidate the SSO error template across all configuration. ([\#8248](https://github.com/matrix-org/synapse/issues/8248), [\#8405](https://github.com/matrix-org/synapse/issues/8405))
|
||||||
|
- Add a configuration option to specify a whitelist of domains that a user can be redirected to after validating their email or phone number. ([\#8275](https://github.com/matrix-org/synapse/issues/8275), [\#8417](https://github.com/matrix-org/synapse/issues/8417))
|
||||||
|
- Add experimental support for sharding event persister. ([\#8294](https://github.com/matrix-org/synapse/issues/8294), [\#8387](https://github.com/matrix-org/synapse/issues/8387), [\#8396](https://github.com/matrix-org/synapse/issues/8396), [\#8419](https://github.com/matrix-org/synapse/issues/8419))
|
||||||
|
- Add the room topic and avatar to the room details admin API. ([\#8305](https://github.com/matrix-org/synapse/issues/8305))
|
||||||
|
- Add an admin API for querying rooms where a user is a member. Contributed by @dklimpel. ([\#8306](https://github.com/matrix-org/synapse/issues/8306))
|
||||||
|
- Add `uk.half-shot.msc2778.login.application_service` login type to allow appservices to login. ([\#8320](https://github.com/matrix-org/synapse/issues/8320))
|
||||||
|
- Add a configuration option that allows existing users to log in with OpenID Connect. Contributed by @BBBSnowball and @OmmyZhang. ([\#8345](https://github.com/matrix-org/synapse/issues/8345))
|
||||||
|
- Add prometheus metrics for replication requests. ([\#8406](https://github.com/matrix-org/synapse/issues/8406))
|
||||||
|
- Support passing additional single sign-on parameters to the client. ([\#8413](https://github.com/matrix-org/synapse/issues/8413))
|
||||||
|
- Add experimental reporting of metrics on expensive rooms for state-resolution. ([\#8420](https://github.com/matrix-org/synapse/issues/8420))
|
||||||
|
- Add experimental prometheus metric to track numbers of "large" rooms for state resolutiom. ([\#8425](https://github.com/matrix-org/synapse/issues/8425))
|
||||||
|
- Add prometheus metrics to track federation delays. ([\#8430](https://github.com/matrix-org/synapse/issues/8430))
|
||||||
|
|
||||||
|
|
||||||
|
Bugfixes
|
||||||
|
--------
|
||||||
|
|
||||||
|
- Fix a bug in the media repository where remote thumbnails with the same size but different crop methods would overwrite each other. Contributed by @deepbluev7. ([\#7124](https://github.com/matrix-org/synapse/issues/7124))
|
||||||
|
- Fix inconsistent handling of non-existent push rules, and stop tracking the `enabled` state of removed push rules. ([\#7796](https://github.com/matrix-org/synapse/issues/7796))
|
||||||
|
- Fix a longstanding bug when storing a media file with an empty `upload_name`. ([\#7905](https://github.com/matrix-org/synapse/issues/7905))
|
||||||
|
- Fix messages not being sent over federation until an event is sent into the same room. ([\#8230](https://github.com/matrix-org/synapse/issues/8230), [\#8247](https://github.com/matrix-org/synapse/issues/8247), [\#8258](https://github.com/matrix-org/synapse/issues/8258), [\#8272](https://github.com/matrix-org/synapse/issues/8272), [\#8322](https://github.com/matrix-org/synapse/issues/8322))
|
||||||
|
- Fix a longstanding bug where files that could not be thumbnailed would result in an Internal Server Error. ([\#8236](https://github.com/matrix-org/synapse/issues/8236), [\#8435](https://github.com/matrix-org/synapse/issues/8435))
|
||||||
|
- Upgrade minimum version of `canonicaljson` to version 1.4.0, to fix an unicode encoding issue. ([\#8262](https://github.com/matrix-org/synapse/issues/8262))
|
||||||
|
- Fix longstanding bug which could lead to incomplete database upgrades on SQLite. ([\#8265](https://github.com/matrix-org/synapse/issues/8265))
|
||||||
|
- Fix stack overflow when stderr is redirected to the logging system, and the logging system encounters an error. ([\#8268](https://github.com/matrix-org/synapse/issues/8268))
|
||||||
|
- Fix a bug which cause the logging system to report errors, if `DEBUG` was enabled and no `context` filter was applied. ([\#8278](https://github.com/matrix-org/synapse/issues/8278))
|
||||||
|
- Fix edge case where push could get delayed for a user until a later event was pushed. ([\#8287](https://github.com/matrix-org/synapse/issues/8287))
|
||||||
|
- Fix fetching malformed events from remote servers. ([\#8324](https://github.com/matrix-org/synapse/issues/8324))
|
||||||
|
- Fix `UnboundLocalError` from occuring when appservices send a malformed register request. ([\#8329](https://github.com/matrix-org/synapse/issues/8329))
|
||||||
|
- Don't send push notifications to expired user accounts. ([\#8353](https://github.com/matrix-org/synapse/issues/8353))
|
||||||
|
- Fix a regression in v1.19.0 with reactivating users through the admin API. ([\#8362](https://github.com/matrix-org/synapse/issues/8362))
|
||||||
|
- Fix a bug where during device registration the length of the device name wasn't limited. ([\#8364](https://github.com/matrix-org/synapse/issues/8364))
|
||||||
|
- Include `guest_access` in the fields that are checked for null bytes when updating `room_stats_state`. Broke in v1.7.2. ([\#8373](https://github.com/matrix-org/synapse/issues/8373))
|
||||||
|
- Fix theoretical race condition where events are not sent down `/sync` if the synchrotron worker is restarted without restarting other workers. ([\#8374](https://github.com/matrix-org/synapse/issues/8374))
|
||||||
|
- Fix a bug which could cause errors in rooms with malformed membership events, on servers using sqlite. ([\#8385](https://github.com/matrix-org/synapse/issues/8385))
|
||||||
|
- Fix "Re-starting finished log context" warning when receiving an event we already had over federation. ([\#8398](https://github.com/matrix-org/synapse/issues/8398))
|
||||||
|
- Fix incorrect handling of timeouts on outgoing HTTP requests. ([\#8400](https://github.com/matrix-org/synapse/issues/8400))
|
||||||
|
- Fix a regression in v1.20.0 in the `synapse_port_db` script regarding the `ui_auth_sessions_ips` table. ([\#8410](https://github.com/matrix-org/synapse/issues/8410))
|
||||||
|
- Remove unnecessary 3PID registration check when resetting password via an email address. Bug introduced in v0.34.0rc2. ([\#8414](https://github.com/matrix-org/synapse/issues/8414))
|
||||||
|
|
||||||
|
|
||||||
|
Improved Documentation
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
- Add `/_synapse/client` to the reverse proxy documentation. ([\#8227](https://github.com/matrix-org/synapse/issues/8227))
|
||||||
|
- Add note to the reverse proxy settings documentation about disabling Apache's mod_security2. Contributed by Julian Fietkau (@jfietkau). ([\#8375](https://github.com/matrix-org/synapse/issues/8375))
|
||||||
|
- Improve description of `server_name` config option in `homserver.yaml`. ([\#8415](https://github.com/matrix-org/synapse/issues/8415))
|
||||||
|
|
||||||
|
|
||||||
|
Deprecations and Removals
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
- Drop support for `prometheus_client` older than 0.4.0. ([\#8426](https://github.com/matrix-org/synapse/issues/8426))
|
||||||
|
|
||||||
|
|
||||||
|
Internal Changes
|
||||||
|
----------------
|
||||||
|
|
||||||
|
- Fix tests on distros which disable TLSv1.0. Contributed by @danc86. ([\#8208](https://github.com/matrix-org/synapse/issues/8208))
|
||||||
|
- Simplify the distributor code to avoid unnecessary work. ([\#8216](https://github.com/matrix-org/synapse/issues/8216))
|
||||||
|
- Remove the `populate_stats_process_rooms_2` background job and restore functionality to `populate_stats_process_rooms`. ([\#8243](https://github.com/matrix-org/synapse/issues/8243))
|
||||||
|
- Clean up type hints for `PaginationConfig`. ([\#8250](https://github.com/matrix-org/synapse/issues/8250), [\#8282](https://github.com/matrix-org/synapse/issues/8282))
|
||||||
|
- Track the latest event for every destination and room for catch-up after federation outage. ([\#8256](https://github.com/matrix-org/synapse/issues/8256))
|
||||||
|
- Fix non-user visible bug in implementation of `MultiWriterIdGenerator.get_current_token_for_writer`. ([\#8257](https://github.com/matrix-org/synapse/issues/8257))
|
||||||
|
- Switch to the JSON implementation from the standard library. ([\#8259](https://github.com/matrix-org/synapse/issues/8259))
|
||||||
|
- Add type hints to `synapse.util.async_helpers`. ([\#8260](https://github.com/matrix-org/synapse/issues/8260))
|
||||||
|
- Simplify tests that mock asynchronous functions. ([\#8261](https://github.com/matrix-org/synapse/issues/8261))
|
||||||
|
- Add type hints to `StreamToken` and `RoomStreamToken` classes. ([\#8279](https://github.com/matrix-org/synapse/issues/8279))
|
||||||
|
- Change `StreamToken.room_key` to be a `RoomStreamToken` instance. ([\#8281](https://github.com/matrix-org/synapse/issues/8281))
|
||||||
|
- Refactor notifier code to correctly use the max event stream position. ([\#8288](https://github.com/matrix-org/synapse/issues/8288))
|
||||||
|
- Use slotted classes where possible. ([\#8296](https://github.com/matrix-org/synapse/issues/8296))
|
||||||
|
- Support testing the local Synapse checkout against the [Complement homeserver test suite](https://github.com/matrix-org/complement/). ([\#8317](https://github.com/matrix-org/synapse/issues/8317))
|
||||||
|
- Update outdated usages of `metaclass` to python 3 syntax. ([\#8326](https://github.com/matrix-org/synapse/issues/8326))
|
||||||
|
- Move lint-related dependencies to package-extra field, update CONTRIBUTING.md to utilise this. ([\#8330](https://github.com/matrix-org/synapse/issues/8330), [\#8377](https://github.com/matrix-org/synapse/issues/8377))
|
||||||
|
- Use the `admin_patterns` helper in additional locations. ([\#8331](https://github.com/matrix-org/synapse/issues/8331))
|
||||||
|
- Fix test logging to allow braces in log output. ([\#8335](https://github.com/matrix-org/synapse/issues/8335))
|
||||||
|
- Remove `__future__` imports related to Python 2 compatibility. ([\#8337](https://github.com/matrix-org/synapse/issues/8337))
|
||||||
|
- Simplify `super()` calls to Python 3 syntax. ([\#8344](https://github.com/matrix-org/synapse/issues/8344))
|
||||||
|
- Fix bad merge from `release-v1.20.0` branch to `develop`. ([\#8354](https://github.com/matrix-org/synapse/issues/8354))
|
||||||
|
- Factor out a `_send_dummy_event_for_room` method. ([\#8370](https://github.com/matrix-org/synapse/issues/8370))
|
||||||
|
- Improve logging of state resolution. ([\#8371](https://github.com/matrix-org/synapse/issues/8371))
|
||||||
|
- Add type annotations to `SimpleHttpClient`. ([\#8372](https://github.com/matrix-org/synapse/issues/8372))
|
||||||
|
- Refactor ID generators to use `async with` syntax. ([\#8383](https://github.com/matrix-org/synapse/issues/8383))
|
||||||
|
- Add `EventStreamPosition` type. ([\#8388](https://github.com/matrix-org/synapse/issues/8388))
|
||||||
|
- Create a mechanism for marking tests "logcontext clean". ([\#8399](https://github.com/matrix-org/synapse/issues/8399))
|
||||||
|
- A pair of tiny cleanups in the federation request code. ([\#8401](https://github.com/matrix-org/synapse/issues/8401))
|
||||||
|
- Add checks on startup that PostgreSQL sequences are consistent with their associated tables. ([\#8402](https://github.com/matrix-org/synapse/issues/8402))
|
||||||
|
- Do not include appservice users when calculating the total MAU for a server. ([\#8404](https://github.com/matrix-org/synapse/issues/8404))
|
||||||
|
- Typing fixes for `synapse.handlers.federation`. ([\#8422](https://github.com/matrix-org/synapse/issues/8422))
|
||||||
|
- Various refactors to simplify stream token handling. ([\#8423](https://github.com/matrix-org/synapse/issues/8423))
|
||||||
|
- Make stream token serializing/deserializing async. ([\#8427](https://github.com/matrix-org/synapse/issues/8427))
|
||||||
|
|
||||||
|
|
||||||
Synapse 1.20.1 (2020-09-24)
|
Synapse 1.20.1 (2020-09-24)
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Fix a bug in the media repository where remote thumbnails with the same size but different crop methods would overwrite each other. Contributed by @deepbluev7.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix inconsistent handling of non-existent push rules, and stop tracking the `enabled` state of removed push rules.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix a longstanding bug when storing a media file with an empty `upload_name`.
|
|
|
@ -1 +0,0 @@
|
||||||
Require the user to confirm that their password should be reset after clicking the email confirmation link.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix tests on distros which disable TLSv1.0. Contributed by @danc86.
|
|
|
@ -1 +0,0 @@
|
||||||
Simplify the distributor code to avoid unnecessary work.
|
|
|
@ -1 +0,0 @@
|
||||||
Add an admin API `GET /_synapse/admin/v1/event_reports` to read entries of table `event_reports`. Contributed by @dklimpel.
|
|
|
@ -1 +0,0 @@
|
||||||
Add `/_synapse/client` to the reverse proxy documentation.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix messages over federation being lost until an event is sent into the same room.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix a longstanding bug where files that could not be thumbnailed would result in an Internal Server Error.
|
|
|
@ -1 +0,0 @@
|
||||||
Remove the 'populate_stats_process_rooms_2' background job and restore functionality to 'populate_stats_process_rooms'.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix messages over federation being lost until an event is sent into the same room.
|
|
|
@ -1 +0,0 @@
|
||||||
Consolidate the SSO error template across all configuration.
|
|
|
@ -1 +0,0 @@
|
||||||
Clean up type hints for `PaginationConfig`.
|
|
|
@ -1 +0,0 @@
|
||||||
Track the latest event for every destination and room for catch-up after federation outage.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix non-user visible bug in implementation of `MultiWriterIdGenerator.get_current_token_for_writer`.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix messages over federation being lost until an event is sent into the same room.
|
|
|
@ -1 +0,0 @@
|
||||||
Switch to the JSON implementation from the standard library.
|
|
|
@ -1 +0,0 @@
|
||||||
Add type hints to `synapse.util.async_helpers`.
|
|
|
@ -1 +0,0 @@
|
||||||
Simplify tests that mock asynchronous functions.
|
|
|
@ -1 +0,0 @@
|
||||||
Upgrade canonicaljson to version 1.4.0 to fix an unicode encoding issue.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix logstanding bug which could lead to incomplete database upgrades on SQLite.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix stack overflow when stderr is redirected to the logging system, and the logging system encounters an error.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix messages over federation being lost until an event is sent into the same room.
|
|
|
@ -1 +0,0 @@
|
||||||
Add a config option to specify a whitelist of domains that a user can be redirected to after validating their email or phone number.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix a bug which cause the logging system to report errors, if `DEBUG` was enabled and no `context` filter was applied.
|
|
|
@ -1 +0,0 @@
|
||||||
Add type hints to `StreamToken` and `RoomStreamToken` classes.
|
|
|
@ -1 +0,0 @@
|
||||||
Change `StreamToken.room_key` to be a `RoomStreamToken` instance.
|
|
|
@ -1 +0,0 @@
|
||||||
Clean up type hints for `PaginationConfig`.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix edge case where push could get delayed for a user until a later event was pushed.
|
|
|
@ -1 +0,0 @@
|
||||||
Refactor notifier code to correctly use the max event stream position.
|
|
|
@ -1 +0,0 @@
|
||||||
Add experimental support for sharding event persister.
|
|
|
@ -1 +0,0 @@
|
||||||
Use slotted classes where possible.
|
|
|
@ -1 +0,0 @@
|
||||||
Add the room topic and avatar to the room details admin API.
|
|
|
@ -1 +0,0 @@
|
||||||
Add an admin API for querying rooms where a user is a member. Contributed by @dklimpel.
|
|
|
@ -1 +0,0 @@
|
||||||
Support testing the local Synapse checkout against the [Complement homeserver test suite](https://github.com/matrix-org/complement/).
|
|
|
@ -1 +0,0 @@
|
||||||
Add `uk.half-shot.msc2778.login.application_service` login type to allow appservices to login.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix messages over federation being lost until an event is sent into the same room.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix fetching events from remote servers that are malformed.
|
|
|
@ -1 +0,0 @@
|
||||||
Update outdated usages of `metaclass` to python 3 syntax.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix UnboundLocalError from occuring when appservices send malformed register request.
|
|
|
@ -1 +0,0 @@
|
||||||
Move lint-related dependencies to package-extra field, update CONTRIBUTING.md to utilise this.
|
|
|
@ -1 +0,0 @@
|
||||||
Use the `admin_patterns` helper in additional locations.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix test logging to allow braces in log output.
|
|
|
@ -1 +0,0 @@
|
||||||
Remove `__future__` imports related to Python 2 compatibility.
|
|
|
@ -1 +0,0 @@
|
||||||
Simplify `super()` calls to Python 3 syntax.
|
|
|
@ -1 +0,0 @@
|
||||||
Add a configuration option that allows existing users to log in with OpenID Connect. Contributed by @BBBSnowball and @OmmyZhang.
|
|
|
@ -1 +0,0 @@
|
||||||
Don't send push notifications to expired user accounts.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix bad merge from `release-v1.20.0` branch to `develop`.
|
|
|
@ -1 +0,0 @@
|
||||||
Fixed a regression in v1.19.0 with reactivating users through the admin API.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Fix a bug where during device registration the length of the device name wasn't
|
|
||||||
limited.
|
|
|
@ -1 +0,0 @@
|
||||||
Factor out a `_send_dummy_event_for_room` method.
|
|
|
@ -1 +0,0 @@
|
||||||
Improve logging of state resolution.
|
|
|
@ -1 +0,0 @@
|
||||||
Add type annotations to `SimpleHttpClient`.
|
|
|
@ -1 +0,0 @@
|
||||||
Include `guest_access` in the fields that are checked for null bytes when updating `room_stats_state`. Broke in v1.7.2.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix theoretical race condition where events are not sent down `/sync` if the synchrotron worker is restarted without restarting other workers.
|
|
|
@ -1 +0,0 @@
|
||||||
Add note to the reverse proxy settings documentation about disabling Apache's mod_security2. Contributed by Julian Fietkau (@jfietkau).
|
|
|
@ -1 +0,0 @@
|
||||||
Move lint-related dependencies to package-extra field, update CONTRIBUTING.md to utilise this.
|
|
|
@ -1 +0,0 @@
|
||||||
Refactor ID generators to use `async with` syntax.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix a bug which could cause errors in rooms with malformed membership events, on servers using sqlite.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix a bug introduced in v1.20.0 which caused the `synapse_port_db` script to fail.
|
|
|
@ -1 +0,0 @@
|
||||||
Add experimental support for sharding event persister.
|
|
|
@ -1 +0,0 @@
|
||||||
Add `EventStreamPosition` type.
|
|
|
@ -1 +0,0 @@
|
||||||
Add experimental support for sharding event persister.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix "Re-starting finished log context" warning when receiving an event we already had over federation.
|
|
|
@ -1 +0,0 @@
|
||||||
Create a mechanism for marking tests "logcontext clean".
|
|
|
@ -1 +0,0 @@
|
||||||
Fix incorrect handling of timeouts on outgoing HTTP requests.
|
|
|
@ -1 +0,0 @@
|
||||||
A pair of tiny cleanups in the federation request code.
|
|
|
@ -1 +0,0 @@
|
||||||
Add checks on startup that PostgreSQL sequences are consistent with their associated tables.
|
|
|
@ -1 +0,0 @@
|
||||||
Do not include appservice users when calculating the total MAU for a server.
|
|
|
@ -1 +0,0 @@
|
||||||
Consolidate the SSO error template across all configuration.
|
|
|
@ -1 +0,0 @@
|
||||||
Add prometheus metrics for replication requests.
|
|
|
@ -1 +0,0 @@
|
||||||
Fix a v1.20.0 regression in the `synapse_port_db` script regarding the `ui_auth_sessions_ips` table.
|
|
|
@ -1 +0,0 @@
|
||||||
Support passing additional single sign-on parameters to the client.
|
|
|
@ -1 +0,0 @@
|
||||||
Remove unnecessary 3PID registration check when resetting password via an email address. Bug introduced in v0.34.0rc2.
|
|
|
@ -1 +0,0 @@
|
||||||
Improve description of `server_name` config option in `homserver.yaml`.
|
|
|
@ -1 +0,0 @@
|
||||||
Add a config option to specify a whitelist of domains that a user can be redirected to after validating their email or phone number.
|
|
|
@ -1 +0,0 @@
|
||||||
Add experimental support for sharding event persister.
|
|
|
@ -1 +0,0 @@
|
||||||
Add experimental reporting of metrics on expensive rooms for state-resolution.
|
|
|
@ -1 +0,0 @@
|
||||||
Typing fixes for `synapse.handlers.federation`.
|
|
|
@ -1 +0,0 @@
|
||||||
Various refactors to simplify stream token handling.
|
|
|
@ -1 +0,0 @@
|
||||||
Add experimental prometheus metric to track numbers of "large" rooms for state resolutiom.
|
|
|
@ -1 +0,0 @@
|
||||||
Drop support for `prometheus_client` older than 0.4.0.
|
|
|
@ -1 +0,0 @@
|
||||||
Make stream token serializing/deserializing async.
|
|
|
@ -1 +0,0 @@
|
||||||
Add prometheus metrics to track federation delays.
|
|
|
@ -0,0 +1 @@
|
||||||
|
Check for unreachable code with mypy.
|
1
mypy.ini
1
mypy.ini
|
@ -6,6 +6,7 @@ check_untyped_defs = True
|
||||||
show_error_codes = True
|
show_error_codes = True
|
||||||
show_traceback = True
|
show_traceback = True
|
||||||
mypy_path = stubs
|
mypy_path = stubs
|
||||||
|
warn_unreachable = True
|
||||||
files =
|
files =
|
||||||
synapse/api,
|
synapse/api,
|
||||||
synapse/appservice,
|
synapse/appservice,
|
||||||
|
|
|
@ -48,7 +48,7 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
__version__ = "1.20.1"
|
__version__ = "1.21.0rc1"
|
||||||
|
|
||||||
if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
|
if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
|
||||||
# We import here so that we don't have to install a bunch of deps when
|
# We import here so that we don't have to install a bunch of deps when
|
||||||
|
|
|
@ -18,7 +18,7 @@ import os
|
||||||
import warnings
|
import warnings
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from hashlib import sha256
|
from hashlib import sha256
|
||||||
from typing import List
|
from typing import List, Optional
|
||||||
|
|
||||||
from unpaddedbase64 import encode_base64
|
from unpaddedbase64 import encode_base64
|
||||||
|
|
||||||
|
@ -177,8 +177,8 @@ class TlsConfig(Config):
|
||||||
"use_insecure_ssl_client_just_for_testing_do_not_use"
|
"use_insecure_ssl_client_just_for_testing_do_not_use"
|
||||||
)
|
)
|
||||||
|
|
||||||
self.tls_certificate = None
|
self.tls_certificate = None # type: Optional[crypto.X509]
|
||||||
self.tls_private_key = None
|
self.tls_private_key = None # type: Optional[crypto.PKey]
|
||||||
|
|
||||||
def is_disk_cert_valid(self, allow_self_signed=True):
|
def is_disk_cert_valid(self, allow_self_signed=True):
|
||||||
"""
|
"""
|
||||||
|
@ -226,12 +226,12 @@ class TlsConfig(Config):
|
||||||
days_remaining = (expires_on - now).days
|
days_remaining = (expires_on - now).days
|
||||||
return days_remaining
|
return days_remaining
|
||||||
|
|
||||||
def read_certificate_from_disk(self, require_cert_and_key):
|
def read_certificate_from_disk(self, require_cert_and_key: bool):
|
||||||
"""
|
"""
|
||||||
Read the certificates and private key from disk.
|
Read the certificates and private key from disk.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
require_cert_and_key (bool): set to True to throw an error if the certificate
|
require_cert_and_key: set to True to throw an error if the certificate
|
||||||
and key file are not given
|
and key file are not given
|
||||||
"""
|
"""
|
||||||
if require_cert_and_key:
|
if require_cert_and_key:
|
||||||
|
@ -479,13 +479,13 @@ class TlsConfig(Config):
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
def read_tls_certificate(self):
|
def read_tls_certificate(self) -> crypto.X509:
|
||||||
"""Reads the TLS certificate from the configured file, and returns it
|
"""Reads the TLS certificate from the configured file, and returns it
|
||||||
|
|
||||||
Also checks if it is self-signed, and warns if so
|
Also checks if it is self-signed, and warns if so
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
OpenSSL.crypto.X509: the certificate
|
The certificate
|
||||||
"""
|
"""
|
||||||
cert_path = self.tls_certificate_file
|
cert_path = self.tls_certificate_file
|
||||||
logger.info("Loading TLS certificate from %s", cert_path)
|
logger.info("Loading TLS certificate from %s", cert_path)
|
||||||
|
@ -504,11 +504,11 @@ class TlsConfig(Config):
|
||||||
|
|
||||||
return cert
|
return cert
|
||||||
|
|
||||||
def read_tls_private_key(self):
|
def read_tls_private_key(self) -> crypto.PKey:
|
||||||
"""Reads the TLS private key from the configured file, and returns it
|
"""Reads the TLS private key from the configured file, and returns it
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
OpenSSL.crypto.PKey: the private key
|
The private key
|
||||||
"""
|
"""
|
||||||
private_key_path = self.tls_private_key_file
|
private_key_path = self.tls_private_key_file
|
||||||
logger.info("Loading TLS key from %s", private_key_path)
|
logger.info("Loading TLS key from %s", private_key_path)
|
||||||
|
|
|
@ -22,7 +22,6 @@ from typing import (
|
||||||
Callable,
|
Callable,
|
||||||
Dict,
|
Dict,
|
||||||
List,
|
List,
|
||||||
Match,
|
|
||||||
Optional,
|
Optional,
|
||||||
Tuple,
|
Tuple,
|
||||||
Union,
|
Union,
|
||||||
|
@ -825,14 +824,14 @@ def server_matches_acl_event(server_name: str, acl_event: EventBase) -> bool:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def _acl_entry_matches(server_name: str, acl_entry: str) -> Match:
|
def _acl_entry_matches(server_name: str, acl_entry: Any) -> bool:
|
||||||
if not isinstance(acl_entry, str):
|
if not isinstance(acl_entry, str):
|
||||||
logger.warning(
|
logger.warning(
|
||||||
"Ignoring non-str ACL entry '%s' (is %s)", acl_entry, type(acl_entry)
|
"Ignoring non-str ACL entry '%s' (is %s)", acl_entry, type(acl_entry)
|
||||||
)
|
)
|
||||||
return False
|
return False
|
||||||
regex = glob_to_regex(acl_entry)
|
regex = glob_to_regex(acl_entry)
|
||||||
return regex.match(server_name)
|
return bool(regex.match(server_name))
|
||||||
|
|
||||||
|
|
||||||
class FederationHandlerRegistry:
|
class FederationHandlerRegistry:
|
||||||
|
|
|
@ -383,7 +383,7 @@ class DirectoryHandler(BaseHandler):
|
||||||
"""
|
"""
|
||||||
creator = await self.store.get_room_alias_creator(alias.to_string())
|
creator = await self.store.get_room_alias_creator(alias.to_string())
|
||||||
|
|
||||||
if creator is not None and creator == user_id:
|
if creator == user_id:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# Resolve the alias to the corresponding room.
|
# Resolve the alias to the corresponding room.
|
||||||
|
|
|
@ -962,8 +962,6 @@ class RoomCreationHandler(BaseHandler):
|
||||||
try:
|
try:
|
||||||
random_string = stringutils.random_string(18)
|
random_string = stringutils.random_string(18)
|
||||||
gen_room_id = RoomID(random_string, self.hs.hostname).to_string()
|
gen_room_id = RoomID(random_string, self.hs.hostname).to_string()
|
||||||
if isinstance(gen_room_id, bytes):
|
|
||||||
gen_room_id = gen_room_id.decode("utf-8")
|
|
||||||
await self.store.store_room(
|
await self.store.store_room(
|
||||||
room_id=gen_room_id,
|
room_id=gen_room_id,
|
||||||
room_creator_user_id=creator_id,
|
room_creator_user_id=creator_id,
|
||||||
|
|
|
@ -662,7 +662,7 @@ class RoomMemberHandler(metaclass=abc.ABCMeta):
|
||||||
|
|
||||||
async def send_membership_event(
|
async def send_membership_event(
|
||||||
self,
|
self,
|
||||||
requester: Requester,
|
requester: Optional[Requester],
|
||||||
event: EventBase,
|
event: EventBase,
|
||||||
context: EventContext,
|
context: EventContext,
|
||||||
ratelimit: bool = True,
|
ratelimit: bool = True,
|
||||||
|
|
|
@ -88,7 +88,7 @@ class SyncConfig:
|
||||||
class TimelineBatch:
|
class TimelineBatch:
|
||||||
prev_batch = attr.ib(type=StreamToken)
|
prev_batch = attr.ib(type=StreamToken)
|
||||||
events = attr.ib(type=List[EventBase])
|
events = attr.ib(type=List[EventBase])
|
||||||
limited = attr.ib(bool)
|
limited = attr.ib(type=bool)
|
||||||
|
|
||||||
def __bool__(self) -> bool:
|
def __bool__(self) -> bool:
|
||||||
"""Make the result appear empty if there are no updates. This is used
|
"""Make the result appear empty if there are no updates. This is used
|
||||||
|
|
|
@ -257,7 +257,7 @@ class _AsyncResource(resource.Resource, metaclass=abc.ABCMeta):
|
||||||
if isinstance(raw_callback_return, (defer.Deferred, types.CoroutineType)):
|
if isinstance(raw_callback_return, (defer.Deferred, types.CoroutineType)):
|
||||||
callback_return = await raw_callback_return
|
callback_return = await raw_callback_return
|
||||||
else:
|
else:
|
||||||
callback_return = raw_callback_return
|
callback_return = raw_callback_return # type: ignore
|
||||||
|
|
||||||
return callback_return
|
return callback_return
|
||||||
|
|
||||||
|
@ -406,7 +406,7 @@ class JsonResource(DirectServeJsonResource):
|
||||||
if isinstance(raw_callback_return, (defer.Deferred, types.CoroutineType)):
|
if isinstance(raw_callback_return, (defer.Deferred, types.CoroutineType)):
|
||||||
callback_return = await raw_callback_return
|
callback_return = await raw_callback_return
|
||||||
else:
|
else:
|
||||||
callback_return = raw_callback_return
|
callback_return = raw_callback_return # type: ignore
|
||||||
|
|
||||||
return callback_return
|
return callback_return
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os.path
|
import os.path
|
||||||
import sys
|
import sys
|
||||||
|
@ -89,14 +88,7 @@ class LogContextObserver:
|
||||||
context = current_context()
|
context = current_context()
|
||||||
|
|
||||||
# Copy the context information to the log event.
|
# Copy the context information to the log event.
|
||||||
if context is not None:
|
|
||||||
context.copy_to_twisted_log_entry(event)
|
context.copy_to_twisted_log_entry(event)
|
||||||
else:
|
|
||||||
# If there's no logging context, not even the root one, we might be
|
|
||||||
# starting up or it might be from non-Synapse code. Log it as if it
|
|
||||||
# came from the root logger.
|
|
||||||
event["request"] = None
|
|
||||||
event["scope"] = None
|
|
||||||
|
|
||||||
self.observer(event)
|
self.observer(event)
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
from typing import Any, Dict, List, Pattern, Union
|
from typing import Any, Dict, List, Optional, Pattern, Union
|
||||||
|
|
||||||
from synapse.events import EventBase
|
from synapse.events import EventBase
|
||||||
from synapse.types import UserID
|
from synapse.types import UserID
|
||||||
|
@ -181,7 +181,7 @@ class PushRuleEvaluatorForEvent:
|
||||||
|
|
||||||
return r.search(body)
|
return r.search(body)
|
||||||
|
|
||||||
def _get_value(self, dotted_key: str) -> str:
|
def _get_value(self, dotted_key: str) -> Optional[str]:
|
||||||
return self._value_cache.get(dotted_key, None)
|
return self._value_cache.get(dotted_key, None)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -51,10 +51,11 @@ import fcntl
|
||||||
import logging
|
import logging
|
||||||
import struct
|
import struct
|
||||||
from inspect import isawaitable
|
from inspect import isawaitable
|
||||||
from typing import TYPE_CHECKING, List
|
from typing import TYPE_CHECKING, List, Optional
|
||||||
|
|
||||||
from prometheus_client import Counter
|
from prometheus_client import Counter
|
||||||
|
|
||||||
|
from twisted.internet import task
|
||||||
from twisted.protocols.basic import LineOnlyReceiver
|
from twisted.protocols.basic import LineOnlyReceiver
|
||||||
from twisted.python.failure import Failure
|
from twisted.python.failure import Failure
|
||||||
|
|
||||||
|
@ -152,9 +153,10 @@ class BaseReplicationStreamProtocol(LineOnlyReceiver):
|
||||||
|
|
||||||
self.last_received_command = self.clock.time_msec()
|
self.last_received_command = self.clock.time_msec()
|
||||||
self.last_sent_command = 0
|
self.last_sent_command = 0
|
||||||
self.time_we_closed = None # When we requested the connection be closed
|
# When we requested the connection be closed
|
||||||
|
self.time_we_closed = None # type: Optional[int]
|
||||||
|
|
||||||
self.received_ping = False # Have we reecived a ping from the other side
|
self.received_ping = False # Have we received a ping from the other side
|
||||||
|
|
||||||
self.state = ConnectionStates.CONNECTING
|
self.state = ConnectionStates.CONNECTING
|
||||||
|
|
||||||
|
@ -165,7 +167,7 @@ class BaseReplicationStreamProtocol(LineOnlyReceiver):
|
||||||
self.pending_commands = [] # type: List[Command]
|
self.pending_commands = [] # type: List[Command]
|
||||||
|
|
||||||
# The LoopingCall for sending pings.
|
# The LoopingCall for sending pings.
|
||||||
self._send_ping_loop = None
|
self._send_ping_loop = None # type: Optional[task.LoopingCall]
|
||||||
|
|
||||||
# a logcontext which we use for processing incoming commands. We declare it as a
|
# a logcontext which we use for processing incoming commands. We declare it as a
|
||||||
# background process so that the CPU stats get reported to prometheus.
|
# background process so that the CPU stats get reported to prometheus.
|
||||||
|
|
|
@ -637,7 +637,7 @@ class MediaRepository:
|
||||||
thumbnailer = Thumbnailer(input_path)
|
thumbnailer = Thumbnailer(input_path)
|
||||||
except ThumbnailError as e:
|
except ThumbnailError as e:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
"Unable to generate thumbnails for remote media %s from %s using a method of %s and type of %s: %s",
|
"Unable to generate thumbnails for remote media %s from %s of type %s: %s",
|
||||||
media_id,
|
media_id,
|
||||||
server_name,
|
server_name,
|
||||||
media_type,
|
media_type,
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue