Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Remove redundant types from comments. (#14412) | Patrick Cloke | 2022-11-16 | 1 | -2/+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. | ||||
* | Validate federation destinations and log an error if server name is invalid. ↵ | Shay | 2022-07-20 | 1 | -0/+9 |
| | | | | (#13318) | ||||
* | Fix `destination_is` errors seen in sentry. (#13041) | David Robertson | 2022-06-14 | 1 | -2/+5 |
| | | | | | | * Rename test_fedclient to match its source file * Require at least one destination to be truthy * Explicitly validate user ID in profile endpoint GETs Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com> | ||||
* | Merge tag 'v1.60.0rc2' into develop | Sean Quah | 2022-05-27 | 1 | -0/+11 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synapse 1.60.0rc2 (2022-05-27) ============================== This release of Synapse adds a unique index to the `state_group_edges` table, in order to prevent accidentally introducing duplicate information (for example, because a database backup was restored multiple times). If your Synapse database already has duplicate rows in this table, this could fail with an error and require manual remediation. Additionally, the signature of the `check_event_for_spam` module callback has changed. The previous signature has been deprecated and remains working for now. Module authors should update their modules to use the new signature where possible. See [the upgrade notes](https://github.com/matrix-org/synapse/blob/develop/docs/upgrade.md#upgrading-to-v1600) for more details. Features -------- - Add an option allowing users to use their password to reauthenticate for privileged actions even though password login is disabled. ([\#12883](https://github.com/matrix-org/synapse/issues/12883)) Bugfixes -------- - Explicitly close `ijson` coroutines once we are done with them, instead of leaving the garbage collector to close them. ([\#12875](https://github.com/matrix-org/synapse/issues/12875)) Internal Changes ---------------- - Improve URL previews by not including the content of media tags in the generated description. ([\#12887](https://github.com/matrix-org/synapse/issues/12887)) | ||||
| * | Close `ijson` coroutines ourselves instead of letting the GC close them (#12875) | Sean Quah | 2022-05-27 | 1 | -0/+11 |
| | | | | | | | | | | | | | | Hopefully this means that exceptions raised due to truncated JSON get a sensible logging context and stack. Signed-off-by: Sean Quah <seanq@matrix.org> | ||||
* | | Allow bigger responses to `/federation/v1/state` (#12877) | Richard van der Hoff | 2022-05-25 | 1 | -22/+7 |
|/ | | | | | | | | | | | * Refactor HTTP response size limits Rather than passing a separate `max_response_size` down the stack, make it an attribute of the `parser`. * Allow bigger responses on `federation/v1/state` `/state` can return huge responses, so we need to handle that. | ||||
* | Make handling of federation Authorization header (more) compliant with ↵ | Hubert Chathi | 2022-05-18 | 1 | -1/+1 |
| | | | | | | | | | | | | RFC7230 (#12774) The main differences are: - values with delimiters (such as colons) should be quoted, so always quote the origin, since it could contain a colon followed by a port number - should allow more than one space after "X-Matrix" - quoted values with backslash-escaped characters should be unescaped - names should be case insensitive | ||||
* | Reduce the number of "untyped defs" (#12716) | David Robertson | 2022-05-12 | 1 | -12/+19 |
| | |||||
* | Immediately retry any requests that have backed off when a server comes back ↵ | Erik Johnston | 2022-05-10 | 1 | -2/+13 |
| | | | | | online. (#12500) Otherwise it can take up to a minute for any in-flight `/send` requests to be retried. | ||||
* | Implement MSC3383: include destination in X-Matrix auth header (#11398) | Jan Christian Grünhage | 2022-04-19 | 1 | -2/+10 |
| | | | | Co-authored-by: Jan Christian Grünhage <jan.christian@gruenhage.xyz> Co-authored-by: Marcus Hoffmann <bubu@bubu1.eu> | ||||
* | Unify HTTP query parameter type hints (#12415) | David Robertson | 2022-04-08 | 1 | -22/+13 |
| | | | | | | * Pull out query param types to `synapse.http.types` * Use QueryParams everywhere * Simplify `encode_query_args` * Add annotation which would have caught #12410 | ||||
* | Remove unnecessary pass statements. (#12206) | Patrick Cloke | 2022-03-11 | 1 | -2/+0 |
| | |||||
* | Remove `HomeServer.get_datastore()` (#12031) | Richard van der Hoff | 2022-02-23 | 1 | -1/+1 |
| | | | | | | | The presence of this method was confusing, and mostly present for backwards compatibility. Let's get rid of it. Part of #11733 | ||||
* | Faster joins: Support for calling `/federation/v1/state` (#12013) | Richard van der Hoff | 2022-02-22 | 1 | -1/+49 |
| | | | | This is an endpoint that we have server-side support for, but no client-side support. It's going to be useful for resyncing partial-stated rooms, so let's introduce it. | ||||
* | Adds misc missing type hints (#11953) | Patrick Cloke | 2022-02-11 | 1 | -2/+1 |
| | |||||
* | Use auto_attribs/native type hints for attrs classes. (#11692) | Patrick Cloke | 2022-01-13 | 1 | -9/+9 |
| | |||||
* | Use HTTPStatus constants in place of literals in `synapse.http` (#11543) | Dirk Klimpel | 2021-12-09 | 1 | -1/+2 |
| | |||||
* | Add type hints for most `HomeServer` parameters (#11095) | Sean Quah | 2021-10-22 | 1 | -2/+6 |
| | |||||
* | Use direct references for configuration variables (part 6). (#10916) | Patrick Cloke | 2021-09-29 | 1 | -5/+5 |
| | |||||
* | Use direct references for configuration variables (part 4). (#10893) | Patrick Cloke | 2021-09-23 | 1 | -2/+3 |
| | |||||
* | Remove unnecessary parentheses around tuples returned from methods (#10889) | Andrew Morgan | 2021-09-23 | 1 | -1/+1 |
| | |||||
* | Prevent logging context going missing on federation request timeout (#10810) | Sean Quah | 2021-09-14 | 1 | -4/+13 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | In `MatrixFederationHttpClient._send_request()`, we make a HTTP request using an `Agent`, wrap that request in a timeout and await the resulting `Deferred`. On its own, the `Agent` performing the HTTP request correctly stashes and restores the logging context while waiting. The addition of the timeout introduces a path where the logging context is not restored when execution resumes. To address this, we wrap the timeout `Deferred` in a `make_deferred_yieldable()` to stash the logging context and restore it on completion of the `await`. However this is not sufficient, since by the time we construct the timeout `Deferred`, the `Agent` has already stashed and cleared the logging context when using `make_deferred_yieldable()` to produce its `Deferred` for the request. Hence, we wrap the `Agent` request in a `run_in_background()` to "fork" and preserve the logging context so that we can stash and restore it when `await`ing the timeout `Deferred`. This approach is similar to the one used with `defer.gatherResults`. Note that the code is still not fully correct. When a timeout occurs, the request remains running in the background (existing behavior which is nothing to do with the new call to `run_in_background`) and may re-start the logging context after it has finished. | ||||
* | support federation queries through http connect proxy (#10475) | Dirk Klimpel | 2021-08-11 | 1 | -9/+3 |
| | | | | | Signed-off-by: Marcus Hoffmann <bubu@bubu1.eu> Signed-off-by: Dirk Klimpel dirk@klimpel.org | ||||
* | Use inline type hints in various other places (in `synapse/`) (#10380) | Jonathan de Jong | 2021-07-15 | 1 | -6/+6 |
| | |||||
* | Fix a number of logged errors caused by remote servers being down. (#10400) | Erik Johnston | 2021-07-15 | 1 | -0/+28 |
| | |||||
* | Fix 'ip_range_whitelist' not working for federation servers (#10115) | Michael Kutzner | 2021-06-15 | 1 | -1/+3 |
| | | | | | Add 'federation_ip_range_whitelist'. This allows backwards-compatibility, If 'federation_ip_range_blacklist' is set. Otherwise 'ip_range_whitelist' will be used for federation servers. Signed-off-by: Michael Kutzner 1mikure@gmail.com | ||||
* | Clean up the interface for injecting opentracing over HTTP (#10143) | Richard van der Hoff | 2021-06-09 | 1 | -7/+3 |
| | | | | | | | * Remove unused helper functions * Clean up the interface for injecting opentracing over HTTP * changelog | ||||
* | Allow response of `/send_join` to be larger. (#10093) | Erik Johnston | 2021-05-28 | 1 | -1/+13 |
| | | | Fixes #10087. | ||||
* | Use ijson to parse the response to `/send_join`, reducing memory usage. (#9958) | Erik Johnston | 2021-05-20 | 1 | -35/+125 |
| | | | Instead of parsing the full response to `/send_join` into Python objects (which can be huge for large rooms) and *then* parsing that into events, we instead use ijson to stream parse the response directly into `EventBase` objects. | ||||
* | Limit the size of HTTP responses read over federation. (#9833) | Richard van der Hoff | 2021-04-23 | 1 | -6/+37 |
| | |||||
* | 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>` | ||||
* | Bump black configuration to target py36 (#9781) | Dan Callahan | 2021-04-13 | 1 | -1/+1 |
| | | | Signed-off-by: Dan Callahan <danc@element.io> | ||||
* | Retry 5xx errors in federation client (#9567) | Erik Johnston | 2021-03-09 | 1 | -3/+4 |
| | | | Fixes #8915 | ||||
* | Create a SynapseReactor type which incorporates the necessary reactor ↵ | Patrick Cloke | 2021-03-08 | 1 | -4/+4 |
| | | | | | interfaces. (#9528) This helps fix some type hints when running with Twisted 21.2.0. | ||||
* | Fix additional type hints from Twisted upgrade. (#9518) | Patrick Cloke | 2021-03-03 | 1 | -3/+3 |
| | |||||
* | Update black, and run auto formatting over the codebase (#9381) | Eric Eastwood | 2021-02-16 | 1 | -6/+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 | ||||
* | Properly raise an exception when the body exceeds the max size. (#9145) | Patrick Cloke | 2021-01-18 | 1 | -1/+1 |
| | | | ...instead of just creating the exception object and doing nothing with it. | ||||
* | Handle bad JSON data being returned from the federation API. (#9070) | Patrick Cloke | 2021-01-12 | 1 | -0/+10 |
| | |||||
* | Add a maximum size for well-known lookups. (#8950) | Patrick Cloke | 2020-12-16 | 1 | -2/+11 |
| | |||||
* | Apply an IP range blacklist to push and key revocation requests. (#8821) | Patrick Cloke | 2020-12-02 | 1 | -18/+8 |
| | | | | | | | | | | | | Replaces the `federation_ip_range_blacklist` configuration setting with an `ip_range_blacklist` setting with wider scope. It now applies to: * Federation * Identity servers * Push notifications * Checking key validitity for third-party invite events The old `federation_ip_range_blacklist` setting is still honored if present, but with reduced scope (it only applies to federation and identity servers). | ||||
* | Add additional type hints to HTTP client. (#8812) | Patrick Cloke | 2020-11-25 | 1 | -64/+10 |
| | | | | This also removes some duplicated code between the simple HTTP client and matrix federation client. | ||||
* | Add type hints to matrix federation client / agent. (#8806) | Patrick Cloke | 2020-11-25 | 1 | -147/+157 |
| | |||||
* | Better error message when a remote resource uses invalid Content-Type (#8719) | Andrew Morgan | 2020-11-11 | 1 | -2/+8 |
| | |||||
* | Fix typos and spelling errors. (#8639) | Patrick Cloke | 2020-10-23 | 1 | -3/+3 |
| | |||||
* | Fix handling of connection timeouts in outgoing http requests (#8400) | Richard van der Hoff | 2020-09-29 | 1 | -12/+43 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove `on_timeout_cancel` from `timeout_deferred` The `on_timeout_cancel` param to `timeout_deferred` wasn't always called on a timeout (in particular if the canceller raised an exception), so it was unreliable. It was also only used in one place, and to be honest it's easier to do what it does a different way. * Fix handling of connection timeouts in outgoing http requests Turns out that if we get a timeout during connection, then a different exception is raised, which wasn't always handled correctly. To fix it, catch the exception in SimpleHttpClient and turn it into a RequestTimedOutError (which is already a documented exception). Also add a description to RequestTimedOutError so that we can see which stage it failed at. * Fix incorrect handling of timeouts reading federation responses This was trapping the wrong sort of TimeoutError, so was never being hit. The effect was relatively minor, but we should fix this so that it does the expected thing. * Fix inconsistent handling of `timeout` param between methods `get_json`, `put_json` and `delete_json` were applying a different timeout to the response body to `post_json`; bring them in line and test. Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com> Co-authored-by: Erik Johnston <erik@matrix.org> | ||||
* | A pair of tiny cleanups in the federation request code. (#8401) | Richard van der Hoff | 2020-09-28 | 1 | -2/+0 |
| | |||||
* | 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. | ||||
* | Fix the exception that is raised when invalid JSON is encountered. (#8291) | Patrick Cloke | 2020-09-10 | 1 | -1/+4 |
| | |||||
* | Stop sub-classing object (#8249) | Patrick Cloke | 2020-09-04 | 1 | -3/+3 |
| | |||||
* | Reduce INFO logging (#8050) | Erik Johnston | 2020-08-11 | 1 | -23/+71 |
| | | | | | | | | | | c.f. #8021 A lot of the code here is to change the `Completed 200 OK` logging to include the request URI so that we can drop the `Sending request...` log line. Some notes: 1. We won't log retries, which may be confusing considering the time taken log line includes retries and sleeps. 2. The `_send_request_with_optional_trailing_slash` will always be logged *without* the forward slash, even if it succeeded only with the forward slash. | ||||
* | Convert federation client to async/await. (#7975) | Patrick Cloke | 2020-07-30 | 1 | -40/+32 |
| | |||||
* | Ensure the msg property of HttpResponseException is a string. (#7979) | Patrick Cloke | 2020-07-29 | 1 | -3/+4 |
| | |||||
* | Add `HomeServer.signing_key` property (#7805) | Richard van der Hoff | 2020-07-08 | 1 | -1/+1 |
| | | | ... instead of duplicating `config.signing_key[0]` everywhere | ||||
* | Stop passing bytes when dumping JSON (#7799) | Patrick Cloke | 2020-07-08 | 1 | -3/+7 |
| | |||||
* | Include a user agent in federation requests. (#7677) | Patrick Cloke | 2020-06-16 | 1 | -1/+8 |
| | |||||
* | Replace all remaining six usage with native Python 3 equivalents (#7704) | Dagfinn Ilmari Mannsåker | 2020-06-16 | 1 | -7/+5 |
| | |||||
* | Fix exception reporting due to HTTP request errors. (#7556) | Erik Johnston | 2020-05-22 | 1 | -0/+7 |
| | | | | These are business as usual errors, rather than stuff we want to log at error. | ||||
* | remove miscellaneous PY2 code | Richard van der Hoff | 2020-05-15 | 1 | -6/+2 |
| | |||||
* | Fix b'GET' in prometheus metrics (#7503) | Richard van der Hoff | 2020-05-14 | 1 | -2/+4 |
| | |||||
* | Reduce federation logging on success (#7321) | Michael Kaye | 2020-04-22 | 1 | -8/+14 |
| | | | | Splitting based on the response code means we can avoid double logging here and identical information from line 164 while still logging at info if we don't get a good response and need to retry. | ||||
* | Fix outbound federation request metrics (#6795) | Erik Johnston | 2020-01-28 | 1 | -0/+4 |
| | |||||
* | Replace instance variations of homeserver with correct case/spacing | Andrew Morgan | 2019-11-12 | 1 | -1/+1 |
| | |||||
* | Remove usage of deprecated logger.warn method from codebase (#6271) | Andrew Morgan | 2019-10-31 | 1 | -5/+5 |
| | | | Replace every instance of `logger.warn` with `logger.warning` as the former is deprecated. | ||||
* | Trace how long it takes for the send trasaction to complete, including ↵ | Jorik Schellekens | 2019-09-05 | 1 | -1/+0 |
| | | | | retrys (#5986) | ||||
* | Opentracing misc (#5856) | Jorik Schellekens | 2019-08-16 | 1 | -10/+13 |
| | | | | | | | | | | | Add authenticated_entity and servlet_names tags. Functionally: - Add a tag for authenticated_entity - Add a tag for servlet_names Stylistically: Moved to importing methods directly from opentracing. | ||||
* | Replace returnValue with return (#5736) | Amber Brown | 2019-07-23 | 1 | -8/+8 |
| | |||||
* | Add basic opentracing support (#5544) | Jorik Schellekens | 2019-07-11 | 1 | -4/+24 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Configure and initialise tracer Includes config options for the tracer and sets up JaegerClient. * Scope manager using LogContexts We piggy-back our tracer scopes by using log context. The current log context gives us the current scope. If new scope is created we create a stack of scopes in the context. * jaeger is a dependency now * Carrier inject and extraction for Twisted Headers * Trace federation requests on the way in and out. The span is created in _started_processing and closed in _finished_processing because we need a meaningful log context. * Create logcontext for new scope. Instead of having a stack of scopes in a logcontext we create a new context for a new scope if the current logcontext already has a scope. * Remove scope from logcontext if logcontext is top level * Disable tracer if not configured * typo * Remove dependence on jaeger internals * bools * Set service name * :Explicitely state that the tracer is disabled * Black is the new black * Newsfile * Code style * Use the new config setup. * Generate config. * Copyright * Rename config to opentracing * Remove user whitelisting * Empty whitelist by default * User ConfigError instead of RuntimeError * Use isinstance * Use tag constants for opentracing. * Remove debug comment and no need to explicitely record error * Two errors a "s(c)entry" * Docstrings! * Remove debugging brainslip * Homeserver Whitlisting * Better opentracing config comment * linting * Inclue worker name in service_name * Make opentracing an optional dependency * Neater config retreival * Clean up dummy tags * Instantiate tracing as object instead of global class * Inlcude opentracing as a homeserver member. * Thread opentracing to the request level * Reference opetnracing through hs * Instantiate dummy opentracin g for tests. * About to revert, just keeping the unfinished changes just in case * Revert back to global state, commit number: 9ce4a3d9067bf9889b86c360c05ac88618b85c4f * Use class level methods in tracerutils * Start and stop requests spans in a place where we have access to the authenticated entity * Seen it, isort it * Make sure to close the active span. * I'm getting black and blue from this. * Logger formatting Co-Authored-By: Erik Johnston <erik@matrix.org> * Outdated comment * Import opentracing at the top * Return a contextmanager * Start tracing client requests from the servlet * Return noop context manager if not tracing * Explicitely say that these are federation requests * Include servlet name in client requests * Use context manager * Move opentracing to logging/ * Seen it, isort it again! * Ignore twisted return exceptions on context exit * Escape the scope * Scopes should be entered to make them useful. * Nicer decorator names * Just one init, init? * Don't need to close something that isn't open * Docs make you smarter | ||||
* | 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 | -121/+121 |
| | |||||
* | Improve docstrings on MatrixFederationClient. (#5332) | Richard van der Hoff | 2019-06-04 | 1 | -16/+55 |
| | |||||
* | Remove spurious debug from MatrixFederationHttpClient.get_json (#5287) v0.99.5.1.dev0 | Richard van der Hoff | 2019-05-29 | 1 | -4/+0 |
| | | | This is just unhelpful spam | ||||
* | Add ability to blacklist ip ranges for federation traffic (#5043) | Andrew Morgan | 2019-05-13 | 1 | -10/+38 |
| | |||||
* | Make federation endpoints more tolerant of trailing slashes v2 (#4935) | Andrew Morgan | 2019-03-26 | 1 | -0/+1 |
| | | | Redo of https://github.com/matrix-org/synapse/pull/4840 | ||||
* | Clean up backoff_on_404 and metehod calls | Andrew Morgan | 2019-03-21 | 1 | -9/+13 |
| | |||||
* | kwargs doesn't like commas on calling funcs either. TIL | Andrew Morgan | 2019-03-20 | 1 | -2/+2 |
| | |||||
* | lint | Andrew Morgan | 2019-03-20 | 1 | -2/+6 |
| | |||||
* | New test, fix issues | Andrew Morgan | 2019-03-20 | 1 | -49/+28 |
| | |||||
* | Fix comments. v0.99.2 -> v0.99.3 | Andrew Morgan | 2019-03-20 | 1 | -5/+5 |
| | |||||
* | Just return if not doing any trailing slash shennanigans | Andrew Morgan | 2019-03-20 | 1 | -0/+2 |
| | |||||
* | lint | Andrew Morgan | 2019-03-18 | 1 | -1/+1 |
| | |||||
* | Better exception handling | Andrew Morgan | 2019-03-18 | 1 | -16/+17 |
| | |||||
* | Correct var name | Andrew Morgan | 2019-03-13 | 1 | -2/+2 |
| | |||||
* | receiving a 400 caused an exception. handle it | Andrew Morgan | 2019-03-13 | 1 | -5/+12 |
| | |||||
* | is this what purgatory feels like | Andrew Morgan | 2019-03-13 | 1 | -3/+3 |
| | |||||
* | i should have given up x2 | Andrew Morgan | 2019-03-13 | 1 | -18/+13 |
| | |||||
* | i should have given up | Andrew Morgan | 2019-03-13 | 1 | -1/+1 |
| | |||||
* | there comes a time when you should give up. but you dont | Andrew Morgan | 2019-03-13 | 1 | -1/+1 |
| | |||||
* | as above | Andrew Morgan | 2019-03-13 | 1 | -2/+4 |
| | |||||
* | no kwargs today | Andrew Morgan | 2019-03-13 | 1 | -7/+12 |
| | |||||
* | Or perhaps I was the one who was drunk | Andrew Morgan | 2019-03-13 | 1 | -6/+3 |
| | |||||
* | go home python, you're drunk | Andrew Morgan | 2019-03-13 | 1 | -4/+2 |
| | |||||
* | Syntax checker is bork | Andrew Morgan | 2019-03-13 | 1 | -6/+5 |
| | |||||
* | Destructure again | Andrew Morgan | 2019-03-13 | 1 | -7/+8 |
| | |||||
* | Are you happy now | Andrew Morgan | 2019-03-13 | 1 | -2/+2 |
| | |||||
* | Syntax test | Andrew Morgan | 2019-03-13 | 1 | -6/+5 |
| | |||||
* | Remove testing code | Andrew Morgan | 2019-03-13 | 1 | -3/+0 |
| | |||||
* | Add missing docstring detail | Andrew Morgan | 2019-03-13 | 1 | -1/+1 |
| | |||||
* | Fix syntax issues | Andrew Morgan | 2019-03-13 | 1 | -7/+10 |
| | |||||
* | Switch to wrapper function around _send_request | Andrew Morgan | 2019-03-13 | 1 | -32/+71 |
| | |||||
* | Retry on 400:M_UNRECOGNIZED | Andrew Morgan | 2019-03-13 | 1 | -6/+10 |
| | |||||
* | Fix paranthesis indent | Andrew Morgan | 2019-03-13 | 1 | -1/+2 |
| | |||||
* | Add workaround note | Andrew Morgan | 2019-03-13 | 1 | -10/+4 |
| | |||||
* | Cleaner way of implementing trailing slashes | Andrew Morgan | 2019-03-12 | 1 | -63/+52 |
| | |||||
* | Retry certain federation requests on 404 | Andrew Morgan | 2019-03-08 | 1 | -0/+45 |
| | |||||
* | Fix TaskStopped exceptions when outbound requests time out (#4690) | Richard van der Hoff | 2019-02-20 | 1 | -15/+2 |
| | |||||
* | Move ClientTLSOptionsFactory init out of refresh_certificates (#4611) | Richard van der Hoff | 2019-02-11 | 1 | -2/+2 |
| | | | | | It's nothing to do with refreshing the certificates. No idea why it was here. | ||||
* | Fix noisy "twisted.internet.task.TaskStopped" errors in logs | Richard van der Hoff | 2019-02-01 | 1 | -2/+15 |
| | | | | Fixes #4003 | ||||
* | Fix Host header sent by MatrixFederationAgent (#4468) | Richard van der Hoff | 2019-01-25 | 1 | -1/+0 |
| | | | | | | Move the Host header logic down here so that (a) it is used if we reuse the agent elsewhere, and (b) we can mess about with it with .well-known. | ||||
* | Make MatrixFederationClient use MatrixFederationAgent | Richard van der Hoff | 2019-01-22 | 1 | -27/+10 |
| | | | | ... instead of the matrix_federation_endpoint | ||||
* | Remove redundant WrappedConnection (#4409) | Richard van der Hoff | 2019-01-18 | 1 | -15/+15 |
| | | | | | | | | * Remove redundant WrappedConnection The matrix federation client uses an HTTP connection pool, which times out its idle HTTP connections, so there is no need for any of this business. | ||||
* | sign_request -> build_auth_headers (#4408) | Richard van der Hoff | 2019-01-17 | 1 | -12/+11 |
| | | | | | Just got very confused about the fact that the headers are only an output, not an input. | ||||
* | Fixup docstrings for matrixfederationclient | Erik Johnston | 2019-01-09 | 1 | -68/+73 |
| | |||||
* | Use RequestSendFailed when fail to parse content type headers | Erik Johnston | 2019-01-08 | 1 | -5/+5 |
| | |||||
* | Refactor request sending to have better excpetions (#4358) | Erik Johnston | 2019-01-08 | 1 | -33/+72 |
| | | | | | | | | | | | | | | * Correctly retry and back off if we get a HTTPerror response * Refactor request sending to have better excpetions MatrixFederationHttpClient blindly reraised exceptions to the caller without differentiating "expected" failures (e.g. connection timeouts etc) versus more severe problems (e.g. programming errors). This commit adds a RequestSendFailed exception that is raised when "expected" failures happen, allowing the TransactionQueue to log them as warnings while allowing us to log other exceptions as actual exceptions. | ||||
* | Merge pull request #3969 from turt2live/travis/fix-federated-group-requests | Travis Ralston | 2018-10-23 | 1 | -6/+6 |
|\ | | | | | Handle HttpResponseException more safely for federated groups | ||||
| * | Fix exception documentation in matrixfederationclient.py | Travis Ralston | 2018-09-26 | 1 | -6/+6 |
| | | |||||
* | | Various cleanups in the federation client code (#4031) | Richard van der Hoff | 2018-10-16 | 1 | -38/+40 |
|/ | | | | | | | | | | | | | | - Improve logging: log things in the right order, include destination and txids in all log lines, don't log successful responses twice - Fix the docstring on TransportLayerClient.send_transaction - Don't use treq.request, which is overcomplicated for our purposes: just use a twisted.web.client.Agent. - simplify the logic for setting up the bodyProducer - fix bytes/str confusions | ||||
* | Update to use new timeout function everywhere. | Erik Johnston | 2018-09-19 | 1 | -10/+15 |
| | | | | | | | The existing deferred timeout helper function (and the one into twisted) suffer from a bug when a deferred's canceller throws an exception, #3842. The new helper function doesn't suffer from this problem. | ||||
* | Destination is a string | Travis Ralston | 2018-09-18 | 1 | -4/+4 |
| | |||||
* | Refactor matrixfederationclient to fix logging (#3906) | Richard van der Hoff | 2018-09-18 | 1 | -149/+236 |
| | | | | | | | | We want to wait until we have read the response body before we log the request as complete, otherwise a confusing thing happens where the request appears to have completed, but we later fail it. To do this, we factor the salient details of a request out to a separate object, which can then keep track of the txn_id, so that it can be logged. | ||||
* | Fix some b'abcd' noise in logs and metrics | Richard van der Hoff | 2018-09-17 | 1 | -1/+4 |
| | | | | | Python 3 compatibility: make sure that we decode some byte sequences before we use them to create log lines and metrics labels. | ||||
* | Add an awful secondary timeout to fix wedged requests | Erik Johnston | 2018-09-14 | 1 | -0/+11 |
| | | | | This is an attempt to mitigate #3842 by adding yet-another-timeout | ||||
* | Merge pull request #3872 from matrix-org/hawkowl/timeouts-2 | Erik Johnston | 2018-09-14 | 1 | -1/+3 |
|\ | | | | | timeouts 2: electric boogaloo | ||||
| * | we do that higher up | Amber Brown | 2018-09-14 | 1 | -0/+1 |
| | | |||||
| * | buffer? | Amber Brown | 2018-09-14 | 1 | -1/+2 |
| | | |||||
* | | Measure outbound requests | Erik Johnston | 2018-09-14 | 1 | -3/+6 |
|/ | |||||
* | Attempt to figure out what's going on with timeouts (#3857) | Amber Brown | 2018-09-14 | 1 | -56/+42 |
| | |||||
* | Log outbound requests when we retry | Erik Johnston | 2018-09-12 | 1 | -75/+74 |
| | |||||
* | Timeout reading body for outbound HTTP requests | Erik Johnston | 2018-09-12 | 1 | -7/+45 |
| | |||||
* | Port http/ to Python 3 (#3771) | Amber Brown | 2018-09-06 | 1 | -120/+84 |
| | |||||
* | Fix bug when federation_domain_whitelist is an emtpy list | Erik Johnston | 2018-08-24 | 1 | -1/+1 |
| | | | | | Outbound federation were incorrectly allowed when the config option was set to an empty list | ||||
* | Rename async to async_helpers because `async` is a keyword on Python 3.7 (#3678) | Amber Brown | 2018-08-10 | 1 | -1/+1 |
| | |||||
* | Merge pull request #3439 from vojeroen/send_sni_for_federation_requests | Richard van der Hoff | 2018-08-10 | 1 | -2/+2 |
|\ | | | | | send SNI for federation requests | ||||
| * | Merge remote-tracking branch 'upstream/develop' into ↵ | Jeroen | 2018-07-14 | 1 | -24/+24 |
| |\ | | | | | | | | | | | | | | | | | | | send_sni_for_federation_requests # Conflicts: # synapse/crypto/context_factory.py | ||||
| * \ | Merge branch 'develop' into send_sni_for_federation_requests | Jeroen | 2018-07-09 | 1 | -2/+1 |
| |\ \ | | | | | | | | | | | | | | | | | # Conflicts: # synapse/http/endpoint.py | ||||
| * | | | formatting changes for pep8 | Jeroen | 2018-06-25 | 1 | -1/+1 |
| | | | | |||||
| * | | | send SNI for federation requests | Jeroen | 2018-06-24 | 1 | -2/+2 |
| | | | | |||||
* | | | | include known room versions in outgoing make_joins | Richard van der Hoff | 2018-08-06 | 1 | -2/+5 |
| |_|/ |/| | | |||||
* | | | run isort | Amber Brown | 2018-07-09 | 1 | -24/+24 |
| |/ |/| | |||||
* | | Attempt to be more performant on PyPy (#3462) | Amber Brown | 2018-06-28 | 1 | -2/+1 |
|/ | |||||
* | Pass around the reactor explicitly (#3385) | Amber Brown | 2018-06-22 | 1 | -2/+3 |
| | |||||
* | Merge pull request #3276 from matrix-org/dbkr/unbind | David Baker | 2018-06-11 | 1 | -2/+23 |
|\ | | | | | Remove email addresses / phone numbers from ID servers when they're removed from synapse | ||||
| * | pep8 | David Baker | 2018-06-06 | 1 | -3/+3 |
| | | |||||
| * | More doc fixes | David Baker | 2018-06-06 | 1 | -2/+2 |
| | | |||||
| * | fix pep8 | David Baker | 2018-06-05 | 1 | -3/+5 |
| | | |||||
| * | doc fixes | David Baker | 2018-06-05 | 1 | -6/+6 |
| | | |||||
| * | Docstring | David Baker | 2018-06-04 | 1 | -0/+14 |
| | | |||||
| * | Merge remote-tracking branch 'origin/develop' into dbkr/unbind | David Baker | 2018-05-24 | 1 | -3/+5 |
| |\ | |||||
| * | | Hit the 3pid unbind endpoint on deactivation | David Baker | 2018-05-23 | 1 | -2/+7 |
| | | | |||||
* | | | Merge remote-tracking branch 'origin/develop' into 3218-official-prom | Amber Brown | 2018-05-28 | 1 | -3/+5 |
|\ \ \ | | |/ | |/| | |||||
| * | | Replace some more comparisons with six | Adrian Tschira | 2018-05-19 | 1 | -3/+5 |
| |/ | | | | | | | | | | | plus a bonus b"" string I missed last time Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | | cleanup | Amber Brown | 2018-05-22 | 1 | -2/+4 |
| | | |||||
* | | replacing portions | Amber Brown | 2018-05-21 | 1 | -10/+4 |
|/ | |||||
* | Merge pull request #3108 from NotAFile/py3-six-urlparse | Richard van der Hoff | 2018-04-30 | 1 | -2/+1 |
|\ | | | | | Use six.moves.urlparse | ||||
| * | Use six.moves.urlparse | Adrian Tschira | 2018-04-15 | 1 | -2/+1 |
| | | | | | | | | | | | | The imports were shuffled around a bunch in py3 Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | | Backport deferred.addTimeout | Richard van der Hoff | 2018-04-27 | 1 | -3/+4 |
| | | | | | | | | Twisted 16.0 doesn't have addTimeout, so let's backport it. | ||||
* | | Use deferred.addTimeout instead of time_bound_deferred | Richard van der Hoff | 2018-04-23 | 1 | -17/+18 |
|/ | | | | This doesn't feel like a wheel we need to reinvent. | ||||
* | use PUT instead of POST for federating groups/m.join_policy | Krombel | 2018-04-06 | 1 | -1/+5 |
| | |||||
* | Add federation_domain_whitelist option (#2820) | Matthew Hodgson | 2018-01-22 | 1 | -1/+27 |
| | | | | | | 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 | ||||
* | replace 'except:' with 'except Exception:' | Richard van der Hoff | 2017-10-23 | 1 | -1/+1 |
| | | | | what could possibly go wrong | ||||
* | Merge branch 'develop' into erikj/groups_merged | David Baker | 2017-10-02 | 1 | -7/+6 |
|\ | |||||
| * | Improve logging of failures in matrixfederationclient | Richard van der Hoff | 2017-09-28 | 1 | -7/+6 |
| | | | | | | | | | | | | * don't log exception types twice * not all exceptions have a meaningful 'message'. Use the repr rather than attempting to build a string ourselves. | ||||
* | | Add DELETE | Erik Johnston | 2017-07-18 | 1 | -0/+46 |
| | | |||||
* | | Add 'args' param to post_json | Erik Johnston | 2017-07-18 | 1 | -9/+15 |
|/ | |||||
* | Fix some lies, and other clarifications, in docstrings | Richard van der Hoff | 2017-04-21 | 1 | -7/+14 |
| | | | | | The documentation on get_json has been wrong ever since the very first commit to synapse... | ||||
* | try not to drop context after federation requests | Richard van der Hoff | 2017-03-23 | 1 | -12/+16 |
| | | | | | | | preserve_context_over_fn uses a ContextPreservingDeferred, which only restores context for the duration of its callbacks, which isn't really correct, and means that subsequent operations in the same request can end up without their logcontexts. | ||||
* | Ignore backoff history for invites, aliases, and roomdirs | Richard van der Hoff | 2017-03-23 | 1 | -7/+26 |
| | | | | | Add a param to the federation client which lets us ignore historical backoff data for federation queries, and set it for a handful of operations. | ||||
* | push federation retry limiter down to matrixfederationclient | Richard van der Hoff | 2017-03-23 | 1 | -101/+127 |
| | | | | | rather than having to instrument everywhere we make a federation call, make the MatrixFederationHttpClient manage the retry limiter. | ||||
* | MatrixFederationHttpClient: clean up | Richard van der Hoff | 2017-03-23 | 1 | -17/+24 |
| | | | | | rename _create_request to _request, and push ascii-encoding of `destination` and `path` down into it | ||||
* | Fix routing loop when fetching remote media | Richard van der Hoff | 2017-03-13 | 1 | -3/+12 |
| | | | | | | | | | | | When we proxy a media request to a remote server, add a query-param, which will tell the remote server to 404 if it doesn't recognise the server_name. This should fix a routing loop where the server keeps forwarding back to itself. Also improves the error handling on remote media fetches, so that we don't always return a rather obscure 502. | ||||
* | Respect long_retries param and default to off | Erik Johnston | 2016-12-29 | 1 | -2/+2 |
| | |||||
* | Clean up | Erik Johnston | 2016-12-29 | 1 | -5/+0 |
| | |||||
* | Wrap connections in an N minute timeout to ensure they get reaped correctly | Erik Johnston | 2016-12-29 | 1 | -1/+7 |
| | |||||
* | More intelligent Content-Type parsing | Richard van der Hoff | 2016-11-30 | 1 | -18/+30 |
| | | | | | Content-Type is allowed to contain options (`; charset=utf-8`, for instance). We should allow that. | ||||
* | Add a timeout parameter for end2end key queries. | Mark Haines | 2016-09-12 | 1 | -2/+9 |
| | | | | | | | | | | 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. | ||||
* | Clean up TransactionQueue | Erik Johnston | 2016-08-10 | 1 | -3/+1 |
| | |||||
* | Fix flake8 warnings for new flake8 | Daniel Wagner-Hall | 2016-02-02 | 1 | -1/+1 |
| | |||||
* | copyrights | Matthew Hodgson | 2016-01-07 | 1 | -1/+1 |
| | |||||
* | Fix typo | Erik Johnston | 2015-11-20 | 1 | -2/+2 |
| | |||||
* | Don't limit connections to perspective servers | Erik Johnston | 2015-11-20 | 1 | -1/+4 |
| | |||||
* | Use min and not max to set an upper bound on retry interval | Erik Johnston | 2015-11-20 | 1 | -2/+2 |
| | |||||
* | Add comment | Erik Johnston | 2015-11-17 | 1 | -0/+2 |
| | |||||
* | Only retry federation requests for a long time for background requests | Erik Johnston | 2015-11-17 | 1 | -7/+19 |
| | |||||
* | Implement required method 'resumeProducing' | Erik Johnston | 2015-11-17 | 1 | -0/+3 |
| | |||||
* | Slightly more aggressive retry timers at HTTP level | Erik Johnston | 2015-11-17 | 1 | -2/+3 |
| | |||||
* | Retry dead servers a lot less often | Erik Johnston | 2015-11-02 | 1 | -2/+8 |
| | |||||
* | Allow configuration to ignore invalid SSL certs | Daniel Wagner-Hall | 2015-09-09 | 1 | -2/+2 |
| | | | | | This will be useful for sytest, and sytest only, hence the aggressive config key name. | ||||
* | Remove syutil dependency in favour of smaller single-purpose libraries | Mark Haines | 2015-08-24 | 1 | -2/+2 |
| | |||||
* | PEP8 | Erik Johnston | 2015-08-13 | 1 | -1/+0 |
| | |||||
* | Merge branch 'develop' into markjh/twisted-15 | Mark Haines | 2015-08-12 | 1 | -68/+77 |
|\ | | | | | | | | | Conflicts: synapse/http/matrixfederationclient.py | ||||
| * | Fix log context when sending requests | Erik Johnston | 2015-06-19 | 1 | -28/+30 |
| | | |||||
| * | Remove stale debug lines | Erik Johnston | 2015-06-19 | 1 | -10/+0 |
| | | |||||
| * | Add IDs to outbound transactions | Erik Johnston | 2015-06-19 | 1 | -53/+71 |
| | | |||||
* | | Use Twisted-15.2.1, Use Agent.usingEndpointFactory rather than implement our ↵ | Mark Haines | 2015-06-01 | 1 | -50/+25 |
|/ | | | | own Agent | ||||
* | Correctly pass connection pool parameter | Erik Johnston | 2015-05-28 | 1 | -1/+1 |
| | |||||
* | Up maxPersistentPerHost count | Erik Johnston | 2015-05-28 | 1 | -0/+1 |
| | |||||
* | Use connection pool for federation connections | Erik Johnston | 2015-05-28 | 1 | -2/+3 |
| | |||||
* | Add doc strings | Erik Johnston | 2015-05-22 | 1 | -0/+3 |
| | |||||
* | Add a timeout param to get_event | Erik Johnston | 2015-05-19 | 1 | -5/+8 |
| | |||||
* | Change the way we do logging contexts so that they survive divergences | Erik Johnston | 2015-05-08 | 1 | -16/+16 |
| | |||||
* | Appease pep8 | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -3/+7 |
| | |||||
* | Use _ instead of . as a metric namespacing separator, for Prometheus | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -2/+2 |
| | |||||
* | Rename Metrics' "keys" to "labels" | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -2/+2 |
| | |||||
* | Add vector counters to HTTP clients and servers; count the requests by ↵ | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -3/+25 |
| | | | | method and responses by method and response code | ||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.7.1 | Erik Johnston | 2015-02-18 | 1 | -2/+2 |
|\ | |||||
| * | Use git aware version string in User-Agent and Server headers | Erik Johnston | 2015-02-18 | 1 | -2/+2 |
| | | |||||
* | | Don't convert DNSLookupError to a 4xx SynapseError | Erik Johnston | 2015-02-18 | 1 | -1/+1 |
|/ | |||||
* | Add .__name__ after type(e) | Erik Johnston | 2015-02-18 | 1 | -2/+2 |
| | |||||
* | Fix up ResponseNeverReceived to str | Erik Johnston | 2015-02-18 | 1 | -9/+11 |
| | |||||
* | strings.join() expects iterable of strings | Erik Johnston | 2015-02-18 | 1 | -1/+1 |
| | |||||
* | Remove unused import | Erik Johnston | 2015-02-17 | 1 | -1/+0 |
| | |||||
* | Make matrixfederationclient log more nicely | Erik Johnston | 2015-02-17 | 1 | -11/+12 |
| | |||||
* | Merge pull request #61 from matrix-org/timeout-federation-requests | Erik Johnston | 2015-02-11 | 1 | -1/+7 |
|\ | | | | | Timeout federation requests | ||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-02-11 | 1 | -5/+73 |
| |\ | | | | | | | | | | timeout-federation-requests | ||||
| * | | PEP8 | Erik Johnston | 2015-02-11 | 1 | -1/+0 |
| | | | |||||
| * | | Move time_bound_deferred into Clock | Erik Johnston | 2015-02-11 | 1 | -3/+2 |
| | | | |||||
| * | | Time out HTTP federation requests | Erik Johnston | 2015-02-10 | 1 | -2/+9 |
| | | | |||||
* | | | Blunty replace json with simplejson | Erik Johnston | 2015-02-11 | 1 | -1/+1 |
| |/ |/| | |||||
* | | Return body of response in HttpResponseException | Erik Johnston | 2015-02-06 | 1 | -1/+2 |
| | | |||||
* | | Apply sanity to the transport client interface. Convert 'make_join' and ↵ | Erik Johnston | 2015-02-04 | 1 | -6/+36 |
| | | | | | | | | 'send_join' to accept iterables of destinations | ||||
* | | Make post_json(...) actually send data. | Erik Johnston | 2015-01-29 | 1 | -1/+1 |
| | | |||||
* | | Add post_json(...) method to federation client | Erik Johnston | 2015-01-29 | 1 | -0/+37 |
| | | |||||
* | | Finish renaming "context" to "room_id" in federation codebase | Mark Haines | 2015-01-16 | 1 | -1/+0 |
|/ | |||||
* | Update copyright notices | Mark Haines | 2015-01-06 | 1 | -1/+1 |
| | |||||
* | Include version in User-Agent and Server headers | Mark Haines | 2014-12-22 | 1 | -1/+3 |
| | |||||
* | Limit the size of images that are thumbnailed serverside. Limit the size of ↵ | Mark Haines | 2014-12-11 | 1 | -6/+19 |
| | | | | file that a server will download from a remote server | ||||
* | Merge branch 'develop' into media_repository | Mark Haines | 2014-12-10 | 1 | -9/+26 |
|\ | |||||
| * | turn back on per-request transaction retries, so that every time we try to ↵ | Matthew Hodgson | 2014-12-10 | 1 | -4/+3 |
| | | | | | | | | hit a dead server we actually end up hammering 5 times :| | ||||
| * | Code style. | Erik Johnston | 2014-12-10 | 1 | -8/+21 |
| | | |||||
| * | add errbacks to enqueue_pdu deferreds; change logging for failed federation ↵ | Matthew Hodgson | 2014-12-10 | 1 | -2/+2 |
| | | | | | | | | sends to warn rather than exception | ||||
| * | squidge to 79 columns as per pep8 | Matthew Hodgson | 2014-12-10 | 1 | -3/+4 |
| | | |||||
| * | track replication destination health, and perform exponential back-off when ↵ | Matthew Hodgson | 2014-12-07 | 1 | -6/+10 |
| | | | | | | | | sending transactions. does *not* yet retry transactions, but drops them on the floor if waiting for a server to recover. | ||||
* | | Implement download support for media_repository | Mark Haines | 2014-12-04 | 1 | -5/+68 |
|/ | |||||
* | Fix pep8 and pyflakes warnings | Mark Haines | 2014-11-20 | 1 | -3/+3 |
| | |||||
* | Separate out the matrix http client completely because just about all of its ↵ | David Baker | 2014-11-20 | 1 | -0/+308 |
code it now separate from the simple case we need for standard HTTP(S) |