diff options
author | Erik Johnston <erik@matrix.org> | 2016-04-05 12:44:39 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-04-05 12:44:39 +0100 |
commit | b29f98377d1966bc348d83cf6ba38b434a1a794e (patch) | |
tree | 80984de66275e89ad1372fe0d4ac7faaaf5e0c74 /synapse/handlers/federation.py | |
parent | Merge pull request #690 from matrix-org/erikj/member (diff) | |
parent | Fix stuck invites (diff) | |
download | synapse-b29f98377d1966bc348d83cf6ba38b434a1a794e.tar.xz |
Merge pull request #691 from matrix-org/erikj/member
Fix stuck invites
Diffstat (limited to 'synapse/handlers/federation.py')
-rw-r--r-- | synapse/handlers/federation.py | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index adafd06b24..026ebe52be 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -784,13 +784,19 @@ class FederationHandler(BaseHandler): @defer.inlineCallbacks def do_remotely_reject_invite(self, target_hosts, room_id, user_id): - origin, event = yield self._make_and_verify_event( - target_hosts, - room_id, - user_id, - "leave" - ) - signed_event = self._sign_event(event) + try: + origin, event = yield self._make_and_verify_event( + target_hosts, + room_id, + user_id, + "leave" + ) + signed_event = self._sign_event(event) + except SynapseError: + raise + except CodeMessageException as e: + logger.warn("Failed to reject invite: %s", e) + raise SynapseError(500, "Failed to reject invite") # Try the host we successfully got a response to /make_join/ # request first. @@ -800,10 +806,16 @@ class FederationHandler(BaseHandler): except ValueError: pass - yield self.replication_layer.send_leave( - target_hosts, - signed_event - ) + try: + yield self.replication_layer.send_leave( + target_hosts, + signed_event + ) + except SynapseError: + raise + except CodeMessageException as e: + logger.warn("Failed to reject invite: %s", e) + raise SynapseError(500, "Failed to reject invite") context = yield self.state_handler.compute_event_context(event) |