SYN-154: Better error messages when joining an unknown room by ID.

The simple fix doesn't work here because room creation also involves
unknown room IDs. The check relies on the presence of m.room.create for
rooms being created, whereas bogus room IDs have no state events at all.
This commit is contained in:
Kegan Dougal 2015-01-07 15:16:31 +00:00
parent 9b8e348b15
commit 9cb4f75d53
3 changed files with 17 additions and 6 deletions

View file

@ -423,12 +423,13 @@ class RoomMemberHandler(BaseHandler):
is_host_in_room = yield self.auth.check_host_in_room(
event.room_id,
self.hs.hostname
self.hs.hostname,
context=context
)
if is_host_in_room:
should_do_dance = False
elif room_host:
elif room_host: # TODO: Shouldn't this be remote_room_host?
should_do_dance = True
else:
# TODO(markjh): get prev_state from snapshot
@ -442,7 +443,8 @@ class RoomMemberHandler(BaseHandler):
should_do_dance = not self.hs.is_mine(inviter)
room_host = inviter.domain
else:
should_do_dance = False
# return the same error as join_room_alias does
raise SynapseError(404, "No known servers")
if should_do_dance:
handler = self.hs.get_handlers().federation_handler