summary refs log tree commit diff
path: root/synapse/federation/federation_server.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Implementation of server_aclsRichard van der Hoff2018-07-041-2/+148
| | | | | ... as described at https://docs.google.com/document/d/1EttUVzjc2DWe2ciw4XPtNpUpIl9lWXGEsy2ewDS7rtw.
* Merge pull request #3456 from matrix-org/hawkowl/federation-prevevent-checkingErik Johnston2018-06-291-1/+3
|\ | | | | Check the state of prev_events a bit more thoroughly when coming over federation
| * handle federation not telling us about prev_eventsAmber Brown2018-06-271-1/+3
| |
* | Attempt to be more performant on PyPy (#3462)Amber Brown2018-06-281-1/+1
|/
* simplify get_persisted_pduRichard van der Hoff2018-06-121-12/+1
| | | | | it doesn't make much sense to use get_persisted_pdu on the receive path: just get the event straight from the store.
* cleanup pep8 errorsAmber Brown2018-05-221-1/+4
|
* replacing portionsAmber Brown2018-05-211-9/+7
|
* Merge pull request #3118 from matrix-org/rav/reject_prev_eventsRichard van der Hoff2018-04-231-2/+23
|\ | | | | Reject events which have lots of prev_events
| * Add some commentsRichard van der Hoff2018-04-181-2/+23
| |
* | Merge pull request #3106 from NotAFile/py3-six-itervalues-1Richard van der Hoff2018-04-201-3/+5
|\ \ | | | | | | Use six.itervalues in some places
| * | Use six.itervalues in some placesAdrian Tschira2018-04-151-3/+5
| |/ | | | | | | | | | | There's more where that came from Signed-off-by: Adrian Tschira <nota@notafile.com>
* | Reinstate linearizer for federation_server.on_context_state_requestRichard van der Hoff2018-04-201-5/+11
| |
* | Refactor ResponseCache usageRichard van der Hoff2018-04-121-11/+5
|/ | | | | | | | | | | | | | | Adds a `.wrap` method to ResponseCache which wraps up the boilerplate of a (get, set) pair, and then use it throughout the codebase. This will be largely non-functional, but does include the following functional changes: * federation_server.on_context_state_request: drops use of _server_linearizer which looked redundant and could cause incorrect cache misses by yielding between the get and the set. * RoomListHandler.get_remote_public_room_list(): fixes logcontext leaks * the wrap function includes some logging. I'm hoping this won't be too noisy on production.
* Add metrics for ResponseCacheRichard van der Hoff2018-04-101-1/+1
|
* Merge pull request #2979 from matrix-org/erikj/no_handlersErik Johnston2018-03-131-9/+1
|\ | | | | Don't build handlers on workers unnecessarily
| * Split replication layer into twoErik Johnston2018-03-131-9/+1
| |
* | Merge pull request #2977 from matrix-org/erikj/replication_move_propsErik Johnston2018-03-131-0/+6
|\| | | | | Move property setting from ReplicationLayer to base classes
| * Move property setting from ReplicationLayer to FederationBaseErik Johnston2018-03-131-0/+6
| |
* | Fix docstring typesErik Johnston2018-03-131-2/+2
|/
* Split out edu/query registration to a separate classErik Johnston2018-03-131-48/+69
|
* Factor out `event_from_pdu_json`Richard van der Hoff2017-12-301-16/+9
| | | | | turns out we have two copies of this, and neither needs to be an instance method
* federation_server: clean up importsRichard van der Hoff2017-12-301-14/+11
|
* Do logcontexts outside ResponseCacheErik Johnston2017-10-251-3/+5
|
* Fix 500 error when we get an error handling a PDURichard van der Hoff2017-10-171-1/+0
| | | | | | | | | | FederationServer doesn't have a send_failure (and nor does its subclass, ReplicationLayer), so this was failing. I'm not really sure what the idea behind send_failure is, given (a) we don't do anything at the other end with it except log it, and (b) we also send back the failure via the transaction response. I suspect there's a whole lot of dead code around it, but for now I'm just removing the broken bit.
* Merge pull request #2529 from matrix-org/rav/fix_transaction_failure_handlingRichard van der Hoff2017-10-111-2/+3
|\ | | | | log pdu_failures from incoming transactions
| * log pdu_failures from incoming transactionsRichard van der Hoff2017-10-111-2/+3
| | | | | | | | | | | | | | ... even if we have no EDUs. This appears to have been introduced in 476899295f5fd6cff64799bcbc84cd4bf9005e33.
* | fed server: process PDUs for different rooms in parallelRichard van der Hoff2017-10-091-19/+34
| | | | | | | | | | With luck, this will give a real-time improvement when there are many rooms and the server ends up calling out to fetch missing events.
* | Fed server: use a linearizer for ongoing transactionsRichard van der Hoff2017-10-091-1/+29
|/ | | | | We don't want to process the same transaction multiple times concurrently, so use a linearizer.
* fed server: refactor on_incoming_transactionRichard van der Hoff2017-10-091-24/+29
| | | | | Move as much as possible to after the have_responded check, and reduce the number of times we iterate over the pdu list.
* Fed server: Move origin-check code to _handle_received_pduRichard van der Hoff2017-10-091-24/+24
| | | | | | | The response-building code expects there to be an entry in the `results` list for each entry in the pdu_list, so the early `continue` was messing this up. That doesn't really matter, because all that the federation client does is log any errors, but it's pretty poor form.
* Do some logging when one-time-keys get claimedRichard van der Hoff2017-05-091-0/+10
| | | | | might help us figure out if https://github.com/vector-im/riot-web/issues/3868 has happened.
* Accept join events from all serversRichard van der Hoff2017-04-031-2/+6
| | | | | | | Make sure that we accept join events from any server, rather than just the origin server, to make the federation join dance work correctly. (Fixes #1893).
* Move FederationServer._handle_new_pdu to FederationHandlerRichard van der Hoff2017-03-091-193/+1
| | | | | | | | | | | Unfortunately this significantly increases the size of the already-rather-big FederationHandler, but the code fits more naturally here, and it paves the way for the tighter integration that I need between handling incoming PDUs and doing the join dance. Other than renaming the existing `FederationHandler.on_receive_pdu` to `_process_received_pdu` to make way for it, this just consists of the move, and replacing `self.handler` with `self` and `self` with `self.replication_layer`.
* Move sig check out of _handle_new_pduRichard van der Hoff2017-03-091-12/+36
| | | | | When we receive PDUs via `get_missing_events`, we have already checked their sigs, so there is no need to do it again.
* Factor _get_missing_events_for_pdu out of _handle_new_pduRichard van der Hoff2017-03-091-62/+82
| | | | | This should be functionally identical: it just seeks to improve readability by reducing indentation.
* Implement device key caching over federationErik Johnston2017-01-261-0/+3
|
* Name linearizer's for better logsErik Johnston2017-01-091-2/+2
|
* do the discard check in the right place to avoid grabbing dependent eventsMatthew2017-01-071-20/+20
|
* Discard PDUs from invalid origins due to #1753 in 0.18.[56] v0.18.7-rc1Matthew2017-01-071-1/+23
|
* fix commentMatthew Hodgson2017-01-051-1/+17
|
* limit total timeout for get_missing_events to 10sMatthew Hodgson2017-01-051-0/+5
|
* s/aquire/acquire/gMark Haines2016-12-301-2/+2
|
* Add more useful logging when we block fetching eventsMark Haines2016-12-301-0/+9
|
* Send device messages over federationMark Haines2016-09-061-1/+1
|
* Only pull out IDs from DB for /state_ids/ requestErik Johnston2016-09-021-6/+4
|
* Merge branch 'develop' of github.com:matrix-org/synapse into erikj/state_ids_apiErik Johnston2016-08-041-19/+1
|\
| * Merge branch 'develop' into rav/refactor_device_queryMark Haines2016-08-031-23/+47
| |\
| * | E2E keys: Make federation query share code with client queryRichard van der Hoff2016-08-021-19/+1
| | | | | | | | | | | | | | | Refactor the e2e query handler to separate out the local query, and then make the federation handler use it.
* | | Rename fields to _idsErik Johnston2016-08-031-2/+2
| | |
* | | Fix copy + paste failsErik Johnston2016-08-031-1/+1
| | |
* | | Add /state_ids federation APIErik Johnston2016-08-031-0/+21
| |/ |/| | | | | | | The new API only returns the event_ids for the state, as most requesters will already have the vast majority of the events already.
* | Don't double wrap 200Erik Johnston2016-08-021-2/+2
| |
* | Fix response cacheErik Johnston2016-08-021-1/+1
| |
* | Cache federation state responsesErik Johnston2016-07-211-21/+45
|/
* Linearize some federation endpoints based on (origin, room_id)Erik Johnston2016-06-171-66/+77
|
* Only re-sign our own eventsErik Johnston2016-06-171-6/+9
|
* Linearize fetching of gaps on incoming eventsErik Johnston2016-06-151-37/+51
| | | | | This potentially stops the server from doing multiple requests for the same data.
* Add some logging for when servers ask for missing eventsErik Johnston2016-06-081-0/+19
|
* Add an openidish mechanism for proving to third parties that you own a given ↵Mark Haines2016-05-051-0/+5
| | | | user_id
* Remove unused backfilled parameter from persist_eventMark Haines2016-03-211-1/+0
|
* Catch exceptions from EDU handlingErik Johnston2016-03-181-1/+6
|
* Yield on EDU handlingErik Johnston2016-03-181-3/+4
|
* Allow third_party_signed to be specified on /joinDaniel Wagner-Hall2016-02-231-2/+13
|
* Fix up logcontextsErik Johnston2016-02-081-3/+1
|
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* Exchange 3pid invites for m.room.member invitesDaniel Wagner-Hall2015-11-051-16/+15
|
* Allow rejecting invitesDaniel Wagner-Hall2015-10-201-0/+14
| | | | | This is done by using the same /leave flow as you would use if you had already accepted the invite and wanted to leave.
* Remove unnecessary class-wrappingDaniel Wagner-Hall2015-10-131-3/+3
|
* Implement third party identifier invitesDaniel Wagner-Hall2015-10-011-3/+16
|
* Add a few strategic new lines to break up the on_query_client_keys and ↵Mark Haines2015-08-131-0/+6
| | | | on_claim_client_keys methods in federation_server.py
* Add federation support for end-to-end key requestsMark Haines2015-07-231-0/+37
|
* Change the way we do logging contexts so that they survive divergencesErik Johnston2015-05-081-24/+22
|
* Split a storage function in two so that we don't have to do extra work.Erik Johnston2015-05-011-2/+2
|
* Replace the @metrics.counted annotations in federation with ↵Paul "LeoNerd" Evans2015-03-121-12/+14
| | | | specifically-written counters and distributions
* Initial attempt at sprinkling some @metrics.counted decorations around the ↵Paul "LeoNerd" Evans2015-03-121-0/+14
| | | | federation code
* DocsErik Johnston2015-03-051-0/+2
|
* Handle if get_missing_pdu returns 400 or not all events.Erik Johnston2015-03-051-2/+4
|
* Merge branch 'develop' of github.com:matrix-org/synapse into batched_get_pduErik Johnston2015-03-021-28/+13
|\
| * If we're yielding don't add errbackErik Johnston2015-03-021-7/+3
| |
| * Process transactions serially.Erik Johnston2015-03-021-14/+10
| | | | | | | | | | | | Since the events received in a transaction are ordered, later events might depend on earlier events and so we shouldn't blindly process them in parellel.
* | Implement and use new batched get missing pduErik Johnston2015-02-231-99/+51
| |
* | Initial stab at implementing a batched get_missing_pdus requestErik Johnston2015-02-191-0/+72
|/
* Remove debug raiseErik Johnston2015-02-171-7/+0
|
* Merge branch 'develop' of github.com:matrix-org/synapse into failuresErik Johnston2015-02-171-5/+8
|\
| * Mark old events as outliers.Erik Johnston2015-02-161-1/+7
| | | | | | | | | | | | | | | | | | This is to fix the issue where if a remote server sends an event that references a really "old" event, then the local server will pull that in and send to all clients. We decide if an event is old if its depth is less than the minimum depth of the room.
| * Don't return anything from _handle_new_pdu, since we ignore the return value ↵Erik Johnston2015-02-161-4/+1
| | | | | | | | anyway
* | Format the response of transaction request in a nicer wayErik Johnston2015-02-171-4/+15
| |
* | Actually respond with JSON to incoming transactionErik Johnston2015-02-171-0/+2
| |
* | Handle recieving failures in transactionsErik Johnston2015-02-171-1/+12
| |
* | Use consumeErrors=True on all DeferredLists.Erik Johnston2015-02-171-1/+1
|/ | | | | | This is so that the DeferredLists actually consume the error instead of propogating down the non-existent errback chain. This should reduce the number of unhandled errors we are seeing.
* Correctly handle all the places that can throw exceptionsErik Johnston2015-02-121-3/+6
|
* Sign auth_chains when returned by /state/ requestsErik Johnston2015-02-101-0/+11
|
* Remove unused importsErik Johnston2015-02-031-5/+0
|
* Keep around the old (buggy) version of the prune_event function so that we ↵Erik Johnston2015-02-031-41/+11
| | | | can use it to check signatures for events on old servers
* Briefly doc structure of query_auth API.Erik Johnston2015-01-301-0/+18
|
* Fix bug where we superfluously asked for current state. Change API of ↵Erik Johnston2015-01-301-6/+6
| | | | /query_auth/ so that we don't duplicate events in the response.
* Fix regression where we no longer correctly handled the case of gaps in our ↵Erik Johnston2015-01-301-0/+3
| | | | event graph
* Initial implementation of auth conflict resolutionErik Johnston2015-01-291-0/+33
|
* Make it the responsibility of the replication layer to check signature and ↵Erik Johnston2015-01-261-13/+76
| | | | hashes.
* Split up replication_layer module into client, server and transaction queueErik Johnston2015-01-261-0/+345