diff options
author | Richard van der Hoff <github@rvanderhoff.org.uk> | 2017-04-24 15:20:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-24 15:20:52 +0100 |
commit | 30f7bfa121fb2f37df5e7783424c3c113200c4d4 (patch) | |
tree | 91be8aacc0e9382a0acf3793acde3e2345ba0d6b /synapse/handlers/room_member.py | |
parent | Merge pull request #2155 from matrix-org/erikj/string_intern (diff) | |
parent | Try harder when sending leave events (diff) | |
download | synapse-30f7bfa121fb2f37df5e7783424c3c113200c4d4.tar.xz |
Merge pull request #2145 from matrix-org/rav/reject_invite_to_unreachable_server
Fix rejection of invites to unreachable servers
Diffstat (limited to 'synapse/handlers/room_member.py')
-rw-r--r-- | synapse/handlers/room_member.py | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/synapse/handlers/room_member.py b/synapse/handlers/room_member.py index 2052d6d05f..28b2c80a93 100644 --- a/synapse/handlers/room_member.py +++ b/synapse/handlers/room_member.py @@ -139,13 +139,6 @@ class RoomMemberHandler(BaseHandler): ) yield user_joined_room(self.distributor, user, room_id) - def reject_remote_invite(self, user_id, room_id, remote_room_hosts): - return self.hs.get_handlers().federation_handler.do_remotely_reject_invite( - remote_room_hosts, - room_id, - user_id - ) - @defer.inlineCallbacks def update_membership( self, @@ -286,13 +279,21 @@ class RoomMemberHandler(BaseHandler): else: # send the rejection to the inviter's HS. remote_room_hosts = remote_room_hosts + [inviter.domain] - + fed_handler = self.hs.get_handlers().federation_handler try: - ret = yield self.reject_remote_invite( - target.to_string(), room_id, remote_room_hosts + ret = yield fed_handler.do_remotely_reject_invite( + remote_room_hosts, + room_id, + target.to_string(), ) defer.returnValue(ret) - except SynapseError as e: + except Exception as e: + # if we were unable to reject the exception, just mark + # it as rejected on our end and plough ahead. + # + # The 'except' clause is very broad, but we need to + # capture everything from DNS failures upwards + # logger.warn("Failed to reject invite: %s", e) yield self.store.locally_reject_invite( |