diff options
author | Erik Johnston <erik@matrix.org> | 2016-04-01 16:36:54 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-04-01 16:36:54 +0100 |
commit | aa82cb38e97faa4ad1c15109cbc5b02647ea2461 (patch) | |
tree | 16bd9f4e6b8f071752e2cd725f90f1e0c73d26af /synapse | |
parent | Do checks for memberships before creating events (diff) | |
download | synapse-aa82cb38e97faa4ad1c15109cbc5b02647ea2461.tar.xz |
Remove state hack from _create_new_client_event
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/handlers/_base.py | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/synapse/handlers/_base.py b/synapse/handlers/_base.py index d407eaeee9..2d8ff79a9e 100644 --- a/synapse/handlers/_base.py +++ b/synapse/handlers/_base.py @@ -221,49 +221,6 @@ class BaseHandler(object): context = yield state_handler.compute_event_context(builder) - # If we've received an invite over federation, there are no latest - # events in the room, because we don't know enough about the graph - # fragment we received to treat it like a graph, so the above returned - # no relevant events. It may have returned some events (if we have - # joined and left the room), but not useful ones, like the invite. - if ( - not self.is_host_in_room(context.current_state) and - builder.type == EventTypes.Member - ): - prev_member_event = yield self.store.get_room_member( - builder.sender, builder.room_id - ) - - # The prev_member_event may already be in context.current_state, - # despite us not being present in the room; in particular, if - # inviting user, and all other local users, have already left. - # - # In that case, we have all the information we need, and we don't - # want to drop "context" - not least because we may need to handle - # the invite locally, which will require us to have the whole - # context (not just prev_member_event) to auth it. - # - context_event_ids = ( - e.event_id for e in context.current_state.values() - ) - - if ( - prev_member_event and - prev_member_event.event_id not in context_event_ids - ): - # The prev_member_event is missing from context, so it must - # have arrived over federation and is an outlier. We forcibly - # set our context to the invite we received over federation - builder.prev_events = ( - prev_member_event.event_id, - prev_member_event.prev_events - ) - - context = yield state_handler.compute_event_context( - builder, - old_state=(prev_member_event,) - ) - if builder.is_state(): builder.prev_state = yield self.store.add_event_hashes( context.prev_state_events |