Use directory server for room joins (#3899)

When we do a join, always try the server we used for the alias lookup first.

Fixes #2418
This commit is contained in:
Richard van der Hoff authored and GitHub committed 2018-09-18 18:27:37 +01:00
1 parent 31c15dcb80
commit a219ce8726
2 files changed
+6

No files matched your search

+1
View File
@@ -0,0 +1 @@
When we join a room, always try the server we used for the alias lookup first, to avoid unresponsive and out-of-date servers.
+5
View File
@@ -583,6 +583,11 @@ class RoomMemberHandler(object):
room_id = mapping["room_id"]
servers = mapping["servers"]
# put the server which owns the alias at the front of the server list.
if room_alias.domain in servers:
servers.remove(room_alias.domain)
servers.insert(0, room_alias.domain)
defer.returnValue((RoomID.from_string(room_id), servers))
@defer.inlineCallbacks