diff options
author | Erik Johnston <erik@matrix.org> | 2017-06-09 10:52:26 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2017-06-09 10:52:26 +0100 |
commit | 0185b75381c160edaf2bec0b9f4def0bb0d67a02 (patch) | |
tree | 55e8ba309e5736457b3c187974d2eb6f33049803 /synapse/api | |
parent | Merge pull request #2263 from matrix-org/erikj/fix_state_woes (diff) | |
download | synapse-0185b75381c160edaf2bec0b9f4def0bb0d67a02.tar.xz |
Change is_host_joined to use current_state table
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)
Diffstat (limited to 'synapse/api')
-rw-r--r-- | synapse/api/auth.py | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/synapse/api/auth.py b/synapse/api/auth.py index 9dbc7993df..0c297cb022 100644 --- a/synapse/api/auth.py +++ b/synapse/api/auth.py @@ -144,17 +144,8 @@ class Auth(object): @defer.inlineCallbacks def check_host_in_room(self, room_id, host): with Measure(self.clock, "check_host_in_room"): - latest_event_ids = yield self.store.get_latest_event_ids_in_room(room_id) - - logger.debug("calling resolve_state_groups from check_host_in_room") - entry = yield self.state.resolve_state_groups( - room_id, latest_event_ids - ) - - ret = yield self.store.is_host_joined( - room_id, host, entry.state_group, entry.state - ) - defer.returnValue(ret) + latest_event_ids = yield self.store.is_host_joined(room_id, host) + defer.returnValue(latest_event_ids) def _check_joined_room(self, member, user_id, room_id): if not member or member.membership != Membership.JOIN: |