Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add a test for update_presence (#10033) | Andrew Morgan | 2021-05-21 | 1 | -1/+46 |
| | | | | | | | https://github.com/matrix-org/synapse/issues/9962 uncovered that we accidentally removed all but one of the presence updates that we store in the database when persisting multiple updates. This could cause users' presence state to be stale. The bug was fixed in #10014, and this PR just adds a test that failed on the old code, and was used to initially verify the bug. The test attempts to insert some presence into the database in a batch using `PresenceStore.update_presence`, and then simply pulls it out again. | ||||
* | Increase perf of handling presence when joining large rooms. (#9916) | Erik Johnston | 2021-05-05 | 1 | -10/+4 |
| | |||||
* | Fix tight loop handling presence replication. (#9900) | Erik Johnston | 2021-04-28 | 1 | -0/+22 |
| | | | | | Only affects workers. Introduced in #9819. Fixes #9899. | ||||
* | Add presence federation stream (#9819) | Erik Johnston | 2021-04-20 | 1 | -8/+171 |
| | |||||
* | 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>` | ||||
* | Use mock from the stdlib. (#9772) | Patrick Cloke | 2021-04-09 | 1 | -1/+1 |
| | |||||
* | Implement MSC3026: busy presence state | Brendan Abolivier | 2021-03-18 | 1 | -0/+20 |
| | |||||
* | Be smarter about which hosts to send presence to when processing room joins ↵ | Andrew Morgan | 2021-02-19 | 1 | -4/+10 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (#9402) This PR attempts to eliminate unnecessary presence sending work when your local server joins a room, or when a remote server joins a room your server is participating in by processing state deltas in chunks rather than individually. --- When your server joins a room for the first time, it requests the historical state as well. This chunk of new state is passed to the presence handler which, after filtering that state down to only membership joins, will send presence updates to homeservers for each join processed. It turns out that we were being a bit naive and processing each event individually, and sending out presence updates for every one of those joins. Even if many different joins were users on the same server (hello IRC bridges), we'd send presence to that same homeserver for every remote user join we saw. This PR attempts to deduplicate all of that by processing the entire batch of state deltas at once, instead of only doing each join individually. We process the joins and note down which servers need which presence: * If it was a local user join, send that user's latest presence to all servers in the room * If it was a remote user join, send the presence for all local users in the room to that homeserver We deduplicate by inserting all of those pending updates into a dictionary of the form: ``` { server_name1: {presence_update1, ...}, server_name2: {presence_update1, presence_update2, ...} } ``` Only after building this dict do we then start sending out presence updates. | ||||
* | Update black, and run auto formatting over the codebase (#9381) | Eric Eastwood | 2021-02-16 | 1 | -2/+1 |
| | | | | | | | - 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 | ||||
* | Apply an IP range blacklist to push and key revocation requests. (#8821) | Patrick Cloke | 2020-12-02 | 1 | -1/+1 |
| | | | | | | | | | | | | Replaces the `federation_ip_range_blacklist` configuration setting with an `ip_range_blacklist` setting with wider scope. It now applies to: * Federation * Identity servers * Push notifications * Checking key validitity for third-party invite events The old `federation_ip_range_blacklist` setting is still honored if present, but with reduced scope (it only applies to federation and identity servers). | ||||
* | Simplify `_locally_reject_invite` | Richard van der Hoff | 2020-10-13 | 1 | -1/+1 |
| | | | | | Update `EventCreationHandler.create_event` to accept an auth_events param, and use it in `_locally_reject_invite` instead of reinventing the wheel. | ||||
* | Remove the deprecated Handlers object (#8494) | Patrick Cloke | 2020-10-09 | 1 | -1/+1 |
| | | | All handlers now available via get_*_handler() methods on the HomeServer. | ||||
* | Convert stream database to async/await. (#8074) | Patrick Cloke | 2020-08-17 | 1 | -1/+1 |
| | |||||
* | Port PresenceHandler to async/await (#6991) | Erik Johnston | 2020-02-26 | 1 | -6/+12 |
| | |||||
* | Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957) | Patrick Cloke | 2020-02-21 | 1 | -2/+2 |
| | | | | Ensure good comprehension hygiene using flake8-comprehensions. | ||||
* | Merge pull request #6806 from matrix-org/rav/redact_changes/3 | Richard van der Hoff | 2020-01-31 | 1 | -2/+2 |
|\ | | | | | Pass room_version into add_hashes_and_signatures | ||||
| * | Store the room version in EventBuilder | Richard van der Hoff | 2020-01-30 | 1 | -2/+2 |
| | | |||||
* | | s/get_room_version/get_room_version_id/ | Richard van der Hoff | 2020-01-31 | 1 | -1/+1 |
|/ | | | | | ... to make way for a forthcoming get_room_version which returns a RoomVersion object. | ||||
* | Fix presence timeouts when synchrotron restarts. (#6212) | Erik Johnston | 2019-10-18 | 1 | -0/+39 |
| | | | | | | | | | * Fix presence timeouts when synchrotron restarts. Handling timeouts would fail if there was an external process that had timed out, e.g. a synchrotron restarting. This was due to a couple of variable name typoes. Fixes #3715. | ||||
* | Run Black on the tests again (#5170) | Amber Brown | 2019-05-10 | 1 | -8/+6 |
| | |||||
* | Review comments | Erik Johnston | 2019-03-28 | 1 | -5/+9 |
| | |||||
* | Add unit tests | Erik Johnston | 2019-03-27 | 1 | -1/+171 |
| | |||||
* | Run black. | black | 2018-08-10 | 1 | -121/+95 |
| | |||||
* | run isort | Amber Brown | 2018-07-09 | 1 | -4/+8 |
| | |||||
* | 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 | ||||
* | 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. | ||||
* | 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 | ||||
* | Don't set currently_active for remote presence | Erik Johnston | 2016-02-19 | 1 | -4/+15 |
| | |||||
* | Add unit test | Erik Johnston | 2016-02-18 | 1 | -0/+373 |
| | |||||
* | Remove old tests. | Erik Johnston | 2016-02-18 | 1 | -1340/+0 |
| | |||||
* | Delete the table objects from TransactionStore | Mark Haines | 2016-01-13 | 1 | -1/+0 |
| | |||||
* | copyrights | Matthew Hodgson | 2016-01-07 | 1 | -1/+1 |
| | |||||
* | rename the method in the tests as well | Mark Haines | 2015-12-01 | 1 | -3/+3 |
| | |||||
* | Update tests | Erik Johnston | 2015-11-17 | 1 | -0/+13 |
| | |||||
* | Open up /events to anonymous users for room events only | Daniel Wagner-Hall | 2015-11-05 | 1 | -18/+53 |
| | | | | Squash-merge of PR #345 from daniel/anonymousevents | ||||
* | Fix the presence tests | Mark Haines | 2015-05-22 | 1 | -6/+10 |
| | |||||
* | Fix the presence tests | Mark Haines | 2015-05-20 | 1 | -10/+3 |
| | |||||
* | Remove unused arguments and doc PresenceHandler.push_update_to_clients | Mark Haines | 2015-05-14 | 1 | -17/+5 |
| | |||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into postgres | Erik Johnston | 2015-04-27 | 1 | -0/+65 |
|\ | |||||
| * | Remove users from the remote_offline_serials list (and clean up empty ↵ | Paul "LeoNerd" Evans | 2015-04-23 | 1 | -0/+27 |
| | | | | | | | | elements) when they go online again | ||||
| * | Store a list of the presence serial number at which remote users went ↵ | Paul "LeoNerd" Evans | 2015-04-23 | 1 | -0/+38 |
| | | | | | | | | offline, so that when we delete them from the cachemap, we can still synthesize OFFLINE events for them (SYN-261) | ||||
* | | Make work in both Maria and SQLite. Fix tests | Erik Johnston | 2015-04-01 | 1 | -1/+6 |
|/ | |||||
* | Fix tests | Erik Johnston | 2015-03-09 | 1 | -2/+2 |
| | |||||
* | Fix presence tests | Erik Johnston | 2015-02-23 | 1 | -15/+28 |
| | |||||
* | Factor out some of the common homeserver setup code into a | Mark Haines | 2015-02-11 | 1 | -14/+2 |
| | | | | setup_test_homeserver function in utils. | ||||
* | Replace hs.parse_userid with UserID.from_string | Mark Haines | 2015-01-23 | 1 | -14/+15 |
| | |||||
* | Rename MockedDatastoreTestCase to MockedDatastorePresenceTestCase since it ↵ | Paul "LeoNerd" Evans | 2015-01-22 | 1 | -3/+3 |
| | | | | is still presence-specific | ||||
* | Much merging of test case setUp() methods to make them much more | Paul "LeoNerd" Evans | 2015-01-22 | 1 | -273/+193 |
| | | | | shareable | ||||
* | Abstract out the room ID from presence tests, so it's stored in self | Paul "LeoNerd" Evans | 2015-01-21 | 1 | -8/+10 |
| | |||||
* | Use common base class for two Presence unit-tests, avoiding boilerplate ↵ | Paul "LeoNerd" Evans | 2015-01-21 | 1 | -54/+25 |
| | | | | copypasta | ||||
* | fix UTs by telling all the mock stores about the new methods for tracking ↵ | Matthew Hodgson | 2014-12-09 | 1 | -1/+9 |
| | | | | retries | ||||
* | Initialise UserPresenceCache instances to always contain a 'presence' key | Paul "LeoNerd" Evans | 2014-11-19 | 1 | -2/+8 |
| | |||||
* | SYN-103: Remove "origin" and "destination" keys from edus | Mark Haines | 2014-11-13 | 1 | -3/+0 |
| | |||||
* | Fix presence test | Erik Johnston | 2014-11-05 | 1 | -0/+1 |
| | |||||
* | Fix an off-by-one bug in presence event stream pagination; this might be ↵ | Paul "LeoNerd" Evans | 2014-10-29 | 1 | -0/+16 |
| | | | | responsible for any number of bug reports | ||||
* | SPEC-7: Rename 'ts' to 'origin_server_ts' | Mark Haines | 2014-10-17 | 1 | -1/+1 |
| | |||||
* | SYN-103: Ignore the 'origin' key in received EDUs. Instead take the origin ↵ | Mark Haines | 2014-10-14 | 1 | -0/+1 |
| | | | | from the transaction itself | ||||
* | SYN-75 sign at the request level rather than the transaction level | Mark Haines | 2014-10-13 | 1 | -13/+13 |
| | |||||
* | SYN-75 Verify signatures on server to server transactions | Mark Haines | 2014-09-30 | 1 | -3/+6 |
| | |||||
* | Sign federation transactions | Mark Haines | 2014-09-24 | 1 | -2/+19 |
| | |||||
* | Merge branch 'develop' into test-sqlite-memory | Paul "LeoNerd" Evans | 2014-09-17 | 1 | -5/+18 |
|\ | |||||
| * | Fix unit tests after adding extra argument on put_json | Erik Johnston | 2014-09-15 | 1 | -5/+18 |
| | | |||||
* | | Merge remote-tracking branch 'origin/develop' into test-sqlite-memory | Paul "LeoNerd" Evans | 2014-09-15 | 1 | -6/+1 |
|\| | |||||
| * | Have all unit tests import from our own subclass of trial's unittest ↵ | Paul "LeoNerd" Evans | 2014-09-12 | 1 | -6/+1 |
| | | | | | | | | TestCase; set up logging in ONE PLACE ONLY | ||||
* | | Perform PresenceInvitesTestCase against real SQLiteMemoryDbPool | Paul "LeoNerd" Evans | 2014-09-11 | 1 | -78/+98 |
| | | |||||
* | | Need to prepare() the SQLiteMemoryDbPool before passing it to HomeServer ↵ | Paul "LeoNerd" Evans | 2014-09-11 | 1 | -3/+4 |
| | | | | | | | | constructor, as DataStore's constructor will want it ready | ||||
* | | Start of converting PresenceHandler unit tests to use SQLiteMemoryDbPool - ↵ | Paul "LeoNerd" Evans | 2014-09-11 | 1 | -46/+27 |
|/ | | | | just the 'State' test case for now | ||||
* | 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. | ||||
* | Kill the state | Paul "LeoNerd" Evans | 2014-09-03 | 1 | -33/+17 |
| | | | | ... key from all the Presence messages | ||||
* | Implement presence state visibilty limiting when polling eventsource for stream | Paul "LeoNerd" Evans | 2014-09-03 | 1 | -1/+67 |
| | |||||
* | Don't eat federation transmit errors during unit tests; fix remote presence ↵ | Paul "LeoNerd" Evans | 2014-09-03 | 1 | -0/+16 |
| | | | | EDU-sending test because of this | ||||
* | Rename the 'do_users_share_a_room' to something slightly less verb-sounding | Paul "LeoNerd" Evans | 2014-09-03 | 1 | -2/+2 |
| | |||||
* | Ensure that event source unit tests could cope with ↵ | Paul "LeoNerd" Evans | 2014-09-02 | 1 | -14/+20 |
| | | | | get_new_events_for_user() returning a Deferred | ||||
* | Reënable presence visibility permission checking now it's not used on ↵ | Paul "LeoNerd" Evans | 2014-09-01 | 1 | -2/+0 |
| | | | | redundant code paths | ||||
* | Rename API-visible 'mtime' presence field to 'last_active'; slightly ↵ | Paul "LeoNerd" Evans | 2014-09-01 | 1 | -11/+18 |
| | | | | different semantics | ||||
* | Rename 'state' presence key to the much more obvious 'presence'; maintain a ↵ | Paul "LeoNerd" Evans | 2014-09-01 | 1 | -43/+79 |
| | | | | legacy 'state' copy for now | ||||
* | change the world: make the default matrix API URL prefix /_matrix rather ↵ | Matthew Hodgson | 2014-08-31 | 1 | -12/+12 |
| | | | | | | than /matrix to make it easier for existing websites to mount a HS in their namespace without collisions. perl -pi -e 's#/matrix#/_matrix#g' ./cmdclient/console.py ./docs/client-server/howto.rst ./docs/client-server/specification.rst ./docs/client-server/swagger_matrix/directory ./docs/client-server/swagger_matrix/events ./docs/client-server/swagger_matrix/login ./docs/client-server/swagger_matrix/presence ./docs/client-server/swagger_matrix/profile ./docs/client-server/swagger_matrix/registration ./docs/client-server/swagger_matrix/rooms ./docs/server-server/specification.rst ./graph/graph.py ./jsfiddles/create_room_send_msg/demo.js ./jsfiddles/event_stream/demo.js ./jsfiddles/example_app/demo.js ./jsfiddles/register_login/demo.js ./jsfiddles/room_memberships/demo.js ./synapse/api/urls.py ./tests/federation/test_federation.py ./tests/handlers/test_presence.py ./tests/handlers/test_typing.py ./tests/rest/test_events.py ./tests/rest/test_presence.py ./tests/rest/test_profile.py ./tests/rest/test_rooms.py ./webclient/components/fileUpload/file-upload-service.js ./webclient/components/matrix/matrix-service.js | ||||
* | Bugfixes on presence pushes on user joining: | Paul "LeoNerd" Evans | 2014-08-29 | 1 | -57/+71 |
| | | | | | | | | | * No need to inform clients of status of remote users; as that will arrive in due course anyway. We don't -have- the state currently, so we'd only send an unknown message * Remember to bump the presence serial for the event source, so the notifiers will wake up and report it | ||||
* | Fix a couple of bugs in presence handler related to pushing updatesto the ↵ | Erik Johnston | 2014-08-29 | 1 | -51/+87 |
| | | | | correct user. Fix presence tests. | ||||
* | Only send presence "poll"/"unpoll" EDUs when changing from/to zero remotes | Paul "LeoNerd" Evans | 2014-08-28 | 1 | -6/+33 |
| | |||||
* | Re-enable presence, un-skip presence tests | Paul "LeoNerd" Evans | 2014-08-28 | 1 | -6/+0 |
| | |||||
* | Fix up the various presence-related tests so that if they're not skipped, ↵ | Paul "LeoNerd" Evans | 2014-08-27 | 1 | -4/+6 |
| | | | | they still PASS | ||||
* | skip presence tests which broke when presence polling was disabled | Mark Haines | 2014-08-22 | 1 | -0/+7 |
| | |||||
* | Rewrite of PresenceHandler test to ensure it covers the interaction with ↵ | Paul "LeoNerd" Evans | 2014-08-19 | 1 | -149/+279 |
| | | | | Federation as well | ||||
* | Implement and test presence dropping of remote users | Paul "LeoNerd" Evans | 2014-08-19 | 1 | -0/+8 |
| | |||||
* | Allow room presence visibility between users who share a room | Paul "LeoNerd" Evans | 2014-08-18 | 1 | -5/+40 |
| | |||||
* | Removed http_server from HomeServer. Updated unit tests to use either ↵ | Kegan Dougal | 2014-08-14 | 1 | -4/+4 |
| | | | | resource_for_federation or resource_for_client depending on what is being tested. | ||||
* | An initial hack at storing presence state-change mtimes in database and ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 1 | -8/+28 |
| | | | | presenting age durations to clients/federation events | ||||
* | Use strings instead of opaque magic-number constants for presence states; ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 1 | -12/+12 |
| | | | | rename AWAY to UNAVAILABLE | ||||
* | add in copyrights to everything, not just the synapse subdir, and add a ↵ | Matthew Hodgson | 2014-08-13 | 1 | -0/+14 |
| | | | | copyrighter.pl whilst we're at it | ||||
* | Reference Matrix Home Server | matrix.org | 2014-08-12 | 1 | -0/+884 |