summary refs log tree commit diff
path: root/synapse/handlers (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Notify auth providers on logoutRichard van der Hoff2017-11-011-2/+24
| | | | Provide a hook by which auth providers can be notified of logouts.
* Merge pull request #2620 from matrix-org/rav/auth_non_passwordRichard van der Hoff2017-11-011-22/+96
|\ | | | | Let password auth providers handle arbitrary login types
| * Let password auth providers handle arbitrary login typesRichard van der Hoff2017-11-011-22/+96
| | | | | | | | | | Provide a hook where password auth providers can say they know about other login types, and get passed the relevant parameters
* | Merge remote-tracking branch 'origin/develop' into ↵David Baker2017-11-013-13/+8
|\ \ | | | | | | | | | rav/refactor_accesstoken_delete
| * \ Merge pull request #2615 from matrix-org/rav/break_auth_device_depDavid Baker2017-11-011-9/+6
| |\ \ | | | | | | | | Break dependency of auth_handler on device_handler
| | * | Break dependency of auth_handler on device_handlerRichard van der Hoff2017-11-011-9/+6
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | I'm going to need to make the device_handler depend on the auth_handler, so I need to break this dependency to avoid a cycle. It turns out that the auth_handler was only using the device_handler in one place which was an edge case which we can more elegantly handle by throwing an error rather than fixing it up.
| * | Merge pull request #2613 from matrix-org/rav/kill_refresh_tokensDavid Baker2017-11-011-2/+0
| |\ \ | | | | | | | | Remove the last vestiges of refresh_tokens
| | * | Remove the last vestiges of refresh_tokensRichard van der Hoff2017-10-311-2/+0
| | |/
| * / Modify group room association API to allow modification of is_publicLuke Barnard2017-10-311-2/+2
| |/ | | | | | | also includes renamings to make things more consistent.
* / Move access token deletion into auth handlerRichard van der Hoff2017-11-013-5/+52
|/ | | | | | | Also move duplicated deactivation code into the auth handler. I want to add some hooks when we deactivate an access token, so let's bring it all in here so that there's somewhere to put it.
* Refactor some logic from LoginRestServlet into AuthHandlerRichard van der Hoff2017-10-311-28/+52
| | | | | | | | | | | | | | I'm going to need some more flexibility in handling login types in password auth providers, so as a first step, move some stuff from LoginRestServlet into AuthHandler. In particular, we pass everything other than SAML, JWT and token logins down to the AuthHandler, which now has responsibility for checking the login type and fishing the password out of the login dictionary, as well as qualifying the user_id if need be. Ideally SAML, JWT and token would go that way too, but there's no real need for it right now and I'm trying to minimise impact. This commit *should* be non-functional.
* Merge pull request #2589 from matrix-org/rav/as_deactivate_accountRichard van der Hoff2017-10-271-1/+1
|\ | | | | Allow ASes to deactivate their own users
| * Allow ASes to deactivate their own usersRichard van der Hoff2017-10-271-1/+1
| |
* | Update room_list.pyErik Johnston2017-10-261-1/+1
| |
* | Do logcontexts outside ResponseCacheErik Johnston2017-10-252-5/+8
| |
* | Add logging and fix log contexts for publicRoomsErik Johnston2017-10-251-0/+2
|/
* replace 'except:' with 'except Exception:'Richard van der Hoff2017-10-238-17/+17
| | | | what could possibly go wrong
* Merge pull request #2561 from matrix-org/rav/id_checkingRichard van der Hoff2017-10-231-9/+6
|\ | | | | Updates to ID checking
| * Allow = in mxids and groupidsRichard van der Hoff2017-10-201-3/+2
| | | | | | | | ... because the spec says we should.
| * Disallow capital letters in useridsRichard van der Hoff2017-10-201-6/+4
| | | | | | | | | | Factor out a common function for checking user ids and group ids, which forbids capitals.
* | Remove pointless create() methodRichard van der Hoff2017-10-202-3/+3
|/ | | | | It just calls the constructor, so we may as well kill it rather than having random codepaths.
* _create_rererouter for get_invited_users_in_groupLuke Barnard2017-10-161-17/+2
|
* Implement GET /groups/$groupId/invited_usersLuke Barnard2017-10-161-0/+17
|
* Log a warning when no profile for invited memberLuke Barnard2017-10-161-2/+5
| | | | And return empty profile
* Merge pull request #2531 from matrix-org/dbkr/spamcheck_error_messagesDavid Baker2017-10-121-2/+6
|\ | | | | Allow error strings from spam checker
| * fix isinstanceDavid Baker2017-10-111-1/+1
| |
| * Allow error strings from spam checkerDavid Baker2017-10-111-2/+6
| |
* | Fix fetching remote summariesErik Johnston2017-10-111-2/+2
| |
* | Merge pull request #2530 from matrix-org/rav/fix_receipt_logcontextRichard van der Hoff2017-10-111-0/+4
|\ \ | | | | | | fix a logcontext leak in read receipt handling
| * | fix a logcontext leak in read receipt handlingRichard van der Hoff2017-10-111-0/+4
| | |
* | | Fix attestations to check correct server nameErik Johnston2017-10-111-10/+20
| |/ |/|
* | Merge pull request #2466 from matrix-org/erikj/groups_mergedErik Johnston2017-10-118-17/+584
|\ \ | | | | | | Initial Group Implementation
| * \ Merge branch 'develop' into erikj/groups_mergedDavid Baker2017-10-024-8/+121
| |\ \
| * | | Add remove room APIErik Johnston2017-09-261-0/+1
| | | |
| * | | Add is_publicised to group summaryErik Johnston2017-09-261-25/+31
| | | |
| * | | Ensure that creator of group sees group down /syncErik Johnston2017-09-192-4/+31
| | | |
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/groups_mergedErik Johnston2017-09-193-33/+163
| |\ \ \
| * | | | Add user profiles to summary from group serverErik Johnston2017-08-251-0/+23
| | | | |
| * | | | Fix typos and reinheritErik Johnston2017-08-251-12/+6
| | | | |
| * | | | Split out profile handler to fix testsErik Johnston2017-08-256-13/+16
| | | | |
| * | | | Add remote profile cacheErik Johnston2017-08-252-5/+93
| | | | |
| * | | | FixupErik Johnston2017-08-111-9/+13
| | | | |
| * | | | Add bulk group publicised lookup APIErik Johnston2017-08-091-0/+42
| | | | |
| * | | | Store whether the user wants to publicise their membership of a groupErik Johnston2017-08-081-0/+4
| | | | |
| * | | | Remove stale TODO commentsErik Johnston2017-08-041-10/+0
| | | | |
| * | | | Correctly add joins to correct segmentErik Johnston2017-07-241-1/+1
| | | | |
| * | | | Merge pull request #2378 from matrix-org/erikj/group_sync_supportErik Johnston2017-07-212-5/+80
| |\ \ \ \ | | | | | | | | | | | | Add groups to sync stream
| | * | | | Add notifierErik Johnston2017-07-201-0/+1
| | | | | |
| | * | | | Fix replication. And notifyErik Johnston2017-07-201-4/+16
| | | | | |
| | * | | | Remember to cast to boolErik Johnston2017-07-201-1/+1
| | | | | |
| | * | | | Add groups to sync streamErik Johnston2017-07-201-1/+63
| | | | | |
| * | | | | Add update group profile APIErik Johnston2017-07-201-0/+1
| |/ / / /
| * | | | CommentsErik Johnston2017-07-181-10/+19
| | | | |
| * | | | Fix typosErik Johnston2017-07-181-2/+3
| | | | |
| * | | | Update federation client pokesErik Johnston2017-07-181-13/+22
| | | | |
| * | | | Add client apisErik Johnston2017-07-181-1/+1
| | | | |
| * | | | CommentsErik Johnston2017-07-181-0/+3
| | | | |
| * | | | Use transport client directlyErik Johnston2017-07-181-18/+25
| | | | |
| * | | | Add local group server supportErik Johnston2017-07-171-0/+278
| | | | |
| * | | | Merge pull request #2352 from matrix-org/erikj/group_server_splitErik Johnston2017-07-121-8/+10
| |\ \ \ \ | | | | | | | | | | | | Initial Group Server
| | * | | | Initial group server implementationErik Johnston2017-07-101-8/+10
| | | | | |
* | | | | | Merge pull request #2483 from jeremycline/unfreeze-ujson-dumpErik Johnston2017-10-111-1/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | Unfreeze event before serializing with ujson
| * | | | | | Unfreeze event before serializing with ujsonJeremy Cline2017-09-301-1/+2
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In newer versions of https://github.com/esnme/ultrajson, ujson does not serialize frozendicts (introduced in esnme/ultrajson@53f85b1). Although the PyPI version is still 1.35, Fedora ships with a build from commit esnme/ultrajson@2f1d487. This causes the serialization to fail if the distribution-provided package is used. This runs the event through the unfreeze utility before serializing it. Thanks to @ignatenkobrain for tracking down the root cause. fixes #2351 Signed-off-by: Jeremy Cline <jeremy@jcline.org>
* | | | | | Merge pull request #2490 from matrix-org/erikj/drop_left_room_eventsErik Johnston2017-10-101-0/+22
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | Ignore incoming events for rooms that we have left
| * | | | | Update commentsErik Johnston2017-10-031-1/+1
| | | | | |
| * | | | | Remove spurious line feedErik Johnston2017-10-031-1/+0
| | | | | |
| * | | | | Ignore incoming events for rooms that we have leftErik Johnston2017-10-031-0/+23
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When synapse receives an event for a room its not in over federation, it double checks with the remote server to see if it is in fact in the room. This is done so that if the server has forgotten about the room (usually as a result of the database being dropped) it can recover from it. However, in the presence of state resets in large rooms, this can cause a lot of work for servers that have legitimately left. As a hacky solution that supports both cases we drop incoming events for rooms that we have explicitly left. This means that we no longer support the case of servers having forgotten that they've rejoined a room, but that is sufficiently rare that we're not going to support it for now.
* | | | | Fix up deferred handling in federation.pyRichard van der Hoff2017-10-061-24/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Avoid preserve_context_over_deferred, which is broken * set consumeErrors=True on defer.gatherResults, to avoid spurious "unhandled failure" erros
* | | | | Spam checking: add the invitee to user_may_inviteDavid Baker2017-10-052-6/+8
| | | | |
* | | | | spam check room publishingDavid Baker2017-10-041-0/+8
| | | | |
* | | | | un-double indentDavid Baker2017-10-041-1/+1
| | | | |
* | | | | Add room creation checks to spam checkerDavid Baker2017-10-042-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | Lets the spam checker deny attempts to create rooms and add aliases to them.
* | | | | pass room id tooDavid Baker2017-10-032-2/+4
| | | | |
* | | | | Federation was passing strings anywayDavid Baker2017-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | so pass string everywhere
* | | | | this shouldn't be debugDavid Baker2017-10-031-2/+2
| | | | |
* | | | | better loggingDavid Baker2017-10-031-4/+9
| | | | |
* | | | | Skip spam check for admin usersDavid Baker2017-10-031-8/+8
| | | | |
* | | | | Fix param name & lintDavid Baker2017-10-031-2/+4
| | | | |
* | | | | Allow spam checker to reject invites tooDavid Baker2017-10-032-6/+18
|/ / / /
* | | | Fix /joined_members to work with AS usersErik Johnston2017-09-281-11/+25
| | | |
* | | | Fix bug where /joined_members didn't check user was in roomErik Johnston2017-09-271-0/+31
| | | |
* | | | Make the spam checker a moduleDavid Baker2017-09-261-2/+3
| | | |
* | | | Refactor to speed up incremental syncsErik Johnston2017-09-251-5/+18
| | | |
* | | | Fix device list when rejoining room (#2461)Erik Johnston2017-09-221-2/+14
| | | |
* | | | Add a config option to block all room invites (#2457)Richard van der Hoff2017-09-192-0/+25
| | | | | | | | | | | | | | | | | | | | - allows sysadmins the ability to lock down their servers so that people can't send their users room invites.
* | | | add some comments to on_exchange_third_party_invite_requestRichard van der Hoff2017-09-191-0/+11
| | | |
* | | | PoC for filtering spammy events (#2456)Richard van der Hoff2017-09-191-1/+7
| |_|/ |/| | | | | Demonstration of how you might add some hooks to filter out spammy events.
* | | Fix overzealous kicking of guest users (#2453)Richard van der Hoff2017-09-191-1/+1
| | | | | | | | | We should only kick guest users if the guest access event is authorised.
* | | Don't filter out current state events from timelineErik Johnston2017-09-181-0/+7
| | |
* | | Correctly handle leaving room in /key/changesErik Johnston2017-09-181-13/+12
| | |
* | | Fix typoErik Johnston2017-09-151-1/+1
| | |
* | | Actually hook leave notifs upErik Johnston2017-09-141-2/+3
| | |
* | | Handle joining/leaving rooms in /keys/changesErik Johnston2017-09-131-1/+38
| | |
* | | Get left roomsErik Johnston2017-09-131-3/+32
| | |
* | | In sync handle device lists for newly joined/left roomsErik Johnston2017-09-121-2/+10
| | |
* | | Add left section to /keys/changesErik Johnston2017-09-082-7/+17
| | |
* | | Send down device list change notif when member leaves/rejoins roomErik Johnston2017-09-072-13/+53
| | |
* | | Use less DB for device list handling in syncErik Johnston2017-07-121-8/+7
| |/ |/|
* | Don't compute push actions for backfilled eventsErik Johnston2017-07-111-1/+1
|/
* Fix bug where pusherpool didn't start and broke some roomsErik Johnston2017-07-062-2/+5
| | | | | | | | Since we didn't instansiate the PusherPool at start time it could fail at run time, which it did for some users. This may or may not fix things for those users, but it should happen at start time and stop the server from starting.
* Improve the error handling for bad invites received over federationMark Haines2017-06-301-2/+17
|
* Use an ExpiringCache for storing registration sessionsErik Johnston2017-06-291-11/+10
| | | | | This is because pruning them was a significant performance drain on matrix.org
* Merge pull request #2307 from matrix-org/erikj/user_ip_batchErik Johnston2017-06-271-2/+2
|\ | | | | Batch upsert user ips
| * Fix up client ips to read from pending dataErik Johnston2017-06-271-2/+2
| |
* | Remove unused variablesErik Johnston2017-06-261-1/+1
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2017-06-264-13/+52
|\| | | | | | | erikj/ensure_round_trip
| * Make some more params configurableErik Johnston2017-06-221-5/+8
| |
| * Typo. ARGH.Erik Johnston2017-06-221-1/+1
| |
| * Fix thinko in unhandled user spamErik Johnston2017-06-221-2/+2
| |
| * Don't work out users who share room with appservice usersErik Johnston2017-06-211-2/+11
| |
| * Handle all cases of sending membership eventsErik Johnston2017-06-191-0/+5
| |
| * Change to create new room and join other usersErik Johnston2017-06-191-4/+17
| |
| * Add shutdown room APIErik Johnston2017-06-192-0/+9
| |
* | Reject local events that don't round trip the DBErik Johnston2017-06-191-0/+9
|/
* Initial worker implErik Johnston2017-06-161-6/+13
|
* Include users who share room with requester in user directoryErik Johnston2017-06-151-2/+2
|
* Implement updating users who share rooms on the flyErik Johnston2017-06-151-23/+125
|
* Implement initial population of users who share rooms tableErik Johnston2017-06-151-2/+76
|
* Fix user directory insertion due to missing room_idErik Johnston2017-06-131-3/+7
|
* Don't assume existance of events when updating user directoryErik Johnston2017-06-131-3/+6
|
* Merge pull request #2266 from matrix-org/erikj/host_in_roomErik Johnston2017-06-121-3/+3
|\ | | | | Change is_host_joined to use current_state table
| * Change is_host_joined to use current_state tableErik Johnston2017-06-091-3/+3
| | | | | | | | | | | | This bypasses a bug where using the state groups to figure out if a host is in a room sometimes errors if the servers isn't in the room. (For example when the server rejected an invite to a remote room)
* | CommentErik Johnston2017-06-091-0/+2
| |
* | Mark remote invite rejections as outliersErik Johnston2017-06-091-0/+1
|/
* Merge pull request #2258 from matrix-org/erikj/user_dirErik Johnston2017-06-071-0/+3
|\ | | | | Don't start user_directory handling on workers
| * Don't start user_directory handling on workersErik Johnston2017-06-071-0/+3
| |
* | Merge pull request #2248 from matrix-org/erikj/state_fixupErik Johnston2017-06-071-7/+5
|\ \ | |/ |/| Faster cache for get_joined_hosts
| * Merge branch 'develop' of github.com:matrix-org/synapse into erikj/state_fixupErik Johnston2017-06-071-0/+429
| |\
| * | Fix typing testsErik Johnston2017-05-261-7/+5
| | |
* | | Add some logging to user directoryErik Johnston2017-06-071-0/+7
| |/ |/|
* | Handle profile updates in user directoryErik Johnston2017-06-011-0/+25
| |
* | Split the table in twoErik Johnston2017-06-011-27/+50
| |
* | CommentsErik Johnston2017-06-011-3/+3
| |
* | Check if host is still in roomErik Johnston2017-06-011-0/+11
| |
* | Fix removing usersErik Johnston2017-06-011-0/+5
| |
* | Bug fixes and loggingErik Johnston2017-06-011-1/+21
| | | | | | | | | | - Check if room is public when a user joins before adding to user dir - Fix typo of field name "content.join_rules" -> "content.join_rule"
* | Comment briefly on how we keep user_directory up to dateErik Johnston2017-05-311-0/+10
| |
* | Lifts things into separate functionErik Johnston2017-05-311-56/+54
| |
* | TyposErik Johnston2017-05-311-8/+8
| |
* | Fix testsErik Johnston2017-05-311-2/+2
| |
* | Pull max id from correct tableErik Johnston2017-05-311-4/+2
| |
* | Handle the server leaving a public roomErik Johnston2017-05-311-3/+20
| |
* | Add commentsErik Johnston2017-05-311-41/+120
| |
* | Add searchErik Johnston2017-05-311-0/+3
| |
* | Update room column when room becomes unpublicErik Johnston2017-05-311-2/+21
| |
* | Add call laterErik Johnston2017-05-311-0/+2
| |
* | Start laterErik Johnston2017-05-311-1/+4
| |
* | Don't go round in circlesErik Johnston2017-05-311-4/+2
| |
* | Add user_directory to databaseErik Johnston2017-05-311-0/+218
|/
* Merge pull request #2247 from matrix-org/erikj/auth_eventErik Johnston2017-05-241-6/+14
|\ | | | | Only store event_auth for state events
| * Only store event_auth for state eventsErik Johnston2017-05-241-6/+14
| |
* | Add count of one time keys to sync streamErik Johnston2017-05-191-0/+11
|/
* Store ActionGenerator in HomeServerErik Johnston2017-05-192-5/+3
|
* Faster push rule calculation via push specific cacheErik Johnston2017-05-171-2/+3
| | | | | We add a push rule specific cache that ensures that we can reuse calculated push rules appropriately when a user join/leaves.
* Merge pull request #2228 from matrix-org/erikj/speed_up_get_hostsErik Johnston2017-05-161-1/+2
|\ | | | | Speed up get_joined_hosts
| * Speed up get_joined_hostsErik Johnston2017-05-161-1/+2
| |
* | Make presence use cached users/hosts in roomErik Johnston2017-05-161-3/+3
|/
* Modify condition on empty localpartLuke Barnard2017-05-101-1/+1
|
* Modify register/available to be GET with query paramLuke Barnard2017-05-101-0/+7
| | | | | | | - GET is now the method for register/available - a query parameter "username" is now used Also, empty usernames are now handled with an error message on registration or via register/available: `User ID cannot be empty`
* Merge pull request #2208 from matrix-org/erikj/ratelimit_overridErik Johnston2017-05-104-18/+36
|\ | | | | Add per user ratelimiting overrides
| * Add per user ratelimiting overridesErik Johnston2017-05-104-18/+36
| |
* | Replace some instances of preserve_context_over_deferredRichard van der Hoff2017-05-091-3/+3
| |
* | Do some logging when one-time-keys get claimedRichard van der Hoff2017-05-091-0/+10
| | | | | | | | | | 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 sigsRichard van der Hoff2017-05-091-13/+57
|/ | | | | | | 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.
* Merge pull request #2190 from matrix-org/erikj/mark_remote_as_back_moreErik Johnston2017-05-051-7/+0
|\ | | | | Always mark remotes as up if we receive a signed request from them
| * Remove redundant reset of destination timersErik Johnston2017-05-051-7/+0
| |
* | CommentErik Johnston2017-05-051-0/+6
| |
* | Add comment and TODOErik Johnston2017-05-051-0/+6
| |
* | Handle exceptions thrown in handling remote device list updatesErik Johnston2017-05-051-1/+16
|/
* Merge pull request #2147 from matrix-org/dbkr/http_request_propagate_errorDavid Baker2017-05-031-1/+10
|\ | | | | Propagate errors sensibly from proxied IS requests
| * Revert accidental commitDavid Baker2017-04-261-4/+4
| |
| * Merge remote-tracking branch 'origin/develop' into ↵David Baker2017-04-262-34/+23
| |\ | | | | | | | | | dbkr/http_request_propagate_error
| * | Use CodeMessageException subclass insteadDavid Baker2017-04-251-10/+19
| | | | | | | | | | | | | | | Parse json errors from get_json client methods and throw special errors.
| * | Merge remote-tracking branch 'origin/develop' into ↵David Baker2017-04-211-0/+64
| |\ \ | | | | | | | | | | | | dbkr/http_request_propagate_error
| * | | Propagate errors sensibly from proxied IS requestsDavid Baker2017-04-211-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | When we're proxying Matrix endpoints, parse out Matrix error responses and turn them into SynapseErrors so they can be propagated sensibly upstream.
* | | | Merge pull request #2170 from matrix-org/erikj/fed_hole_stateErik Johnston2017-05-031-21/+12
|\ \ \ \ | | | | | | | | | | Don't fetch state for missing events that we fetched
| * | | | Merge together redundant calculations/loggingErik Johnston2017-05-031-9/+2
| | | | |
| * | | | FixupErik Johnston2017-04-281-10/+4
| | | | |
| * | | | Remove unncessary call in _get_missing_events_for_pduErik Johnston2017-04-281-13/+11
| | | | |
| * | | | Don't fetch state for missing events that we fetchedErik Johnston2017-04-281-0/+6
| | | | |
* | | | | Add more granular event send metricsErik Johnston2017-05-022-2/+9
|/ / / /
* | | | Merge pull request #2163 from matrix-org/erikj/fix_invite_stateErik Johnston2017-04-271-6/+3
|\ \ \ \ | | | | | | | | | | Fix invite state to always include all events
| * | | | Fix invite state to always include all eventsErik Johnston2017-04-261-6/+3
| | |_|/ | |/| |
* | | | TypoErik Johnston2017-04-271-1/+1
| | | |
* | | | Add some extra logging for edge cases of federationErik Johnston2017-04-271-2/+22
|/ / /
* | | Remove redundant try/except clausesRichard van der Hoff2017-04-211-23/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `except SynapseError` clauses were pointless because the wrapped functions would never throw a `SynapseError` (they either throw a `CodeMessageException` or a `RuntimeError`). The `except CodeMessageException` is now also pointless because the caller treats all exceptions equally, so we may as well just throw the `CodeMessageException`.
* | | Broaden the conditions for locally_rejecting invitesRichard van der Hoff2017-04-211-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The logic for marking invites as locally rejected was all well and good, but didn't happen when the remote server returned a 500, or wasn't reachable, or had no DNS, or whatever. Just expand the except clause to catch everything. Fixes https://github.com/matrix-org/synapse/issues/761.
* | | Remove redundant functionRichard van der Hoff2017-04-211-10/+5
| |/ |/| | | | | | | inline `reject_remote_invite`, which only existed to make tracing the callflow more difficult.
* | m.read_marker -> m.fully_read (#2128)Luke Barnard2017-04-181-4/+4
| | | | | | | | | | | | Also: - change the REST endpoint to have a "S" on the end (so it's now /read_markers) - change the content of the m.read_up_to event to have the key "event_id" instead of "marker".
* | Merge pull request #2120 from matrix-org/luke/read-markersLuke Barnard2017-04-131-0/+64
|\ \ | |/ |/| Implement Read Marker API
| * Simplify is_event_after logicLuke Barnard2017-04-121-2/+3
| |
| * Only notify user, not entire roomLuke Barnard2017-04-121-3/+1
| |
| * Remove comment, simplify null-guardLuke Barnard2017-04-121-4/+1
| |
| * Handle no previous RMLuke Barnard2017-04-121-1/+4
| |
| * flake8Luke Barnard2017-04-111-1/+0
| |
| * Refactor event ordering check to events storeLuke Barnard2017-04-111-28/+4
| |
| * CopyrightLuke Barnard2017-04-111-1/+1
| |
| * flake8Luke Barnard2017-04-111-2/+1
| |
| * Finish implementing RM endpointLuke Barnard2017-04-111-39/+48
| | | | | | | | | | - This change causes a 405 to be sent if "m.read_marker" is set via /account_data - This also fixes-up the RM endpoint so that it actually Works.
| * Initial commit of RM server-side impllukebarnard2017-04-111-0/+82
| | | | | | | | (See https://docs.google.com/document/d/1UWqdS-e1sdwkLDUY0wA4gZyIkRp-ekjsLZ8k6g_Zvso/edit#heading=h.lndohpg8at5u)
* | Merge pull request #2115 from matrix-org/erikj/dedupe_federation_replErik Johnston2017-04-121-67/+76
|\ \ | | | | | | Reduce federation replication traffic
| * | Reuse get_interested_partiesErik Johnston2017-04-121-16/+5
| | |
| * | Move get_interested_partiesErik Johnston2017-04-111-35/+34
| | |
| * | CommentsErik Johnston2017-04-111-2/+3
| | |
| * | Move get_interested_remotes back to presence handlerErik Johnston2017-04-111-3/+49
| | |
| * | Reduce federation presence replication trafficErik Johnston2017-04-101-40/+14
| |/ | | | | | | | | | | | | | | This is mainly done by moving the calculation of where to send presence updates from the presence handler to the transaction queue, so we only need to send the presence event (and not the destinations) across the replication connection. Before we were duplicating by sending the full state across once per destination.
* | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2017-04-111-4/+4
|\ \ | |/ |/|
| * When we do an invite rejection, save the signed leave event to the dbRichard van der Hoff2017-04-071-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | During a rejection of an invite received over federation, we ask a remote server to make us a `leave` event, then sign it, then send that with `send_leave`. We were saving the *unsigned* version of the event (which has a different event id to the signed version) to our db (and sending it to the clients), whereas other servers in the room will have seen the *signed* version. We're not aware of any actual problems that caused, except that it makes the database confusing to look at and generally leaves the room in a weird state.
* | Merge pull request #2103 from matrix-org/erikj/no-double-encodeErik Johnston2017-04-071-3/+1
|\ \ | | | | | | Don't double encode replication data
| * | Don't double json encode typing replication dataErik Johnston2017-04-051-3/+1
| | |
* | | Use iteritemsErik Johnston2017-04-061-2/+2
|/ /
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2017-04-042-28/+33
|\ \ | | | | | | | | | erikj/repl_tcp_server
| * \ Merge pull request #2095 from matrix-org/rav/cull_log_preservesRichard van der Hoff2017-04-032-25/+20
| |\ \ | | |/ | |/| Cull spurious PreserveLoggingContexts
| | * Remove spurious yieldRichard van der Hoff2017-04-031-1/+1
| | | | | | | | | | | | | | | In `MessageHandler`, remove `yield` on call to `Notifier.on_new_room_event`: it doesn't return anything anyway.
| | * Remove more spurious `PreserveLoggingContext`sRichard van der Hoff2017-04-031-24/+19
| | | | | | | | | | | | | | | Remove `PreserveLoggingContext` around calls to `Notifier.on_new_room_event`; there is no problem if the logcontext is set when calling it.
| * | Accept join events from all serversRichard van der Hoff2017-04-031-3/+13
| |/ | | | | | | | | | | | | Make sure that we accept join events from any server, rather than just the origin server, to make the federation join dance work correctly. (Fixes #1893).
* | Add a timestamp to USER_SYNC commandErik Johnston2017-03-311-7/+7
| | | | | | | | This timestamp is used to indicate when the user last sync'd
* | Fix up presenceErik Johnston2017-03-311-1/+3
| |
* | Remove user from process_presence when stops syncingErik Johnston2017-03-301-0/+1
| |
* | Add functions to presence to support remote syncsErik Johnston2017-03-301-0/+66
| | | | | | | | | | | | | | The TCP replication protocol streams deltas of who has started or stopped syncing. This is different from the HTTP API which periodically sends the full list of users who are syncing. This commit adds support for the new TCP style of sending deltas.
* | Add new storage functions for new replicationErik Johnston2017-03-301-0/+3
|/ | | | | The new replication protocol will keep all the streams separate, rather than muxing multiple streams into one.
* Cache hosts in roomErik Johnston2017-03-241-2/+1
|
* Merge pull request #2050 from matrix-org/rav/federation_backoffRichard van der Hoff2017-03-233-22/+17
|\ | | | | push federation retry limiter down to matrixfederationclient
| * Ignore backoff history for invites, aliases, and roomdirsRichard van der Hoff2017-03-232-2/+5
| | | | | | | | | | Add a param to the federation client which lets us ignore historical backoff data for federation queries, and set it for a handful of operations.
| * push federation retry limiter down to matrixfederationclientRichard van der Hoff2017-03-231-20/+12
| | | | | | | | | | rather than having to instrument everywhere we make a federation call, make the MatrixFederationHttpClient manage the retry limiter.
* | Add a missing yield in device key uploadRichard van der Hoff2017-03-231-1/+1
|/ | | | | (this would only very very rarely actually be a useful thing, so the main problem was the logcontext leak...)
* Merge pull request #2027 from matrix-org/rav/logcontext_leaksRichard van der Hoff2017-03-201-2/+3
|\ | | | | A few fixes to logcontext things
| * Stop preserve_fn leaking context into the reactorRichard van der Hoff2017-03-181-2/+3
| | | | | | | | | | | | | | | | 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.
* | Refactoring and cleanupsRichard van der Hoff2017-03-171-0/+10
|/ | | | | | | | | | | | A few non-functional changes: * A bunch of docstrings to document types * Split `EventsStore._persist_events_txn` up a bit. Hopefully it's a bit more readable. * Rephrase `EventFederationStore._update_min_depth_for_room_txn` to avoid mind-bending conditional. * Rephrase rejected/outlier conditional in `_update_outliers_txn` to avoid mind-bending conditional.
* Merge pull request #2016 from matrix-org/rav/queue_pdus_during_joinRichard van der Hoff2017-03-171-24/+44
|\ | | | | Queue up federation PDUs while a room join is in progress
| * Queue up federation PDUs while a room join is in progressRichard van der Hoff2017-03-151-24/+44
| | | | | | | | | | | | | | This just takes the existing `room_queues` logic and moves it out to `on_receive_pdu` instead of `_process_received_pdu`, which ensures that we don't start trying to fetch prev_events and whathaveyou until the join has completed.
* | CommentsErik Johnston2017-03-161-2/+2
| |
* | CommentErik Johnston2017-03-161-3/+8
| |
* | Don't recreate so many setsErik Johnston2017-03-165-34/+28
| |
* | Implement no op for room stream in syncErik Johnston2017-03-161-4/+47
| |
* | Merge pull request #2014 from Half-Shot/hs/fix-appservice-presenceErik Johnston2017-03-151-1/+4
|\ \ | | | | | | Add fallback to last_active_ts if it beats the last sync time on a presence timeout.
| * | Add a great comment to handle_timeout for active vs sync times.Will Hunt2017-03-151-0/+2
| | |
| * | Add fallback to last_active_ts if it beats the last sync time.Will Hunt2017-03-151-1/+2
| | |
* | | Cache set of users whose presence the other user should seeErik Johnston2017-03-151-13/+27
| | |
* | | CommentErik Johnston2017-03-151-0/+3
| | |
* | | Format presence events on the edges instead of reformatting them multiple timesErik Johnston2017-03-153-23/+32
|/ /
* | Merge pull request #1994 from matrix-org/dbkr/msisdn_signin_2Erik Johnston2017-03-152-8/+61
|\ \ | | | | | | Phone number registration / login support v2
| * | Support registration / login with phone numberDavid Baker2017-03-132-8/+61
| |/ | | | | | | Changes from https://github.com/matrix-org/synapse/pull/1971
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2017-03-144-66/+239
|\ \ | | | | | | | | | erikj/public_list_speed
| * | Implement _simple_delete_many_txn, use it to delete devicesLuke Barnard2017-03-131-0/+34
| |/ | | | | | | | | | | (But this doesn't implement the same for deleting access tokens or e2e keys. Also respond to code review.
| * Merge remote-tracking branch 'origin/develop' into rav/refactor_received_pduRichard van der Hoff2017-03-133-64/+11
| |\
| | * Revert "Support registration & login with phone number"Erik Johnston2017-03-132-61/+8
| | |
| * | Move FederationServer._handle_new_pdu to FederationHandlerRichard van der Hoff2017-03-091-5/+197
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately this significantly increases the size of the already-rather-big FederationHandler, but the code fits more naturally here, and it paves the way for the tighter integration that I need between handling incoming PDUs and doing the join dance. Other than renaming the existing `FederationHandler.on_receive_pdu` to `_process_received_pdu` to make way for it, this just consists of the move, and replacing `self.handler` with `self` and `self` with `self.replication_layer`.
* | | CommentsErik Johnston2017-03-131-0/+12
| | |
* | | Assume rooms likely haven't changedErik Johnston2017-03-131-8/+11
| | |