summary refs log tree commit diff
path: root/synapse/http/matrixfederationclient.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Make MatrixFederationClient use MatrixFederationAgentRichard van der Hoff2019-01-221-27/+10
| | | | ... instead of the matrix_federation_endpoint
* Remove redundant WrappedConnection (#4409)Richard van der Hoff2019-01-181-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 Hoff2019-01-171-12/+11
| | | | | Just got very confused about the fact that the headers are only an output, not an input.
* Fixup docstrings for matrixfederationclientErik Johnston2019-01-091-68/+73
|
* Use RequestSendFailed when fail to parse content type headersErik Johnston2019-01-081-5/+5
|
* Refactor request sending to have better excpetions (#4358)Erik Johnston2019-01-081-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-requestsTravis Ralston2018-10-231-6/+6
|\ | | | | Handle HttpResponseException more safely for federated groups
| * Fix exception documentation in matrixfederationclient.pyTravis Ralston2018-09-261-6/+6
| |
* | Various cleanups in the federation client code (#4031)Richard van der Hoff2018-10-161-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 Johnston2018-09-191-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 stringTravis Ralston2018-09-181-4/+4
|
* Refactor matrixfederationclient to fix logging (#3906)Richard van der Hoff2018-09-181-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 metricsRichard van der Hoff2018-09-171-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 requestsErik Johnston2018-09-141-0/+11
| | | | This is an attempt to mitigate #3842 by adding yet-another-timeout
* Merge pull request #3872 from matrix-org/hawkowl/timeouts-2Erik Johnston2018-09-141-1/+3
|\ | | | | timeouts 2: electric boogaloo
| * we do that higher upAmber Brown2018-09-141-0/+1
| |
| * buffer?Amber Brown2018-09-141-1/+2
| |
* | Measure outbound requestsErik Johnston2018-09-141-3/+6
|/
* Attempt to figure out what's going on with timeouts (#3857)Amber Brown2018-09-141-56/+42
|
* Log outbound requests when we retryErik Johnston2018-09-121-75/+74
|
* Timeout reading body for outbound HTTP requestsErik Johnston2018-09-121-7/+45
|
* Port http/ to Python 3 (#3771)Amber Brown2018-09-061-120/+84
|
* Fix bug when federation_domain_whitelist is an emtpy listErik Johnston2018-08-241-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 Brown2018-08-101-1/+1
|
* Merge pull request #3439 from vojeroen/send_sni_for_federation_requestsRichard van der Hoff2018-08-101-2/+2
|\ | | | | send SNI for federation requests
| * Merge remote-tracking branch 'upstream/develop' into ↵Jeroen2018-07-141-24/+24
| |\ | | | | | | | | | | | | | | | | | | send_sni_for_federation_requests # Conflicts: # synapse/crypto/context_factory.py
| * \ Merge branch 'develop' into send_sni_for_federation_requestsJeroen2018-07-091-2/+1
| |\ \ | | | | | | | | | | | | | | | | # Conflicts: # synapse/http/endpoint.py
| * | | formatting changes for pep8Jeroen2018-06-251-1/+1
| | | |
| * | | send SNI for federation requestsJeroen2018-06-241-2/+2
| | | |
* | | | include known room versions in outgoing make_joinsRichard van der Hoff2018-08-061-2/+5
| |_|/ |/| |
* | | run isortAmber Brown2018-07-091-24/+24
| |/ |/|
* | Attempt to be more performant on PyPy (#3462)Amber Brown2018-06-281-2/+1
|/
* Pass around the reactor explicitly (#3385)Amber Brown2018-06-221-2/+3
|
* Merge pull request #3276 from matrix-org/dbkr/unbindDavid Baker2018-06-111-2/+23
|\ | | | | Remove email addresses / phone numbers from ID servers when they're removed from synapse
| * pep8David Baker2018-06-061-3/+3
| |
| * More doc fixesDavid Baker2018-06-061-2/+2
| |
| * fix pep8David Baker2018-06-051-3/+5
| |
| * doc fixesDavid Baker2018-06-051-6/+6
| |
| * DocstringDavid Baker2018-06-041-0/+14
| |
| * Merge remote-tracking branch 'origin/develop' into dbkr/unbindDavid Baker2018-05-241-3/+5
| |\
| * | Hit the 3pid unbind endpoint on deactivationDavid Baker2018-05-231-2/+7
| | |
* | | Merge remote-tracking branch 'origin/develop' into 3218-official-promAmber Brown2018-05-281-3/+5
|\ \ \ | | |/ | |/|
| * | Replace some more comparisons with sixAdrian Tschira2018-05-191-3/+5
| |/ | | | | | | | | | | plus a bonus b"" string I missed last time Signed-off-by: Adrian Tschira <nota@notafile.com>
* | cleanupAmber Brown2018-05-221-2/+4
| |
* | replacing portionsAmber Brown2018-05-211-10/+4
|/
* Merge pull request #3108 from NotAFile/py3-six-urlparseRichard van der Hoff2018-04-301-2/+1
|\ | | | | Use six.moves.urlparse
| * Use six.moves.urlparseAdrian Tschira2018-04-151-2/+1
| | | | | | | | | | | | The imports were shuffled around a bunch in py3 Signed-off-by: Adrian Tschira <nota@notafile.com>
* | Backport deferred.addTimeoutRichard van der Hoff2018-04-271-3/+4
| | | | | | | | Twisted 16.0 doesn't have addTimeout, so let's backport it.
* | Use deferred.addTimeout instead of time_bound_deferredRichard van der Hoff2018-04-231-17/+18
|/ | | | This doesn't feel like a wheel we need to reinvent.
* use PUT instead of POST for federating groups/m.join_policyKrombel2018-04-061-1/+5
|
* Add federation_domain_whitelist option (#2820)Matthew Hodgson2018-01-221-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 Hoff2017-10-231-1/+1
| | | | what could possibly go wrong
* Merge branch 'develop' into erikj/groups_mergedDavid Baker2017-10-021-7/+6
|\
| * Improve logging of failures in matrixfederationclientRichard van der Hoff2017-09-281-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 DELETEErik Johnston2017-07-181-0/+46
| |
* | Add 'args' param to post_jsonErik Johnston2017-07-181-9/+15
|/
* Fix some lies, and other clarifications, in docstringsRichard van der Hoff2017-04-211-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 requestsRichard van der Hoff2017-03-231-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 roomdirsRichard van der Hoff2017-03-231-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 matrixfederationclientRichard van der Hoff2017-03-231-101/+127
| | | | | rather than having to instrument everywhere we make a federation call, make the MatrixFederationHttpClient manage the retry limiter.
* MatrixFederationHttpClient: clean upRichard van der Hoff2017-03-231-17/+24
| | | | | rename _create_request to _request, and push ascii-encoding of `destination` and `path` down into it
* Fix routing loop when fetching remote mediaRichard van der Hoff2017-03-131-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 offErik Johnston2016-12-291-2/+2
|
* Clean upErik Johnston2016-12-291-5/+0
|
* Wrap connections in an N minute timeout to ensure they get reaped correctlyErik Johnston2016-12-291-1/+7
|
* More intelligent Content-Type parsingRichard van der Hoff2016-11-301-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 Haines2016-09-121-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 TransactionQueueErik Johnston2016-08-101-3/+1
|
* Fix flake8 warnings for new flake8Daniel Wagner-Hall2016-02-021-1/+1
|
* copyrightsMatthew Hodgson2016-01-071-1/+1
|
* Fix typoErik Johnston2015-11-201-2/+2
|
* Don't limit connections to perspective serversErik Johnston2015-11-201-1/+4
|
* Use min and not max to set an upper bound on retry intervalErik Johnston2015-11-201-2/+2
|
* Add commentErik Johnston2015-11-171-0/+2
|
* Only retry federation requests for a long time for background requestsErik Johnston2015-11-171-7/+19
|
* Implement required method 'resumeProducing'Erik Johnston2015-11-171-0/+3
|
* Slightly more aggressive retry timers at HTTP levelErik Johnston2015-11-171-2/+3
|
* Retry dead servers a lot less oftenErik Johnston2015-11-021-2/+8
|
* Allow configuration to ignore invalid SSL certsDaniel Wagner-Hall2015-09-091-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 librariesMark Haines2015-08-241-2/+2
|
* PEP8Erik Johnston2015-08-131-1/+0
|
* Merge branch 'develop' into markjh/twisted-15Mark Haines2015-08-121-68/+77
|\ | | | | | | | | Conflicts: synapse/http/matrixfederationclient.py
| * Fix log context when sending requestsErik Johnston2015-06-191-28/+30
| |
| * Remove stale debug linesErik Johnston2015-06-191-10/+0
| |
| * Add IDs to outbound transactionsErik Johnston2015-06-191-53/+71
| |
* | Use Twisted-15.2.1, Use Agent.usingEndpointFactory rather than implement our ↵Mark Haines2015-06-011-50/+25
|/ | | | own Agent
* Correctly pass connection pool parameterErik Johnston2015-05-281-1/+1
|
* Up maxPersistentPerHost countErik Johnston2015-05-281-0/+1
|
* Use connection pool for federation connectionsErik Johnston2015-05-281-2/+3
|
* Add doc stringsErik Johnston2015-05-221-0/+3
|
* Add a timeout param to get_eventErik Johnston2015-05-191-5/+8
|
* Change the way we do logging contexts so that they survive divergencesErik Johnston2015-05-081-16/+16
|
* Appease pep8Paul "LeoNerd" Evans2015-03-121-3/+7
|
* Use _ instead of . as a metric namespacing separator, for PrometheusPaul "LeoNerd" Evans2015-03-121-2/+2
|
* Rename Metrics' "keys" to "labels"Paul "LeoNerd" Evans2015-03-121-2/+2
|
* Add vector counters to HTTP clients and servers; count the requests by ↵Paul "LeoNerd" Evans2015-03-121-3/+25
| | | | method and responses by method and response code
* Merge branch 'develop' of github.com:matrix-org/synapse into release-v0.7.1Erik Johnston2015-02-181-2/+2
|\
| * Use git aware version string in User-Agent and Server headersErik Johnston2015-02-181-2/+2
| |
* | Don't convert DNSLookupError to a 4xx SynapseErrorErik Johnston2015-02-181-1/+1
|/
* Add .__name__ after type(e)Erik Johnston2015-02-181-2/+2
|
* Fix up ResponseNeverReceived to strErik Johnston2015-02-181-9/+11
|
* strings.join() expects iterable of stringsErik Johnston2015-02-181-1/+1
|
* Remove unused importErik Johnston2015-02-171-1/+0
|
* Make matrixfederationclient log more nicelyErik Johnston2015-02-171-11/+12
|
* Merge pull request #61 from matrix-org/timeout-federation-requestsErik Johnston2015-02-111-1/+7
|\ | | | | Timeout federation requests
| * Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2015-02-111-5/+73
| |\ | | | | | | | | | timeout-federation-requests
| * | PEP8Erik Johnston2015-02-111-1/+0
| | |
| * | Move time_bound_deferred into ClockErik Johnston2015-02-111-3/+2
| | |
| * | Time out HTTP federation requestsErik Johnston2015-02-101-2/+9
| | |
* | | Blunty replace json with simplejsonErik Johnston2015-02-111-1/+1
| |/ |/|
* | Return body of response in HttpResponseExceptionErik Johnston2015-02-061-1/+2
| |
* | Apply sanity to the transport client interface. Convert 'make_join' and ↵Erik Johnston2015-02-041-6/+36
| | | | | | | | 'send_join' to accept iterables of destinations
* | Make post_json(...) actually send data.Erik Johnston2015-01-291-1/+1
| |
* | Add post_json(...) method to federation clientErik Johnston2015-01-291-0/+37
| |
* | Finish renaming "context" to "room_id" in federation codebaseMark Haines2015-01-161-1/+0
|/
* Update copyright noticesMark Haines2015-01-061-1/+1
|
* Include version in User-Agent and Server headersMark Haines2014-12-221-1/+3
|
* Limit the size of images that are thumbnailed serverside. Limit the size of ↵Mark Haines2014-12-111-6/+19
| | | | file that a server will download from a remote server
* Merge branch 'develop' into media_repositoryMark Haines2014-12-101-9/+26
|\
| * turn back on per-request transaction retries, so that every time we try to ↵Matthew Hodgson2014-12-101-4/+3
| | | | | | | | hit a dead server we actually end up hammering 5 times :|
| * Code style.Erik Johnston2014-12-101-8/+21
| |
| * add errbacks to enqueue_pdu deferreds; change logging for failed federation ↵Matthew Hodgson2014-12-101-2/+2
| | | | | | | | sends to warn rather than exception
| * squidge to 79 columns as per pep8Matthew Hodgson2014-12-101-3/+4
| |
| * track replication destination health, and perform exponential back-off when ↵Matthew Hodgson2014-12-071-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_repositoryMark Haines2014-12-041-5/+68
|/
* Fix pep8 and pyflakes warningsMark Haines2014-11-201-3/+3
|
* Separate out the matrix http client completely because just about all of its ↵David Baker2014-11-201-0/+308
code it now separate from the simple case we need for standard HTTP(S)