summary refs log tree commit diff
path: root/synapse/federation/federation_base.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Strip "join_authorised_via_users_server" from join events which do not need ↵Patrick Cloke2021-10-011-3/+3
| | | | | | | | it. (#10933) This fixes a "Event not signed by authorising server" error when transition room member from join -> join, e.g. when updating a display name or avatar URL for restricted rooms.
* Update the MSC3083 support to verify if joins are from an authorized server. ↵Patrick Cloke2021-07-261-0/+28
| | | | (#10254)
* Soft-fail spammy events received over federation (#10263)Richard van der Hoff2021-06-291-6/+6
|
* When joining a remote room limit the number of events we concurrently check ↵Erik Johnston2021-06-081-163/+80
| | | | | signatures/hashes for (#10117) If we do hundreds of thousands at once the memory overhead can easily reach 500+ MB.
* Add `Keyring.verify_events_for_server` and reduce memory usage (#10018)Erik Johnston2021-05-201-12/+5
| | | | | | Also add support for giving a callback to generate the JSON object to verify. This should reduce memory usage, as we no longer have the event in memory in dict form (which has a large memory footprint) for extend periods of time.
* Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-141-1/+0
| | | | | | | Part of #9744 Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now. `Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>`
* Allow spam-checker modules to be provide async methods. (#8890)David Teller2020-12-111-1/+6
| | | | Spam checker modules can now provide async methods. This is implemented in a backwards-compatible manner.
* Stop sub-classing object (#8249)Patrick Cloke2020-09-041-1/+1
|
* Replace all remaining six usage with native Python 3 equivalents (#7704)Dagfinn Ilmari Mannsåker2020-06-161-3/+1
|
* Replace iteritems/itervalues/iterkeys with native versions. (#7692)Patrick Cloke2020-06-151-2/+2
|
* Strictly enforce canonicaljson requirements in a new room version (#7381)Patrick Cloke2020-05-141-1/+5
|
* Clean up some LoggingContext stuff (#7120)Richard van der Hoff2020-03-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | * Pull Sentinel out of LoggingContext ... and drop a few unnecessary references to it * Factor out LoggingContext.current_context move `current_context` and `set_context` out to top-level functions. Mostly this means that I can more easily trace what's actually referring to LoggingContext, but I think it's generally neater. * move copy-to-parent into `stop` this really just makes `start` and `stop` more symetric. It also means that it behaves correctly if you manually `set_log_context` rather than using the context manager. * Replace `LoggingContext.alive` with `finished` Turn `alive` into `finished` and make it a bit better defined.
* Fix a bug in the federation API which could cause occasional "Failed to get ↵Patrick Cloke2020-03-191-15/+9
| | | | PDU" errors (#7089).
* Remove unused federation endpoint (`query_auth`) (#7026)Patrick Cloke2020-03-171-82/+0
|
* Add some type annotations to the federation base & client classes (#6995)Patrick Cloke2020-02-281-23/+37
|
* Cast a coroutine into a Deferred in the federation base (#6996)Patrick Cloke2020-02-261-6/+8
| | | | Properly convert a coroutine into a Deferred in federation_base to fix an error when joining a room.
* Add a `make_event_from_dict` method (#6858)Richard van der Hoff2020-02-071-3/+2
| | | | | | | ... and use it in places where it's trivial to do so. This will make it easier to pass room versions into the FrozenEvent constructors.
* Pass room_version into `event_from_pdu_json`Richard van der Hoff2020-02-061-12/+16
| | | | It's called from all over the shop, so this one's a bit messy.
* Remove usage of deprecated logger.warn method from codebase (#6271)Andrew Morgan2019-10-311-3/+3
| | | Replace every instance of `logger.warn` with `logger.warning` as the former is deprecated.
* Improve signature checking on some federation APIs (#6262)Richard van der Hoff2019-10-281-5/+2
| | | | | Make sure that we check that events sent over /send_join, /send_leave, and /invite, are correctly signed and come from the expected servers.
* Replace returnValue with return (#5736)Amber Brown2019-07-231-3/+3
|
* Move logging utilities out of the side drawer of util/ and into logging/ (#5606)Amber Brown2019-07-041-9/+15
|
* Fix logging error when a tampered event is detected. (#5500)Richard van der Hoff2019-06-211-1/+0
|
* Run Black. (#5482)Amber Brown2019-06-201-46/+32
|
* Associate a request_name with each verify request, for loggingRichard van der Hoff2019-06-051-0/+2
| | | | | | | Also: * rename VerifyKeyRequest->VerifyJsonRequest * calculate key_ids on VerifyJsonRequest construction * refactor things to pass around VerifyJsonRequests instead of 4-tuples
* Add a test room version where we enforce key validity (#5348)Richard van der Hoff2019-06-051-15/+24
|
* Enforce validity period on server_keys for fed requests. (#5321)Richard van der Hoff2019-06-031-2/+2
| | | | | | | | When handling incoming federation requests, make sure that we have an up-to-date copy of the signing key. We do not yet enforce the validity period for event signatures.
* more logging improvementsRichard van der Hoff2019-04-251-8/+11
|
* remove extraneous exception loggingRichard van der Hoff2019-04-251-2/+2
|
* Clarify logging when PDU signature checking failsRichard van der Hoff2019-04-251-0/+19
|
* Collect room-version variations into one place (#4969)Richard van der Hoff2019-04-011-8/+8
| | | | Collect all the things that make room-versions different to one another into one place, so that it's easier to define new room versions.
* No vdh tests!Erik Johnston2019-01-291-2/+1
|
* Enable room version v3Erik Johnston2019-01-291-2/+9
|
* Update commentErik Johnston2019-01-291-3/+3
|
* Only check event ID domain for signatures for V1 eventsErik Johnston2019-01-291-27/+37
| | | | | In future version events won't have an event ID, so we won't be able to do this check.
* Require event format version to parse or create eventsErik Johnston2019-01-251-4/+5
|
* Revert "Require event format version to parse or create events"Erik Johnston2019-01-251-5/+4
|
* Require event format version to parse or create eventsErik Johnston2019-01-231-4/+5
|
* Add room_version param to get_pduErik Johnston2019-01-231-3/+8
| | | | | When we add new event format we'll need to know the event format or room version when parsing events.
* Fix handling of redacted events from federationErik Johnston2018-09-131-1/+1
| | | | | | | | | | If we receive an event that doesn't pass their content hash check (e.g. due to already being redacted) then we hit a bug which causes an exception to be raised, which then promplty stops the event (and request) from being processed. This effects all sorts of federation APIs, including joining rooms with a redacted state event.
* clearer logging when things fail, tooRichard van der Hoff2018-09-061-7/+27
|
* Check that signatures on events are validRichard van der Hoff2018-09-051-16/+110
| | | | | | We should check that both the sender's server, and the server which created the event_id (which may be different from whatever the remote server has told us the origin is), have signed the event.
* rename assert_params_in_request to assert_params_in_dictKrombel2018-07-131-2/+2
| | | | | | the method "assert_params_in_request" does handle dicts and not requests. A request body has to be parsed to json before this method can be used
* run isortAmber Brown2018-07-091-3/+4
|
* Apply some limits to depth to counter abuseRichard van der Hoff2018-05-011-3/+18
| | | | | | | * When creating a new event, cap its depth to 2^63 - 1 * When receiving events, reject any without a sensible depth As per https://docs.google.com/document/d/1I3fi2S-XnpO45qrpCsowZv8P8dHcNZ4fsBsbOW7KABI
* Move property setting from ReplicationLayer to FederationBaseErik Johnston2018-03-131-0/+6
|
* Check missing fields in event_from_pdu_jsonRichard van der Hoff2017-12-301-0/+7
| | | | Return a 400 rather than a 500 when somebody messes up their send_join
* Factor out `event_from_pdu_json`Richard van der Hoff2017-12-301-0/+20
| | | | | turns out we have two copies of this, and neither needs to be an instance method
* Make the spam checker a moduleDavid Baker2017-09-261-3/+2
|
* Fix logcontexts in _check_sigs_and_hashesRichard van der Hoff2017-09-201-56/+58
|
* Remove redundant `preserve_fn`Richard van der Hoff2017-09-201-2/+2
| | | | | | preserve_fn is a no-op unless the wrapped function returns a Deferred. verify_json_objects_for_server returns a list, so this is doing nothing.
* PoC for filtering spammy events (#2456)Richard van der Hoff2017-09-191-16/+24
| | | Demonstration of how you might add some hooks to filter out spammy events.
* Preserve some logcontextsErik Johnston2016-08-241-3/+4
|
* Linearize fetching of gaps on incoming eventsErik Johnston2016-06-151-0/+3
| | | | | This potentially stops the server from doing multiple requests for the same data.
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* Implement bulk verify_signed_json APIErik Johnston2015-06-261-50/+75
|
* Rephrase log lineErik Johnston2015-06-021-1/+1
|
* Don't about JSON when warning about content tamperingErik Johnston2015-06-021-7/+4
|
* Add a timeout param to get_eventErik Johnston2015-05-191-0/+1
|
* Unwrap defer.gatherResults failuresErik Johnston2015-05-121-1/+3
|
* Fix loggingErik Johnston2015-02-121-1/+4
|
* Parrellize fetching of eventsErik Johnston2015-02-121-3/+11
|
* Correctly handle all the places that can throw exceptionsErik Johnston2015-02-121-10/+14
|
* New lineErik Johnston2015-02-031-1/+1
|
* Actually, the old prune_event function was non-deterministic, so no point ↵Erik Johnston2015-02-031-12/+4
| | | | keeping it around :(
* Add new FederationBaseErik Johnston2015-02-031-0/+126