Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Add missing servers field in /directory/room/:alias response #732
So looking at Synapse's code, it:
Checks that the room is owned by itself:
Then if it is, pulls the list of servers it knows are in a room from the DB and returns that:
I'm not quite sure why, if I'm not the server in the room_id, that I can't answer this query, and presumably this will break if the homeserver that originally created the room leaves it...
I'm afraid that'll also be Dendrite's behaviour because we don't (?) keep track of remote aliases...
Here Dendrite will first directly check if the alias association is local. If not, it sends a federation query to the domain in the ID. So if the server in the ID is down, this will break.
If the alias is local and we're in that room (which should be impled), then we'll be in the list. If it's resolved via federation, then we'll just use whatever the remote server gives us.