Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Refactor get_user_devices_from_cache to avoid mutating cached values. (#15040) | Patrick Cloke | 2023-02-10 | 1 | -4/+7 |
| | | | | | | | | The previous version of the code could mutate a cached value, but only if the input requested all devices of a user *and* a specific device. To avoid this nonsensical situation we no longer fetch a specific device ID if all of a user's devices are returned. | ||||
* | Batch up replication requests to request the resyncing of remote users's ↵ | reivilibre | 2023-01-10 | 1 | -38/+55 |
| | | | | devices. (#14716) | ||||
* | Add a type hint for `get_device_handler()` and fix incorrect types. (#14055) | Patrick Cloke | 2022-11-22 | 1 | -29/+32 |
| | | | | | This was the last untyped handler from the HomeServer object. Since it was being treated as Any (and thus unchecked) it was being used incorrectly in a few places. | ||||
* | Remove redundant types from comments. (#14412) | Patrick Cloke | 2022-11-16 | 1 | -1/+1 |
| | | | | | | | Remove type hints from comments which have been added as Python type hints. This helps avoid drift between comments and reality, as well as removing redundant information. Also adds some missing type hints which were simple to fill in. | ||||
* | Prevent federation user keys query from returning device names if disallowed ↵ | Andrew Morgan | 2022-10-28 | 1 | -4/+33 |
| | | | | (#14304) | ||||
* | Remove error spam when users query the keys of departed remote users (#13826) | Sean Quah | 2022-09-16 | 1 | -9/+12 |
| | | | | The error message introduced in #13749 has turned out to be very spammy. Remove it for now. | ||||
* | Fix bug in device list caching when remote users leave rooms (#13749) | Sean Quah | 2022-09-14 | 1 | -0/+26 |
| | | | | | | | | | | | | When a remote user leaves the last room shared with the homeserver, we have to mark their device list as unsubscribed, otherwise we would hold on to a stale device list in our cache. Crucially, the device list would remain cached even after the remote user rejoined the room, which could lead to E2EE failures until the next change to the remote user's device list. Fixes #13651. Signed-off-by: Sean Quah <seanq@matrix.org> | ||||
* | Cancel the processing of key query requests when they time out. (#13680) | reivilibre | 2022-09-07 | 1 | -16/+24 |
| | |||||
* | Add missing types to opentracing. (#13345) | Patrick Cloke | 2022-07-21 | 1 | -8/+8 |
| | | | After this change `synapse.logging` is fully typed. | ||||
* | Add type annotations to `trace` decorator. (#13328) | Patrick Cloke | 2022-07-19 | 1 | -7/+9 |
| | | | | Functions that are decorated with `trace` are now properly typed and the type hints for them are fixed. | ||||
* | Additional constants for EDU types. (#12884) | Patrick Cloke | 2022-05-27 | 1 | -2/+3 |
| | | | Instead of hard-coding strings in many places. | ||||
* | Another batch of type annotations (#12726) | David Robertson | 2022-05-13 | 1 | -18/+11 |
| | |||||
* | Refactor and convert `Linearizer` to async (#12357) | Sean Quah | 2022-04-05 | 1 | -2/+2 |
| | | | | | | | | | | | Refactor and convert `Linearizer` to async. This makes a `Linearizer` cancellation bug easier to fix. Also refactor to use an async context manager, which eliminates an unlikely footgun where code that doesn't immediately use the context manager could forget to release the lock. Signed-off-by: Sean Quah <seanq@element.io> | ||||
* | Remove `HomeServer.get_datastore()` (#12031) | Richard van der Hoff | 2022-02-23 | 1 | -2/+2 |
| | | | | | | | The presence of this method was confusing, and mostly present for backwards compatibility. Let's get rid of it. Part of #11733 | ||||
* | Use auto_attribs/native type hints for attrs classes. (#11692) | Patrick Cloke | 2022-01-13 | 1 | -5/+5 |
| | |||||
* | Support unprefixed versions of fallback key property names. (#11541) | Hubert Chathi | 2021-12-09 | 1 | -1/+3 |
| | |||||
* | Send and handle cross-signing messages using the stable prefix. (#10520) | Hubert Chathi | 2021-12-08 | 1 | -2/+6 |
| | |||||
* | Include cross-signing signatures when syncing remote devices for the first ↵ | Erik Johnston | 2021-11-09 | 1 | -86/+125 |
| | | | | | | | time (#11234) When fetching remote devices for the first time, we did not correctly include the cross signing keys in the returned results. c.f. #11159 | ||||
* | Require type hints in the handlers module. (#10831) | Patrick Cloke | 2021-09-20 | 1 | -2/+2 |
| | | | | | | | Adds missing type hints to methods in the synapse.handlers module and requires all methods to have type hints there. This also removes the unused construct_auth_difference method from the FederationHandler. | ||||
* | Use direct references for some configuration variables (#10798) | Patrick Cloke | 2021-09-13 | 1 | -1/+1 |
| | | | | Instead of proxying through the magic getter of the RootConfig object. This should be more performant (and is more explicit). | ||||
* | Use inline type hints in `handlers/` and `rest/`. (#10382) | Jonathan de Jong | 2021-07-16 | 1 | -21/+19 |
| | |||||
* | Limit the number of in-flight /keys/query requests from a single device. ↵ | Patrick Cloke | 2021-06-09 | 1 | -169/+181 |
| | | | | (#10144) | ||||
* | Remove redundant "coding: utf-8" lines (#9786) | Jonathan de Jong | 2021-04-14 | 1 | -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>` | ||||
* | Add type hints to expiring cache. (#9730) | Patrick Cloke | 2021-04-06 | 1 | -12/+0 |
| | |||||
* | Update mypy configuration: `no_implicit_optional = True` (#9742) | Jonathan de Jong | 2021-04-05 | 1 | -1/+1 |
| | |||||
* | Import HomeServer from the proper module. (#9665) | Patrick Cloke | 2021-03-23 | 1 | -1/+1 |
| | |||||
* | Update black, and run auto formatting over the codebase (#9381) | Eric Eastwood | 2021-02-16 | 1 | -10/+14 |
| | | | | | | | - Update black version to the latest - Run black auto formatting over the codebase - Run autoformatting according to [`docs/code_style.md `](https://github.com/matrix-org/synapse/blob/80d6dc9783aa80886a133756028984dbf8920168/docs/code_style.md) - Update `code_style.md` docs around installing black to use the correct version | ||||
* | Add type hints to E2E handler. (#9232) | Patrick Cloke | 2021-01-28 | 1 | -94/+129 |
| | | | This finishes adding type hints to the `synapse.handlers` module. | ||||
* | e2e: ensure we have both master and self-signing key (#8455) | Jonas Jelten | 2020-10-26 | 1 | -5/+22 |
| | | | | | | | it seems to be possible that only one of them ends up to be cached. when this was the case, the missing one was not fetched via federation, and clients then failed to validate cross-signed devices. Signed-off-by: Jonas Jelten <jj@sft.lol> | ||||
* | Add support for MSC2732: olm fallback keys (#8312) | Hubert Chathi | 2020-10-06 | 1 | -0/+16 |
| | |||||
* | Use slots in attrs classes where possible (#8296) | Patrick Cloke | 2020-09-14 | 1 | -1/+1 |
| | | | | | slots use less memory (and attribute access is faster) while slightly limiting the flexibility of the class attributes. This focuses on objects which are instantiated "often" and for short periods of time. | ||||
* | Stop sub-classing object (#8249) | Patrick Cloke | 2020-09-04 | 1 | -2/+2 |
| | |||||
* | Rename `get_e2e_device_keys` to better reflect its purpose (#8205) | Richard van der Hoff | 2020-08-29 | 1 | -2/+2 |
| | | | | | | | | | | | ... and to show that it does something slightly different to `_get_e2e_device_keys_txn`. `include_all_devices` and `include_deleted_devices` were never used (and `include_deleted_devices` was broken, since that would cause `None`s in the result which were not handled in the loop below. Add some typing too. | ||||
* | Be stricter about JSON that is accepted by Synapse (#8106) | Patrick Cloke | 2020-08-19 | 1 | -4/+4 |
| | |||||
* | Fix up types and comments that refer to Deferreds. (#7945) | Patrick Cloke | 2020-07-24 | 1 | -11/+13 |
| | |||||
* | Convert E2E key and room key handlers to async/await. (#7851) | Patrick Cloke | 2020-07-15 | 1 | -82/+65 |
| | |||||
* | Replace iteritems/itervalues/iterkeys with native versions. (#7692) | Patrick Cloke | 2020-06-15 | 1 | -8/+6 |
| | |||||
* | Process cross-signing keys when resyncing device lists (#7594) | Brendan Abolivier | 2020-06-01 | 1 | -17/+5 |
| | | | It looks like `user_device_resync` was ignoring cross-signing keys from the results received from the remote server. This patch fixes this, by processing these keys using the same process `_handle_signing_key_updates` does (and effectively factor that part out of that function). | ||||
* | Query missing cross-signing keys on local sig upload (#7289) | Andrew Morgan | 2020-04-22 | 1 | -9/+139 |
| | |||||
* | Revert "Query missing cross-signing keys on local sig upload" | Richard van der Hoff | 2020-04-20 | 1 | -129/+9 |
| | | | | | | This was incorrectly merged to the release branch before it was ready. This reverts commit 72fe2affb6ac86d433b80b6452da57052365aa26. | ||||
* | Query missing cross-signing keys on local sig upload | Andrew Morgan | 2020-04-17 | 1 | -9/+129 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add changelog Save retrieved keys to the db lint Fix and de-brittle remote result dict processing Use query_user_devices instead, assume only master, self_signing key types Make changelog more useful Remove very specific exception handling Wrap get_verify_key_from_cross_signing_key in a try/except Note that _get_e2e_cross_signing_verify_key can raise a SynapseError lint Add comment explaining why this is useful Only fetch master and self_signing key types Fix log statements, docstrings Remove extraneous items from remote query try/except lint Factor key retrieval out into a separate function Send device updates, modeled after SigningKeyEduUpdater._handle_signing_key_updates Update method docstring | ||||
* | Only register devices edu handler on the master process (#7255) | Andrew Morgan | 2020-04-14 | 1 | -7/+11 |
| | |||||
* | Fix bug when querying remote user keys that require a resync. (#6796) | Erik Johnston | 2020-01-29 | 1 | -1/+2 |
| | | | | We ended up only returning a single device, rather than all of them. | ||||
* | look up cross-signing keys from the DB in bulk (#6486) | Hubert Chathi | 2019-12-12 | 1 | -8/+27 |
| | |||||
* | Back out perf regression from get_cross_signing_keys_from_cache. (#6494) | Neil Johnson | 2019-12-09 | 1 | -30/+8 |
| | | | Back out cross-signing code added in Synapse 1.5.0, which caused a performance regression. | ||||
* | Fix caching devices for remote servers in worker. | Erik Johnston | 2019-11-05 | 1 | -3/+16 |
| | | | | | | | | When the `/keys/query` API is hit on client_reader worker Synapse may decide that it needs to resync some remote deivces. Usually this happens on master, and then gets cached. However, that fails on workers and so it falls back to fetching devices from remotes directly, which may in turn fail if the remote is down. | ||||
* | Merge branch 'develop' into cross-signing_federation | Hubert Chathi | 2019-10-31 | 1 | -13/+24 |
|\ | |||||
| * | Update black to 19.10b0 (#6304) | Amber Brown | 2019-11-01 | 1 | -13/+24 |
| | | | | | | * update version of black and also fix the mypy config being overridden | ||||
* | | black | Hubert Chathi | 2019-10-30 | 1 | -1/+3 |
| | | |||||
* | | apply changes as a result of PR review | Hubert Chathi | 2019-10-30 | 1 | -12/+10 |
| | | |||||
* | | don't error if federation query doesn't have cross-signing keys | Hubert Chathi | 2019-10-24 | 1 | -7/+9 |
| | | |||||
* | | black | Hubert Chathi | 2019-10-22 | 1 | -1/+2 |
| | | |||||
* | | vendor-prefix the EDU name until MSC1756 is merged into the spec | Hubert Chathi | 2019-10-22 | 1 | -1/+2 |
| | | |||||
* | | update to work with newer code, and fix formatting | Hubert Chathi | 2019-10-22 | 1 | -4/+5 |
| | | |||||
* | | add missing param | Hubert Chathi | 2019-10-22 | 1 | -1/+1 |
| | | |||||
* | | make black happy | Hubert Chathi | 2019-10-22 | 1 | -5/+7 |
| | | |||||
* | | implement federation parts of cross-signing | Hubert Chathi | 2019-10-22 | 1 | -2/+114 |
|/ | |||||
* | Merge branch 'develop' into cross-signing_sig_upload | Hubert Chathi | 2019-10-18 | 1 | -11/+5 |
|\ | |||||
| * | Merge branch 'develop' into uhoreg/e2e_cross-signing_merged | Hubert Chathi | 2019-10-18 | 1 | -8/+2 |
| |\ | |||||
| | * | make sure we actually return something | Hubert Chathi | 2019-10-10 | 1 | -0/+5 |
| | | | |||||
| | * | make storage layer in charge of interpreting the device key data | Hubert Chathi | 2019-10-10 | 1 | -11/+0 |
| | | | |||||
* | | | fix doc strings | Hubert Chathi | 2019-10-18 | 1 | -9/+13 |
| | | | |||||
* | | | make isort happy | Hubert Chathi | 2019-09-24 | 1 | -1/+0 |
| | | | |||||
* | | | add some comments | Hubert Chathi | 2019-09-24 | 1 | -2/+10 |
| | | | |||||
* | | | drop some logger lines to debug | Hubert Chathi | 2019-09-24 | 1 | -3/+3 |
| | | | |||||
* | | | make changes based on PR feedback | Hubert Chathi | 2019-09-24 | 1 | -107/+159 |
| | | | |||||
* | | | add function docs | Hubert Chathi | 2019-09-07 | 1 | -2/+24 |
| | | | |||||
* | | | run black | Hubert Chathi | 2019-09-06 | 1 | -24/+10 |
| | | | |||||
* | | | split out signature processing into separate functions | Hubert Chathi | 2019-09-06 | 1 | -195/+204 |
| | | | |||||
* | | | avoid modifying input parameter | Hubert Chathi | 2019-09-05 | 1 | -7/+7 |
| | | | |||||
* | | | update with newer coding style | Hubert Chathi | 2019-09-04 | 1 | -1/+1 |
| | | | |||||
* | | | make black happy | Hubert Chathi | 2019-09-04 | 1 | -78/+69 |
| | | | |||||
* | | | allow uploading signatures of master key signed by devices | Hubert Chathi | 2019-09-04 | 1 | -82/+150 |
| | | | |||||
* | | | implement device signature uploading/fetching | Hubert Chathi | 2019-09-04 | 1 | -0/+250 |
|/ / | |||||
* | | Merge branch 'uhoreg/e2e_cross-signing_merged' into cross-signing_keys | Hubert Chathi | 2019-08-28 | 1 | -1/+51 |
|\| | |||||
| * | Opentrace e2e keys (#5855) | Jorik Schellekens | 2019-08-22 | 1 | -1/+51 |
| | | | | | | Add opentracing tags and logs for e2e keys | ||||
* | | black | Hubert Chathi | 2019-08-28 | 1 | -3/+1 |
| | | |||||
* | | use stream ID generator instead of timestamp | Hubert Chathi | 2019-08-28 | 1 | -4/+3 |
| | | |||||
* | | make isort happy | Hubert Chathi | 2019-08-21 | 1 | -1/+0 |
| | | |||||
* | | apply PR review suggestions | Hubert Chathi | 2019-08-21 | 1 | -42/+34 |
| | | |||||
* | | make changes from PR review | Hubert Chathi | 2019-08-01 | 1 | -6/+18 |
| | | |||||
* | | Merge branch 'cross-signing_hidden' into cross-signing_keys | Hubert Chathi | 2019-08-01 | 1 | -8/+63 |
|\| | |||||
| * | Unwrap error | Erik Johnston | 2019-07-30 | 1 | -1/+2 |
| | | |||||
| * | Fix error handling when fetching remote device keys | Erik Johnston | 2019-07-30 | 1 | -3/+1 |
| | | |||||
| * | Update the device list cache when keys/query is called (#5693) | Jorik Schellekens | 2019-07-29 | 1 | -2/+58 |
| | | |||||
| * | Replace returnValue with return (#5736) | Amber Brown | 2019-07-23 | 1 | -5/+5 |
| | | |||||
* | | allow uploading keys for cross-signing | Hubert Chathi | 2019-07-25 | 1 | -5/+193 |
|/ | |||||
* | remove unused and unnecessary check for FederationDeniedError (#5645) | Hubert Chathi | 2019-07-09 | 1 | -4/+1 |
| | | | | | | | | | | FederationDeniedError is a subclass of SynapseError, which is a subclass of CodeMessageException, so if e is a FederationDeniedError, then this check for FederationDeniedError will never be reached since it will be caught by the check for CodeMessageException above. The check for CodeMessageException does almost the same thing as this check (since FederationDeniedError initialises with code=403 and msg="Federation denied with %s."), so may as well just keep allowing it to handle this case. | ||||
* | Move logging utilities out of the side drawer of util/ and into logging/ (#5606) | Amber Brown | 2019-07-04 | 1 | -1/+1 |
| | |||||
* | Run Black. (#5482) | Amber Brown | 2019-06-20 | 1 | -61/+58 |
| | |||||
* | Replaced all occurences of e.message with str(e) | Schnuffle | 2018-09-27 | 1 | -1/+1 |
| | | | | Signed-off-by: Schnuffle <schnuffle@github.com> | ||||
* | Port handlers/ to Python 3 (#3803) | Amber Brown | 2018-09-07 | 1 | -2/+3 |
| | |||||
* | run isort | Amber Brown | 2018-07-09 | 1 | -5/+5 |
| | |||||
* | Attempt to be more performant on PyPy (#3462) | Amber Brown | 2018-06-28 | 1 | -3/+2 |
| | |||||
* | typos | Matthew Hodgson | 2018-06-25 | 1 | -1/+1 |
| | |||||
* | replace some iteritems with six | Adrian Tschira | 2018-05-19 | 1 | -6/+7 |
| | | | | Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | Merge remote-tracking branch 'origin/develop' into rav/use_run_in_background | Richard van der Hoff | 2018-04-27 | 1 | -2/+2 |
|\ | |||||
| * | Add missing consumeErrors | Richard van der Hoff | 2018-04-27 | 1 | -2/+2 |
| | | | | | | | | | | In general we want defer.gatherResults to consumeErrors, rather than having exceptions hanging around and getting logged as CRITICAL unhandled errors. | ||||
* | | Use run_in_background in preference to preserve_fn | Richard van der Hoff | 2018-04-27 | 1 | -3/+3 |
|/ | | | | | | While I was going through uses of preserve_fn for other PRs, I converted places which only use the wrapped function once to use run_in_background, to avoid creating the function object. | ||||
* | Stringify exceptions for keys/{query,claim} | Richard van der Hoff | 2018-03-27 | 1 | -1/+4 |
| | | | | | | | Make sure we stringify any exceptions we return from keys/query and keys/claim, to avoid a 'not JSON serializable' error later Fixes #3010 | ||||
* | factor out exception handling for keys/claim and keys/query | Richard van der Hoff | 2018-03-27 | 1 | -28/+25 |
| | | | | this stuff is badly c&p'ed | ||||
* | Merge branch 'master' of github.com:matrix-org/synapse into develop | Erik Johnston | 2018-03-19 | 1 | -1/+1 |
|\ | |||||
| * | Replace ujson with simplejson | Erik Johnston | 2018-03-15 | 1 | -1/+1 |
| | | |||||
* | | s/replication_client/federation_client/ | Erik Johnston | 2018-03-13 | 1 | -1/+1 |
| | | |||||
* | | Split replication layer into two | Erik Johnston | 2018-03-13 | 1 | -1/+1 |
| | | |||||
* | | Split out edu/query registration to a separate class | Erik Johnston | 2018-03-13 | 1 | -1/+1 |
| | | |||||
* | | Add federation_domain_whitelist option (#2820) | Matthew Hodgson | 2018-01-22 | 1 | -1/+7 |
| | | | | | | | | | | | | Add federation_domain_whitelist gives a way to restrict which domains your HS is allowed to federate with. useful mainly for gracefully preventing a private but internet-connected HS from trying to federate to the wider public Matrix network | ||||
* | | Sanity checking for user ids | Richard van der Hoff | 2018-01-17 | 1 | -5/+8 |
|/ | | | | | | | | Check the user_id passed to a couple of APIs for validity, to avoid "IndexError: list index out of range" exception which looks scary and results in a 500 rather than a more useful error. Fixes #1432, among other things | ||||
* | Replace some instances of preserve_context_over_deferred | Richard van der Hoff | 2017-05-09 | 1 | -3/+3 |
| | |||||
* | Do some logging when one-time-keys get claimed | Richard van der Hoff | 2017-05-09 | 1 | -0/+10 |
| | | | | | might help us figure out if https://github.com/vector-im/riot-web/issues/3868 has happened. | ||||
* | Allow clients to upload one-time-keys with new sigs | Richard van der Hoff | 2017-05-09 | 1 | -13/+57 |
| | | | | | | | When a client retries a key upload, don't give an error if the signature has changed (but the key is the same). Fixes https://github.com/vector-im/riot-android/issues/1208, hopefully. | ||||
* | Merge pull request #2050 from matrix-org/rav/federation_backoff | Richard van der Hoff | 2017-03-23 | 1 | -20/+12 |
|\ | | | | | push federation retry limiter down to matrixfederationclient | ||||
| * | push federation retry limiter down to matrixfederationclient | Richard van der Hoff | 2017-03-23 | 1 | -20/+12 |
| | | | | | | | | | | rather than having to instrument everywhere we make a federation call, make the MatrixFederationHttpClient manage the retry limiter. | ||||
* | | Add a missing yield in device key upload | Richard van der Hoff | 2017-03-23 | 1 | -1/+1 |
|/ | | | | | (this would only very very rarely actually be a useful thing, so the main problem was the logcontext leak...) | ||||
* | Fix unit tests | Erik Johnston | 2017-01-30 | 1 | -1/+1 |
| | |||||
* | Noop device key changes if they're the same | Erik Johnston | 2017-01-30 | 1 | -4/+5 |
| | |||||
* | Add comments | Erik Johnston | 2017-01-26 | 1 | -1/+3 |
| | |||||
* | Implement device key caching over federation | Erik Johnston | 2017-01-26 | 1 | -5/+35 |
| | |||||
* | Add basic implementation of local device list changes | Erik Johnston | 2017-01-25 | 1 | -0/+1 |
| | |||||
* | Remove unused import | Richard van der Hoff | 2016-12-12 | 1 | -1/+0 |
| | |||||
* | E2E key query: handle federation fails | Richard van der Hoff | 2016-12-09 | 1 | -0/+11 |
| | | | | Don't fail the whole request if we can't connect to a particular server. | ||||
* | Limit how often we ask for keys from dead servers | Mark Haines | 2016-09-13 | 1 | -11/+30 |
| | |||||
* | Move the E2E key handling into the e2e handler | Mark Haines | 2016-09-13 | 1 | -3/+102 |
| | |||||
* | Add a timeout parameter for end2end key queries. | Mark Haines | 2016-09-12 | 1 | -21/+43 |
| | | | | | | | | | | Add a timeout parameter for controlling how long synapse will wait for responses from remote servers. For servers that fail include how they failed to make it easier to debug. Fetch keys from different servers in parallel rather than in series. Set the default timeout to 10s. | ||||
* | keys/query: Omit device displayname if null | Richard van der Hoff | 2016-08-04 | 1 | -3/+4 |
| | | | | ... which makes it more consistent with user displaynames. | ||||
* | Include device name in /keys/query response | Richard van der Hoff | 2016-08-03 | 1 | -3/+8 |
| | | | | Add an 'unsigned' section which includes the device display name. | ||||
* | keys/query: return all users which were asked for | Richard van der Hoff | 2016-08-03 | 1 | -3/+6 |
| | | | | | | In the situation where all of a user's devices get deleted, we want to indicate this to a client, so we want to return an empty dictionary, rather than nothing at all. | ||||
* | E2eKeysHandler: minor tweaks | Richard van der Hoff | 2016-08-03 | 1 | -5/+3 |
| | | | | PR feedback | ||||
* | E2E keys: Make federation query share code with client query | Richard van der Hoff | 2016-08-02 | 1 | -25/+90 |
| | | | | | Refactor the e2e query handler to separate out the local query, and then make the federation handler use it. | ||||
* | Move e2e query logic into a handler | Richard van der Hoff | 2016-08-01 | 1 | -0/+67 |