Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Fix exception responding to request that has been closed (#10932) | Erik Johnston | 2021-09-28 | 1 | -3/+11 |
| | | | Introduced in #10905 | ||||
* | Encode JSON responses on a thread in C, mk2 (#10905) | Erik Johnston | 2021-09-28 | 1 | -15/+57 |
| | | | | | | | | | | Currently we use `JsonEncoder.iterencode` to write JSON responses, which ensures that we don't block the main reactor thread when encoding huge objects. The downside to this is that `iterencode` falls back to using a pure Python encoder that is *much* less efficient and can easily burn a lot of CPU for huge responses. To fix this, while still ensuring we don't block the reactor loop, we encode the JSON on a threadpool using the standard `JsonEncoder.encode` functions, which is backed by a C library. Doing so, however, requires `respond_with_json` to have access to the reactor, which it previously didn't. There are two ways of doing this: 1. threading through the reactor object, which is a bit fiddly as e.g. `DirectServeJsonResource` doesn't currently take a reactor, but is exposed to modules and so is a PITA to change; or 2. expose the reactor in `SynapseRequest`, which requires updating a bunch of servlet types. I went with the latter as that is just a mechanical change, and I think makes sense as a request already has a reactor associated with it (via its http channel). | ||||
* | Add reactor to `SynapseRequest` and fix up types. (#10868) | Erik Johnston | 2021-09-24 | 1 | -2/+2 |
| | |||||
* | Use inline type hints in various other places (in `synapse/`) (#10380) | Jonathan de Jong | 2021-07-15 | 1 | -4/+4 |
| | |||||
* | Drop Origin & Accept from Access-Control-Allow-Headers value (#10114) | Michael[tm] Smith | 2021-06-23 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Drop Origin & Accept from Access-Control-Allow-Headers value This change drops the Origin and Accept header names from the value of the Access-Control-Allow-Headers response header sent by Synapse. Per the CORS protocol, it’s not necessary or useful to include those header names. Details: Per-spec at https://fetch.spec.whatwg.org/#forbidden-header-name, Origin is a “forbidden header name” set by the browser and that frontend JavaScript code is never allowed to set. So the value of Access-Control-Allow-Headers isn’t relevant to Origin or in general to other headers set by the browser itself — the browser never ever consults the Access-Control-Allow-Headers value to confirm that it’s OK for the request to include an Origin header. And per-spec at https://fetch.spec.whatwg.org/#cors-safelisted-request-header, Accept is a “CORS-safelisted request-header”, which means that browsers allow requests to contain the Accept header regardless of whether the Access-Control-Allow-Headers value contains "Accept". So it’s unnecessary for the Access-Control-Allow-Headers to explicitly include Accept. Browsers will not perform a CORS preflight for requests containing an Accept request header. Related: https://github.com/matrix-org/matrix-doc/pull/3225 Signed-off-by: Michael[tm] Smith <mike@w3.org> | ||||
* | 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>` | ||||
* | Fix additional type hints from Twisted upgrade. (#9518) | Patrick Cloke | 2021-03-03 | 1 | -11/+18 |
| | |||||
* | Update black, and run auto formatting over the codebase (#9381) | Eric Eastwood | 2021-02-16 | 1 | -27/+45 |
| | | | | | | | - 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 | ||||
* | Split out a separate endpoint to complete SSO registration (#9262) | Richard van der Hoff | 2021-02-01 | 1 | -0/+7 |
| | | | There are going to be a couple of paths to get to the final step of SSO reg, and I want the URL in the browser to consistent. So, let's move the final step onto a separate path, which we redirect to. | ||||
* | Implement MSC2858 support (#9183) | Richard van der Hoff | 2021-01-27 | 1 | -8/+36 |
| | | | Fixes #8928. | ||||
* | Fix buglet in DirectRenderJsonResource (#8897) | Richard van der Hoff | 2020-12-10 | 1 | -3/+5 |
| | | | | this was using `canonical_json` without setting it, so when you used it as a standalone class, you would get exceptions. | ||||
* | Allow Date header through CORS (#8804) | Nicolas Chamo | 2020-12-01 | 1 | -1/+1 |
| | |||||
* | Remove special case of pretty printing JSON responses for curl (#8833) | Tulir Asokan | 2020-11-27 | 1 | -24/+5 |
| | | | | | * Remove special case of pretty printing JSON responses for curl Signed-off-by: Tulir Asokan <tulir@maunium.net> | ||||
* | Merge pull request #8678 from matrix-org/rav/fix_frozen_events | Richard van der Hoff | 2020-10-28 | 1 | -3/+1 |
|\ | | | | | Fix serialisation errors when using third-party event rules. | ||||
| * | remove unused imports | Richard van der Hoff | 2020-10-28 | 1 | -2/+0 |
| | | |||||
| * | Remove frozendict_json_encoder and support frozendicts everywhere | Richard van der Hoff | 2020-10-28 | 1 | -1/+1 |
| | | | | | | | | | | | | Not being able to serialise `frozendicts` is fragile, and it's annoying to have to think about which serialiser you want. There's no real downside to supporting frozendicts, so let's just have one json encoder. | ||||
* | | Fix typos and spelling errors. (#8639) | Patrick Cloke | 2020-10-23 | 1 | -3/+3 |
|/ | |||||
* | Don't bother responding to client requests that have already disconnected ↵ | Andrew Morgan | 2020-10-06 | 1 | -0/+5 |
| | | | | | | | | | | (#8465) This PR ports the quick fix from https://github.com/matrix-org/synapse/pull/2796 to further methods which handle media, URL preview and `/key/v2/server` requests. This prevents a harmless `ERROR` that comes up in the logs when we were unable to respond to a client request when the client had already disconnected. In this case we simply bail out if the client has already done so. This is the 'simple fix' as suggested by https://github.com/matrix-org/synapse/issues/5304#issuecomment-574740003. Fixes https://github.com/matrix-org/synapse/issues/6700 Fixes https://github.com/matrix-org/synapse/issues/5304 | ||||
* | Enable mypy checking for unreachable code and fix instances. (#8432) | Patrick Cloke | 2020-10-01 | 1 | -2/+2 |
| | |||||
* | Stop sub-classing object (#8249) | Patrick Cloke | 2020-09-04 | 1 | -1/+1 |
| | |||||
* | Switch the JSON byte producer from a pull to a push producer. (#8116) | Patrick Cloke | 2020-08-19 | 1 | -32/+43 |
| | |||||
* | Iteratively encode JSON responses to avoid blocking the reactor. (#8013) | Patrick Cloke | 2020-08-18 | 1 | -8/+89 |
| | |||||
* | Reduce unnecessary whitespace in JSON. (#7372) | David Vo | 2020-08-07 | 1 | -2/+3 |
| | |||||
* | Implement handling of HTTP HEAD requests. (#7999) | Patrick Cloke | 2020-08-03 | 1 | -5/+11 |
| | |||||
* | Return an empty body for OPTIONS requests. (#7886) | Patrick Cloke | 2020-07-24 | 1 | -19/+5 |
| | |||||
* | fix an incorrect comment | Richard van der Hoff | 2020-07-22 | 1 | -2/+2 |
| | |||||
* | Add types to the server code and remove unused parameter (#7813) | Patrick Cloke | 2020-07-10 | 1 | -30/+41 |
| | |||||
* | Merge different Resource implementation classes (#7732) | Erik Johnston | 2020-07-03 | 1 | -175/+190 |
| | |||||
* | Merge branch 'master' into develop | Patrick Cloke | 2020-07-02 | 1 | -8/+68 |
|\ | |||||
| * | Ensure that HTML pages served from Synapse include headers to avoid embedding. | Patrick Cloke | 2020-07-02 | 1 | -8/+68 |
| | | |||||
* | | Replace all remaining six usage with native Python 3 equivalents (#7704) | Dagfinn Ilmari Mannsåker | 2020-06-16 | 1 | -2/+2 |
|/ | |||||
* | Clean up exception handling in SAML2ResponseResource (#7614) | Richard van der Hoff | 2020-06-03 | 1 | -12/+31 |
| | | | | | | | | | | | | | * Expose `return_html_error`, and allow it to take a Jinja2 template instead of a raw string * Clean up exception handling in SAML2ResponseResource * use the existing code in `return_html_error` instead of re-implementing it (giving it a jinja2 template rather than inventing a new form of template) * do the exception-catching in the REST layer rather than in the handler layer, to make sure we catch all exceptions. | ||||
* | Fix missing CORS headers on OPTION responses (#7560) | Erik Johnston | 2020-05-22 | 1 | -1/+1 |
| | | | Broke in #7534. | ||||
* | Return 200 OK for all OPTIONS requests (#7534) | Patrick Cloke | 2020-05-22 | 1 | -3/+20 |
| | |||||
* | Tiny optimisation for _get_handler_for_request (#6950) | Richard van der Hoff | 2020-02-19 | 1 | -1/+3 |
| | | | | we have hundreds of path_regexes (see #5118), so let's not convert the same bytes to str for each of them. | ||||
* | Implement RedirectException (#6687) | Richard van der Hoff | 2020-01-15 | 1 | -4/+9 |
| | | | | | Allow REST endpoint implemnentations to raise a RedirectException, which will redirect the user's browser to a given location. | ||||
* | Remove usage of deprecated logger.warn method from codebase (#6271) | Andrew Morgan | 2019-10-31 | 1 | -1/+1 |
| | | | Replace every instance of `logger.warn` with `logger.warning` as the former is deprecated. | ||||
* | Trace non-JSON APIs, /media, /key etc | Erik Johnston | 2019-10-11 | 1 | -1/+1 |
| | |||||
* | Add opentracing to all client servlets (#5983) | Jorik Schellekens | 2019-09-05 | 1 | -1/+12 |
| | |||||
* | Fix servlet metric names (#5734) | Jorik Schellekens | 2019-07-24 | 1 | -13/+28 |
| | | | | | | | | | | * Fix servlet metric names Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Remove redundant check * Cover all return paths | ||||
* | Move logging utilities out of the side drawer of util/ and into logging/ (#5606) | Amber Brown | 2019-07-04 | 1 | -1/+1 |
| | |||||
* | Fix media repo breaking (#5593) | Amber Brown | 2019-07-02 | 1 | -10/+16 |
| | |||||
* | Make the http server handle coroutine-making REST servlets (#5475) | Amber Brown | 2019-06-29 | 1 | -36/+41 |
| | |||||
* | Run Black. (#5482) | Amber Brown | 2019-06-20 | 1 | -36/+44 |
| | |||||
* | Log tracebacks correctly | Erik Johnston | 2019-02-25 | 1 | -4/+4 |
| | |||||
* | Cleanup top level request exception logging | Erik Johnston | 2019-02-18 | 1 | -3/+3 |
| | | | | | | | | | | | Firstly, we always logged that the request was being handled via `JsonResource._async_render`, so we change that to use the servlet name we add to the request. Secondly, we pass the exception information to the logger rather than formatting it manually. This makes it consistent with other exception logging, allwoing logging hooks and formatters to access the exception information. | ||||
* | Fix URL preview bugs (type error when loading cache from db, content-type ↵ | Amber Brown | 2018-11-08 | 1 | -4/+4 |
| | | | | including quotes) (#4157) | ||||
* | Fix spurious exceptions when client closes conncetion | Erik Johnston | 2018-09-20 | 1 | -14/+35 |
| | | | | | | | | | If a HTTP handler throws an exception while processing a request we automatically write a JSON error response. If the handler had already started writing a response twisted throws an exception. We should check for this case and simple abort the connection if there was an error after the response had started being written. | ||||
* | Merge pull request #3701 from matrix-org/rav/use_producer_for_responses | Richard van der Hoff | 2018-08-17 | 1 | -4/+13 |
|\ | | | | | Use a producer to stream back responses | ||||
| * | Use a producer to stream back responses | Richard van der Hoff | 2018-08-15 | 1 | -4/+13 |
| | | | | | | | | | | | | | | | | | | | | The problem with dumping all of the json response into the Request object at once is that doing so starts the timeout for the next request to be received: so if it takes longer than 60s to stream back the response to the client, the client never gets it. The correct solution is to use a Producer; then the timeout is only started once all of the content is sent over the TCP connection. | ||||
* | | Refactor request logging code | Richard van der Hoff | 2018-08-15 | 1 | -47/+23 |
|/ | | | | | | | | | | | | | | | This commit moves a bunch of the logic for deciding when to log the receipt and completion of HTTP requests into SynapseRequest, rather than in the request handling wrappers. Advantages of this are: * we get logs for *all* requests (including OPTIONS and HEADs), rather than just those that end up hitting handlers we've remembered to decorate correctly. * when a request handler wires up a Producer (as the media stuff does currently, and as other things will do soon), we log at the point that all of the traffic has been sent to the client. | ||||
* | Be more careful which errors we send back over the C-S API | Richard van der Hoff | 2018-08-01 | 1 | -9/+5 |
| | | | | | | | | | | | | We really shouldn't be sending all CodeMessageExceptions back over the C-S API; it will include things like 401s which we shouldn't proxy. That means that we need to explicitly turn a few HttpResponseExceptions into SynapseErrors in the federation layer. The effect of the latter is that the matrix errcode will get passed through correctly to calling clients, which might help with some of the random M_UNKNOWN errors when trying to join rooms. | ||||
* | Python 3: Convert some unicode/bytes uses (#3569) | Amber Brown | 2018-08-02 | 1 | -10/+25 |
| | |||||
* | run isort | Amber Brown | 2018-07-09 | 1 | -19/+19 |
| | |||||
* | Attempt to be more performant on PyPy (#3462) | Amber Brown | 2018-06-28 | 1 | -3/+2 |
| | |||||
* | Merge remote-tracking branch 'origin/develop' into 3218-official-prom | Amber Brown | 2018-05-22 | 1 | -2/+74 |
|\ | |||||
| * | Merge pull request #3213 from matrix-org/rav/consent_handler | Richard van der Hoff | 2018-05-16 | 1 | -2/+74 |
| |\ | | | | | | | ConsentResource to gather policy consent from users | ||||
| | * | ConsentResource to gather policy consent from users | Richard van der Hoff | 2018-05-15 | 1 | -2/+74 |
| | | | | | | | | | | | | | | | Hopefully there are enough comments and docs in this that it makes sense on its own. | ||||
* | | | rest of the changes | Amber Brown | 2018-05-21 | 1 | -2/+2 |
|/ / | |||||
* / | Set Server header in SynapseRequest | Richard van der Hoff | 2018-05-10 | 1 | -10/+4 |
|/ | | | | | | | | | | | | (instead of everywhere that writes a response. Or rather, the subset of places which write responses where we haven't forgotten it). This also means that we don't have to have the mysterious version_string attribute in anything with a request handler. Unfortunately it does mean that we have to pass the version string wherever we instantiate a SynapseSite, which has been c&ped 150 times, but that is code that ought to be cleaned up anyway really. | ||||
* | Remove redundant request_handler decorator | Richard van der Hoff | 2018-05-10 | 1 | -7/+2 |
| | | | | | | This is needless complexity; we might as well use the wrapper directly. Also rename wrap_request_handler->wrap_json_request_handler. | ||||
* | Factor wrap_request_handler_with_logging out of wrap_request_handler | Richard van der Hoff | 2018-05-10 | 1 | -54/+66 |
| | | | | ... so that it can be used on non-JSON endpoints | ||||
* | Remove include_metrics param | Richard van der Hoff | 2018-05-10 | 1 | -17/+7 |
| | | | | | The metrics are now available via the request, so this is redundant and can go away at last. | ||||
* | Move outgoing_responses_counter handling to RequestMetrics | Richard van der Hoff | 2018-05-10 | 1 | -4/+0 |
| | | | | it's much neater there. | ||||
* | Bump requests_counter in wrapped_request_handler | Richard van der Hoff | 2018-05-10 | 1 | -4/+11 |
| | | | | less magic | ||||
* | Move RequestMetrics handling into SynapseRequest.processing() | Richard van der Hoff | 2018-05-10 | 1 | -13/+6 |
| | | | | | It fits quite nicely here, and opens the path to getting rid of the "include_metrics" mess. | ||||
* | Make RequestMetrics take a raw time rather than a clock | Richard van der Hoff | 2018-05-10 | 1 | -2/+2 |
| | | | | ... which is going to make it easier to move around. | ||||
* | Move request_id management into SynapseRequest | Richard van der Hoff | 2018-05-10 | 1 | -15/+16 |
| | |||||
* | Move RequestsMetrics to its own file | Richard van der Hoff | 2018-05-09 | 1 | -124/+4 |
| | | | | | | This is useful in its own right, because server.py is full of stuff; but more importantly, I want to do some refactoring that will cause a circular reference as it is. | ||||
* | more bytes strings | Adrian Tschira | 2018-04-29 | 1 | -1/+1 |
| | | | | Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | Merge pull request #3061 from NotAFile/add-some-byte-strings | Richard van der Hoff | 2018-04-09 | 1 | -2/+2 |
|\ | | | | | Add b prefixes to some strings that are bytes in py3 | ||||
| * | Add b prefixes to some strings that are bytes in py3 | Adrian Tschira | 2018-04-04 | 1 | -2/+2 |
| | | | | | | | | | | | | This has no effect on python2 Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | | Revert "Merge pull request #3066 from matrix-org/rav/remove_redundant_metrics" | Richard van der Hoff | 2018-04-09 | 1 | -0/+26 |
| | | | | | | | | | | | | | | We aren't ready to release this yet, so I'm reverting it for now. This reverts commit d1679a4ed7947b0814e0f2af9b888a16c588f1a1, reversing changes made to e089100c6231541c446e37e157dec8feed02d283. | ||||
* | | Add response size metrics | Erik Johnston | 2018-04-06 | 1 | -0/+7 |
| | | |||||
* | | Remove redundant metrics which were deprecated in 0.27.0. | Richard van der Hoff | 2018-04-04 | 1 | -26/+0 |
|/ | |||||
* | Add Cache-Control headers to all JSON APIs | Erik Johnston | 2018-03-21 | 1 | -0/+1 |
| | | | | | | | | | | | | It is especially important that sync requests don't get cached, as if a sync returns the same token given then the client will call sync with the same parameters again. If the previous response was cached it will get reused, resulting in the client tight looping making the same request and never making any progress. In general, clients will expect to get up to date data when requesting APIs, and so its safer to do a blanket no cache policy than only whitelisting APIs that we know will break things if they get cached. | ||||
* | Merge branch 'master' of github.com:matrix-org/synapse into develop | Erik Johnston | 2018-03-19 | 1 | -2/+0 |
|\ | |||||
| * | Replace ujson with simplejson | Erik Johnston | 2018-03-15 | 1 | -3/+2 |
| | | |||||
* | | Replace some ujson with simplejson to make it work | Erik Johnston | 2018-03-16 | 1 | -1/+2 |
| | | |||||
* | | Add some docstrings to help figure this out | Richard van der Hoff | 2018-03-09 | 1 | -2/+26 |
| | | |||||
* | | Add a metric which increments when a request is received | Richard van der Hoff | 2018-03-09 | 1 | -2/+10 |
| | | | | | | | | | | | | It's useful to know when there are peaks in incoming requests - which isn't quite the same as there being peaks in outgoing responses, due to the time taken to handle requests. | ||||
* | | refactor JsonResource | Richard van der Hoff | 2018-03-09 | 1 | -32/+46 |
| | | | | | | | | | | rephrase the OPTIONS and unrecognised request handling so that they look similar to the common flow. | ||||
* | | Merge remote-tracking branch 'origin/develop' into rav/track_db_scheduling | Richard van der Hoff | 2018-01-17 | 1 | -9/+9 |
|\ \ | |||||
| * \ | Merge pull request #2793 from matrix-org/rav/db_txn_time_in_millis | Richard van der Hoff | 2018-01-17 | 1 | -1/+3 |
| |\ \ | | | | | | | | | Track db txn time in millisecs | ||||
| * | | | Fix 'NoneType' object has no attribute 'writeHeaders' | Richard van der Hoff | 2018-01-16 | 1 | -9/+9 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid throwing a (harmless) exception when we try to write an error response to an http request where the client has disconnected. This comes up as a CRITICAL error in the logs which tends to mislead people into thinking there's an actual problem | ||||
* | | | | Track DB scheduling delay per-request | Richard van der Hoff | 2018-01-16 | 1 | -0/+7 |
| |/ / |/| | | | | | | | | | | | | | | For each request, track the amount of time spent waiting for a db connection. This entails adding it to the LoggingContext and we may as well add metrics for it while we are passing. | ||||
* | | | Track db txn time in millisecs | Richard van der Hoff | 2018-01-16 | 1 | -1/+3 |
|/ / | | | | | | | ... to reduce the amount of floating-point foo we do. | ||||
* | | Reorganise request and block metrics | Richard van der Hoff | 2018-01-15 | 1 | -14/+42 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to circumvent the number of duplicate foo:count metrics increasing without bounds, it's time for a rearrangement. The following are all deprecated, and replaced with synapse_util_metrics_block_count: synapse_util_metrics_block_timer:count synapse_util_metrics_block_ru_utime:count synapse_util_metrics_block_ru_stime:count synapse_util_metrics_block_db_txn_count:count synapse_util_metrics_block_db_txn_duration:count The following are all deprecated, and replaced with synapse_http_server_response_count: synapse_http_server_requests synapse_http_server_response_time:count synapse_http_server_response_ru_utime:count synapse_http_server_response_ru_stime:count synapse_http_server_response_db_txn_count:count synapse_http_server_response_db_txn_duration:count The following are renamed (the old metrics are kept for now, but deprecated): synapse_util_metrics_block_timer:total -> synapse_util_metrics_block_time_seconds synapse_util_metrics_block_ru_utime:total -> synapse_util_metrics_block_ru_utime_seconds synapse_util_metrics_block_ru_stime:total -> synapse_util_metrics_block_ru_stime_seconds synapse_util_metrics_block_db_txn_count:total -> synapse_util_metrics_block_db_txn_count synapse_util_metrics_block_db_txn_duration:total -> synapse_util_metrics_block_db_txn_duration_seconds synapse_http_server_response_time:total -> synapse_http_server_response_time_seconds synapse_http_server_response_ru_utime:total -> synapse_http_server_response_ru_utime_seconds synapse_http_server_response_ru_stime:total -> synapse_http_server_response_ru_stime_seconds synapse_http_server_response_db_txn_count:total -> synapse_http_server_response_db_txn_count synapse_http_server_response_db_txn_duration:total synapse_http_server_response_db_txn_duration_seconds | ||||
* | | Update http request metrics before calling servlet | Richard van der Hoff | 2018-01-09 | 1 | -11/+19 |
|/ | | | | | Make sure that we set the servlet name in the metrics object *before* calling the servlet, in case the servlet throws an exception. | ||||
* | Improve tracebacks on exceptions | Richard van der Hoff | 2017-11-27 | 1 | -3/+9 |
| | | | | | Use failure.Failure to recover our failure, which will give us a useful stacktrace, unlike the rethrown exception. | ||||
* | replace 'except:' with 'except Exception:' | Richard van der Hoff | 2017-10-23 | 1 | -1/+1 |
| | | | | what could possibly go wrong | ||||
* | Initial group server implementation | Erik Johnston | 2017-07-10 | 1 | -1/+3 |
| | |||||
* | allow Authorization header which handling got implemented in #1098 | Krombel | 2017-06-16 | 1 | -1/+1 |
| | | | | Signed-off-by: Matthias Kesler <krombel@krombel.de> | ||||
* | Set CORs headers on responses from the media repo | Mark Haines | 2016-11-02 | 1 | -5/+18 |
| | |||||
* | Add exception logging. Fix typo | Erik Johnston | 2016-08-22 | 1 | -3/+3 |
| | |||||
* | Allow request handlers to override metric name | Erik Johnston | 2016-08-22 | 1 | -21/+31 |
| | |||||
* | Use top level measure | Erik Johnston | 2016-08-22 | 1 | -15/+1 |
| | |||||
* | Add a top level measure | Erik Johnston | 2016-08-19 | 1 | -45/+46 |
| | |||||
* | Remove redundant measure | Erik Johnston | 2016-08-19 | 1 | -35/+34 |
| | |||||
* | Measure http.server render | Erik Johnston | 2016-08-19 | 1 | -28/+30 |
| | |||||
* | Log when adding listeners | Richard van der Hoff | 2016-07-25 | 1 | -0/+1 |
| | |||||
* | Fix more typos in per-request metrics | Mark Haines | 2016-04-28 | 1 | -4/+5 |
| | |||||
* | Fix typo in request metrics | Mark Haines | 2016-04-28 | 1 | -1/+1 |
| | |||||
* | Add a comment explaining why automatic metric reporting is disabled for ↵ | Mark Haines | 2016-04-28 | 1 | -0/+4 |
| | | | | JsonResource | ||||
* | Check if report_metrics is True | Mark Haines | 2016-04-28 | 1 | -3/+4 |
| | |||||
* | Report per request metrics for all of the things using request_handler | Mark Haines | 2016-04-28 | 1 | -38/+63 |
| | |||||
* | Intern all the things | Erik Johnston | 2016-03-23 | 1 | -4/+6 |
| | |||||
* | Catch the exceptions thrown by twisted when you write to a closed connection | Mark Haines | 2016-02-12 | 1 | -1/+20 |
| | |||||
* | Fix up logcontexts | Erik Johnston | 2016-02-08 | 1 | -3/+2 |
| | |||||
* | Add metrics to pushers | Erik Johnston | 2016-02-08 | 1 | -0/+10 |
| | |||||
* | Allowing tagging log contexts | Erik Johnston | 2016-02-03 | 1 | -15/+26 |
| | |||||
* | copyrights | Matthew Hodgson | 2016-01-07 | 1 | -1/+1 |
| | |||||
* | Fix typo | Daniel Wagner-Hall | 2015-12-16 | 1 | -1/+1 |
| | |||||
* | Include errcode on Internal Server Error | Daniel Wagner-Hall | 2015-12-14 | 1 | -2/+5 |
| | |||||
* | Track the time spent in the database per request. | Mark Haines | 2015-12-07 | 1 | -0/+15 |
| | | | | and track the number of transactions that request started. | ||||
* | Add metrics to track the cpu on the main thread consumed by each type of request | Mark Haines | 2015-12-04 | 1 | -0/+17 |
| | |||||
* | Host /unstable and /r0 versions of r0 APIs | Daniel Wagner-Hall | 2015-12-01 | 1 | -6/+7 |
| | |||||
* | Remove syutil dependency in favour of smaller single-purpose libraries | Mark Haines | 2015-08-24 | 1 | -6/+6 |
| | |||||
* | Don't 500 if a group is missing from the regex | Mark Haines | 2015-07-06 | 1 | -1/+1 |
| | |||||
* | Disable twisted access logging. Move access logging to SynapseRequest object | Erik Johnston | 2015-06-15 | 1 | -58/+32 |
| | |||||
* | Log more when we have processed the request | Erik Johnston | 2015-06-15 | 1 | -2/+12 |
| | |||||
* | Create SynapseRequest that overrides __repr__ to not print access_token | Erik Johnston | 2015-06-15 | 1 | -11/+3 |
| | |||||
* | Make http.server request logging more verbose, but redact access_tokens | Erik Johnston | 2015-06-15 | 1 | -2/+12 |
| | |||||
* | Remove log line | Erik Johnston | 2015-05-29 | 1 | -1/+0 |
| | |||||
* | Add config option to turn off freezing events. Use new encode_json api and ↵ | Erik Johnston | 2015-05-29 | 1 | -4/+13 |
| | | | | ujson.loads | ||||
* | Fix up leak. Add warnings. | Erik Johnston | 2015-05-08 | 1 | -2/+4 |
| | |||||
* | Unused import | David Baker | 2015-04-30 | 1 | -1/+1 |
| | |||||
* | Doesn't look like this is used anymore | David Baker | 2015-04-30 | 1 | -13/+0 |
| | |||||
* | Merge branch 'develop' into csauth | David Baker | 2015-04-24 | 1 | -97/+124 |
|\ | | | | | | | | | Conflicts: synapse/http/server.py | ||||
| * | Combine the request wrappers in rest/media/v1 and http/server into a single ↵ | Mark Haines | 2015-04-21 | 1 | -3/+12 |
| | | | | | | | | wrapper decorator | ||||
| * | Split out the JsonResource request logging and error handling into a ↵ | Mark Haines | 2015-04-21 | 1 | -94/+113 |
| | | | | | | | | separate wrapper function | ||||
* | | Explain how I justified to myself making JsonResource not always send JSON. | David Baker | 2015-04-01 | 1 | -0/+7 |
| | | |||||
* | | Completely replace fallback auth for C/S V2: | David Baker | 2015-04-01 | 1 | -2/+5 |
| | | | | | | | | | | | | | | * Now only the auth part goes to fallback, not the whole operation * Auth fallback is a normal API endpoint, not a static page * Params like the recaptcha pubkey can just live in the config Involves a little engineering on JsonResource so its servlets aren't always forced to return JSON. I should document this more, in fact I'll do that now. | ||||
* | | Make docs a bit more true | David Baker | 2015-03-31 | 1 | -1/+1 |
| | | |||||
* | | Grammar and deduplication | David Baker | 2015-03-31 | 1 | -5/+4 |
|/ | |||||
* | Add a DistributionMetric to HTTP request/response processing time in the server | Paul "LeoNerd" Evans | 2015-03-16 | 1 | -0/+9 |
| | |||||
* | actually uphold the bind_host parameter. in theory should make ipv6 binds ↵ | Matthew Hodgson | 2015-03-14 | 1 | -1/+6 |
| | | | | work like bind_host: 'fe80::1%lo0' | ||||
* | Appease pep8 | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -3/+5 |
| | |||||
* | Count incoming HTTP requests per servlet that responds | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -7/+11 |
| | |||||
* | 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 | -0/+14 |
| | | | | method and responses by method and response code | ||||
* | Slightly reduce the insane amounts of indentation in main http server ↵ | Paul "LeoNerd" Evans | 2015-03-05 | 1 | -21/+23 |
| | | | | response path, by 'continue'ing around a non-match or falling through | ||||
* | Use git aware version string in User-Agent and Server headers | Erik Johnston | 2015-02-18 | 1 | -9/+18 |
| | |||||
* | Fix bug where variable was not always defined | Erik Johnston | 2015-02-11 | 1 | -2/+1 |
| | |||||
* | Log when we receive a request, when we send a response and how long it took ↵ | Erik Johnston | 2015-02-09 | 1 | -2/+21 |
| | | | | to process it. | ||||
* | Oops: second part of commit dc938606 | David Baker | 2015-01-22 | 1 | -6/+2 |
| | |||||
* | Update copyright notices | Mark Haines | 2015-01-06 | 1 | -2/+2 |
| | |||||
* | Set a content-length for JSON responses | Mark Haines | 2015-01-06 | 1 | -0/+1 |
| | |||||
* | Include version in User-Agent and Server headers | Mark Haines | 2014-12-22 | 1 | -3/+6 |
| | |||||
* | Fix tests and remove debug logging | Erik Johnston | 2014-12-12 | 1 | -4/+0 |
| | |||||
* | Consistently url decode and decode as utf 8 the URL parts | Erik Johnston | 2014-12-12 | 1 | -1/+11 |
| | |||||
* | Get uploads working with new media repo | Mark Haines | 2014-12-02 | 1 | -2/+2 |
| | |||||
* | Write the upload portion of version 1 of the media repository | Mark Haines | 2014-12-02 | 1 | -7/+14 |
| | |||||
* | Fix pep8 codestyle warnings | Mark Haines | 2014-11-20 | 1 | -2/+1 |
| | |||||
* | Use module loggers rather than the root logger. Exceptions caused by bad ↵ | Mark Haines | 2014-11-20 | 1 | -1/+1 |
| | | | | clients shouldn't cause ERROR level logging. Fix sql logging to use 'repr' rather than 'str' | ||||
* | Add a request-id to each log line | Mark Haines | 2014-10-30 | 1 | -1/+12 |
| | |||||
* | fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org ↵ | Matthew Hodgson | 2014-09-03 | 1 | -1/+1 |
| | | | | hasn't been incorporated in time for launch. | ||||
* | move contentrepo class to it's own file | Mark Haines | 2014-09-03 | 1 | -162/+1 |
| | |||||
* | Set status message for ratelimit error responses | Mark Haines | 2014-09-03 | 1 | -5/+9 |
| | |||||
* | given everything's apparently gone https:// by default for c-s, change this ↵ | Matthew Hodgson | 2014-09-01 | 1 | -1/+5 |
| | | | | hardcoding... | ||||
* | missed a s#/matrix#/_matrix/g | Matthew Hodgson | 2014-08-31 | 1 | -1/+1 |
| | |||||
* | For the content repo, don't just use homeserver.hostname as that might not ↵ | Erik Johnston | 2014-08-24 | 1 | -1/+3 |
| | | | | include the port due to SRV. | ||||
* | Make the content repo work with in daemon mode. Return the full url on ↵ | Erik Johnston | 2014-08-22 | 1 | -6/+20 |
| | | | | upload. Update the webclient to use new content repo api. | ||||
* | Reduce the amount of incredibly spammy stack traces. Expected errors (e.g. ↵ | Kegan Dougal | 2014-08-19 | 1 | -1/+13 |
| | | | | SynapseErrors) shouldn't have their full trace logged every time. Don't send responses to disconnected requests. | ||||
* | Small amounts of cleanup and bonus round comments. | Kegan Dougal | 2014-08-18 | 1 | -4/+8 |
| | |||||
* | Implemented GETs for the ContentRepoResource. It all actually appears to be ↵ | Kegan Dougal | 2014-08-18 | 1 | -11/+60 |
| | | | | working. | ||||
* | hs: Make the uploads directory if it doesn't exist. Namespace uploads by the ↵ | Kegan Dougal | 2014-08-18 | 1 | -5/+46 |
| | | | | base64 encoded user id of the uploader. Make a reasonable attempt to retry clashing upload paths. Try to guess a sensible file extension depending on the content type. | ||||
* | Auth content uploads. Added a mapping function from request > filename. ↵ | Kegan Dougal | 2014-08-18 | 1 | -12/+32 |
| | | | | Added exception handling for content uploads. webclient: Only prefix the client API path on doRequest, not doBaseRequest (this would've broken the identity server auth too). Added matrixService.uploadContent. May not require mFileUpload anymore. | ||||
* | Added /matrix/content path, HS resource_for_content_repo attribute and ↵ | Kegan Dougal | 2014-08-18 | 1 | -0/+28 |
| | | | | FileUploadResource. Added stub methods. | ||||
* | If the web client is enabled, automatically redirect root '/' to the web ↵ | Kegan Dougal | 2014-08-14 | 1 | -0/+17 |
| | | | | client path. | ||||
* | Removed http_server from HomeServer. Updated unit tests to use either ↵ | Kegan Dougal | 2014-08-14 | 1 | -9/+3 |
| | | | | resource_for_federation or resource_for_client depending on what is being tested. | ||||
* | Start phasing out HttpServer: we should be using Resources instead. Added ↵ | Kegan Dougal | 2014-08-14 | 1 | -0/+5 |
| | | | | resource_for_client/federation/web_client to the HomeServer and hooked the C-S servlets to operate on resource_for_client. Dynamically construct the Resource tree. | ||||
* | add in whitespace after copyright statements to improve legibility | Matthew Hodgson | 2014-08-13 | 1 | -0/+1 |
| | |||||
* | Just say yes to OPTIONS requests, since we want to turn on CORS headers for ↵ | Erik Johnston | 2014-08-12 | 1 | -0/+5 |
| | | | | all paths | ||||
* | Reference Matrix Home Server | matrix.org | 2014-08-12 | 1 | -0/+181 |