Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add b prefixes to some strings that are bytes in py3 | Adrian Tschira | 2018-04-04 | 1 | -1/+1 |
| | | | | | | This has no effect on python2 Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | s/replication_client/federation_client/ | Erik Johnston | 2018-03-13 | 9 | -20/+20 |
| | |||||
* | s/replication_server/federation_server | Erik Johnston | 2018-03-13 | 1 | -1/+1 |
| | |||||
* | Fix tests | Erik Johnston | 2018-03-13 | 10 | -21/+22 |
| | |||||
* | Fix tests | Erik Johnston | 2018-03-13 | 2 | -10/+8 |
| | |||||
* | Fix comment typo | Richard van der Hoff | 2018-03-05 | 1 | -1/+1 |
| | |||||
* | Test and fix find_first_stream_ordering_after_ts | Richard van der Hoff | 2018-03-05 | 1 | -0/+67 |
| | | | | It seemed to suffer from a bunch of off-by-one errors. | ||||
* | Move RoomMemberHandler out of Handlers | Erik Johnston | 2018-03-01 | 1 | -1/+1 |
| | |||||
* | Merge pull request #2892 from matrix-org/erikj/batch_inserts_push_actions | Erik Johnston | 2018-02-26 | 2 | -5/+7 |
|\ | | | | | Batch inserts into event_push_actions_staging | ||||
| * | Fix unit tests | Erik Johnston | 2018-02-20 | 2 | -5/+7 |
| | | |||||
* | | Fix test | Erik Johnston | 2018-02-20 | 1 | -1/+1 |
|/ | |||||
* | Fix unit test | Erik Johnston | 2018-02-15 | 1 | -4/+6 |
| | |||||
* | Remove context.push_actions | Erik Johnston | 2018-02-15 | 1 | -1/+4 |
| | |||||
* | Merge pull request #2847 from matrix-org/erikj/separate_event_creation | Erik Johnston | 2018-02-06 | 2 | -8/+6 |
|\ | | | | | Split event creation into a separate handler | ||||
| * | s/_create_new_client_event/create_new_client_event/ | Erik Johnston | 2018-02-06 | 2 | -4/+4 |
| | | |||||
| * | Updates tests | Erik Johnston | 2018-02-05 | 2 | -8/+6 |
| | | |||||
* | | Store state groups separately from events (#2784) | Erik Johnston | 2018-02-06 | 2 | -69/+89 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Split state group persist into seperate storage func * Add per database engine code for state group id gen * Move store_state_group to StateReadStore This allows other workers to use it, and so resolve state. * Hook up store_state_group * Fix tests * Rename _store_mult_state_groups_txn * Rename StateGroupReadStore * Remove redundant _have_persisted_state_group_txn * Update comments * Comment compute_event_context * Set start val for state_group_id_seq ... otherwise we try to recreate old state groups * Update comments * Don't store state for outliers * Update comment * Update docstring as state groups are ints | ||||
* | | Merge pull request #2844 from matrix-org/rav/evicted_metrics | Richard van der Hoff | 2018-02-05 | 1 | -0/+12 |
|\ \ | |/ |/| | montoring metrics for number of cache evictions | ||||
| * | report metrics on number of cache evictions | Richard van der Hoff | 2018-02-05 | 1 | -0/+12 |
| | | |||||
* | | Fix broken unit test for media storage | Erik Johnston | 2018-02-05 | 1 | -1/+6 |
| | | |||||
* | | Merge pull request #2791 from matrix-org/erikj/media_storage_refactor | Erik Johnston | 2018-02-05 | 3 | -0/+109 |
|\ \ | | | | | | | Ensure media is in local cache before thumbnailing | ||||
| * | | Add unit tests | Erik Johnston | 2018-01-18 | 3 | -0/+109 |
| | | | |||||
* | | | Factor out resolve_state_groups to a separate handler | Richard van der Hoff | 2018-02-01 | 1 | -1/+3 |
| |/ |/| | | | | | | | | | We extract the storage-independent bits of the state group resolution out to a separate functiom, and stick it in a new handler, in preparation for its use from the storage layer. | ||||
* | | Add tests for user directory search | Richard van der Hoff | 2018-01-27 | 2 | -0/+89 |
| | | |||||
* | | Make it possible to run tests against postgres | Richard van der Hoff | 2018-01-27 | 1 | -9/+34 |
| | | |||||
* | | Create dbpool as normal in tests | Richard van der Hoff | 2018-01-27 | 2 | -45/+19 |
| | | | | | | | | | | | | | | | | ... instead of creating our own special SQLiteMemoryDbPool, whose purpose was a bit of a mystery. For some reason this makes one of the tests run slightly slower, so bump the sleep(). Sorry. | ||||
* | | Run on_new_connection for unit tests | Richard van der Hoff | 2018-01-27 | 1 | -7/+17 |
| | | | | | | | | | | Configure the connectionpool used for unit tests to run the `on_new_connection` function. | ||||
* | | Remove unused/bitrotted MemoryDataStore | Richard van der Hoff | 2018-01-26 | 1 | -151/+13 |
| | | | | | | | | This isn't used, and looks thoroughly bitrotted. | ||||
* | | Remove spurious unittest.DEBUG | Richard van der Hoff | 2018-01-26 | 1 | -1/+0 |
| | | |||||
* | | Merge pull request #2821 from matrix-org/rav/matthew_test_fixes | Richard van der Hoff | 2018-01-22 | 1 | -2/+6 |
|\ \ | | | | | | | Matthew's fixes to the unit tests | ||||
| * | | Matthew's fixes to the unit tests | Richard van der Hoff | 2018-01-22 | 1 | -2/+6 |
| | | | | | | | | | | | | Extracted from https://github.com/matrix-org/synapse/pull/2820 | ||||
* | | | Add federation_domain_whitelist option (#2820) | Matthew Hodgson | 2018-01-22 | 1 | -0/+1 |
|/ / | | | | | | | | | | | 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 | ||||
* | | Merge pull request #2813 from matrix-org/matthew/registrations_require_3pid | Matthew Hodgson | 2018-01-22 | 1 | -0/+1 |
|\ \ | | | | | | | add registrations_require_3pid and allow_local_3pids | ||||
| * | | mock registrations_require_3pid | Matthew Hodgson | 2018-01-19 | 1 | -0/+1 |
| | | | |||||
* | | | Merge pull request #2804 from matrix-org/erikj/file_consumer | Erik Johnston | 2018-01-18 | 1 | -0/+176 |
|\ \ \ | |/ / |/| / | |/ | Add decent impl of a FileConsumer | ||||
| * | Move test stuff to tests | Erik Johnston | 2018-01-18 | 1 | -8/+46 |
| | | |||||
| * | Add decent impl of a FileConsumer | Erik Johnston | 2018-01-17 | 1 | -0/+138 |
| | | | | | | | | | | | | | | | | | | | | Twisted core doesn't have a general purpose one, so we need to write one ourselves. Features: - All writing happens in background thread - Supports both push and pull producers - Push producers get paused if the consumer falls behind | ||||
* | | Optimise LoggingContext creation and copying | Richard van der Hoff | 2018-01-16 | 2 | -15/+15 |
|/ | | | | | | | | It turns out that the only thing we use the __dict__ of LoggingContext for is `request`, and given we create lots of LoggingContexts and then copy them every time we do a db transaction or log line, using the __dict__ seems a bit redundant. Let's try to optimise things by making the request attribute explicit. | ||||
* | Merge pull request #2765 from matrix-org/rav/fix_room_uts | Richard van der Hoff | 2018-01-09 | 3 | -4/+9 |
|\ | | | | | Fix flaky test_rooms UTs | ||||
| * | enable twisted delayedcall debugging in UTs | Richard van der Hoff | 2018-01-09 | 1 | -1/+5 |
| | | |||||
| * | Remove dead code | Richard van der Hoff | 2018-01-09 | 1 | -3/+0 |
| | | | | | | | | pointless function is pointless | ||||
| * | Disable user_directory updates for UTs | Richard van der Hoff | 2018-01-09 | 1 | -0/+4 |
| | | | | | | | | | | Fix flakiness in the UTs caused by the user_directory being updated in the background | ||||
* | | Fix broken config UTs | Richard van der Hoff | 2018-01-09 | 1 | -1/+16 |
|/ | | | | | https://github.com/matrix-org/synapse/pull/2755 broke log-config generation, which in turn broke the unit tests. | ||||
* | Merge pull request #2723 from matrix-org/matthew/search-all-local-users | Matthew Hodgson | 2017-12-05 | 1 | -1/+13 |
|\ | | | | | Add all local users to the user_directory and optionally search them | ||||
| * | try make tests work a bit more... | Matthew Hodgson | 2017-12-04 | 1 | -0/+12 |
| | | |||||
| * | erik told me to | Matthew Hodgson | 2017-12-04 | 1 | -1/+1 |
| | | |||||
* | | Refactor UI auth implementation | Richard van der Hoff | 2017-12-05 | 1 | -4/+7 |
|/ | | | | | Instead of returning False when auth is incomplete, throw an exception which can be caught with a wrapper. | ||||
* | Add extra space before inline comment | Luke Barnard | 2017-11-16 | 1 | -1/+1 |
| | |||||
* | Fix tests | Luke Barnard | 2017-11-16 | 1 | -0/+1 |
| | |||||
* | Fix tests for Store.__init__ update | Richard van der Hoff | 2017-11-13 | 5 | -11/+11 |
| | | | | Fix the test to pass the right number of args to the Store constructors | ||||
* | Fix appservice tests to account for new behavior of notify_interested_services | Ilya Zhuravlev | 2017-11-02 | 1 | -3/+12 |
| | |||||
* | Fix tests for refresh_token removal | Richard van der Hoff | 2017-11-01 | 1 | -3/+3 |
| | |||||
* | fix tests | Richard van der Hoff | 2017-10-31 | 1 | -0/+1 |
| | |||||
* | replace 'except:' with 'except Exception:' | Richard van der Hoff | 2017-10-23 | 2 | -5/+5 |
| | | | | what could possibly go wrong | ||||
* | Validate group ids when parsing | Richard van der Hoff | 2017-10-21 | 1 | -1/+23 |
| | | | | | May as well do it whenever we parse a Group ID. We check the sigil and basic structure here so it makes sense to check the grammar in the same place. | ||||
* | Merge pull request #2546 from matrix-org/rav/remove_dead_event_injector | Richard van der Hoff | 2017-10-17 | 1 | -76/+0 |
|\ | | | | | Remove dead class | ||||
| * | Remove dead class | Richard van der Hoff | 2017-10-17 | 1 | -76/+0 |
| | | | | | | | | This isn't used anywhere. | ||||
* | | Merge pull request #2547 from matrix-org/rav/test_make_deferred_yieldable | Richard van der Hoff | 2017-10-17 | 1 | -0/+38 |
|\ \ | | | | | | | Add some tests for make_deferred_yieldable | ||||
| * | | Fix name of test_logcontext | Richard van der Hoff | 2017-10-17 | 1 | -0/+0 |
| | | | | | | | | | | | | The file under test is logcontext.py, not log_context.py | ||||
| * | | Add some tests for make_deferred_yieldable | Richard van der Hoff | 2017-10-17 | 1 | -0/+38 |
| |/ | |||||
* / | Fix test | David Baker | 2017-10-17 | 1 | -0/+1 |
|/ | |||||
* | Merge pull request #2532 from matrix-org/rav/fix_linearizer | Richard van der Hoff | 2017-10-11 | 1 | -4/+24 |
|\ | | | | | Fix stackoverflow and logcontexts from linearizer | ||||
| * | Fix stackoverflow and logcontexts from linearizer | Richard van der Hoff | 2017-10-11 | 1 | -4/+24 |
| | | | | | | | | | | | | | | 1. make it not blow out the stack when there are more than 50 things waiting for a lock. Fixes https://github.com/matrix-org/synapse/issues/2505. 2. Make it not mess up the log contexts. | ||||
* | | Merge branch 'develop' into erikj/groups_merged | David Baker | 2017-10-02 | 3 | -13/+187 |
|\| | |||||
| * | Do an AAAA lookup on SRV record targets (#2462) | Richard van der Hoff | 2017-09-22 | 1 | -4/+22 |
| | | | | | | | | | | Support SRV records which point at AAAA records, as well as A records. Fixes https://github.com/matrix-org/synapse/issues/2405 | ||||
| * | Add some more tests for Keyring | Richard van der Hoff | 2017-09-20 | 1 | -37/+140 |
| | | |||||
| * | Fix concurrent server_key requests (#2458) | Richard van der Hoff | 2017-09-19 | 1 | -3/+55 |
| | | | | | | | | Fix a bug where we could end up firing off multiple requests for server_keys for the same server at the same time. | ||||
| * | Add a config option to block all room invites (#2457) | Richard van der Hoff | 2017-09-19 | 1 | -0/+1 |
| | | | | | | | | | | - allows sysadmins the ability to lock down their servers so that people can't send their users room invites. | ||||
* | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/groups_merged | Erik Johnston | 2017-09-19 | 1 | -0/+74 |
|\| | |||||
| * | Clean up and document handling of logcontexts in Keyring (#2452) | Richard van der Hoff | 2017-09-18 | 1 | -0/+74 |
| | | | | | | | | | | | | I'm still unclear on what the intended behaviour for `verify_json_objects_for_server` is, but at least I now understand the behaviour of most of the things it calls... | ||||
* | | Split out profile handler to fix tests | Erik Johnston | 2017-08-25 | 3 | -7/+5 |
| | | |||||
* | | Add groups to sync stream | Erik Johnston | 2017-07-20 | 1 | -2/+2 |
|/ | |||||
* | Merge pull request #2309 from matrix-org/erikj/user_ip_repl | Erik Johnston | 2017-07-06 | 2 | -6/+2 |
|\ | | | | | Fix up user_ip replication commands | ||||
| * | Fix up | Erik Johnston | 2017-06-27 | 2 | -6/+2 |
| | | |||||
* | | Update test | Erik Johnston | 2017-07-04 | 1 | -1/+1 |
|/ | |||||
* | Fix up client ips to read from pending data | Erik Johnston | 2017-06-27 | 1 | -4/+1 |
| | |||||
* | Merge pull request #2281 from matrix-org/erikj/phone_home_stats | Erik Johnston | 2017-06-15 | 1 | -115/+0 |
|\ | | | | | Fix phone home stats | ||||
| * | Remove unhelpful test | Erik Johnston | 2017-06-15 | 1 | -115/+0 |
| | | |||||
* | | Fix typing tests | Erik Johnston | 2017-05-26 | 1 | -0/+2 |
| | | |||||
* | | Only load jinja2 templates once | Erik Johnston | 2017-05-22 | 1 | -0/+1 |
| | | | | | | | | | | Instead of every time a new email pusher is created, as loading jinja2 templates is slow. | ||||
* | | Make get_state_groups_from_groups faster. | Erik Johnston | 2017-05-17 | 1 | -1/+1 |
|/ | | | | | | | | | Most of the time was spent copying a dict to filter out sentinel values that indicated that keys did not exist in the dict. The sentinel values were added to ensure that we cached the non-existence of keys. By updating DictionaryCache to keep track of which keys were known to not exist itself we can remove a dictionary copy. | ||||
* | Do some logging when one-time-keys get claimed | Richard van der Hoff | 2017-05-09 | 1 | -0/+34 |
| | | | | | might help us figure out if https://github.com/vector-im/riot-web/issues/3868 has happened. | ||||
* | Allow clients to upload one-time-keys with new sigs | Richard van der Hoff | 2017-05-09 | 1 | -0/+98 |
| | | | | | | | When a client retries a key upload, don't give an error if the signature has changed (but the key is the same). Fixes https://github.com/vector-im/riot-android/issues/1208, hopefully. | ||||
* | Add more granular event send metrics | Erik Johnston | 2017-05-02 | 2 | -3/+3 |
| | |||||
* | Remove test of replication resource | Erik Johnston | 2017-04-11 | 1 | -204/+0 |
| | |||||
* | Merge pull request #2097 from matrix-org/erikj/repl_tcp_client | Erik Johnston | 2017-04-05 | 1 | -8/+22 |
|\ | | | | | Move to using TCP replication | ||||
| * | Change slave storage to use new replication interface | Erik Johnston | 2017-04-03 | 1 | -8/+22 |
| | | | | | | | | | | | | | | As the TCP replication uses a slightly different API and streams than the HTTP replication. This breaks HTTP replication. | ||||
* | | Merge pull request #2075 from matrix-org/erikj/cache_speed | Erik Johnston | 2017-03-31 | 3 | -2/+42 |
|\ \ | | | | | | | Speed up cached function access | ||||
| * | | Fix up tests | Erik Johnston | 2017-03-30 | 3 | -2/+42 |
| | | | |||||
* | | | Merge pull request #2076 from matrix-org/erikj/as_perf | Erik Johnston | 2017-03-31 | 1 | -1/+3 |
|\ \ \ | |/ / |/| | | Make AS's faster | ||||
| * | | Compile the regex's used in ASes | Erik Johnston | 2017-03-28 | 1 | -1/+3 |
| |/ | |||||
* / | Fix the logcontext handling in the cache wrappers (#2077) | Richard van der Hoff | 2017-03-30 | 1 | -0/+91 |
|/ | | | | | | | The cache wrappers had a habit of leaking the logcontext into the reactor while the lookup function was running, and then not restoring it correctly when the lookup function had completed. It's all the fault of `preserve_context_over_{fn,deferred}` which are basically a bit broken. | ||||
* | Merge pull request #2054 from matrix-org/erikj/user_iter_cursor | Erik Johnston | 2017-03-24 | 1 | -2/+2 |
|\ | | | | | Reduce some CPU work on DB threads | ||||
| * | User Cursor.__iter__ instead of fetchall | Erik Johnston | 2017-03-23 | 1 | -2/+2 |
| | | | | | | | | This prevents unnecessary construction of lists | ||||
* | | Merge pull request #2050 from matrix-org/rav/federation_backoff | Richard van der Hoff | 2017-03-23 | 3 | -1/+5 |
|\ \ | | | | | | | push federation retry limiter down to matrixfederationclient | ||||
| * | | fix tests | Richard van der Hoff | 2017-03-23 | 2 | -1/+3 |
| | | | |||||
| * | | push federation retry limiter down to matrixfederationclient | Richard van der Hoff | 2017-03-23 | 1 | -0/+2 |
| | | | | | | | | | | | | | | | rather than having to instrument everywhere we make a federation call, make the MatrixFederationHttpClient manage the retry limiter. | ||||
* | | | Merge pull request #2052 from matrix-org/rav/time_bound_deferred | Richard van der Hoff | 2017-03-23 | 1 | -0/+33 |
|\ \ \ | | | | | | | | | Fix time_bound_deferred to throw the right exception | ||||
| * | | | Fix time_bound_deferred to throw the right exception | Richard van der Hoff | 2017-03-23 | 1 | -0/+33 |
| |/ / | | | | | | | | | | | | | | | | Due to a failure to instantiate DeferredTimedOutError, time_bound_deferred would throw a CancelledError when the deferred timed out, which was rather confusing. | ||||
* | | | use jsonschema.FormatChecker for RoomID and UserID strings | pik | 2017-03-23 | 2 | -6/+13 |
| | | | | | | | | | | | | | | | | | | * use a valid filter in rest/client/v2_alpha test Signed-off-by: pik <alexander.maznev@gmail.com> | ||||
* | | | Add valid filter tests, flake8, fix typo | pik | 2017-03-23 | 1 | -5/+49 |
| | | | | | | | | | | | | Signed-off-by: pik <alexander.maznev@gmail.com> | ||||
* | | | check_valid_filter using JSONSchema | pik | 2017-03-23 | 1 | -1/+17 |
| |/ |/| | | | | | | | | | * add invalid filter tests Signed-off-by: pik <alexander.maznev@gmail.com> | ||||
* | | Fix caching of remote servers' signature keys | Richard van der Hoff | 2017-03-22 | 3 | -0/+153 |
|/ | | | | | | | | | The `@cached` decorator on `KeyStore._get_server_verify_key` was missing its `num_args` parameter, which meant that it was returning the wrong key for any server which had more than one recorded key. By way of a fix, change the default for `num_args` to be *all* arguments. To implement that, factor out a common base class for `CacheDescriptor` and `CacheListDescriptor`. | ||||
* | Merge pull request #2033 from matrix-org/erikj/repl_speed | Erik Johnston | 2017-03-21 | 1 | -1/+1 |
|\ | | | | | Don't send the full event json over replication | ||||
| * | Fix unit test | Erik Johnston | 2017-03-20 | 1 | -1/+1 |
| | | |||||
* | | Stop preserve_fn leaking context into the reactor | Richard van der Hoff | 2017-03-18 | 1 | -0/+61 |
|/ | | | | | | | | Fix a bug in ``logcontext.preserve_fn`` which made it leak context into the reactor, and add a test for it. Also, get rid of ``logcontext.reset_context_after_deferred``, which tried to do the same thing but had its own, different, set of bugs. | ||||
* | Modify test_user_sync so it doesn't look at last_active_ts over ↵ | Will Hunt | 2017-03-15 | 1 | -1/+1 |
| | | | | last_user_sync_ts | ||||
* | Aggregate event push actions | Erik Johnston | 2017-02-14 | 1 | -0/+86 |
| | |||||
* | Fix email push in pusher worker | Erik Johnston | 2017-02-02 | 2 | -12/+7 |
| | | | | | | This was broken when device list updates were implemented, as Mailer could no longer instantiate an AuthHandler due to a dependency on federation sending. | ||||
* | Remote membership tests for replication | Erik Johnston | 2017-01-31 | 1 | -43/+0 |
| | | | | | This is because it now relies of the caches stream, which only works on postgres. We are trying to test with sqlite. | ||||
* | Fix unit tests | Erik Johnston | 2017-01-30 | 1 | -4/+4 |
| | |||||
* | Fix unit tests | Erik Johnston | 2017-01-26 | 1 | -0/+17 |
| | |||||
* | Implement device key caching over federation | Erik Johnston | 2017-01-26 | 4 | -14/+27 |
| | |||||
* | Add basic implementation of local device list changes | Erik Johnston | 2017-01-25 | 2 | -2/+5 |
| | |||||
* | Insert delta of current_state_events to be more efficient | Erik Johnston | 2017-01-20 | 1 | -29/+0 |
| | |||||
* | Derive current_state_events from state groups | Erik Johnston | 2017-01-20 | 1 | -28/+17 |
| | |||||
* | Merge pull request #1818 from matrix-org/erikj/state_auth_splitout_split | Erik Johnston | 2017-01-18 | 2 | -2/+25 |
|\ | | | | | Optimise state resolution | ||||
| * | Optimise state resolution | Erik Johnston | 2017-01-17 | 2 | -2/+25 |
| | | |||||
* | | Tidy up test | Erik Johnston | 2017-01-17 | 1 | -12/+12 |
| | | |||||
* | | Speed up cache size calculation | Erik Johnston | 2017-01-17 | 2 | -16/+20 |
| | | | | | | | | | | | | | | | | | | | | | | Instead of calculating the size of the cache repeatedly, which can take a long time now that it can use a callback, instead cache the size and update that on insertion and deletion. This requires changing the cache descriptors to have two caches, one for pending deferreds and the other for the actual values. There's no reason to evict from the pending deferreds as they won't take up any more memory. | ||||
* | | Add ExpiringCache tests | Erik Johnston | 2017-01-16 | 1 | -0/+84 |
| | | |||||
* | | Optionally measure size of cache by sum of length of values | Erik Johnston | 2017-01-13 | 1 | -0/+25 |
|/ | |||||
* | Linearize updates to membership via PUT /state/ | Erik Johnston | 2017-01-09 | 2 | -3/+6 |
| | |||||
* | Fix crash in url preview when html tag has no text | Marcin Bachry | 2016-12-14 | 1 | -0/+50 |
| | | | | Signed-off-by: Marcin Bachry <hegel666@gmail.com> | ||||
* | Merge pull request #1620 from matrix-org/erikj/concurrent_room_access | Erik Johnston | 2016-12-12 | 1 | -0/+70 |
|\ | | | | | Limit the number of events that can be created on a given room concurrently | ||||
| * | Add Limiter: limit concurrent access to resource | Erik Johnston | 2016-11-10 | 1 | -0/+70 |
| | | |||||
* | | Fix unit tests | Erik Johnston | 2016-12-09 | 1 | -0/+4 |
| | | |||||
* | | Prevent user tokens being used as guest tokens (#1675) | Richard van der Hoff | 2016-12-06 | 1 | -15/+78 |
| | | | | | | | | | | Make sure that a user cannot pretend to be a guest by adding 'guest = True' caveats. | ||||
* | | test_preview: Fix incorrect wrapping | Johannes Löthberg | 2016-12-05 | 1 | -2/+2 |
| | | | | | | | | | | | | | | The old test expected an incorrect wrapping due to the preview function not using unicode properly, so it got the wrong length. Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> | ||||
* | | Make test_preview use unicode strings | Johannes Löthberg | 2016-12-05 | 1 | -68/+68 |
| | | | | | | | | Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> | ||||
* | | fix imports | Richard van der Hoff | 2016-11-30 | 1 | -3/+0 |
| | | |||||
* | | Rip out more refresh_token code | Richard van der Hoff | 2016-11-30 | 1 | -55/+0 |
| | | | | | | | | | | | | | | | | We might as well treat all refresh_tokens as invalid. Just return a 403 from /tokenrefresh, so that we don't have a load of dead, untestable code hanging around. Still TODO: removing the table from the schema. | ||||
* | | Merge branch 'develop' into rav/no_more_refresh_tokens | Richard van der Hoff | 2016-11-30 | 2 | -7/+5 |
|\ \ | |||||
| * | | Stop putting a time caveat on access tokens | Richard van der Hoff | 2016-11-29 | 2 | -7/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | The 'time' caveat on the access tokens was something of a lie, since we weren't enforcing it; more pertinently its presence stops us ever adding useful time caveats. Let's move in the right direction by not lying in our caveats. | ||||
* | | | Stop generating refresh tokens | Richard van der Hoff | 2016-11-28 | 1 | -8/+4 |
|/ / | | | | | | | | | | | | | Since we're not doing refresh tokens any more, we should start killing off the dead code paths. /tokenrefresh itself is a bit of a thornier subject, since there might be apps out there using it, but we can at least not generate refresh tokens on new logins. | ||||
* | | Shuffle receipt handler around so that worker apps don't need to load it | Erik Johnston | 2016-11-23 | 1 | -1/+1 |
| | | |||||
* | | Fix tests | Erik Johnston | 2016-11-23 | 1 | -0/+1 |
| | | |||||
* | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2016-11-23 | 1 | -1/+169 |
|\ \ | | | | | | | | | | erikj/split_out_fed_txn | ||||
| * | | Review comments | Kegan Dougal | 2016-11-22 | 1 | -10/+2 |
| | | | |||||
| * | | More tests | Kegan Dougal | 2016-11-22 | 1 | -1/+56 |
| | | | |||||
| * | | Add remaining tests | Kegan Dougal | 2016-11-21 | 1 | -4/+70 |
| | | | |||||
| * | | Start adding some tests | Kegan Dougal | 2016-11-21 | 1 | -3/+37 |
| | | | |||||
| * | | Move event_fields filtering to serialize_event | Kegan Dougal | 2016-11-21 | 1 | -0/+21 |
| | | | | | | | | | | | | Also make it an inclusive not exclusive filter, as the spec demands. | ||||
* | | | Fix tests and flake8 | Erik Johnston | 2016-11-22 | 1 | -0/+1 |
| | | | |||||
* | | | Fix tests | Erik Johnston | 2016-11-21 | 2 | -5/+19 |
|/ / | |||||
* / | Clean transactions based on time. Add HttpTransactionCache tests. | Kegan Dougal | 2016-11-14 | 1 | -0/+69 |
|/ | |||||
* | Merge pull request #1098 from matrix-org/markjh/bearer_token | Mark Haines | 2016-10-25 | 5 | -14/+29 |
|\ | | | | | Allow clients to supply access_tokens as headers | ||||
| * | Fix unit tests | Mark Haines | 2016-09-12 | 5 | -14/+29 |
| | | |||||
* | | Merge pull request #1164 from pik/error-codes | Erik Johnston | 2016-10-19 | 2 | -41/+88 |
|\ \ | | | | | | | Clarify Error codes for GET /filter/ | ||||
| * | | Refactor test_filter to use real DataStore | pik | 2016-10-18 | 1 | -43/+81 |
| | | | | | | | | | | | | * add tests for filter api errors | ||||
| * | | Fix MockHttpRequest always returning M_UNKNOWN errcode in testing | pik | 2016-10-14 | 1 | -1/+1 |
| | | | |||||
| * | | Error codes for filters | Alexander Maznev | 2016-10-14 | 1 | -3/+12 |
| | | | | | | | | | | | | | | | | | | * add tests Signed-off-by: Alexander Maznev <alexander.maznev@gmail.com> | ||||
* | | | Merge pull request #1155 from matrix-org/erikj/pluggable_pwd_auth | Erik Johnston | 2016-10-12 | 2 | -3/+15 |
|\ \ \ | | | | | | | | | Implement pluggable password auth | ||||
| * | | | Implement pluggable password auth | Erik Johnston | 2016-10-03 | 2 | -3/+15 |
| |/ / | | | | | | | | | | | | | | | | Allows delegating the password auth to an external module. This also moves the LDAP auth to using this system, allowing it to be removed from the synapse tree entirely in the future. | ||||
* | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2016-10-11 | 7 | -41/+29 |
|\ \ \ | | | | | | | | | | | | | erikj/replication_noop | ||||
| * | | | rest/client/v1/register: use the correct requester in createUser | Patrik Oldsberg | 2016-10-06 | 2 | -24/+14 |
| | | | | | | | | | | | | | | | | Signed-off-by: Patrik Oldsberg <patrik.oldsberg@ericsson.com> | ||||
| * | | | storage/appservice: make appservice methods only relying on the cache ↵ | Patrik Oldsberg | 2016-10-06 | 2 | -7/+4 |
| |/ / | | | | | | | | | | synchronous | ||||
| * / | Time out typing over federation | Erik Johnston | 2016-09-23 | 3 | -10/+11 |
| |/ | |||||
* / | Reduce DB hits for replication | Erik Johnston | 2016-09-23 | 2 | -3/+3 |
|/ | | | | | | | | | | | | | | Some streams will occaisonally advance their positions without actually having any new rows to send over federation. Currently this means that the token will not advance on the workers, leading to them repeatedly sending a slightly out of date token. This in turns requires the master to hit the DB to check if there are any new rows, rather than hitting the no op logic where we check if the given token matches the current token. This commit changes the API to always return an entry if the position for a stream has changed, allowing workers to advance their tokens correctly. | ||||
* | Fix unit tests | Mark Haines | 2016-09-06 | 1 | -0/+8 |
| | |||||
* | Correctly handle the difference between prev and current state | Erik Johnston | 2016-08-31 | 3 | -32/+20 |
| | |||||
* | Don't notify for online -> online transitions. | Erik Johnston | 2016-08-30 | 1 | -0/+47 |
| | | | | | Specifically, if currently_active remains true then we should not notify if only the last active time changes. | ||||
* | Merge pull request #1049 from matrix-org/erikj/presence_users_in_room | Erik Johnston | 2016-08-30 | 2 | -41/+6 |
|\ | | | | | Use state handler instead of get_users_in_room/get_joined_hosts | ||||
| * | Fix unit tests | Erik Johnston | 2016-08-26 | 2 | -41/+6 |
| | | |||||
* | | Merge remote-tracking branch 'origin/develop' into markjh/direct_to_device | Mark Haines | 2016-08-26 | 2 | -51/+78 |
|\| | |||||
| * | Fix tests | Erik Johnston | 2016-08-26 | 1 | -5/+46 |
| | | |||||
| * | Replace context.current_state with context.current_state_ids | Erik Johnston | 2016-08-25 | 2 | -48/+34 |
| | | |||||
* | | More 0_0 in tests | Mark Haines | 2016-08-25 | 1 | -2/+2 |
|/ | |||||
* | Ensure invalidation list does not grow unboundedly | Erik Johnston | 2016-08-19 | 2 | -0/+88 |
| | |||||
* | Rename to on_invalidate | Erik Johnston | 2016-08-19 | 1 | -2/+2 |
| | |||||
* | Make cache_context an explicit option | Erik Johnston | 2016-08-19 | 1 | -2/+2 |
| | |||||
* | Remove lru option | Erik Johnston | 2016-08-19 | 1 | -1/+1 |
| | |||||
* | Add concept of cache contexts | Erik Johnston | 2016-08-19 | 2 | -0/+179 |
| | |||||
* | Make AppserviceHandler stream events from database | Erik Johnston | 2016-08-18 | 1 | -3/+6 |
| | | | | | | | | | This is for two reasons: 1. Suppresses duplicates correctly, as the notifier doesn't do any duplicate suppression. 2. Makes it easier to connect the AppserviceHandler to the replication stream. | ||||
* | Make notify_interested_services faster | Erik Johnston | 2016-08-17 | 2 | -68/+54 |
| | |||||
* | Clean up _ServiceQueuer | Erik Johnston | 2016-08-17 | 1 | -1/+1 |
| | |||||
* | Update unit tests | Erik Johnston | 2016-08-17 | 1 | -0/+2 |
| | |||||
* | Fix up preview URL API. Add tests. | Erik Johnston | 2016-08-16 | 1 | -1/+79 |
| | | | | | | | | | This includes: - Splitting out methods of a class into stand alone functions, to make them easier to test. - Adding unit tests to split out functions, testing HTML -> preview. - Handle the fact that elements in lxml may have tail text. | ||||
* | PEP8 | Richard van der Hoff | 2016-08-08 | 1 | -0/+1 |
| | |||||
* | Fix login with m.login.token | Richard van der Hoff | 2016-08-08 | 1 | -4/+49 |
| | | | | | login with token (as used by CAS auth) was broken by 067596d, such that it always returned a 401. | ||||
* | Test summarization | Erik Johnston | 2016-08-04 | 1 | -0/+139 |
| | |||||
* | PEP8 | Richard van der Hoff | 2016-08-03 | 1 | -2/+0 |
| | |||||
* | Include device name in /keys/query response | Richard van der Hoff | 2016-08-03 | 1 | -0/+92 |
| | | | | Add an 'unsigned' section which includes the device display name. | ||||
* | keys/query: return all users which were asked for | Richard van der Hoff | 2016-08-03 | 1 | -0/+46 |
| | | | | | | In the situation where all of a user's devices get deleted, we want to indicate this to a client, so we want to return an empty dictionary, rather than nothing at all. | ||||
* | Create separate methods for getting messages to push | Mark Haines | 2016-07-28 | 1 | -0/+41 |
| | | | | | | | | | | | for the email and http pushers rather than trying to make a single method that will work with their conflicting requirements. The http pusher needs to get the messages in ascending stream order, and doesn't want to miss a message. The email pusher needs to get the messages in descending timestamp order, and doesn't mind if it misses messages. | ||||
* | Add `create_requester` function | Richard van der Hoff | 2016-07-26 | 4 | -26/+22 |
| | | | | | Wrap the `Requester` constructor with a function which provides sensible defaults, and use it throughout | ||||
* | Delete refresh tokens when deleting devices | Richard van der Hoff | 2016-07-26 | 1 | -0/+34 |
| | |||||
* | Implement updating devices | Richard van der Hoff | 2016-07-26 | 2 | -0/+52 |
| | | | | You can update the displayname of devices now. | ||||
* | Implement deleting devices | Richard van der Hoff | 2016-07-26 | 2 | -6/+30 |
| | |||||
* | Merge pull request #945 from matrix-org/rav/background_reindex | Richard van der Hoff | 2016-07-25 | 1 | -5/+15 |
|\ | | | | | Create index on user_ips in the background | ||||
| * | PEP8 | Richard van der Hoff | 2016-07-25 | 1 | -1/+1 |
| | | |||||
| * | Fix background_update tests | Richard van der Hoff | 2016-07-25 | 1 | -6/+16 |
| | | | | | | | | | | | | A bit of a cleanup for background_updates, and make sure that the real background updates have run before we start the unit tests, so that they don't interfere with the tests. | ||||
* | | Slightly saner logging for unittests | Richard van der Hoff | 2016-07-25 | 1 | -4/+7 |
|/ | | | | | | | 1. Give the handler used for logging in unit tests a formatter, so that the output is slightly more meaningful 2. Log some synapse.storage stuff, because it's useful. | ||||
* | make /devices return a list | Richard van der Hoff | 2016-07-21 | 1 | -4/+7 |
| | | | | Turns out I specced this to return a list of devices rather than a dict of them | ||||
* | Fix PEP8 errors | Richard van der Hoff | 2016-07-21 | 1 | -0/+1 |
| | |||||
* | Implement GET /device/{deviceId} | Richard van der Hoff | 2016-07-21 | 1 | -10/+27 |
| | |||||
* | Fix PEP8 errors | Richard van der Hoff | 2016-07-20 | 2 | -3/+1 |
| | |||||
* | Merge branch 'develop' into rav/get_devices_api | Richard van der Hoff | 2016-07-20 | 2 | -4/+19 |
|\ | | | | | | | (pick up PR #938 in the hope of fixing the UTs) | ||||
| * | Merge pull request #938 from matrix-org/rav/add_device_id_to_client_ips | Richard van der Hoff | 2016-07-20 | 1 | -1/+9 |
| |\ | | | | | | | Record device_id in client_ips | ||||
| | * | Record device_id in client_ips | Richard van der Hoff | 2016-07-20 | 1 | -1/+9 |
| | | | | | | | | | | | | | | | Record the device_id when we add a client ip; it's somewhat redundant as we could get it via the access_token, but it will make querying rather easier. | ||||
| * | | Register a device_id in the /v2/register flow. | Richard van der Hoff | 2016-07-20 | 1 | -3/+10 |
| |/ | | | | | | | | | | | | | | | | | | | This doesn't cover *all* of the registration flows, but it does cover the most common ones: in particular: shared_secret registration, appservice registration, and normal user/pass registration. Pull device_id from the registration parameters. Register the device in the devices table. Associate the device with the returned access and refresh tokens. Profit. | ||||
* / | GET /devices endpoint | Richard van der Hoff | 2016-07-20 | 3 | -12/+199 |
|/ | | | | | | | implement a GET /devices endpoint which lists all of the user's devices. It also returns the last IP where we saw that device, so there is some dancing to fish that out of the user_ips table. | ||||
* | Merge pull request #932 from matrix-org/rav/register_refactor | David Baker | 2016-07-20 | 1 | -1/+5 |
|\ | | | | | Further registration refactoring | ||||
| * | Further registration refactoring | Richard van der Hoff | 2016-07-19 | 1 | -1/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * `RegistrationHandler.appservice_register` no longer issues an access token: instead it is left for the caller to do it. (There are two of these, one in `synapse/rest/client/v1/register.py`, which now simply calls `AuthHandler.issue_access_token`, and the other in `synapse/rest/client/v2_alpha/register.py`, which is covered below). * In `synapse/rest/client/v2_alpha/register.py`, move the generation of access_tokens into `_create_registration_details`. This means that the normal flow no longer needs to call `AuthHandler.issue_access_token`; the shared-secret flow can tell `RegistrationHandler.register` not to generate a token; and the appservice flow continues to work despite the above change. | ||||
* | | Merge pull request #922 from matrix-org/erikj/file_api2 | Erik Johnston | 2016-07-20 | 2 | -6/+7 |
|\ \ | |/ |/| | Feature: Add filter to /messages. Add 'contains_url' to filter. | ||||
| * | Add filter param to /messages API | Erik Johnston | 2016-07-14 | 2 | -6/+7 |
| | | |||||
* | | Merge pull request #931 from matrix-org/rav/refactor_register | David Baker | 2016-07-19 | 1 | -1/+2 |
|\ \ | | | | | | | rest/client/v2_alpha/register.py: Refactor flow somewhat. | ||||
| * | | rest/client/v2_alpha/register.py: Refactor flow somewhat. | Richard van der Hoff | 2016-07-19 | 1 | -1/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is meant to be an *almost* non-functional change, with the exception that it fixes what looks a lot like a bug in that it only calls `auth_handler.add_threepid` and `add_pusher` once instead of three times. The idea is to move the generation of the `access_token` out of `registration_handler.register`, because `access_token`s now require a device_id, and we only want to generate a device_id once registration has been successful. | ||||
* | | | Add device_id support to /login | Richard van der Hoff | 2016-07-18 | 2 | -7/+89 |
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | Add a 'devices' table to the storage, as well as a 'device_id' column to refresh_tokens. Allow the client to pass a device_id, and initial_device_display_name, to /login. If login is successful, then register the device in the devices table if it wasn't known already. If no device_id was supplied, make one up. Associate the device_id with the access token and refresh token, so that we can get at it again later. Ensure that the device_id is copied from the refresh token to the access_token when the token is refreshed. | ||||
* / | Bug fix: expire invalid access tokens | Negar Fazeli | 2016-07-13 | 2 | -3/+32 |
|/ | |||||
* | Add ReadWriteLock | Erik Johnston | 2016-07-05 | 1 | -0/+85 |
| | |||||
* | Remove room name & alias test | David Baker | 2016-06-24 | 1 | -41/+0 |
| | | | | as get_room_name_and_alias is now gone | ||||
* | Rework ldap integration with ldap3 | Martin Weinelt | 2016-06-22 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | | | | Use the pure-python ldap3 library, which eliminates the need for a system dependency. Offer both a `search` and `simple_bind` mode, for more sophisticated ldap scenarios. - `search` tries to find a matching DN within the `user_base` while employing the `user_filter`, then tries the bind when a single matching DN was found. - `simple_bind` tries the bind against a specific DN by combining the localpart and `user_base` Offer support for STARTTLS on a plain connection. The configuration was changed to reflect these new possibilities. Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de> | ||||
* | Enable use_frozen_events in tests | Erik Johnston | 2016-06-17 | 1 | -0/+1 |
| | |||||
* | Add function to load config without generating it | Mark Haines | 2016-06-09 | 2 | -3/+21 |
| | | | | | | | | | | | | | | | | Renames ``load_config`` to ``load_or_generate_config`` Adds a method called ``load_config`` that just loads the config. The main synapse.app.homeserver will continue to use ``load_or_generate_config`` to retain backwards compat. However new worker processes can use ``load_config`` to load the config avoiding some of the cruft needed to generate the config. As the new ``load_config`` method is expected to be used by new configs it removes support for the legacy commandline overrides that ``load_or_generate_config`` supports | ||||
* | Fix a bug caused by a change in auth_handler function | Negar Fazeli | 2016-06-08 | 1 | -6/+3 |
| | | | | Fix the relevant unit test cases | ||||
* | Fix AS retries, but with correct ordering | Erik Johnston | 2016-06-07 | 1 | -4/+4 |
| | |||||
* | Fix AS retries | Erik Johnston | 2016-06-07 | 1 | -3/+3 |
| | |||||
* | Remove event fetching from DB threads | Erik Johnston | 2016-06-03 | 1 | -1/+1 |
| | |||||
* | Change CacheMetrics to be quicker | Erik Johnston | 2016-06-03 | 1 | -13/+10 |
| | | | | | | We change it so that each cache has an individual CacheMetric, instead of having one global CacheMetric. This means that when a cache tries to increment a counter it does not need to go through so many indirections. | ||||
* | Store the typing users as user_id strings. (#819) | Mark Haines | 2016-06-02 | 1 | -2/+2 |
| | | | Rather than storing them as UserID objects. | ||||
* | Allow external processes to mark a user as syncing. (#812) | Mark Haines | 2016-06-02 | 1 | -9/+7 |
| | | | | | | | | | | | | * Add infrastructure to the presence handler to track sync requests in external processes * Expire stale entries for dead external processes * Add an http endpoint for making users as syncing Add some docstrings and comments. * Fixes | ||||
* | Split out the auth handler | David Baker | 2016-06-02 | 2 | -11/+6 |
| | |||||
* | Inject fake room list handler in tests | David Baker | 2016-06-01 | 1 | -0/+2 |
| | | | | Otherwise it tries to start the remote public room list updating looping call which breaks. | ||||
* | Move the AS handler out of the Handlers object. | Mark Haines | 2016-05-31 | 1 | -3/+3 |
| | | | | | | Access it directly from the homeserver itself. It already wasn't inheriting from BaseHandler storing it on the Handlers object was already somewhat dubious. | ||||
* | Fix set profile error with Requester. | Negi Fazeli | 2016-05-23 | 1 | -9/+25 |
| | | | | | Replace flush_user with delete access token due to function removal Add a new test case for if the user is already registered | ||||
* | Move typing handler out of the Handlers object | Mark Haines | 2016-05-17 | 3 | -11/+3 |
| | |||||
* | Merge branch 'develop' into markjh/member_cleanup | Mark Haines | 2016-05-17 | 1 | -1/+1 |
|\ | |||||
| * | Move the presence handler out of the Handlers object | Mark Haines | 2016-05-16 | 1 | -1/+1 |
| | | |||||
* | | get_room_members is unused now | Mark Haines | 2016-05-16 | 1 | -18/+0 |
| | | |||||
* | | Replaces calls to fetch_room_distributions_into with get_joined_hosts_for_room | Mark Haines | 2016-05-16 | 2 | -45/+6 |
|/ | |||||
* | Merge pull request #783 from matrix-org/markjh/slave_account_data | Mark Haines | 2016-05-13 | 1 | -0/+56 |
|\ | | | | | Add a slaved datastore for account data | ||||
| * | Add a slaved datastore for account data | Mark Haines | 2016-05-13 | 1 | -0/+56 |
| | | |||||
* | | Create user with expiry | Negi Fazeli | 2016-05-13 | 4 | -6/+162 |
|/ | | | | | | - Add unittests for client, api and handler Signed-off-by: Negar Fazeli <negar.fazeli@ericsson.com> | ||||
* | Replicate push actions | Mark Haines | 2016-04-21 | 1 | -0/+43 |
| | |||||
* | Merge pull request #738 from matrix-org/markjh/slaved_receipts | Mark Haines | 2016-04-19 | 3 | -3/+43 |
|\ | | | | | Add a slaved receipts store | ||||
| * | Add a slaved receipts store | Mark Haines | 2016-04-19 | 3 | -3/+43 |
| | | |||||
* | | Replicate get_invited_rooms_for_user | Mark Haines | 2016-04-19 | 1 | -0/+12 |
|/ | |||||
* | Create log context in Measure if one doesn't exist | Erik Johnston | 2016-04-18 | 1 | -2/+2 |
| | |||||
* | Merge pull request #677 from matrix-org/erikj/dns_cache | Erik Johnston | 2016-04-08 | 1 | -2/+32 |
|\ | | | | | Read from DNS cache if within TTL | ||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/dns_cache | Erik Johnston | 2016-04-07 | 7 | -6/+260 |
| |\ | |||||
| * | | Tests | Erik Johnston | 2016-04-06 | 1 | -2/+29 |
| | | | |||||
| * | | Read from DNS cache if within TTL | Erik Johnston | 2016-03-31 | 1 | -1/+4 |
| | | | |||||
* | | | Remove some unused functions (#711) | Mark Haines | 2016-04-08 | 4 | -266/+4 |
| | | | | | | | | | | | | | | | | | | | | | | | | * Remove some unused functions * get_room_events_stream is only used in tests * is_exclusive_room might actually be something we want | ||||
* | | | Add tests for redactions | Mark Haines | 2016-04-07 | 2 | -2/+51 |
| | | | |||||
* | | | Merge pull request #704 from matrix-org/markh/slaveIII | Mark Haines | 2016-04-07 | 1 | -1/+90 |
|\ \ \ | | | | | | | | | Add tests for get_latest_event_ids_in_room and get_current_state | ||||
| * | | | Add sensible __eq__ operators inside the tests. | Mark Haines | 2016-04-07 | 1 | -1/+28 |
| | | | | | | | | | | | | | | | | | | | | Rather than adding them globally. This limits the changes to only affect the tests. | ||||
| * | | | Add tests for get_latest_event_ids_in_room and get_current_state | Mark Haines | 2016-04-07 | 1 | -0/+62 |
| | |/ | |/| | |||||
* / | | Deduplicate joins | Erik Johnston | 2016-04-07 | 1 | -0/+44 |
|/ / | |||||
* | | Test that room membership is replicated | Mark Haines | 2016-04-06 | 1 | -8/+63 |
| | |