forked from MirrorHub/synapse
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:
parent
31c15dcb80
commit
a219ce8726
2 changed files with 6 additions and 0 deletions
1
changelog.d/3899.bugfix
Normal file
1
changelog.d/3899.bugfix
Normal 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.
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue